/* =========================================================================
   Зенит — a stretch-ceiling theme (child of Default).

   Everything of the Default theme is kept — templates/base.twig links the
   Default stylesheets and the modules' ones first, then this file, so it
   only has to override.

   ART DIRECTION
   Palette: deep navy and cold paper-white, with one luminous accent — the
   mint of a recessed spot light (#5CF0C0). The page is ice (#F4F7FB), the dark
   bands are navy (#0B1B3A) with a soft cone of light and a few dotted "spots"
   on them, like a ceiling seen from below. The accent is a light, not a
   paint: a fill under navy text, a glow, a thin ring — never text on white.

   Type: Onest, light and tight (weight 300–500, sentence case, tracking
   -0.02em) — architectural, calm, big. Inter for running text.

   Form: generous radii (20px, adjustable), pill buttons, glossy sheen on
   cards (a diagonal highlight, like light on a stretched sheet), no hard
   rules. The calculator is the hero: a big white sheet floating on navy.

   The site's own design settings (/design.css, loaded after this file) are
   deliberately outranked — :root:root and :not(#zn) — so the theme keeps
   its character on any site it is switched on for.
   ========================================================================= */

@font-face {
    font-family: 'Zenit Onest';
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url('/themes/default/assets/fonts/onest-cyrillic-wght-normal.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Zenit Onest';
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url('/themes/default/assets/fonts/onest-latin-wght-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Zenit Inter';
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url('/themes/default/assets/fonts/inter-cyrillic-wght-normal.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Zenit Inter';
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url('/themes/default/assets/fonts/inter-latin-wght-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Zenit Manrope';
    font-style: normal;
    font-display: swap;
    font-weight: 200 800;
    src: url('/themes/default/assets/fonts/manrope-cyrillic-wght-normal.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Zenit Manrope';
    font-style: normal;
    font-display: swap;
    font-weight: 200 800;
    src: url('/themes/default/assets/fonts/manrope-latin-wght-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Zenit Unbounded';
    font-style: normal;
    font-display: swap;
    font-weight: 200 900;
    src: url('/themes/default/assets/fonts/unbounded-cyrillic-wght-normal.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Zenit Unbounded';
    font-style: normal;
    font-display: swap;
    font-weight: 200 900;
    src: url('/themes/default/assets/fonts/unbounded-latin-wght-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* The owner's design settings (theme.json → design.controls). Core prints
   the chosen values as :root{--zenit-…} after this file, so these are only
   the defaults; the tokens below derive from them. Variants (data-zenit-…)
   are at the end of this file. */
:root {
    --zenit-accent: #5cf0c0;
    --zenit-font-display: 'Zenit Onest', 'Onest', 'Segoe UI', Arial, sans-serif;
    --zenit-font-body: 'Zenit Inter', 'Inter', 'Segoe UI', Arial, system-ui, sans-serif;
    --zenit-radius: 20px;
}

/* -------------------------------------------------------------------------
   1. Tokens
   ------------------------------------------------------------------------- */

:root:root {
    --zn-a: var(--zenit-accent);
    --zn-a-hi: color-mix(in srgb, var(--zn-a), #ffffff 30%);
    --zn-a-deep: color-mix(in srgb, var(--zn-a), #0b1b3a 52%);
    --zn-a-ink: color-mix(in srgb, var(--zn-a), #0b1b3a 74%);
    --zn-n-950: #060f22;
    --zn-n-900: #0b1b3a;
    --zn-n-800: #12264b;
    --zn-n-700: #1c3563;
    --zn-n-600: #2d4a80;
    --zn-n-300: #9fb0cf;
    --zn-ice: #f4f7fb;
    --zn-mist: #e8eef7;
    --zn-line: #dbe3ef;
    --zn-r: var(--zenit-radius);
    --zn-r-sm: calc(var(--zenit-radius) * 0.6);
    --zn-glow: radial-gradient(60% 80% at 50% 0%, color-mix(in srgb, var(--zn-a) 26%, transparent), transparent 70%);
    --zn-sheen: linear-gradient(115deg, transparent 38%, rgb(255 255 255 / 0.55) 48%, transparent 58%);

    --c-bg: var(--zn-ice);
    --c-surface: #ffffff;
    --c-surface-sunk: var(--zn-mist);
    --c-text: #20304d;
    --c-text-strong: #0b1b3a;
    --c-text-muted: #5b6b86;
    --c-text-faint: #8995ab;
    --c-border: var(--zn-line);
    --c-border-strong: #0b1b3a;
    --c-accent: var(--zn-a);
    --c-accent-hover: var(--zn-a-hi);
    --c-accent-contrast: #0b1b3a;
    --c-accent-soft: color-mix(in srgb, var(--zn-a) 22%, #ffffff);
    --c-link: #0b1b3a;
    --c-link-hover: #000000;
    --c-mark: var(--zn-a);
    --c-mark-text: var(--zn-a-ink);
    --c-mark-soft: color-mix(in srgb, var(--zn-a) 22%, #ffffff);
    --c-slab: var(--zn-n-900);
    --c-slab-text: #eef3fb;
    --c-slab-muted: #a9b8d3;
    --c-danger: #d6403a;
    --c-success: #1f9d6d;

    --font-display: var(--zenit-font-display);
    --font-ui: var(--zenit-font-body);
    --font-prose: var(--font-ui);
    --fw-heading: 500;
    --tr-tight: -0.02em;
    --tr-snug: -0.015em;
    --lh-tight: 1.04;
    --lh-snug: 1.14;
    --t-base: clamp(1rem, 0.96rem + 0.2vw, 1.0625rem);
    --t-xl: clamp(1.9rem, 1.45rem + 1.7vw, 3rem);
    --t-2xl: clamp(2.4rem, 1.7rem + 3vw, 4.2rem);
    --t-3xl: clamp(2.8rem, 1.9rem + 4.4vw, 5.4rem);

    --r-xs: calc(var(--zenit-radius) * 0.3);
    --r-sm: calc(var(--zenit-radius) * 0.5);
    --r-md: calc(var(--zenit-radius) * 0.8);
    --r-lg: var(--zenit-radius);
    --r-pill: 999px;
    --r-btn: 999px;
    --card-radius: var(--zenit-radius);
    --card-bg: #ffffff;
    --card-border: 1px solid var(--zn-line);
    --card-shadow: 0 1px 2px rgb(11 27 58 / 0.04), 0 18px 40px -26px rgb(11 27 58 / 0.28);
    --shadow-sm: 0 1px 2px rgb(11 27 58 / 0.06);
    --shadow-md: 0 14px 30px -18px rgb(11 27 58 / 0.3);
    --shadow-lg: 0 30px 60px -28px rgb(11 27 58 / 0.45);
    --shadow-lift: 0 24px 44px -24px rgb(11 27 58 / 0.4);

    --w-container: 80rem;
    --w-wide: 84rem;
    --sp-md: clamp(3.5rem, 2.4rem + 4.4vw, 6rem);
    --sp-lg: clamp(4.5rem, 3rem + 6vw, 8rem);

    color-scheme: light;
}

/* Tones. Re-declared with an id-level boost so the site's generated tones
   (design.css) do not repaint the theme. */
:is(.cms-tone-dark, .cms-on-dark):not(#zn) {
    --c-bg: var(--zn-n-900);
    --c-surface: var(--zn-n-800);
    --c-surface-sunk: var(--zn-n-950);
    --c-text: #dfe7f5;
    --c-text-strong: #ffffff;
    --c-text-muted: #a9b8d3;
    --c-text-faint: #7f90b0;
    --c-border: #263c68;
    --c-border-strong: #dfe7f5;
    --c-accent: var(--zn-a);
    --c-accent-hover: var(--zn-a-hi);
    --c-accent-contrast: #0b1b3a;
    --c-accent-soft: color-mix(in srgb, var(--zn-a) 14%, var(--zn-n-900));
    --c-link: var(--zn-a);
    --c-link-hover: var(--zn-a-hi);
    --c-mark: var(--zn-a);
    --c-mark-text: var(--zn-a);
    --card-bg: var(--zn-n-800);
    --card-border: 1px solid #263c68;
    --card-shadow: none;
    color-scheme: dark;
}

.cms-tone-dark:not(#zn) {
    --section-bg: var(--zn-n-900);
    --section-bg-image: var(--zn-glow);
    background-repeat: no-repeat;
    background-size: 100% 40rem;
}

.cms-tone-soft:not(#zn) {
    --section-bg: var(--zn-mist);
    --c-bg: var(--zn-mist);
    --c-surface: #ffffff;
    --c-surface-sunk: #dde6f2;
}

.cms-tone-primary:not(#zn) {
    --section-bg: var(--zn-a);
    --c-bg: var(--zn-a);
    --c-surface: var(--zn-a-hi);
    --c-surface-sunk: color-mix(in srgb, var(--zn-a), #0b1b3a 8%);
    --c-text: #0b1b3a;
    --c-text-strong: #06122b;
    --c-text-muted: #1d4338;
    --c-text-faint: #2d5b4d;
    --c-border: rgb(11 27 58 / 0.2);
    --c-border-strong: #06122b;
    --c-accent: #0b1b3a;
    --c-accent-hover: #12264b;
    --c-accent-contrast: var(--zn-a);
    --c-accent-soft: color-mix(in srgb, var(--zn-a), #0b1b3a 8%);
    --c-link: #06122b;
    --c-mark: #0b1b3a;
    --c-mark-text: #0b1b3a;
    color-scheme: light;
}

.cms-tone-accent:not(#zn) {
    --section-bg: var(--zn-n-700);
    --c-bg: var(--zn-n-700);
    --c-surface: var(--zn-n-600);
    --c-surface-sunk: var(--zn-n-800);
    --c-text: #eaf0fa;
    --c-text-strong: #ffffff;
    --c-text-muted: #bccae4;
    --c-border: #3f5d95;
    --c-accent: var(--zn-a);
    --c-accent-hover: var(--zn-a-hi);
    --c-accent-contrast: #0b1b3a;
    --c-link: var(--zn-a);
    --c-mark: var(--zn-a);
    --c-mark-text: var(--zn-a);
    color-scheme: dark;
}

.cms-on-light:not(#zn) {
    --c-bg: var(--zn-ice);
    --c-text: #20304d;
    --c-text-strong: #0b1b3a;
    --c-text-muted: #5b6b86;
    --c-border: var(--zn-line);
    --c-border-strong: #0b1b3a;
    --c-link: #0b1b3a;
    color-scheme: light;
}

/* -------------------------------------------------------------------------
   2. Base
   ------------------------------------------------------------------------- */

body {
    background-color: var(--zn-ice);
    font-family: var(--font-ui);
    font-size: var(--t-base);
    line-height: 1.6;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-display);
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: var(--lh-snug);
}

h1 { font-weight: 400; line-height: 1.04; letter-spacing: -0.03em; }

a {
    text-decoration-color: color-mix(in srgb, var(--zn-a) 70%, #0b1b3a);
    text-decoration-thickness: 2px;
    text-underline-offset: 0.2em;
}

a:hover { text-decoration-color: currentColor; }

:focus-visible {
    outline: 3px solid var(--zn-a);
    outline-offset: 2px;
    box-shadow: 0 0 0 5px var(--zn-n-900);
}

::selection { background: var(--zn-a); color: #06122b; }

.cms-prose {
    font-family: var(--font-ui);
    font-size: var(--t-base);
    line-height: 1.7;
}

.cms-prose ul > li::marker { color: var(--zn-a-deep); }

/* -------------------------------------------------------------------------
   3. Buttons — pills, mint with navy text or outlined
   ------------------------------------------------------------------------- */

.cms-btn {
    min-height: 52px;
    padding: 0.7rem 1.7rem;
    border-width: 1.5px;
    border-radius: var(--r-btn);
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: -0.005em;
}

.cms-btn--primary {
    background-color: var(--zn-a);
    border-color: var(--zn-a);
    color: #06122b;
    box-shadow: 0 10px 28px -12px color-mix(in srgb, var(--zn-a) 80%, transparent);
}

.cms-btn--primary:hover {
    background-color: var(--zn-n-900);
    border-color: var(--zn-n-900);
    color: var(--zn-a);
    box-shadow: 0 10px 28px -12px rgb(11 27 58 / 0.5);
}

.cms-btn--ghost {
    border-color: color-mix(in srgb, currentColor 40%, transparent);
    color: var(--c-text-strong);
}

.cms-btn--ghost:hover {
    background-color: var(--c-text-strong);
    border-color: var(--c-text-strong);
    color: var(--c-bg);
}

:is(.cms-tone-dark, .cms-on-dark, .cms-tone-accent) .cms-btn--primary:hover {
    background-color: #ffffff;
    border-color: #ffffff;
    color: var(--zn-n-900);
}

:is(.cms-tone-dark, .cms-on-dark, .cms-tone-accent) .cms-btn--ghost {
    border-color: rgb(255 255 255 / 0.35);
    color: #fff;
}

:is(.cms-tone-dark, .cms-on-dark, .cms-tone-accent) .cms-btn--ghost:hover {
    background: rgb(255 255 255 / 0.1);
    border-color: var(--zn-a);
    color: var(--zn-a);
}

.cms-tone-primary .cms-btn--primary {
    background-color: var(--zn-n-900);
    border-color: var(--zn-n-900);
    color: var(--zn-a);
}

.cms-tone-primary .cms-btn--primary:hover {
    background-color: transparent;
    color: var(--zn-n-900);
}

.zn-btn-dark {
    background-color: var(--zn-n-900);
    border-color: var(--zn-n-900);
    color: #ffffff;
}

.zn-btn-dark:hover {
    background-color: #ffffff;
    border-color: #ffffff;
    color: var(--zn-n-900);
}

/* -------------------------------------------------------------------------
   4. Cards, badges, forms
   ------------------------------------------------------------------------- */

.cms-card {
    position: relative;
    overflow: hidden;
    border-radius: var(--card-radius);
    box-shadow: var(--card-shadow);
}

/* A diagonal highlight sliding over cards on hover — light on a stretched sheet. */
html:not([data-zenit-sheen="off"]) .cms-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--zn-sheen);
    background-size: 250% 100%;
    background-position: 130% 0;
    opacity: 0;
    pointer-events: none;
    transition: background-position 0.9s ease, opacity 0.3s ease;
}

html:not([data-zenit-sheen="off"]) .cms-card:hover::after {
    background-position: -30% 0;
    opacity: 0.55;
}

.cms-badge-icon {
    border-radius: 50% !important;
    background: var(--zn-n-900) !important;
    color: var(--zn-a) !important;
    box-shadow: 0 0 0 5px color-mix(in srgb, var(--zn-a) 18%, transparent);
}

.cms-badge-icon--plain {
    background: transparent !important;
    box-shadow: none;
    color: var(--zn-a-deep) !important;
}

:is(.cms-tone-dark, .cms-on-dark) .cms-badge-icon { background: color-mix(in srgb, var(--zn-a) 16%, transparent) !important; }
:is(.cms-tone-dark, .cms-on-dark) .cms-badge-icon--plain { color: var(--zn-a) !important; }

input:not([type="checkbox"], [type="radio"], [type="range"]),
select,
textarea {
    border-radius: var(--r-md) !important;
}

.cms-field__input:focus,
input:not([type="checkbox"], [type="radio"], [type="range"]):focus,
textarea:focus,
select:focus {
    border-color: var(--zn-n-900) !important;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--zn-a) 40%, transparent) !important;
    outline: none;
}

.cms-popover__panel {
    border-radius: var(--zn-r);
    border: 0;
    box-shadow: var(--shadow-lg), 0 0 0 1px var(--zn-line);
}

.cms-popover__panel::before {
    content: "";
    display: block;
    height: 6px;
    margin: -1px -1px 0;
    background: linear-gradient(90deg, var(--zn-n-900), var(--zn-a));
}

.cms-popover__title { font-family: var(--font-display); }

/* -------------------------------------------------------------------------
   5. Sections: a glowing dot, a big light heading
   ------------------------------------------------------------------------- */

.cms-section__head {
    max-width: none;
    margin-block-end: clamp(2rem, 1.4rem + 2vw, 3.25rem);
}

.cms-section__head--center,
.cms-section__head--left {
    margin-inline: 0;
    text-align: start;
}

.cms-section__title {
    max-width: 24ch;
    font-size: var(--t-xl);
    font-weight: 400;
    letter-spacing: -0.028em;
    line-height: 1.08;
}

.cms-section__subtitle {
    max-width: 44rem;
    margin-block-start: var(--s-4);
    font-size: var(--t-md);
    line-height: 1.55;
}

/* The spot light before every headed section of a landing page. */
.landing .cms-section__head::before {
    content: "";
    display: block;
    width: 14px;
    height: 14px;
    margin-block-end: var(--s-5);
    border-radius: 50%;
    background: var(--zn-a);
    box-shadow: 0 0 0 6px color-mix(in srgb, var(--zn-a) 22%, transparent), 0 0 26px 4px color-mix(in srgb, var(--zn-a) 70%, transparent);
}

html[data-zenit-glow="off"] .landing .cms-section__head::before { box-shadow: none; }

@media (min-width: 62rem) {
    .cms-section__head:has(.cms-section__subtitle) {
        display: grid;
        grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
        column-gap: var(--s-8);
        align-items: end;
    }

    .landing .cms-section__head:has(.cms-section__subtitle)::before { grid-column: 1 / -1; }

    .cms-section__head:has(.cms-section__subtitle) .cms-section__subtitle { margin: 0; }
}

/* Dark bands: faint dotted spot-light grid in the corner. */
html:not([data-zenit-glow="off"]) .cms-section.cms-tone-dark::after {
    content: "";
    position: absolute;
    inset: 0 0 auto auto;
    width: min(46rem, 80%);
    height: 22rem;
    background: radial-gradient(circle, rgb(255 255 255 / 0.28) 1.5px, transparent 2px) 0 0 / 42px 42px;
    -webkit-mask-image: radial-gradient(70% 90% at 100% 0, #000, transparent 75%);
    mask-image: radial-gradient(70% 90% at 100% 0, #000, transparent 75%);
    pointer-events: none;
    opacity: 0.55;
}

/* -------------------------------------------------------------------------
   6. Header: one airy bar — logo, menu in the middle, phone and a pill
   ------------------------------------------------------------------------- */

.site-header {
    background: rgb(255 255 255 / 0.94);
    border-bottom: 0;
    box-shadow: 0 1px 0 var(--zn-line);
    -webkit-backdrop-filter: saturate(1.4) blur(14px);
    backdrop-filter: saturate(1.4) blur(14px);
}

.site-header--sticky.is-scrolled { box-shadow: 0 1px 0 var(--zn-line), 0 18px 34px -26px rgb(11 27 58 / 0.55); }

.hdr-row--top {
    background: var(--zn-n-900);
    border-bottom: 0;
    color: #b9c6df;
    font-size: 0.84rem;
}

.hdr-row--top .hdr-row__inner { min-height: 2.4rem; }
.hdr-row--top a { color: #e6edf8; text-decoration: none; }
.hdr-row--top a:hover { color: var(--zn-a); }
.hdr-row--top .cms-icon { color: var(--zn-a); }

.hdr-row--main .hdr-row__inner { min-height: 5rem; }

/* Wordmark: a round ceiling light (a disc with a glowing dot) and the name. */
.zn-logo { gap: 12px; }

.zn-logo__mark {
    position: relative;
    display: grid;
    place-items: center;
    flex: none;
    width: 2.7rem;
    height: 2.7rem;
    border-radius: 50%;
    background: radial-gradient(circle at 50% 38%, var(--zn-n-700), var(--zn-n-900) 70%);
    box-shadow: 0 0 0 1px rgb(255 255 255 / 0.1) inset, 0 8px 18px -8px rgb(11 27 58 / 0.7);
}

.zn-logo__mark i {
    width: 0.8rem;
    height: 0.8rem;
    border-radius: 50%;
    background: var(--zn-a);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--zn-a) 28%, transparent), 0 0 18px 3px var(--zn-a);
}

.hdr-logo__name {
    font-family: var(--font-display);
    font-size: 1.55rem;
    font-weight: 500;
    letter-spacing: -0.03em;
    line-height: 1;
}

.hdr-logo__tagline {
    margin-block-start: 5px;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--c-text-muted);
}

.hdr-row--main .hdr-text {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.88rem;
    line-height: 1.2;
    color: var(--c-text-muted);
}

.hdr-row--main .hdr-text .cms-icon {
    flex: none;
    width: 2rem;
    height: 2rem;
    padding: 0.42rem;
    border-radius: 50%;
    background: var(--c-accent-soft);
    color: var(--zn-a-ink);
}

.hdr-nav__list { gap: 0.15rem; }

.hdr-nav__link {
    padding: 0.55rem 1rem;
    border-radius: 999px;
    font-family: var(--font-display);
    font-size: 0.98rem;
    font-weight: 500;
    letter-spacing: -0.005em;
}

.hdr-nav__link:hover,
.hdr-nav__link.is-active { background: var(--zn-mist); color: var(--zn-n-900); }

.hdr-phone__number {
    font-family: var(--font-display);
    font-size: 1.3rem;
    font-weight: 500;
    letter-spacing: -0.02em;
}

.hdr-phone__number:hover { text-decoration: underline; text-decoration-color: var(--zn-a); }
.hdr-phone__caption { font-size: 0.8rem; }
.hdr-phone__callback { color: var(--c-text-strong); text-decoration-color: var(--zn-a); }
.hdr-button.cms-btn { min-height: 48px; }

.hdr-row--bottom {
    background: var(--zn-n-900);
    color: #fff;
}

.hdr-row--bottom .hdr-nav__link { color: #e6edf8; }
.hdr-row--bottom .hdr-nav__link:hover,
.hdr-row--bottom .hdr-nav__link.is-active { background: rgb(255 255 255 / 0.1); color: #fff; }

.hdr-sub__list {
    border: 0;
    border-radius: var(--zn-r-sm);
    box-shadow: var(--shadow-lg), 0 0 0 1px var(--zn-line);
}

.hdr-sub__link:hover { background: var(--zn-mist); }

.hdr-burger {
    border-radius: 50% !important;
    background: var(--zn-n-900) !important;
    border-color: var(--zn-n-900) !important;
    color: var(--zn-a) !important;
}

.hdr-icon-btn { border-radius: 50% !important; }
.hdr-drawer { border-radius: 0; }
.hdr-drawer__head { border-bottom: 1px solid var(--zn-line); }
.hdr-dmenu__link { font-family: var(--font-display); }

@media (max-width: 59.99rem) {
    .hdr-row--main .hdr-row__inner { min-height: 4.2rem; }
    .zn-logo__mark { width: 2.4rem; height: 2.4rem; }
    .hdr-logo__name { font-size: 1.4rem; }
    .hdr-logo__tagline { display: none; }
}

/* -------------------------------------------------------------------------
   7. Footer: a luminous band, navy columns, a faint wordmark
   ------------------------------------------------------------------------- */

.zn-footer { margin-block-start: 0 !important; border-top: 0 !important; position: relative; overflow: hidden; }
.zn-prefooter { margin-block-start: var(--s-9); padding-inline: var(--s-4); }
:is(.page--landing, .page--page) .zn-prefooter { margin-block-start: 0; }

.zn-prefooter__inner {
    position: relative;
    z-index: 2;
    display: grid;
    gap: var(--s-6);
    max-width: var(--w-container);
    margin: 0 auto;
    padding: clamp(1.75rem, 1rem + 3vw, 3.5rem);
    border-radius: calc(var(--zn-r) * 1.6);
    background:
        radial-gradient(40% 90% at 85% 0%, color-mix(in srgb, var(--zn-a) 55%, transparent), transparent 70%),
        linear-gradient(135deg, var(--zn-n-800), var(--zn-n-950));
    color: #fff;
    box-shadow: 0 40px 70px -40px rgb(11 27 58 / 0.7);
    transform: translateY(50%);
    margin-block-end: calc(-1 * var(--s-8));
}

.zn-prefooter__kicker {
    margin: 0 0 var(--s-3);
    color: var(--zn-a);
    font-size: 0.86rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.zn-prefooter__title {
    margin: 0;
    max-width: 18ch;
    color: #fff;
    font-size: clamp(1.9rem, 1.3rem + 2.6vw, 3.2rem);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1.06;
}

.zn-prefooter__lead { max-width: 34rem; margin: var(--s-4) 0 0; color: #bccae4; }
.zn-prefooter__side { display: flex; flex-direction: column; gap: var(--s-3); align-items: flex-start; justify-content: center; }

.zn-prefooter__phone {
    color: #fff;
    font-family: var(--font-display);
    font-size: clamp(1.7rem, 1.2rem + 2vw, 2.6rem);
    font-weight: 400;
    letter-spacing: -0.03em;
    text-decoration: none;
}

.zn-prefooter__phone:hover { color: var(--zn-a); }
.zn-prefooter__hours { margin: 0; color: #9fb0cf; font-size: 0.9rem; }
.zn-prefooter .zn-btn-dark { background: var(--zn-a); border-color: var(--zn-a); color: #06122b; }
.zn-prefooter .zn-btn-dark:hover { background: #fff; border-color: #fff; }

@media (min-width: 56rem) {
    .zn-prefooter__inner { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: center; }
    .zn-prefooter__side { align-items: flex-end; text-align: end; }
}

.site-footer.zn-footer { background: var(--zn-n-950); color: #c3cfe5; padding-block-start: calc(var(--s-8) + var(--s-9)); }
.zn-footer .ftr-col__title { color: #fff; font-family: var(--font-display); font-weight: 500; letter-spacing: -0.01em; }
.zn-footer a { color: #dfe7f5; }
.zn-footer a:hover { color: var(--zn-a); }
.zn-footer .ftr-bottom { border-top: 1px solid #1b2e55; }
.zn-footer .ftr-menu__sub { display: none; }

.zn-footer__wordmark {
    margin: var(--s-6) 0 -0.18em;
    padding-inline: var(--s-4);
    color: transparent;
    font-family: var(--font-display);
    font-size: clamp(4rem, 2rem + 13vw, 15rem);
    font-weight: 300;
    letter-spacing: -0.05em;
    line-height: 0.85;
    text-align: center;
    -webkit-text-stroke: 1px rgb(255 255 255 / 0.12);
    background: linear-gradient(180deg, rgb(255 255 255 / 0.1), transparent 80%);
    -webkit-background-clip: text;
    background-clip: text;
    white-space: nowrap;
    overflow: hidden;
    user-select: none;
}

/* -------------------------------------------------------------------------
   8. First screen (zenit_hero): a dark ceiling with spot lights, the big
      calculator floating on it
   ------------------------------------------------------------------------- */

.zn-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.zn-hero__photo { position: absolute; inset: 0; z-index: -2; margin: 0; }

.zn-hero__img { width: 100%; height: 100%; object-fit: cover; opacity: 0.4; }

.zn-hero__photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, var(--zn-n-950) 15%, rgb(11 27 58 / 0.55) 70%, rgb(11 27 58 / 0.8));
}

.zn-hero__spots { position: absolute; inset: 0; z-index: -1; pointer-events: none; }

.zn-hero__spots i {
    position: absolute;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 5px rgb(255 255 255 / 0.1), 0 0 40px 18px color-mix(in srgb, var(--zn-a) 45%, transparent);
    opacity: 0.9;
}

.zn-hero__spots i:nth-child(1) { top: 9%; left: 8%; }
.zn-hero__spots i:nth-child(2) { top: 6%; left: 34%; }
.zn-hero__spots i:nth-child(3) { top: 12%; left: 58%; width: 8px; height: 8px; }
.zn-hero__spots i:nth-child(4) { top: 5%; left: 80%; }
.zn-hero__spots i:nth-child(5) { top: 16%; left: 94%; width: 7px; height: 7px; }

html[data-zenit-glow="off"] .zn-hero__spots { display: none; }

@media (max-width: 39.99rem) { .zn-hero__spots { display: none; } }

.zn-hero__grid {
    display: grid;
    gap: var(--s-8);
    align-items: center;
    max-width: var(--w-wide);
    margin-inline: auto;
}

.zn-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 var(--s-5);
    padding: 0.4rem 1rem 0.4rem 0.8rem;
    border: 1px solid rgb(255 255 255 / 0.16);
    border-radius: 999px;
    background: rgb(255 255 255 / 0.06);
    color: #d3dff3;
    font-size: 0.88rem;
}

.zn-hero__tick {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--zn-a);
    box-shadow: 0 0 12px 2px var(--zn-a);
}

.zn-hero__title {
    margin: 0;
    max-width: 13ch;
    color: #fff;
    font-size: clamp(2.5rem, 1.6rem + 3.9vw, 4.9rem);
    font-weight: 300;
    letter-spacing: -0.04em;
    line-height: 1;
}

.zn-hero__lead { max-width: 30rem; margin: var(--s-5) 0 0; color: #c1cee5; font-size: 1.1rem; line-height: 1.6; }
.zn-hero__actions { margin-block-start: var(--s-6); }

.zn-hero__facts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-5) var(--s-7);
    margin: var(--s-7) 0 0;
    padding: 0;
    list-style: none;
}

.zn-hero__fact { display: flex; flex-direction: column; gap: 2px; }

.zn-hero__fact-value {
    color: #fff;
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.2rem);
    font-weight: 300;
    letter-spacing: -0.03em;
    line-height: 1;
}

.zn-hero__fact-label { color: #9fb0cf; font-size: 0.86rem; }

@media (min-width: 64rem) {
    .zn-hero--calc .zn-hero__grid { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(2rem, 1rem + 3vw, 4.5rem); }
}

/* -------------------------------------------------------------------------
   9. Calculator (templates/zenit/calc.twig, assets/js/zenit-calc.js)
   ------------------------------------------------------------------------- */

.zn-calc {
    position: relative;
    border-radius: calc(var(--zn-r) * 1.4);
    background: #ffffff;
    color: #20304d;
    --c-text: #20304d;
    --c-text-strong: #0b1b3a;
    --c-text-muted: #5b6b86;
    --c-border: #dbe3ef;
    --c-bg: #ffffff;
    --c-surface: #f4f7fb;
    --c-accent-soft: #d6faee;
    box-shadow: 0 0 0 1px rgb(255 255 255 / 0.6) inset, 0 50px 90px -40px rgb(0 0 0 / 0.7), 0 0 90px -30px color-mix(in srgb, var(--zn-a) 60%, transparent);
    overflow: hidden;
}

.zn-calc::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 5px;
    background: linear-gradient(90deg, var(--zn-n-900), var(--zn-a));
}

.zn-calc__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--s-3);
    padding: clamp(1.1rem, 0.8rem + 1vw, 1.6rem) clamp(1.1rem, 0.7rem + 1.6vw, 2rem) 0;
}

.zn-calc__title {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    color: var(--zn-n-900);
    font-family: var(--font-display);
    font-size: clamp(1.15rem, 1rem + 0.6vw, 1.5rem);
    font-weight: 500;
    letter-spacing: -0.02em;
}

.zn-calc__title .cms-icon { color: var(--zn-a-deep); }

.zn-calc__free {
    margin: 0;
    padding: 0.28rem 0.8rem;
    border-radius: 999px;
    background: #d6faee;
    color: #0b5a43;
    font-size: 0.8rem;
    font-weight: 600;
}

.zn-calc__body { display: grid; gap: var(--s-5); padding: var(--s-4) clamp(1.1rem, 0.7rem + 1.6vw, 2rem) clamp(1.1rem, 0.7rem + 1.6vw, 2rem); }
.zn-calc__inputs { display: grid; gap: var(--s-5); min-width: 0; }
.zn-calc__group { min-width: 0; margin: 0; padding: 0; border: 0; }

.zn-calc__legend {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 var(--s-3);
    padding: 0;
    color: var(--zn-n-900);
    font-size: 0.95rem;
    font-weight: 600;
}

.zn-calc__step {
    display: grid;
    place-items: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    background: var(--zn-n-900);
    color: var(--zn-a);
    font-size: 0.78rem;
    font-weight: 700;
}

.zn-calc__types { display: grid; gap: 0.6rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.zn-calc__type { position: relative; display: block; cursor: pointer; }
.zn-calc__type input { position: absolute; opacity: 0; inset: 0; }

.zn-calc__type-box {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 0.7rem;
    align-items: center;
    height: 100%;
    padding: 0.7rem 0.8rem;
    border: 1.5px solid var(--zn-line);
    border-radius: var(--zn-r-sm);
    background: #fff;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}

.zn-calc__type:hover .zn-calc__type-box { border-color: var(--zn-n-600); }

.zn-calc__type input:checked + .zn-calc__type-box {
    border-color: var(--zn-n-900);
    background: color-mix(in srgb, var(--zn-a) 12%, #fff);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--zn-a) 55%, transparent);
}

.zn-calc__type input:focus-visible + .zn-calc__type-box { outline: 3px solid var(--zn-a); outline-offset: 2px; }

.zn-calc__swatch {
    grid-row: 1 / span 3;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 50%;
    box-shadow: inset 0 0 0 1px rgb(11 27 58 / 0.12), inset 0 -6px 10px rgb(11 27 58 / 0.1);
}

.zn-swatch--matte { background: #eef0f3; }
.zn-swatch--glossy { background: radial-gradient(circle at 30% 25%, #fff 0 12%, transparent 13%), linear-gradient(145deg, #f7f9fc, #aebbd0); }
.zn-swatch--satin { background: linear-gradient(135deg, #fbf7ef, #e9dfcb 55%, #f6efe0); }
.zn-swatch--fabric { background: repeating-linear-gradient(45deg, #e9e6df 0 2px, #f4f1ea 2px 4px); }

.zn-calc__type-name { font-weight: 600; color: var(--zn-n-900); font-size: 0.98rem; line-height: 1.2; }
.zn-calc__type-note { color: var(--c-text-muted); font-size: 0.78rem; line-height: 1.3; }
.zn-calc__type-price { color: var(--zn-a-ink); font-size: 0.8rem; font-weight: 600; }
.zn-calc__type-price { color: #1b6f56; }

.zn-calc--compact .zn-calc__type-note { display: none; }

.zn-calc__area { display: flex; align-items: center; gap: var(--s-4); }

.zn-calc__range { flex: 1 1 auto; min-width: 0; accent-color: var(--zn-n-900); height: 2rem; }

.zn-calc__num {
    display: inline-flex;
    align-items: center;
    flex: none;
    gap: 0.4rem;
    padding: 0.2rem 0.8rem;
    border: 1.5px solid var(--zn-line);
    border-radius: 999px;
    background: #fff;
    font-weight: 600;
}

.zn-calc__num input { width: 3.6rem; border: 0 !important; background: transparent; font: inherit; font-size: 1.15rem; text-align: end; box-shadow: none !important; padding: 0.3rem 0; }

.zn-calc__counts { display: grid; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }

.zn-calc__count {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.55rem 0.75rem;
    border: 1.5px solid var(--zn-line);
    border-radius: var(--zn-r-sm);
    background: #fff;
}

.zn-calc__count.is-set { border-color: var(--zn-n-900); background: color-mix(in srgb, var(--zn-a) 10%, #fff); }

.zn-calc__count-icon {
    display: grid;
    place-items: center;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 50%;
    background: var(--zn-n-900);
    color: var(--zn-a);
}

.zn-calc__count-icon .cms-icon { width: 1.1rem; height: 1.1rem; }
.zn-calc__count-text { display: grid; min-width: 0; }
.zn-calc__count-name { color: var(--zn-n-900); font-weight: 600; font-size: 0.95rem; line-height: 1.2; }
.zn-calc__count-price { color: var(--c-text-muted); font-size: 0.78rem; }

.zn-calc__stepper { display: inline-flex; align-items: center; gap: 0.25rem; }

.zn-calc__stepper input {
    width: 2.8rem;
    padding: 0.35rem 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    font: inherit;
    font-size: 1.1rem;
    font-weight: 700;
    text-align: center;
    -moz-appearance: textfield;
    appearance: textfield;
}

.zn-calc__stepper input::-webkit-outer-spin-button,
.zn-calc__stepper input::-webkit-inner-spin-button { margin: 0; -webkit-appearance: none; }

.zn-calc__step-btn {
    display: grid;
    place-items: center;
    width: 2.2rem;
    height: 2.2rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--zn-mist);
    color: var(--zn-n-900);
    font-size: 1.3rem;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.zn-calc__step-btn:hover { background: var(--zn-n-900); color: var(--zn-a); }

.zn-calc__opts { display: grid; gap: 0.4rem; margin: 0; padding: 0; list-style: none; }

.zn-calc__opt {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.5rem 0.2rem;
    cursor: pointer;
}

.zn-calc__opt input { position: absolute; opacity: 0; }

.zn-calc__opt-box {
    flex: none;
    width: 1.45rem;
    height: 1.45rem;
    border: 1.5px solid #b4c1d6;
    border-radius: 0.45rem;
    background: #fff;
    transition: background 0.15s, border-color 0.15s;
}

.zn-calc__opt input:checked + .zn-calc__opt-box {
    border-color: var(--zn-n-900);
    background: var(--zn-n-900) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-6.5' fill='none' stroke='%235cf0c0' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 80% no-repeat;
}

.zn-calc__opt input:focus-visible + .zn-calc__opt-box { outline: 3px solid var(--zn-a); outline-offset: 2px; }
.zn-calc__opt-name { flex: 1; font-size: 0.95rem; font-weight: 500; }
.zn-calc__opt-price { color: var(--c-text-muted); font-size: 0.85rem; white-space: nowrap; }

.zn-calc__result {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--s-3);
    padding: clamp(1.1rem, 0.8rem + 1vw, 1.6rem);
    border-radius: var(--zn-r);
    background:
        radial-gradient(70% 90% at 100% 0%, color-mix(in srgb, var(--zn-a) 38%, transparent), transparent 70%),
        linear-gradient(150deg, var(--zn-n-800), var(--zn-n-950));
    color: #fff;
    --c-text: #fff;
    --c-text-muted: #a9b8d3;
}

.zn-calc__sum-label { margin: 0; color: #a9b8d3; font-size: 0.85rem; font-weight: 500; }

.zn-calc__sum-value {
    color: #fff;
    font-family: var(--font-display);
    font-size: clamp(2.1rem, 1.5rem + 2.4vw, 3.4rem);
    font-weight: 300;
    letter-spacing: -0.04em;
    line-height: 1;
    text-shadow: 0 0 36px color-mix(in srgb, var(--zn-a) 60%, transparent);
    white-space: nowrap;
}

.zn-calc__meta { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; margin: 0; padding: 0; list-style: none; color: #c1cee5; font-size: 0.88rem; }
.zn-calc__meta li::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-inline-end: 8px; border-radius: 50%; background: var(--zn-a); vertical-align: middle; }

.zn-calc__btn { width: 100%; margin-block-start: var(--s-2); }
.zn-calc__note { margin: 0; color: #8fa1c3; font-size: 0.78rem; line-height: 1.45; }

/* The first screen's calculator stacks: inputs, then the sum as a bar. */
@media (min-width: 40rem) {
    .zn-calc--compact .zn-calc__types { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .zn-calc--compact .zn-calc__type-box { grid-template-columns: 1fr; row-gap: 0.15rem; justify-items: start; }
    .zn-calc--compact .zn-calc__swatch { grid-row: auto; margin-block-end: 0.35rem; }
}

@media (min-width: 40rem) {
    .zn-calc--compact .zn-calc__counts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .zn-calc--compact .zn-calc__count { grid-template-columns: auto minmax(0, 1fr); row-gap: 0.4rem; }
    .zn-calc--compact .zn-calc__count .zn-calc__stepper { grid-column: 1 / -1; justify-content: space-between; background: var(--zn-ice); border-radius: 999px; padding: 0.15rem; }
    .zn-calc--compact .zn-calc__result { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; column-gap: var(--s-5); row-gap: 0.2rem; }
    .zn-calc--compact .zn-calc__sum-label { grid-column: 1; grid-row: 1; }
    .zn-calc--compact .zn-calc__sum-value { grid-column: 1; grid-row: 2; }
    .zn-calc--compact .zn-calc__meta { grid-column: 2; grid-row: 1 / span 2; flex-direction: column; gap: 0.2rem; }
    .zn-calc--compact .zn-calc__btn { grid-column: 3; grid-row: 1 / span 2; width: auto; margin: 0; }
    .zn-calc--compact .zn-calc__note { grid-column: 1 / -1; }
}

/* The calculator as a section: inputs on the left, the sum sticky on the right. */
@media (min-width: 62rem) {
    .zn-calc:not(.zn-calc--compact) .zn-calc__body { grid-template-columns: minmax(0, 1fr) 21rem; align-items: start; }
    .zn-calc:not(.zn-calc--compact) .zn-calc__result { position: sticky; top: 6.5rem; }
    .zn-calc:not(.zn-calc--compact) .zn-calc__types { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 40rem) and (max-width: 61.99rem) {
    .zn-calc:not(.zn-calc--compact) .zn-calc__types { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .zn-calc:not(.zn-calc--compact) .zn-calc__type-box { grid-template-columns: 1fr; justify-items: start; }
    .zn-calc:not(.zn-calc--compact) .zn-calc__swatch { grid-row: auto; margin-block-end: 0.35rem; }
}

@media (max-width: 39.99rem) {
    .zn-calc__count { grid-template-columns: auto minmax(0, 1fr); }
    .zn-calc__count .zn-calc__stepper { grid-column: 1 / -1; justify-content: space-between; background: var(--zn-ice); border-radius: 999px; padding: 0.15rem; }
}

/* The calculator block: text above, the sheet full width. */
.zn-calcblock__text { max-width: 44rem; margin-block-end: var(--s-6); }
.zn-points { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: var(--s-4) 0 0; padding: 0; list-style: none; }

.zn-points__item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 1rem 0.45rem 0.8rem;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 0 0 1px var(--zn-line);
    font-size: 0.92rem;
    font-weight: 500;
}

.zn-points__item .cms-icon { color: var(--zn-a-deep); }

/* -------------------------------------------------------------------------
   10. Default blocks re-dressed
   ------------------------------------------------------------------------- */

.cms-w-narrow .cms-section__head { display: block !important; }

.cms-feature .cms-card__title { font-size: 1.25rem; }

.cms-feature__num {
    color: var(--zn-a-deep);
    font-family: var(--font-display);
    font-weight: 300;
}

.cms-step__marker {
    border-radius: 50% !important;
    background: var(--zn-n-900) !important;
    color: var(--zn-a) !important;
    box-shadow: 0 0 0 6px color-mix(in srgb, var(--zn-a) 22%, transparent);
}

.cms-step__title { font-size: 1.3rem; }
.cms-step__duration { color: var(--c-text-strong); font-weight: 600; }
.cms-step__duration .cms-icon { color: var(--zn-a-deep); }
:is(.cms-tone-dark, .cms-on-dark) .cms-step__marker { background: var(--zn-a) !important; color: #06122b !important; }
:is(.cms-tone-dark, .cms-on-dark) .cms-step__duration { color: var(--zn-a); }

.cms-stars__star { color: #f5b73b; }
.cms-review.cms-card { border-top: 0; }
.cms-review__text { font-size: 1.05rem; line-height: 1.6; }
.cms-review__initial { background: var(--zn-n-900) !important; color: var(--zn-a) !important; }
.cms-review__name { font-family: var(--font-display); font-weight: 500; }

.cms-faq__question { font-family: var(--font-display); font-weight: 500; letter-spacing: -0.01em; }
.cms-faq__toggle { border-radius: 50%; }
details[open] > summary .cms-faq__toggle { background: var(--zn-a); color: #06122b; }

.cms-contact__icon { border-radius: 50%; background: var(--zn-n-900); color: var(--zn-a); }
.cms-contact__title { font-family: var(--font-display); }
.cms-contact__value { font-family: var(--font-display); font-weight: 500; letter-spacing: -0.01em; }

.cms-stat__value { font-family: var(--font-display); font-weight: 300; letter-spacing: -0.04em; }
.cms-stat__num { font-size: clamp(2.6rem, 1.8rem + 2.6vw, 4.2rem); }
:is(.cms-tone-dark, .cms-on-dark) .cms-stat__suffix { color: var(--zn-a); }

.cms-block--media_text img { border-radius: var(--zn-r); }

/* Price table: the featured plan is the navy one with a luminous edge. */
.cms-ptable__plan.is-featured,
.cms-ptable__col.is-featured { box-shadow: 0 0 0 2px var(--zn-a), 0 30px 60px -34px color-mix(in srgb, var(--zn-a) 80%, #0b1b3a); }
.cms-ptable__badge { background: var(--zn-a); color: #06122b; border-radius: 999px; }
.cms-ptable__price { font-family: var(--font-display); font-weight: 300; letter-spacing: -0.04em; }

/* Stages */
.cms-stages__marker, .cms-stages__dot { background: var(--zn-n-900); color: var(--zn-a); }

/* Forms in blocks */
.cms-form .cms-btn { width: auto; }

/* -------------------------------------------------------------------------
   11. Design settings (theme.json → design.controls)
   ------------------------------------------------------------------------- */

/* Tone of the dark bands: navy (default), ink, ocean. */
html[data-zenit-tone="ink"]:root {
    --zn-n-950: #07080d;
    --zn-n-900: #0e1017;
    --zn-n-800: #171a25;
    --zn-n-700: #242838;
    --zn-n-600: #363c54;
}

html[data-zenit-tone="ocean"]:root {
    --zn-n-950: #031a24;
    --zn-n-900: #07293a;
    --zn-n-800: #0c3a50;
    --zn-n-700: #145069;
    --zn-n-600: #226a86;
}

/* Header: glass (navy, translucent) or dark. */
html[data-zenit-header="glass"] .site-header { background: rgb(11 27 58 / 0.72); box-shadow: 0 1px 0 rgb(255 255 255 / 0.08); }
html[data-zenit-header="dark"] .site-header { background: var(--zn-n-900); box-shadow: none; }

html:is([data-zenit-header="glass"], [data-zenit-header="dark"]) .hdr-row--main {
    --c-bg: transparent;
    --c-text: #e6edf8;
    --c-text-strong: #ffffff;
    --c-text-muted: #a9b8d3;
    --c-link: #ffffff;
    color: #e6edf8;
}

html:is([data-zenit-header="glass"], [data-zenit-header="dark"]) .hdr-nav__link:hover,
html:is([data-zenit-header="glass"], [data-zenit-header="dark"]) .hdr-nav__link.is-active { background: rgb(255 255 255 / 0.1); color: #fff; }

html:is([data-zenit-header="glass"], [data-zenit-header="dark"]) .hdr-row--main .hdr-text .cms-icon { background: rgb(255 255 255 / 0.1); color: var(--zn-a); }
html:is([data-zenit-header="glass"], [data-zenit-header="dark"]) .hdr-icon-btn { color: #fff; }
html:is([data-zenit-header="glass"], [data-zenit-header="dark"]) .hdr-burger { background: var(--zn-a) !important; border-color: var(--zn-a) !important; color: #06122b !important; }

/* Buttons: soft rectangles. */
html[data-zenit-buttons="soft"]:root { --r-btn: 12px; }
html[data-zenit-buttons="soft"] .cms-btn { border-radius: 12px; }

/* Spacing between sections. */
html[data-zenit-density="compact"]:root {
    --sp-md: clamp(2.5rem, 1.8rem + 3vw, 4rem);
    --sp-lg: clamp(3rem, 2.2rem + 4vw, 5.5rem);
}

/* Glow off: flat navy. */
html[data-zenit-glow="off"] .cms-tone-dark:not(#zn) { --section-bg-image: none; }
html[data-zenit-glow="off"] .zn-calc { box-shadow: 0 40px 70px -40px rgb(0 0 0 / 0.5); }
