/* MARINA CBT WEB — Liquid Glass stylesheet.
   Palette tuned to the Marina Sweshinski logo: sage-green + warm gold + cream.
   Two accents only (sage · gold) on a warm cream canvas = calm, premium,
   therapeutic. Variable names kept stable; values retargeted to the logo. */

:root {
    /* ── Primary brand — SAGE GREEN (the logo's head + leaves) ──
       Deep enough to carry white button text; the calm CBT signal color.
       (Token kept as --brand-teal so every existing selector still resolves.) */
    --brand-teal:        #61774a;     /* CTA anchor — deep sage */
    --brand-teal-hover:  #51653f;
    --brand-teal-deep:   #3f4f31;     /* press / focus ring */
    --brand-teal-soft:   #cdd6bb;     /* tints, hovers, fills */
    --brand-teal-mist:   #eef2e7;

    /* Ink anchor — deep forest green reads as grounded "trust" */
    --brand-navy:        #3a4630;
    --brand-navy-hover:  #2c3624;

    /* Accents — sage (mid) + warm GOLD (the logo's ring + gilded leaves) */
    --brand-sage:        #8a9a72;     /* tranquil mid sage */
    --brand-sage-soft:   #d8e0c8;
    --brand-terracotta:  #bf9b4e;     /* warm gold (was terracotta) */
    --brand-terracotta-soft:#ecdcae;
    --brand-rose:        #c4a662;     /* soft gold-clay (was dusty rose) */
    --brand-rose-soft:   #ecddb6;

    /* Gold — first-class accent tokens (ring, hairlines, dividers, sheen) */
    --brand-gold:        #bf9b4e;
    --brand-gold-soft:   #e7d4a0;
    --brand-gold-line:   rgba(191, 155, 78, 0.45);

    /* Legacy aliases — older selectors keep working under new palette */
    --brand-tan:         var(--brand-terracotta);
    --brand-blush:       var(--brand-rose);

    /* Warm canvas — the logo's cream */
    --brand-linen:       #f6f1e7;
    --brand-warm-wash:   hsla(40, 46%, 96%, 0.78);

    /* ─── Liquid Glass mixin — warmed to the cream canvas ────────────────
       180° translucent cream-white gradient + warm hairline + inset top
       gloss + a faint gold inner sheen + soft olive drop. Apply via:
         background: var(--glass-bg);
         backdrop-filter: var(--glass-blur);
         border: var(--glass-border);
         box-shadow: var(--glass-shadow);
    */
    --glass-bg:     linear-gradient(180deg, rgba(255, 253, 247, 0.80), rgba(250, 245, 235, 0.48));
    --glass-bg-strong: linear-gradient(180deg, rgba(255, 254, 250, 0.93), rgba(249, 244, 233, 0.74));
    --glass-blur:      saturate(185%) blur(24px);
    --glass-blur-card: saturate(160%) blur(14px);  /* lighter blur for the many repeated card surfaces — cheaper to paint while scrolling */
    --glass-border: 0.5px solid rgba(255, 252, 244, 0.70);
    --glass-shadow:
        inset 0 1px 0 rgba(255, 255, 252, 0.96),
        inset 0 -0.5px 0 rgba(191, 155, 78, 0.10),
        0 10px 30px rgba(58, 70, 48, 0.07),
        0 2px 6px rgba(58, 70, 48, 0.05);
    --glass-shadow-hover:
        inset 0 1px 0 rgba(255, 255, 252, 1),
        inset 0 -0.5px 0 rgba(191, 155, 78, 0.18),
        0 20px 44px rgba(58, 70, 48, 0.12),
        0 5px 12px rgba(58, 70, 48, 0.07);

    /* Warm olive-ink — near-black with a calm green undertone */
    --ink:               #2f3327;
    --ink-soft:          rgba(47, 51, 39, 0.74);
    --ink-muted:         #5e6053;                 /* opaque ≈5.4:1 on cream — small text */
    --ink-faint:         rgba(47, 51, 39, 0.40);  /* decorative / placeholders only */
    --paper:             #fdfbf6;     /* warm white */
    --parchment:         #f1ebdf;     /* warm cream */
    --hairline:          rgba(47, 51, 39, 0.09);
    --hairline-strong:   rgba(47, 51, 39, 0.15);

    --font-serif:   "Frank Ruhl Libre", "Heebo", "SF Pro Display", Georgia, "Times New Roman", serif;

    /* CTA = brand teal (CBT signature). Hover and focus ring follow. */
    --action:            var(--brand-teal);
    --action-hover:      var(--brand-teal-hover);
    --focus-ring:        var(--brand-teal-deep);

    --shadow-product:    rgba(0, 0, 0, 0.22) 3px 5px 30px 0;

    --r-sm:  8px;
    --r-pill:980px;
    --r-card:    24px;   /* unified card corner (cbt/service/process/portrait/sheet) */
    --r-card-sm: 18px;   /* denser cards (trust stat, faq item) */

    /* Error / danger state — tokenized so JS never injects a raw hex */
    --danger:      #b3402f;
    --danger-soft: rgba(179, 64, 47, 0.14);

    --gap-1:  4px;
    --gap-2:  8px;
    --gap-3:  12px;
    --gap-4:  16px;
    --gap-5:  20px;
    --gap-6:  24px;
    --gap-7:  32px;
    --gap-8:  48px;
    --gap-9:  64px;

    --font-display: "Heebo", -apple-system, BlinkMacSystemFont, "SF Pro Display",
                    "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    --font-body:    "Heebo", -apple-system, BlinkMacSystemFont, "SF Pro Text",
                    "Segoe UI", "Helvetica Neue", Arial, sans-serif;

    --content-max:  1200px;
    --content-narrow:840px;
    --nav-height:   84px;

    --ease:     cubic-bezier(0.4, 0, 0.2, 1);
    --ease-out: cubic-bezier(0, 0, 0.2, 1);
    --dur-fast: 150ms;
    --dur-mid:  240ms;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
/* push first section below the floating nav (nav is fixed, not sticky) */
main {
    padding-top: var(--nav-height);
}
@media (max-width: 560px) {
    main { padding-top: 72px; }
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    margin: 0;
    font-family: var(--font-body);
    font-size: 17px;
    line-height: 1.47;
    color: var(--ink);
    background: var(--paper);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

img, svg { display: block; max-width: 100%; height: auto; }

a {
    color: var(--action);
    text-decoration: none;
    transition: color var(--dur-fast) var(--ease);
}
a:hover { color: var(--action-hover); }

button { font: inherit; cursor: pointer; }

ul { list-style: none; padding: 0; margin: 0; }

h1, h2, h3, h4 { margin: 0; font-weight: 600; }

p { margin: 0; }

.skip-link {
    position: absolute;
    inset-inline-start: 8px;
    top: 8px;
    background: var(--ink);
    color: var(--paper);
    padding: 8px 16px;
    border-radius: var(--r-sm);
    z-index: 200;
    clip-path: inset(50%);
    clip: rect(0 0 0 0);
    width: 1px;
    height: 1px;
    overflow: hidden;
    white-space: nowrap;
}
.skip-link:focus {
    clip-path: none;
    clip: auto;
    width: auto;
    height: auto;
    overflow: visible;
}

.eyebrow {
    font-family: var(--font-body);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.10em;
    color: var(--brand-teal);
    margin-bottom: var(--gap-3);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-transform: uppercase;
}
.eyebrow::before {
    content: "";
    width: 18px;
    height: 2px;
    background: currentColor;
    border-radius: 2px;
}
/* (Eyebrow per-section color lives in the single accent-authority block near
   the end of this file — see "Accent system — single source of truth".) */

.display {
    font-family: var(--font-display);
    color: var(--ink);
    letter-spacing: -0.018em;
    font-feature-settings: "ss01", "ss02", "cv11";
}
/* Larger hero headline — request: bigger type across the hero. */
.display--hero {
    font-size: clamp(44px, 6.5vw, 76px);
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -0.028em;
    margin-bottom: var(--gap-4);
}
.display--medium {
    font-size: clamp(22px, 2.8vw, 32px);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.022em;
    margin-bottom: var(--gap-3);
}

.display__sub {
    font-family: var(--font-display);
    font-size: clamp(18px, 1.9vw, 22px);
    font-weight: 300;
    line-height: 1.5;
    color: var(--ink-soft);
    max-width: 620px;
    margin: 0 auto var(--gap-5);
    letter-spacing: -0.005em;
}
.lead {
    font-size: 16px;
    font-weight: 400;
    line-height: 1.55;
    color: var(--ink-soft);
    max-width: 640px;
    margin: 0 auto;
    letter-spacing: -0.005em;
}
.body-text {
    font-size: 15.5px;
    font-weight: 400;
    line-height: 1.6;
    color: var(--ink-soft);
    margin-bottom: var(--gap-3);
    letter-spacing: -0.005em;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--gap-2);
    border: 1px solid transparent;
    border-radius: var(--r-pill);
    padding: 11px 22px;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    text-align: center;
    cursor: pointer;
    transition: background-color 200ms var(--ease),
                color 200ms var(--ease),
                border-color 200ms var(--ease),
                transform 200ms var(--ease),
                box-shadow 200ms var(--ease);
    white-space: nowrap;
}
.btn:focus-visible {
    outline: 2px solid var(--focus-ring);
    outline-offset: 3px;
}
.btn:active { transform: scale(0.95); opacity: 0.85; }

/* Primary — deep teal (CBT signature) */
.btn--primary {
    background: linear-gradient(180deg, var(--brand-teal) 0%, var(--brand-teal-hover) 100%);
    color: var(--paper);
    border: none;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.28),
        inset 0 -1px 0 rgba(0, 0, 0, 0.16),
        0 4px 14px rgba(97, 119, 74, 0.34),
        0 1px 3px rgba(97, 119, 74, 0.22);
    transition: background var(--dur-mid) var(--ease),
                box-shadow var(--dur-mid) var(--ease),
                transform var(--dur-mid) var(--ease);
}
.btn--primary:hover {
    background: linear-gradient(180deg, #72895a 0%, var(--brand-teal-deep) 100%);
    color: var(--paper);
    transform: scale(1.04);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.36),
        inset 0 -1px 0 rgba(0, 0, 0, 0.12),
        0 0 0 3px rgba(141, 154, 114, 0.55),
        0 8px 24px rgba(97, 119, 74, 0.28);
}
.btn--primary:focus-visible {
    outline: 2px solid var(--brand-navy);
    outline-offset: 3px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.35),
        0 0 0 3px rgba(255, 255, 255, 0.6);
}

/* Ghost — frosted glass pill, teal-tinted */
.btn--ghost {
    background: rgba(255, 255, 255, 0.55);
    backdrop-filter: saturate(160%) blur(16px);
    -webkit-backdrop-filter: saturate(160%) blur(16px);
    border: 1px solid rgba(97, 119, 74, 0.22);
    color: var(--brand-teal-deep);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.85),
        inset 0 -0.5px 0 rgba(0, 0, 0, 0.04),
        0 2px 8px rgba(97, 119, 74, 0.08);
    transition: background var(--dur-mid) var(--ease),
                box-shadow var(--dur-mid) var(--ease),
                transform var(--dur-mid) var(--ease),
                border-color var(--dur-mid) var(--ease);
}
.btn--ghost:hover {
    background: rgba(255, 255, 255, 0.80);
    border-color: rgba(97, 119, 74, 0.40);
    color: var(--brand-teal-deep);
    transform: scale(1.04);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.95),
        inset 0 -0.5px 0 rgba(0, 0, 0, 0.04),
        0 0 0 3px rgba(141, 154, 114, 0.45),
        0 6px 20px rgba(97, 119, 74, 0.12);
}

.btn--large {
    padding: 18px 36px;
    font-size: 19px;
    font-weight: 600;
}

/* ═══════════════════════════════════════════════════════════════
   NAV — Liquid-glass floating pill (Clickpros-style, CBT palette, RTL)
═══════════════════════════════════════════════════════════════ */
.nav {
    position: fixed;
    top: 18px;
    left: 50%;
    transform: translate3d(-50%, 0, 0);
    z-index: 200;
    width: calc(100% - 32px);
    max-width: 1180px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-3);
    padding: 7px 7px 7px 16px;
    border-radius: var(--r-pill);
    background: var(--glass-bg-strong);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: var(--glass-border);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 1),
        inset 0 -0.5px 0 rgba(255, 255, 255, 0.45),
        0 14px 36px rgba(58, 70, 48, 0.10),
        0 2px 8px rgba(58, 70, 48, 0.06);
    transition:
        transform 0.5s var(--ease),
        opacity 0.35s var(--ease),
        top 0.35s var(--ease),
        box-shadow 0.35s var(--ease);
    will-change: transform;
}
.nav.scrolled {
    top: 10px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 1),
        inset 0 -0.5px 0 rgba(255, 255, 255, 0.45),
        0 18px 48px rgba(58, 70, 48, 0.14),
        0 4px 14px rgba(58, 70, 48, 0.08);
}

.nav-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--ink);
    text-decoration: none;
    font-weight: 600;
    font-size: 15px;
    letter-spacing: -0.012em;
    white-space: nowrap;
}
.nav-logo img {
    width: 36px;
    height: 36px;
    object-fit: contain;
    flex-shrink: 0;
}

.nav-links {
    display: flex;
    gap: 2px;
    font-size: 13.5px;
    font-weight: 500;
    color: var(--ink-soft);
}
/* Nav items are plain anchor links — no dropdowns. */
.nav-item { position: relative; }
.nav-trigger {
    display: inline-flex;
    align-items: center;
    padding: 8px 14px;
    border-radius: var(--r-pill);
    color: var(--ink-soft);
    transition: color 0.25s var(--ease), background 0.25s var(--ease);
    cursor: pointer;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
}
.nav-trigger:hover {
    color: var(--brand-teal-deep);
    background: var(--brand-teal-mist);
}
.nav-trigger.active { color: var(--brand-teal-deep); }

/* nav-cta = compact btn--primary (same visual lineage as .btn--primary) */
.nav-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(180deg, var(--brand-teal) 0%, var(--brand-teal-hover) 100%);
    color: #ffffff;
    font-weight: 600;
    font-size: 14px;
    letter-spacing: -0.01em;
    padding: 9px 18px;
    border-radius: var(--r-pill);
    border: 0;
    cursor: pointer;
    transition: background var(--dur-mid) var(--ease),
                transform var(--dur-mid) var(--ease),
                box-shadow var(--dur-mid) var(--ease);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.28),
        inset 0 -1px 0 rgba(0, 0, 0, 0.16),
        0 4px 14px rgba(97, 119, 74, 0.34),
        0 1px 3px rgba(97, 119, 74, 0.22);
    white-space: nowrap;
}
.nav-cta:hover {
    background: linear-gradient(180deg, #72895a 0%, var(--brand-teal-deep) 100%);
    transform: scale(1.04);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.36),
        0 0 0 3px rgba(141, 154, 114, 0.55),
        0 8px 24px rgba(97, 119, 74, 0.28);
}
.nav-cta .arrow {
    display: inline-block;
    transition: transform 0.25s var(--ease);
}
.nav-cta:hover .arrow {
    transform: translateX(-3px);
}
/* Russian is LTR — the CTA arrow points → and nudges the other way on hover. */
html[lang="ru"] .nav-cta:hover .arrow {
    transform: translateX(3px);
}

.nav-burger {
    display: none;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(58, 70, 48, 0.08);
    place-items: center;
    color: var(--brand-navy);
    border: 0;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.2s var(--ease);
}
.nav-burger:hover {
    background: rgba(58, 70, 48, 0.14);
}
.nav-burger svg {
    width: 17px;
    height: 17px;
}

/* Mobile / tablet (≤1180px) — a REAL nav bar (not a lone floating burger):
   a centered Liquid Glass pill holding the clickable logo (→ top of page) at
   the RTL start and the burger (→ full-screen drawer of links) at the RTL end. */
@media (max-width: 1180px) {
    .nav {
        position: fixed;
        top: 14px;
        left: 50%;
        right: auto;
        transform: translate3d(-50%, 0, 0);
        width: calc(100% - 24px);
        max-width: 640px;
        padding: 7px 8px 7px 14px;
        gap: var(--gap-3);
        justify-content: space-between;
        background: var(--glass-bg-strong);
        backdrop-filter: var(--glass-blur);
        -webkit-backdrop-filter: var(--glass-blur);
        border: var(--glass-border);
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 1),
            inset 0 0 0 0.5px var(--brand-gold-line),
            0 12px 32px rgba(58, 70, 48, 0.12),
            0 2px 8px rgba(58, 70, 48, 0.06);
    }
    .nav.scrolled {
        top: 10px;
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 1),
            inset 0 0 0 0.5px var(--brand-gold-line),
            0 16px 42px rgba(58, 70, 48, 0.16),
            0 4px 12px rgba(58, 70, 48, 0.08);
    }
    /* Logo is shown + clickable (→ top); the inline link row + CTA stay hidden —
       the 6 section links live in the full-screen drawer opened by the burger. */
    .nav-logo { display: flex; }
    .nav-links,
    .nav-cta { display: none !important; }

    /* Burger — compact circular button inside the bar (RTL end) */
    .nav-burger {
        display: grid;
        width: 42px;
        height: 42px;
        border-radius: 50%;
        background: var(--brand-teal-mist);
        border: 1px solid var(--brand-gold-line);
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 0.9),
            0 2px 6px rgba(58, 70, 48, 0.12);
        color: var(--brand-teal-deep);
        transition:
            transform 0.28s var(--ease),
            background 0.28s var(--ease),
            box-shadow 0.28s var(--ease);
    }
    .nav-burger:hover,
    .nav-burger:focus-visible {
        transform: scale(1.05);
        background: var(--brand-teal-soft);
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 1),
            0 6px 16px rgba(97, 119, 74, 0.22);
    }
    .nav-burger:active {
        transform: scale(0.94);
    }
    .nav-burger svg {
        width: 19px;
        height: 19px;
        transition: transform 0.35s var(--ease);
    }
    .nav-burger[aria-expanded="true"] svg {
        transform: rotate(90deg);
    }

    /* content clears the fixed pill */
    main { padding-top: 76px; }
}

/* Tiny phones — keep just the logo mark in the bar (drop the wordmark text) */
@media (max-width: 380px) {
    .nav-logo span { display: none; }
}

@media (max-width: 560px) {
    #about-cbt .display--medium {
        font-size: clamp(14px, 4.2vw, 20px);
        letter-spacing: -0.022em;
        line-height: 1.25;
        text-wrap: balance;
    }
    /* Keep the short Hebrew line on one row; longer Russian wraps instead of clipping. */
    html[lang="he"] #about-cbt .display--medium { white-space: nowrap; }
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE DRAWER — full-screen Liquid Glass panel, flat link list
═══════════════════════════════════════════════════════════════ */
.drawer {
    position: fixed;
    inset: 0;
    z-index: 300;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.86) 0%, rgba(250, 247, 240, 0.78) 100%);
    backdrop-filter: saturate(180%) blur(30px);
    -webkit-backdrop-filter: saturate(180%) blur(30px);
    border-bottom: 0.5px solid rgba(255, 255, 255, 0.6);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 1),
        0 30px 80px rgba(58, 70, 48, 0.15);
    display: flex;
    flex-direction: column;
    padding: 88px 18px calc(24px + env(safe-area-inset-bottom));
    overflow: hidden;
    transform: translate3d(0, -110vh, 0);
    visibility: hidden;
    pointer-events: none;
    transition: transform 0.5s var(--ease), visibility 0.5s var(--ease);
}
.drawer.open {
    transform: translate3d(0, 0, 0);
    visibility: visible;
    pointer-events: auto;
}
/* Drawer X — pinned to the EXACT same physical spot as the burger
   (top:28, left:28), with identical size and Liquid Glass styling, so
   tapping the burger feels like the icon just morphs into an X.
   NOTE: must use physical `right: auto`, NOT `inset-inline-end: auto`.
   In RTL, `inset-inline-end` resolves to physical `left`, which would
   silently override the `left: 28px` above and slam the button back
   to the right edge. */
.drawer-close {
    position: absolute;
    top: 28px;
    left: 28px;
    right: auto;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--glass-bg-strong);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: var(--glass-border);
    color: var(--brand-teal-deep);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 1),
        inset 0 -0.5px 0 rgba(255, 255, 255, 0.40),
        0 10px 28px rgba(58, 70, 48, 0.18),
        0 2px 8px rgba(58, 70, 48, 0.10);
    cursor: pointer;
    display: grid;
    place-items: center;
    z-index: 5;
    transition: background 0.28s var(--ease),
                transform 0.28s var(--ease),
                box-shadow 0.28s var(--ease);
}
.drawer-close:hover,
.drawer-close:focus-visible {
    transform: scale(1.05);
    background: var(--brand-teal-mist);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 1),
        0 14px 36px rgba(97, 119, 74, 0.28),
        0 4px 10px rgba(97, 119, 74, 0.14);
}
.drawer-close:active { transform: scale(0.94); }
.drawer-close svg { width: 20px; height: 20px; }
.drawer-foot {
    margin-top: auto;
    padding-top: 24px;
    font-size: 12.5px;
    color: var(--ink-muted);
    text-align: center;
    flex-shrink: 0;
}

/* Simple, scrollable list of section anchors — no submenu, no glyphs.
   Tap a label → drawer closes + page smooth-scrolls to that section. */
.drawer-list {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px 4px;
    overflow-y: auto;
}
.drawer-link {
    display: flex;
    align-items: center;
    padding: 14px 18px;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -0.018em;
    color: var(--ink);
    text-decoration: none;
    border-radius: 14px;
    background: var(--glass-bg);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: var(--glass-border);
    box-shadow: var(--glass-shadow);
    transition: transform 0.22s var(--ease), background 0.22s var(--ease), box-shadow 0.22s var(--ease), color 0.22s var(--ease);
}
.drawer-link:hover,
.drawer-link:focus-visible {
    background: var(--glass-bg-strong);
    color: var(--brand-teal);
    box-shadow: var(--glass-shadow-hover);
}
.drawer-link:active {
    transform: scale(0.98);
}

/* lock body scroll when drawer open */
body.no-scroll {
    overflow: hidden;
}

/* ═══════════════════════════════════════════════════════════════
   SCROLL-REVEAL utility (smooth, single-shot)
═══════════════════════════════════════════════════════════════ */
.reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
    will-change: opacity, transform;
}
.reveal.in {
    opacity: 1;
    transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1; transform: none; transition: none; }
}

/* Section rhythm — tightened 64px vertical breathing (was 96px) per user
   request. Tile bg is the section divider (Apple pattern); each section
   gets a soft color block (Figma signature) cycled across the page. */
/* Section rhythm — mobile-first.
   --section-y: vertical breathing room, scales with viewport.
   --section-x: side gutter, clamped to safe range. */
:root {
    --section-y: clamp(56px, 9vw, 112px);
    --section-x: clamp(20px, 4vw, 40px);
}
.tile {
    width: 100%;
    padding: var(--section-y) var(--section-x);
    position: relative;
}
/* Tighter rhythm on tiles that hug each other visually (hero + trust band) */
.tile--trust { padding-top: clamp(36px, 6vw, 64px); padding-bottom: clamp(36px, 6vw, 64px); }
.tile__inner {
    max-width: var(--content-max);
    margin: 0 auto;
    text-align: center;
}
.tile__inner--narrow { max-width: var(--content-narrow); }

.tile--light       { background: var(--paper); color: var(--ink); }
.tile--parchment   {
    background: linear-gradient(180deg, #f8f4ec 0%, var(--parchment) 100%);
    color: var(--ink);
}

/* ─── Section accent rotation — TEAL · SAGE · TERRACOTTA (3 only) ───
   Reduced from 6 accents to 3 for tighter brand cohesion. Calmer canvas. */
#about-cbt {
    background: linear-gradient(180deg, var(--brand-teal-mist) 0%, #eaf0e0 100%);
}
#services {
    background: linear-gradient(180deg, #f4f0e3 0%, var(--brand-sage-soft) 100%);
}
#about-marina {
    background: linear-gradient(180deg, #f8f1e2 0%, var(--brand-terracotta-soft) 100%);
}
#process {
    background: linear-gradient(180deg, var(--brand-teal-mist) 0%, #eaf0e0 100%);
}
#faq {
    background: linear-gradient(180deg, #f4f0e3 0%, var(--brand-sage-soft) 100%);
}
#contact {
    background: linear-gradient(180deg, var(--brand-linen) 0%, var(--brand-terracotta-soft) 100%);
}

/* Hero — soft AURORA blend of every section's color block.
   Stacked radial gradients place each accent in a corner so the first
   screen previews the whole journey: teal · sunshine · rose · sage ·
   lavender · terracotta — all on a cream canvas. Apple-soft, Figma-blended. */
.tile--hero {
    padding-top: clamp(48px, 7vw, 80px);
    padding-bottom: clamp(40px, 6vw, 64px);
    /* Hero background (watercolor webp) is defined once at the end of this file. */
}
/* Hero layout — H1 → sub → badge → logo → CTAs, centered column. */
.tile__inner--hero {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: var(--gap-4);
}
.tile__inner--hero > * { margin: 0; }
.tile__inner--hero .display--hero { margin-top: var(--gap-3); }
.tile__inner--hero .hero__ctas { margin-top: var(--gap-4); }

.hero__logo {
    width: 180px;
    height: 180px;
    object-fit: contain;
    margin: 0 auto var(--gap-5);
    filter: drop-shadow(var(--shadow-product));
}
.hero__ctas {
    display: flex;
    gap: var(--gap-4);
    justify-content: center;
    flex-wrap: wrap;
}

.cbt-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--gap-4);
    margin-top: var(--gap-5);
    text-align: start;
}
/* Liquid Glass cards — Meta 24px radius + Apple/Meta liquid-glass recipe. */
.cbt-card {
    background: var(--glass-bg);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: var(--glass-border);
    border-radius: var(--r-card);
    padding: var(--gap-5) var(--gap-5);
    box-shadow: var(--glass-shadow);
    transition: transform 0.32s var(--ease), box-shadow 0.32s var(--ease), background 0.32s var(--ease);
}
.cbt-card:hover {
    transform: translateY(-3px);
    background: var(--glass-bg-strong);
    box-shadow: var(--glass-shadow-hover);
}
.cbt-card__num {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 600;
    color: var(--brand-sage);
    margin-bottom: var(--gap-3);
    letter-spacing: 0.04em;
}
.cbt-card__title {
    font-size: 22px;
    font-weight: 600;
    margin-bottom: var(--gap-3);
    color: var(--ink);
}
.cbt-card__text {
    font-size: 16px;
    line-height: 1.55;
    color: var(--ink-soft);
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--gap-3);
    margin-top: var(--gap-5);
    text-align: start;
}
.service-card {
    position: relative;
    background: var(--glass-bg);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: var(--glass-border);
    border-radius: var(--r-card);
    padding: var(--gap-5) var(--gap-4) var(--gap-4);
    overflow: hidden;
    box-shadow: var(--glass-shadow);
    transition: transform 0.32s var(--ease), box-shadow 0.32s var(--ease), background 0.32s var(--ease);
}
/* Top color stripe — cycles 4 brand accents across the 8 service cards.
   On the new light tile the colors are vivid but hover-only, never loud. */
.service-card::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    /* Two-accent brand hairline — sage → gold (the only accent pair). */
    background: linear-gradient(90deg, var(--brand-sage), var(--brand-gold));
    opacity: 0.9;
}

/* Apple-style icon glyph in a soft brand-colored circle */
.service-card__icon {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--gap-4);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.8),
        inset 0 -1px 0 rgba(0, 0, 0, 0.06),
        0 4px 12px rgba(58, 70, 48, 0.10),
        0 1px 3px rgba(58, 70, 48, 0.06);
    transition: transform var(--dur-mid) var(--ease),
                box-shadow var(--dur-mid) var(--ease);
}
.service-card:hover .service-card__icon {
    transform: scale(1.08) rotate(-2deg);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.9),
        inset 0 -1px 0 rgba(0, 0, 0, 0.06),
        0 8px 20px rgba(58, 70, 48, 0.16),
        0 2px 6px rgba(58, 70, 48, 0.10);
}
/* icon backgrounds: see the cohesive sage/gold rotation further down
   (.service-card:nth-child .service-card__icon, after the headline block) */
.service-card:hover {
    transform: translateY(-3px);
    background: var(--glass-bg-strong);
    box-shadow: var(--glass-shadow-hover);
}
.service-card__title {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: var(--gap-2);
    color: var(--ink);
    letter-spacing: -0.01em;
}
.service-card__text {
    font-size: 14px;
    line-height: 1.55;
    color: var(--ink-soft);
}

.about-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: var(--gap-9);
    align-items: center;
    text-align: start;
}
.about-grid__media { display: flex; justify-content: center; }
.about-portrait {
    width: 100%;
    max-width: 380px;
    aspect-ratio: 1 / 1;
    background: var(--paper);
    border-radius: var(--r-card);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-product);
}
.about-portrait__placeholder {
    width: 90%;
    height: 90%;
    object-fit: contain;
    opacity: 1;
}
.credentials {
    margin-top: var(--gap-5);
    display: grid;
    gap: var(--gap-3);
}
.credentials li {
    font-size: 16px;
    color: var(--ink-soft);
    padding-inline-start: var(--gap-4);
    position: relative;
}
.credentials li::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 0.6em;
    width: 6px;
    height: 6px;
    background: var(--brand-sage);
    border-radius: 50%;
}
.credentials strong {
    color: var(--ink);
    font-weight: 600;
    margin-inline-end: 4px;
}

.process-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--gap-3);
    margin-top: var(--gap-5);
    text-align: start;
}
.process-step {
    background: var(--glass-bg);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: var(--glass-border);
    border-radius: var(--r-card);
    padding: var(--gap-5);
    box-shadow: var(--glass-shadow);
    transition: transform 0.32s var(--ease), box-shadow 0.32s var(--ease), background 0.32s var(--ease);
}
.process-step:hover {
    transform: translateY(-3px);
    background: var(--glass-bg-strong);
    box-shadow: var(--glass-shadow-hover);
}
.process-step__num {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--brand-navy);
    color: var(--paper);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 16px;
    margin-bottom: var(--gap-4);
}
.process-step__title {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: var(--gap-2);
}
.process-step__text {
    font-size: 14px;
    line-height: 1.55;
    color: var(--ink-soft);
}

.footer {
    background: var(--parchment);
    color: var(--ink-soft);
    padding: var(--gap-9) var(--gap-6) var(--gap-6);
}
.footer__inner {
    max-width: var(--content-max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr;
    gap: var(--gap-7);
}
.footer__logo { width: 96px; height: 96px; object-fit: contain; margin-bottom: var(--gap-3); }
.footer__tagline { font-size: 13px; color: var(--ink-muted); }
.footer__heading {
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
    margin-bottom: var(--gap-3);
}
.footer__col ul li { line-height: 2.2; }
.footer__col a { color: var(--ink-soft); font-size: 13px; }
.footer__col a:hover { color: var(--ink); }
.footer__legal {
    max-width: var(--content-max);
    margin: var(--gap-7) auto 0;
    padding-top: var(--gap-5);
    border-top: 1px solid var(--hairline);
    font-size: 12px;
    color: var(--ink-soft);
    text-align: center;
}

/* ═══════════════════════════════════════════════════════════════
   CONTACT — Inline form section (replaces old modal flow)
═══════════════════════════════════════════════════════════════ */
.contact-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "intro form";
    gap: var(--gap-6);
    align-items: start;
    text-align: start;
    max-width: 1100px;
    margin: 0 auto;
}
.contact-intro { grid-area: intro; }
.contact-form-card { grid-area: form; }

.contact-intro .display--medium { margin-bottom: var(--gap-4); }
.contact-intro .lead {
    margin: 0 0 var(--gap-5);
    max-width: 460px;
}
.contact-intro .contact-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--gap-3);
    margin-top: var(--gap-4);
    padding-top: 0;
    border-top: none;
}

.contact-form-card {
    position: relative;
    background: var(--glass-bg-strong);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: var(--glass-border);
    border-radius: var(--r-card);
    padding: var(--gap-5);
    box-shadow: var(--glass-shadow);
    overflow: hidden;
}
.contact-form-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 100% 0%, rgba(97, 119, 74, 0.14), transparent 50%),
        radial-gradient(circle at 0% 100%, rgba(191, 155, 78, 0.15), transparent 55%);
    pointer-events: none;
    z-index: 0;
}
.contact-form-card > * { position: relative; z-index: 1; }
.contact-form-card__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--gap-3);
    margin-bottom: var(--gap-4);
    padding-bottom: var(--gap-3);
    border-bottom: 1px solid var(--hairline);
}
.contact-form-card__title {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.012em;
    color: var(--ink);
    margin: 0;
    line-height: 1.2;
}
.contact-form-card__sub {
    font-size: 12.5px;
    color: var(--ink-muted);
    text-align: end;
    line-height: 1.4;
}

.message-form--inline {
    padding: 0;
    display: grid;
    gap: var(--gap-3);
}
.message-form--inline .message-form__row label {
    font-weight: 600;
    color: var(--ink);
    font-size: 12.5px;
    margin-bottom: 4px;
    letter-spacing: -0.005em;
}
.message-form--inline .message-form__row label span {
    color: var(--gilt-text);
    font-weight: 700;
    margin-inline-start: 2px;
}
.message-form--inline .message-form__row input,
.message-form--inline .message-form__row textarea {
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid var(--hairline-strong);
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 14px;
    font-family: inherit;
    color: var(--ink);
    transition: border-color 0.22s var(--ease), box-shadow 0.22s var(--ease), background 0.22s var(--ease);
}
.message-form--inline .message-form__row textarea { min-height: 76px; }
.message-form--inline .message-form__row input::placeholder,
.message-form--inline .message-form__row textarea::placeholder {
    color: var(--ink-muted);
}
.message-form--inline .message-form__row input:hover,
.message-form--inline .message-form__row textarea:hover {
    border-color: rgba(97, 119, 74, 0.30);
    background: #ffffff;
}
.message-form--inline .message-form__row input:focus,
.message-form--inline .message-form__row textarea:focus {
    outline: none;
    border-color: var(--brand-teal);
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(97, 119, 74, 0.18);
}
.message-form--inline .message-form__actions {
    display: flex;
    gap: var(--gap-2);
    margin-top: 2px;
}
.message-form--inline .message-form__actions .btn { flex: 1; }
.message-form--inline .message-form__actions .btn--large {
    padding: 12px 20px;
    font-size: 15px;
}
.message-form--inline .message-form__note {
    font-size: 11.5px;
    color: var(--ink-muted);
    display: flex;
    align-items: center;
    gap: 4px;
    line-height: 1.4;
    margin-top: -2px;
}
.message-form--inline .message-form__success {
    background: linear-gradient(180deg, rgba(139, 168, 140, 0.14), rgba(139, 168, 140, 0.06));
    border: 1px solid rgba(86, 122, 88, 0.30);
    color: #3f5e41;
    padding: var(--gap-3) var(--gap-4);
    border-radius: 12px;
    font-size: 13.5px;
    line-height: 1.5;
}
.message-form--inline .message-form__success strong {
    color: #2b4a2d;
    font-weight: 700;
    display: block;
    margin-bottom: 2px;
}

@media (max-width: 900px) {
    .contact-layout {
        grid-template-columns: 1fr;
        grid-template-areas: "form" "intro";  /* form FIRST on mobile */
        gap: var(--gap-5);
    }
    .contact-form-card { padding: var(--gap-5); }
    .contact-form-card__header { flex-direction: column; align-items: flex-start; gap: 4px; }
    .contact-form-card__sub { text-align: start; }
    .message-form--inline .message-form__actions { flex-direction: column; }
}

/* ═══════════════════════════════════════════════════════════════
   HERO BADGE & extra polish — colored "מטפלת CBT מוסמכת" pill
═══════════════════════════════════════════════════════════════ */
.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 10px 20px;
    background: linear-gradient(180deg, #ffffff, var(--brand-teal-mist));
    border: 1px solid var(--brand-teal-soft);
    border-radius: var(--r-pill);
    font-size: 15px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    letter-spacing: 0.01em;
    margin-bottom: var(--gap-5);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 1),
        0 4px 12px rgba(97, 119, 74, 0.10);
}
.hero-badge::before {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--brand-teal);
    box-shadow: 0 0 0 3px rgba(97, 119, 74, 0.25);
    /* Static by design — calm, no looping pulse (anxiety-sensitive audience). */
}

/* Service-card icons — bolder fill, deeper saturation */
.service-card__icon { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7); }
/* 2-accent rotation across the 8 cards: sage · gold · sage · forest. */
.service-card:nth-child(4n+1) .service-card__icon {
    background: linear-gradient(180deg, #d0dabb, #aebd8e);
    color: #3d4a2c;
}
.service-card:nth-child(4n+2) .service-card__icon {
    background: linear-gradient(180deg, #ecdcae, #d8c182);
    color: #7a5e1f;
}
.service-card:nth-child(4n+3) .service-card__icon {
    background: linear-gradient(180deg, #dde2cf, #c3cfa6);
    color: #4a5733;
}
.service-card:nth-child(4n+4) .service-card__icon {
    background: linear-gradient(180deg, #cdd8bb, #b0c191);
    color: var(--brand-navy);
}

/* Form base rules — flex stack for label+input; all visual styling lives
   in .message-form--inline (single source of truth). */
.message-form__row {
    display: flex;
    flex-direction: column;
}

/* ═══════════════════════════════════════════════════════════════
   LEGAL MODALS — Terms / Privacy (Liquid Glass sheet + sticky close)
═══════════════════════════════════════════════════════════════ */
.legal-modal {
    position: fixed;
    inset: 0;
    z-index: 400;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px var(--gap-4);
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.32s var(--ease), visibility 0.32s var(--ease);
}
.legal-modal.is-open {
    pointer-events: auto;
    opacity: 1;
    visibility: visible;
}
.legal-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(47, 56, 36, 0.42);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
.legal-modal__sheet {
    position: relative;
    width: 100%;
    max-width: 720px;
    max-height: calc(100vh - 80px);
    overflow-y: auto;
    background: var(--glass-bg-strong);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: var(--glass-border);
    border-radius: var(--r-card);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 1),
        inset 0 -0.5px 0 rgba(255, 255, 255, 0.45),
        0 30px 80px rgba(47, 56, 36, 0.25),
        0 8px 24px rgba(47, 56, 36, 0.12);
    transform: translateY(24px) scale(0.97);
    opacity: 0;
    transition: transform 0.42s var(--ease), opacity 0.32s var(--ease);
    text-align: start;
}
.legal-modal.is-open .legal-modal__sheet {
    transform: translateY(0) scale(1);
    opacity: 1;
}

/* Close button — TOP sticky so it always stays visible while scrolling */
.legal-modal__close {
    position: sticky;
    top: 14px;
    margin: 14px 14px 0 14px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: var(--glass-border);
    background: var(--glass-bg-strong);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    color: var(--brand-teal-deep);
    cursor: pointer;
    display: grid;
    place-items: center;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 1),
        0 4px 14px rgba(58, 70, 48, 0.18);
    transition: background 0.22s var(--ease), transform 0.22s var(--ease);
    z-index: 2;
    float: inline-end;
}
.legal-modal__close:hover {
    background: var(--brand-teal-mist);
    transform: scale(1.05);
}
.legal-modal__close:active {
    transform: scale(0.94);
}
.legal-modal__close svg { width: 18px; height: 18px; }

.legal-modal__content {
    padding: 8px var(--gap-6) var(--gap-3);
}
.legal-modal__content .eyebrow {
    margin-bottom: var(--gap-2);
    color: var(--brand-teal);
}
.legal-modal__content .display--medium {
    text-align: start;
    margin-bottom: var(--gap-3);
}
.legal-modal__content .lead {
    text-align: start;
    margin: 0 0 var(--gap-5);
    max-width: none;
    font-size: 16px;
    color: var(--ink-soft);
}
.legal-h {
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 700;
    color: var(--brand-teal-deep);
    letter-spacing: -0.012em;
    margin: var(--gap-5) 0 var(--gap-2);
    line-height: 1.3;
}
.legal-modal__content p {
    color: var(--ink-soft);
    font-size: 15px;
    line-height: 1.65;
    margin: 0 0 var(--gap-3);
    letter-spacing: -0.003em;
}
.legal-modal__content p strong {
    color: var(--ink);
    font-weight: 600;
}
.legal-list {
    margin: 0 0 var(--gap-3);
    padding-inline-start: 0;
    padding-inline-end: var(--gap-5);
    list-style: none;
    color: var(--ink-soft);
}
.legal-list li {
    position: relative;
    font-size: 14.5px;
    line-height: 1.6;
    margin-bottom: 6px;
    padding-inline-end: var(--gap-4);
}
.legal-list li::before {
    content: "";
    position: absolute;
    inset-inline-end: 0;
    top: 11px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--brand-teal);
}
.legal-footnote {
    margin-top: var(--gap-5);
    padding-top: var(--gap-3);
    border-top: 1px solid var(--hairline);
    font-size: 12.5px;
    color: var(--ink-muted);
    font-style: italic;
}

@media (max-width: 560px) {
    .legal-modal { padding: 16px 12px; }
    .legal-modal__sheet { max-height: calc(100vh - 32px); border-radius: 20px; }
    .legal-modal__content { padding: 8px var(--gap-4) var(--gap-3); }
    .legal-h { font-size: 16px; }
}

/* ---------- Calming background blobs (Runway-cinematic, breathing) ----- */
.tile--hero,
.tile--faq {
    position: relative;
    overflow: hidden;
}
.tile--hero > .tile__inner,
.tile--faq > .tile__inner {
    position: relative;
    z-index: 1;
}
.hero-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    z-index: 0;
}
.hero-bg__blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(90px);
    will-change: transform;
}
.hero-bg__blob--sage {
    width: 540px; height: 540px;
    background: var(--brand-teal);
    opacity: 0.22;
    top: -160px;
    inset-inline-end: -120px;
    animation: breathe-1 18s ease-in-out infinite;
}
.hero-bg__blob--tan {
    width: 460px; height: 460px;
    background: var(--brand-terracotta);
    opacity: 0.20;
    bottom: -180px;
    inset-inline-start: -100px;
    animation: breathe-2 22s ease-in-out infinite;
}
.hero-bg__blob--cream {
    width: 380px; height: 380px;
    background: var(--brand-rose-soft);
    opacity: 0.55;
    top: 45%;
    inset-inline-start: 35%;
    animation: breathe-3 26s ease-in-out infinite;
}
.hero-bg--soft .hero-bg__blob--sage  { opacity: 0.14; width: 420px; height: 420px; }
.hero-bg--soft .hero-bg__blob--cream { opacity: 0.32; }

.hero-bg__grain {
    position: absolute;
    inset: -1px;
    background-image:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
    opacity: 0.6;
    mix-blend-mode: multiply;
    pointer-events: none;
}

@keyframes breathe-1 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(40px, 30px) scale(1.06); }
}
@keyframes breathe-2 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(-30px, -40px) scale(1.08); }
}
@keyframes breathe-3 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(20px, -30px) scale(0.94); }
}

/* ---------- Trust stats strip (Meta-style numerical trust) ------------- */
.trust-stats {
    margin-top: var(--gap-9);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--gap-6);
    padding-top: var(--gap-7);
    border-top: 1px solid var(--hairline);
}
/* Trust stats — Liquid Glass mini-cards */
.trust-stat {
    text-align: center;
    padding: var(--gap-4) var(--gap-3);
    background: var(--glass-bg);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: var(--glass-border);
    border-radius: var(--r-card-sm);
    box-shadow: var(--glass-shadow);
    transition: transform 0.32s var(--ease), background 0.32s var(--ease), box-shadow 0.32s var(--ease);
}
.trust-stat:hover {
    transform: translateY(-2px);
    background: var(--glass-bg-strong);
    box-shadow: var(--glass-shadow-hover);
}
.trust-stat__num {
    font-family: var(--font-display);
    font-size: clamp(34px, 4vw, 52px);
    font-weight: 300;
    color: var(--brand-navy);
    line-height: 1;
    letter-spacing: -0.02em;
    margin-bottom: var(--gap-2);
}
.trust-stat__label {
    font-size: 13px;
    color: var(--ink-soft);
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.02em;
}

@media (max-width: 834px) {
    .trust-stats { grid-template-columns: repeat(2, 1fr); gap: var(--gap-5); }
}

/* ---------- Invite tile (warm cream contact section) ------------------- */
/* Replaces the previous dark contact tile. The "warm gradient" cream surface
   bridges from the white FAQ section into the parchment footer — feels like
   walking into a quiet, warmly-lit room rather than a stark dark mailbox. */
.tile--invite {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, #f9f4ea 0%, var(--brand-linen) 100%);
    color: var(--ink);
}
.tile--invite > .tile__inner {
    position: relative;
    z-index: 1;
}


/* Contact cards — three rounded cards with soft brand-color icon circles.
   Phone and email are real links; location is static. */
.contact-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--gap-2);
    margin-top: var(--gap-4);
    text-align: start;
}
.contact-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--gap-3);
    padding: 10px 14px;
    background: var(--glass-bg);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: var(--glass-border);
    border-radius: 14px;
    color: var(--ink);
    text-decoration: none;
    box-shadow: var(--glass-shadow);
    transition: transform 0.25s var(--ease), background 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.contact-card:not(.contact-card--static):hover {
    transform: translateY(-1px);
    background: var(--glass-bg-strong);
    box-shadow: var(--glass-shadow-hover);
}
.contact-card__icon {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--paper);
    margin: 0;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.32),
        inset 0 -1px 0 rgba(0, 0, 0, 0.10),
        0 3px 8px rgba(58, 70, 48, 0.14);
}
.contact-card__icon svg { width: 18px; height: 18px; }
.contact-card__icon--sage  { background: linear-gradient(180deg, var(--brand-sage) 0%, color-mix(in srgb, var(--brand-sage) 75%, #000) 100%); }
.contact-card__icon--tan   { background: linear-gradient(180deg, var(--brand-tan) 0%, color-mix(in srgb, var(--brand-tan) 75%, #000) 100%); }
.contact-card__icon--blush { background: linear-gradient(180deg, var(--brand-blush) 0%, color-mix(in srgb, var(--brand-blush) 75%, #000) 100%); }
.contact-card__label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
    color: var(--ink-muted);
    text-transform: uppercase;
    display: block;
    line-height: 1.2;
}
.contact-card__value {
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.3;
    display: block;
    margin-top: 2px;
}
.contact-card--static { cursor: default; }
.contact-card--static .contact-card__value { font-size: 13px; font-weight: 500; color: var(--ink-soft); }

/* ---------- FAQ accordion (Apple-quiet, Figma-clean) ------------------- */
.faq-list {
    margin-top: var(--gap-7);
    border-top: 1px solid var(--hairline);
    text-align: start;
}
.faq-item {
    background: var(--glass-bg);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: var(--glass-border);
    border-radius: var(--r-card-sm);
    box-shadow: var(--glass-shadow);
    margin-bottom: var(--gap-2);
    transition: background 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.faq-item[open] {
    background: var(--glass-bg-strong);
    box-shadow: var(--glass-shadow-hover);
}
.faq-item summary {
    list-style: none;
    cursor: pointer;
    padding: var(--gap-4) var(--gap-5);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-4);
    transition: color var(--dur-fast) var(--ease);
    border-radius: var(--r-card-sm);
}
.faq-item summary::-webkit-details-marker,
.faq-item summary::marker { display: none; content: ""; }
.faq-item summary:hover {
    color: var(--brand-navy);
    background: var(--brand-warm-wash);
}
.faq-item summary:focus-visible {
    outline: 2px dashed var(--focus-ring);
    outline-offset: 4px;
}
.faq-item__q {
    font-family: var(--font-display);
    font-size: clamp(16px, 1.6vw, 19px);
    font-weight: 600;
    color: var(--ink);
    line-height: 1.4;
}
.faq-item__icon {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--parchment);
    position: relative;
    transition: background-color var(--dur-mid) var(--ease),
                transform var(--dur-mid) var(--ease);
}
.faq-item__icon::before,
.faq-item__icon::after {
    content: "";
    position: absolute;
    top: 50%; left: 50%;
    background: var(--ink);
    transition: transform var(--dur-mid) var(--ease),
                background-color var(--dur-mid) var(--ease);
}
.faq-item__icon::before {
    width: 13px; height: 1.6px;
    transform: translate(-50%, -50%);
    border-radius: 2px;
}
.faq-item__icon::after {
    width: 1.6px; height: 13px;
    transform: translate(-50%, -50%);
    border-radius: 2px;
}
.faq-item[open] .faq-item__icon {
    background: var(--brand-navy);
    transform: rotate(180deg);
}
.faq-item[open] .faq-item__icon::before { background: var(--paper); }
.faq-item[open] .faq-item__icon::after  {
    background: var(--paper);
    transform: translate(-50%, -50%) scaleY(0);
}
.faq-item__a {
    padding: 0 var(--gap-5) var(--gap-4);
    color: var(--ink-soft);
    font-size: 15.5px;
    line-height: 1.65;
    max-width: 720px;
    animation: faq-in 320ms var(--ease);
}
@keyframes faq-in {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1024px) {
    .services-grid { grid-template-columns: repeat(3, 1fr); }
    .process-grid  { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 834px) {
    .tile { padding: 44px var(--gap-4); }
    .tile--hero { padding-top: 56px; padding-bottom: 40px; }

    /* CBT cards (3) stay on a single row on mobile per user request.
       Tightened gap + smaller padding so they all fit. */
    .cbt-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }
    .cbt-card { padding: 14px 12px; }
    .cbt-card__num   { font-size: 12px; margin-bottom: 6px; letter-spacing: 0.04em; }
    .cbt-card__title { font-size: 14.5px; margin-bottom: 4px; line-height: 1.2; }
    .cbt-card__text  { font-size: 12px; line-height: 1.4; }

    .services-grid { grid-template-columns: repeat(2, 1fr); }

    /* Process steps (4) → horizontal scroll row on mobile per user request.
       Cards become fixed-width, swipe sideways to see them all. */
    .process-grid {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        gap: var(--gap-3);
        padding-bottom: var(--gap-3);
        margin-inline: calc(var(--gap-4) * -1);
        padding-inline: var(--gap-4);
        scrollbar-width: thin;
    }
    .process-grid::-webkit-scrollbar { height: 6px; }
    .process-grid::-webkit-scrollbar-thumb {
        background: rgba(97, 119, 74, 0.25);
        border-radius: 3px;
    }
    .process-step {
        flex: 0 0 78%;
        max-width: 280px;
        scroll-snap-align: start;
    }

    .about-grid {
        grid-template-columns: 1fr;
        gap: var(--gap-5);
        text-align: center;
    }
    .credentials li { padding-inline-start: 0; padding-inline-end: var(--gap-4); }
    .credentials li::before { inset-inline-start: auto; inset-inline-end: 0; }

    .footer__inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
    .tile { padding: 40px var(--gap-4); }
    .footer__inner { grid-template-columns: 1fr; }

    .hero__logo { width: 110px; height: 110px; }
}

/* Mobile — hero CTA breath */
@media (max-width: 834px) {
    .hero__ctas .btn { min-width: 180px; }
}

/* ═══════════════════════════════════════════════════════════════
   RUSSIAN (LTR) — applied by i18n.js when the widget switches to RU.
   Heebo carries no Cyrillic glyphs, so the font vars are retargeted
   to Rubik (Hebrew + Latin + Cyrillic). Layout direction flips via
   the dir="ltr" attribute set on <html>; the rest of the stylesheet
   already uses logical properties, so it mirrors automatically.
═══════════════════════════════════════════════════════════════ */
html[lang="ru"] {
    --font-display: "Rubik", -apple-system, BlinkMacSystemFont, "SF Pro Display",
                    "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    --font-body:    "Rubik", -apple-system, BlinkMacSystemFont, "SF Pro Text",
                    "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

/* Mobile hero shrink — hero typography + buttons need a smaller scale
   on narrow viewports. The desktop-baked sizes (76px H1, 180px logo,
   18/36 px buttons) overflow on phones. */
@media (max-width: 767px) {
    .display--hero { font-size: clamp(28px, 9vw, 42px); margin-bottom: var(--gap-3); }
    .display__sub  { font-size: 16px; line-height: 1.5; max-width: 92vw; margin-bottom: var(--gap-4); }
    .hero-badge    { font-size: 12px; padding: 7px 14px; gap: 7px; margin-bottom: var(--gap-4); }
    .hero__logo    { width: 110px; height: 110px; margin: 0 auto var(--gap-4); }
    .btn--large    { padding: 13px 22px; font-size: 16px; }
    .hero__ctas    { gap: var(--gap-3); }
}

/* ═══════════════════════════════════════════════════════════════
   ELEVATED LIQUID GLASS — logo-matched sage/gold refinements
   Serif display · gold sheen + hairlines · warm logo halo · glass ring
═══════════════════════════════════════════════════════════════ */

/* Serif display — echoes the engraved serif of the logo wordmark.
   Frank Ruhl Libre carries Hebrew + Latin; Heebo is the graceful fallback. */
.display          { font-family: var(--font-serif); }
.display--hero    { letter-spacing: -0.006em; font-weight: 700; }
.display--medium  { letter-spacing: -0.004em; font-weight: 600; }
/* Russian uses Rubik (no matching serif cut) — keep the sans display there. */
html[lang="ru"] .display { font-family: var(--font-display); letter-spacing: -0.02em; }

/* Eyebrow tick → soft gold gradient bar */
.eyebrow::before {
    width: 22px;
    height: 2px;
    background: linear-gradient(90deg, var(--brand-gold), var(--brand-gold-soft));
    border-radius: 2px;
}

/* Hero logo — warm twin-glow (follows the PNG alpha, no hard box) */
.hero__logo {
    filter:
        drop-shadow(0 4px 10px rgba(120, 108, 56, 0.16))
        drop-shadow(0 14px 34px rgba(140, 120, 60, 0.14));
}

/* Hero headline keeps the olive gradient; nudge line-height for the serif */
.display--hero { line-height: 1.08; }

/* Specular sheen — a single diagonal gloss in the top-inline-start corner.
   Low alpha + capped reach so card text stays perfectly legible. */
.nav::after,
.cbt-card::after,
.service-card::after,
.process-step::after,
.trust-stat::after,
.contact-form-card::after,
.faq-item::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(135deg, rgba(255, 255, 252, 0.22) 0%, rgba(255, 255, 252, 0) 42%);
    pointer-events: none;
    z-index: 0;
}
.cbt-card, .process-step, .trust-stat, .faq-item { position: relative; }
/* keep real content above the sheen */
.cbt-card > *, .process-step > *, .trust-stat > *,
.faq-item > summary, .faq-item > .faq-item__a,
.service-card > *, .contact-form-card > * { position: relative; z-index: 1; }

/* Gold hairline on the floating nav — DESKTOP ONLY (the ≤1180px nav is
   chrome-less: a bare burger). Scoped so it can't re-add a bar on mobile. */
@media (min-width: 1181px) {
    .nav {
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 252, 1),
            inset 0 0 0 0.5px var(--brand-gold-line),
            inset 0 -0.5px 0 rgba(191, 155, 78, 0.14),
            0 14px 36px rgba(58, 70, 48, 0.12),
            0 2px 8px rgba(58, 70, 48, 0.07);
    }
    .nav > * { position: relative; z-index: 1; }
}
/* Sheen must sit under the bare mobile burger glyph too */
.nav-burger { position: relative; }
.nav-burger svg { position: relative; z-index: 1; }

/* About portrait — glass frame with a gilded ring instead of a white box */
.about-portrait {
    background: var(--glass-bg-strong);
    border: 1px solid var(--brand-gold-line);
    box-shadow:
        var(--glass-shadow),
        0 0 0 7px rgba(191, 155, 78, 0.07),
        0 24px 60px rgba(58, 70, 48, 0.12);
}
.about-portrait__placeholder {
    filter: drop-shadow(0 6px 16px rgba(120, 108, 56, 0.14));
}

/* Hero badge — gold status dot, no looping pulse (calm > beating) */
.hero-badge {
    background: linear-gradient(180deg, #ffffff, var(--brand-teal-mist));
    border-color: var(--brand-gold-line);
    color: var(--brand-teal-deep);
}
.hero-badge::before {
    background: var(--brand-gold);
    box-shadow: 0 0 0 4px rgba(191, 155, 78, 0.16);
}

/* Primary button — sage face with a fine gold top-light for depth */
.btn--primary,
.nav-cta {
    box-shadow:
        inset 0 1px 0 rgba(231, 212, 160, 0.45),
        inset 0 -1px 0 rgba(0, 0, 0, 0.16),
        0 4px 14px rgba(97, 119, 74, 0.34),
        0 1px 3px rgba(97, 119, 74, 0.22);
}

/* Footer — warm cream with a gold top hairline */
.footer { border-top: 1px solid var(--brand-gold-line); }

/* ── Accent system — single source of truth ─────────────────────────
   The ONLY place section/number/eyebrow accent colors are assigned. All
   colored TEXT here clears WCAG AA on the cream canvas (deep sage / deep
   gilt / navy only). Decorative FILLS elsewhere (icon tiles, the sage→gold
   service hairline) keep the lighter brand tones. Edit accents HERE. */
:root { --gilt-text: #6d531b; }   /* deep gilt-brown ≈ 6:1 on cream + tinted gradients */

#about-cbt .eyebrow,
#process .eyebrow,
.tile--trust .eyebrow      { color: var(--brand-teal-deep); }
#services .eyebrow,
#faq .eyebrow,
#contact .eyebrow,
#about-marina .eyebrow     { color: var(--gilt-text); }

.cbt-card:nth-child(3n+1) .cbt-card__num { color: var(--brand-teal-deep); }
.cbt-card:nth-child(3n+2) .cbt-card__num { color: var(--gilt-text); }
.cbt-card:nth-child(3n+3) .cbt-card__num { color: var(--brand-navy); }

.trust-stat__num { color: var(--brand-navy); }
.trust-stat:nth-child(4n+2) .trust-stat__num,
.trust-stat:nth-child(4n+4) .trust-stat__num { color: var(--gilt-text); }

/* Process circles — deep fills so the white step number passes contrast */
.process-step:nth-child(4n+1) .process-step__num { background: var(--brand-navy); }
.process-step:nth-child(4n+2) .process-step__num { background: var(--brand-teal); }
.process-step:nth-child(4n+3) .process-step__num { background: var(--gilt-text); }
.process-step:nth-child(4n+4) .process-step__num { background: var(--brand-navy-hover); }


/* ── Process-step cover image — full-bleed watercolor band at the card top ── */
.process-step { overflow: hidden; }
.process-step__img {
    display: block;
    width: calc(100% + var(--gap-5) * 2);
    aspect-ratio: 16 / 7;            /* scales with the narrower mobile card */
    object-fit: cover;
    object-position: center 58%;
    margin: calc(var(--gap-5) * -1) calc(var(--gap-5) * -1) var(--gap-4);
    border-radius: var(--r-card) var(--r-card) 0 0;
}

/* ── Hero — soft watercolor background (sage/gold/cream) behind logo + text.
   A cream wash keeps the headline, sub-text and CTAs fully legible; this image
   replaces the old aurora/blob layer. ── */
.tile--hero {
    background:
        linear-gradient(180deg, rgba(246, 241, 231, 0.60) 0%, rgba(246, 241, 231, 0.32) 46%, rgba(246, 241, 231, 0.74) 100%),
        url('assets/hero-bg.webp') center / cover no-repeat,
        linear-gradient(180deg, var(--brand-linen) 0%, #ffffff 100%);
}
.tile--hero > .hero-bg { display: none; }
@media (max-width: 820px) {
    .tile--hero {
        background:
            linear-gradient(180deg, rgba(246, 241, 231, 0.64) 0%, rgba(246, 241, 231, 0.40) 46%, rgba(246, 241, 231, 0.80) 100%),
            url('assets/hero-bg-800.webp') center / cover no-repeat,
            linear-gradient(180deg, var(--brand-linen) 0%, #ffffff 100%);
    }
}

/* ═══════════════════════════════════════════════════════════════
   ELEVATION v2 — calm motion + finish + a11y/state coverage.
   All motion is transform/opacity only and auto-neutralized by the global
   prefers-reduced-motion block at the top of this file.
═══════════════════════════════════════════════════════════════ */

/* ── Lighter card blur — the many repeated glass cards drop to a cheaper
   backdrop so scroll stays smooth (the big hero/nav/modal panels keep full
   blur). Mobile drops further. ── */
.cbt-card, .service-card, .process-step, .trust-stat, .faq-item, .contact-card {
    backdrop-filter: var(--glass-blur-card);
    -webkit-backdrop-filter: var(--glass-blur-card);
}
@media (max-width: 820px) {
    .cbt-card, .service-card, .process-step, .trust-stat, .faq-item, .contact-card {
        backdrop-filter: saturate(150%) blur(10px);
        -webkit-backdrop-filter: saturate(150%) blur(10px);
    }
}

/* ── Focus-visible — every interactive element gets a keyboard ring (the .btn
   pattern, applied site-wide). ── */
.nav-trigger:focus-visible,
.nav-logo:focus-visible       { outline: 2px solid var(--focus-ring); outline-offset: 3px; border-radius: var(--r-pill); }
.contact-card:not(.contact-card--static):focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
.legal-modal__close:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
.footer__col a:focus-visible  { outline: 2px solid var(--focus-ring); outline-offset: 2px; border-radius: 4px; }

/* Press parity — CSS owns all press feedback now (no JS transform writes). */
.nav-cta:active { transform: scale(0.95); opacity: 0.9; }

/* ── Form states — designed error + disabled (tokenized; JS only toggles a
   class, never injects a hex). ── */
.message-form__error {
    color: var(--danger);
    margin-top: var(--gap-2);
    font-weight: 600;
    font-size: 13px;
}
.message-form--inline .message-form__row input.is-error,
.message-form--inline .message-form__row textarea.is-error {
    border-color: var(--danger);
    box-shadow: 0 0 0 3px var(--danger-soft);
}
.btn:disabled, .btn[disabled] {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

/* ── Scroll-spy active nav link — gold underline grows from the start edge
   (right in RTL, left in RU). Hover keeps the existing pill highlight. ── */
.nav-trigger { position: relative; }
.nav-trigger::after {
    content: "";
    position: absolute;
    inset-inline: 14px;
    bottom: 4px;
    height: 1.5px;
    background: var(--brand-gold);
    border-radius: 2px;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform var(--dur-mid) var(--ease);
}
html[lang="ru"] .nav-trigger::after { transform-origin: left; }
.nav-trigger.active::after { transform: scaleX(1); }

/* ── Footer link underline — calm hover affordance ── */
.footer__col a { position: relative; }
.footer__col a::after {
    content: "";
    position: absolute;
    inset-inline: 0;
    bottom: -2px;
    height: 1.5px;
    background: var(--brand-gold);
    border-radius: 2px;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform var(--dur-mid) var(--ease);
}
html[lang="ru"] .footer__col a::after { transform-origin: left; }
.footer__col a:hover::after { transform: scaleX(1); }

/* ── Specular sheen SWEEP on card hover — the shared static gloss becomes a
   single calm diagonal pass. Excludes .nav and .faq-item (not hover-lift
   cards). Alpha stays <=0.22; clipped by the card's own overflow. ── */
.cbt-card, .trust-stat { overflow: hidden; }
.cbt-card::after,
.service-card::after,
.process-step::after,
.trust-stat::after {
    transform: translateX(-30%);
    opacity: 0;
    transition: transform 0.7s var(--ease-out), opacity 0.7s var(--ease-out);
}
.cbt-card:hover::after,
.service-card:hover::after,
.process-step:hover::after,
.trust-stat:hover::after {
    transform: translateX(30%);
    opacity: 1;
}

/* ── FAQ smooth collapse — modern ::details-content animates open AND close.
   Browsers without support fall back to the existing instant native toggle
   (open still fades via faq-in). Reduced-motion keeps it instant. ── */
@supports (interpolate-size: allow-keywords) {
    :root { interpolate-size: allow-keywords; }
    @media (prefers-reduced-motion: no-preference) {
        .faq-item::details-content {
            block-size: 0;
            overflow: hidden;
            transition: block-size 0.34s var(--ease), content-visibility 0.34s allow-discrete;
        }
        .faq-item[open]::details-content { block-size: auto; }
    }
}

/* ── Process-grid mobile scroll dots — position affordance for the swipe row.
   Injected by script.js; hidden on desktop where the grid isn't scrollable. ── */
.process-dots { display: none; }
@media (max-width: 834px) {
    .process-dots {
        display: flex;
        justify-content: center;
        gap: 7px;
        margin-top: var(--gap-3);
    }
    .process-dot {
        width: 7px;
        height: 7px;
        border-radius: 50%;
        background: var(--brand-teal-soft);
        transition: background var(--dur-mid) var(--ease), transform var(--dur-mid) var(--ease);
    }
    .process-dot.is-active {
        background: var(--brand-teal);
        transform: scale(1.25);
    }
}

/* ── Tiny phones (<=360px) — keep the 3-up CBT row readable, not clipped. ── */
@media (max-width: 360px) {
    .cbt-grid { gap: 6px; }
    .cbt-card { padding: 12px 9px; display: flex; flex-direction: column; }
    .cbt-card__title { font-size: 13px; }
    .cbt-card__text  { font-size: 11px; }
}

/* ═══════════════════════════════════════════════════════════════
   SHOWCASE — cinematic illustration-video section (self-hosted mp4).
   The glass "cinema" frame's transform is owned SOLELY by the scrubbed
   ScrollTrigger in script.js — no CSS :hover transform on the frame — so
   the single-owner motion rule holds (CSS still owns the button hover/
   press). Reduced-motion: JS skips the scrub + autoplay; the poster stays
   and the button plays on demand. All motion is transform/opacity only and
   auto-neutralized by the global prefers-reduced-motion block up top.
═══════════════════════════════════════════════════════════════ */
.sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
    white-space: nowrap; border: 0;
}
.showcase-frame {
    position: relative;
    max-width: 940px;
    margin: var(--gap-7) auto 0;
    padding: 10px;
    border-radius: calc(var(--r-card) + 8px);
    background: var(--glass-bg-strong);
    -webkit-backdrop-filter: var(--glass-blur);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--brand-gold-line);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 1),
        inset 0 -0.5px 0 rgba(191, 155, 78, 0.18),
        0 34px 80px rgba(58, 70, 48, 0.20),
        0 10px 28px rgba(58, 70, 48, 0.10);
    will-change: transform;
}
.showcase-frame__glow {
    position: absolute;
    inset: -34px;
    z-index: -1;
    border-radius: inherit;
    background:
        radial-gradient(58% 60% at 50% 26%, rgba(191, 155, 78, 0.24), transparent 70%),
        radial-gradient(60% 60% at 50% 82%, rgba(97, 119, 74, 0.20), transparent 72%);
    filter: blur(34px);
    pointer-events: none;
}
.showcase-video {
    display: block;
    width: 100%;
    height: auto;              /* override the width/height attrs so aspect-ratio governs */
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: var(--r-card);
    background: #f4efe4;
    box-shadow: inset 0 0 0 1px rgba(191, 155, 78, 0.14);
}
.showcase-video__btn {
    position: absolute;
    inset-block-end: 24px;
    inset-inline-start: 24px;
    width: 54px; height: 54px;
    border-radius: 50%;
    display: grid; place-items: center;
    background: var(--glass-bg-strong);
    -webkit-backdrop-filter: var(--glass-blur);
    backdrop-filter: var(--glass-blur);
    border: var(--glass-border);
    color: var(--brand-teal-deep);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 1),
        0 10px 26px rgba(58, 70, 48, 0.20),
        0 2px 8px rgba(58, 70, 48, 0.12);
    cursor: pointer;
    z-index: 2;
    transition: transform 0.25s var(--ease), background 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.showcase-video__btn:hover {
    transform: scale(1.06);
    background: var(--brand-teal-mist);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 1),
        0 14px 34px rgba(97, 119, 74, 0.28),
        0 4px 10px rgba(97, 119, 74, 0.14);
}
.showcase-video__btn:active { transform: scale(0.94); }
.showcase-video__btn:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
.showcase-video__btn .ic { width: 22px; height: 22px; }
.showcase-video__btn .ic-pause { display: none; }
.showcase-video__btn.is-playing .ic-play { display: none; }
.showcase-video__btn.is-playing .ic-pause { display: block; }

@media (max-width: 560px) {
    .showcase-frame {
        padding: 7px;
        margin-top: var(--gap-5);
        border-radius: calc(var(--r-card-sm) + 8px);
    }
    .showcase-video__btn {
        width: 46px; height: 46px;
        inset-block-end: 14px; inset-inline-start: 14px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   LANDING EXPERIENCE · 2026-07-29
   Editorial hierarchy + restrained Liquid Glass. Sage and warm gold are the
   only accents; functional chrome stays quiet and high-contrast.
═══════════════════════════════════════════════════════════════ */
:root {
    --brand-teal: #526b58;
    --brand-teal-hover: #425849;
    --brand-teal-deep: #26382f;
    --brand-teal-soft: #d7e0d3;
    --brand-teal-mist: #eef3ec;
    --brand-gold: #b58b3c;
    --brand-gold-soft: #ead9ad;
    --brand-gold-line: rgba(181, 139, 60, 0.34);
    --brand-navy: #26382f;
    --brand-navy-hover: #1d2b24;
    --ink: #202a24;
    --ink-soft: #4e5b53;
    --ink-muted: #68746c;
    --paper: #fbf9f3;
    --parchment: #f3eee2;
    --hairline: rgba(38, 56, 47, 0.10);
    --hairline-strong: rgba(38, 56, 47, 0.17);
    --content-max: 1240px;
    --content-narrow: 860px;
    --r-card: 30px;
    --r-card-sm: 20px;
    --glass-bg: linear-gradient(145deg, rgba(255, 255, 252, 0.76), rgba(245, 241, 231, 0.50));
    --glass-bg-strong: linear-gradient(145deg, rgba(255, 255, 253, 0.92), rgba(248, 244, 235, 0.72));
    --glass-border: 1px solid rgba(255, 255, 252, 0.76);
    --glass-blur: saturate(155%) blur(22px);
    --glass-blur-card: saturate(145%) blur(15px);
    --glass-shadow:
        inset 0 1px 0 rgba(255,255,255,.94),
        inset 0 0 0 1px rgba(181,139,60,.07),
        0 18px 54px rgba(38,56,47,.08),
        0 3px 12px rgba(38,56,47,.05);
    --glass-shadow-hover:
        inset 0 1px 0 rgba(255,255,255,1),
        inset 0 0 0 1px rgba(181,139,60,.12),
        0 24px 64px rgba(38,56,47,.12),
        0 5px 16px rgba(38,56,47,.07);
    --section-y: clamp(76px, 9vw, 132px);
    --section-x: clamp(20px, 5vw, 64px);
}

html { scroll-padding-top: 112px; }
body {
    font-size: 17px;
    line-height: 1.58;
    background:
        radial-gradient(circle at 8% 6%, rgba(181,139,60,.08), transparent 28rem),
        radial-gradient(circle at 92% 18%, rgba(82,107,88,.08), transparent 34rem),
        var(--paper);
}
main { padding-top: 0; }
.tile {
    padding: var(--section-y) var(--section-x);
    isolation: isolate;
}
.tile__inner { position: relative; z-index: 2; }
.section-heading {
    max-width: 780px;
    margin: 0 auto clamp(30px, 4vw, 52px);
    text-align: center;
}
.section-heading .lead { margin-top: 18px; }
.eyebrow {
    margin-bottom: 16px;
    color: var(--brand-teal-deep);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
}
.eyebrow::before {
    width: 25px;
    height: 1px;
    background: linear-gradient(90deg, var(--brand-teal), var(--brand-gold));
}
.display {
    font-family: var(--font-serif);
    font-kerning: normal;
    text-wrap: balance;
}
.display--hero {
    max-width: 720px;
    margin: 0;
    font-size: clamp(54px, 7vw, 92px);
    line-height: .97;
    letter-spacing: -.035em;
    font-weight: 650;
}
.display--hero span {
    color: transparent;
    background: linear-gradient(110deg, var(--brand-teal) 10%, var(--brand-gold) 88%);
    -webkit-background-clip: text;
    background-clip: text;
}
.display--medium {
    font-size: clamp(36px, 4.5vw, 58px);
    line-height: 1.06;
    letter-spacing: -.024em;
    font-weight: 600;
    margin-bottom: 0;
}
.lead {
    max-width: 650px;
    font-size: clamp(17px, 1.45vw, 20px);
    line-height: 1.62;
    color: var(--ink-soft);
}
.body-text {
    font-size: clamp(17px, 1.4vw, 20px);
    line-height: 1.72;
    color: var(--ink-soft);
    margin-bottom: 14px;
}
.body-text--lead { color: var(--ink); font-weight: 500; }

/* Navigation: compact glass instrument, never a detached mobile icon. */
.nav {
    top: 18px;
    width: min(calc(100% - 30px), 1240px);
    min-height: 68px;
    padding: 8px 10px 8px 12px;
    gap: 18px;
    border: 1px solid rgba(255,255,255,.78);
    background: rgba(251,249,243,.74);
    -webkit-backdrop-filter: saturate(165%) blur(26px);
    backdrop-filter: saturate(165%) blur(26px);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.96),
        inset 0 0 0 1px rgba(181,139,60,.07),
        0 18px 52px rgba(28,44,35,.12);
}
.nav.scrolled { top: 10px; }
.nav-logo { gap: 11px; min-width: max-content; }
.nav-logo__mark {
    width: 45px;
    height: 45px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: rgba(255,255,255,.68);
    border: 1px solid rgba(181,139,60,.22);
    box-shadow: inset 0 1px 0 #fff, 0 6px 18px rgba(38,56,47,.08);
}
.nav-logo__mark img { width: 37px; height: 37px; }
.nav-logo__copy { display: grid; gap: 0; line-height: 1.05; }
.nav-logo__copy strong { font-size: 15px; color: var(--ink); font-weight: 700; }
.nav-logo__copy small {
    margin-top: 4px;
    font-family: var(--font-display);
    font-size: 9px;
    letter-spacing: .24em;
    color: var(--brand-gold);
    direction: ltr;
    text-align: start;
}
.nav-links { gap: 3px; }
.nav-trigger { padding: 10px 13px; font-size: 13px; font-weight: 600; }
.nav-trigger::after { bottom: 3px; height: 1px; }
.nav-cta {
    min-height: 48px;
    padding: 0 20px;
    border-radius: 17px;
    background: linear-gradient(145deg, #597560, #354a3e);
    font-size: 14px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 10px 24px rgba(38,56,47,.20);
}
.nav-cta:hover { transform: translateY(-1px); background: linear-gradient(145deg, #647f6b, #2d4035); }

/* Hero: editorial copy paired with an original, always-visible illustration. */
.landing-hero {
    min-height: min(960px, 100svh);
    padding-top: clamp(132px, 15vh, 176px);
    padding-bottom: clamp(82px, 10vh, 124px);
    overflow: hidden;
    background:
        linear-gradient(125deg, rgba(251,249,243,.98) 5%, rgba(246,241,229,.91) 48%, rgba(235,240,232,.88) 100%);
}
.landing-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    opacity: .42;
    background-image:
        linear-gradient(rgba(38,56,47,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(38,56,47,.035) 1px, transparent 1px);
    background-size: 74px 74px;
    -webkit-mask-image: linear-gradient(to bottom, black, transparent 82%);
    mask-image: linear-gradient(to bottom, black, transparent 82%);
}
.landing-hero__atmosphere span {
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    filter: blur(30px);
    pointer-events: none;
}
.landing-hero__atmosphere span:first-child {
    width: 480px; height: 480px; inset-inline-start: -150px; top: 10%;
    background: rgba(82,107,88,.15);
}
.landing-hero__atmosphere span:last-child {
    width: 420px; height: 420px; inset-inline-end: -120px; bottom: 4%;
    background: rgba(181,139,60,.12);
}
.landing-hero__grid {
    width: 100%;
    max-width: var(--content-max);
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, .75fr);
    align-items: center;
    gap: clamp(52px, 8vw, 112px);
    text-align: start;
}
.landing-hero__copy { display: flex; flex-direction: column; align-items: flex-start; }
.landing-hero .hero-badge {
    margin: 0 0 26px;
    padding: 9px 15px;
    border: 1px solid rgba(82,107,88,.18);
    background: rgba(255,255,255,.52);
    color: var(--brand-teal-deep);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
}
.landing-hero .hero-badge::before { width: 8px; height: 8px; border-radius: 50%; background: var(--brand-gold); }
.landing-hero .display__sub {
    max-width: 620px;
    margin: 28px 0 0;
    color: var(--ink-soft);
    font-family: var(--font-body);
    font-size: clamp(18px, 1.7vw, 23px);
    font-weight: 400;
    line-height: 1.65;
}
.landing-hero .hero__ctas { justify-content: flex-start; margin-top: 34px; gap: 12px; }
.btn { min-height: 48px; font-weight: 650; }
.btn--large { min-height: 58px; padding: 0 28px; font-size: 17px; }
.btn--primary {
    background: linear-gradient(145deg, #5d7864, #304438);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.24), 0 12px 30px rgba(38,56,47,.24);
}
.btn--primary:hover { transform: translateY(-2px); background: linear-gradient(145deg, #68856f, #2b3d33); }
.btn--ghost {
    background: rgba(255,255,255,.48);
    border-color: rgba(82,107,88,.18);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.88), 0 8px 24px rgba(38,56,47,.06);
}
.btn--ghost:hover { transform: translateY(-2px); }
.hero-points {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    margin-top: 30px;
    color: var(--ink-muted);
}
.hero-points li { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; }
.hero-points li span { width: 6px; height: 6px; border-radius: 50%; background: var(--brand-gold); box-shadow: 0 0 0 4px rgba(181,139,60,.10); }
.hero-points b { font-weight: 600; }
.landing-hero__visual { width: 100%; margin: 0; position: relative; justify-self: center; }
.landing-hero__glass {
    position: relative;
    width: min(100%, 470px);
    margin-inline: auto;
    padding: 11px;
    border-radius: 52px 52px 160px 52px;
    overflow: hidden;
    background: rgba(255,255,255,.42);
    border: 1px solid rgba(255,255,255,.88);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,1),
        inset 0 0 0 1px rgba(181,139,60,.12),
        0 38px 90px rgba(38,56,47,.18),
        0 10px 28px rgba(38,56,47,.10);
    -webkit-backdrop-filter: saturate(155%) blur(18px);
    backdrop-filter: saturate(155%) blur(18px);
}
.landing-hero__glass .hero__logo {
    width: 100%;
    height: clamp(510px, 58vw, 650px);
    margin: 0;
    border-radius: 42px 42px 150px 42px;
    object-fit: cover;
    object-position: 50% 48%;
    filter: saturate(.92) contrast(.99);
    box-shadow: none;
}
.landing-hero__shine {
    position: absolute;
    inset: 12px 12px auto;
    height: 38%;
    border-radius: 40px;
    background: linear-gradient(180deg, rgba(255,255,255,.34), transparent);
    pointer-events: none;
}
.landing-hero__caption {
    position: absolute;
    inset-inline-start: -34px;
    bottom: 48px;
    max-width: 260px;
    padding: 15px 18px;
    border-radius: 18px;
    background: rgba(249,247,240,.78);
    border: 1px solid rgba(255,255,255,.92);
    color: var(--ink);
    font-size: 13px;
    font-weight: 650;
    line-height: 1.45;
    box-shadow: var(--glass-shadow);
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
}

/* Concise concerns grid. */
.tile--services {
    background:
        radial-gradient(circle at 0% 20%, rgba(181,139,60,.09), transparent 30rem),
        linear-gradient(180deg, #fbfaf6, #f4f0e6);
}
.services-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-top: 0;
}
.service-card {
    min-height: 220px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    border-radius: 26px;
    border: 1px solid rgba(255,255,255,.76);
    background: rgba(255,255,252,.56);
    box-shadow: var(--glass-shadow);
}
.service-card::before {
    inset: 0 auto auto 0;
    width: 100%; height: 2px;
    opacity: .55;
    background: linear-gradient(90deg, transparent, var(--brand-gold), var(--brand-teal), transparent);
}
.service-card::after { display: none; }
.service-card:hover { transform: translateY(-4px); }
.service-card__icon {
    width: 49px; height: 49px;
    margin-bottom: auto;
    border-radius: 16px;
    color: var(--brand-teal-deep);
    background: var(--brand-teal-mist);
    border: 1px solid rgba(82,107,88,.12);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.92);
}
.service-card:nth-child(even) .service-card__icon { color: #6c511d; background: rgba(234,217,173,.52); border-color: rgba(181,139,60,.15); }
.service-card__icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.service-card:hover .service-card__icon { transform: translateY(-2px); }
.service-card__title { margin-top: 24px; margin-bottom: 7px; font-size: 20px; }
.service-card__text { font-size: 15px; line-height: 1.6; color: var(--ink-soft); }
.section-action { margin-top: 30px; text-align: center; }

/* About: no fabricated portrait or credentials. */
.tile--about { background: linear-gradient(140deg, #f8f5ed 0%, #edf2eb 100%); }
.about-grid {
    grid-template-columns: minmax(360px, .9fr) minmax(0, 1.1fr);
    gap: clamp(52px, 8vw, 110px);
    text-align: start;
}
.about-grid__content { max-width: 590px; }
.about-grid__content .display { margin-bottom: 28px; }
.approach-points {
    margin-top: 30px;
    padding: 18px 20px;
    border-radius: 22px;
    background: rgba(255,255,255,.46);
    border: 1px solid rgba(255,255,255,.82);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.86);
}
.approach-points li { padding: 10px 22px 10px 0; color: var(--ink-soft); font-size: 15px; }
.approach-points li::before { inset-inline-start: 0; inset-inline-end: auto; top: 1.18em; background: var(--brand-gold); }
html[dir="ltr"] .approach-points li { padding: 10px 0 10px 22px; }

/* Process: quiet numbered glass cards. */
.tile--process {
    background:
        radial-gradient(circle at 100% 0%, rgba(82,107,88,.11), transparent 32rem),
        linear-gradient(180deg, #f8f6ef, #f0eadf);
}
.process-grid { gap: 14px; margin-top: 0; }
.process-step {
    min-height: 250px;
    display: flex;
    flex-direction: column;
    padding: 24px;
    border-radius: 25px;
    border: 1px solid rgba(255,255,255,.80);
    background: rgba(255,255,252,.53);
}
.process-step::after { display: none; }
.process-step__num {
    width: auto; height: auto;
    margin: 0 0 auto;
    justify-content: flex-start;
    background: none !important;
    color: var(--brand-gold);
    font-family: var(--font-display);
    font-size: 12px;
    letter-spacing: .16em;
}
.process-step__title { margin-top: 48px; margin-bottom: 8px; font-size: 20px; }
.process-step__text { font-size: 15px; line-height: 1.62; }
.process-step:hover { transform: translateY(-4px); }

/* FAQ: three focused questions only. */
.tile--faq { background: #fbfaf6; }
.faq-layout { display: grid; grid-template-columns: .55fr 1fr; gap: clamp(40px, 7vw, 88px); align-items: start; max-width: 1080px; }
.faq-layout .section-heading { margin: 0; text-align: start; }
.faq-list { margin: 0; }
.faq-item {
    margin-bottom: 12px;
    border-radius: 22px;
    background: rgba(245,242,233,.58);
    border: 1px solid rgba(38,56,47,.09);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.86);
}
.faq-item[open] { background: rgba(255,255,252,.84); border-color: rgba(181,139,60,.21); }
.faq-item summary { min-height: 74px; padding: 19px 22px; }
.faq-item__q { font-size: 17px; }
.faq-item__a { padding: 0 22px 22px; font-size: 15.5px; line-height: 1.7; }

/* Contact: illustration + form are one composed glass surface. */
.tile--invite {
    background:
        radial-gradient(circle at 8% 20%, rgba(181,139,60,.14), transparent 34rem),
        radial-gradient(circle at 88% 80%, rgba(82,107,88,.16), transparent 42rem),
        #e9ede5;
}
.contact-layout {
    max-width: var(--content-max);
    grid-template-columns: minmax(0, .95fr) minmax(420px, 1.05fr);
    grid-template-areas: "intro form";
    gap: 20px;
    align-items: stretch;
}
.contact-intro { display: flex; flex-direction: column; min-width: 0; }
.contact-scene {
    position: relative;
    min-height: 430px;
    flex: 1;
    overflow: hidden;
    border-radius: 34px;
    border: 1px solid rgba(255,255,255,.78);
    box-shadow: inset 0 1px 0 #fff, 0 32px 72px rgba(38,56,47,.15);
}
.contact-scene > img { width: 100%; height: 100%; min-height: 430px; object-fit: cover; object-position: 45% center; }
.contact-scene::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(24,39,31,.04), rgba(24,39,31,.52)); }
.contact-scene__overlay {
    position: absolute;
    z-index: 2;
    inset-inline: 28px;
    bottom: 28px;
    padding: 24px;
    border-radius: 24px;
    background: rgba(247,245,237,.72);
    border: 1px solid rgba(255,255,255,.75);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 18px 44px rgba(20,36,27,.18);
    -webkit-backdrop-filter: saturate(145%) blur(20px);
    backdrop-filter: saturate(145%) blur(20px);
}
.contact-scene__overlay .eyebrow { margin-bottom: 10px; }
.contact-scene__overlay .display { font-size: clamp(35px, 4vw, 50px); }
.contact-scene__overlay .lead { margin: 16px 0 0; font-size: 16px; }
.contact-cards { grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; margin-top: 12px !important; }
.contact-card {
    min-height: 72px;
    padding: 14px 17px;
    display: grid;
    gap: 2px;
    border-radius: 19px;
    background: rgba(255,255,252,.58);
    border: 1px solid rgba(255,255,255,.76);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}
.contact-card::after { display: none; }
.contact-card__label { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); }
.contact-card__value { font-size: 14px; color: var(--ink); font-weight: 650; direction: ltr; text-align: start; }
.contact-form-card {
    min-height: 100%;
    padding: clamp(25px, 4vw, 42px);
    border-radius: 34px;
    border: 1px solid rgba(255,255,255,.82);
    background: rgba(252,250,244,.74);
    box-shadow: inset 0 1px 0 #fff, inset 0 0 0 1px rgba(181,139,60,.07), 0 32px 72px rgba(38,56,47,.14);
}
.contact-form-card::before { background: radial-gradient(circle at 100% 0%, rgba(82,107,88,.12), transparent 48%), radial-gradient(circle at 0% 100%, rgba(181,139,60,.10), transparent 50%); }
.contact-form-card__header { align-items: center; margin-bottom: 8px; padding-bottom: 0; border: 0; }
.form-kicker { display: block; margin-bottom: 6px; color: var(--brand-gold); font-size: 11px; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.contact-form-card__title { font-family: var(--font-serif); font-size: clamp(27px, 3vw, 38px); font-weight: 600; }
.form-demo {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 7px 11px;
    border-radius: 999px;
    background: rgba(82,107,88,.08);
    color: var(--ink-muted);
    border: 1px solid rgba(82,107,88,.12);
    font-size: 11px;
    white-space: nowrap;
}
.form-demo i { width: 6px; height: 6px; border-radius: 50%; background: var(--brand-gold); }
.contact-form-card__sub { margin: 0 0 24px; text-align: start; font-size: 13px; color: var(--ink-muted); }
.message-form--inline { gap: 14px; }
.message-form--inline .message-form__row label { display: block; margin-bottom: 6px; font-size: 12px; }
.message-form--inline .message-form__row input,
.message-form--inline .message-form__row textarea {
    width: 100%;
    min-height: 50px;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(255,255,255,.66);
    border: 1px solid rgba(38,56,47,.13);
    font-size: 15px;
}
.message-form--inline .message-form__row textarea { min-height: 94px; resize: vertical; }
.message-form--inline .message-form__row input:focus,
.message-form--inline .message-form__row textarea:focus { border-color: var(--brand-teal); box-shadow: 0 0 0 4px rgba(82,107,88,.12); }
.message-form__row--hp {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.message-form--inline .message-form__actions { margin-top: 4px; }
.message-form--inline .message-form__actions .btn--large { min-height: 54px; padding: 0 20px; font-size: 15px; }
html[dir="rtl"] .message-form__actions button svg { transform: scaleX(-1); }
.message-form--inline .message-form__note { margin-top: 1px; font-size: 11.5px; line-height: 1.55; }
.message-form--inline .message-form__success[hidden] { display: none; }
.message-form--inline .message-form__success { padding: 18px; border-radius: 16px; }

/* Footer and legal sheets share the same material language. */
.footer {
    padding: 70px var(--section-x) 28px;
    background: #1f2d26;
    color: rgba(248,246,238,.72);
    border-top: 1px solid rgba(181,139,60,.28);
}
.footer__inner { grid-template-columns: 1.35fr .8fr .9fr .85fr; gap: 42px; }
.footer__brand-lockup { display: inline-flex; }
.footer .nav-logo__mark { background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.14); }
.footer .nav-logo__copy strong { color: #fbf8f1; }
.footer__tagline { max-width: 270px; margin-top: 18px; color: rgba(248,246,238,.61); font-size: 14px; line-height: 1.7; }
.footer__heading { margin-bottom: 14px; color: #e3c477; font-size: 12px; letter-spacing: .11em; text-transform: uppercase; }
.footer__col ul li { line-height: 2.15; }
.footer__col a { color: rgba(248,246,238,.72); font-size: 14px; }
.footer__col a:hover { color: #fff; }
.footer__legal {
    display: flex; justify-content: space-between; gap: 20px;
    color: rgba(248,246,238,.45);
    border-color: rgba(255,255,255,.09);
    text-align: start;
}
.legal-modal__backdrop { background: rgba(19,29,24,.55); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.legal-modal__sheet {
    border-radius: 30px 30px 0 0;
    background: rgba(251,249,243,.92);
    border: 1px solid rgba(255,255,255,.82);
    box-shadow: 0 -30px 90px rgba(18,31,24,.26);
    -webkit-backdrop-filter: saturate(150%) blur(24px);
    backdrop-filter: saturate(150%) blur(24px);
}
.legal-modal__content { max-width: 760px; }
.legal-h { margin-top: 30px; }

/* Mobile drawer: intentionally simple and immediate — no delayed slide layer. */
.drawer {
    display: none;
    transform: none;
    visibility: visible;
    pointer-events: auto;
    transition: none;
    background: rgba(249,247,240,.94);
    -webkit-backdrop-filter: saturate(155%) blur(28px);
    backdrop-filter: saturate(155%) blur(28px);
}
.drawer.open { display: flex; transform: none; }
.drawer-list { gap: 8px; }
.drawer-link { min-height: 58px; padding: 15px 18px; border-radius: 18px; font-size: 18px; }

html[lang="ru"] .display { font-family: var(--font-display); }
html[lang="ru"] .landing-hero__caption { max-width: 300px; }

@media (max-width: 1180px) {
    .nav { top: 12px; width: calc(100% - 24px); min-height: 66px; max-width: 720px; padding: 8px 9px 8px 12px; }
    .nav.scrolled { top: 8px; }
    .nav-burger { width: 44px; height: 44px; border-radius: 15px; }
    main { padding-top: 0; }
    .landing-hero { padding-top: 126px; }
    .landing-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(330px, .72fr); gap: 48px; }
    .landing-hero__glass .hero__logo { height: 560px; }
    .display--hero { font-size: clamp(52px, 7.4vw, 74px); }
}

@media (max-width: 900px) {
    :root { --section-y: 82px; --section-x: 22px; }
    .landing-hero { min-height: auto; padding-top: 118px; }
    .landing-hero__grid { grid-template-columns: 1fr; gap: 54px; }
    .landing-hero__copy { align-items: center; text-align: center; }
    .landing-hero .display__sub { margin-inline: auto; }
    .landing-hero .hero__ctas { justify-content: center; }
    .hero-points { justify-content: center; }
    .landing-hero__visual { max-width: 520px; }
    .landing-hero__caption { inset-inline-start: -10px; }
    .services-grid { grid-template-columns: repeat(2, 1fr); }
    .about-grid { grid-template-columns: 1fr; gap: 56px; text-align: center; }
    .about-grid__content { margin: 0 auto; }
    .approach-points { text-align: start; }
    .process-grid { grid-template-columns: repeat(2, 1fr); }
    .faq-layout { grid-template-columns: 1fr; }
    .faq-layout .section-heading { text-align: center; }
    .contact-layout { grid-template-columns: 1fr; grid-template-areas: "form" "intro"; }
    .contact-form-card { min-height: auto; }
    .footer__inner { grid-template-columns: 1.3fr 1fr 1fr; }
    .footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
    :root { --section-y: 68px; --section-x: 17px; }
    body { font-size: 16px; }
    .nav-logo__mark { width: 43px; height: 43px; border-radius: 14px; }
    .nav-logo__copy strong { font-size: 14px; }
    .landing-hero { padding-top: 108px; padding-bottom: 72px; }
    .display--hero { font-size: clamp(44px, 13vw, 62px); line-height: 1; }
    .display--medium { font-size: clamp(34px, 10vw, 46px); }
    .landing-hero .display__sub { font-size: 17px; line-height: 1.64; }
    .landing-hero .hero__ctas { width: 100%; flex-direction: column; }
    .landing-hero .hero__ctas > * { width: 100%; }
    .hero-points { gap: 10px 16px; }
    .landing-hero__glass { width: min(100%, 430px); padding: 8px; border-radius: 38px 38px 110px 38px; }
    .landing-hero__glass .hero__logo { height: min(118vw, 520px); border-radius: 31px 31px 102px 31px; }
    .landing-hero__caption { inset-inline-start: 10px; bottom: 28px; max-width: 220px; font-size: 12px; }
    .services-grid { grid-template-columns: 1fr; }
    .service-card { min-height: 190px; }
    .showcase-frame { padding: 6px; border-radius: 24px; }
    .showcase-video { border-radius: 19px; }
    .process-grid {
        display: flex;
        overflow-x: auto;
        gap: 12px;
        margin-inline: -17px;
        padding-inline: 17px;
        padding-bottom: 12px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }
    .process-grid::-webkit-scrollbar { display: none; }
    .process-step { flex: 0 0 82%; max-width: 310px; min-height: 240px; scroll-snap-align: center; }
    .process-dots { margin-top: 16px; }
    .contact-scene { min-height: 470px; }
    .contact-scene > img { min-height: 470px; object-position: 42% center; }
    .contact-scene__overlay { inset-inline: 16px; bottom: 16px; padding: 20px; }
    .contact-cards { grid-template-columns: 1fr !important; }
    .contact-form-card { padding: 24px 18px; border-radius: 28px; }
    .contact-form-card__header { align-items: flex-start; }
    .message-form--inline .message-form__actions { flex-direction: column; }
    .footer { padding-top: 58px; }
    .footer__inner { grid-template-columns: 1fr 1fr; gap: 34px 24px; }
    .footer__brand { grid-column: 1 / -1; }
    .footer__legal { flex-direction: column; align-items: center; text-align: center; }
}

@media (max-width: 380px) {
    .nav-logo .nav-logo__mark { display: grid; }
    .nav-logo .nav-logo__copy { display: none; }
    .nav { width: calc(100% - 18px); }
    .landing-hero { padding-top: 98px; }
    .landing-hero__caption { position: static; max-width: none; margin: 10px auto 0; text-align: center; }
    .footer__inner { grid-template-columns: 1fr; }
    .footer__brand { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
    .landing-hero__glass,
    .showcase-frame { will-change: auto; }
}

/* ═══════════════════════════════════════════════════════════════
   MARINA STORY · 2026-07-29
   The approved video now belongs to Marina's story; the process uses the
   existing watercolor series. The brand mark is image-led, while the name
   stays typeset in HTML so Hebrew and Russian remain crisp at every size.
═══════════════════════════════════════════════════════════════ */
.nav-logo { gap: 12px; }
.nav-logo__mark {
    position: relative;
    width: 48px;
    height: 48px;
    overflow: hidden;
    border-radius: 17px;
    background:
        radial-gradient(circle at 28% 20%, rgba(255,255,255,.96), rgba(255,255,255,.58) 58%, rgba(234,217,173,.20)),
        rgba(255,255,252,.66);
    border-color: rgba(181,139,60,.26);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,1),
        inset 0 -1px 0 rgba(181,139,60,.08),
        0 8px 22px rgba(38,56,47,.10);
}
.nav-logo__mark::after {
    content: "";
    position: absolute;
    inset: 1px;
    border-radius: 15px;
    background: linear-gradient(145deg, rgba(255,255,255,.30), transparent 44%);
    pointer-events: none;
}
.nav-logo__mark img {
    width: 43px;
    height: 43px;
    object-fit: contain;
    filter: drop-shadow(0 4px 7px rgba(38,56,47,.11));
}
.nav-logo__copy { gap: 2px; line-height: 1; }
.nav-logo__copy strong {
    font-family: var(--font-serif);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -.015em;
}
.nav-logo__copy small {
    margin-top: 3px;
    font-family: var(--font-body);
    font-size: 9.5px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .17em;
}
html[lang="ru"] .nav-logo__copy strong {
    font-family: var(--font-body);
    font-size: 14px;
    letter-spacing: -.01em;
}
.footer .nav-logo__mark {
    width: 56px;
    height: 56px;
    border-color: rgba(234,217,173,.24);
    background: rgba(255,255,255,.10);
}
.footer .nav-logo__mark img { width: 50px; height: 50px; }

.tile--about {
    overflow: hidden;
    background:
        radial-gradient(circle at 4% 10%, rgba(181,139,60,.12), transparent 34rem),
        radial-gradient(circle at 96% 88%, rgba(82,107,88,.13), transparent 38rem),
        linear-gradient(140deg, #f8f5ed 0%, #edf2eb 100%);
}
.about-grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
    gap: clamp(46px, 6.5vw, 92px);
}
.about-grid__media {
    display: block;
    width: 100%;
}
.about-video {
    width: 100%;
    max-width: 700px;
    margin: 0;
    padding: 8px 8px 0;
    overflow: hidden;
    border-radius: 32px;
    background: rgba(255,255,252,.62);
    border: 1px solid rgba(255,255,255,.92);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,1),
        inset 0 0 0 1px rgba(181,139,60,.10),
        0 34px 78px rgba(38,56,47,.17),
        0 8px 24px rgba(38,56,47,.08);
    -webkit-backdrop-filter: saturate(150%) blur(22px);
    backdrop-filter: saturate(150%) blur(22px);
}
.about-video__stage {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    border-radius: 25px;
    background: #dfe5da;
}
.about-video .showcase-frame__glow {
    inset: -24px;
    z-index: 0;
    opacity: .38;
}
.about-video .showcase-video {
    position: relative;
    z-index: 1;
    border-radius: 25px;
    background: #e8eadf;
}
.about-video .showcase-video__btn {
    inset-block-end: 18px;
    inset-inline-start: 18px;
    background: rgba(255,255,252,.82);
    border-color: rgba(255,255,255,.90);
}
.about-video__caption {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    min-height: 70px;
    padding: 14px 18px 15px;
    color: var(--ink-soft);
    font-size: 13px;
    line-height: 1.45;
    text-align: start;
}
.about-video__label {
    padding-inline-end: 14px;
    border-inline-end: 1px solid rgba(38,56,47,.14);
    color: var(--brand-teal-deep);
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .06em;
    white-space: nowrap;
}
.about-grid__content .display {
    font-size: clamp(44px, 4.8vw, 68px);
    line-height: 1.02;
    margin-bottom: 30px;
}
.about-grid__content .body-text--lead {
    color: var(--ink);
    font-size: 18px;
    line-height: 1.7;
}

.process-step {
    min-height: 0;
    display: block;
    padding: 0;
    overflow: hidden;
    background: rgba(255,255,252,.60);
    border-color: rgba(255,255,255,.88);
}
.process-step__img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    margin: 0;
    border-radius: 0;
    object-fit: cover;
    object-position: center;
    filter: saturate(.88) contrast(.99);
    transform: scale(1.001);
    transition: transform .55s var(--ease), filter .55s var(--ease);
}
.process-step:hover .process-step__img {
    transform: scale(1.025);
    filter: saturate(.97) contrast(1);
}
.process-step__body {
    min-height: 198px;
    display: flex;
    flex-direction: column;
    padding: 20px 22px 23px;
    background: linear-gradient(180deg, rgba(255,255,252,.56), rgba(255,255,252,.78));
}
.process-step__num {
    margin: 0 0 28px;
    color: var(--brand-gold);
}
.process-step__title {
    margin: 0 0 8px;
    font-family: var(--font-serif);
    font-size: 21px;
    line-height: 1.2;
}
.process-step__text {
    margin-top: auto;
    font-size: 14.5px;
    line-height: 1.62;
}
html[lang="ru"] .process-step__title { font-family: var(--font-body); }

@media (max-width: 900px) {
    .about-grid { grid-template-columns: 1fr; gap: 42px; }
    .about-grid__media { display: flex; justify-content: center; }
    .about-grid__content { max-width: 680px; }
    .about-grid__content .display { font-size: clamp(42px, 8vw, 62px); }
}

@media (max-width: 680px) {
    .nav-logo { gap: 9px; }
    .nav-logo__mark { width: 44px; height: 44px; border-radius: 15px; }
    .nav-logo__mark::after { border-radius: 13px; }
    .nav-logo__mark img { width: 40px; height: 40px; }
    .nav-logo__copy strong { font-size: 15px; }
    .about-grid { gap: 34px; }
    .about-video {
        padding: 5px 5px 0;
        border-radius: 25px;
    }
    .about-video__stage,
    .about-video .showcase-video { border-radius: 20px; }
    .about-video .showcase-video__btn {
        width: 46px;
        height: 46px;
        inset-block-end: 13px;
        inset-inline-start: 13px;
    }
    .about-video__caption {
        grid-template-columns: 1fr;
        gap: 5px;
        min-height: 76px;
        padding: 13px 15px 14px;
    }
    .about-video__label {
        padding-inline-end: 0;
        border-inline-end: 0;
    }
    .about-grid__content .display {
        font-size: clamp(40px, 12vw, 52px);
        margin-bottom: 24px;
    }
    .about-grid__content .body-text--lead { font-size: 17px; }
    .process-step {
        flex: 0 0 84%;
        max-width: 320px;
        min-height: 0;
    }
    .process-step__body { min-height: 185px; padding: 18px 20px 21px; }
    .process-step__num { margin-bottom: 24px; }
}

@media (prefers-reduced-motion: reduce) {
    .process-step__img,
    .process-step:hover .process-step__img {
        transform: none;
        transition: none;
    }
}
