/* ==========================================================================
   ADC Lean — main.css
   Mobile-first. Brand tokens → reset → typography → layout → components →
   sections → utilities. One file by design: simpler cache story at ~6KB gz.
   ========================================================================== */

/* --- 01 · Brand tokens --------------------------------------------------- */
:root {
    /* Palette (from ADC Brand Guidelines v1) */
    --cream:         #F4EEE2;
    --limestone:     #D8D2C4;
    --mountain-dusk: #1A3A6B;
    --ochre:         #C89A36;
    --ink:           #14181F;

    /* Mountain Dusk approved tints */
    --dusk-80: #4862896b;
    --dusk-60: #748ba5;
    --dusk-40: #a1b1c4;
    --dusk-20: #cdd8e2;
    --dusk-10: #e6ecf1;

    /* Semantic */
    --bg:           var(--cream);
    --bg-lift:      var(--limestone);
    --bg-hero:      var(--mountain-dusk);
    --bg-ink:       var(--ink);
    --fg:           var(--ink);
    --fg-muted:     #5b6573;
    --fg-inverse:   var(--cream);
    --accent:       var(--ochre);
    --rule:         rgba(20, 24, 31, 0.12);
    --rule-inverse: rgba(244, 238, 226, 0.18);

    /* Typography */
    --font-display: 'Instrument Serif', 'Times New Roman', Georgia, serif;
    --font-sans:    'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

    /* Type scale — fluid via clamp(). Mobile-first base. */
    --fs-eyebrow:   0.75rem;   /* 12px */
    --fs-body:      clamp(1rem, 0.95rem + 0.2vw, 1.0625rem);
    --fs-lead:      clamp(1.125rem, 1rem + 0.6vw, 1.375rem);
    --fs-h3:        clamp(1.25rem, 1.1rem + 0.8vw, 1.625rem);
    --fs-h2:        clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem);
    --fs-h1:        clamp(2.5rem, 1.8rem + 4vw, 5rem);
    --fs-display:   clamp(3rem, 2rem + 6vw, 7rem);

    /* Spacing scale */
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.5rem;
    --space-6: 2rem;
    --space-7: 3rem;
    --space-8: 4rem;
    --space-9: 6rem;
    --space-10: 8rem;

    /* Layout */
    --container:        min(92%, 72rem);
    --container-narrow: min(92%, 44rem);
    --radius-sm: 4px;
    --radius:    8px;
    --radius-lg: 18px;

    /* Motion */
    --ease:        cubic-bezier(0.22, 1, 0.36, 1);
    --dur-quick:   180ms;
    --dur:         320ms;
    --dur-slow:    600ms;

    color-scheme: light;
}

/* --- 02 · Reset ---------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; -moz-text-size-adjust: 100%; text-size-adjust: 100%; line-height: 1.5; }
body { background: var(--bg); color: var(--fg); font-family: var(--font-sans); font-size: var(--fs-body); font-weight: 400; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img, picture, video, canvas, svg { display: block; max-width: 100%; height: auto; }
input, button, textarea, select { font: inherit; color: inherit; }
button { background: none; border: 0; cursor: pointer; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
:focus-visible { outline: 2px solid var(--mountain-dusk); outline-offset: 3px; border-radius: var(--radius-sm); }
.ground-mountain-dusk :focus-visible,
.ground-ink :focus-visible { outline-color: var(--ochre); }

/* Skip link */
.skip-link { position: absolute; left: -9999px; top: 0; padding: var(--space-3) var(--space-4); background: var(--ink); color: var(--cream); font-weight: 600; z-index: 9999; }
.skip-link:focus { left: var(--space-4); top: var(--space-4); }

/* Visually hidden */
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* --- 03 · Typography ----------------------------------------------------- */
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 400; line-height: 1.05; letter-spacing: -0.01em; color: var(--fg); }
h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); line-height: 1.15; }
h4 { font-size: 1.125rem; font-family: var(--font-sans); font-weight: 600; letter-spacing: 0.02em; text-transform: uppercase; }

p { font-size: var(--fs-body); line-height: 1.6; max-width: 64ch; }
strong { font-weight: 600; }
em { font-style: italic; }

.eyebrow {
    font-family: var(--font-sans);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: var(--space-4);
}

.prose > * + * { margin-top: 1.2em; }
.prose h2 { margin-top: 2em; }
.prose h3 { margin-top: 1.8em; }
.prose ul, .prose ol { padding-left: 1.4em; }
.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose a { color: var(--mountain-dusk); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.prose a:hover { color: var(--ochre); }

/* --- 04 · Layout primitives --------------------------------------------- */
.container          { width: var(--container);        margin-inline: auto; }
.container--narrow  { width: var(--container-narrow); margin-inline: auto; }

.section {
    padding-block: var(--space-8);
}
@media (min-width: 48rem) { .section { padding-block: var(--space-9); } }
@media (min-width: 72rem) { .section { padding-block: var(--space-10); } }

/* Ground tones */
.ground-cream         { background: var(--cream);         color: var(--ink); }
.ground-limestone     { background: var(--limestone);     color: var(--ink); }
.ground-mountain-dusk { background: var(--mountain-dusk); color: var(--cream); }
.ground-mountain-dusk h1, .ground-mountain-dusk h2, .ground-mountain-dusk h3 { color: var(--cream); }
.ground-mountain-dusk .eyebrow { color: var(--ochre); }
.ground-mountain-dusk .prose a { color: var(--ochre); }
.ground-ink           { background: var(--ink);           color: var(--cream); }
.ground-ink h1, .ground-ink h2, .ground-ink h3 { color: var(--cream); }
.ground-ink .eyebrow { color: var(--ochre); }

/* Section header pattern */
.section__header { max-width: 44rem; margin-bottom: var(--space-7); }
.section__heading { margin-bottom: var(--space-4); }
.section__intro { font-size: var(--fs-lead); color: var(--fg-muted); }
.ground-mountain-dusk .section__intro,
.ground-ink .section__intro { color: rgba(244, 238, 226, 0.78); }

/* --- 05 · Buttons -------------------------------------------------------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5em;
    padding: 0.95em 1.6em;
    border-radius: var(--radius);
    font-family: var(--font-sans);
    font-weight: 600;
    font-size: 0.95rem;
    line-height: 1;
    letter-spacing: 0.01em;
    transition: transform var(--dur-quick) var(--ease), background var(--dur-quick) var(--ease), color var(--dur-quick) var(--ease);
    text-decoration: none;
    cursor: pointer;
    border: 1px solid transparent;
    white-space: nowrap;
}
.btn--sm { padding: 0.75em 1.2em; font-size: 0.875rem; }
.btn--dusk { background: var(--mountain-dusk); color: var(--cream); }
.btn--dusk:hover { background: var(--ink); transform: translateY(-1px); }
.btn--cream { background: var(--cream); color: var(--mountain-dusk); }
.btn--cream:hover { background: var(--limestone); transform: translateY(-1px); }
.btn--ghost { background: transparent; color: inherit; border-color: currentColor; }
.btn--ghost:hover { background: var(--ink); color: var(--cream); }

/* --- 06 · Wordmark / brand mark ------------------------------------------ */
.adc-wordmark { display: inline-flex; align-items: baseline; gap: 0.6em; font-family: var(--font-display); line-height: 1; }
.adc-wordmark__mark { font-size: 1.5rem; letter-spacing: 0.02em; font-weight: 400; }
.adc-wordmark__name { font-size: 0.95rem; font-family: var(--font-sans); font-weight: 500; letter-spacing: 0.04em; opacity: 0.85; }
.adc-wordmark--light { color: var(--cream); }
.adc-wordmark--dark  { color: var(--ink); }

@media (max-width: 36rem) {
    .adc-wordmark__name { display: none; }
}

/* --- 07a · Site topbar (pre-header, desktop only) ----------------------- */
.site-topbar {
    background: var(--ink);
    color: var(--cream);
    font-family: var(--font-sans);
    font-size: 0.78rem;
    border-bottom: 1px solid rgba(244, 238, 226, 0.10);
}
.site-topbar__inner {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--space-4);
    padding-block: 6px;
    flex-wrap: wrap;
}
.site-topbar__group { display: inline-flex; align-items: center; gap: var(--space-5); }
.site-topbar__item {
    display: inline-flex; align-items: center; gap: 6px;
    color: rgba(244, 238, 226, 0.85);
    text-decoration: none;
    transition: color var(--dur-quick) var(--ease);
}
.site-topbar__item:hover { color: var(--cream); }
.site-topbar__rating { gap: 8px; }
.site-topbar__stars { color: var(--ochre); letter-spacing: 0.05em; font-size: 0.85rem; }
.site-topbar__rating-text { font-weight: 500; color: var(--cream); }
/* Hide on mobile — sticky bottom CTA bar handles it */
@media (max-width: 47.99rem) {
    .site-topbar { display: none; }
}

/* --- 07 · Site header --------------------------------------------------- */
.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--cream);
    border-bottom: 1px solid var(--rule);
    backdrop-filter: blur(6px);
}
.site-header__inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--space-5);
    min-height: 72px;
    padding-block: var(--space-3);
}
.site-header__brand {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    text-decoration: none;
    color: inherit;
    flex-shrink: 0;
}
.site-header__logo {
    display: block;
    height: 48px;
    width: auto;
    max-width: none;
}
.site-header__brand-text {
    /* Hidden visually — logo is the brand mark, but kept for screen readers */
    position: absolute; clip: rect(0 0 0 0); clip-path: inset(50%);
    height: 1px; width: 1px; overflow: hidden; white-space: nowrap;
}
@media (min-width: 48rem) {
    .site-header__logo { height: 52px; }
}

/* --- Mobile nav drawer (off-canvas) --- */
.site-nav {
    position: fixed;
    inset: 72px 0 0 0;
    background: var(--cream);
    border-bottom: 1px solid var(--rule);
    padding: var(--space-6) var(--space-5) var(--space-7);
    transform: translateY(-110%);
    transition: transform var(--dur) var(--ease);
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    overflow-y: auto;
    z-index: 99;
}
.site-nav.is-open { transform: translateY(0); }
.site-nav__list {
    display: flex; flex-direction: column;
    gap: 0; padding: 0; margin: 0; list-style: none;
    font-family: var(--font-display);
    font-size: 1.5rem;
}
.site-nav__item { border-bottom: 1px solid var(--rule); }
.site-nav__item:last-child { border-bottom: 0; }
.site-nav__link,
.site-nav__trigger {
    display: flex; align-items: center; justify-content: space-between; width: 100%;
    padding: var(--space-3) 0;
    text-decoration: none; color: var(--ink);
    background: transparent; border: 0;
    font: inherit;
    cursor: pointer;
    text-align: left;
}
.site-nav__link:hover,
.site-nav__trigger:hover { color: var(--mountain-dusk); }
.site-nav__caret {
    font-size: 0.7em;
    transition: transform var(--dur-quick) var(--ease);
}
.site-nav__trigger[aria-expanded="true"] .site-nav__caret { transform: rotate(180deg); }

/* Mobile: mega + dropdown panels expand inline */
.site-nav__mega,
.site-nav__dropdown {
    display: none;
    padding: var(--space-2) 0 var(--space-4);
}
.site-nav__item.is-open > .site-nav__mega,
.site-nav__item.is-open > .site-nav__dropdown { display: block; }
.site-nav__mega-inner {
    display: flex; flex-direction: column; gap: var(--space-4);
    padding: 0; /* container padding handled by parent on mobile */
}
.site-nav__mega-col { display: flex; flex-direction: column; gap: var(--space-2); }
.site-nav__mega-head {
    font-family: var(--font-display);
    font-size: 1.1rem; color: var(--mountain-dusk);
    text-decoration: none;
    padding-block: var(--space-2);
}
.site-nav__mega-head:hover { color: var(--ochre); }
.site-nav__mega-note {
    font-size: 0.85rem; color: var(--fg-muted);
    font-family: var(--font-sans);
    margin: 0 0 var(--space-2);
    max-width: 32ch;
}
.site-nav__mega-sub {
    list-style: none; padding: 0 0 0 var(--space-3); margin: 0;
    display: flex; flex-direction: column; gap: var(--space-1);
    border-left: 2px solid var(--rule);
}
.site-nav__mega-sub a {
    display: block;
    padding-block: var(--space-2);
    font-family: var(--font-sans);
    font-size: 0.95rem;
    color: var(--ink);
    text-decoration: none;
}
.site-nav__mega-sub a:hover { color: var(--mountain-dusk); }
.site-nav__dropdown-list {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: var(--space-1);
}
.site-nav__dropdown-list a {
    display: block;
    padding-block: var(--space-2);
    font-family: var(--font-sans);
    font-size: 1rem;
    color: var(--ink);
    text-decoration: none;
}
.site-nav__dropdown-list a:hover { color: var(--mountain-dusk); }
.site-nav__dropdown-label {
    font-size: 0.7rem;
    font-family: var(--font-sans);
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--ochre);
    margin: var(--space-2) 0 var(--space-1);
}
.site-nav__dropdown-divider { height: 1px; background: var(--rule); margin: var(--space-2) 0; }

/* Mobile-only — nav CTAs as full-width buttons in the drawer */
@media (max-width: 59.99rem) {
    .site-nav__ctas {
        display: flex; flex-direction: column; gap: var(--space-3);
        margin-top: var(--space-5); padding-top: var(--space-5);
        border-top: 1px solid var(--rule);
    }
    .site-nav__ctas .site-nav__cta { width: 100%; justify-content: center; }
}

.nav-toggle {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 44px;
    height: 44px;
    gap: 5px;
    margin-left: auto;
}
.nav-toggle__line { width: 22px; height: 2px; background: var(--ink); transition: transform var(--dur-quick) var(--ease), opacity var(--dur-quick); }
.nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* --- Desktop nav (60rem+) --- */
@media (min-width: 60rem) {
    .nav-toggle { display: none; }
    .site-header { position: sticky; } /* positioning anchor for mega panel */
    .site-nav {
        position: static;
        inset: auto;
        background: transparent;
        border: 0;
        padding: 0;
        transform: none;
        display: contents;
        overflow: visible;
    }
    .site-nav__list {
        grid-column: 2;
        flex-direction: row;
        gap: clamp(var(--space-2), 1.4vw, var(--space-5));
        font-family: var(--font-sans);
        font-size: clamp(0.85rem, 0.78rem + 0.25vw, 0.95rem);
        font-weight: 500;
        justify-content: center;
        flex-wrap: nowrap;
        align-items: center;
    }
    /* Default: NOT a positioning context so mega can anchor to .site-header */
    .site-nav__item { border: 0; }
    /* Dropdown items DO need to be a positioning context (small local panel) */
    .site-nav__item.has-dropdown { position: relative; }
    .site-nav__link,
    .site-nav__trigger {
        padding: var(--space-3) var(--space-2);
        white-space: nowrap;
        gap: var(--space-1);
        width: auto;
        color: var(--ink);
    }
    .site-nav__caret { font-size: 0.65em; opacity: 0.6; }

    /* Dropdown — small panel anchored to its trigger */
    .site-nav__dropdown {
        display: block;
        position: absolute;
        top: calc(100% - 4px);
        left: 0;
        min-width: 240px;
        padding: var(--space-4);
        background-color: var(--cream);
        border: 1px solid var(--rule);
        border-radius: var(--radius-lg);
        box-shadow: 0 18px 40px -16px rgba(20, 24, 31, 0.18);
        opacity: 0;
        visibility: hidden;
        transform: translateY(8px);
        transition: opacity 220ms var(--ease), transform 220ms var(--ease), visibility 220ms;
        z-index: 102;
    }
    .site-nav__item.has-dropdown:hover > .site-nav__dropdown,
    .site-nav__item.has-dropdown:focus-within > .site-nav__dropdown,
    .site-nav__item.is-open > .site-nav__dropdown {
        opacity: 1; visibility: visible; transform: translateY(0);
    }

    /* Mega — full-width panel pinned to viewport edges under .site-header */
    .site-nav__mega {
        display: block;
        position: absolute;
        top: 100%;
        left: 0; right: 0;
        width: 100%;
        background-color: var(--cream); /* discrete prop — survives shorthand resets */
        background-image: none;
        border-top: 1px solid var(--rule);
        border-bottom: 1px solid var(--rule);
        box-shadow: 0 28px 56px -20px rgba(20, 24, 31, 0.28);
        padding: var(--space-7) 0;
        opacity: 0;
        visibility: hidden;
        transform: translateY(8px);
        transition: opacity 220ms var(--ease), transform 220ms var(--ease), visibility 220ms;
        z-index: 101;
    }
    .site-nav__item.has-mega:hover > .site-nav__mega,
    .site-nav__item.has-mega:focus-within > .site-nav__mega,
    .site-nav__item.has-mega.is-open > .site-nav__mega {
        opacity: 1; visibility: visible; transform: translateY(0);
    }
    .site-nav__mega-inner {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: var(--space-6);
        padding-inline: var(--space-5);
        max-width: var(--container);
        margin-inline: auto;
        width: var(--container);
    }
    .site-nav__mega-col {
        display: flex; flex-direction: column;
        gap: var(--space-2);
    }
    .site-nav__mega-head {
        font-family: var(--font-display);
        font-size: 1.05rem;
        color: var(--mountain-dusk);
        padding-block: 0 var(--space-2);
        border-bottom: 1px solid var(--rule);
        margin-bottom: var(--space-2);
        text-decoration: none;
    }
    .site-nav__mega-head:hover { color: var(--ochre); }
    .site-nav__mega-note {
        font-family: var(--font-sans);
        font-size: 0.85rem;
        line-height: 1.5;
        color: var(--fg-muted);
        margin: 0;
        max-width: 28ch;
    }
    .site-nav__mega-sub {
        border-left: 0;
        padding-left: 0;
        margin: 0;
        list-style: none;
        display: flex; flex-direction: column;
        gap: 0;
    }
    .site-nav__mega-sub a {
        display: block;
        padding-block: var(--space-1);
        font-family: var(--font-sans);
        font-size: 0.9rem;
        color: var(--ink);
        text-decoration: none;
        line-height: 1.4;
    }
    .site-nav__mega-sub a:hover { color: var(--mountain-dusk); }

    .site-nav__ctas {
        grid-column: 3;
        display: inline-flex; align-items: center;
        gap: var(--space-3);
        flex-shrink: 0;
        margin-top: 0; padding-top: 0; border: 0;
    }
}

/* Header CTA cluster: Call/Text + Book */
.site-nav__cta {
    display: inline-flex; align-items: center; gap: var(--space-2);
    white-space: nowrap;
    text-decoration: none;
}
.site-nav__cta--call {
    color: var(--ink);
    font-weight: 500;
    font-size: 0.9rem;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-sm);
    transition: color var(--dur-quick) var(--ease);
}
.site-nav__cta--call:hover { color: var(--mountain-dusk); }
.site-nav__cta-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px;
    border-radius: 50%;
    background: var(--dusk-10);
    color: var(--mountain-dusk);
    font-size: 0.95rem;
}
/* On narrow desktop, hide the call label, keep the icon */
@media (min-width: 60rem) and (max-width: 78rem) {
    .site-nav__cta--call .site-nav__cta-label { display: none; }
}

/* Doctor card link wrapper (used on About when href is set) */
.doctor-card-v2__link {
    text-decoration: none; color: inherit;
    display: flex; flex-direction: column; height: 100%;
}
.doctor-card-v2__link:hover .doctor-card-v2__cta { color: var(--ochre); gap: var(--space-3); }
.doctor-card-v2__cta {
    display: inline-flex; align-items: center; gap: var(--space-2);
    margin-top: var(--space-3);
    font-family: var(--font-sans); font-weight: 500;
    font-size: 0.875rem; color: var(--mountain-dusk);
    transition: color var(--dur-quick) var(--ease), gap var(--dur-quick) var(--ease);
}

/* --- Pre-footer site CTA --- */
.site-cta {
    background: var(--mountain-dusk);
    color: var(--cream);
    padding-block: var(--space-8);
    position: relative;
    overflow: hidden;
}
.site-cta::before {
    content: ""; position: absolute; inset: 0;
    background:
        radial-gradient(60% 80% at 80% 30%, rgba(244, 238, 226, 0.08), transparent 60%),
        linear-gradient(180deg, var(--dusk-60) 0%, var(--mountain-dusk) 70%, var(--ink) 100%);
    z-index: 0;
}
.site-cta__inner {
    position: relative; z-index: 1;
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
    align-items: center;
}
@media (min-width: 56rem) {
    .site-cta__inner { grid-template-columns: 1.4fr auto; gap: var(--space-7); }
}
.site-cta__eyebrow {
    font-family: var(--font-sans); font-weight: 600;
    font-size: var(--fs-eyebrow); letter-spacing: 0.18em;
    text-transform: uppercase; color: var(--ochre);
    margin: 0 0 var(--space-3);
}
.site-cta__heading {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem);
    line-height: 1.1;
    color: var(--cream);
    margin: 0 0 var(--space-3);
    max-width: 22ch;
}
.site-cta__body { color: rgba(244, 238, 226, 0.82); margin: 0; max-width: 44ch; }
.site-cta__actions { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.site-cta .btn--ghost { color: var(--cream); border-color: rgba(244, 238, 226, 0.5); }
.site-cta .btn--ghost:hover { background: var(--cream); color: var(--mountain-dusk); border-color: var(--cream); }

/* --- BIG_SECTION — full-bleed editorial section -------------------------
   Bold image + huge serif headline (italic accents). Inspired by Zildjian. */
.section--big {
    position: relative;
    overflow: hidden;
    padding: 0;
    min-height: 480px;
    display: flex; align-items: center;
    color: var(--cream);
    isolation: isolate;
}
.big-section--tall { min-height: 680px; }
@media (min-width: 56rem) {
    .section--big { min-height: 560px; }
    .big-section--tall { min-height: 760px; }
}
.big-section__media {
    /* big-section parallax runway — oversized so GSAP yPercent -10..10 stays clipped */
    position: absolute; inset: -15% 0; z-index: -2;
    background-color: var(--mountain-dusk);
    background-size: cover;
    background-position: top center;
    background-repeat: no-repeat;
    will-change: transform;
}
.section--big { overflow: hidden; }
.big-section__media--placeholder {
    background-image:
        radial-gradient(80% 60% at 30% 30%, rgba(244, 238, 226, 0.18), transparent 60%),
        linear-gradient(160deg, var(--dusk-60), var(--mountain-dusk) 50%, var(--ink));
}
.big-section__media--placeholder[data-label]::after {
    content: attr(data-label);
    position: absolute; left: var(--space-4); top: var(--space-4);
    font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase;
    color: rgba(244, 238, 226, 0.55);
    padding: 4px 10px; border: 1px dashed rgba(244, 238, 226, 0.35); border-radius: 999px;
}
.big-section__overlay {
    position: absolute; inset: 0; z-index: -1;
    background: linear-gradient(180deg, rgba(20, 24, 31, 0.30) 0%, rgba(20, 24, 31, 0.55) 60%, rgba(20, 24, 31, 0.78) 100%);
}
.big-section__inner {
    padding-block: var(--space-9);
    display: flex; flex-direction: column;
    gap: var(--space-4);
}
.big-section--center .big-section__inner { text-align: center; align-items: center; }
.big-section--right  .big-section__inner { text-align: right;  align-items: flex-end; }
.big-section--left   .big-section__inner { text-align: left;   align-items: flex-start; }

.big-section__eyebrow {
    font-family: var(--font-sans); font-weight: 600;
    font-size: 0.75rem; letter-spacing: 0.22em; text-transform: uppercase;
    color: var(--ochre);
    margin: 0;
}
.big-section__headline {
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 1.6rem + 5vw, 5.5rem);
    line-height: 1.04;
    letter-spacing: -0.015em;
    margin: 0;
    color: var(--cream);
    max-width: 22ch;
}
.big-section__headline em { font-style: italic; color: var(--ochre); }
.big-section__subhead {
    font-family: var(--font-display);
    font-size: clamp(1rem, 0.9rem + 0.4vw, 1.25rem);
    color: rgba(244, 238, 226, 0.85);
    margin: 0;
    max-width: 48ch;
}
.big-section__cta { margin-top: var(--space-3); }

/* --- Reviews Strip section --- */
.section--reviews-strip { padding-block: var(--space-8); }
.reviews-strip__head {
    display: grid; gap: var(--space-5);
    grid-template-columns: 1fr;
    align-items: end;
    margin-bottom: var(--space-6);
}
@media (min-width: 56rem) {
    .reviews-strip__head { grid-template-columns: 1.4fr auto; gap: var(--space-7); }
}
.reviews-strip__heading {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem);
    line-height: 1.08;
    margin: 0 0 var(--space-3);
    max-width: 22ch;
}
.reviews-strip__heading em { font-style: italic; color: var(--mountain-dusk); }
.reviews-strip__intro { color: var(--fg-muted); font-size: var(--fs-lead); margin: 0; max-width: 44ch; }
.reviews-strip__rating {
    display: inline-flex; flex-direction: column; align-items: flex-start;
    gap: 4px;
    padding: var(--space-4) var(--space-5);
    background: var(--limestone);
    border-radius: var(--radius-lg);
    border: 1px solid var(--rule);
    min-width: 200px;
}
.reviews-strip__stars { color: var(--ochre); font-size: 1.2rem; letter-spacing: 0.08em; }
.reviews-strip__rating-value { font-family: var(--font-display); font-size: 2.4rem; line-height: 1; color: var(--mountain-dusk); }
.reviews-strip__rating-label { font-size: 0.8rem; color: var(--fg-muted); }
.reviews-strip__cta {
    margin-top: var(--space-2);
    font-size: 0.875rem; font-weight: 500;
    color: var(--mountain-dusk); text-decoration: none;
    display: inline-flex; align-items: center; gap: 4px;
}
.reviews-strip__cta::after { content: " ↗"; }
.reviews-strip__cta:hover { color: var(--ochre); }

.reviews-strip__list {
    list-style: none; padding: 0; margin: 0;
    display: grid; gap: var(--space-4);
    grid-template-columns: 1fr;
}
@media (min-width: 56rem) { .reviews-strip__list { grid-template-columns: repeat(3, 1fr); } }
.review-card {
    background: var(--cream);
    border: 1px solid var(--rule);
    border-radius: var(--radius-lg);
    padding: var(--space-5);
    display: flex; flex-direction: column; gap: var(--space-3);
    transition: transform var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.ground-limestone .review-card { background: #fff; }
.review-card:hover { transform: translateY(-3px); border-color: var(--ochre); }
.review-card__stars { color: var(--ochre); font-size: 1rem; letter-spacing: 0.08em; }
.review-card__quote { font-family: var(--font-sans); font-size: 0.95rem; line-height: 1.6; color: var(--ink); margin: 0; }
.review-card__attribution { font-size: 0.8rem; color: var(--fg-muted); margin: auto 0 0; }
.review-card__name { font-weight: 600; color: var(--ink); }

/* --- Footer logo --- */
.site-footer__logo {
    display: block;
    height: 56px; width: auto; max-width: none;
    margin-bottom: var(--space-3);
}

/* --- 08 · Site footer --------------------------------------------------- */
.site-footer { padding-block: var(--space-8) var(--space-5); }
.site-footer__inner { display: grid; gap: var(--space-7); grid-template-columns: 1fr; padding-bottom: var(--space-7); border-bottom: 1px solid var(--rule-inverse); }
@media (min-width: 48rem) { .site-footer__inner { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 64rem) { .site-footer__inner { grid-template-columns: 1.6fr 0.9fr 0.9fr 0.9fr 1.3fr; align-items: start; } }
.site-footer__brand { max-width: 32ch; }
.site-footer__tagline { font-family: var(--font-display); font-size: 1.5rem; line-height: 1.1; margin-top: var(--space-3); opacity: 0.92; }
.site-footer__blurb { font-size: 0.9rem; line-height: 1.55; margin-top: var(--space-4); color: rgba(244, 238, 226, 0.72); }
.site-footer__label { font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ochre); margin-bottom: var(--space-3); }
.site-footer__list { display: flex; flex-direction: column; gap: var(--space-2); font-size: 0.95rem; }
.site-footer__list a { opacity: 0.85; }
.site-footer__list a:hover { color: var(--ochre); opacity: 1; }
.site-footer__list a[data-pending="true"] { opacity: 0.55; cursor: not-allowed; }
.site-footer__col--contact { font-size: 0.9rem; line-height: 1.6; }
.site-footer__address { font-style: normal; margin-bottom: var(--space-3); color: rgba(244, 238, 226, 0.85); }
.site-footer__contact-row { margin: 0 0 var(--space-2) 0; }
.site-footer__contact-row a { color: var(--ochre); font-weight: 500; }
.site-footer__contact-row a:hover { text-decoration: underline; }
.site-footer__hours { margin: var(--space-3) 0; color: rgba(244, 238, 226, 0.72); font-size: 0.85rem; }
.site-footer__social { display: flex; gap: var(--space-2); margin-top: var(--space-3); list-style: none; padding: 0; flex-wrap: wrap; }
.site-footer__social a { display: inline-flex; align-items: center; justify-content: center; padding: 0.3rem 0.6rem; border: 1px solid rgba(244, 238, 226, 0.24); border-radius: 999px; font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.85; }
.site-footer__social a:hover { border-color: var(--ochre); color: var(--ochre); opacity: 1; }
.site-footer__social a[data-pending="true"] { opacity: 0.45; cursor: not-allowed; }
.site-footer__legal { padding-top: var(--space-5); font-size: 0.8rem; opacity: 0.65; }
.site-footer__legal p { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; margin: 0; }
.site-footer__legal a { text-decoration: underline; text-decoration-color: rgba(244, 238, 226, 0.35); text-underline-offset: 0.2em; }
.site-footer__legal a:hover { color: var(--ochre); text-decoration-color: var(--ochre); }
.site-footer__legal a[data-pending="true"] { opacity: 0.6; }
.site-footer__legal-sep { opacity: 0.35; }

/* --- 09 · Section: HERO -------------------------------------------------- */
.section--hero { padding-block: var(--space-9) var(--space-8); }
@media (min-width: 48rem) { .section--hero { padding-block: var(--space-10) var(--space-9); } }
.hero__headline { font-size: var(--fs-display); max-width: 18ch; margin-bottom: var(--space-5); }
.hero__tagline { font-family: var(--font-display); font-size: var(--fs-h2); margin-bottom: var(--space-5); max-width: 24ch; color: var(--mountain-dusk); }
.ground-mountain-dusk .hero__tagline,
.ground-ink .hero__tagline { color: var(--ochre); }
.hero__intro { font-size: var(--fs-lead); max-width: 48ch; margin-bottom: var(--space-6); color: var(--fg-muted); }
.ground-mountain-dusk .hero__intro,
.ground-ink .hero__intro { color: rgba(244, 238, 226, 0.82); }

/* --- 10 · Section: PROSE ------------------------------------------------ */
.section--prose .prose { font-size: var(--fs-lead); }
.section--prose .section__heading { font-size: var(--fs-h2); margin-bottom: var(--space-6); }

/* --- 11 · Section: SERVICE_GRID ----------------------------------------- */
.service-grid {
    display: grid;
    gap: var(--space-5);
    grid-template-columns: 1fr;
}
@media (min-width: 36rem) { .service-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 60rem) { .service-grid { grid-template-columns: repeat(3, 1fr); } }
.service-tile {
    background: var(--cream);
    border: 1px solid var(--rule);
    padding: var(--space-6);
    border-radius: var(--radius-lg);
    transition: transform var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.ground-limestone .service-tile { background: #fff; }
.ground-mountain-dusk .service-tile,
.ground-ink .service-tile { background: rgba(244, 238, 226, 0.06); border-color: var(--rule-inverse); color: var(--cream); }
.service-tile:hover { transform: translateY(-2px); border-color: var(--mountain-dusk); }
.ground-mountain-dusk .service-tile:hover,
.ground-ink .service-tile:hover { border-color: var(--ochre); }
.service-tile__title { font-size: var(--fs-h3); margin-bottom: var(--space-3); }
.service-tile__body { color: var(--fg-muted); font-size: 0.95rem; }
.ground-mountain-dusk .service-tile__body,
.ground-ink .service-tile__body { color: rgba(244, 238, 226, 0.74); }
.service-tile__link { display: block; color: inherit; }

/* --- 12 · Section: CTA_BAND --------------------------------------------- */
.section--cta-band { text-align: center; }
.section--cta-band .container { display: flex; flex-direction: column; align-items: center; gap: var(--space-5); }
.cta-band__headline { max-width: 22ch; font-size: var(--fs-h1); }
.cta-band__subhead { max-width: 44ch; font-size: var(--fs-lead); opacity: 0.85; }

/* --- 13 · Section: CONTACT_BLOCK ---------------------------------------- */
.contact-grid {
    display: grid;
    gap: var(--space-6);
    grid-template-columns: 1fr;
    margin-top: var(--space-5);
}
@media (min-width: 48rem) { .contact-grid { grid-template-columns: repeat(3, 1fr); } }
.contact-grid__label { font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ochre); margin-bottom: var(--space-3); }
.contact-grid__address { font-style: normal; line-height: 1.7; }
.contact-grid__phone { font-family: var(--font-display); font-size: 1.5rem; color: var(--mountain-dusk); }
.contact-grid__phone:hover { color: var(--ochre); }
.hours__row { display: flex; justify-content: space-between; gap: var(--space-4); padding-block: var(--space-2); border-bottom: 1px solid var(--rule); }
.hours__row:last-child { border-bottom: 0; }
.hours__row dt { font-weight: 500; }
.hours__row dd { color: var(--fg-muted); }
.contact-grid__form { margin-top: var(--space-7); padding-top: var(--space-6); border-top: 1px solid var(--rule); }

/* --- 14 · Empty/unknown section ----------------------------------------- */
.empty-state, .unknown-section { padding-block: var(--space-8); background: var(--limestone); }
.empty-state p, .unknown-section p { color: var(--fg-muted); }
.unknown-section code { background: rgba(20,24,31,0.08); padding: 0.1em 0.4em; border-radius: var(--radius-sm); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }

/* --- 15 · Section: FEATURE_GRID (image-reveal hover cards) ------------- */
.feature-grid {
    display: grid;
    gap: var(--space-5);
    grid-template-columns: 1fr;
    list-style: none;
}
@media (min-width: 36rem) { .feature-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 64rem) {
    .feature-grid[data-cols="3"], .feature-grid[data-cols="6"] { grid-template-columns: repeat(3, 1fr); }
    .feature-grid[data-cols="4"] { grid-template-columns: repeat(4, 1fr); }
}
.feature-card {
    position: relative;
    aspect-ratio: 4 / 5;
    border-radius: var(--radius-lg);
    overflow: hidden;
    isolation: isolate;
    background: var(--mountain-dusk);
    color: var(--cream);
    transform: translateY(0);
    transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.feature-card > a {
    position: absolute; inset: 0; z-index: 5;
    color: inherit; text-decoration: none;
}
.feature-card:hover, .feature-card:focus-within {
    transform: translateY(-3px);
    box-shadow: 0 24px 48px -24px rgba(20,24,31,0.45);
}
.feature-card__media {
    position: absolute; inset: 0; z-index: 1;
    background-size: cover; background-position: center;
    transform: scale(1.02);
    transition: transform var(--dur-slow) var(--ease);
}
.feature-card:hover .feature-card__media,
.feature-card:focus-within .feature-card__media { transform: scale(1.08); }
.feature-card__media--placeholder {
    background:
        radial-gradient(120% 80% at 20% 20%, rgba(244,238,226,0.10), transparent 55%),
        linear-gradient(155deg, var(--dusk-60) 0%, var(--mountain-dusk) 60%, var(--ink) 100%);
}
.feature-card__media--placeholder::after {
    content: attr(data-label);
    position: absolute; left: var(--space-4); top: var(--space-4);
    font-size: 0.7rem; font-family: var(--font-sans); font-weight: 500;
    letter-spacing: 0.14em; text-transform: uppercase;
    color: rgba(244,238,226,0.55);
    padding: 4px 10px; border: 1px dashed rgba(244,238,226,0.35); border-radius: 999px;
}
.feature-card__overlay {
    position: absolute; inset: 0; z-index: 2;
    background: linear-gradient(180deg, rgba(20,24,31,0.10) 0%, rgba(20,24,31,0.45) 55%, rgba(20,24,31,0.82) 100%);
    transition: background var(--dur) var(--ease);
}
.feature-card:hover .feature-card__overlay,
.feature-card:focus-within .feature-card__overlay {
    background: linear-gradient(180deg, rgba(26,58,107,0.30) 0%, rgba(26,58,107,0.60) 50%, rgba(20,24,31,0.92) 100%);
}
.feature-card__body {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 3;
    padding: var(--space-5);
    transform: translateY(0);
    transition: transform var(--dur) var(--ease);
}
.feature-card__title { font-family: var(--font-display); font-size: var(--fs-h3); color: var(--cream); margin: 0; line-height: 1.1; }
.feature-card__body p {
    margin: var(--space-3) 0 var(--space-4);
    color: rgba(244,238,226,0.88);
    font-size: 0.95rem; line-height: 1.55;
    max-width: 38ch;
    opacity: 0; transform: translateY(8px);
    transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.feature-card__cta {
    display: inline-flex; align-items: center; gap: var(--space-2);
    font-family: var(--font-sans); font-weight: 500; font-size: 0.875rem;
    color: var(--ochre);
    opacity: 0; transform: translateY(8px);
    transition: opacity var(--dur) var(--ease) 60ms, transform var(--dur) var(--ease) 60ms;
}
.feature-card__cta::after { content: "→"; transition: transform var(--dur-quick) var(--ease); }
.feature-card:hover .feature-card__body,
.feature-card:focus-within .feature-card__body { transform: translateY(-4px); }
.feature-card:hover .feature-card__body p,
.feature-card:focus-within .feature-card__body p,
.feature-card:hover .feature-card__cta,
.feature-card:focus-within .feature-card__cta { opacity: 1; transform: translateY(0); }
.feature-card:hover .feature-card__cta::after { transform: translateX(4px); }
@media (hover: none) {
    .feature-card__body p, .feature-card__cta { opacity: 1; transform: translateY(0); }
    .feature-card__overlay {
        background: linear-gradient(180deg, rgba(26,58,107,0.30) 0%, rgba(26,58,107,0.60) 50%, rgba(20,24,31,0.92) 100%);
    }
}

/* --- 16 · Section: BOOKING_ROUTER (4 intent cards) --------------------- */
.booking-router {
    display: grid;
    gap: var(--space-4);
    grid-template-columns: 1fr;
    list-style: none;
}
@media (min-width: 40rem) { .booking-router { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 68rem) { .booking-router { grid-template-columns: repeat(4, 1fr); } }
.intent-card {
    position: relative;
    display: flex; flex-direction: column; justify-content: space-between;
    min-height: 220px;
    padding: var(--space-5);
    background: var(--cream);
    border: 1px solid var(--rule);
    border-radius: var(--radius-lg);
    color: inherit; text-decoration: none;
    overflow: hidden;
    transition: transform var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.ground-mountain-dusk .intent-card,
.ground-ink .intent-card { background: rgba(244,238,226,0.05); border-color: var(--rule-inverse); color: var(--cream); }
.ground-limestone .intent-card { background: #fff; }
.intent-card::before {
    content: ""; position: absolute; left: 0; bottom: 0;
    width: 0; height: 3px; background: var(--ochre);
    transition: width var(--dur) var(--ease);
}
.intent-card:hover, .intent-card:focus-visible {
    transform: translateY(-3px);
    border-color: var(--mountain-dusk);
    box-shadow: 0 18px 36px -20px rgba(20,24,31,0.30);
}
.ground-mountain-dusk .intent-card:hover, .ground-ink .intent-card:hover { border-color: var(--ochre); }
.intent-card:hover::before, .intent-card:focus-visible::before { width: 100%; }
.intent-card__icon {
    width: 44px; height: 44px; border-radius: 50%;
    background: var(--dusk-10); color: var(--mountain-dusk);
    display: inline-flex; align-items: center; justify-content: center;
    font-family: var(--font-display); font-size: 1.3rem;
    margin-bottom: var(--space-4);
}
.ground-mountain-dusk .intent-card__icon, .ground-ink .intent-card__icon { background: rgba(244,238,226,0.12); color: var(--cream); }
.intent-card__title { font-family: var(--font-display); font-size: var(--fs-h3); line-height: 1.12; margin-bottom: var(--space-2); }
.intent-card__body { color: var(--fg-muted); font-size: 0.9rem; margin: 0; max-width: 32ch; }
.ground-mountain-dusk .intent-card__body, .ground-ink .intent-card__body { color: rgba(244,238,226,0.78); }
.intent-card__arrow {
    margin-top: var(--space-4);
    font-size: 0.875rem; font-weight: 500;
    color: var(--mountain-dusk);
    display: inline-flex; align-items: center; gap: var(--space-2);
    transition: gap var(--dur-quick) var(--ease);
}
.ground-mountain-dusk .intent-card__arrow, .ground-ink .intent-card__arrow { color: var(--ochre); }
.intent-card__arrow::after { content: "→"; }
.intent-card:hover .intent-card__arrow { gap: var(--space-3); }
.booking-router__fallback {
    margin-top: var(--space-5);
    font-size: 0.875rem;
    color: var(--fg-muted);
}
.booking-router__fallback a { color: var(--mountain-dusk); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.ground-mountain-dusk .booking-router__fallback, .ground-ink .booking-router__fallback { color: rgba(244,238,226,0.78); }
.ground-mountain-dusk .booking-router__fallback a, .ground-ink .booking-router__fallback a { color: var(--ochre); }

/* --- 17 · Section: PILLARS (Trust / Depth / Care) --------------------- */
.pillars {
    display: grid; gap: var(--space-7);
    grid-template-columns: 1fr;
    list-style: none;
}
@media (min-width: 40rem) { .pillars { grid-template-columns: repeat(3, 1fr); } }
.pillar { text-align: center; display: flex; flex-direction: column; align-items: center; }
.pillar__circle {
    width: 138px; height: 138px;
    border-radius: 50%;
    background: var(--cream);
    border: 1px solid var(--rule);
    display: inline-flex; align-items: center; justify-content: center;
    font-family: var(--font-display);
    font-size: 1.4rem;
    color: var(--mountain-dusk);
    margin-bottom: var(--space-4);
}
.ground-limestone .pillar__circle { background: #fff; }
.ground-mountain-dusk .pillar__circle, .ground-ink .pillar__circle {
    background: rgba(244,238,226,0.06); color: var(--cream); border-color: var(--rule-inverse);
}
.pillar__label { font-family: var(--font-display); font-size: var(--fs-h3); margin-bottom: var(--space-2); }
.pillar__body { font-size: 0.95rem; color: var(--fg-muted); max-width: 32ch; margin: 0 auto; }
.ground-mountain-dusk .pillar__body, .ground-ink .pillar__body { color: rgba(244,238,226,0.78); }

/* --- 18 · Section: LANE_SPLIT (dual-lane intent split) ---------------- */
.lane-split { display: grid; gap: var(--space-4); grid-template-columns: 1fr; }
@media (min-width: 56rem) { .lane-split { grid-template-columns: 1fr 1fr; gap: var(--space-5); } }
.lane {
    position: relative;
    display: flex; flex-direction: column; justify-content: space-between;
    min-height: 380px;
    padding: var(--space-6);
    border-radius: var(--radius-lg);
    overflow: hidden;
    color: var(--cream); text-decoration: none;
    isolation: isolate;
}
.lane--general { background: var(--mountain-dusk); }
.lane--specialty { background: var(--ink); }
.lane::before {
    content: ""; position: absolute; inset: 0; z-index: -1;
    background: radial-gradient(120% 80% at 20% 0%, rgba(244,238,226,0.10), transparent 60%);
    transition: opacity var(--dur) var(--ease);
}
.lane:hover::before { opacity: 1.6; }
.lane__eyebrow {
    font-family: var(--font-sans); font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.18em;
    font-size: 0.75rem; color: var(--ochre);
    margin: 0 0 var(--space-3);
}
.lane__title { font-family: var(--font-display); font-size: var(--fs-h1); color: var(--cream); margin: 0 0 var(--space-3); line-height: 1.04; }
.lane__body { color: rgba(244,238,226,0.85); margin: 0 0 var(--space-5); max-width: 36ch; }
.lane__list { padding: 0; margin: 0 0 var(--space-5); display: flex; flex-wrap: wrap; gap: var(--space-2); list-style: none; }
.lane__list li {
    font-size: 0.75rem;
    padding: 4px var(--space-3);
    border: 1px solid rgba(244,238,226,0.25);
    border-radius: 999px;
    color: rgba(244,238,226,0.85);
}
.lane__cta {
    align-self: flex-start;
    display: inline-flex; align-items: center; gap: var(--space-2);
    color: var(--cream); font-weight: 500;
    transition: gap var(--dur-quick) var(--ease);
}
.lane__cta::after { content: "→"; color: var(--ochre); }
.lane:hover .lane__cta { gap: var(--space-3); }

/* --- 19 · Section: DOCTOR_GRID --------------------------------------- */
.doctor-grid {
    display: grid; gap: var(--space-5);
    grid-template-columns: 1fr;
    list-style: none;
}
@media (min-width: 44rem) { .doctor-grid { grid-template-columns: repeat(3, 1fr); } }
.doctor-card { display: flex; flex-direction: column; }
.doctor-card__portrait {
    aspect-ratio: 4 / 5;
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-bottom: var(--space-4);
    background-color: var(--mountain-dusk);
    background-size: cover;
    background-position: center 20%;
    background-repeat: no-repeat;
    position: relative;
}
.doctor-card__portrait[data-label] {
    background-image:
        radial-gradient(80% 50% at 50% 20%, rgba(244,238,226,0.16), transparent 60%),
        linear-gradient(160deg, var(--dusk-60), var(--mountain-dusk));
}
.doctor-card__portrait::after {
    content: attr(data-label);
    position: absolute; left: var(--space-4); bottom: var(--space-4);
    font-size: 0.7rem; color: rgba(244,238,226,0.78);
    text-transform: uppercase; letter-spacing: 0.14em;
    padding: 4px 10px; border: 1px dashed rgba(244,238,226,0.35); border-radius: 999px;
}
.doctor-card__name { font-family: var(--font-display); font-size: var(--fs-h3); margin-bottom: var(--space-2); }
.doctor-card__role {
    text-transform: uppercase; letter-spacing: 0.14em;
    font-size: 0.75rem; font-weight: 600;
    color: var(--ochre);
    margin-bottom: var(--space-3);
}
.doctor-card__body { font-size: 0.95rem; color: var(--fg-muted); margin-bottom: var(--space-4); }
.ground-mountain-dusk .doctor-card__body, .ground-ink .doctor-card__body { color: rgba(244,238,226,0.78); }
.doctor-card__cta {
    font-size: 0.875rem; font-weight: 500;
    color: var(--mountain-dusk);
    display: inline-flex; gap: var(--space-2); align-items: center;
    align-self: flex-start;
}
.ground-mountain-dusk .doctor-card__cta, .ground-ink .doctor-card__cta { color: var(--ochre); }
.doctor-card__cta::after { content: "→"; transition: transform var(--dur-quick) var(--ease); }
.doctor-card:hover .doctor-card__cta::after { transform: translateX(4px); }

/* --- 20 · Section: TRUST_STRIP --------------------------------------- */
.trust-strip {
    display: grid; gap: var(--space-5) var(--space-6);
    grid-template-columns: repeat(2, 1fr);
    align-items: center;
    list-style: none;
}
@media (min-width: 44rem) { .trust-strip { grid-template-columns: repeat(3, 1fr); } }
/* trust-strip: single row, centered, works for any logo count */
@media (min-width: 64rem) {
    .trust-strip {
        display: flex;
        flex-wrap: nowrap;
        justify-content: space-between;
        align-items: center;
        gap: var(--space-4);
    }
    .trust-strip .trust-item { flex: 1 1 0; min-width: 0; padding: var(--space-2); }
    .trust-strip .trust-item__image { max-width: 100%; }
}
.trust-item {
    text-align: center;
    padding: var(--space-3);
    border-radius: var(--radius);
    min-height: 88px;
    display: flex; align-items: center; justify-content: center;
    transition: transform var(--dur-quick) var(--ease), opacity var(--dur-quick) var(--ease);
}
.trust-item__inner {
    display: flex; align-items: center; justify-content: center; gap: var(--space-2);
    color: inherit; text-decoration: none;
    width: 100%; height: 100%;
}
/* Text-only fallback */
.trust-item--text {
    color: var(--fg-muted);
    border: 1px dashed var(--rule);
}
.trust-item--text .trust-item__label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
}
/* Logo treatment — clean, no border, max-height contained */
.trust-item--logo { opacity: 0.78; }
.trust-item--logo:hover { opacity: 1; transform: translateY(-2px); }
.trust-item__image {
    max-height: 52px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    filter: grayscale(0.15);
    transition: filter var(--dur-quick) var(--ease);
}
.trust-item--logo:hover .trust-item__image { filter: grayscale(0); }
.ground-mountain-dusk .trust-item--text, .ground-ink .trust-item--text {
    color: rgba(244,238,226,0.72); border-color: var(--rule-inverse);
}
.ground-mountain-dusk .trust-item--logo .trust-item__image,
.ground-ink .trust-item--logo .trust-item__image {
    filter: brightness(0) invert(1) grayscale(0.1); /* white-out logos on dark grounds */
}

/* --- 21 · Section: FAQ ---------------------------------------------- */
.faq-list { padding: 0; margin: 0; max-width: 800px; list-style: none; }
.faq-item { border-bottom: 1px solid var(--rule); }
.ground-mountain-dusk .faq-item, .ground-ink .faq-item { border-bottom-color: var(--rule-inverse); }
.faq-summary {
    cursor: pointer;
    list-style: none;
    padding: var(--space-5) 0;
    font-family: var(--font-display);
    font-size: var(--fs-h3);
    color: var(--mountain-dusk);
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--space-4);
}
.ground-mountain-dusk .faq-summary, .ground-ink .faq-summary { color: var(--cream); }
.faq-summary::-webkit-details-marker { display: none; }
.faq-summary::after {
    content: "+";
    font-size: 1.5rem;
    color: var(--ochre);
    transition: transform var(--dur) var(--ease);
}
.faq-item[open] .faq-summary::after { transform: rotate(45deg); }
.faq-body {
    padding: 0 0 var(--space-5);
    color: var(--fg-muted);
    max-width: 70ch;
}
.ground-mountain-dusk .faq-body, .ground-ink .faq-body { color: rgba(244,238,226,0.82); }

/* --- 22 · Scroll-reveal helpers (JS adds .is-in-view) ---------------- */
.reveal { opacity: 0; transform: translateY(20px); transition: opacity 700ms var(--ease), transform 700ms var(--ease); }
.reveal.is-in-view { opacity: 1; transform: none; }
.reveal-stagger > * { opacity: 0; transform: translateY(16px); transition: opacity 600ms var(--ease), transform 600ms var(--ease); }
.reveal-stagger.is-in-view > * { opacity: 1; transform: none; }
.reveal-stagger.is-in-view > *:nth-child(2) { transition-delay: 80ms; }
.reveal-stagger.is-in-view > *:nth-child(3) { transition-delay: 160ms; }
.reveal-stagger.is-in-view > *:nth-child(4) { transition-delay: 240ms; }
.reveal-stagger.is-in-view > *:nth-child(5) { transition-delay: 320ms; }
.reveal-stagger.is-in-view > *:nth-child(6) { transition-delay: 400ms; }

/* --- 23 · Sticky scrolled header state ------------------------------- */
.site-header.is-scrolled { box-shadow: 0 8px 24px -16px rgba(20,24,31,0.18); }

/* ====================================================================
   PHASE 2 — Section patterns built to match the locked Figma mockups.
   These supersede earlier homegrown sections (lane_split etc.) but those
   styles are kept above for any pages that still reference them.
   ==================================================================== */

/* --- Header CTA cluster ---------------------------------------------- */
.site-nav__ctas { display: flex; align-items: center; gap: var(--space-2); margin-left: auto; flex-wrap: nowrap; }
@media (max-width: 47.99rem) {
    .site-nav__ctas { display: none; }
    .site-nav.is-open .site-nav__ctas { display: flex; gap: var(--space-3); margin: var(--space-4) 0 0; flex-wrap: wrap; }
}
.site-nav__cta--call    { padding-inline: var(--space-3); }
.site-nav__cta--virtual { padding-inline: var(--space-3); }
.site-nav__cta--book    { padding-inline: var(--space-4); }
/* Hide Virtual Consult below large desktop to keep header tidy */
@media (min-width: 48rem) and (max-width: 71.99rem) {
    .site-nav__cta--virtual { display: none; }
}
/* Body fallback when no .site-nav__cta old singular is around */
.site-nav__cta { white-space: nowrap; }

/* --- 25 · Section: HERO_SPLIT (text left, image right + proof cards) - */
.section--hero-split { padding-block: var(--space-7) 0; background: var(--cream); }
@media (min-width: 56rem) { .section--hero-split { padding-block: var(--space-8) 0; } }
.hero-split {
    display: grid;
    gap: var(--space-7);
    grid-template-columns: 1fr;
    align-items: start;
}
@media (min-width: 56rem) {
    .hero-split { grid-template-columns: 1.05fr 1fr; gap: var(--space-8); align-items: center; padding-block: var(--space-6); }
}
.hero-split__content { display: flex; flex-direction: column; gap: var(--space-4); padding-block: var(--space-3) var(--space-6); }
@media (min-width: 56rem) { .hero-split__content { padding-block: var(--space-5) var(--space-8); } }
.hero-split__eyebrow {
    font-family: var(--font-sans);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ochre);
    margin: 0 0 var(--space-2);
}
.hero-split__title {
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 1.6rem + 4.4vw, 5rem);
    line-height: 1.04;
    letter-spacing: -0.01em;
    color: var(--ink);
    margin: 0;
    max-width: 18ch;
}
.hero-split__title em { font-style: italic; color: var(--mountain-dusk); }
.hero-split__lead { font-size: var(--fs-lead); color: var(--fg-muted); margin: var(--space-2) 0 var(--space-3); max-width: 46ch; }
.hero-split__ctas { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-3); }

.hero-split__media {
    position: relative;
    aspect-ratio: 6 / 5;
    border-radius: var(--radius-lg);
    overflow: visible;
}
.hero-split__image {
    position: absolute; inset: 0;
    border-radius: var(--radius-lg);
    background-color: var(--mountain-dusk);
    background-size: cover;
    background-position: center 22%;
    background-repeat: no-repeat;
    overflow: hidden;
}
/* Placeholder mode: gradient + label only when no image is provided */
.hero-split__image[data-label] {
    background-image:
        radial-gradient(80% 60% at 20% 30%, rgba(244,238,226,0.18), transparent 60%),
        linear-gradient(155deg, var(--dusk-60) 0%, var(--mountain-dusk) 60%, var(--ink) 100%);
}
.hero-split__image[data-label]::after {
    content: attr(data-label);
    position: absolute; left: var(--space-4); top: var(--space-4);
    font-size: 0.7rem; font-family: var(--font-sans); font-weight: 500;
    letter-spacing: 0.14em; text-transform: uppercase;
    color: rgba(244,238,226,0.55);
    padding: 4px 10px; border: 1px dashed rgba(244,238,226,0.35); border-radius: 999px;
}
.hero-proof {
    position: absolute;
    right: var(--space-4); bottom: var(--space-4);
    display: flex; gap: var(--space-2);
    background: rgba(244,238,226,0.92);
    backdrop-filter: blur(8px);
    border-radius: var(--radius-lg);
    padding: var(--space-3);
    box-shadow: 0 18px 40px -20px rgba(20,24,31,0.35);
    max-width: calc(100% - 2 * var(--space-4));
}
.hero-proof__tile {
    flex: 1; min-width: 0;
    background: var(--cream);
    border-radius: var(--radius);
    padding: var(--space-3);
    display: flex; flex-direction: column; gap: 2px;
}
.hero-proof__value { font-family: var(--font-display); font-size: 1.4rem; color: var(--mountain-dusk); line-height: 1; }
.hero-proof__label {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--fg-muted);
}

/* --- 26 · Section: BOOKING_ROUTER_6 (3 × 2 grid, dark cards) -------- */
.section--booking-router-6 { padding-block: var(--space-7) var(--space-8); }
@media (min-width: 56rem) { .section--booking-router-6 { padding-block: var(--space-8) var(--space-9); } }
.section--booking-router-6 .section__header { max-width: 720px; margin-bottom: var(--space-6); }
.section--booking-router-6 .section__heading { font-size: clamp(1.875rem, 1.3rem + 1.8vw, 2.5rem); margin: 0; }
.section--booking-router-6 .section__intro { color: var(--fg-muted); font-size: var(--fs-lead); margin-top: var(--space-3); max-width: 56ch; }

.router-grid {
    display: grid; gap: var(--space-4);
    grid-template-columns: 1fr;
    list-style: none; padding: 0; margin: 0;
}
@media (min-width: 40rem) { .router-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 64rem) { .router-grid { grid-template-columns: repeat(3, 1fr); } }
.router-card {
    position: relative;
    display: flex; flex-direction: column; justify-content: flex-end;
    min-height: 148px;
    padding: var(--space-5);
    background: var(--mountain-dusk);
    color: var(--cream);
    border-radius: var(--radius-lg);
    text-decoration: none;
    overflow: hidden;
    isolation: isolate;
    transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.router-card::before {
    content: ""; position: absolute; inset: 0; z-index: -1;
    background:
        radial-gradient(120% 80% at 80% 20%, rgba(255,255,255,0.10), transparent 60%),
        linear-gradient(155deg, var(--dusk-60) 0%, var(--mountain-dusk) 55%, var(--ink) 100%);
    opacity: 0.95;
    transition: opacity var(--dur) var(--ease);
}
.router-card:hover { transform: translateY(-3px); box-shadow: 0 24px 48px -24px rgba(20,24,31,0.45); }
.router-card:hover::before { opacity: 1; }
.router-card__title { font-family: var(--font-display); font-size: 1.5rem; line-height: 1.15; margin: 0; color: var(--cream); }
.router-card__body { font-size: 0.875rem; color: rgba(244,238,226,0.82); margin: var(--space-2) 0 0; max-width: 32ch; }
.router-card__arrow {
    margin-top: var(--space-3);
    font-size: 0.8rem; font-weight: 500;
    color: var(--ochre);
    display: inline-flex; align-items: center; gap: var(--space-2);
}
.router-card__arrow::after { content: "→"; transition: transform var(--dur-quick) var(--ease); }
.router-card:hover .router-card__arrow::after { transform: translateX(4px); }

/* --- 27 · Section: EDITORIAL_SPLIT (Home — image L, 2 cards R) ----- */
.section--editorial-split { padding-block: var(--space-8); }
@media (min-width: 56rem) { .section--editorial-split { padding-block: var(--space-9); } }
.editorial-split__head {
    display: grid; gap: var(--space-5);
    grid-template-columns: 1fr;
    margin-bottom: var(--space-6);
}
@media (min-width: 56rem) {
    .editorial-split__head { grid-template-columns: 1.1fr 1fr; gap: var(--space-7); align-items: end; }
}
.editorial-split__heading { font-family: var(--font-display); font-size: clamp(1.875rem, 1.3rem + 1.8vw, 2.5rem); line-height: 1.08; margin: 0; max-width: 22ch; }
.editorial-split__heading em { font-style: italic; color: var(--mountain-dusk); }
.editorial-split__body { color: var(--fg-muted); font-size: var(--fs-lead); margin: 0; max-width: 46ch; }
.editorial-split__grid {
    display: grid; gap: var(--space-4);
    grid-template-columns: 1fr;
}
@media (min-width: 56rem) { .editorial-split__grid { grid-template-columns: 1.05fr 1fr; gap: var(--space-5); } }
.editorial-split__hero {
    aspect-ratio: 4 / 3;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background-color: var(--mountain-dusk);
    background-size: cover;
    background-position: center 30%;
    background-repeat: no-repeat;
    position: relative;
}
.editorial-split__hero[data-label] {
    background-image:
        radial-gradient(80% 60% at 30% 30%, rgba(244,238,226,0.16), transparent 60%),
        linear-gradient(160deg, var(--dusk-60), var(--mountain-dusk));
}
.editorial-split__hero[data-label]::after {
    content: attr(data-label);
    position: absolute; left: var(--space-4); top: var(--space-4);
    font-size: 0.7rem; font-family: var(--font-sans); font-weight: 500;
    letter-spacing: 0.14em; text-transform: uppercase;
    color: rgba(244,238,226,0.55);
    padding: 4px 10px; border: 1px dashed rgba(244,238,226,0.35); border-radius: 999px;
}
.editorial-split__column { display: flex; flex-direction: column; gap: var(--space-4); }
/* Editorial card — glassmorphism liquid-glass treatment over dark navy ground.
   Adapted from "Pure CSS Glassmorphism Liquid Glass UI kit"
   (codepen.io/Margarita-the-solid/pen/NPRPBjd) */
.editorial-card {
    flex: 1; min-height: 200px;
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    color: var(--cream);
    text-decoration: none;
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: var(--space-5);
    isolation: isolate;

    /* Dark navy gradient base — the look from the existing design */
    background:
        radial-gradient(100% 70% at 70% 20%, rgba(255, 255, 255, 0.12), transparent 60%),
        linear-gradient(155deg, var(--dusk-60), var(--mountain-dusk) 50%, var(--ink));

    /* Glass kit: hairline border + soft drop shadow + inset top highlight */
    border: 1px solid rgba(255, 255, 255, 0.18);
    box-shadow:
        0 8px 32px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.30);

    /* editorial-card cover fix — background: shorthand above resets size to auto.
       Force cover so inline background-image photos fill the card. */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    transition:
        transform 360ms cubic-bezier(0.22, 0.68, 0, 1.2),
        box-shadow 360ms cubic-bezier(0.22, 0.68, 0, 1.2);
}
/* Static reflection layer (always visible — gives the liquid-glass sheen) */
.editorial-card::before {
    content: "";
    position: absolute; inset: 0; z-index: 0;
    border-radius: inherit;
    background: linear-gradient(135deg,
        rgba(255, 255, 255, 0.22) 0%,
        rgba(255, 255, 255, 0)   50%);
    pointer-events: none;
}
/* Always-visible bottom-darkening gradient — keeps cream text readable when
   a photo is set as the background. Replaces the prior hover shimmer. */
.editorial-card::after {
    content: "";
    position: absolute; inset: 0; z-index: 1;
    border-radius: inherit;
    background: linear-gradient(180deg,
        rgba(20, 24, 31, 0.05) 0%,
        rgba(20, 24, 31, 0.40) 55%,
        rgba(20, 24, 31, 0.82) 100%);
    pointer-events: none;
}
.editorial-card:hover {
    transform: translateY(-6px) scale(1.01);
    box-shadow:
        0 20px 60px rgba(0, 0, 0, 0.40),
        0 4px 16px rgba(0, 0, 0, 0.20),
        inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
/* Content layers above the reflections */
.editorial-card__title,
.editorial-card__body { position: relative; z-index: 2; }
.editorial-card__title { font-family: var(--font-display); font-size: 1.5rem; line-height: 1.15; margin: 0; color: var(--cream); }
.editorial-card__body  { font-size: 0.875rem; color: rgba(244, 238, 226, 0.82); margin: var(--space-2) 0 0; }

/* --- 28 · Section: SERVICE_CARD_GRID (always-visible photo+text) ---- */
.section--service-card-grid { padding-block: var(--space-8); }
@media (min-width: 56rem) { .section--service-card-grid { padding-block: var(--space-9); } }
.service-card-grid__head { margin-bottom: var(--space-6); display: grid; gap: var(--space-5); grid-template-columns: 1fr; }
@media (min-width: 56rem) { .service-card-grid__head { grid-template-columns: 1.1fr 1fr; gap: var(--space-7); align-items: end; } }
.service-card-grid__heading { font-family: var(--font-display); font-size: clamp(1.875rem, 1.3rem + 1.8vw, 2.5rem); line-height: 1.08; margin: 0; max-width: 24ch; }
.service-card-grid__heading em { font-style: italic; color: var(--mountain-dusk); }
.service-card-grid__intro { color: var(--fg-muted); font-size: var(--fs-lead); margin: 0; max-width: 46ch; }
.service-card-list {
    display: grid; gap: var(--space-4);
    grid-template-columns: 1fr;
    list-style: none; padding: 0; margin: 0;
}
@media (min-width: 40rem) { .service-card-list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 64rem) {
    .service-card-list[data-cols="3"], .service-card-list[data-cols="6"] { grid-template-columns: repeat(3, 1fr); }
    .service-card-list[data-cols="4"] { grid-template-columns: repeat(4, 1fr); }
}
.service-card {
    position: relative;
    min-height: 248px;
    border-radius: var(--radius-lg);
    overflow: hidden;
    color: var(--cream);
    text-decoration: none;
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: var(--space-5);
    isolation: isolate;
    transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.service-card:hover { transform: translateY(-3px); box-shadow: 0 24px 48px -24px rgba(20,24,31,0.45); }
.service-card__media {
    position: absolute; inset: 0; z-index: -2;
    background-color: var(--mountain-dusk);
    background-size: cover;
    background-position: center 28%;
    background-repeat: no-repeat;
    transform: scale(1.02);
    transition: transform var(--dur-slow) var(--ease);
}
.service-card:hover .service-card__media { transform: scale(1.07); }
.service-card__media--placeholder {
    background-image:
        radial-gradient(120% 80% at 30% 20%, rgba(244,238,226,0.10), transparent 55%),
        linear-gradient(155deg, var(--dusk-60) 0%, var(--mountain-dusk) 55%, var(--ink) 100%);
}
.service-card__media--placeholder[data-label]::after {
    content: attr(data-label);
    position: absolute; left: var(--space-4); top: var(--space-4);
    font-size: 0.7rem; font-family: var(--font-sans); font-weight: 500;
    letter-spacing: 0.14em; text-transform: uppercase;
    color: rgba(244,238,226,0.55);
    padding: 4px 10px; border: 1px dashed rgba(244,238,226,0.35); border-radius: 999px;
}
.service-card__overlay {
    position: absolute; inset: 0; z-index: -1;
    background: linear-gradient(180deg, rgba(20,24,31,0.10) 0%, rgba(20,24,31,0.55) 60%, rgba(20,24,31,0.88) 100%);
}
.service-card__title { font-family: var(--font-display); font-size: 1.5rem; line-height: 1.15; margin: 0; color: var(--cream); }
.service-card__body { font-size: 0.875rem; color: rgba(244,238,226,0.85); margin: var(--space-2) 0 0; max-width: 36ch; }
.service-card__cta {
    margin-top: var(--space-3);
    font-size: 0.8rem; font-weight: 500;
    color: var(--ochre);
    display: inline-flex; align-items: center; gap: var(--space-2);
}
.service-card__cta::after { content: "→"; transition: transform var(--dur-quick) var(--ease); }
.service-card:hover .service-card__cta::after { transform: translateX(4px); }

/* --- 29 · Section: PROCESS_BAND (3 numbered steps) ----------------- */
.section--process-band { padding-block: var(--space-8); }
.process-band {
    border-radius: var(--radius-lg);
    background: var(--limestone);
    padding: var(--space-6);
}
@media (min-width: 56rem) { .process-band { padding: var(--space-8); } }
.process-band__head { margin-bottom: var(--space-6); display: grid; gap: var(--space-5); grid-template-columns: 1fr; }
@media (min-width: 56rem) { .process-band__head { grid-template-columns: 1.1fr 1fr; gap: var(--space-7); align-items: end; } }
.process-band__heading { font-family: var(--font-display); font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.25rem); line-height: 1.1; margin: 0; max-width: 22ch; }
.process-band__heading em { font-style: italic; color: var(--mountain-dusk); }
.process-band__intro { color: var(--fg-muted); font-size: var(--fs-lead); margin: 0; }
.process-steps {
    display: grid; gap: var(--space-6);
    grid-template-columns: 1fr;
    list-style: none; padding: 0; margin: 0;
}
@media (min-width: 56rem) { .process-steps { grid-template-columns: repeat(3, 1fr); gap: var(--space-7); } }
.process-step__num {
    display: inline-block;
    font-family: var(--font-display);
    font-size: 0.875rem;
    color: var(--ochre);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin: 0 0 var(--space-3);
}
.process-step__title { font-family: var(--font-sans); font-weight: 600; font-size: 1.25rem; line-height: 1.25; letter-spacing: -0.01em; margin: 0 0 var(--space-3); color: var(--mountain-dusk); }
/* process-step__title readability fix */
.process-step__body { color: var(--fg-muted); font-size: 0.95rem; margin: 0; max-width: 36ch; }

/* --- 30 · Section: CONVERSION_BAND (dark, photo right) ------------- */
.section--conversion-band { padding-block: var(--space-7); }
@media (min-width: 56rem) { .section--conversion-band { padding-block: var(--space-8); } }
.conversion-band {
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--mountain-dusk);
    color: var(--cream);
    display: grid;
    grid-template-columns: 1fr;
    min-height: 320px;
}
@media (min-width: 56rem) { .conversion-band { grid-template-columns: 1fr 1fr; min-height: 360px; } }
.conversion-band__content { padding: var(--space-7) var(--space-6); display: flex; flex-direction: column; justify-content: center; gap: var(--space-4); }
@media (min-width: 56rem) { .conversion-band__content { padding: var(--space-8) var(--space-8); } }
.conversion-band__eyebrow { font-family: var(--font-sans); font-weight: 600; font-size: var(--fs-eyebrow); letter-spacing: 0.18em; text-transform: uppercase; color: var(--ochre); margin: 0; }
.conversion-band__heading { font-family: var(--font-display); font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem); line-height: 1.08; margin: 0; color: var(--cream); max-width: 22ch; }
.conversion-band__heading em { font-style: italic; color: var(--ochre); }
.conversion-band__body { color: rgba(244,238,226,0.85); margin: 0; max-width: 44ch; }
.conversion-band__ctas { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-3); }
.conversion-band__media {
    position: relative;
    min-height: 220px;
    background-color: var(--mountain-dusk);
    background-size: cover;
    background-position: center 30%;
    background-repeat: no-repeat;
}
/* Placeholder gradient only when no real image is supplied */
.conversion-band__media[data-label] {
    background-image:
        radial-gradient(120% 80% at 30% 30%, rgba(244,238,226,0.10), transparent 55%),
        linear-gradient(155deg, var(--dusk-60) 0%, var(--mountain-dusk) 55%, var(--ink) 100%);
}
.conversion-band__media[data-label]::after {
    content: attr(data-label);
    position: absolute; left: var(--space-4); top: var(--space-4);
    font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase;
    color: rgba(244,238,226,0.55);
    padding: 4px 10px; border: 1px dashed rgba(244,238,226,0.35); border-radius: 999px;
}
.conversion-band .btn--ghost { color: var(--cream); border-color: rgba(244,238,226,0.5); }
.conversion-band .btn--ghost:hover { background: var(--cream); color: var(--mountain-dusk); border-color: var(--cream); }

/* --- 31 · Section: CONTACT_FORM_SPLIT (heading left, fields right) -- */
.section--contact-form-split { padding-block: var(--space-8); }
.contact-form-split {
    background: var(--limestone);
    border-radius: var(--radius-lg);
    padding: var(--space-6);
    display: grid; gap: var(--space-6);
    grid-template-columns: 1fr;
}
@media (min-width: 56rem) {
    .contact-form-split { padding: var(--space-8); grid-template-columns: 1fr 1.4fr; gap: var(--space-8); }
}
.contact-form-split__heading { font-family: var(--font-display); font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); line-height: 1.1; margin: 0 0 var(--space-4); }
.contact-form-split__heading em { font-style: italic; color: var(--mountain-dusk); }
.contact-form-split__copy { color: var(--fg-muted); font-size: 0.95rem; }
.contact-form-split__form { display: grid; gap: var(--space-4); grid-template-columns: 1fr; }
@media (min-width: 40rem) { .contact-form-split__form { grid-template-columns: 1fr 1fr; } }
.field { display: flex; flex-direction: column; gap: 6px; }
.field--full { grid-column: 1 / -1; }
.field > label { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--fg-muted); font-weight: 600; }
.field > input,
.field > select,
.field > textarea {
    border: 1px solid var(--rule);
    background: var(--cream);
    border-radius: var(--radius);
    padding: 14px 16px;
    font-family: var(--font-sans);
    font-size: 0.95rem;
    color: var(--ink);
    transition: border-color var(--dur-quick) var(--ease), box-shadow var(--dur-quick) var(--ease);
}
.field > input:focus,
.field > select:focus,
.field > textarea:focus {
    outline: 0;
    border-color: var(--mountain-dusk);
    box-shadow: 0 0 0 3px var(--dusk-20);
}
.field > textarea { min-height: 132px; resize: vertical; }
.field--checkboxes legend { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--fg-muted); font-weight: 600; margin-bottom: var(--space-2); }
.field--checkboxes { border: 0; padding: 0; }
.field__checkboxes { display: grid; grid-template-columns: 1fr; gap: 6px; }
@media (min-width: 40rem) { .field__checkboxes { grid-template-columns: 1fr 1fr; } }
.checkbox { display: flex; align-items: flex-start; gap: 8px; font-size: 0.9rem; line-height: 1.4; color: var(--fg); cursor: pointer; }
.checkbox input { margin-top: 4px; accent-color: var(--mountain-dusk); }
.contact-form-split__bullets { list-style: none; padding: 0; margin: var(--space-4) 0 0; display: grid; gap: 6px; font-size: 0.9rem; color: var(--fg-muted); }
.contact-form-split__bullets li { position: relative; padding-left: 1.1em; }
.contact-form-split__bullets li:before { content: "→"; position: absolute; left: 0; color: var(--ochre); }
.contact-form-split__consent { font-size: 0.85rem; color: var(--fg-muted); }
.contact-form-split__submit { margin-top: var(--space-3); }
.form-notice { padding: var(--space-3) var(--space-4); border-radius: 6px; margin-bottom: var(--space-5); font-size: 0.92rem; line-height: 1.5; }
.form-notice--ok { background: rgba(200, 154, 54, 0.14); border-left: 3px solid var(--ochre); color: var(--fg); }
.form-notice--warn { background: rgba(26, 58, 107, 0.09); border-left: 3px solid var(--mountain-dusk); color: var(--fg); }

/* --- 32 · Mobile sticky CTA bar ------------------------------------ */
.mobile-cta-bar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
    display: flex; gap: var(--space-3);
    padding: var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));
    background: rgba(244,238,226,0.95);
    backdrop-filter: blur(8px);
    border-top: 1px solid var(--rule);
    box-shadow: 0 -12px 24px -16px rgba(20,24,31,0.18);
}
.mobile-cta-bar .btn { flex: 1; justify-content: center; }
@media (min-width: 48rem) { .mobile-cta-bar { display: none; } }
/* leave space at bottom of page on mobile so the sticky bar doesn't cover content */
@media (max-width: 47.99rem) {
    body { padding-bottom: 80px; }
}

/* --- 33 · Doctor card (refreshed for new About) -------------------- */
.doctor-card-v2 {
    background: var(--cream);
    border: 1px solid var(--rule);
    border-radius: var(--radius-lg);
    overflow: hidden;
    display: flex; flex-direction: column;
}
.doctor-card-v2__portrait {
    aspect-ratio: 4 / 5;
    background-color: var(--mountain-dusk);
    background-size: cover;
    background-position: center 20%;
    background-repeat: no-repeat;
    position: relative;
}
/* Placeholder gradient only when no portrait is set */
.doctor-card-v2__portrait[data-label] {
    background-image:
        radial-gradient(80% 50% at 50% 20%, rgba(244,238,226,0.16), transparent 60%),
        linear-gradient(160deg, var(--dusk-60), var(--mountain-dusk));
}
.doctor-card-v2__portrait[data-label]::after {
    content: attr(data-label);
    position: absolute; left: var(--space-4); bottom: var(--space-4);
    font-size: 0.7rem; color: rgba(244,238,226,0.78);
    text-transform: uppercase; letter-spacing: 0.14em;
    padding: 4px 10px; border: 1px dashed rgba(244,238,226,0.35); border-radius: 999px;
}
.doctor-card-v2__body { padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-2); }
.doctor-card-v2__role { text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.7rem; font-weight: 600; color: var(--ochre); margin: 0; }
.doctor-card-v2__name { font-family: var(--font-display); font-size: 1.5rem; margin: 0; line-height: 1.1; }
.doctor-card-v2__bio { font-size: 0.95rem; color: var(--fg-muted); margin: var(--space-2) 0 0; }

/* --- 34 · Two-up wide image strip (About) -------------------------- */
.image-strip-2 {
    display: grid; gap: var(--space-4);
    grid-template-columns: 1fr;
}
@media (min-width: 56rem) { .image-strip-2 { grid-template-columns: 1fr 1fr; } }
.image-strip-2__tile {
    position: relative;
    aspect-ratio: 17 / 10;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background-color: var(--mountain-dusk);
    background-size: cover;
    background-position: center 30%;
    background-repeat: no-repeat;
}
.image-strip-2__tile[data-label] {
    background-image:
        radial-gradient(80% 60% at 30% 30%, rgba(244,238,226,0.12), transparent 60%),
        linear-gradient(155deg, var(--dusk-60), var(--mountain-dusk));
}
.image-strip-2__tile[data-label]::after {
    content: attr(data-label);
    position: absolute; left: var(--space-4); top: var(--space-4);
    font-size: 0.7rem; color: rgba(244,238,226,0.55);
    text-transform: uppercase; letter-spacing: 0.14em;
    padding: 4px 10px; border: 1px dashed rgba(244,238,226,0.35); border-radius: 999px;
}

/* --- 35 · Section: FAQ_SPLIT (heading left, accordion right) -------- */
.section--faq-split { padding-block: var(--space-8); }
.faq-split {
    display: grid; gap: var(--space-6);
    grid-template-columns: 1fr;
}
@media (min-width: 56rem) {
    .faq-split { grid-template-columns: 1fr 1.4fr; gap: var(--space-8); align-items: start; }
}
.faq-split__heading {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.25rem);
    line-height: 1.08;
    margin: 0 0 var(--space-3);
    max-width: 18ch;
}
.faq-split__heading em { font-style: italic; color: var(--mountain-dusk); }
.faq-split__copy { color: var(--fg-muted); font-size: 0.95rem; max-width: 36ch; margin: 0; }
.faq-split__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.faq-split__item {
    background: var(--limestone);
    border-radius: var(--radius);
    overflow: hidden;
    transition: background var(--dur-quick) var(--ease);
}
.faq-split__item[open] { background: var(--cream); border: 1px solid var(--rule); }
.faq-split__summary {
    cursor: pointer; list-style: none;
    padding: var(--space-4) var(--space-5);
    font-family: var(--font-display); font-size: 1.125rem;
    color: var(--ink);
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--space-4);
}
.faq-split__summary::-webkit-details-marker { display: none; }
.faq-split__summary::after {
    content: "+"; font-size: 1.4rem; color: var(--ochre);
    transition: transform var(--dur) var(--ease);
}
.faq-split__item[open] .faq-split__summary::after { transform: rotate(45deg); }
.faq-split__body {
    padding: 0 var(--space-5) var(--space-5);
    color: var(--fg-muted); font-size: 0.95rem;
    line-height: 1.65;
}

/* --- 36 · Section: ARTICLE_LAYOUT (long-form body + sticky sidebar) - */
.section--article-layout { padding-block: var(--space-7); }
@media (min-width: 56rem) { .section--article-layout { padding-block: var(--space-8); } }
.article-layout {
    display: grid; gap: var(--space-6);
    grid-template-columns: 1fr;
}
@media (min-width: 56rem) { .article-layout { grid-template-columns: minmax(0, 1fr) 360px; gap: var(--space-7); align-items: start; } }
.article-body { font-family: var(--font-sans); }
.article-body__kicker {
    font-family: var(--font-sans);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ochre);
    margin: 0 0 var(--space-3);
}
.article-body h1 { font-size: clamp(2rem, 1.5rem + 1.8vw, 2.75rem); line-height: 1.1; margin: 0 0 var(--space-5); }
.article-body h2 { font-family: var(--font-display); font-size: clamp(1.5rem, 1.2rem + 1vw, 1.875rem); line-height: 1.15; margin: var(--space-7) 0 var(--space-3); color: var(--mountain-dusk); }
.article-body h3 { font-family: var(--font-display); font-size: 1.25rem; margin: var(--space-5) 0 var(--space-3); }
.article-body p, .article-body ul, .article-body ol { font-size: 1rem; line-height: 1.7; margin: 0 0 var(--space-4); color: var(--ink); }
.article-body ul, .article-body ol { padding-left: 1.4em; }
.article-body ul { list-style: disc; }
.article-body ol { list-style: decimal; }
.article-body li { margin-bottom: 6px; }
.article-body blockquote {
    margin: var(--space-6) 0;
    padding: var(--space-5);
    border-left: 3px solid var(--ochre);
    background: var(--limestone);
    border-radius: var(--radius);
    font-family: var(--font-display);
    font-size: 1.25rem;
    color: var(--mountain-dusk);
}
.article-body__inline-image {
    aspect-ratio: 7 / 4;
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin: var(--space-6) 0;
    background-color: var(--mountain-dusk);
    background-size: cover;
    background-position: center 30%;
    background-repeat: no-repeat;
    position: relative;
}
.article-body__inline-image[data-label] {
    background-image:
        radial-gradient(80% 60% at 30% 30%, rgba(244,238,226,0.16), transparent 60%),
        linear-gradient(160deg, var(--dusk-60), var(--mountain-dusk));
}
.article-body__inline-image[data-label]::after {
    content: attr(data-label);
    position: absolute; left: var(--space-4); top: var(--space-4);
    font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase;
    color: rgba(244,238,226,0.55);
    padding: 4px 10px; border: 1px dashed rgba(244,238,226,0.35); border-radius: 999px;
}

.article-sidebar {
    background: var(--limestone);
    border-radius: var(--radius-lg);
    padding: var(--space-6);
    display: flex; flex-direction: column; gap: var(--space-4);
    position: static;
}
@media (min-width: 56rem) { .article-sidebar { position: sticky; top: 96px; } }
.article-sidebar__heading { font-family: var(--font-display); font-size: 1.25rem; line-height: 1.2; margin: 0; }
.article-sidebar__body { color: var(--fg-muted); font-size: 0.9rem; margin: 0; }
.article-sidebar__image {
    aspect-ratio: 4 / 3;
    border-radius: var(--radius);
    background-color: var(--mountain-dusk);
    background-size: cover;
    background-position: center 20%;
    background-repeat: no-repeat;
    position: relative;
}
.article-sidebar__image[data-label] {
    background-image:
        radial-gradient(80% 60% at 30% 30%, rgba(244,238,226,0.16), transparent 60%),
        linear-gradient(160deg, var(--dusk-60), var(--mountain-dusk));
}
.article-sidebar__image[data-label]::after {
    content: attr(data-label);
    position: absolute; left: var(--space-3); bottom: var(--space-3);
    font-size: 0.65rem; letter-spacing: 0.14em; text-transform: uppercase;
    color: rgba(244,238,226,0.55);
    padding: 3px 8px; border: 1px dashed rgba(244,238,226,0.35); border-radius: 999px;
}

/* --- 24 · Motion gating --------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
    .lenis, .lenis-smooth { overflow: auto !important; }
    .reveal, .reveal-stagger > * { opacity: 1; transform: none; }
}


/* --- Section: BENTO_GALLERY --- Scrubbed bento gallery (GSAP Flip) ---- */
/* --- Section: BENTO_GALLERY */
.section--bento-gallery { padding: var(--space-9) 0 0; overflow: hidden; }
.bento-gallery__intro {
    text-align: center;
    max-width: 60ch;
    margin: 0 auto var(--space-7);
}
.bento-gallery__heading {
    font-family: var(--font-display);
    font-size: clamp(2rem, 1.4rem + 3vw, 3.75rem);
    line-height: 1.05;
    letter-spacing: -0.01em;
    margin: var(--space-2) 0 var(--space-4);
    color: var(--ink);
}
.bento-gallery__heading em { font-style: italic; color: var(--mountain-dusk); }
.bento-gallery__body p { margin-bottom: var(--space-3); font-size: 1.05rem; line-height: 1.55; }
.bento-gallery__body strong { color: var(--mountain-dusk); }
.bento-gallery__cta {
    color: var(--mountain-dusk);
    text-decoration: underline;
    text-underline-offset: 0.25em;
    font-weight: 500;
    font-size: 1rem;
}
.bento-gallery__cta:hover { color: var(--ochre); }

.bento-gallery__wrap {
    position: relative;
    width: 100%;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.bento-gallery__grid {
    position: relative;
    width: 100%;
    height: 100%;
    flex: none;
}
.gallery__item {
    background-position: 50% 50%;
    background-size: cover;
    flex: none;
    position: relative;
    overflow: hidden;
    border-radius: var(--radius);
    box-shadow: 0 4px 24px rgba(0,0,0,0.08);
}
.gallery__item img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    display: block;
}
.gallery--bento {
    display: grid;
    gap: 1vh;
    grid-template-columns: repeat(3, 32.5vw);
    grid-template-rows: repeat(4, 23vh);
    justify-content: center;
    align-content: center;
}
.gallery--final.gallery--bento {
    grid-template-columns: repeat(3, 100vw);
    grid-template-rows: repeat(4, 49.5vh);
    gap: 1vh;
}
.gallery--bento .gallery__item:nth-child(1) { grid-area: 1/1/3/2; }
.gallery--bento .gallery__item:nth-child(2) { grid-area: 1/2/2/3; }
.gallery--bento .gallery__item:nth-child(3) { grid-area: 2/2/4/3; }
.gallery--bento .gallery__item:nth-child(4) { grid-area: 1/3/3/4; }
.gallery--bento .gallery__item:nth-child(5) { grid-area: 3/1/4/2; }
.gallery--bento .gallery__item:nth-child(6) { grid-area: 3/3/5/4; }
.gallery--bento .gallery__item:nth-child(7) { grid-area: 4/1/5/2; }
.gallery--bento .gallery__item:nth-child(8) { grid-area: 4/2/5/3; }

/* Mobile: simpler stacked layout, no scrubbing */
@media (max-width: 47.99rem) {
    .bento-gallery__wrap { height: auto; padding: var(--space-4) 0 var(--space-6); }
    .gallery--bento {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
        gap: var(--space-2);
    }
    .gallery--bento .gallery__item {
        grid-area: auto !important;
        aspect-ratio: 4/3;
    }
    .gallery--final.gallery--bento {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
    }
}


/* --- Section: FEATURE_STACK — mimic animation-addons widgets ------------ */
/* --- Section: FEATURE_STACK */
.section--feature-stack { padding: var(--space-9) 0; }

.feature-stack__head {
    max-width: 60ch; margin: 0 auto var(--space-8); text-align: center;
}
.feature-stack__heading {
    font-family: var(--font-display);
    font-size: clamp(2rem, 1.4rem + 3vw, 3.75rem);
    line-height: 1.05; letter-spacing: -0.01em;
    margin: var(--space-2) 0 var(--space-3);
    color: var(--ink);
}
.feature-stack__heading em { font-style: italic; color: var(--mountain-dusk); }
.feature-stack__intro { color: var(--fg-muted); font-size: 1.05rem; margin: 0 auto; }

.feature-stack__list {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: var(--space-8);
}
.feature-stack__item {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
    align-items: center;
}
.feature-stack__text > * { max-width: 46ch; }
.feature-stack__num {
    font-family: var(--font-sans); font-weight: 600;
    font-size: 0.8rem; letter-spacing: 0.18em; text-transform: uppercase;
    color: var(--ochre); margin: 0 0 var(--space-3);
}
.feature-stack__title {
    font-family: var(--font-sans);
    font-weight: 600;
    font-size: clamp(1.375rem, 1.05rem + 1vw, 1.75rem);
    line-height: 1.2; letter-spacing: -0.01em;
    color: var(--mountain-dusk);
    margin: 0 0 var(--space-3);
}
.feature-stack__title em { font-style: normal; color: var(--ochre); }
/* feature-stack__title readability fix */
.feature-stack__body {
    color: var(--fg-muted); font-size: 1.05rem; line-height: 1.55;
    margin: 0 0 var(--space-4);
}
.feature-stack__cta {
    display: inline-flex; align-items: center; gap: 0.5em;
    color: var(--mountain-dusk); font-weight: 600;
    text-decoration: underline; text-underline-offset: 0.25em;
    transition: color var(--dur-quick) var(--ease), transform var(--dur-quick) var(--ease);
}
.feature-stack__cta:hover { color: var(--ochre); transform: translateX(2px); }
.feature-stack__cta span { transition: transform var(--dur-quick) var(--ease); }
.feature-stack__cta:hover span { transform: translateX(4px); }

.feature-stack__visual {
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background-color: var(--mountain-dusk);
    box-shadow: 0 24px 60px rgba(20,24,31,0.12), 0 2px 6px rgba(20,24,31,0.06);
    aspect-ratio: 4/3;
}
.feature-stack__visual img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    will-change: transform;
}
.feature-stack__placeholder {
    position: absolute; inset: 0;
    background:
        radial-gradient(80% 60% at 30% 30%, rgba(244,238,226,0.18), transparent 60%),
        linear-gradient(160deg, var(--dusk-60), var(--mountain-dusk) 50%, var(--ink));
}
.feature-stack__placeholder[data-label]::after {
    content: attr(data-label);
    position: absolute; left: var(--space-4); top: var(--space-4);
    font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase;
    color: rgba(244,238,226,0.55);
    padding: 4px 10px; border: 1px dashed rgba(244,238,226,0.35); border-radius: 999px;
}

/* Desktop: alternate item layout */
@media (min-width: 48rem) {
    .feature-stack__item { grid-template-columns: 1fr 1fr; gap: var(--space-7); }
    .feature-stack__item:nth-child(even) .feature-stack__text  { order: 2; }
    .feature-stack__item:nth-child(even) .feature-stack__visual { order: 1; }
}
@media (min-width: 64rem) {
    .feature-stack__list { gap: var(--space-9); }
    .feature-stack__item { gap: var(--space-9); }
}

/* Reveal states — items visible by default; GSAP or IO fallback controls hidden state */
.feature-stack__item .feature-stack__text,
.feature-stack__item .feature-stack__visual {
    opacity: 1;
}
/* IO fallback: JS adds .is-hidden then removes on intersect */
.feature-stack__item.is-hidden .feature-stack__text {
    opacity: 0; transform: translateY(32px);
}
.feature-stack__item.is-hidden .feature-stack__visual {
    opacity: 0; transform: translateY(28px) scale(0.96);
}
.feature-stack__item .feature-stack__text,
.feature-stack__item .feature-stack__visual {
    transition: opacity 0.9s cubic-bezier(0.22, 0.68, 0, 1.2),
                transform 0.9s cubic-bezier(0.22, 0.68, 0, 1.2);
}


/* --- Trust strip · Swiper marquee -------------------------------------- */
/* trust-strip__marquee */
.trust-strip__header { text-align: center; margin: 0 auto var(--space-5); max-width: 60ch; }
.trust-strip__eyebrow {
    display: block;
    max-width: none;             /* override global p { max-width: 64ch } */
    width: 100%;
    text-align: center;
    color: var(--ochre);
    margin: 0 auto;
}
.trust-strip__marquee {
    width: 100%;
    overflow: hidden;
    padding: var(--space-3) 0;
    /* Fade the edges into the ground for a clean marquee feel */
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
}
.trust-strip__marquee .swiper-wrapper {
    /* Linear timing function makes autoplay feel continuous, not snappy */
    transition-timing-function: linear !important;
    align-items: center;
}
.trust-strip__marquee .swiper-slide {
    width: auto !important;
    display: flex; align-items: center; justify-content: center;
    padding: 0 var(--space-6);
    opacity: 0.78;
    transition: opacity var(--dur-quick) var(--ease);
}
.trust-strip__marquee .swiper-slide:hover { opacity: 1; }
.trust-strip__marquee .trust-item__image {
    max-height: 52px;
    width: auto;
    max-width: 220px;
    object-fit: contain;
    filter: grayscale(0.15);
    transition: filter var(--dur-quick) var(--ease);
    display: block;
}
.trust-strip__marquee .swiper-slide:hover .trust-item__image { filter: grayscale(0); }
.trust-strip__marquee .trust-item__inner {
    display: flex; align-items: center; justify-content: center;
    color: inherit; text-decoration: none;
}
.ground-ink .trust-strip__marquee .trust-item__image,
.ground-mountain-dusk .trust-strip__marquee .trust-item__image {
    filter: brightness(0) invert(1) grayscale(0.1);
}


/* Perspective + overflow support for hero title char-by-char animation */
/* hero-split__title char animation */
.hero-split__title {
    perspective: 800px;
}
.hero-split__title .anim-char {
    display: inline-block;
    will-change: transform, opacity;
}


/* hero-split__cred — credential drops to a smaller second line under the doctor name */
/* hero-split__cred */
.hero-split__cred {
    display: inline-block;
    font-family: var(--font-sans);
    font-weight: 500;
    font-size: 0.4em;                /* proportional to the H1 size */
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--fg-muted);
    vertical-align: baseline;
    margin-top: 0.5em;
}

/* --- HERO_FULL — full-bleed photo hero with dusk overlay ------------------ */
.section--hero-full {
    position: relative;
    display: flex;
    align-items: center;
    min-height: clamp(560px, 86vh, 840px);
    color: var(--cream);
    overflow: hidden;
}
.hero-full__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-repeat: no-repeat;
}
.hero-full__scrim {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to top, rgba(20,24,31,0.55) 0%, rgba(20,24,31,0) 30%),
        linear-gradient(100deg, rgba(20,24,31,0.92) 0%, rgba(26,58,107,0.78) 36%, rgba(26,58,107,0.34) 66%, rgba(20,24,31,0.18) 100%);
}
.hero-full__inner { position: relative; z-index: 1; }
.hero-full__content {
    max-width: 40rem;
    padding: var(--space-9) 0 var(--space-8);
}
.hero-full__badge {
    font-family: var(--font-sans);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--dusk-20);
    margin: 0 0 var(--space-5);
}
.hero-full__badge::before {
    content: "";
    display: inline-block;
    width: 2rem;
    height: 1px;
    background: var(--ochre);
    vertical-align: middle;
    margin-right: var(--space-3);
}
.hero-full__title {
    font-family: var(--font-display);
    font-size: var(--fs-h1);
    font-weight: 400;
    line-height: 1.02;
    margin: 0 0 var(--space-5);
    color: #fff;
}
.hero-full__accent {
    display: block;
    font-style: italic;
    color: var(--ochre);
}
.hero-full__lead {
    font-size: var(--fs-lead);
    line-height: 1.55;
    color: rgba(244,238,226,0.92);
    margin: 0 0 var(--space-6);
    max-width: 36rem;
}
.hero-full__chips {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin: 0 0 var(--space-6);
    padding: 0;
}
.hero-chip {
    display: inline-block;
    padding: 0.45em 1.1em;
    border: 1px solid rgba(244,238,226,0.38);
    border-radius: 999px;
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--cream);
    text-decoration: none;
    transition: background 0.2s ease, border-color 0.2s ease;
}
.hero-chip:hover {
    background: rgba(244,238,226,0.14);
    border-color: rgba(244,238,226,0.7);
}
.hero-full__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    margin: 0 0 var(--space-7);
}
.btn--ochre { background: var(--ochre); color: var(--ink); }
.btn--ochre:hover { background: #b3872c; transform: translateY(-1px); }
.section--hero-full .btn--ghost { color: var(--cream); border-color: rgba(244,238,226,0.5); }
.section--hero-full .btn--ghost:hover { background: var(--cream); color: var(--mountain-dusk); border-color: var(--cream); }
.hero-full__trust {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3) var(--space-6);
    margin: 0;
    padding: var(--space-5) 0 0;
    border-top: 1px solid rgba(244,238,226,0.22);
}
.hero-full__trust li {
    font-family: var(--font-sans);
    font-size: 0.875rem;
    color: rgba(244,238,226,0.85);
}
.hero-full__trust li::before {
    content: "\2713";
    color: var(--ochre);
    margin-right: 0.5em;
}
@media (max-width: 720px) {
    .section--hero-full { min-height: 0; }
    .hero-full__bg { background-position: 72% 20% !important; }
    .hero-full__scrim {
        background:
            linear-gradient(to top, rgba(20,24,31,0.72) 0%, rgba(20,24,31,0.1) 45%),
            linear-gradient(160deg, rgba(20,24,31,0.9) 0%, rgba(26,58,107,0.72) 55%, rgba(26,58,107,0.4) 100%);
    }
    .hero-full__content { padding: var(--space-8) 0 var(--space-7); }
    .hero-full__ctas .btn { width: 100%; text-align: center; }
}

/* --- CARE_PATH_GRID — Riverwoods-style photo cards ------------------------ */
.care-grid {
    list-style: none;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-5);
    margin: 0;
    padding: 0;
}
@media (min-width: 600px) {
    .care-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 960px) {
    .care-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); }
}
.care-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
    border: 1px solid rgba(20, 24, 31, 0.08);
    border-radius: 14px;
    overflow: hidden;
    text-decoration: none;
    color: var(--fg);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.care-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(20, 24, 31, 0.12);
}
.care-card__media {
    aspect-ratio: 4 / 3;
    overflow: hidden;
}
.care-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}
.care-card:hover .care-card__media img { transform: scale(1.04); }
.care-card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: var(--space-5);
}
.care-card__title {
    font-family: var(--font-display);
    font-size: var(--fs-h3);
    font-weight: 400;
    margin: 0 0 var(--space-3);
}
.care-card__text {
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--fg-muted);
    margin: 0 0 var(--space-4);
}
.care-card__link {
    margin-top: auto;
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--mountain-dusk);
}
.care-card__link::after {
    content: "\2192";
    color: var(--ochre);
    margin-left: 0.4em;
    transition: margin-left 0.2s ease;
}
.care-card:hover .care-card__link::after { margin-left: 0.7em; }

/* --- SERVICE_BODY — prose + sticky sidebar -------------------------------- */
.service-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-7);
    align-items: start;
}
@media (min-width: 960px) {
    .service-body { grid-template-columns: minmax(0, 1fr) 22.5rem; gap: var(--space-8); }
    .service-body__sidebar { position: sticky; top: 6.5rem; }
}
.service-block { margin-bottom: var(--space-6); }
.service-block__heading {
    font-family: var(--font-display);
    font-size: var(--fs-h2);
    font-weight: 400;
    margin: 0 0 var(--space-4);
}
.service-block__body {
    font-size: var(--fs-body);
    line-height: 1.65;
    color: var(--fg);
    margin: 0;
    max-width: 60ch;
}
.service-callout {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    background: var(--dusk-10);
    border-radius: 12px;
    padding: var(--space-5) var(--space-6);
    margin: 0 0 var(--space-6);
}
.service-callout__text h3 {
    font-family: var(--font-display);
    font-size: var(--fs-h3);
    font-weight: 400;
    margin: 0 0 var(--space-1);
}
.service-callout__text p { margin: 0; color: var(--fg-muted); font-size: 0.9375rem; }
.sidebar-card {
    background: #fff;
    border: 1px solid rgba(20, 24, 31, 0.08);
    border-radius: 14px;
    padding: var(--space-6);
    margin-bottom: var(--space-5);
}
.sidebar-card--cta {
    background: var(--mountain-dusk);
    border-color: var(--mountain-dusk);
    color: var(--cream);
}
.sidebar-card__heading {
    font-family: var(--font-display);
    font-size: var(--fs-h3);
    font-weight: 400;
    margin: 0 0 var(--space-3);
}
.sidebar-card__heading--small {
    font-family: var(--font-sans);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--fg-muted);
}
.sidebar-card__body { font-size: 0.9375rem; line-height: 1.55; margin: 0 0 var(--space-4); color: inherit; opacity: 0.9; }
.sidebar-card__btn { display: block; text-align: center; width: 100%; margin-bottom: var(--space-3); }
.sidebar-card--cta .btn--ghost { color: var(--cream); border-color: rgba(244,238,226,0.5); }
.sidebar-card--cta .btn--ghost:hover { background: var(--cream); color: var(--mountain-dusk); border-color: var(--cream); }
.sidebar-related { list-style: none; margin: 0; padding: 0; }
.sidebar-related li { border-bottom: 1px solid rgba(20,24,31,0.07); }
.sidebar-related li:last-child { border-bottom: 0; }
.sidebar-related a {
    display: block;
    padding: var(--space-3) 0;
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--mountain-dusk);
    text-decoration: none;
}
.sidebar-related a::before { content: "\2192"; color: var(--ochre); margin-right: 0.5em; }
.sidebar-related a:hover { color: var(--ink); }

/* --- BENEFIT_CHECKLIST ----------------------------------------------------- */
.section--benefit-checklist .section__heading { margin-bottom: var(--space-6); }
.benefit-grid {
    list-style: none;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-3);
    margin: 0;
    padding: 0;
}
@media (min-width: 720px) {
    .benefit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
}
.benefit-pill {
    background: var(--dusk-10);
    border-radius: 10px;
    padding: var(--space-4) var(--space-5);
    font-size: 0.9375rem;
    font-weight: 500;
}
.benefit-pill::before { content: "\2713"; color: var(--ochre); font-weight: 700; margin-right: 0.6em; }

/* --- HERO_FULL compact variant (service pages) ----------------------------- */
.section--hero-full.hero-full--compact { min-height: clamp(420px, 58vh, 620px); }
.hero-full--compact .hero-full__title { font-size: var(--fs-h2); font-size: clamp(2.25rem, 1.6rem + 3vw, 4rem); }
.hero-full--compact .hero-full__content { padding: var(--space-8) 0 var(--space-7); }

/* hero_full without image falls back to dusk band */
.section--hero-full { background: var(--mountain-dusk); }

/* --- Sticky nav glass (Riverwoods-style) ----------------------------------- */
.site-header {
    transition: background 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}
.site-header.is-scrolled {
    background: rgba(244, 238, 226, 0.92);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    box-shadow: 0 8px 24px -16px rgba(20, 24, 31, 0.18);
}

/* --- Page-contrast pass: white ground + section alternation ---------------- */
.ground-white { background: #fff; color: var(--ink); }
.ground-white .sidebar-card { box-shadow: 0 12px 32px -24px rgba(20, 24, 31, 0.3); }
.ground-limestone .benefit-pill { background: #fff; }
.section--faq-split .faq-item {
    background: #fff;
    border: 1px solid rgba(20, 24, 31, 0.08);
    border-bottom: 1px solid rgba(20, 24, 31, 0.08);
    border-radius: 10px;
    margin-bottom: var(--space-3);
}
.section--faq-split .faq-summary { padding: var(--space-4) var(--space-5); }
.section--faq-split .faq-body { padding: 0 var(--space-5) var(--space-4); }

/* --- CONVERSION_BAND centered variant (Riverwoods-style closer) ------------ */
.conversion-band--center {
    display: block;
    text-align: center;
    max-width: 46rem;
    margin-inline: auto;
    padding-block: var(--space-8);
}
.conversion-band--center .conversion-band__eyebrow { letter-spacing: 0.16em; }
.conversion-band--center .conversion-band__body {
    margin-inline: auto;
    max-width: 38rem;
}
.conversion-band--center .conversion-band__ctas { justify-content: center; }

.conversion-band--center {
    background: transparent;
    border-radius: 0;
    min-height: 0;
    grid-template-columns: 1fr;
}
.conversion-band--center .conversion-band__heading,
.conversion-band--center .conversion-band__body { max-width: none; }
.section--conversion-band:has(.conversion-band--center) { padding-block: var(--space-9); }

/* centered closer: same gradient treatment as the site-cta band */
.section--conversion-band:has(.conversion-band--center) {
    position: relative;
    overflow: hidden;
}
.section--conversion-band:has(.conversion-band--center)::before {
    content: ""; position: absolute; inset: 0;
    background:
        radial-gradient(60% 80% at 80% 30%, rgba(244, 238, 226, 0.08), transparent 60%),
        linear-gradient(180deg, var(--dusk-60) 0%, var(--mountain-dusk) 70%, var(--ink) 100%);
}
.section--conversion-band:has(.conversion-band--center) .container { position: relative; z-index: 1; }

.service-card__media--placeholder[data-label=""]::after { display: none; }

/* --- VIDEO_BLOCK ----------------------------------------------------------- */
.section--video-block { padding-block: var(--space-8); }
.video-frame { margin: 0 auto; }
.video-frame--landscape { max-width: 900px; }
.video-frame--portrait { max-width: 400px; }
.video-frame video {
    width: 100%;
    display: block;
    border-radius: var(--radius-lg);
    box-shadow: 0 24px 48px -24px rgba(20, 24, 31, 0.35);
    background: var(--ink);
}
.video-frame__embed { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius-lg); overflow: hidden; box-shadow: 0 24px 48px -24px rgba(20, 24, 31, 0.35); }
.video-frame--portrait .video-frame__embed { aspect-ratio: 9 / 16; }
.video-frame__embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-frame__caption { text-align: center; font-size: 0.875rem; color: var(--fg-muted); margin-top: var(--space-4); }

/* hero_split video media */
.hero-split__video {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 560px;
    margin-inline: auto;
    border-radius: var(--radius-lg);
    box-shadow: 0 24px 48px -24px rgba(20, 24, 31, 0.35);
    background: var(--ink);
}

/* --- adc-social-icons v1 --- */
.site-footer__social-icon { width: 2rem; height: 2rem; padding: 0; }
.site-footer__social-icon svg { width: 1rem; height: 1rem; fill: currentColor; display: block; }
.site-footer__social-icon:hover, .site-footer__social-icon:focus-visible { color: var(--ochre); border-color: var(--ochre); opacity: 1; }
.site-footer__social-icon:hover svg, .site-footer__social-icon:focus-visible svg { fill: var(--ochre); }

/* --- CASE_GALLERY — uncropped before/after figures --------------------------- */
.case-gallery {
    list-style: none;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-5);
    margin: 0;
    padding: 0;
}
@media (min-width: 700px) { .case-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); } }
.case-gallery__fig {
    margin: 0;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(20, 24, 31, 0.08);
}
.case-gallery__fig img { display: block; width: 100%; height: auto; }
.case-gallery__fig figcaption {
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    color: var(--fg-muted);
    padding: var(--space-3) var(--space-4);
}
.case-gallery__footnote {
    font-size: 0.8125rem;
    color: var(--fg-muted);
    margin: var(--space-5) 0 0;
    text-align: center;
}

/* process_band contrast boost */
.process-band__step-title, .process-step__title { color: var(--mountain-dusk); }
.section--process-band .process-band__step-body,
.section--process-band .process-step__body,
.section--process-band p { color: var(--fg); }
.section--process-band .eyebrow,
.process-step__num { color: #8a6a1f; }

/* contact block readability boost */
.contact-grid { font-size: 1.0625rem; }
.contact-grid__label { font-size: 0.8125rem; color: #8a6a1f; }
.contact-grid__address { color: var(--fg); font-size: 1.0625rem; }
.contact-grid a:not(.contact-grid__phone) { color: var(--fg); }
.contact-grid__phone { font-size: 1.625rem; }
.hours__row dt, .hours__row dd { font-size: 1.0625rem; }
.hours__row dd { color: var(--fg); }
.hours__row { border-bottom-color: rgba(20, 24, 31, 0.18); }

/* contact_block readability pass (larger + darker) */
.contact-grid__label { font-size: 0.875rem; font-weight: 600; color: #7a5c15; }
.contact-grid__address,
.contact-grid__hours-row,
.contact-grid dd, .contact-grid dt { font-size: 1.125rem; color: var(--ink); }
.contact-grid__hours-row dt, .contact-grid__hours-row dd { font-weight: 500; }
.contact-grid a:not(.contact-grid__phone) { font-size: 1.125rem; color: var(--mountain-dusk); text-decoration: underline; }
.contact-grid__phone { font-size: 1.875rem; }

/* hours rows: values right-justified even when they wrap */
.hours__row dd { text-align: right; margin-left: auto; max-width: 60%; }
