/* SanBioTech premium clean-tech theme — additive overrides only. */
:root {
    color-scheme: only light;
    --wow-bg: #f7fbfc;
    --wow-surface: rgba(255, 255, 255, .88);
    --wow-solid: #fff;
    --wow-text: #0d3039;
    --wow-muted: #587078;
    --wow-blue: #35a7d5;
    --wow-blue-dark: #137aa5;
    --wow-blue-soft: #e1f6fd;
    --wow-mint: #55c9a3;
    --wow-mint-dark: #26896d;
    --wow-mint-soft: #e3f8f0;
    --wow-line: rgba(20, 91, 105, .14);
    --wow-line-strong: rgba(20, 91, 105, .24);
    --wow-shadow: 0 24px 70px rgba(35, 99, 111, .11);
    --wow-shadow-small: 0 12px 34px rgba(35, 99, 111, .08);
    --wow-radius-lg: 28px;
    --wow-radius-md: 20px;
    --wow-ease: cubic-bezier(.2, .75, .25, 1);
}

html {
    color-scheme: only light;
    background: #ffffff;
}

html { scroll-padding-top: 92px; }
body,
body[data-color-theme] {
    --test-a: var(--wow-blue-dark);
    --test-a-dark: #0d617f;
    --test-b: var(--wow-mint-dark);
    --test-soft-1: var(--wow-blue-soft);
    --test-soft-2: var(--wow-mint-soft);
    --test-line: var(--wow-line-strong);
    margin: 0;
    color: var(--wow-text);
    background: var(--wow-bg);
    font-family: "Onest", Arial, sans-serif;
    font-weight: 400;
    letter-spacing: -.012em;
    overflow-x: clip;
}

/* Typography system: Onest 400 / 600 / 700 / 800 */
body,
button,
input,
select,
textarea {
    font-family: "Onest", Arial, sans-serif;
}

.nav a,
.btn,
.header__cta,
.burger,
.mobile-action a,
.services__carousel-button,
.theme-switcher__button,
.color-test__button,
.service-modal__close,
.callback-button {
    font-weight: 600;
}

h1,
h2,
h3,
h4,
h5,
h6,
.faq summary,
.service-icon__label {
    font-weight: 700;
}

.hero h1,
.section-title {
    font-weight: 800;
}

.promo-card__price,
.promo-card__price b,
.service-icon__price,
.service-modal__price-list b {
    font-weight: 700;
}
body[data-color-theme="blue"] {
    --test-a: #1686b7; --test-a-dark: #0d668e; --test-b: #40a8c7;
    --test-soft-1: #e4f6fd; --test-soft-2: #eefafd; --test-line: rgba(20, 116, 151, .24);
}
body[data-color-theme="green"] {
    --test-a: #258b6c; --test-a-dark: #196b52; --test-b: #62b890;
    --test-soft-1: #e9f8f1; --test-soft-2: #f2fbf7; --test-line: rgba(37, 124, 97, .23);
}
body::before {
    background:
        radial-gradient(ellipse 45% 28% at 5% 3%, var(--test-soft-1), transparent 72%),
        radial-gradient(ellipse 40% 30% at 96% 26%, var(--test-soft-2), transparent 74%),
        linear-gradient(180deg, #fbfefe, #f5fafb) !important;
}
body::after {
    opacity: .23;
    background-image:
        radial-gradient(circle, rgba(30, 116, 128, .18) 1px, transparent 1.4px),
        linear-gradient(rgba(30, 116, 128, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(30, 116, 128, .045) 1px, transparent 1px);
    background-size: 26px 26px, 78px 78px, 78px 78px;
}
*, *::before, *::after { box-sizing: border-box; }
::selection { background: #bcebdc; color: var(--wow-text); }
a { text-underline-offset: 3px; }
button, input, select, textarea { font: inherit; }
:where(a, button, input, select, summary, .service-icon):focus-visible {
    outline: 3px solid rgba(24, 142, 180, .42) !important;
    outline-offset: 3px !important;
}
.container { width: min(1200px, calc(100% - 48px)); padding-inline: 0; }
section { scroll-margin-top: 88px; }
.section-title {
    margin-bottom: 14px;
    color: var(--wow-text);
    font-size: clamp(36px, 4.8vw, 62px);
    font-weight: 760;
    line-height: .98;
    letter-spacing: -.055em;
}
.section-subtitle {
    max-width: 640px;
    margin: 0 auto 52px;
    color: var(--wow-muted);
    font-size: 17px;
    line-height: 1.6;
}

/* Header */
.header {
    background: #ffffff !important;
    border-bottom: 1px solid rgba(13, 48, 57, .08) !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    transition: box-shadow .3s ease, background .3s ease;
}
.header.is-scrolled { background: #ffffff !important; box-shadow: 0 10px 28px rgba(13, 48, 57, .07) !important; }
.header__inner { min-height: 88px; gap: 24px; }
.logo__horizontal { width: 220px; }
.nav { display: flex; gap: 2px; padding: 5px !important; border: 1px solid var(--wow-line) !important; border-radius: 999px !important; background: rgba(255,255,255,.65) !important; }
.nav a { padding: 9px 15px; border-radius: 999px !important; color: #38555d; font-size: 14px; font-weight: 650; }
.nav a:hover { color: var(--wow-text); background: var(--wow-blue-soft) !important; }
.header__contacts { gap: 2px; }
.phone { color: var(--wow-text); font-size: 15px; font-weight: 750; }
.work-hours { color: var(--wow-muted); font-size: 11px; }
.header__cta {
    min-height: 44px; display: inline-flex; align-items: center; padding: 0 18px;
    border: 0 !important; border-radius: 999px !important; box-shadow: 0 10px 24px rgba(26, 127, 132, .18);
}

/* Buttons */
.btn {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px !important;
    border: 1px solid transparent;
    box-shadow: 0 12px 28px rgba(31, 129, 139, .17) !important;
    font-weight: 750;
    transition: transform .25s var(--wow-ease), box-shadow .25s ease, background .25s ease;
}
.btn--primary, body[data-color-theme="mix"] .btn--primary,
.header__cta, body[data-color-theme="mix"] .header__cta,
.mobile-action__request, body[data-color-theme="mix"] .mobile-action__request {
    background: linear-gradient(120deg, var(--test-a), var(--test-b)) !important;
    color: #fff;
}
.btn:hover { transform: translateY(-2px); box-shadow: 0 17px 34px rgba(31, 129, 139, .23) !important; }
.btn:active { transform: translateY(0); }

/* Hero */
.hero, body[data-color-theme] .hero {
    min-height: 720px;
    padding: 104px 0 88px;
    color: var(--wow-text);
    background:
        radial-gradient(circle at 82% 18%, color-mix(in srgb, var(--test-soft-2) 88%, white), transparent 31%),
        radial-gradient(circle at 12% 78%, color-mix(in srgb, var(--test-soft-1) 88%, white), transparent 34%),
        linear-gradient(120deg, #fff 0%, #f2fafc 52%, #f3fbf7 100%) !important;
    border-bottom: 1px solid var(--wow-line) !important;
}
.hero::before {
    opacity: .48;
    background-image: radial-gradient(circle, rgba(37, 121, 128, .17) 1px, transparent 1.5px) !important;
    background-size: 24px 24px !important;
    mask-image: linear-gradient(100deg, #000 0%, transparent 68%);
}
.hero::after {
    right: -160px; top: -210px; width: 590px; height: 590px;
    border: 1px solid rgba(48, 164, 166, .18); border-radius: 50%;
    box-shadow: 0 0 0 78px rgba(73, 181, 188, .045), 0 0 0 160px rgba(79, 197, 159, .032);
}
.hero__inner { grid-template-columns: minmax(0, 1.35fr) minmax(340px, .65fr); gap: clamp(46px, 7vw, 94px); }
.hero__eyebrow { color: var(--test-a-dark) !important; font-size: 12px; letter-spacing: .14em; }
.hero__eyebrow span { width: 38px; background: linear-gradient(90deg, var(--test-a), var(--test-b)) !important; }
.hero h1 {
    max-width: 820px; margin-bottom: 28px; color: var(--wow-text);
    font-size: clamp(52px, 6vw, 82px); font-weight: 760; line-height: .94; letter-spacing: -.068em;
}
.hero__lead { max-width: 680px; color: #49666e !important; font-size: 19px; line-height: 1.62; }
.hero__actions { margin-bottom: 48px; }
.hero__actions .btn { padding-inline: 27px; }
.hero__phone, .hero__phone:hover, .hero__phone strong { color: var(--wow-text) !important; }
.hero__phone span { color: var(--wow-muted) !important; }
.hero__phone strong { font-size: 19px; letter-spacing: -.02em; }
.hero__trust { max-width: 760px; padding-top: 23px; border-top: 1px solid var(--wow-line-strong) !important; }
.hero__trust div { border-left: 1px solid var(--wow-line-strong) !important; }
.hero__trust div:first-child { border-left: 0 !important; }
.hero__trust strong { color: var(--wow-text) !important; font-size: 14px; }
.hero__trust span { color: var(--wow-muted) !important; margin-top: 3px; }
.hero__panel, body[data-color-theme] .hero__panel {
    padding: 38px;
    border: 1px solid rgba(32, 116, 123, .18) !important;
    border-radius: var(--wow-radius-lg);
    background: rgba(255,255,255,.82) !important;
    box-shadow: var(--wow-shadow) !important;
    backdrop-filter: blur(18px) saturate(1.15) !important;
    overflow: hidden;
}
.hero__panel::before {
    content: ''; position: absolute; inset: 0 auto 0 0; width: 5px;
    background: linear-gradient(var(--test-a), var(--test-b));
}
.hero__panel-label { padding: 7px 11px; border: 0 !important; border-radius: 999px !important; background: var(--test-soft-2) !important; color: var(--test-a-dark) !important; }
.hero__panel h2 { color: var(--wow-text); font-size: 31px; line-height: 1.1; }
.hero__panel p { color: var(--wow-muted) !important; line-height: 1.58; }
.hero__panel small { color: var(--wow-muted) !important; }

/* Hidden consultation block remains visually ready if re-enabled. */
.contact { padding: 78px 0; background: #f7fbfc !important; }
.contact__info { border-radius: var(--wow-radius-lg) !important; border: 1px solid var(--wow-line) !important; background: var(--wow-solid) !important; box-shadow: var(--wow-shadow-small) !important; }

/* Features: trust dashboard with varied weight */
.features, body[data-color-theme] .features {
    padding: 100px 0;
    background: linear-gradient(135deg, #edf9fc 0%, #f4fbf8 55%, #e9f7f1 100%) !important;
}
.features::before { width: 440px; height: 440px; opacity: .45; }
.features__grid { grid-template-columns: repeat(12, 1fr); gap: 18px; }
.feature, body[data-color-theme] .feature {
    grid-column: span 3;
    min-height: 250px;
    padding: 30px 26px;
    text-align: left;
    border: 1px solid var(--wow-line) !important;
    border-top: 1px solid var(--wow-line) !important;
    border-radius: var(--wow-radius-md) !important;
    background: rgba(255,255,255,.87) !important;
    box-shadow: var(--wow-shadow-small) !important;
}
.feature:nth-child(1), .feature:nth-child(4), .feature:nth-child(7) { grid-column: span 4; }
.feature:nth-child(1), .feature:nth-child(4) { min-height: 275px; }
.feature::before { top: 25px; right: 24px; color: #87a5aa; }
.feature::after { width: 160px; height: 160px; opacity: .65; background: radial-gradient(circle, var(--test-soft-1), transparent 70%); }
.feature__icon, body[data-color-theme] .feature__icon {
    width: 66px; height: 66px; margin: 0 0 28px;
    border: 1px solid var(--wow-line) !important; border-radius: 18px !important;
    background: linear-gradient(145deg, #fff, var(--test-soft-1)) !important;
    box-shadow: inset 0 1px 0 #fff, 0 12px 25px rgba(35, 104, 112, .09) !important;
}
.feature:nth-child(even) .feature__icon { background: linear-gradient(145deg, #fff, var(--test-soft-2)) !important; }
.feature__art { width: 45px; height: 45px; }
.feature h3 { margin-bottom: 10px; color: var(--wow-text); font-size: 20px; letter-spacing: -.025em; }
.feature p { color: var(--wow-muted); font-size: 14px; line-height: 1.6; }
.feature:hover { transform: translateY(-5px); border-color: var(--test-line) !important; box-shadow: var(--wow-shadow) !important; }

/* Services */
.services, body[data-color-theme] .services { padding: 104px 0; background: #fbfefe !important; }
.services__icons-grid { max-width: 1160px; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.service-icon, body[data-color-theme] .service-icon {
    min-height: 184px; padding: 26px 20px 22px; justify-content: flex-end;
    border: 1px solid var(--wow-line) !important; border-radius: 18px !important;
    background: #fff !important; box-shadow: 0 8px 26px rgba(31, 91, 102, .055) !important;
}
.service-icon::before { opacity: .55; background: linear-gradient(150deg, var(--test-soft-1), transparent 52%) !important; }
.service-icon::after {
    top: 24px; left: 24px; width: 76px; height: 76px;
    border: 0 !important; border-radius: 22px !important;
    background: linear-gradient(145deg, var(--test-soft-1), var(--test-soft-2)) !important;
    box-shadow: inset 0 0 0 1px rgba(27, 111, 116, .09) !important;
}
.service-icon:nth-child(3n + 2)::after { background: linear-gradient(145deg, var(--test-soft-2), #f8fffc) !important; }
.service-icon__emoji { align-self: flex-start; width: 52px; height: 52px; margin: 0 0 27px 13px; color: var(--test-a); filter: none; }
.service-icon__label { align-self: flex-start; color: var(--wow-text); font-size: 15px; font-weight: 720; line-height: 1.3; text-align: left; }
.service-icon:hover { transform: translateY(-5px) !important; border-color: var(--test-line) !important; box-shadow: 0 20px 45px rgba(28, 101, 111, .12) !important; }
.service-icon:hover::after { transform: scale(1.04) rotate(2deg); }
.service-icon:focus-visible { border-color: var(--test-a) !important; }

/* Processing route */
.preparation, body[data-color-theme] .preparation { padding: 104px 0; background: linear-gradient(145deg, #eff9f5, #f6fbfc) !important; }
.preparation__warning { width: max-content; max-width: 100%; margin-bottom: 42px; padding: 10px 18px; border: 1px solid rgba(194, 143, 28, .26); border-radius: 999px; background: rgba(255, 249, 227, .74); color: #755818; font-size: 14px; animation: none; }
.preparation__heading { margin-bottom: 36px; color: var(--wow-text); font-size: 25px; }
.preparation__grid { position: relative; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.preparation__grid::before { content: ''; position: absolute; left: 8%; right: 8%; top: 50%; height: 1px; background: linear-gradient(90deg, transparent, var(--wow-line-strong), transparent); }
.preparation-step, body[data-color-theme] .preparation-step {
    min-height: 210px; align-items: flex-start; padding: 32px;
    border: 1px solid var(--wow-line) !important; border-radius: var(--wow-radius-md) !important;
    background: rgba(255,255,255,.9) !important; box-shadow: var(--wow-shadow-small) !important;
}
.preparation-step::before { content: ''; width: 34px; height: 4px; margin-bottom: 21px; border-radius: 4px; background: linear-gradient(90deg, var(--test-a), var(--test-b)); }
.preparation-step h3 { color: var(--wow-text); font-size: 20px; letter-spacing: -.025em; }
.preparation-step p { color: var(--wow-muted); font-size: 14px; line-height: 1.58; text-align: left; }

/* FAQ */
.faq, body[data-color-theme] .faq { padding: 104px 0; background: #f4fafb !important; }
.faq__inner { gap: clamp(54px, 8vw, 110px); }
.faq__intro { top: 124px; }
.faq__intro .section-title { font-size: clamp(40px, 4.6vw, 58px); }
.faq__intro > p:not(.hero__eyebrow) { max-width: 390px; color: var(--wow-muted); line-height: 1.65; }
.faq__phone { padding-top: 24px; border-top: 1px solid var(--wow-line); color: var(--wow-muted); }
.faq__phone strong { color: var(--test-a-dark); }
.faq__list { border-top: 1px solid var(--wow-line-strong); }
.faq details { border-bottom: 1px solid var(--wow-line-strong); }
.faq summary { padding: 27px 55px 27px 0; color: var(--wow-text); font-size: 18px; }
.faq summary::after { right: 2px; top: 20px; width: 36px; height: 36px; border: 1px solid var(--wow-line-strong); border-radius: 50%; color: var(--test-a-dark); transition: transform .25s ease, background .25s ease; }
.faq details[open] summary::after { border-color: transparent; background: linear-gradient(135deg, var(--test-a), var(--test-b)); transform: rotate(180deg); }
.faq details p { color: var(--wow-muted); font-size: 15px; line-height: 1.72; }

/* CTA and forms */
.cta-section, body[data-color-theme] .cta-section {
    padding: 104px 0;
    background: radial-gradient(circle at 8% 20%, var(--test-soft-1), transparent 32%), radial-gradient(circle at 90% 80%, var(--test-soft-2), transparent 34%), #fbfefe !important;
    border-block: 1px solid var(--wow-line) !important;
}
.cta-form-wrap { gap: 22px; }
.cta-form, .cta-socials, .cta-map,
body[data-color-theme] .cta-form, body[data-color-theme] .cta-socials, body[data-color-theme] .cta-map {
    border: 1px solid var(--wow-line) !important; border-radius: var(--wow-radius-lg) !important;
    background: rgba(255,255,255,.93) !important; box-shadow: var(--wow-shadow-small) !important;
}
.cta-form { padding: 46px; border-top: 1px solid var(--wow-line) !important; }
.cta-form h3 { color: var(--wow-text); font-size: 31px; letter-spacing: -.04em; }
.form__label { color: var(--wow-text) !important; font-size: 13px; }
.form__input, .form__select, .cta-form .form__input, .cta-form .form__select {
    min-height: 54px; border: 1px solid var(--wow-line-strong) !important; border-radius: 13px !important;
    background: #fbfefe !important; color: var(--wow-text);
}
.form__input:focus, .form__select:focus { border-color: var(--test-a) !important; box-shadow: 0 0 0 4px color-mix(in srgb, var(--test-a) 15%, transparent) !important; }
.service-choice__grid { gap: 7px; border-color: var(--wow-line) !important; border-radius: 15px; background: #f6fafb; }
.service-choice__grid label { border-color: var(--wow-line); border-radius: 10px; color: var(--wow-text); }
.service-choice__grid label:has(input:checked) { border-color: var(--test-a); background: var(--test-soft-2); box-shadow: inset 3px 0 0 var(--test-a); }
.service-choice__grid input:checked { border-color: var(--test-a); background: var(--test-a); }
.cta-socials { padding: 30px; border-top: 1px solid var(--wow-line) !important; }
.cta-social { border-radius: 12px; }
.cta-map { overflow: hidden; border: 1px solid var(--wow-line) !important; }
.cta-map__service-zone {
    width: min(84%, 390px);
    border-width: 3px;
    border-color: rgba(25, 133, 154, .82);
    background: rgba(83, 201, 163, .13);
    box-shadow: inset 0 0 38px rgba(53, 167, 213, .12), 0 0 0 7px rgba(255,255,255,.46);
}
.cta-map__service-zone span { padding: 7px 12px; color: var(--wow-text); font-size: 12px; }

/* Modals */
.service-modal, .modal, .callback-modal { padding: 20px; background: rgba(8, 40, 48, .48); backdrop-filter: blur(12px); }
.service-modal__box, .modal__box, .callback-modal__box {
    max-height: min(760px, calc(100dvh - 40px)); overflow-y: auto;
    border: 1px solid rgba(255,255,255,.65) !important; border-radius: var(--wow-radius-lg) !important;
    background: #fbfefe !important; box-shadow: 0 34px 90px rgba(9, 49, 56, .26) !important;
}
.service-modal__icon { border: 1px solid var(--wow-line) !important; border-radius: 24px !important; background: linear-gradient(145deg, var(--test-soft-1), var(--test-soft-2)) !important; box-shadow: none !important; }
.service-modal__box h3, .callback-modal__title { color: var(--wow-text); letter-spacing: -.035em; }
.service-modal__price-list li { border-color: var(--wow-line); }
.service-modal__price-list li { align-items: baseline; gap: 18px; }
.service-modal__price-list li span { min-width: 0; line-height: 1.35; }
.service-modal__price-list li b { flex: 0 0 auto; white-space: nowrap; }
.service-modal__price-list b { color: var(--test-a-dark); }
.service-modal__close, .callback-modal__close { border: 1px solid var(--wow-line); border-radius: 50%; background: #fff; color: var(--wow-text); }
.callback-modal__icon { width: 64px; height: 64px; display: grid; place-items: center; margin: 0 auto 15px; border-radius: 20px; background: var(--test-soft-2); animation: none; }

/* Footer, switcher and mobile actions */
.footer, body[data-color-theme] .footer { color: var(--wow-text); background: linear-gradient(100deg, #e4f5fa, #e7f6ef) !important; }
.footer__inner { background: rgba(255,255,255,.76) !important; border-top: 1px solid var(--wow-line) !important; }
.footer a { color: var(--test-a-dark); }
.color-test { right: 18px; bottom: 18px; width: 150px; padding: 8px; border: 1px solid var(--wow-line-strong); border-radius: 16px; background: rgba(255,255,255,.9); box-shadow: var(--wow-shadow-small); }
.color-test__button { border-radius: 9px; background: #f1f7f8; }
.color-test__button.is-active { border-color: transparent; background: var(--wow-text); color: #fff; }

/* Optional reveal enhancement */
.wow-ui .hero__content, .wow-ui .hero__panel, .wow-ui .section-title, .wow-ui .section-subtitle,
.wow-ui .service-icon, .wow-ui .preparation-step, .wow-ui .faq__list, .wow-ui .cta-form-wrap {
    opacity: 0; transform: translateY(18px); transition: opacity .65s var(--wow-ease), transform .65s var(--wow-ease);
}
.wow-ui .wow-visible { opacity: 1; transform: none; }
.wow-ui .service-icon:nth-child(4n + 2) { transition-delay: .04s; }
.wow-ui .service-icon:nth-child(4n + 3) { transition-delay: .08s; }
.wow-ui .service-icon:nth-child(4n) { transition-delay: .12s; }

@media (max-width: 1050px) {
    .header__inner { gap: 15px; }
    .nav a { padding-inline: 11px; }
    .hero__inner { gap: 38px; }
    .features__grid { grid-template-columns: repeat(2, 1fr); }
    .feature, .feature:nth-child(1), .feature:nth-child(4), .feature:nth-child(7) { grid-column: auto; min-height: 240px; }
    .feature:last-child { grid-column: 1 / -1; min-height: 210px; }
    .services__icons-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 768px) {
    html { scroll-padding-top: 76px; }
    body { padding-bottom: 74px; }
    .container { width: min(100% - 32px, 1200px); }
    section { scroll-margin-top: 74px; }
    .header__inner { min-height: 72px; }
    .logo__horizontal { width: 146px; }
    .header__contacts, .header__cta { display: none !important; }
    .nav { display: none; }
    .nav.open { left: 10px; right: 10px; top: calc(100% + 4px); gap: 3px; padding: 12px; border: 1px solid var(--wow-line) !important; border-radius: 18px !important; background: #ffffff !important; box-shadow: var(--wow-shadow-small); }
    .nav.open { display: flex; flex-direction: column; position: absolute; }
    .nav.open a { padding: 13px 16px; border-radius: 11px !important; }
    .burger { width: 44px; height: 44px; border: 1px solid var(--wow-line); border-radius: 13px; background: #fff; align-items: center; justify-content: center; }
    .hero, body[data-color-theme] .hero { min-height: auto; padding: 62px 0 56px; }
    .hero__inner { grid-template-columns: minmax(0, 1fr); gap: 34px; }
    .hero h1 { font-size: clamp(42px, 12.5vw, 62px); line-height: .96; }
    .hero__lead { font-size: 17px; }
    .hero__actions { flex-direction: column; align-items: stretch; gap: 15px; margin-bottom: 34px; }
    .hero__actions .btn { width: 100%; }
    .hero__phone { width: 100%; align-items: center; padding-left: 0; text-align: center; }
    .hero__phone span, .hero__phone strong { width: 100%; display: block; text-align: center; }
    .hero__phone::before { left: 0; top: 50%; transform: translateY(-50%) rotate(-35deg); }
    .hero__trust { gap: 13px; }
    .hero__trust div, .hero__trust div:first-child { padding-left: 14px; border-left: 2px solid var(--test-a) !important; }
    .hero__panel { padding: 28px 24px; }
    .hero__panel h2 { font-size: 27px; }
    .features, .services, .preparation, .faq, .cta-section { padding: 76px 0 !important; }
    .section-title { font-size: clamp(35px, 10.5vw, 50px); }
    .section-subtitle { margin-bottom: 38px; }
    .features__grid {
        display: flex;
        width: calc(100% + 16px);
        margin: 30px -16px 0 0;
        padding: 8px 16px 24px 0;
        gap: 12px;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: inline mandatory;
        scroll-padding-left: 0;
        scrollbar-width: none;
    }
    .features__grid::-webkit-scrollbar { display: none; }
    .feature, .feature:nth-child(1), .feature:nth-child(4), .feature:nth-child(7), .feature:last-child,
    body[data-color-theme] .feature {
        flex: 0 0 min(82vw, 315px);
        min-width: 0;
        min-height: 270px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 30px 24px;
        text-align: center;
        scroll-snap-align: start;
    }
    .feature__icon, body[data-color-theme] .feature__icon { flex: 0 0 82px; width: 82px; height: 82px; margin: 0 auto 22px; }
    .feature__art { width: 50px; height: 50px; }
    .feature h3 { width: 100%; margin: 0 0 10px; font-size: 20px; line-height: 1.2; text-align: center; }
    .feature p { width: 100%; max-width: 255px; margin: 0; font-size: 14px; line-height: 1.5; text-align: center; }
    .services__icons-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .service-icon { min-height: 165px; padding: 20px 14px 17px; }
    .service-icon::after { top: 18px; left: 18px; width: 66px; height: 66px; border-radius: 19px !important; }
    .service-icon__emoji { width: 45px; height: 45px; margin: 0 0 25px 12px; }
    .service-icon__label { font-size: 14px; }
    .preparation__grid { grid-template-columns: 1fr; gap: 11px; }
    .preparation__grid::before { display: none; }
    .preparation-step { min-height: 0; display: block; padding: 25px; }
    .preparation-step::before { display: block; margin-bottom: 17px; }
    .preparation-step h3 { margin-bottom: 7px; }
    .faq__inner { gap: 38px; }
    .faq__intro .section-title { font-size: clamp(36px, 10vw, 48px); }
    .faq summary { padding-block: 23px; font-size: 17px; }
    .cta-form { padding: 29px 20px; }
    .cta-socials { padding: 25px 20px; }
    .service-choice__grid { grid-template-columns: 1fr; }
    .service-modal__box, .modal__box, .callback-modal__box { padding: 32px 22px; }
    .mobile-action { gap: 8px; padding: 8px 12px max(8px, env(safe-area-inset-bottom)); border-top: 1px solid var(--wow-line); background: rgba(250,254,254,.94); }
    .mobile-action a { min-height: 50px; border-radius: 999px; }
    .mobile-action__call { border-color: var(--test-a); color: var(--test-a-dark); }
    .color-test { left: 10px; right: 10px; bottom: 84px; border-radius: 14px; }
}


@media (max-width: 410px) {
    .container { width: min(100% - 28px, 1200px); }
    .logo__horizontal { width: 132px; }
    .hero { padding-top: 48px !important; }
    .hero h1 { font-size: clamp(38px, 11.3vw, 46px); }
    .hero__panel { padding: 25px 19px; }
    .services__icons-grid { gap: 8px; }
    .service-icon { min-height: 154px; padding-inline: 12px; }
    .service-icon::after { left: 15px; width: 61px; height: 61px; }
    .service-icon__emoji { width: 41px; height: 41px; margin-left: 10px; }
    .service-icon__label { font-size: 13px; overflow-wrap: anywhere; }
    .cta-socials__links { grid-template-columns: 1fr 1fr; }
    .color-test__button { font-size: 10px; }
}

@media (prefers-reduced-motion: reduce) {
    html:focus-within { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
    .wow-ui .hero__content, .wow-ui .hero__panel, .wow-ui .section-title, .wow-ui .section-subtitle,
    .wow-ui .service-icon, .wow-ui .preparation-step, .wow-ui .faq__list, .wow-ui .cta-form-wrap { opacity: 1; transform: none; }
}

@supports not (color: color-mix(in srgb, white, black)) {
    .hero, body[data-color-theme] .hero { background: linear-gradient(120deg, #fff, var(--test-soft-1), var(--test-soft-2)) !important; }
    .form__input:focus, .form__select:focus { box-shadow: 0 0 0 4px rgba(35, 151, 179, .14) !important; }
}

/* Reference-accurate composition pass */
main { display: flex; flex-direction: column; }
.hero { order: 1; }
.contact { order: 2; }
.services { order: 3; }
.features { order: 4; }
.preparation { order: 5; }
.faq { order: 6; }
.cta-section { order: 7; }

.header__inner { min-height: 72px; }
.logo__horizontal { width: 184px; }
.nav { gap: 0; border: 0 !important; background: transparent !important; }
.nav a { padding: 8px 12px; font-size: 12px; }
.header__contacts { margin-left: auto; }
.header__cta { min-height: 40px; padding-inline: 20px; border-radius: 8px !important; font-size: 12px; }

.hero, body[data-color-theme] .hero { min-height: 620px; padding: 58px 0 54px; }
.contact { display: none; }
.hero__inner { grid-template-columns: minmax(0,1fr) 315px; gap: 34px; }
.hero__content { position: relative; z-index: 2; }
.hero h1 { max-width: 610px; font-size: clamp(45px, 4.4vw, 64px); line-height: 1.02; }
.hero h1 span { color: #22a672; }
.hero h1::first-line { color: var(--wow-text); }
.hero__lead { max-width: 480px; font-size: 16px; line-height: 1.55; }
.hero__eyebrow { margin-bottom: 20px; padding: 6px 10px; width: max-content; border: 1px solid rgba(38,133,177,.16); border-radius: 999px; background: rgba(225,245,253,.72); }
.hero__eyebrow span { width: 13px; height: 13px; border: 1px solid var(--test-a); border-radius: 50%; background: transparent !important; }
.hero__actions { gap: 18px; margin-bottom: 30px; }
.hero__actions .btn { min-width: 210px; border-radius: 8px !important; }
.hero__phone { position: relative; padding-left: 50px; }
.hero__phone::before { display: none; }
.hero__phone-icon { position: absolute; left: 0; top: 50%; width: 40px; height: 40px; padding: 9px; transform: translateY(-50%); border: 1px solid #8bcab8; border-radius: 50%; color: var(--wow-mint-dark); background: rgba(255,255,255,.72); }
.hero__trust { max-width: 620px; gap: 0; padding: 0; border: 1px solid var(--wow-line) !important; border-radius: 17px; background: rgba(255,255,255,.76); box-shadow: 0 10px 30px rgba(28,94,107,.08); }
.hero__trust div { min-height: 70px; justify-content: center; padding: 0 18px !important; }
.hero__visual { position: absolute; z-index: 1; left: 53%; top: 50%; width: 450px; max-width: none; transform: translate(-50%,-48%) perspective(900px) rotateX(var(--shield-rotate-x, 0deg)) rotateY(var(--shield-rotate-y, 0deg)); transform-style: preserve-3d; will-change: transform; transition: transform 180ms ease-out; filter: drop-shadow(0 22px 32px rgba(32,130,174,.14)); pointer-events: none; }
.hero__panel { position: relative; z-index: 2; padding: 30px 28px; border-radius: 20px !important; }
.hero__panel h2 { font-size: 25px; }
.hero__panel p { font-size: 14px; }
.hero__panel .btn { border-radius: 8px !important; }

.services, body[data-color-theme] .services { padding: 72px 0 60px; background: rgba(255,255,255,.82) !important; }
.services .section-title { font-size: clamp(30px, 3vw, 44px); }
.services .section-title::first-letter { color: inherit; }
.services__heading-row { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin: 0 0 30px; }
.services__heading-row .section-subtitle { margin: 0; text-align: left; }
.services__carousel-controls { display: flex; flex: 0 0 auto; gap: 9px; }
.services__carousel-button { width: 46px; height: 46px; display: grid; place-items: center; padding: 0; border: 1px solid var(--wow-line-strong); border-radius: 50%; background: #fff; color: var(--wow-text); font-size: 20px; cursor: pointer; box-shadow: 0 8px 20px rgba(31,91,102,.07); transition: transform .2s ease, color .2s ease, border-color .2s ease, opacity .2s ease; }
.services__carousel-button:hover:not(:disabled) { transform: translateY(-2px); border-color: var(--test-a); color: var(--test-a); }
.services__carousel-button:disabled { opacity: .3; cursor: default; }
.services__icons-grid {
    display: flex;
    max-width: 1160px;
    gap: 16px;
    margin-bottom: 16px;
    padding: 6px 4px 26px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline mandatory;
    scroll-padding-inline: 4px;
    scrollbar-width: thin;
    scrollbar-color: rgba(31,125,143,.28) transparent;
}
.services__icons-grid::-webkit-scrollbar { height: 5px; }
.services__icons-grid::-webkit-scrollbar-track { background: transparent; }
.services__icons-grid::-webkit-scrollbar-thumb { border-radius: 99px; background: rgba(31,125,143,.28); }
.service-icon, body[data-color-theme] .service-icon { min-height: 250px; padding: 22px 18px 18px; justify-content: flex-start; border-radius: 18px !important; }
.service-icon, body[data-color-theme] .service-icon { flex: 0 0 calc((100% - 64px) / 5); scroll-snap-align: start; }
.service-icon::after { display: none; }
.service-icon::before { content: ''; position: absolute; inset: 0; }
.service-icon__emoji { align-self: center; width: 64px; height: 64px; margin: 0 0 22px; padding: 13px; border-radius: 50%; background: var(--test-soft-1); color: #0874dc; }
.service-icon__label { align-self: stretch; text-align: center; font-size: 14px; }
.service-icon__description { display: block; order: 3; margin-top: 12px; color: var(--wow-muted); font-size: 11px; line-height: 1.45; text-align: center; }
.service-icon__price { display: block; order: 4; margin-top: auto; padding-top: 13px; color: var(--wow-text); font-size: 12px; font-weight: 800; }

.features, body[data-color-theme] .features { padding: 58px 0 64px; background: linear-gradient(180deg,#f8fcfd,#edf8f5) !important; }
.features .section-title { font-size: clamp(28px,3vw,40px); }
.features .section-subtitle { display: none; }
.features__grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-top: 30px; }
.feature, .feature:nth-child(1), .feature:nth-child(4), .feature:nth-child(7), .feature:last-child,
body[data-color-theme] .feature { grid-column: auto; min-height: 250px; padding: 28px 17px; text-align: center; border-radius: 14px !important; box-shadow: 0 8px 22px rgba(31,91,102,.05) !important; }
.feature::before, .feature::after { display: none; }
.feature__icon, body[data-color-theme] .feature__icon { width: 80px; height: 80px; margin: 0 auto 19px; border: 0 !important; border-radius: 50% !important; background: var(--test-soft-2) !important; box-shadow: none !important; }
.feature__art { width: 50px; height: 50px; }
.feature h3 { margin: 0 0 10px; font-size: 18px; line-height: 1.25; }
.feature p { font-size: 14px; line-height: 1.5; }

.preparation, body[data-color-theme] .preparation { padding: 60px 0; background: #fbfefe !important; }
.preparation .section-title { font-size: clamp(28px,3vw,40px); }
.preparation__warning { display: none; }
.preparation__heading { display: none; }
.preparation__grid { grid-template-columns: repeat(6,minmax(0,1fr)); gap: 0; margin-top: 38px; }
.preparation__grid::before { left: 8%; right: 8%; top: 24px; background: repeating-linear-gradient(90deg, #a8dcec 0 5px, transparent 5px 10px); }
.preparation-step, body[data-color-theme] .preparation-step { min-height: 230px; padding: 0 16px; align-items: center; text-align: center; border: 0 !important; background: transparent !important; box-shadow: none !important; }
.preparation-step::before { display: none; }
.preparation-step__icon, body[data-color-theme] .preparation-step__icon {
    position: relative;
    z-index: 1;
    width: 82px;
    height: 82px;
    display: grid;
    place-items: center;
    margin: 0 auto 21px;
    border: 1px solid #86cee5 !important;
    border-radius: 50% !important;
    background: linear-gradient(145deg, #fff, var(--test-soft-1)) !important;
    box-shadow: 0 0 0 8px #f8fcfd, 0 8px 20px rgba(32,121,148,.10) !important;
    color: var(--test-a);
    animation: none !important;
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.preparation-step:nth-child(even) .preparation-step__icon { border-color: #82cdb2 !important; color: var(--wow-mint-dark); background: linear-gradient(145deg,#fff,var(--test-soft-2)) !important; }
.preparation-step__icon svg { width: 50px; height: 50px; display: block; overflow: visible; }
.preparation-step:hover .preparation-step__icon { transform: translateY(-4px); border-color: var(--test-a) !important; box-shadow: 0 0 0 8px #f8fcfd, 0 13px 26px rgba(32,121,148,.16) !important; }
.preparation-step h3 { font-size: 18px; line-height: 1.25; }
.preparation-step p { font-size: 14px; line-height: 1.5; text-align: center; }

.faq, body[data-color-theme] .faq { padding: 62px 0; }
.faq__inner { display: block; max-width: 760px; }
.faq__intro { position: static; width: 100%; margin: 0 auto; text-align: center; }
.faq__intro .hero__eyebrow, .faq__intro > p:not(.hero__eyebrow), .faq__phone { display: none; }
.faq__intro .section-title { max-width: none; margin-inline: auto; text-align: center; font-size: clamp(28px,3vw,40px); }
.faq__list { width: 100%; margin: 30px auto 0; padding: 0 22px; border: 1px solid var(--wow-line); border-radius: 16px; background: #fff; box-shadow: var(--wow-shadow-small); }
.faq summary { min-height: 64px; display: flex; align-items: center; padding: 16px 52px 16px 0; font-size: 13px; }
.faq summary::after { top: 50%; right: 0; width: 30px; height: 30px; line-height: 1; transform: translateY(-50%); }
.faq details[open] summary::after { transform: translateY(-50%) rotate(180deg); }
.faq details p { font-size: 12px; }

.cta-section, body[data-color-theme] .cta-section { padding: 64px 0; }
.cta-section > .container > .section-title { font-size: clamp(30px,3.5vw,46px); }
.footer, body[data-color-theme] .footer { color: #fff; background: #052e58 !important; }
.footer__inner {
    min-height: 176px;
    display: grid;
    grid-template-columns: 120px auto auto minmax(260px, 1fr);
    grid-template-rows: 1fr;
    align-items: center;
    gap: 26px;
    padding-block: 30px;
    padding-left: 24px;
    padding-right: max(24px, calc((100vw - 1160px) / 2));
    color: #fff;
    background: linear-gradient(110deg,#052b53,#063664) !important;
    border: 0 !important;
}
.footer__logo { width: 120px; height: 120px; }
.footer__brand { justify-self: start; align-self: center; }
.footer__socials { display: flex; align-items: center; gap: 9px; justify-self: start; }
.footer__socials a { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.34); border-radius: 50%; color: #fff; font-size: 12px; font-weight: 800; text-decoration: none; transition: transform .2s ease, background .2s ease, border-color .2s ease; }
.footer__socials svg { width: 20px; height: 20px; display: block; fill: currentColor; }
.footer__socials a:hover { transform: translateY(-2px); border-color: rgba(255,255,255,.75); background: rgba(255,255,255,.1); }
.footer__contacts-list { justify-self: start; white-space: nowrap; }
.footer__copyright { align-self: end; justify-self: end; text-align: right; font-size: 13px; }
.footer a { color: #fff; }
.footer__logo { filter: brightness(0) invert(1); }

@media (max-width: 1050px) {
    .hero__inner { grid-template-columns: minmax(0,1fr) minmax(250px,.7fr); }
    .hero__visual { left: 54%; width: 390px; opacity: .34; }
    .service-icon, body[data-color-theme] .service-icon { flex-basis: calc((100% - 32px) / 3); }
    .features__grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
    .preparation__grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px 0; }
    .preparation__grid::before { display: none; }
}

@media (max-width: 768px) {
    .header__inner { min-height: 66px; }
    .hero, body[data-color-theme] .hero { padding: 48px 0 34px; }
    .hero__inner { grid-template-columns: 1fr; }
    .hero__visual { left: auto; right: -190px; top: 60px; width: 450px; opacity: .18; transform: none; }
    .hero h1 { max-width: 350px; font-size: clamp(34px,10.2vw,44px); }
    .hero__lead { max-width: 330px; font-size: 13px; }
    .hero__panel { margin-top: 2px; }
    .hero__trust { display: none; }
    .hero__phone { width: 100%; align-items: center; padding-left: 0; text-align: center; }
    .hero__phone span, .hero__phone strong { width: 100%; display: block; text-align: center; }
    .hero__phone-icon { left: max(0px, calc(50% - 190px)); }
    .services__heading-row { align-items: center; margin-bottom: 22px; }
    .services__heading-row .section-subtitle { font-size: 14px; }
    .services__carousel-button { width: 42px; height: 42px; }
    .services__icons-grid { width: calc(100% + 16px); margin-right: -16px; padding-right: 16px; }
    .service-icon, body[data-color-theme] .service-icon { flex-basis: min(76vw, 285px); }
    .service-icon, body[data-color-theme] .service-icon { min-height: 225px; }
    .features__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .preparation .container { overflow: visible; }
    .preparation__grid {
        display: flex;
        width: calc(100% + 16px);
        margin: 30px -16px 0 0;
        padding: 8px 16px 24px 0;
        gap: 12px;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: inline mandatory;
        scroll-padding-left: 0;
        scrollbar-width: none;
    }
    .preparation__grid::-webkit-scrollbar { display: none; }
    .preparation-step, body[data-color-theme] .preparation-step {
        flex: 0 0 min(82vw, 315px);
        min-width: 0;
        min-height: 260px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 30px 24px;
        border: 1px solid var(--wow-line) !important;
        border-radius: 22px !important;
        background: rgba(255,255,255,.94) !important;
        box-shadow: 0 14px 34px rgba(31,91,102,.09) !important;
        text-align: center;
        scroll-snap-align: start;
    }
    .preparation-step__icon, body[data-color-theme] .preparation-step__icon {
        flex: 0 0 82px;
        width: 82px;
        height: 82px;
        margin: 0 auto 22px;
    }
    .preparation-step__icon svg { width: 50px; height: 50px; }
    .preparation-step h3 {
        width: 100%;
        margin: 0 0 10px;
        font-size: 20px;
        line-height: 1.2;
        text-align: center;
        overflow-wrap: normal;
        word-break: normal;
    }
    .preparation-step p {
        width: 100%;
        max-width: 250px;
        margin: 0;
        font-size: 14px;
        line-height: 1.5;
        text-align: center;
        overflow-wrap: normal;
        word-break: normal;
    }
    .color-test {
        position: relative;
        left: auto;
        right: auto;
        bottom: auto;
        width: calc(100% - 28px);
        margin: 14px auto 88px;
    }
    .footer__inner {
        min-height: 0;
        grid-template-columns: 90px minmax(0, 1fr);
        grid-template-rows: auto auto auto;
        align-items: center;
        gap: 18px 22px;
        padding-block: 24px;
        padding-inline: 16px;
    }
    .footer__logo { width: 90px; height: 90px; }
    .footer__socials { justify-self: start; flex-wrap: wrap; }
    .footer__socials a { width: 36px; height: 36px; }
    .footer__contacts-list { grid-column: 1 / -1; justify-self: start; white-space: normal; }
    .footer__copyright { grid-column: 1 / -1; justify-self: end; padding-top: 14px; text-align: right; }
}

@media (max-width: 390px) {
    .services__heading-row { align-items: flex-start; }
    .services__heading-row .section-subtitle { max-width: 205px; }
    .services__carousel-controls { gap: 6px; }
    .services__carousel-button { width: 38px; height: 38px; }
    .services__icons-grid { gap: 10px; }
    .service-icon, body[data-color-theme] .service-icon { min-height: 215px; padding-inline: 12px; }
    .service-icon__description { font-size: 10px; }
    .preparation__grid { width: calc(100% + 14px); margin-right: -14px; padding-right: 14px; }
    .preparation-step, body[data-color-theme] .preparation-step { flex-basis: 84vw; min-height: 250px; padding: 27px 20px; }
    .features__grid { width: calc(100% + 14px); margin-right: -14px; padding-right: 14px; }
    .feature, .feature:nth-child(1), .feature:nth-child(4), .feature:nth-child(7), .feature:last-child,
    body[data-color-theme] .feature { flex-basis: 84vw; min-height: 260px; padding: 27px 20px; }
}

/* Mobile hardening: keep inline SVGs bounded and align swipe sections uniformly. */
@media (max-width: 768px) {
    .hero__phone {
        display: grid !important;
        grid-template-columns: 30px max-content;
        grid-template-rows: auto auto;
        column-gap: 10px;
        align-items: center;
        justify-content: center;
        width: 100%;
        max-width: 100%;
        margin-inline: auto;
        padding: 0 !important;
        text-align: left;
    }
    .hero__phone-icon {
        position: static !important;
        grid-row: 1 / span 2;
        width: 30px !important;
        height: 30px !important;
        max-width: 30px !important;
        padding: 6px;
        transform: none !important;
    }
    .hero__phone span,
    .hero__phone strong {
        grid-column: 2;
        width: auto !important;
        text-align: left !important;
    }
    .hero__phone span { align-self: end; }
    .hero__phone strong { align-self: start; }

    .features .container,
    .preparation .container { overflow: visible; }
    .features__grid,
    .preparation__grid {
        display: flex !important;
        grid-template-columns: none !important;
        width: calc(100% + 16px);
        margin: 30px -16px 0 0;
        padding: 8px 16px 24px 0;
        gap: 12px;
        overflow-x: auto;
        overflow-y: hidden;
        overscroll-behavior-inline: contain;
        scroll-snap-type: inline mandatory;
        scrollbar-width: none;
    }
    .features__grid::-webkit-scrollbar,
    .preparation__grid::-webkit-scrollbar { display: none; }
    .features__grid::before,
    .preparation__grid::before { display: none !important; }
    .feature,
    .feature:nth-child(1),
    .feature:nth-child(4),
    .feature:nth-child(7),
    .feature:last-child,
    body[data-color-theme] .feature,
    .preparation-step,
    body[data-color-theme] .preparation-step {
        flex: 0 0 min(82vw, 315px) !important;
        min-width: 0 !important;
        min-height: 270px;
        display: flex !important;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 30px 24px !important;
        border: 1px solid var(--wow-line) !important;
        border-radius: 22px !important;
        background: rgba(255,255,255,.94) !important;
        box-shadow: 0 14px 34px rgba(31,91,102,.09) !important;
        text-align: center !important;
        scroll-snap-align: start;
    }
    .feature__icon,
    .preparation-step__icon,
    body[data-color-theme] .feature__icon,
    body[data-color-theme] .preparation-step__icon {
        position: static !important;
        flex: 0 0 82px;
        width: 82px !important;
        height: 82px !important;
        margin: 0 auto 22px !important;
        transform: none !important;
    }
    .feature__icon svg,
    .preparation-step__icon svg {
        width: 50px !important;
        height: 50px !important;
        max-width: 50px !important;
    }
    .feature h3,
    .preparation-step h3,
    .feature p,
    .preparation-step p {
        width: 100% !important;
        max-width: 255px;
        margin-inline: auto;
        text-align: center !important;
        overflow-wrap: normal;
        word-break: normal;
    }
    .feature h3,
    .preparation-step h3 { margin-bottom: 10px; font-size: 20px; line-height: 1.2; }
    .feature p,
    .preparation-step p { font-size: 14px; line-height: 1.5; }

    .footer__logo {
        width: 90px !important;
        height: 90px !important;
        max-width: 90px !important;
        object-fit: contain;
    }
    .footer__socials a {
        display: inline-grid !important;
        place-items: center;
        width: 36px !important;
        height: 36px !important;
    }
    .footer__socials svg {
        display: block !important;
        width: 18px !important;
        height: 18px !important;
        max-width: 18px !important;
        max-height: 18px !important;
    }
    .footer__contacts-list svg {
        width: 17px !important;
        height: 17px !important;
        max-width: 17px !important;
    }
}

/* Dark graphite copy inside cards for stronger readability. */
.hero__panel,
.service-icon,
.feature,
.preparation-step,
.faq__list,
.cta-form,
.cta-socials,
.cta-map,
.service-modal__box,
.modal__box,
.callback-modal__box {
    color: #263238;
}

.hero__panel h2,
.service-icon__label,
.feature h3,
.preparation-step h3,
.faq summary,
.cta-form h3,
.cta-socials h3,
.service-modal__box h3,
.modal__box h3,
.callback-modal__title {
    color: #132f36 !important;
}

.hero__panel p,
.hero__panel small,
.service-icon__description,
.feature p,
.preparation-step p,
.faq details p,
.cta-socials > p,
.service-modal__box > p,
.service-modal__box small,
.modal__box > p,
.callback-modal__subtitle,
.service-choice__hint,
.form__consent,
.cta-map__caption {
    color: #36474f !important;
}

.form__label,
.service-choice legend,
.service-choice__grid label,
.service-modal__price-list li,
.service-modal__price-list li span {
    color: #263238 !important;
}

.form__input,
.form__select,
.callback-modal__form input {
    color: #172b31 !important;
}

.form__input::placeholder,
.callback-modal__form input::placeholder {
    color: #59686d !important;
    opacity: 1;
}

/* Final weight map — kept last so legacy theme rules cannot override it. */
body { font-weight: 400; }
.nav a,
.btn,
.header__cta,
.burger,
.mobile-action a,
.services__carousel-button,
.theme-switcher__button,
.color-test__button,
.service-modal__close,
.callback-button { font-weight: 600; }
h1,
h2,
h3,
h4,
h5,
h6,
.faq summary,
.service-icon__label { font-weight: 700; }
.hero h1,
.section-title { font-weight: 800; }
.promo-card__price,
.promo-card__price b,
.service-icon__price,
.service-modal__price-list b { font-weight: 700; }

/* Pre-deploy readability pass */
@media (min-width: 1051px) {
    .nav a {
        padding: 10px 14px;
        color: #173c45;
        font-size: 15px;
        font-weight: 700;
        line-height: 1.2;
    }
}

.hero,
body[data-color-theme] .hero {
    background:
        radial-gradient(circle at 78% 36%, rgba(221, 249, 241, .48), transparent 29%),
        linear-gradient(105deg, #fff 0%, #fff 55%, #f7fdfb 100%) !important;
}
.hero::before { opacity: .2; }
.hero::after {
    border-color: rgba(48, 164, 166, .1);
    box-shadow: 0 0 0 78px rgba(73, 181, 188, .025), 0 0 0 160px rgba(79, 197, 159, .018);
}
.hero h1 { color: #092f38; }
.hero__lead {
    color: #294c55 !important;
    font-size: 17px;
    line-height: 1.65;
}
.hero__phone span,
.hero__trust span,
.hero__panel p,
.hero__panel small { color: #49656d !important; }
.hero__panel,
body[data-color-theme] .hero__panel {
    background: rgba(255, 255, 255, .96) !important;
    border-color: rgba(32, 116, 123, .22) !important;
}

@media (max-width: 768px) {
    html,
    body { max-width: 100%; overflow-x: clip; }
    .hero,
    body[data-color-theme] .hero {
        background: linear-gradient(180deg, #fff 0%, #f8fdfc 100%) !important;
    }
    .hero::before { opacity: .12; }
    .hero__visual {
        right: -205px;
        top: 150px;
        opacity: .09;
    }
    .hero__content,
    .hero__panel { position: relative; z-index: 2; }
    .hero h1 { max-width: 100%; }
    .hero__lead {
        max-width: 100%;
        color: #294c55 !important;
        font-size: 15px;
        line-height: 1.58;
    }
    .hero__panel p { color: #3d5c64 !important; }
    .mobile-action {
        grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
        width: 100%;
    }
    .mobile-action a {
        min-width: 0;
        padding: 0 8px;
        font-size: 12px;
        line-height: 1.2;
        text-align: center;
        white-space: normal;
        overflow-wrap: anywhere;
    }
    img,
    svg { max-width: 100%; }
    input,
    select,
    textarea,
    button { min-width: 0; }
}

@media (max-width: 410px) {
    .hero h1 {
        font-size: clamp(34px, 10vw, 40px);
        line-height: 1.04;
        letter-spacing: -.055em;
    }
    .hero__eyebrow {
        max-width: 100%;
        font-size: 10px;
        letter-spacing: .1em;
        white-space: normal;
    }
    .hero__panel { padding-inline: 18px; }
    .hero__panel h2 {
        font-size: 22px;
        overflow-wrap: anywhere;
    }
}

/* Keep consultation-card copy graphite after responsive hero overrides. */
.hero__panel p,
.hero__panel small { color: #36474f !important; }

/* Larger card typography on desktop and tablet. */
.service-icon,
body[data-color-theme] .service-icon { min-height: 280px; }
.service-icon__label {
    font-size: 18px;
    line-height: 1.3;
}
.service-icon__description {
    font-size: 14px;
    line-height: 1.55;
}
.service-icon__price {
    font-size: 16px;
    line-height: 1.3;
}
.feature h3,
.preparation-step h3 {
    font-size: 20px;
    line-height: 1.3;
}
.feature,
body[data-color-theme] .feature { min-height: 300px; }
.preparation-step,
body[data-color-theme] .preparation-step { min-height: 320px; }
.feature p,
.preparation-step p {
    font-size: 16px;
    line-height: 1.58;
}
.faq summary {
    font-size: 17px;
    line-height: 1.4;
}
.faq details p {
    font-size: 15px;
    line-height: 1.65;
}
.hero__panel p,
.cta-form,
.cta-socials,
.form__label,
.service-choice__grid label,
.service-modal__box,
.callback-modal__box {
    font-size: 15px;
    line-height: 1.55;
}
.service-modal__price-list li {
    font-size: 16px;
    line-height: 1.45;
}
