/* Great Vibes (subset to the wordmark) — self-hosted for the 'Be Well' signature */
@font-face{font-family:'Great Vibes';font-style:normal;font-weight:400;font-display:swap;src:url(data:font/woff2;base64,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) format('woff2');}

/* ==========================================================================
   Bespoke Wellness — styles.css
   Modern · luxury · clean · holistic functional wellness. Mobile-first.
   Palettes and contrast pairs are WCAG 2.1 AA-verified (see docs/RESEARCH.md).
   Palette locked to green-brass on <html data-theme="green-brass">; the preview
   theme switcher (control + JS) has been removed. Other [data-theme] palettes
   remain defined but inert (kept for reference).

   Color-role convention (keeps text AA-compliant):
     --accent      bright brass/gold  → hairlines, icons, big numerals (DECORATIVE, not small text on light)
     --accent-ink  deep gold          → gold-colored TEXT on light backgrounds (eyebrows, links) — passes AA
     --on-accent   dark ink           → text/label ON a gold fill (dark-on-gold passes AA)
     --accent-soft light gold         → gold accents on DARK backgrounds
   ========================================================================== */

/* ---------- Design tokens (shared) ---------- */
:root {
  --maxw: 1180px;
  --gutter: clamp(1.25rem, 4vw, 2.5rem);
  --radius: 18px;
  --radius-sm: 12px;
  --radius-pill: 999px;

  --step--1: clamp(0.82rem, 0.8rem + 0.1vw, 0.9rem);
  --step-0:  clamp(1rem, 0.96rem + 0.2vw, 1.08rem);
  --step-1:  clamp(1.2rem, 1.1rem + 0.5vw, 1.4rem);
  --step-2:  clamp(1.55rem, 1.35rem + 1vw, 2rem);
  --step-3:  clamp(2rem, 1.6rem + 2vw, 3rem);
  --step-4:  clamp(2.6rem, 2rem + 3vw, 4.2rem);

  --space-section: clamp(3.5rem, 8vw, 8rem);

  --shadow-sm: 0 1px 2px rgba(26,34,38,.05), 0 4px 14px rgba(26,34,38,.05);
  --shadow-md: 0 8px 24px rgba(26,34,38,.08), 0 2px 8px rgba(26,34,38,.05);
  --shadow-lg: 0 16px 48px rgba(26,34,38,.14);

  --ease: cubic-bezier(.16,1,.3,1);
  --tr: .35s var(--ease);

  --font-serif: 'Cormorant Garamond', 'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, 'Times New Roman', serif;
  --font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* ---------- Palette 1: Sage & Cream (botanical holistic) — default ---------- */
[data-theme="sage"] {
  --bg: #F6F3EC;
  --surface: #FFFFFF;
  --surface-alt: #E4EAE0;
  --primary: #40584C;
  --primary-deep: #24312A;
  --accent: #B08D57;
  --accent-ink: #7C5E30;
  --accent-soft: #CBB07C;
  --ink: #33352F;
  --muted: #63665C;
  --line: rgba(36,49,42,.13);
  --feature-bg: #24312A;
  --feature-ink: #F6F3EC;
  --feature-muted: #C3CBC0;
  --on-primary: #FFFFFF;
  --on-accent: #24312A;
  --tint: color-mix(in srgb, var(--primary) 8%, var(--surface));
}

/* ---------- Palette 2: Clean White & Champagne (modern clinical-luxe) ---------- */
[data-theme="white-gold"] {
  --bg: #F8F8F6;
  --surface: #FFFFFF;
  --surface-alt: #EDEFEE;
  --primary: #22333B;
  --primary-deep: #1A2226;
  --accent: #C2A15B;
  --accent-ink: #7A5C2E;
  --accent-soft: #D6BC85;
  --ink: #333B3F;
  --muted: #59666E;
  --line: rgba(26,34,38,.12);
  --feature-bg: #1A2226;
  --feature-ink: #F8F8F6;
  --feature-muted: #AEB6BF;
  --on-primary: #FFFFFF;
  --on-accent: #1A2226;
  --tint: color-mix(in srgb, var(--accent) 10%, var(--surface));
}

/* ---------- Palette 3: Vivid Emerald & Brass (elevated) — DEFAULT ----------
   Brighter, more saturated version of Deep Green & Brass. Jewel-tone emerald
   + a warmer, brighter brass. All text pairs verified WCAG 2.1 AA:
     on-primary #FBF8EF on #1E7150 ~5.4:1 · feature-ink on #0F5E3C ~6.7:1
     eyebrow --accent-ink on cream ~4.7:1 · eyebrow--on-dark --accent-soft on emerald ~4.8:1 */
[data-theme="green-brass"] {
  --bg: #F7F3E8;
  --surface: #FFFDF6;
  --surface-alt: #E6EEDE;
  --primary: #1E7150;
  --primary-deep: #124A34;
  --accent: #D4A22C;
  --accent-ink: #7C5A20;
  --accent-soft: #ECC766;
  --ink: #232821;
  --muted: #566150;
  --line: rgba(18,74,52,.16);
  --feature-bg: #0F5E3C;
  --feature-ink: #F3F0E4;
  --feature-muted: #BFD3BE;
  --on-primary: #FBF8EF;
  --on-accent: #123B26;
  --tint: color-mix(in srgb, var(--primary) 9%, var(--surface));
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: var(--step-0);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  transition: background-color .4s var(--ease), color .4s var(--ease);
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }

h1, h2, h3, h4 {
  font-family: var(--font-serif);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: .2px;
  margin: 0 0 .4em;
  color: var(--primary-deep);
}
h1 { font-size: var(--step-4); }
h2 { font-size: var(--step-3); }
h3 { font-size: var(--step-2); }
p { margin: 0 0 1rem; }
:focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 3px; border-radius: 4px; }

/* ---------- Layout helpers ---------- */
.wrap { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-block: var(--space-section); }
.section--alt { background: var(--surface-alt); }
.section--surface { background: var(--surface); }
.measure { max-width: 68ch; }
.eyebrow {
  font-family: var(--font-sans);
  font-size: var(--step--1);
  letter-spacing: .16em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--accent-ink);
  margin: 0 0 1rem;
}
.eyebrow--on-dark { color: var(--accent-soft); }
.section-head { max-width: 46rem; margin-bottom: clamp(2rem, 4vw, 3.4rem); }
.section-head--center { margin-inline: auto; text-align: center; }
.lead { font-size: var(--step-1); color: var(--muted); font-family: var(--font-serif); font-weight: 400; }
.muted { color: var(--muted); }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: .55rem;
  padding: .85rem 1.6rem;
  border-radius: var(--radius-pill);
  font-weight: 600; font-size: var(--step-0); letter-spacing: .01em;
  border: 1px solid transparent;
  transition: transform var(--tr), background-color var(--tr), color var(--tr), box-shadow var(--tr), border-color var(--tr), filter var(--tr);
  will-change: transform;
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }
.btn--primary { background: var(--primary); color: var(--on-primary); box-shadow: var(--shadow-sm); }
.btn--primary:hover { background: var(--primary-deep); box-shadow: var(--shadow-md); }
.btn--gold { background: var(--accent); color: var(--on-accent); box-shadow: var(--shadow-sm); }
.btn--gold:hover { filter: brightness(1.05); box-shadow: var(--shadow-md); }
.btn--ghost { background: transparent; color: var(--primary-deep); border-color: var(--line); }
.btn--ghost:hover { border-color: var(--primary); background: var(--tint); }
.btn--light { background: rgba(255,255,255,.1); color: var(--feature-ink); border-color: rgba(255,255,255,.4); }
.btn--light:hover { background: rgba(255,255,255,.18); }
.btn--lg { padding: 1rem 2.1rem; font-size: var(--step-1); }
.btn .ico { width: 1.05em; height: 1.05em; }

/* ---------- Header / Nav ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--bg) 82%, transparent);
  backdrop-filter: saturate(1.2) blur(12px);
  -webkit-backdrop-filter: saturate(1.2) blur(12px);
  border-bottom: 1px solid transparent;
  transition: border-color var(--tr), background-color var(--tr), box-shadow var(--tr);
}
.site-header.is-stuck { border-bottom-color: var(--line); box-shadow: var(--shadow-sm); }
.topstrip { border-top: 1px solid var(--line); }
.topstrip .wrap { text-align: center; padding-block: .32rem; font-family: var(--font-sans); font-size: .58rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--accent-ink); }
.nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 56px; }
.brand { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; }
.brand__mark { width: 36px; height: 36px; flex: none; color: var(--primary); }
.brand__name { display: flex; flex-direction: column; align-items: center; font-family: var(--font-serif); font-size: 1.32rem; color: var(--primary-deep); font-weight: 600; letter-spacing: .3px; line-height: 1.04; }
.brand__sig { font-family: 'Great Vibes', var(--font-serif); font-weight: 400; font-size: 1.2rem; line-height: 1; color: var(--accent-ink); letter-spacing: 0; margin-top: 1px; }
.nav__links { display: none; align-items: center; gap: 1.7rem; }
.nav__links a { font-size: .95rem; color: var(--ink); font-weight: 500; opacity: .82; transition: opacity var(--tr), color var(--tr); }
.nav__links a:hover { opacity: 1; color: var(--primary-deep); }
.nav__cta { display: none; }
.nav__toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 11px; border: 1px solid var(--line);
  background: var(--surface); color: var(--ink);
}
.nav__toggle svg { width: 20px; height: 20px; }

/* mobile drawer */
.mobile-menu {
  position: fixed; inset: 0; z-index: 60;
  background: var(--bg);
  transform: translateX(100%);
  transition: transform var(--tr);
  display: flex; flex-direction: column;
  padding: var(--gutter);
  visibility: hidden;
}
.mobile-menu.is-open { transform: translateX(0); visibility: visible; }
.mobile-menu__top { display: flex; align-items: center; justify-content: space-between; min-height: 74px; }
.mobile-menu nav { display: flex; flex-direction: column; gap: .25rem; margin-top: 1.5rem; }
.mobile-menu nav a { font-family: var(--font-serif); font-size: 1.7rem; color: var(--primary-deep); padding: .55rem 0; border-bottom: 1px solid var(--line); }
.mobile-menu .btn { margin-top: 1.75rem; justify-content: center; }

@media (min-width: 900px) {
  .nav__links { display: flex; }
  .nav__cta { display: inline-flex; padding: .6rem 1.2rem; font-size: .9rem; }
  .nav__toggle { display: none; }
}

/* ---------- Hero ---------- */
.hero { position: relative; overflow: hidden; padding-block: clamp(1.4rem, 4vw, 2.8rem) clamp(3rem, 6vw, 5rem); }
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background:
    linear-gradient(to bottom, color-mix(in srgb, var(--accent) 12.6%, transparent) 0%, transparent 46%),
    radial-gradient(60% 50% at 15% 108%, color-mix(in srgb, var(--primary) 12%, transparent), transparent 60%);
  pointer-events: none;
}
.hero .wrap { position: relative; z-index: 1; }
.hero__grid { display: grid; gap: clamp(2rem, 5vw, 3.5rem); align-items: center; }
.hero__title { margin-bottom: 1.1rem; }
.hero__sub { font-size: var(--step-1); color: var(--muted); max-width: 34rem; margin-bottom: 1.8rem; }
.hero__cta { display: flex; flex-wrap: wrap; gap: .8rem; margin-bottom: 1.8rem; }
.hero__trust { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; font-size: .84rem; color: var(--muted); font-weight: 500; }
.hero__trust span { display: inline-flex; align-items: center; gap: .4rem; }
.hero__trust .dot { width: 5px; height: 5px; border-radius: 50%; background: var(--accent); }
.hero__media { position: relative; }
.hero__badge {
  position: absolute; left: -6px; bottom: 18px;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md); padding: .8rem 1.05rem; display: flex; gap: .7rem; align-items: center;
  max-width: 15rem;
}
.hero__badge .ico { color: var(--accent); width: 26px; height: 26px; flex: none; }
.hero__badge b { font-family: var(--font-serif); font-size: 1.15rem; color: var(--primary-deep); display: block; }
.hero__badge span { font-size: .8rem; color: var(--muted); line-height: 1.3; display: block; }

@media (min-width: 940px) { .hero__grid { grid-template-columns: 1.05fr .95fr; } }

/* ---------- Trust strip ---------- */
.trust { border-block: 1px solid var(--line); background: var(--surface); }
.trust__row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.4rem 1rem; padding-block: 1.8rem; }
.trust__item { display: flex; gap: .7rem; align-items: center; font-weight: 500; font-size: .9rem; }
.trust__item .ico { width: 26px; height: 26px; color: var(--accent); flex: none; }
@media (min-width: 800px) { .trust__row { grid-template-columns: repeat(4, 1fr); } }

/* ---------- Cards / grids ---------- */
.grid { display: grid; gap: clamp(1rem, 2.5vw, 1.6rem); }
.grid--2 { grid-template-columns: 1fr; }
.grid--3 { grid-template-columns: 1fr; }
.grid--4 { grid-template-columns: 1fr; }
@media (min-width: 640px) { .grid--2 { grid-template-columns: 1fr 1fr; } .grid--4 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 900px) { .grid--3 { grid-template-columns: repeat(3, 1fr); } .grid--4 { grid-template-columns: repeat(4, 1fr); } }

.card {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 1.7rem; box-shadow: var(--shadow-sm);
  transition: transform var(--tr), box-shadow var(--tr), border-color var(--tr);
  display: flex; flex-direction: column;
}
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: color-mix(in srgb, var(--primary) 30%, var(--line)); }
.card__icon {
  width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center;
  background: var(--tint); color: var(--primary); margin-bottom: 1.15rem;
  border: 1px solid color-mix(in srgb, var(--accent) 40%, transparent);
}
.card__icon svg { width: 28px; height: 28px; }
.card h3 { font-size: var(--step-1); margin-bottom: .4rem; }
.card p { color: var(--muted); font-size: .96rem; margin-bottom: 1rem; }
.card__meta { font-size: .82rem; color: var(--muted); margin: .2rem 0 1rem; }
.card__link { margin-top: auto; color: var(--accent-ink); font-weight: 600; font-size: .92rem; display: inline-flex; align-items: center; gap: .35rem; }
.card__link .ico { width: 1em; height: 1em; transition: transform var(--tr); }
.card__link:hover .ico { transform: translateX(3px); }

/* ---------- Tabs (hormones for men / women) ---------- */
.tabs__head { display: inline-flex; gap: .25rem; padding: .3rem; background: var(--surface-alt); border-radius: var(--radius-pill); margin-bottom: 2rem; }
.tab-btn {
  border: none; background: transparent; color: var(--muted); font-weight: 600;
  padding: .6rem 1.5rem; border-radius: var(--radius-pill); transition: background-color var(--tr), color var(--tr);
}
.tab-btn[aria-selected="true"] { background: var(--surface); color: var(--primary-deep); box-shadow: var(--shadow-sm); }
.tab-panel[hidden] { display: none; }
.tab-panel { animation: fade .4s var(--ease); }
@keyframes fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ---------- Steps (how it works) ---------- */
.steps { counter-reset: step; display: grid; gap: 1.2rem; }
@media (min-width: 900px) { .steps { grid-template-columns: repeat(4, 1fr); } }
.step { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.7rem; }
.step__num {
  counter-increment: step;
  font-family: var(--font-serif); font-size: 2.6rem; color: var(--accent); line-height: 1; margin-bottom: .5rem;
}
.step__num::before { content: counter(step, decimal-leading-zero); }
.step h3 { font-size: var(--step-1); margin-bottom: .35rem; }
.step p { color: var(--muted); font-size: .93rem; margin: 0; }

/* ---------- Feature (dark) ---------- */
.feature { background: var(--feature-bg); color: var(--feature-ink); border-radius: clamp(20px, 3vw, 32px); overflow: hidden; }
.feature .wrap { padding-block: clamp(3rem, 6vw, 5rem); }
.feature h2 { color: var(--feature-ink); }
.feature .lead { color: var(--feature-muted); }
.feature__grid { display: grid; gap: 2rem; align-items: center; }
@media (min-width: 900px) { .feature__grid { grid-template-columns: 1.05fr .95fr; } }
.pillars { display: grid; gap: 1.3rem; }
.pillar { display: flex; gap: 1rem; }
.pillar .ico { width: 30px; height: 30px; color: var(--accent-soft); flex: none; margin-top: 2px; }
.pillar h4 { color: var(--feature-ink); font-size: 1.3rem; margin-bottom: .25rem; }
.pillar p { color: var(--feature-muted); margin: 0; font-size: .95rem; }

/* ---------- Providers ---------- */
.provider { text-align: center; align-items: center; }
.provider .avatar { margin-bottom: 1.1rem; }
.provider h3 { margin-bottom: .1rem; }
.provider .role { color: var(--accent-ink); font-weight: 600; font-size: .9rem; letter-spacing: .03em; margin-bottom: .8rem; }
.provider p { font-size: .95rem; }
.provider .provider__bio { text-align: left; font-size: .92rem; line-height: 1.62; color: var(--muted); }
.provider .tag { display: inline-block; margin-top: .6rem; font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); border: 1px dashed var(--line); border-radius: var(--radius-pill); padding: .25rem .8rem; }

/* ---------- Pricing ---------- */
.price-grid { display: grid; gap: 1.4rem; max-width: 760px; margin-inline: auto; }
@media (min-width: 720px) { .price-grid { grid-template-columns: 1fr 1fr; } }
.price {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 2.1rem 1.9rem; text-align: center;
  position: relative; box-shadow: var(--shadow-sm);
}
.price--feature { border-color: var(--accent); box-shadow: var(--shadow-md); }
.price__tag { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); background: var(--accent); color: var(--on-accent); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; padding: .3rem .9rem; border-radius: var(--radius-pill); }
.price h3 { font-size: var(--step-1); margin-bottom: .2rem; }
.price .amount { font-family: var(--font-serif); font-size: 3.6rem; color: var(--primary-deep); line-height: 1; margin: .5rem 0 .2rem; }
.price .per { color: var(--muted); font-size: .95rem; }
.price ul { list-style: none; padding: 0; margin: 1.3rem 0 0; text-align: left; display: grid; gap: .55rem; }
.price li { display: flex; gap: .6rem; align-items: flex-start; font-size: .92rem; }
.price li .ico { width: 18px; height: 18px; color: var(--primary); flex: none; margin-top: 4px; }
.price-note { text-align: center; color: var(--muted); margin-top: 1.6rem; font-size: .92rem; }

/* Pricing as a sequence: Step 1 (initial) -> Step 2 (ongoing) */
/* Two visits shown as ONE unified price list (both are part of the price):
   a single panel holding two detailed halves, split by a divider — no connector. */
.price-steps {
  max-width: 820px; margin-inline: auto;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow-md); overflow: hidden;
  display: grid; grid-template-columns: 1fr;
}
@media (min-width: 760px) { .price-steps { grid-template-columns: 1fr 1fr; } }
.price-steps .price { background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.price-steps .price + .price { border-top: 1px solid var(--line); }
@media (min-width: 760px) { .price-steps .price + .price { border-top: 0; border-left: 1px solid var(--line); } }
.price__badge { display: inline-block; background: var(--tint); color: var(--accent-ink); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; padding: .32rem .85rem; border-radius: var(--radius-pill); margin-bottom: .9rem; border: 1px solid var(--line); }

/* ---------- Checklist (labs) ---------- */
.checklist { display: grid; gap: 1.1rem; padding: 0; margin: 0; }
.checklist li { display: flex; gap: .8rem; align-items: flex-start; list-style: none; }
.checklist .ico { width: 26px; height: 26px; color: var(--accent); flex: none; margin-top: 2px; }
.checklist b { color: var(--primary-deep); }

/* ---------- FAQ ---------- */
.faq { max-width: 820px; margin-inline: auto; }
.faq__item { border-bottom: 1px solid var(--line); }
.faq__q { width: 100%; text-align: left; background: none; border: none; padding: 1.3rem 0; display: flex; justify-content: space-between; gap: 1rem; align-items: center; font-family: var(--font-serif); font-size: 1.35rem; color: var(--primary-deep); }
.faq__q .ico { width: 22px; height: 22px; color: var(--accent-ink); flex: none; transition: transform var(--tr); }
.faq__q[aria-expanded="true"] .ico { transform: rotate(45deg); }
.faq__a { overflow: hidden; max-height: 0; transition: max-height var(--tr); }
.faq__a > div { padding-bottom: 1.3rem; color: var(--muted); }
.faq__a p { margin-bottom: .6rem; }

/* ---------- Contact ---------- */
.contact-grid { display: grid; gap: 1.6rem; }
@media (min-width: 860px) { .contact-grid { grid-template-columns: 1.05fr .95fr; } }
.contact-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 2rem; box-shadow: var(--shadow-sm); }
.contact-list { display: grid; gap: 1.1rem; margin-top: 1.4rem; }
.contact-list a, .contact-list p { display: flex; gap: .8rem; align-items: center; margin: 0; font-weight: 500; }
.contact-list .ico { width: 24px; height: 24px; color: var(--accent); flex: none; }
.notice { font-size: .82rem; color: var(--muted); background: var(--tint); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: .85rem 1rem; margin-top: 1.2rem; display: flex; gap: .6rem; }
.notice .ico { width: 18px; height: 18px; color: var(--accent-ink); flex: none; margin-top: 2px; }

/* ---------- Media placeholders ---------- */
.media {
  position: relative; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--primary) 20%, var(--surface)) 0%, color-mix(in srgb, var(--accent) 24%, var(--surface)) 100%);
  display: grid; place-items: center; min-height: 220px;
}
.media--hero { aspect-ratio: 4/5; min-height: 340px; }
.media--wide { aspect-ratio: 16/10; }
.media__deco { position: absolute; inset: 0; opacity: .5; color: color-mix(in srgb, var(--primary) 55%, transparent); }
.media__art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.media__label { position: relative; z-index: 1; font-size: .76rem; letter-spacing: .03em; color: var(--ink); background: color-mix(in srgb, var(--surface) 82%, transparent); padding: .35rem .8rem; border-radius: var(--radius-pill); backdrop-filter: blur(2px); max-width: 82%; text-align: center; }
.avatar {
  width: 132px; height: 132px; border-radius: 50%; border: 1px solid var(--line);
  background: linear-gradient(150deg, color-mix(in srgb, var(--primary) 26%, var(--surface)), color-mix(in srgb, var(--accent) 28%, var(--surface)));
  display: grid; place-items: center; color: color-mix(in srgb, var(--primary) 62%, transparent);
}
.avatar svg { width: 54px; height: 54px; }
.avatar--photo { background: none; padding: 0; overflow: hidden; box-shadow: 0 6px 20px -10px color-mix(in srgb, var(--primary-deep) 55%, transparent); }
.avatar--photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }

/* ---------- Footer ---------- */
.site-footer { background: var(--feature-bg); color: var(--feature-muted); padding-block: clamp(3rem, 6vw, 4.5rem) 2rem; }
.footer__grid { display: grid; gap: 2rem; }
@media (min-width: 780px) { .footer__grid { grid-template-columns: 1.9fr 1fr 1fr; } }
.site-footer .brand, .site-footer h4 { color: var(--feature-ink); }
.site-footer .brand__mark { color: var(--accent-soft); }
.site-footer .brand__name { color: var(--feature-ink); }
.site-footer .brand__sig { color: var(--accent-soft); }
.site-footer h4 { font-family: var(--font-sans); font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 1rem; }
.footer__mission { max-width: 34ch; font-size: .92rem; margin-top: 1rem; }
.footer__links { display: grid; gap: .6rem; list-style: none; padding: 0; margin: 0; }
.footer__links a:hover { color: var(--feature-ink); }
.footer__bottom { border-top: 1px solid rgba(255,255,255,.14); margin-top: 2.5rem; padding-top: 1.5rem; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; font-size: .82rem; }
.footer__credit { margin-top: 1rem; font-size: .76rem; color: var(--feature-muted); opacity: .78; }
.footer__credit a { color: var(--feature-muted); text-decoration: underline; text-underline-offset: 2px; }
.footer__credit a:hover { color: var(--feature-ink); }
.disclaimer { font-size: .78rem; line-height: 1.65; color: var(--feature-muted); opacity: .9; margin-top: 1.2rem; max-width: 80ch; }
.disclaimer + .disclaimer { margin-top: .6rem; }

/* ---------- Scroll reveal ---------- */
.reveal { opacity: 0; transform: translateY(20px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }

/* ---------- Legal pages ---------- */
.legal { max-width: 780px; }
.legal h2 { font-size: var(--step-2); margin-top: 2.4rem; }
.legal h1 { margin-bottom: .3rem; }
.legal .updated { color: var(--muted); font-size: .9rem; margin-bottom: 2rem; }
.legal p, .legal li { color: var(--ink); }
.legal ul { padding-left: 1.2rem; }
.legal li { margin-bottom: .4rem; }
.legal .callout { background: var(--tint); border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: var(--radius-sm); padding: 1rem 1.2rem; margin: 1.5rem 0; font-size: .95rem; }
.back-link { display: inline-flex; align-items: center; gap: .4rem; color: var(--accent-ink); font-weight: 600; margin-bottom: 2rem; }

.skip-link { position: absolute; left: -9999px; top: 0; background: var(--primary); color: var(--on-primary); padding: .7rem 1.1rem; border-radius: 0 0 8px 0; z-index: 100; }
.skip-link:focus { left: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
