:root {
  --purple: #652c7f;
  --purple-2: #812d96;
  --purple-dark: #351441;
  --purple-soft: #f5eff7;
  --ink: #201c24;
  --text: #504957;
  --muted: #77707c;
  --line: #e8e2ea;
  --surface: #ffffff;
  --surface-alt: #f8f6f9;
  --navy: #18283d;
  --success: #176b45;
  --error: #9d2727;
  --radius-sm: 10px;
  --radius: 18px;
  --radius-lg: 30px;
  --shadow-sm: 0 10px 30px rgba(45, 27, 52, .08);
  --shadow: 0 24px 70px rgba(45, 27, 52, .13);
  --container: 1240px;
  --header-height: 88px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 20px); }
body { margin: 0; min-width: 320px; background: #fff; color: var(--text); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--purple); text-decoration: none; }
a:hover { color: var(--purple-2); }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
[hidden] { display: none !important; }
::selection { background: #dac4e2; color: var(--ink); }
:focus-visible { outline: 3px solid #bd8bcc; outline-offset: 3px; }

h1, h2, h3, h4, h5, h6 { margin: 0 0 .55em; color: var(--ink); font-weight: 760; line-height: 1.12; letter-spacing: -.025em; }
h1 { font-size: clamp(2.55rem, 5.4vw, 5.4rem); }
h2 { font-size: clamp(2rem, 3.6vw, 3.7rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.55rem); }
p { margin: 0 0 1.15em; }
ul, ol { margin: 0; padding: 0; }
address { font-style: normal; }

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.row { display: flex; flex-wrap: wrap; margin-inline: -12px; }
.row > [class*="col-"] { min-width: 0; padding-inline: 12px; }
.col-md-1 { width: 8.333%; }
.col-md-3 { width: 25%; }
.col-md-4 { width: 33.333%; }
.col-md-5 { width: 41.666%; }
.col-md-6 { width: 50%; }
.col-md-7 { width: 58.333%; }
.col-md-8 { width: 66.666%; }
.col-md-10 { width: 83.333%; }
.col-md-12 { width: 100%; }
.col-md-offset-1 { margin-left: 8.333%; }
.clearfix::after { content: ""; display: table; clear: both; }
.text-center { text-align: center; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; z-index: 999999; top: 12px; left: 12px; padding: 11px 16px; border-radius: 8px; background: #fff; color: var(--ink); box-shadow: var(--shadow); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.section { padding: clamp(74px, 8vw, 124px) 0; }
.section_separator { display: none; }
.eyebrow { display: block; margin: 0 0 16px; color: var(--purple); font-size: .75rem; font-weight: 800; letter-spacing: .15em; line-height: 1.2; text-transform: uppercase; }
.eyebrow--light { color: #e7c9ee; }
.section-heading { margin-bottom: 56px; }
.section-heading h2 { max-width: 820px; }
.section-heading--split { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); gap: 56px; align-items: end; }
.section-heading--split > p { margin: 0; color: var(--muted); font-size: 1.06rem; }
.section-heading--light h2, .section-heading--light p { color: #fff; }
.section-heading__action, .section-heading__actions { display: flex; justify-content: flex-end; align-items: center; gap: 26px; flex-wrap: wrap; }

.button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 10px; padding: 13px 22px; border: 1px solid transparent; border-radius: 999px; font-weight: 760; line-height: 1; transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease; }
.button:hover { transform: translateY(-2px); }
.button svg { width: 20px; height: 20px; flex: 0 0 auto; }
.button--primary, .btn.btn-info { border-color: var(--purple); background: var(--purple); color: #fff !important; box-shadow: 0 12px 28px rgba(101, 44, 127, .22); }
.button--primary:hover, .btn.btn-info:hover { border-color: var(--purple-2); background: var(--purple-2); color: #fff; }
.button--glass { border-color: rgba(255,255,255,.45); background: rgba(255,255,255,.12); color: #fff; backdrop-filter: blur(10px); }
.button--glass:hover { background: #fff; color: var(--ink); }
.button--white { background: #fff; color: var(--purple); }
.button--white:hover { background: #f7edf9; color: var(--purple-dark); }
.button--outline-light { border-color: rgba(255,255,255,.48); color: #fff; }
.button--outline-light:hover { background: #fff; color: var(--purple); }
.button--small { min-height: 42px; padding: 10px 17px; font-size: .9rem; }
.text-link { display: inline-flex; align-items: center; gap: 7px; color: var(--purple); font-weight: 780; }
.text-link svg { width: 18px; height: 18px; transition: transform .2s ease; }
.text-link:hover svg { transform: translateX(4px); }

/* Header */
.site-header { position: sticky; z-index: 1000; top: 0; height: var(--header-height); background: rgba(255,255,255,.96); border-bottom: 1px solid rgba(232,226,234,.9); box-shadow: 0 7px 25px rgba(24,15,28,.05); backdrop-filter: blur(14px); }
.site-header__inner { display: flex; height: var(--header-height); align-items: center; gap: 28px; }
.site-logo { display: flex; width: 180px; flex: 0 0 180px; align-items: center; }
.site-logo img { width: 168px; height: auto; object-fit: contain; }
.desktop-nav { min-width: 0; margin-left: auto; }
.desktop-nav__list { display: flex; align-items: center; gap: 1px; list-style: none; }
.desktop-nav__item a { position: relative; display: block; padding: 33px 10px 31px; color: #57505b; font-size: .77rem; font-weight: 800; letter-spacing: .075em; line-height: 1; text-transform: uppercase; white-space: nowrap; }
.desktop-nav__item a::after { position: absolute; right: 10px; bottom: 22px; left: 10px; height: 2px; background: var(--purple); content: ""; transform: scaleX(0); transform-origin: center; transition: transform .2s ease; }
.desktop-nav__item a:hover, .desktop-nav__item.is-current a { color: var(--purple); }
.desktop-nav__item a:hover::after, .desktop-nav__item.is-current a::after { transform: scaleX(1); }
.site-header__actions { display: flex; align-items: center; gap: 13px; }
.header-phone { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); font-size: .88rem; font-weight: 760; white-space: nowrap; }
.header-phone svg { width: 17px; height: 17px; color: var(--purple); }
.nav-toggle { display: none; width: 46px; height: 46px; padding: 12px; border: 0; border-radius: 50%; background: var(--purple-soft); }
.nav-toggle span { display: block; height: 2px; margin: 5px 0; border-radius: 2px; background: var(--ink); transition: transform .2s, opacity .2s; }
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.mobile-nav { position: absolute; top: 100%; right: 0; left: 0; padding: 15px 0 24px; border-top: 1px solid var(--line); background: #fff; box-shadow: var(--shadow-sm); }
.mobile-nav__list { list-style: none; }
.mobile-nav__list a { display: block; padding: 14px 2px; border-bottom: 1px solid var(--line); color: var(--ink); font-weight: 760; }
.mobile-nav__list .is-current a { color: var(--purple); }
.mobile-nav__contact { display: grid; gap: 4px; padding-top: 18px; }
.mobile-nav__contact a { font-weight: 700; }

/* Home hero */
.home-hero { position: relative; min-height: min(790px, calc(100vh - var(--header-height))); overflow: hidden; display: flex; align-items: center; background: var(--navy); }
.home-hero__media { position: absolute; inset: 0; }
.home-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
.home-hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12,22,36,.92) 0%, rgba(15,24,39,.76) 42%, rgba(20,24,40,.22) 78%, rgba(20,24,40,.08) 100%), linear-gradient(0deg, rgba(10,17,28,.34), transparent 45%); }
.home-hero__inner { position: relative; z-index: 2; padding-block: 80px; }
.home-hero__content { max-width: 820px; }
.home-hero h1 { max-width: 920px; margin-bottom: 28px; color: #fff; font-size: clamp(3rem, 6.2vw, 6.3rem); text-wrap: balance; }
.home-hero__lead { max-width: 720px; margin-bottom: 36px; color: rgba(255,255,255,.88); font-size: clamp(1.08rem, 1.6vw, 1.35rem); line-height: 1.55; }
.home-hero__actions { display: flex; gap: 14px; flex-wrap: wrap; }
.home-hero__contact { display: flex; align-items: center; gap: 17px; margin-top: 42px; color: rgba(255,255,255,.7); font-size: .84rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.home-hero__contact::before { width: 40px; height: 1px; background: rgba(255,255,255,.5); content: ""; }
.home-hero__contact a { color: #fff; font-size: 1rem; letter-spacing: .02em; }
.hero-scroll { position: absolute; z-index: 3; right: 36px; bottom: 34px; display: flex; align-items: center; gap: 8px; color: #fff; font-size: .72rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.hero-scroll svg { width: 22px; height: 22px; }
.trust-strip { border-bottom: 1px solid var(--line); background: #fff; }
.trust-strip__inner { display: flex; min-height: 82px; align-items: center; justify-content: space-between; gap: 18px; overflow-x: auto; scrollbar-width: none; }
.trust-strip__inner::-webkit-scrollbar { display: none; }
.trust-strip span { position: relative; flex: 0 0 auto; color: #635d66; font-size: .76rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.trust-strip span:not(:last-child)::after { position: absolute; top: 50%; right: -30px; width: 4px; height: 4px; border-radius: 50%; background: #c5a8ce; content: ""; }

/* Services */
.section--services { background: #fff; }
.service-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 22px; }
.service-card { position: relative; min-height: 310px; padding: 32px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; color: var(--text); transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease, background .25s ease; }
.service-card:hover { z-index: 2; border-color: #c9a8d3; background: linear-gradient(145deg,#fff,#faf5fc); box-shadow: var(--shadow); transform: translateY(-7px); }
.service-card__icon { display: grid; width: 54px; height: 54px; margin-bottom: 40px; place-items: center; border-radius: 14px; background: var(--purple-soft); color: var(--purple); }
.service-card__icon svg { width: 28px; height: 28px; }
.service-card__number { position: absolute; top: 26px; right: 26px; color: #c5bdc8; font-size: .73rem; font-weight: 800; letter-spacing: .12em; }
.service-card h3 { margin-bottom: 14px; font-size: 1.32rem; line-height: 1.12; }
.service-card p { margin: 0 0 32px; color: var(--muted); font-size: .96rem; line-height: 1.72; }
.service-card__link { position: absolute; right: 28px; bottom: 25px; left: 28px; display: flex; align-items: center; justify-content: space-between; color: var(--purple); font-size: .84rem; font-weight: 800; }
.service-card__link svg { width: 18px; height: 18px; }

/* About / process */
.section--about { background: var(--surface-alt); }
.about-home { display: grid; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); gap: clamp(55px,8vw,120px); align-items: start; }
.about-home__content { position: sticky; top: calc(var(--header-height) + 35px); }
.about-home__content h2 { margin-bottom: 28px; }
.about-home__content p { max-width: 620px; color: var(--muted); font-size: 1.04rem; }
.about-home__actions { margin-top: 32px; }
.process-list { list-style: none; border-top: 1px solid var(--line); }
.process-list li { display: grid; grid-template-columns: 62px 1fr; gap: 24px; padding: 30px 0; border-bottom: 1px solid var(--line); }
.process-list > li > span { color: var(--purple); font-size: .8rem; font-weight: 850; letter-spacing: .12em; }
.process-list h3 { margin-bottom: 8px; }
.process-list p { margin: 0; color: var(--muted); }

/* Portfolio */
.section--portfolio { position: relative; overflow: hidden; background: #26152f; }
.section--portfolio::before { position: absolute; top: -240px; right: -150px; width: 520px; height: 520px; border-radius: 50%; background: rgba(132,48,156,.28); filter: blur(15px); content: ""; }
.portfolio-preview { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.portfolio-preview__item { position: relative; min-height: 390px; overflow: hidden; border-radius: var(--radius); background: #3d2a44; }
.portfolio-preview__item img { width: 100%; height: 100%; min-height: 390px; object-fit: cover; transition: transform .45s ease; }
.portfolio-preview__item::after { position: absolute; inset: 35% 0 0; background: linear-gradient(transparent,rgba(0,0,0,.7)); content: ""; }
.portfolio-preview__item span { position: absolute; z-index: 2; right: 28px; bottom: 24px; left: 28px; color: #fff; font-size: 1.2rem; font-weight: 760; }
.portfolio-preview__item:hover img { transform: scale(1.045); }

/* News / blog */
.section--news { background: #fff; }
.news-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.news-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 8px 28px rgba(45,27,52,.05); }
.news-card__image { display: block; aspect-ratio: 16/9; overflow: hidden; background: var(--purple-soft); }
.news-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.news-card:hover .news-card__image img { transform: scale(1.045); }
.news-card__body { padding: 26px; }
.news-card__meta { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 14px; color: var(--muted); font-size: .73rem; font-weight: 750; letter-spacing: .075em; text-transform: uppercase; }
.news-card__meta span { color: var(--purple); }
.news-card h3 { font-size: 1.35rem; }
.news-card h3 a { color: var(--ink); }
.news-card__excerpt { display: -webkit-box; overflow: hidden; margin-bottom: 22px; color: var(--muted); font-size: .92rem; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.news-card__excerpt p { margin: 0; }
.news-card__link { display: inline-flex; align-items: center; gap: 7px; font-size: .85rem; font-weight: 800; }
.news-card__link svg { width: 17px; height: 17px; }
.blog-card { display: flex; min-height: 100%; flex-direction: column; justify-content: space-between; padding: 34px; border-radius: var(--radius); background: linear-gradient(145deg,var(--purple),#3d174e); color: rgba(255,255,255,.82); box-shadow: var(--shadow); }
.blog-card__mark { align-self: flex-end; color: rgba(255,255,255,.16); font-size: 5.8rem; font-weight: 900; line-height: .8; }
.blog-card h3 { margin-bottom: 17px; color: #fff; font-size: 1.65rem; }
.blog-card p { color: rgba(255,255,255,.76); }
.blog-card .button { margin-top: 13px; }

/* Contact form */
.section--contact-form { background: linear-gradient(140deg,#f7f2f8,#fff 62%); }
.contact-form-layout { display: grid; grid-template-columns: minmax(0,.74fr) minmax(0,1.26fr); gap: clamp(45px,8vw,105px); align-items: start; }
.contact-form-intro { position: sticky; top: calc(var(--header-height) + 32px); }
.contact-form-intro > p { max-width: 560px; color: var(--muted); }
.contact-direct { display: grid; margin-top: 38px; border-top: 1px solid var(--line); }
.contact-direct > a, .contact-direct > div { display: grid; grid-template-columns: 92px 1fr; gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--line); color: var(--ink); }
.contact-direct span { color: var(--muted); font-size: .78rem; font-weight: 780; letter-spacing: .08em; text-transform: uppercase; }
.contact-direct strong { font-size: .98rem; line-height: 1.5; }
.contact-form-card { padding: clamp(25px,4vw,42px); border: 1px solid #e5dbe8; border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow); }
.contact-form { position: relative; }
.contact-form__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.form-field { margin-bottom: 20px; }
.form-field label { display: block; margin-bottom: 8px; color: var(--ink); font-size: .86rem; font-weight: 780; }
.form-field label span { color: var(--purple); }
.form-field input, .form-field textarea { width: 100%; border: 1px solid #dcd4df; border-radius: 12px; background: #fff; color: var(--ink); transition: border-color .2s, box-shadow .2s; }
.form-field input { height: 56px; padding: 0 16px; }
.form-field textarea { min-height: 180px; padding: 15px 16px; resize: vertical; }
.form-field input:focus, .form-field textarea:focus { border-color: #9b61ae; outline: 0; box-shadow: 0 0 0 4px rgba(101,44,127,.1); }
.form-field [aria-invalid="true"] { border-color: #bd4545; }
.form-field__meta { display: flex; min-height: 21px; justify-content: space-between; gap: 16px; margin-top: 7px; color: var(--muted); font-size: .75rem; }
.form-error { min-height: 18px; color: var(--error); font-size: .76rem; }
.form-consent { display: flex; gap: 11px; align-items: flex-start; color: var(--muted); font-size: .8rem; line-height: 1.5; cursor: pointer; }
.form-consent input { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 2px; accent-color: var(--purple); }
.form-consent a { text-decoration: underline; }
.contact-form__footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 26px; }
.contact-form__footer p { max-width: 390px; margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.5; }
.form-honeypot { position: absolute !important; left: -99999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-alert { margin-bottom: 22px; padding: 14px 17px; border-radius: 10px; font-weight: 700; }
.form-alert--success { border: 1px solid #a8d4bd; background: #edf8f2; color: var(--success); }
.form-alert--error { border: 1px solid #e5b9b9; background: #fff0f0; color: var(--error); }

/* FAQ */
.section--faq { background: #fff; }
.faq-layout { display: grid; grid-template-columns: minmax(260px,.55fr) minmax(0,1.45fr); gap: clamp(50px,8vw,110px); }
.faq-intro { position: sticky; top: calc(var(--header-height) + 35px); align-self: start; }
.faq-intro p { color: var(--muted); }
.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { display: flex; min-height: 94px; align-items: center; justify-content: space-between; gap: 30px; padding: 22px 0; color: var(--ink); font-size: 1.12rem; font-weight: 760; list-style: none; cursor: pointer; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary svg { width: 25px; height: 25px; flex: 0 0 auto; color: var(--purple); transition: transform .25s ease; }
.faq-item[open] summary svg { transform: rotate(45deg); }
.faq-item__answer { max-width: 760px; padding: 0 55px 25px 0; color: var(--muted); }
.faq-item__answer p { margin: 0; }

/* Generic page heroes */
.page-hero, #about, #offers, #news, #gallery { position: relative; display: flex; min-height: 400px; align-items: center; overflow: hidden; background-position: center; background-repeat: no-repeat; background-size: cover; }
.page-hero--content, #about { background-image: url("../images/bg/bg_page2.webp"); }
.page-hero--contact { background-image: url("../images/bg/bg_page8.webp"); }
#offers { background-image: url("../images/bg/bg_offers1.webp"); }
#news { background-image: url("../images/bg/bg_page1.webp"); }
#gallery { background-image: url("../images/bg/bg_page8.webp"); }
.page-hero__overlay, #about .section_overlay, #offers .section_overlay, #news .section_overlay, #gallery .section_overlay { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(31,14,39,.86),rgba(80,28,91,.45),rgba(22,22,34,.15)); }
.page-hero__inner, .whereuare { position: relative; z-index: 2; width: min(calc(100% - 40px),var(--container)); margin-inline: auto; padding: 70px 0; }
.page-hero__eyebrow, .whereuare h3 { margin: 0 0 14px; color: #efdff3; font-size: .8rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.page-hero h1, .whereuare h1 { max-width: 950px; margin: 0; color: #fff; font-size: clamp(2.8rem,5.2vw,5.3rem); }
.page-hero__inner > p:last-child { max-width: 680px; margin: 18px 0 0; color: rgba(255,255,255,.82); font-size: 1.08rem; }

/* Content pages and side navigation */
.page-section, .pages { padding: clamp(65px,8vw,110px) 0; }
.page-layout { display: grid; grid-template-columns: 285px minmax(0,1fr); gap: clamp(45px,7vw,90px); align-items: start; }
.page-sidebar__sticky { position: sticky; top: calc(var(--header-height) + 30px); }
.aside-heading { margin-bottom: 20px; font-size: 1.55rem; }
.side-navigation, .submenubox { margin: 0 0 30px; padding: 0; border: 0; }
.side-navigation ul, .submenubox ul { list-style: none; }
.side-navigation > ul, .submenubox > .bottom > ul { border-top: 1px solid var(--line); }
.side-navigation li, .submenubox li { position: relative; }
.side-navigation a, .submenubox a { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 2px; border-bottom: 1px solid var(--line); color: #615a65; font-size: .93rem; font-weight: 720; line-height: 1.35; }
.side-navigation a svg { width: 17px; height: 17px; flex: 0 0 auto; color: #b9aebd; }
.side-navigation a:hover, .side-navigation a.active, .submenubox a:hover, .submenubox a.active, .submenubox li.active > a { color: var(--purple); }
.submenubox .sublist { padding-left: 16px; }
.submenubox .sublist a { padding: 10px 2px; font-size: .84rem; }
.sidebar-contact-box { padding: 24px; border-radius: var(--radius); background: var(--purple-soft); }
.sidebar-contact-box p { margin-bottom: 8px; color: var(--muted); font-size: .86rem; }
.sidebar-contact-box > a:not(.button) { display: block; margin-bottom: 18px; color: var(--ink); font-weight: 800; }
.content-prose, .page-content { min-width: 0; color: var(--text); font-size: 1.02rem; line-height: 1.78; }
.content-prose > :first-child, .page-content > :first-child { margin-top: 0; }
.content-prose h2, .page-content h2 { margin-top: 1.7em; font-size: clamp(1.65rem,2.4vw,2.45rem); }
.content-prose h3, .page-content h3 { margin-top: 1.5em; font-size: 1.45rem; }
.content-prose img, .page-content img { max-width: 100% !important; height: auto !important; margin: 24px 0; border-radius: var(--radius-sm); }
.content-prose ul, .content-prose ol, .page-content ul, .page-content ol { margin: 0 0 1.4em; padding-left: 1.25em; }
.content-prose table, .page-content table { width: 100%; border-collapse: collapse; }
.content-prose th, .content-prose td, .page-content th, .page-content td { padding: 12px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.content-prose a, .page-content a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.pages a::after, .pages a::before, .submenubox a::after, .submenubox a::before, span.ckephone::before, span.ckefax::before, span.ckeemail::before { content: none !important; display: none !important; }
.privacy-cookie-note { margin-top: 40px; padding: 28px; border: 1px solid #decfe2; border-radius: var(--radius); background: var(--purple-soft); }
.privacy-cookie-note h2 { margin-top: 0; }

/* Legacy offers, products, news and galleries */
#page.pages > .container > .row { align-items: flex-start; }
#page.pages > .container > .row > .col-md-8 { width: 70%; }
#page.pages > .container > .row > .col-md-1 { width: 5%; }
#page.pages > .container > .row > .col-md-3 { width: 25%; }
.pages > .container > .row > .col-md-3 { position: sticky; top: calc(var(--header-height) + 28px); }
.pages .post-item { position: relative; }
.pages .entry-thumb { position: relative; overflow: hidden; border-radius: var(--radius-sm); background: var(--purple-soft); }
.pages .entry-thumb img { width: 100%; aspect-ratio: 16/9; object-fit: cover; transition: transform .35s ease; }
.pages .post-item:hover .entry-thumb img { transform: scale(1.035); }
.entry-cat { position: absolute; z-index: 2; top: 14px; right: 14px; padding: 7px 11px; border-radius: 999px; background: rgba(79,25,96,.9); color: #fff !important; font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.offer-item { margin: 0 0 32px; padding: 24px 18px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.offer-item .post-item { display: flex; width: 100%; flex-wrap: wrap; }
.offer-item .entry-header { padding-top: 8px; }
.offer-item .entry-title { margin-bottom: 18px; font-size: 1.55rem; }
.offer-item .entry-title a { color: var(--ink); }
.entry-details { display: flex; flex-wrap: wrap; margin-inline: -8px; }
.entry-details > [class*="col-"] { padding-inline: 8px; }
.entry-details .row { display: block; margin: 0 0 13px; }
.entry-details h6 { margin: 0 0 3px; color: var(--muted); font-size: .69rem; letter-spacing: .08em; text-transform: uppercase; }
.entry-details p { margin: 0; color: var(--ink); font-size: .9rem; }
.news .row-article { margin-bottom: 28px; }
.news .post-item { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.news .entry-header, .news .entry-desc { padding: 0 32px; }
.news .entry-header { padding-top: 23px; }
.news .entry-desc { padding-bottom: 27px; color: var(--muted); }
.news .entry-title { font-size: 1.45rem; }
.news .entry-title a { color: var(--ink); }
.entry-meta, .entry-date { color: var(--muted); font-size: .78rem; }
.ui-icon { display: inline-flex; align-items: center; justify-content: center; min-width: 1em; font-family: inherit !important; }
.simple-link { display: inline-flex; margin-left: 7px; font-weight: 800; }
.entry-full { position: relative; margin: 0 28px 28px; padding: 26px; border-radius: 12px; background: var(--surface-alt); }
.entry-full.notactive { display: none; }
.close-entry-full { position: absolute; top: 9px; right: 10px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: #fff; color: var(--ink); font-size: 24px; line-height: 1; }
.gallery .post-item { margin-bottom: 24px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.gallery .entry-bottom-title { padding: 20px 24px; }
.gallery .entry-bottom-title a { color: var(--ink); font-weight: 760; }
.view_notavailable { display: block; }
.view_notavailable > span { position: absolute; z-index: 2; top: 50%; left: 50%; padding: 8px 12px; border-radius: 999px; background: rgba(255,255,255,.9); color: var(--muted); font-size: .78rem; transform: translate(-50%,-50%); }
.column_switcher { display: flex; align-items: center; gap: 8px; margin: 9px 0; padding: 10px 12px; border-radius: 8px; background: var(--purple-soft); color: var(--purple); font-size: .82rem; cursor: pointer; }
.gblock { margin-bottom: 24px; }
.items-navigation { display: inline-flex; gap: 10px; }
.items-navigation a { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; background: var(--purple); color: #fff; }
.caption .download { position: absolute; right: 12px; bottom: 12px; }
.download-icon { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: var(--purple); color: #fff; }
.smilar-products { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; list-style: none; }
.smilar-products img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 10px; }
.smilar-products .name { margin-bottom: 8px; font-weight: 760; }
.pagination { display: inline-flex; align-items: center; gap: 6px; margin: 32px auto 0; list-style: none; }
.pagination a, .pagination span { display: grid; min-width: 40px; height: 40px; padding: 0 10px; place-items: center; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); }
.pagination .active, .pagination .current { border-color: var(--purple); background: var(--purple); color: #fff; }
.table-responsive { width: 100%; overflow-x: auto; }
.table { width: 100%; border-collapse: collapse; }
.table th, .table td { padding: 12px; border: 1px solid var(--line); text-align: left; }
.panel { margin-bottom: 14px; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.panel-heading { padding: 16px 18px; background: var(--surface-alt); }
.panel-body { padding: 18px; }
.panel-collapse:not(.in) { display: none; }
.bs-callout { margin: 20px 0; padding: 18px; border-left: 4px solid var(--purple); background: var(--purple-soft); }

/* Contact page */
.contact-overview { background: #fff; }
.contact-overview__heading { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: end; margin-bottom: 45px; }
.contact-overview__heading > p { margin: 0; color: var(--muted); }
.contact-card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.contact-info-card { min-height: 300px; padding: 32px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.contact-info-card--address { grid-row: span 2; background: linear-gradient(150deg,#2c1535,#5d246f); color: rgba(255,255,255,.8); }
.contact-info-card--address h2, .contact-info-card--address .eyebrow, .contact-info-card--address address { color: #fff; }
.contact-info-card__icon { display: grid; width: 48px; height: 48px; margin-bottom: 28px; place-items: center; border-radius: 14px; background: var(--purple-soft); color: var(--purple); }
.contact-info-card--address .contact-info-card__icon { background: rgba(255,255,255,.12); color: #fff; }
.contact-info-card__icon svg { width: 25px; height: 25px; }
.contact-info-card h2 { font-size: 1.35rem; }
.contact-info-card a { display: block; overflow-wrap: anywhere; }
.contact-info-card__primary { margin: 25px 0 4px; color: var(--ink); font-size: 1.14rem; font-weight: 830; }
.contact-info-card__note { margin: 12px 0 28px; font-size: .86rem; }
.contact-page-form { background: var(--surface-alt); }
.contact-map-section { padding: 85px 0 0; background: #fff; }
.contact-map-section .section-heading { margin-bottom: 35px; }
.external-content-placeholder { display: flex; min-height: 470px; align-items: center; justify-content: center; padding: 30px; background: linear-gradient(135deg,#eee8f0,#ddd3e2); }
.external-content-placeholder__inner { width: min(100%,620px); padding: 38px; border: 1px solid rgba(101,44,127,.14); border-radius: var(--radius); background: rgba(255,255,255,.95); text-align: center; box-shadow: var(--shadow); }
.external-content-placeholder__icon { display: grid; width: 58px; height: 58px; margin: 0 auto 20px; place-items: center; border-radius: 50%; background: var(--purple-soft); color: var(--purple); }
.external-content-placeholder__icon svg { width: 30px; height: 30px; }
.external-content-placeholder iframe { width: 100%; height: 470px; border: 0; display: block; }

/* Footer */
.site-footer { background: #211527; color: rgba(255,255,255,.7); }
.site-footer__top { display: grid; grid-template-columns: 1.35fr .7fr .8fr 1fr; gap: 55px; padding-block: 72px; }
.site-footer h2 { margin-bottom: 23px; color: #fff; font-size: .78rem; letter-spacing: .13em; text-transform: uppercase; }
.site-footer__brand img { width: 162px; height: auto; margin-bottom: 21px; filter: brightness(0) invert(1); }
.site-footer__brand p { max-width: 360px; font-size: .9rem; }
.footer-facebook { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-weight: 730; }
.footer-facebook svg { width: 18px; height: 18px; }
.site-footer__column ul { display: grid; gap: 10px; list-style: none; }
.site-footer a { color: rgba(255,255,255,.78); }
.site-footer a:hover { color: #fff; }
.site-footer__contact address { margin-bottom: 20px; }
.footer-contact-link { display: block; margin-bottom: 7px; overflow-wrap: anywhere; font-weight: 700; }
.site-footer__contact .button { margin-top: 20px; color: var(--purple); }
.site-footer__bottom { border-top: 1px solid rgba(255,255,255,.12); }
.site-footer__bottom-inner { display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 28px; }
.site-footer__bottom p { margin: 0; font-size: .78rem; }
.site-footer__legal { display: flex; gap: 20px; flex-wrap: wrap; font-size: .78rem; }
.footer-settings-button { padding: 0; border: 0; background: transparent; color: rgba(255,255,255,.78); }
.footer-settings-button:hover { color: #fff; }

/* Cookies */
.cookie-consent { position: fixed; z-index: 100000; inset: 0; display: flex; align-items: flex-end; justify-content: center; padding: 20px; background: rgba(19,12,22,.55); backdrop-filter: blur(4px); }
.cookie-consent__panel { position: relative; width: min(1040px,100%); padding: 27px; border: 1px solid #e5dbe8; border-radius: var(--radius); background: #fff; box-shadow: 0 28px 90px rgba(20,10,25,.34); }
.cookie-consent__close { position: absolute; top: 13px; right: 15px; width: 38px; height: 38px; border: 0; border-radius: 50%; background: var(--surface-alt); color: var(--ink); font-size: 25px; line-height: 1; }
.cookie-consent__main { display: grid; grid-template-columns: 54px 1fr; gap: 20px; padding-right: 35px; }
.cookie-consent__icon { display: grid; width: 54px; height: 54px; place-items: center; border-radius: 15px; background: var(--purple-soft); color: var(--purple); }
.cookie-consent__icon svg { width: 29px; height: 29px; }
.cookie-consent__main h2 { font-size: 1.45rem; }
.cookie-consent__main p { margin: 4px 0; color: var(--muted); font-size: .88rem; }
.cookie-consent__settings { margin: 20px 0 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.consent-row { display: flex; gap: 12px; align-items: flex-start; padding: 14px 4px; cursor: pointer; }
.consent-row + .consent-row { border-top: 1px solid var(--line); }
.consent-row input { width: 19px; height: 19px; margin-top: 2px; accent-color: var(--purple); }
.consent-row span { display: flex; flex-direction: column; gap: 2px; }
.consent-row small { color: var(--muted); }
.consent-row--locked { cursor: default; }
.cookie-consent__actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 21px; flex-wrap: wrap; }
.cookie-button { min-height: 43px; padding: 10px 17px; border: 1px solid #d5ccd8; border-radius: 999px; background: #fff; color: var(--ink); font-weight: 780; }
.cookie-button--secondary:hover { border-color: var(--purple); color: var(--purple); }
.cookie-button--primary { border-color: var(--purple); background: var(--purple); color: #fff; }

/* Lightbox and error */
.lightbox-overlay { position: fixed; z-index: 99999; inset: 0; display: flex; align-items: center; justify-content: center; padding: 30px; background: rgba(0,0,0,.92); }
.lightbox-overlay img { width: auto; max-width: 94vw; height: auto; max-height: 90vh; }
.lightbox-close { position: absolute; top: 18px; right: 18px; width: 46px; height: 46px; border: 0; border-radius: 50%; background: #fff; color: #111; font-size: 28px; }
.error-page { min-height: 100vh; display: grid; padding: 25px; place-items: center; background: var(--surface-alt); }
.error-card { width: min(620px,100%); padding: 45px; border-radius: var(--radius); background: #fff; text-align: center; box-shadow: var(--shadow); }
.empty-state { padding: 26px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-alt); }

@media (max-width: 1180px) {
  .desktop-nav__item a { padding-inline: 7px; font-size: .7rem; }
  .header-phone span { display: none; }
  .service-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .site-footer__top { grid-template-columns: 1.2fr .8fr .8fr; }
  .site-footer__contact { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 30px; align-items: start; }
  .site-footer__contact h2 { grid-column: 1/-1; }
  .site-footer__contact .button { justify-self: start; }
}

@media (max-width: 991px) {
  :root { --header-height: 76px; }
  .container { width: min(calc(100% - 30px),var(--container)); }
  .site-header, .site-header__inner { height: var(--header-height); }
  .site-logo { width: 155px; flex-basis: 155px; }
  .site-logo img { width: 145px; }
  .desktop-nav, .header-phone, .header-quote { display: none; }
  .site-header__actions { margin-left: auto; }
  .nav-toggle { display: block; }
  .home-hero { min-height: 680px; }
  .home-hero__overlay { background: linear-gradient(90deg,rgba(12,22,36,.91),rgba(15,24,39,.66)); }
  .trust-strip__inner { justify-content: flex-start; gap: 50px; }
  .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .section-heading--split, .about-home, .contact-form-layout, .faq-layout, .contact-overview__heading { grid-template-columns: 1fr; gap: 30px; }
  .about-home__content, .contact-form-intro, .faq-intro, .page-sidebar__sticky { position: static; }
  .portfolio-preview__item, .portfolio-preview__item img { min-height: 320px; }
  .news-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .blog-card { grid-column: 1 / -1; min-height: 330px; }
  .page-layout { grid-template-columns: 1fr; gap: 45px; }
  .page-sidebar { order: 2; }
  .page-content { order: 1; }
  #page.pages > .container > .row > .col-md-8, #page.pages > .container > .row > .col-md-1, #page.pages > .container > .row > .col-md-3 { width: 100%; }
  #page.pages > .container > .row > .col-md-1 { display: none; }
  .pages > .container > .row > .col-md-3 { position: static; margin-top: 40px; }
  .contact-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .contact-info-card--address { grid-row: auto; grid-column: 1/-1; min-height: 260px; }
  .site-footer__top { grid-template-columns: 1fr 1fr; }
  .site-footer__brand { grid-column: 1/-1; }
  .site-footer__contact { grid-column: auto; display: block; }
}

@media (max-width: 700px) {
  .section { padding: 72px 0; }
  .home-hero { min-height: 650px; }
  .home-hero__inner { padding-block: 65px 95px; }
  .home-hero h1 { font-size: clamp(2.7rem,13vw,4.3rem); }
  .home-hero__lead { font-size: 1rem; }
  .home-hero__actions { display: grid; grid-template-columns: 1fr; max-width: 360px; }
  .home-hero__contact { align-items: flex-start; flex-direction: column; gap: 8px; }
  .home-hero__contact::before { display: none; }
  .hero-scroll { right: 18px; bottom: 19px; }
  .service-grid, .portfolio-preview, .news-grid, .contact-card-grid, .contact-form__grid, .site-footer__top { grid-template-columns: 1fr; }
  .service-card { min-height: 280px; }
  .portfolio-preview__item, .portfolio-preview__item img { min-height: 250px; }
  .blog-card { grid-column: auto; }
  .contact-form-card { border-radius: 20px; }
  .contact-form__footer { align-items: stretch; flex-direction: column; }
  .button--submit { width: 100%; }
  .faq-item summary { min-height: 80px; font-size: 1rem; }
  .page-hero, #about, #offers, #news, #gallery { min-height: 310px; }
  .page-hero h1, .whereuare h1 { font-size: clamp(2.5rem,12vw,4rem); }
  .offer-item .post-item { display: block; }
  .offer-item .col-md-6, .entry-details .col-md-6, .smilar-products { width: 100%; }
  .offer-item .entry-header { padding-top: 20px; }
  .smilar-products { grid-template-columns: 1fr; }
  .site-footer__contact { grid-column: auto; }
  .site-footer__bottom-inner { align-items: flex-start; flex-direction: column; padding-block: 22px; }
  .cookie-consent { padding: 8px; }
  .cookie-consent__panel { max-height: 94vh; overflow-y: auto; padding: 20px; border-radius: 16px; }
  .cookie-consent__main { grid-template-columns: 1fr; padding-right: 20px; }
  .cookie-consent__icon { width: 44px; height: 44px; }
  .cookie-consent__actions { display: grid; grid-template-columns: 1fr; }
  .cookie-button { width: 100%; }
}

@media (max-width: 430px) {
  .container { width: min(calc(100% - 24px),var(--container)); }
  .site-logo { width: 140px; flex-basis: 140px; }
  .site-logo img { width: 135px; }
  .home-hero__content .eyebrow { max-width: 250px; }
  .home-hero h1 { font-size: 2.75rem; }
  .contact-direct > a, .contact-direct > div { grid-template-columns: 1fr; gap: 3px; }
  .contact-info-card { min-height: 0; }
  .footer-contact-link { font-size: .9rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Legal page */
.legal-header__inner { justify-content: space-between; }
.legal-page .page-hero--legal { min-height: 410px; background-image: linear-gradient(110deg,rgba(42,13,53,.93),rgba(101,44,127,.72)), url('/public/default/images/bg/bg_page2.webp'); }
.legal-section { background: var(--surface-alt); }
.legal-layout { width: min(calc(100% - 40px), 980px); }
.legal-card { padding: clamp(28px,5vw,66px); border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); }
.legal-card > h2:first-of-type { margin-top: 1.3em; }
.privacy-table code { white-space: nowrap; }
.legal-footer { padding: 0; }
.consent-open { overflow: hidden; }
.button[disabled] { cursor: wait; opacity: .7; transform: none; }
@media (max-width: 700px) {
  .legal-back { min-height: 40px; padding: 9px 13px; font-size: .76rem; }
  .legal-page .site-logo { width: 130px; flex-basis: 130px; }
  .legal-page .site-logo img { width: 125px; }
  .legal-layout { width: min(calc(100% - 24px),980px); }
  .legal-card { padding: 24px 18px; border-radius: 18px; }
  .privacy-table { min-width: 720px; }
}


/* Home hero refinements */
.home-hero__media img { object-position: 66% center; }
.home-hero__content { max-width: 760px; }
.home-hero h1 { max-width: 780px; }
.home-hero__lead { max-width: 760px; }
.section-heading--services > p { max-width: 450px; }

/* Vertical service marquee */
.service-marquee { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px; align-items: stretch; }
.service-grid--mobile { display: none; }
.service-column { position: relative; height: 680px; overflow: hidden; }
.service-column::before,
.service-column::after { content: ""; position: absolute; z-index: 2; left: 0; right: 0; height: 58px; pointer-events: none; }
.service-column::before { top: 0; background: linear-gradient(180deg,#fff 18%,rgba(255,255,255,0)); }
.service-column::after { bottom: 0; background: linear-gradient(0deg,#fff 18%,rgba(255,255,255,0)); }
.service-column__track { display: flex; flex-direction: column; animation: service-column-scroll 28s linear infinite; will-change: transform; }
.service-column__group { display: grid; gap: 22px; padding-bottom: 22px; }
.service-column:hover .service-column__track { animation-play-state: paused; }
.service-column--2 .service-column__track { animation-duration: 32s; animation-direction: reverse; }
.service-column--3 .service-column__track { animation-duration: 30s; }
.service-card--duplicate { pointer-events: none; user-select: none; }
@keyframes service-column-scroll {
  from { transform: translateY(0); }
  to { transform: translateY(-50%); }
}

/* Spacing and readability refinements */
.submenubox .sublist { padding-top: 6px; padding-left: 18px; }
.submenubox .sublist li + li { margin-top: 3px; }
.entry-details .row { margin: 0 0 16px; }
.entry-details p { line-height: 1.7; }
.offer-item .entry-header { padding-top: 14px; padding-left: 12px; }
.offer-item .entry-title { margin-bottom: 22px; }
.news .entry-desc { line-height: 1.72; }
.gallery .entry-bottom-title a { line-height: 1.45; }
.contact-info-card address,
.contact-info-card p,
.contact-info-card a { line-height: 1.72; }
.contact-info-card h2 { margin-bottom: 10px; }

/* FAQ */
.faq-item summary { min-height: 86px; }
.faq-item__answer { padding: 0 55px 30px 0; }

/* Mobile adjustments */
@media (max-width: 991px) {
  .service-marquee { display: none; }
  .service-grid--mobile { display: grid; }
  .section-heading--services { gap: 26px; }
}
@media (max-width: 700px) {
  .home-hero { min-height: 620px; }
  .home-hero__inner { padding-block: 58px 88px; }
  .home-hero__lead { max-width: 100%; line-height: 1.65; }
  .service-grid--mobile { gap: 16px; }
  .service-card { min-height: 0; padding: 28px 24px 92px; }
  .service-card__icon { margin-bottom: 28px; }
  .contact-info-card { padding: 26px 22px; }
  .offer-item { padding: 18px 14px; }
  .offer-item .entry-header { padding-left: 0; }
  .news .entry-header, .news .entry-desc { padding-left: 20px; padding-right: 20px; }
  .section-heading { margin-bottom: 40px; }
  .faq-item__answer { padding-right: 0; }
}
@media (max-width: 430px) {
  .home-hero h1 { font-size: 2.55rem; }
  .home-hero__actions { max-width: 100%; }
  .button { min-height: 50px; }
}


/* v4: compact panoramic hero */
.home-hero {
  min-height: min(610px, calc(100vh - var(--header-height)));
  max-height: 650px;
}
.home-hero__inner { padding-block: 58px 70px; }
.home-hero__content { max-width: 650px; }
.home-hero h1 {
  max-width: 650px;
  margin-bottom: 24px;
  font-size: clamp(3rem, 4.4vw, 4.55rem);
  line-height: .98;
  letter-spacing: -.045em;
}
.home-hero h1 span { display: block; }
.home-hero h1 span + span { margin-top: .12em; }
.home-hero__lead { max-width: 650px; margin-bottom: 28px; font-size: 1.05rem; line-height: 1.65; }
.home-hero__actions { margin-top: 24px; }
.home-hero__media img { object-position: 66% center; }
.home-hero__overlay {
  background: linear-gradient(90deg,rgba(5,14,28,.94) 0%,rgba(7,17,33,.78) 42%,rgba(11,20,39,.46) 70%,rgba(11,20,39,.18) 100%), linear-gradient(180deg, rgba(5,12,24,.16), rgba(5,12,24,.28));
}

/* v4: polished movement and hover states */
.process-list li,
.offer-item,
.news .post-item,
.gallery .post-item,
.contact-info-card,
.sidebar-contact-box,
.portfolio-preview__item,
.blog-card,
.news-card {
  transition: transform .3s cubic-bezier(.2,.75,.25,1), box-shadow .3s ease, border-color .3s ease, background-color .3s ease;
}
.process-list li:hover,
.offer-item:hover,
.news .post-item:hover,
.gallery .post-item:hover,
.contact-info-card:hover,
.sidebar-contact-box:hover,
.news-card:hover {
  transform: translateY(-6px);
  border-color: rgba(101,44,127,.28);
  box-shadow: 0 24px 60px rgba(45,27,52,.14);
}
.process-list li:hover > span { transform: scale(1.08) rotate(-3deg); background: var(--purple); color: #fff; }
.process-list li > span { transition: transform .3s ease, background .3s ease, color .3s ease; }
.about-home__content .text-link { transition: gap .25s ease, color .25s ease; }
.about-home__content .text-link:hover { gap: 13px; }
.side-navigation a,
.submenubox a { transition: padding .22s ease, color .22s ease, background .22s ease; }
.side-navigation a:hover,
.submenubox a:hover { padding-left: 10px; background: linear-gradient(90deg,var(--purple-soft),transparent); }
.button { position: relative; overflow: hidden; }
.button::after { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg,transparent 25%,rgba(255,255,255,.26) 48%,transparent 70%); transform: translateX(-135%); transition: transform .55s ease; pointer-events: none; }
.button:hover::after { transform: translateX(135%); }

/* Reveal-on-scroll enhancement; content remains visible without JS */
.reveal-ready .reveal-item { opacity: 0; transform: translateY(26px); transition: opacity .65s ease, transform .65s cubic-bezier(.2,.75,.25,1); transition-delay: var(--reveal-delay,0ms); }
.reveal-ready .reveal-item.is-visible { opacity: 1; transform: translateY(0); }

/* v4: stable blog/offer pagination */
.row-pagination { display: flex !important; width: 100%; justify-content: center; margin: 42px 0 10px !important; padding: 0 12px; }
.pagination-nav { display: block; width: auto; max-width: 100%; }
.pagination {
  display: flex !important;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.pagination .page-item {
  display: block !important;
  position: static !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
.pagination .page-link,
.pagination a,
.pagination span {
  display: flex !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--line) !important;
  border-radius: 12px !important;
  background: #fff !important;
  color: var(--ink) !important;
  line-height: 1 !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transform: none !important;
}
.pagination .page-item.active .page-link { border-color: var(--purple) !important; background: var(--purple) !important; color: #fff !important; }
.pagination .page-item:not(.disabled) .page-link:hover { border-color: var(--purple) !important; color: var(--purple) !important; transform: translateY(-2px) !important; }
.pagination .page-item.active .page-link:hover { color: #fff !important; }
.pagination .page-item.disabled .page-link { opacity: .38; cursor: default; }
.pagination .page-link::before,
.pagination .page-link::after { content: none !important; display: none !important; }

.legal-print-note { margin-top: 42px; }

@media (max-width: 991px) {
  .home-hero { min-height: 570px; max-height: none; }
  .home-hero__content { max-width: 590px; }
  .home-hero h1 { max-width: 590px; font-size: clamp(2.8rem,8vw,4rem); }
  .home-hero__media img { object-position: 67% center; }
  .home-hero__overlay { background: linear-gradient(90deg,rgba(8,17,31,.97),rgba(10,20,36,.78) 67%,rgba(10,20,36,.44)); }
}
@media (max-width: 700px) {
  .home-hero { min-height: 540px; }
  .home-hero__inner { padding-block: 52px 70px; }
  .home-hero h1 { font-size: clamp(2.55rem,12vw,3.25rem); line-height: 1.02; }
  .home-hero__lead { font-size: .98rem; }
  .home-hero__media img { object-position: 70% center; }
  .pagination { gap: 8px !important; }
  .pagination .page-item,
  .pagination .page-link,
  .pagination a,
  .pagination span { width: 42px !important; min-width: 42px !important; height: 42px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .reveal-ready .reveal-item { opacity: 1 !important; transform: none !important; }
  .process-list li,
  .offer-item,
  .news .post-item,
  .gallery .post-item,
  .contact-info-card { transform: none !important; }
}
@media print {
  .site-header, .site-footer, .legal-print-note, .page-hero { display: none !important; }
  .legal-section { padding: 0; background: #fff; }
  .legal-card { border: 0; box-shadow: none; padding: 0; }
}



/* Hero accent inspired by Raster pattern */
.home-hero { overflow: hidden; }
.home-hero__accent {
  position: absolute;
  inset: 0 0 0 auto;
  width: min(50vw, 760px);
  pointer-events: none;
  opacity: .96;
  filter: drop-shadow(0 0 26px rgba(169,108,205,.10));
  animation: rasterGlow 10s ease-in-out infinite alternate;
}
.home-hero__accent::before,
.home-hero__accent::after,
.home-hero__accent span {
  content: "";
  position: absolute;
  display: block;
  inset: auto 0 0 auto;
  clip-path: polygon(24% 0, 100% 0, 100% 100%, 0 100%);
}
.home-hero__accent::before {
  top: 0;
  right: -6%;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(232,222,241,.07), rgba(196,166,219,.20) 38%, rgba(120,73,165,.14) 72%, rgba(255,255,255,.08));
}
.home-hero__accent::after {
  top: 0;
  right: -4%;
  width: 100%;
  height: 100%;
  background-image:
    linear-gradient(135deg, rgba(255,255,255,.12) 0 24%, rgba(255,255,255,0) 24% 100%),
    linear-gradient(135deg, rgba(183,141,213,.16) 0 24%, rgba(255,255,255,0) 24% 100%),
    linear-gradient(135deg, rgba(141,95,185,.16) 0 24%, rgba(255,255,255,0) 24% 100%);
  background-size: 150px 150px, 108px 108px, 72px 72px;
  background-position: 0 0, 35px 18px, 12px 52px;
  opacity: .58;
}
.home-hero__accent span:nth-child(1) {
  top: 2%;
  right: -5%;
  width: 88%;
  height: 52%;
  background-image: linear-gradient(135deg, rgba(219,199,235,.28) 0 24%, rgba(255,255,255,0) 24% 100%), linear-gradient(135deg, rgba(183,139,214,.16) 0 24%, rgba(255,255,255,0) 24% 100%);
  background-size: 128px 128px, 64px 64px;
  background-position: 0 0, 18px 22px;
  opacity: .40;
  animation: rasterGlowSoft 11s ease-in-out infinite alternate;
}
.home-hero__accent span:nth-child(2) {
  top: 22%;
  right: 2%;
  width: 74%;
  height: 46%;
  background-image: linear-gradient(135deg, rgba(172,129,205,.18) 0 24%, rgba(255,255,255,0) 24% 100%), linear-gradient(135deg, rgba(238,228,246,.16) 0 24%, rgba(255,255,255,0) 24% 100%);
  background-size: 112px 112px, 56px 56px;
  background-position: 0 0, 20px 16px;
  opacity: .34;
  animation: rasterGlowSoft 13s ease-in-out infinite alternate-reverse;
}
.home-hero__accent span:nth-child(3) {
  top: 46%;
  right: 0;
  width: 66%;
  height: 38%;
  background-image: linear-gradient(135deg, rgba(142,88,186,.18) 0 24%, rgba(255,255,255,0) 24% 100%), linear-gradient(135deg, rgba(208,184,227,.14) 0 24%, rgba(255,255,255,0) 24% 100%);
  background-size: 88px 88px, 44px 44px;
  background-position: 0 0, 18px 14px;
  opacity: .30;
  animation: rasterGlowSoft 12s ease-in-out infinite alternate;
}
.home-hero__accent span:nth-child(4) {
  top: 10%;
  right: 18%;
  width: 52%;
  height: 28%;
  background-image: linear-gradient(135deg, rgba(255,255,255,.14) 0 24%, rgba(255,255,255,0) 24% 100%), linear-gradient(135deg, rgba(190,152,216,.14) 0 24%, rgba(255,255,255,0) 24% 100%);
  background-size: 74px 74px, 36px 36px;
  background-position: 0 0, 16px 12px;
  opacity: .30;
  animation: rasterGlowSoft 14s ease-in-out infinite alternate-reverse;
}
@keyframes rasterGlow {
  0% { opacity: .88; filter: drop-shadow(0 0 18px rgba(159,100,202,.08)) brightness(1); }
  100% { opacity: .98; filter: drop-shadow(0 0 34px rgba(183,139,214,.18)) brightness(1.05); }
}
@keyframes rasterGlowSoft {
  0% { opacity: .26; filter: saturate(1) brightness(.98); }
  100% { opacity: .40; filter: saturate(1.1) brightness(1.06); }
}

/* Sample realizations carousel */
.section--sample-realizations { background: #fff; }
.section-heading__actions--stack { display: grid; gap: 12px; }
.realizations-carousel { position: relative; }
.realizations-carousel__controls { display: flex; justify-content: flex-end; gap: 12px; margin: -8px 0 18px; }
.realizations-carousel__button { display: inline-flex; width: 48px; height: 48px; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); box-shadow: var(--shadow-sm); transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease; }
.realizations-carousel__button:hover { background: var(--purple); border-color: var(--purple); color: #fff; transform: translateY(-2px); }
.realizations-carousel__button svg { width: 18px; height: 18px; }
.realizations-carousel__viewport { overflow-x: auto; overflow-y: visible; scrollbar-width: none; cursor: grab; scroll-snap-type: x mandatory; }
.realizations-carousel__viewport::-webkit-scrollbar { display: none; }
.realizations-carousel__viewport.is-dragging { cursor: grabbing; scroll-behavior: auto !important; }
.realizations-carousel__track { display: flex; gap: 22px; padding: 4px 0 6px; }
.realization-card { flex: 0 0 clamp(260px, 28vw, 360px); scroll-snap-align: start; }
.realization-card__button { width: 100%; padding: 0; border: 0; border-radius: 22px; overflow: hidden; background: #fff; text-align: left; box-shadow: var(--shadow-sm); transition: transform .25s ease, box-shadow .25s ease; }
.realization-card__button:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.realization-card__image-wrap { display: block; aspect-ratio: 76 / 52; overflow: hidden; background: var(--surface-alt); }
.realization-card__image-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.realization-card__button:hover img { transform: scale(1.035); }
.realization-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 18px 20px; }
.realization-card__meta strong { color: var(--ink); font-size: 1rem; line-height: 1.35; }
.realization-card__meta span { color: var(--purple); font-size: .85rem; font-weight: 760; }

/* Lightbox improvement */
.lightbox-overlay img { max-width: min(92vw, 1500px); max-height: 86vh; object-fit: contain; }

@media (max-width: 991px) {
  .home-hero__accent { width: 54vw; opacity: .72; }
  .realization-card { flex-basis: min(78vw, 340px); }
}
@media (max-width: 700px) {
  .home-hero__accent { width: 62vw; opacity: .56; }
  .realizations-carousel__controls { justify-content: space-between; margin-bottom: 14px; }
  .realizations-carousel__button { width: 44px; height: 44px; }
  .realization-card { flex-basis: 86vw; }
  .realization-card__meta { padding: 16px 16px 18px; }
  .realization-card__meta strong { font-size: .96rem; }
}


@media (max-width: 991px) { .home-hero__accent { width: 56vw; opacity: .82; } }
@media (max-width: 700px) { .home-hero__accent { width: 62vw; opacity: .70; } }
@media (prefers-reduced-motion: reduce) { .home-hero__accent, .home-hero__accent span { animation: none !important; } }


/* v6: selected static hero already includes the geometric effect */
.home-hero__accent { display: none !important; }


/* v6: hero tuning for selected static banner */
@media (max-width: 991px) {
  .home-hero { min-height: 560px; }
  .home-hero__media img { object-position: 72% center; }
}
@media (max-width: 700px) {
  .home-hero { min-height: 520px; }
  .home-hero__inner { padding-block: 54px 76px; }
  .home-hero__content { max-width: 100%; }
  .home-hero h1 { max-width: 310px; font-size: clamp(2.35rem, 11vw, 3.15rem); line-height: 1.04; }
  .home-hero__lead { max-width: 320px; margin-bottom: 24px; font-size: .97rem; line-height: 1.6; }
  .home-hero__actions { max-width: 280px; }
  .home-hero__media img { object-position: 78% center; transform: scale(1.02); }
  .home-hero__overlay { background: linear-gradient(90deg,rgba(5,14,28,.96) 0%,rgba(7,17,33,.88) 38%,rgba(10,19,37,.56) 72%,rgba(10,19,37,.25) 100%); }
  .hero-scroll { right: 16px; bottom: 16px; font-size: .68rem; }
}
@media (max-width: 430px) {
  .home-hero { min-height: 500px; }
  .home-hero__inner { padding-block: 48px 70px; }
  .home-hero h1 { max-width: 290px; font-size: clamp(2.15rem, 10.8vw, 2.8rem); }
  .home-hero__lead { max-width: 290px; font-size: .94rem; }
  .home-hero__media img { object-position: 80% center; transform: scale(1.05); }
}


/* v7: mobile centered layout */
@media (max-width: 700px) {
  .site-header__inner {
    position: relative;
    justify-content: center;
    gap: 0;
  }
  .site-logo {
    margin-inline: auto;
    flex: 0 0 auto;
  }
  .site-header__actions {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    margin-left: 0;
  }
  .mobile-nav .container,
  .mobile-nav__list,
  .mobile-nav__contact {
    text-align: center;
  }
  .mobile-nav__contact {
    justify-items: center;
  }

  .home-hero,
  .section,
  .section-heading,
  .about-home__content,
  .contact-form-intro,
  .faq-intro,
  .contact-form-card,
  .contact-info-card,
  .blog-card,
  .news-card__body,
  .service-card,
  .realization-card__meta,
  .page-content,
  .page-sidebar,
  .entry-details,
  .entry-header,
  .entry-desc,
  .submenubox,
  .site-footer,
  .site-footer__top,
  .site-footer__bottom-inner {
    text-align: center;
  }

  .home-hero__inner,
  .home-hero__content {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .home-hero__content .eyebrow,
  .home-hero h1,
  .home-hero__lead {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }
  .home-hero__actions {
    margin-left: auto;
    margin-right: auto;
    justify-items: center;
  }
  .home-hero__actions .button {
    width: min(100%, 350px);
    justify-content: center;
  }
  .hero-scroll {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
  }

  .trust-strip__inner {
    justify-content: center;
    gap: 34px;
    padding-inline: 12px;
  }

  .section-heading h2,
  .section-heading > p,
  .section-heading--split > p,
  .section-heading__actions,
  .section-heading__action,
  .section-heading__actions--stack,
  .contact-form-intro > p,
  .faq-intro p,
  .about-home__actions,
  .contact-direct,
  .news-card__meta,
  .portfolio-preview__item span,
  .realization-card__meta,
  .contact-form__footer,
  .site-footer__social,
  .site-footer__links,
  .site-footer__contact {
    justify-content: center;
    justify-items: center;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }

  .process-list,
  .contact-direct,
  .service-card__link,
  .news-card__link,
  .text-link,
  .contact-form__footer,
  .site-footer__brand,
  .site-footer__top,
  .site-footer__bottom-inner {
    align-items: center;
  }
  .process-list li {
    text-align: center;
    justify-items: center;
  }
  .process-list li span {
    margin-inline: auto;
  }

  .faq-item summary {
    justify-content: center;
    text-align: center;
    gap: 14px;
    padding-inline: 8px;
  }
  .faq-item__answer {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }

  .contact-form__grid,
  .contact-form__field,
  .contact-form__field label,
  .contact-form__field input,
  .contact-form__field textarea,
  .contact-form__field select {
    text-align: center;
  }
  .contact-form__field input,
  .contact-form__field textarea,
  .contact-form__field select {
    padding-left: 16px;
    padding-right: 16px;
  }

  .submenubox .sublist,
  .submenubox .sublist li,
  .submenubox .sublist a,
  .pagination,
  .pagination ul {
    text-align: center;
    justify-content: center !important;
  }

  .offer-item .entry-title,
  .offer-item .entry-header,
  .offer-item .entry-desc,
  .gallery .entry-bottom-title,
  .news .entry-header,
  .news .entry-desc,
  .contact-box,
  .whereuare,
  .page-hero__inner {
    text-align: center;
  }
}


/* support-page-v1 */
.page-hero--support {
  min-height: 390px;
  background-image: linear-gradient(110deg,rgba(25,10,34,.94),rgba(94,31,120,.68)), url('/public/default/images/bg/bg_page2.webp');
}
.support-section { background: linear-gradient(140deg,#f7f2f8,#fff 62%); }
.support-layout { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: clamp(44px,7vw,96px); align-items: start; }
.support-intro { position: sticky; top: calc(var(--header-height) + 32px); }
.support-intro > p { max-width: 610px; color: var(--muted); }
.support-intro > p a { font-weight: 760; }
.support-guide-card { display: grid; grid-template-columns: 58px 1fr; gap: 20px; margin-top: 34px; padding: 28px; border: 1px solid #e4d8e8; border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.support-guide-card__icon { display: inline-flex; width: 58px; height: 58px; align-items: center; justify-content: center; border-radius: 16px; background: var(--purple-soft); color: var(--purple); }
.support-guide-card__icon svg { width: 28px; height: 28px; }
.support-guide-card h3 { margin-bottom: 10px; }
.support-guide-card p { margin-bottom: 20px; color: var(--muted); }
.support-guide-card .button { width: 100%; min-height: 54px; padding: 13px 18px; line-height: 1.35; text-align: center; }
.support-form-card { scroll-margin-top: calc(var(--header-height) + 20px); }
.support-form .form-field + .form-field { margin-top: 18px; }
.support-form__footer p { max-width: 300px; }
.site-footer__support h2 a { color: #fff; }
.site-footer__support h2 a:hover { color: #ead5f0; }

@media (max-width: 991px) {
  .support-layout { grid-template-columns: 1fr; gap: 36px; }
  .support-intro { position: static; }
}

@media (max-width: 700px) {
  .support-layout,
  .support-intro,
  .support-guide-card,
  .support-form-card { text-align: center; }
  .support-guide-card { grid-template-columns: 1fr; justify-items: center; padding: 25px 20px; }
  .support-guide-card__icon { margin-inline: auto; }
  .support-guide-card .button { margin-inline: auto; }
  .support-form__footer { align-items: center; text-align: center; }

  .process-list {
    width: 100%;
    margin: 0 auto;
    padding: 0;
  }
  .process-list li {
    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 12px;
    width: 100%;
    padding: 26px 10px;
    text-align: center;
  }
  .process-list > li > span {
    display: inline-flex;
    min-width: 48px;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    border-radius: 12px;
    background: var(--purple-soft);
  }
  .process-list li > div {
    width: 100%;
    max-width: 390px;
    margin: 0 auto;
    text-align: center;
  }
}
