/* Artigos ricos do blog — CSS integral do handover da cliente (blogs/, 3 ago).
   4 blocos na ordem do arquivo dela: design system, add-ons, layout article-*,
   extras. Carrega SO em posts com template-parts/articles/<slug>.php. */


/* ═══ bloco 1: design system ═══ */

/* ════════════════════════════════════════════════════════ */
/* LUXURY EDITORIAL DESIGN SYSTEM v40 · REFINED             */
/* Body Dezign House: Cheek Volume & Midface               */
/* ════════════════════════════════════════════════════════ */

:root {
  /* ─── Surface palette ─────────────────────────────────── */
  --cream:#FAF7F2;
  --cream-mid:#F5EFE5;
  --cream-dark:#EDE4D6;
  --white:#FEFCF8;

  /* ─── Gold scale: distinct tiers for distinct uses ──── */
  --gold:#C9A96E;          /* Decorative only: borders, dividers, rules */
  --gold-light:#DEC28E;    /* Soft fills, gradients */
  --gold-pale:#F2E5CC;     /* Quote washes, ornament backgrounds */
  --gold-deep:#8B6F3F;     /* Mid accent text: links, hover, body inline */
  --gold-ink:#735831;      /* Small all-caps labels on cream · ~7:1 ✓ */
  --gold-bronze:#5C4A28;   /* Reserved high-contrast accent */

  /* ─── Ink scale: deepened for editorial crispness ───── */
  --charcoal:#2A2420;
  --text-primary:#1E1A17;  /* Headings (was #2A2420) */
  --text-body:#2D2622;     /* Body (was #3D3229, warmer, more legible) */
  --text-sub:#4A3D32;      /* Subdued ink, italic asides (was #5C4A3A) */
  --text-muted:#6B5949;    /* Captions, micro-meta */

  /* ─── Footer surface (cream-on-cream) ────────────────── */
  --footer-bg-from:#F5EFE5;
  --footer-bg-to:#EFE7D9;

  /* ─── Type scale: refined ───────────────────────────── */
  --fs-xs:13px;
  --fs-sm:14.5px;
  --fs-base:17.5px;
  --fs-md:21px;
  --fs-lg:28px;
  --fs-xl:clamp(34px, 5.2vw, 56px);
  --fs-2xl:clamp(48px, 6.6vw, 82px);

  /* Letter-spacing: restrained, premium                    */
  --ls-tight:-0.012em;
  --ls-snug:0.005em;
  --ls-wide:0.06em;
  --ls-wider:0.12em;
  --ls-widest:0.22em;       /* All-caps labels (was 0.32–0.42em) */

  /* Line-height                                             */
  --lh-tight:1.15;
  --lh-snug:1.28;
  --lh-base:1.65;
  --lh-loose:1.78;

  /* Spacing rhythm                                          */
  --sp-section:clamp(64px, 8vw, 104px);
  --sp-section-tight:clamp(44px, 6vw, 72px);

  --transition:all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease:cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

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

html {
  scroll-behavior:smooth;
  scroll-padding-top:132px;
  -webkit-text-size-adjust:100%;
}
.skip-link { scroll-behavior:auto; }

body {
  font-family:'Nunito Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background:var(--cream);
  color:var(--text-body);
  font-size:var(--fs-base);
  line-height:var(--lh-base);
  letter-spacing:0.005em;
  overflow-x:hidden;
  /* antialiased/grayscale smoothing thinned every stroke on macOS and iOS,
     which is what made the type look faded. Left at the browser default. */
  -webkit-font-smoothing:auto;
  -moz-osx-font-smoothing:auto;
  text-rendering:optimizeLegibility;
  font-feature-settings:"liga","kern","calt";
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
}

a:focus-visible, button:focus-visible {
  outline:2px solid var(--gold-deep);
  outline-offset:3px;
  border-radius:2px;
}

.skip-link {
  position:absolute; top:-100px; left:0;
  background:var(--charcoal); color:var(--cream);
  padding:14px 22px; z-index:10000;
  text-decoration:none; font-size:var(--fs-sm); font-weight:700;
}
.skip-link:focus { top:0; }

/* ─── AGE NOTICE BAR · AHPRA/TGA compliance gateway ─── */
.age-bar {
  background:var(--cream-mid);
  color:var(--text-body);
  font-size:14px;
  text-align:center;
  padding:14px 40px;
  line-height:1.55;
  border-bottom:1px solid rgba(115,88,49,0.16);
  font-weight:500;
  letter-spacing:0.005em;
}
.age-bar strong {
  color:var(--charcoal);
  font-weight:700;
  margin-right:5px;
}
@media (max-width:768px) {
  .age-bar { font-size:13px; padding:12px 18px; line-height:1.5; }
}

/* ─── HEADER ──────────────────────────────────────────── */
.site-header {
  position:sticky; top:0; z-index:1000;
  background:var(--white);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(115,88,49,0.14);
  transition:box-shadow 0.3s;
}
.site-header.scrolled { box-shadow:0 6px 30px rgba(42,36,32,0.08); }

.header-inner {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  max-width:1440px;
  margin:0 auto;
  padding:0 40px;
  height:84px;
}

.site-logo { text-align:center; text-decoration:none; }
.site-logo .wordmark {
  font-family:'Cormorant Garamond', serif;
  font-size:26px; font-weight:500;
  letter-spacing:0.14em;
  color:var(--text-primary);
  text-transform:uppercase;
  display:block;
  line-height:1.1;
}
.site-logo .sub-line {
  font-size:11px;
  letter-spacing:0.26em;
  color:var(--gold-ink);
  text-transform:uppercase;
  display:block;
  margin-top:4px;
  font-weight:700;
}

.phone-link {
  font-size:var(--fs-sm);
  letter-spacing:var(--ls-wide);
  color:var(--text-sub);
  text-decoration:none;
  font-weight:700;
  text-transform:uppercase;
  transition:color 0.3s var(--ease);
  display:inline-flex; align-items:center; gap:8px;
}
.phone-link:hover { color:var(--gold-ink); }
.phone-link svg { width:15px; height:15px; }

.header-right { display:flex; justify-content:flex-end; align-items:center; gap:24px; }

.btn-book {
  background:var(--charcoal);
  color:var(--cream);
  font-size:var(--fs-sm);
  font-weight:700;
  letter-spacing:var(--ls-wide);
  text-transform:uppercase;
  padding:14px 30px;
  text-decoration:none;
  border:1.5px solid var(--charcoal);
  transition:var(--transition);
  cursor:pointer;
  display:inline-block;
}
.btn-book:hover { background:transparent; color:var(--charcoal); }

.hamburger {
  display:none; background:none; border:none; cursor:pointer;
  padding:8px; flex-direction:column; gap:5px;
  min-width:44px; min-height:44px;
  align-items:center; justify-content:center;
}
.hamburger span {
  display:block; width:22px; height:1.8px;
  background:var(--charcoal);
  transition:transform 0.3s, opacity 0.3s;
}

@media (max-width:900px) {
  .header-inner { padding:0 20px; height:72px; }
  .hamburger { display:flex; }
  .phone-link { display:inline-flex; gap:0; padding:8px; }
  .phone-link .phone-text { display:none; }
  .phone-link svg { width:20px; height:20px; }
  .header-right { gap:14px; }
  .btn-book { padding:11px 20px; font-size:13px; letter-spacing:0.08em; }
  .site-logo .wordmark { font-size:21px; letter-spacing:0.12em; }
  .site-logo .sub-line { font-size:10px; letter-spacing:0.24em; }
}
@media (max-width:560px) {
  .header-inner { padding:0 14px; height:60px; }
  .header-right { gap:8px; }
  .site-logo .wordmark { font-size:14px; letter-spacing:0.05em; white-space:nowrap; }
  .site-logo .sub-line { font-size:10px; letter-spacing:0.16em; margin-top:3px; }
  .btn-book { padding:9px 13px; font-size:11.5px; letter-spacing:0.06em; }
  .btn-book-extra { display:none; }
  .phone-link { display:none; }
  .hamburger { padding:6px; min-width:40px; min-height:40px; }
  .anchor-nav { top:60px; }
}

/* ─── Utility: screen-reader-only ────────────────────── */
.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;
}

/* ════════════════════════════════════════════════════════
   SEARCH MODULE  ·  WordPress-ready, mobile-first
   ────────────────────────────────────────────────────────
   • Form posts to "/" with name="s"  → native WP search.
   • Works WITHOUT JavaScript (progressive enhancement).
   • iOS-safe scroll lock (position:fixed on body).
   • Live results via WP REST API: /wp-json/wp/v2/search
   • Focus-trapped modal · Esc / Cmd+K / Ctrl+K shortcuts.
   • Touch targets ≥40px on every breakpoint.
   ════════════════════════════════════════════════════════ */

/* ─── HEADER LEFT cluster (hamburger + search) ───────── */
.header-left {
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;            /* allow flex children to shrink */
}

/* ─── SEARCH BUTTON · circular icon in header ────────── */
.search-btn {
  width:42px; height:42px;
  border-radius:50%;
  background:transparent;
  border:1.5px solid rgba(115,88,49,0.28);
  color:var(--text-sub);
  display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer;
  padding:0;
  flex-shrink:0;
  transition:var(--transition);
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;     /* eliminate 300ms tap delay on iOS */
  appearance:none;
  -webkit-appearance:none;
  font:inherit;
}
.search-btn svg {
  width:18px; height:18px;
  transition:transform 0.3s var(--ease);
}
.search-btn:hover {
  border-color:var(--gold-deep);
  background:var(--gold-pale);
  color:var(--gold-ink);
}
.search-btn:hover svg { transform:scale(1.06); }
.search-btn:focus-visible {
  outline:2px solid var(--gold-deep);
  outline-offset:3px;
}
.search-btn.is-active {
  background:var(--charcoal);
  border-color:var(--charcoal);
  color:var(--cream);
}

/* ─── SEARCH BACKDROP · dims page behind modal ───────── */
.search-backdrop {
  position:fixed; inset:0;
  background:rgba(30,26,23,0.32);
  z-index:1099;
  opacity:0;
  visibility:hidden;
  transition:opacity 0.3s var(--ease), visibility 0.3s var(--ease);
}
.search-backdrop.is-open { opacity:1; visibility:visible; }

/* ─── SEARCH OVERLAY · slides down from top ──────────── */
.search-overlay {
  position:fixed;
  top:0; left:0; right:0;
  max-height:100dvh;            /* dynamic vh: respects mobile UI chrome */
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  background:rgba(254,252,248,0.99);
  -webkit-backdrop-filter:blur(20px);
  backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(115,88,49,0.16);
  box-shadow:0 14px 44px rgba(42,36,32,0.10);
  z-index:1100;
  transform:translateY(-100%);
  opacity:0;
  visibility:hidden;
  transition:transform 0.4s var(--ease), opacity 0.3s var(--ease), visibility 0.4s var(--ease);
}
.search-overlay.is-open {
  transform:translateY(0);
  opacity:1;
  visibility:visible;
}
.search-overlay-inner {
  max-width:880px;
  margin:0 auto;
  padding:36px 40px 28px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.search-label {
  font-family:'Cormorant Garamond', serif;
  font-size:12px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
}

/* Native <form> so submission works without JS. */
.search-form {
  display:flex;
  align-items:center;
  gap:14px;
  border-bottom:1.5px solid rgba(115,88,49,0.30);
  padding-bottom:14px;
  transition:border-color 0.3s var(--ease);
  margin:0;
}
.search-form:focus-within { border-color:var(--gold-deep); }
.search-form .search-icon {
  width:22px; height:22px;
  color:var(--gold-ink);
  flex-shrink:0;
}
.search-input {
  flex:1; min-width:0;          /* min-width:0 lets flex item shrink properly */
  background:transparent;
  border:none;
  outline:none;
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(20px, 3vw, 32px);
  color:var(--text-primary);
  letter-spacing:0.01em;
  padding:6px 0;
  font-weight:500;
  width:100%;
  -webkit-appearance:none;
  appearance:none;
  border-radius:0;              /* iOS adds rounding to inputs */
}
.search-input::placeholder {
  color:var(--text-muted);
  font-style:italic;
  font-weight:400;
}
/* Strip Safari/Chrome's built-in clear button : we have our own UI */
.search-input::-webkit-search-cancel-button,
.search-input::-webkit-search-decoration {
  -webkit-appearance:none;
  appearance:none;
}

.search-close {
  background:none; border:none; cursor:pointer;
  color:var(--text-sub);
  padding:8px;
  min-width:40px; min-height:40px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%;
  transition:var(--transition);
  flex-shrink:0;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.search-close:hover { color:var(--gold-ink); background:var(--cream-mid); }
.search-close svg { width:20px; height:20px; }

.search-hint {
  font-size:12.5px;
  color:var(--text-muted);
  letter-spacing:0.04em;
  display:flex; flex-wrap:wrap; gap:6px 10px;
  align-items:center;
}
.search-hint kbd {
  font-family:'Nunito Sans', -apple-system, sans-serif;
  font-size:11px;
  background:var(--cream-mid);
  color:var(--text-sub);
  padding:2px 7px;
  border-radius:3px;
  border:1px solid rgba(115,88,49,0.18);
  font-weight:700;
  margin:0 2px;
  white-space:nowrap;
}
/* Hide the keyboard-shortcut hints on touch devices : irrelevant there. */
@media (hover:none) and (pointer:coarse) {
  .search-hint .kbd-shortcut { display:none; }
}

/* ─── LIVE RESULTS panel ─────────────────────────────── */
.search-results {
  display:none;
  flex-direction:column;
  gap:2px;
  margin-top:6px;
  max-height:60dvh;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.search-results.is-visible { display:flex; }
.search-results-heading {
  font-size:11px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  padding:14px 4px 6px;
  display:flex; justify-content:space-between; align-items:center;
}
.search-result-item {
  display:block;
  padding:14px 12px;
  text-decoration:none;
  color:var(--text-body);
  border-radius:4px;
  border:1px solid transparent;
  transition:background 0.18s var(--ease), border-color 0.18s var(--ease);
}
.search-result-item:hover,
.search-result-item:focus-visible,
.search-result-item.is-active {
  background:var(--cream-mid);
  border-color:rgba(115,88,49,0.18);
  outline:none;
}
.search-result-title {
  font-family:'Cormorant Garamond', serif;
  font-size:18px;
  font-weight:600;
  color:var(--text-primary);
  letter-spacing:var(--ls-tight);
  line-height:1.3;
  display:block;
  margin-bottom:2px;
}
.search-result-title mark {
  background:var(--gold-pale);
  color:var(--text-primary);
  padding:0 2px;
  border-radius:2px;
}
.search-result-meta {
  font-size:12px;
  color:var(--text-muted);
  letter-spacing:var(--ls-wide);
  text-transform:uppercase;
}
.search-state {
  padding:18px 4px;
  color:var(--text-muted);
  font-size:14.5px;
  font-style:italic;
}
.search-state-error { color:#8a4030; }

/* Recent / popular pill chips (shown when input is empty) */
.search-chips {
  display:flex; flex-wrap:wrap; gap:8px;
  padding:6px 0 0;
}
.search-chip {
  background:var(--cream-mid);
  border:1px solid rgba(115,88,49,0.22);
  color:var(--text-sub);
  font-size:13px;
  letter-spacing:0.02em;
  padding:7px 14px;
  border-radius:999px;
  cursor:pointer;
  font-family:inherit;
  transition:var(--transition);
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.search-chip:hover {
  background:var(--gold-pale);
  border-color:var(--gold-deep);
  color:var(--gold-ink);
}

/* When modal is open, lock background scroll (JS sets body[data-search-open]).
   The position:fixed trick works on iOS where overflow:hidden does not. */
body[data-search-open="true"] {
  position:fixed;
  width:100%;
  overflow:hidden;
}

/* ─── Responsive ─────────────────────────────────────── */
@media (max-width:900px) {
  .header-left { gap:6px; }
  .search-btn { width:40px; height:40px; }
  .search-btn svg { width:17px; height:17px; }
  .search-overlay-inner { padding:24px 20px 22px; gap:10px; }
  .search-result-title { font-size:17px; }
}
@media (max-width:560px) {
  /* Keep search visible on phones. Shrink button just enough so the
     hamburger + search + logo + phone + Book all fit at 320px. */
  .header-left { gap:4px; }
  .search-btn { width:38px; height:38px; }
  .search-btn svg { width:16px; height:16px; }
  .search-overlay-inner { padding:18px 16px 18px; gap:8px; }
  .search-form { gap:10px; padding-bottom:12px; }
  .search-form .search-icon { width:18px; height:18px; }
  .search-input {
    font-size:18px;             /* MUST be ≥16px to prevent iOS auto-zoom */
    padding:8px 0;
  }
  .search-close { min-width:36px; min-height:36px; padding:6px; }
  .search-close svg { width:18px; height:18px; }
  .search-label { font-size:11px; }
  .search-hint { font-size:11.5px; }
  .search-result-item { padding:12px 10px; }
  .search-result-title { font-size:16px; }
}
@media (max-width:360px) {
  /* Last-resort breakpoint for very narrow viewports (iPhone SE 1st gen, etc.) */
  .header-left { gap:2px; }
  .search-btn { width:36px; height:36px; }
}

/* ─── MAIN NAV ────────────────────────────────────────── */
.main-nav {
  position:relative;
  background:var(--white);
  border-bottom:1px solid rgba(115,88,49,0.14);
}
.nav-inner {
  max-width:1440px; margin:0 auto;
  padding:0 40px;
  display:flex; justify-content:center; flex-wrap:wrap;
}
.nav-item { position:relative; }
.nav-item > a {
  display:block;
  padding:15px 18px;
  font-size:var(--fs-sm);
  font-weight:700;
  letter-spacing:var(--ls-wide);
  text-transform:uppercase;
  color:var(--text-sub);
  text-decoration:none;
  transition:color 0.3s var(--ease);
  white-space:nowrap;
}
.nav-item > a:hover { color:var(--gold-ink); }

.nav-arrow-icon {
  display:inline-block;
  margin-left:4px;
  font-size:10px;
  opacity:0.6;
  transition:transform 0.25s ease;
}
.nav-item:hover .nav-arrow-icon { transform:translateY(2px); opacity:1; }

.dropdown {
  display:none; position:absolute; top:100%; left:0;
  min-width:260px; background:var(--white);
  border:1px solid rgba(115,88,49,0.14);
  border-top:3px solid var(--gold);
  box-shadow:0 20px 50px rgba(42,36,32,0.12);
  z-index:999; padding:14px 0;
}
.nav-item:hover .dropdown { display:block; }
.dropdown a {
  display:block; padding:11px 26px;
  font-size:var(--fs-sm);
  color:var(--text-body);
  text-decoration:none;
  font-weight:500;
  letter-spacing:0.01em;
  transition:var(--transition);
}
.dropdown a:hover {
  color:var(--gold-ink);
  background:rgba(250,247,242,0.6);
}

/* ─── MEGA MENU ───────────────────────────────────────── */
.nav-item.has-mega { position:static; }
.mega-dropdown {
  display:none; position:absolute; top:100%; left:50%;
  transform:translateX(-50%);
  width:1120px; max-width:calc(100vw - 40px);
  background:var(--white);
  border:1px solid rgba(115,88,49,0.14);
  border-top:3px solid var(--gold);
  box-shadow:0 30px 80px rgba(42,36,32,0.14);
  z-index:999; padding:0;
}
.nav-item.has-mega:hover .mega-dropdown { display:block; }
.mega-grid {
  display:grid; grid-template-columns:repeat(3, 1fr);
  padding:44px 56px 36px; gap:0;
}
.mega-col {
  display:flex; flex-direction:column;
  padding:0 32px;
  border-left:1px solid rgba(115,88,49,0.10);
}
.mega-col:first-child { padding-left:0; border-left:none; }
.mega-col:last-child { padding-right:0; }
.mega-section { margin-bottom:28px; }
.mega-section:last-child { margin-bottom:0; }
.mega-heading {
  display:inline-block;
  font-family:'Cormorant Garamond', serif;
  font-size:22px; font-weight:500;
  line-height:1.2; letter-spacing:0.005em;
  color:var(--charcoal);
  margin:0 0 16px;
  padding:0 0 10px;
  border-bottom:1px solid var(--gold);
  min-width:88px;
}
.mega-col a {
  display:block;
  padding:9px 0;
  font-family:'Nunito Sans', sans-serif;
  font-size:14.5px;
  font-weight:500;
  color:var(--text-body);
  text-decoration:none;
  transition:all 0.25s cubic-bezier(0.25,0.46,0.45,0.94);
  letter-spacing:0.005em;
  position:relative;
}
.mega-col a::before {
  content:''; position:absolute;
  left:0; top:50%;
  width:0; height:1px;
  background:var(--gold-deep);
  transition:width 0.25s ease;
  transform:translateY(-50%);
  opacity:0;
}
.mega-col a:hover { color:var(--gold-ink); padding-left:16px; }
.mega-col a:hover::before { width:10px; opacity:1; }

.mega-footer {
  display:flex; justify-content:space-between; align-items:center;
  background:var(--cream);
  padding:22px 50px;
  border-top:1px solid rgba(115,88,49,0.14);
  gap:20px;
}
.mega-footer-text {
  font-family:'Cormorant Garamond', serif;
  font-size:19px; font-style:italic;
  color:var(--text-body);
  line-height:1.4;
}
.mega-footer-text strong {
  font-style:normal; font-weight:600;
  color:var(--charcoal);
}
.mega-footer-cta {
  display:inline-flex; align-items:center; gap:12px;
  font-family:'Nunito Sans', sans-serif;
  font-size:12px; font-weight:700;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--charcoal);
  text-decoration:none;
  padding:13px 22px;
  border:1px solid var(--gold-deep);
  background:var(--white);
  transition:all 0.3s ease;
  white-space:nowrap; flex-shrink:0;
}
.mega-footer-cta:hover {
  background:var(--charcoal);
  color:var(--cream);
  border-color:var(--charcoal);
}
.mega-footer-cta-arrow {
  font-family:'Cormorant Garamond', serif;
  font-size:18px; font-weight:500; letter-spacing:0;
}

/* ─── BREADCRUMB ──────────────────────────────────────── */
.breadcrumb {
  background:var(--white);
  border-bottom:1px solid rgba(115,88,49,0.08);
}
.breadcrumb-inner {
  max-width:1440px; margin:0 auto;
  padding:14px 40px;
  display:flex; gap:8px; align-items:center;
  font-size:var(--fs-sm);
  color:var(--text-sub);
}
.breadcrumb-inner a {
  color:var(--text-sub);
  text-decoration:none;
  font-weight:500;
  transition:color 0.3s var(--ease);
}
.breadcrumb-inner a:hover { color:var(--gold-ink); }
.breadcrumb-inner .sep { color:var(--gold-ink); opacity:0.7; }
.breadcrumb-inner .current { color:var(--text-primary); font-weight:700; }

/* ─── ANCHOR NAV ──────────────────────────────────────── */
.anchor-nav {
  background:var(--white);
  border-bottom:1px solid rgba(115,88,49,0.08);
  padding:0 40px;
  position:sticky; top:84px; z-index:90;
}
.anchor-nav-inner {
  max-width:1440px; margin:0 auto;
  display:flex; align-items:center; gap:18px;
  height:52px;
}
.anchor-link {
  font-size:var(--fs-sm);
  font-weight:700;
  letter-spacing:var(--ls-wide);
  text-transform:uppercase;
  color:var(--text-sub);
  text-decoration:none;
  transition:color 0.3s var(--ease);
  white-space:nowrap;
  position:relative;
  padding:8px 0;
}
.anchor-link:hover, .anchor-link.is-active { color:var(--gold-ink); }
.anchor-link.is-active::after {
  content:''; position:absolute;
  bottom:0; left:0; right:0;
  height:2px; background:var(--gold-deep);
}
.anchor-link--cta { margin-left:auto; }
.anchor-sep { color:var(--gold); opacity:0.55; font-size:14px; }

/* ─── Decorative italic (purely visual) ───────────────── */
i.i-italic {
  font-style:italic;
  font-weight:inherit;
}

/* ─── TYPOGRAPHY ──────────────────────────────────────── */
.section-eyebrow {
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  display:block;
  margin-bottom:14px;
  font-weight:600;
  line-height:1.4;
}
.section-title {
  font-family:'Cormorant Garamond', serif;
  font-size:var(--fs-xl);
  font-weight:500;
  line-height:1.1;
  color:var(--text-primary);
  margin-bottom:18px;
  letter-spacing:var(--ls-tight);
}
.section-title i.i-italic {
  font-style:italic;
  font-weight:400;
  color:var(--text-sub);
}
.body-text {
  font-size:var(--fs-base);
  color:var(--text-body);
  line-height:var(--lh-base);
  margin-bottom:18px;
}
.body-text a,
.bento-body a {
  color:var(--gold-ink);
  text-decoration:none;
  border-bottom:1px solid rgba(115,88,49,0.5);
  font-weight:600;
  transition:var(--transition);
}
.body-text a:hover,
.bento-body a:hover {
  color:var(--charcoal);
  border-bottom-color:var(--charcoal);
}

/* ─── BUTTONS ─────────────────────────────────────────── */
/* Primary CTA: charcoal-on-cream is the luxury choice;
   white-on-gold (~2:1) fails contrast and looks generic.   */
.btn-primary {
  display:inline-flex;
  align-items:center;
  gap:12px;
  background:var(--charcoal);
  color:var(--cream);
  font-size:var(--fs-sm);
  font-weight:700;
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  padding:18px 38px;
  text-decoration:none;
  border:1.5px solid var(--charcoal);
  transition:var(--transition);
  cursor:pointer;
}
.btn-primary:hover {
  background:var(--gold-deep);
  border-color:var(--gold-deep);
  color:var(--white);
  transform:translateY(-2px);
  box-shadow:0 14px 32px -14px rgba(139,111,63,0.55);
}
.btn-primary::after { content:'→'; transition:transform 0.2s; font-weight:400; }
.btn-primary:hover::after { transform:translateX(4px); }

.btn-secondary {
  display:inline-flex;
  align-items:center;
  gap:12px;
  background:transparent;
  color:var(--charcoal);
  font-size:var(--fs-sm);
  font-weight:700;
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  padding:18px 38px;
  text-decoration:none;
  border:1.5px solid var(--charcoal);
  transition:var(--transition);
  cursor:pointer;
}
.btn-secondary:hover {
  background:var(--charcoal);
  color:var(--cream);
}

.link-arrow {
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:var(--fs-sm);
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  color:var(--gold-ink);
  text-decoration:none;
  font-weight:700;
  transition:gap 0.2s, color 0.2s;
  padding:4px 0;
}
.link-arrow:hover { gap:18px; color:var(--charcoal); }
.link-arrow::after { content:'→'; font-weight:500; }

/* ═══════════════════════════════════════════════════════ */
/* LAYOUT SECTIONS                                          */
/* ═══════════════════════════════════════════════════════ */

/* ─── HERO ───────────────────────────────────────────── */
.page-hero {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:center;
  max-width:1440px;
  margin:0 auto;
  padding:64px 40px 72px;
  background:linear-gradient(135deg, rgba(240,232,216,0.55) 0%, rgba(242,229,204,0.4) 100%);
  border-bottom:3px solid var(--gold);
}

.hero-image-col {
  background:linear-gradient(135deg, #E8DCC8 0%, #F0E8D8 100%);
  aspect-ratio:3/2;
  border-radius:2px;
  overflow:hidden;
}
.hero-image-col img {
  width:100%; height:100%; object-fit:cover; display:block;
}

.hero-text-col { padding:20px 0; }
.hero-page-title {
  font-family:'Cormorant Garamond', serif;
  font-size:var(--fs-2xl);
  font-weight:500;
  color:var(--text-primary);
  margin-bottom:24px;
  line-height:1.05;
  letter-spacing:var(--ls-tight);
}
.hero-page-title i.i-italic {
  font-style:italic;
  font-weight:400;
  color:var(--text-sub);
}
.hero-bio {
  font-size:19px;
  color:var(--text-body);
  line-height:1.7;
  margin-bottom:0;
  max-width:560px;
  font-weight:400;
}

@media (max-width:1100px) {
  .page-hero { grid-template-columns:1fr; gap:36px; padding:52px 40px 60px; }
  .hero-image-col { aspect-ratio:16/9; }
}
@media (max-width:640px) {
  .page-hero { padding:44px 22px 52px; gap:28px; }
  .hero-bio { font-size:17px; line-height:1.65; }
}

/* ─── CREDENTIAL ROW ─────────────────────────────────── */
.credential-row {
  background:var(--white);
  border-top:1px solid rgba(115,88,49,0.20);
  border-bottom:1px solid rgba(115,88,49,0.20);
  padding:34px 40px;
}
.credential-row-inner {
  max-width:1440px; margin:0 auto;
  display:flex; align-items:flex-start; justify-content:center;
  flex-wrap:wrap; gap:0;
}
.credential-item {
  flex:1; min-width:180px;
  text-align:center;
  padding:8px 28px;
  position:relative;
}
.credential-item:not(:last-child)::after {
  content:''; position:absolute;
  right:0; top:50%; transform:translateY(-50%);
  width:1px; height:64px;
  background:linear-gradient(180deg,
    transparent 0%,
    rgba(201,169,110,0.25) 15%,
    rgba(201,169,110,0.85) 50%,
    rgba(201,169,110,0.25) 85%,
    transparent 100%);
}
.credential-item:not(:last-child)::before {
  content:'';
  position:absolute;
  right:0; top:50%;
  transform:translate(50%, -50%) rotate(45deg);
  width:6px; height:6px;
  background:var(--gold);
  box-shadow:0 0 0 3px var(--white);
  z-index:1;
}
.credential-label {
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:center;
  min-height:2.4em;
  font-size:13px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:10px;
  line-height:1.2;
}
.credential-value {
  display:block;
  font-family:'Nunito Sans', system-ui, sans-serif;
  font-size:18px;
  font-weight:700;
  color:var(--text-primary);
  line-height:1.4;
  letter-spacing:0.01em;
  font-variant-numeric:tabular-nums lining-nums;
}
.credential-value i.i-italic {
  font-style:normal;
  font-weight:500;
  color:var(--text-body);
  display:block;
  margin-top:3px;
  font-size:14.5px;
  letter-spacing:0.02em;
}
@media (max-width:900px) {
  .credential-row { padding:24px 22px; }
  .credential-item { flex:1 1 45%; min-width:0; padding:14px 16px; }
  .credential-item::after, .credential-item::before { display:none; }
}
@media (max-width:560px) {
  .credential-item { flex:1 1 100%; padding:16px 0; }
  .credential-item::after, .credential-item::before { display:none !important; }
  .credential-item:not(:last-child) {
    border-bottom:1px solid rgba(201,169,110,0.40);
  }
}

/* ─── CONTENT SECTIONS ───────────────────────────────── */
.content-section {
  padding:var(--sp-section) 40px;
  max-width:1440px; margin:0 auto;
  background:var(--cream);
  border-top:2px solid var(--gold);
}
.content-section-alt {
  padding:var(--sp-section) 40px;
  background:var(--cream-dark);
  max-width:1440px; margin:0 auto;
  border-top:2px solid var(--gold);
}

/* ─── SPLIT LAYOUT ───────────────────────────────────── */
.split-layout {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:56px;
  align-items:start;
}
.split-sticky { position:sticky; top:200px; }

.bdh-quote {
  background:linear-gradient(135deg, var(--gold-pale) 0%, rgba(242,229,204,0.5) 100%);
  padding:32px 34px;
  margin:28px 0;
  border-left:3px solid var(--gold-deep);
  border-radius:0;
}
.bdh-quote blockquote {
  font-family:'Cormorant Garamond', serif;
  font-size:23px;
  font-weight:500;
  color:var(--text-primary);
  line-height:1.45;
  margin-bottom:18px;
  font-style:italic;
  letter-spacing:0.005em;
}
.bdh-quote cite {
  font-size:var(--fs-sm);
  color:var(--text-sub);
  letter-spacing:0.03em;
  display:block;
  font-style:normal;
  font-weight:600;
}

.img-placeholder {
  background:linear-gradient(135deg, #E8DCC8 0%, #F0E8D8 100%);
  aspect-ratio:3/2;
  border-radius:2px;
  margin:32px 0;
  overflow:hidden;
}
.img-placeholder img {
  width:100%; height:100%; object-fit:cover; display:block;
}

@media (max-width:1000px) {
  .split-layout { grid-template-columns:1fr; gap:40px; }
  .split-sticky { position:static; }
}

/* ═══════════════════════════════════════════════════════ */
/* C · BENTO GRID                                           */
/* ═══════════════════════════════════════════════════════ */
.bento-grid {
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  grid-auto-rows:minmax(220px, auto);
  gap:18px;
  margin-top:8px;
}
.bento-card {
  background:var(--white);
  border:1px solid rgba(115,88,49,0.18);
  padding:36px 32px;
  position:relative;
  transition:var(--transition);
  display:flex; flex-direction:column;
  overflow:hidden;
}
.bento-card::before {
  content:''; position:absolute;
  top:0; left:0; right:0;
  height:2px;
  background:linear-gradient(90deg, var(--gold) 0%, var(--gold-deep) 100%);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 0.5s cubic-bezier(0.25,0.46,0.45,0.94);
}
.bento-card:hover {
  border-color:rgba(115,88,49,0.4);
  box-shadow:0 24px 50px -28px rgba(42,36,32,0.20);
  transform:translateY(-2px);
}
.bento-card:hover::before { transform:scaleX(1); }

.bento-card--lg { grid-column:span 4; }
.bento-card--md { grid-column:span 3; }
.bento-card--sm { grid-column:span 2; }
.bento-card--feature {
  grid-column:span 3;
  background:linear-gradient(180deg, #FEFCF8 0%, #F5EFE5 100%);
  border-color:rgba(115,88,49,0.30);
  padding-top:72px;
}
.bento-card--feature + .bento-card--md {
  padding-top:72px;
}

.bento-icon {
  width:48px; height:48px;
  margin-bottom:22px;
  color:var(--gold-ink);
  flex-shrink:0;
}
.bento-icon svg { width:100%; height:100%; }
@media (max-width:768px) {
  .bento-icon { width:56px; height:56px; margin-bottom:18px; }
}

.bento-title {
  font-family:'Cormorant Garamond', serif;
  font-size:24px;
  font-weight:500;
  color:var(--text-primary);
  margin-bottom:14px;
  line-height:1.2;
  letter-spacing:var(--ls-tight);
}
.bento-title i.i-italic {
  font-style:italic;
  font-weight:400;
  color:var(--text-sub);
}
.bento-body {
  font-size:16px;
  color:var(--text-body);
  line-height:1.7;
  margin:0;
}
.bento-card--feature .bento-eyebrow {
  position:absolute;
  top:36px;
  left:32px;
  display:block;
  font-size:11px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:600;
}

@media (max-width:1000px) {
  .bento-grid { grid-template-columns:repeat(4, 1fr); }
  .bento-card--lg { grid-column:span 4; }
  .bento-card--md { grid-column:span 2; }
  .bento-card--sm { grid-column:span 2; }
  .bento-card--feature { grid-column:span 4; }
}
@media (max-width:640px) {
  .bento-grid { grid-template-columns:1fr; gap:14px; }
  .bento-card--lg, .bento-card--md, .bento-card--sm, .bento-card--feature {
    grid-column:span 1;
  }
  .bento-card { padding:30px 24px; }
  .bento-title { font-size:22px; }
}

/* Feature bento card: keep the absolutely-positioned eyebrow clear of the
   icon at tablet/mobile. Higher specificity (.bento-card.bento-card--feature)
   so the later .bento-card { padding } shorthands don't reset padding-top. */
@media (max-width:1024px) {
  .bento-card.bento-card--feature { padding-top:68px; }
  .bento-card--feature + .bento-card--md { padding-top:32px; }
}
@media (max-width:600px) {
  .bento-card.bento-card--feature { padding-top:28px; }
  .bento-card--feature + .bento-card--md { padding-top:28px; }
  .bento-card--feature .bento-eyebrow {
    position:static;
    top:auto; left:auto;
    margin-bottom:14px;
  }
}

/* ═══════════════════════════════════════════════════════ */
/* B · DARK EDITORIAL INTERLUDE                             */
/* ═══════════════════════════════════════════════════════ */
.editorial-interlude {
  background:
    radial-gradient(ellipse at 30% 20%, rgba(201,169,110,0.10) 0%, transparent 60%),
    linear-gradient(180deg, #2A2420 0%, #1F1A16 100%);
  padding:clamp(80px, 11vw, 124px) 40px;
  position:relative;
  overflow:hidden;
}
.editorial-interlude::before {
  content:''; position:absolute;
  top:48px; left:50%; transform:translateX(-50%);
  width:60px; height:1px;
  background:linear-gradient(90deg, transparent 0%, var(--gold) 50%, transparent 100%);
}
.editorial-interlude-inner {
  max-width:1080px; margin:0 auto;
  text-align:center;
  position:relative; z-index:2;
}
.editorial-interlude-eyebrow {
  display:block;
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold);
  font-weight:700;
  margin-bottom:36px;
}
.editorial-interlude-quote {
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-weight:400;
  font-size:clamp(30px, 4.4vw, 56px);
  line-height:1.3;
  color:#FAF7F2;
  letter-spacing:-0.005em;
  margin-bottom:44px;
}
.editorial-interlude-quote::before,
.editorial-interlude-quote::after {
  content:''; display:inline-block;
  width:8px; height:8px;
  background:var(--gold);
  transform:rotate(45deg);
  margin:0 14px;
  vertical-align:middle;
  opacity:0.75;
}
.editorial-interlude-cite {
  display:block;
  font-family:'Nunito Sans', sans-serif;
  font-style:normal;
  font-size:12.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:rgba(250,247,242,0.78);
  font-weight:700;
}
.editorial-interlude-cite i.i-italic {
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:16px;
  letter-spacing:0.02em;
  color:rgba(250,247,242,0.92);
  text-transform:none;
  font-weight:400;
  display:block;
  margin-top:8px;
}
@media (max-width:768px) {
  .editorial-interlude { padding:84px 22px; }
  .editorial-interlude-quote::before,
  .editorial-interlude-quote::after { width:6px; height:6px; margin:0 10px; }
}

/* ═══════════════════════════════════════════════════════ */
/* CONSULTATION                                             */
/* ═══════════════════════════════════════════════════════ */
.consultation-intro {
  margin-bottom:44px;
  max-width:820px;
}
.consultation-steps-grid {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:22px;
  margin-top:36px;
}
.consult-card {
  position:relative;
  background:var(--white);
  border:1px solid rgba(115,88,49,0.18);
  border-top:3px solid var(--gold);
  padding:38px 30px;
}
.consult-card--feature {
  background:linear-gradient(180deg, #FEFCF8 0%, #F5EFE5 100%);
  border-top:3px solid var(--gold-deep);
  box-shadow:0 18px 50px -24px rgba(42,36,32,0.18);
}
.consult-tag {
  position:absolute;
  top:-16px; left:50%; transform:translateX(-50%);
  display:inline-block;
  font-size:11.5px;
  letter-spacing:0.26em;
  text-transform:uppercase;
  color:var(--cream);
  font-weight:700;
  padding:10px 22px;
  background:var(--charcoal);
  border:1px solid var(--charcoal);
  box-shadow:0 10px 28px -10px rgba(42,36,32,0.55);
  line-height:1;
  white-space:nowrap;
}
.consult-byline {
  display:block;
  margin-top:2px; margin-bottom:14px;
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-weight:500;
  font-size:21px;
  color:var(--gold-ink);
  line-height:1.1;
}
.consult-tech {
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-weight:600;
  color:var(--gold-ink);
  font-size:1.06em;
  letter-spacing:0;
}
.consult-num {
  display:block;
  font-family:'Cormorant Garamond', serif;
  font-size:44px;
  font-weight:400;
  color:var(--gold-ink);
  line-height:1;
  margin-bottom:16px;
  letter-spacing:-0.02em;
  opacity:0.85;
}
.consultation-step-title {
  font-family:'Cormorant Garamond', serif;
  font-size:24px;
  font-weight:500;
  color:var(--text-primary);
  margin-bottom:14px;
  letter-spacing:var(--ls-tight);
}
.consult-tech-link {
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid rgba(139,111,63,0.45);
  transition:border-color 0.2s ease;
}
.consult-tech-link:hover { border-bottom-color:var(--gold-deep); }

@media (max-width:768px) {
  .consultation-steps-grid { grid-template-columns:1fr; gap:18px; }
}

/* ═══════════════════════════════════════════════════════ */
/* MID-PAGE SOFT CTA                                        */
/* ═══════════════════════════════════════════════════════ */
.mid-cta {
  background:var(--cream-dark);
  padding:72px 40px;
  text-align:center;
  border-top:1px solid rgba(115,88,49,0.25);
  border-bottom:1px solid rgba(115,88,49,0.25);
}
.mid-cta-inner { max-width:780px; margin:0 auto; }
.mid-cta-eyebrow {
  display:block;
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:16px;
}
.mid-cta-title {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(30px, 3.8vw, 44px);
  font-weight:500;
  color:var(--text-primary);
  line-height:1.15;
  margin-bottom:16px;
  letter-spacing:var(--ls-tight);
}
.mid-cta-title i.i-italic {
  font-style:italic;
  font-weight:400;
  color:var(--text-sub);
}
.mid-cta-sub {
  font-size:17px;
  color:var(--text-body);
  line-height:1.7;
  margin-bottom:32px;
  max-width:580px;
  margin-left:auto;
  margin-right:auto;
}
.mid-cta-actions {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:14px;
}
@media (max-width:560px) {
  .mid-cta { padding:52px 22px; }
  .mid-cta-actions { flex-direction:column; }
  .mid-cta-actions a { width:100%; justify-content:center; }
}

/* ═══════════════════════════════════════════════════════ */
/* TREATMENTS                                               */
/* ═══════════════════════════════════════════════════════ */
.treatment-list { max-width:920px; }
.treatment-category {
  margin-top:32px;
  margin-bottom:0;
  padding:30px 34px;
  background:var(--cream-dark);
  border-left:3px solid var(--gold-deep);
  border-radius:2px;
}
.treatment-category-label {
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:18px;
  display:block;
}
.treatment-item {
  margin-bottom:26px;
  padding-bottom:26px;
  border-bottom:2px solid var(--gold-pale);
}
.treatment-item:last-child {
  border-bottom:none; margin-bottom:0; padding-bottom:0;
}
.treatment-name {
  font-family:'Cormorant Garamond', serif;
  font-size:24px;
  font-weight:500;
  color:var(--text-primary);
  margin-bottom:8px;
  letter-spacing:var(--ls-tight);
}
.treatment-name a {
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:var(--transition);
}
.treatment-name a:hover {
  color:var(--gold-ink);
  border-bottom-color:var(--gold-deep);
}
.treatment-provider {
  font-size:12.5px;
  color:var(--text-sub);
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  font-weight:700;
  margin-bottom:16px;
  display:inline-block;
}
.treatment-body {
  font-size:var(--fs-base);
  color:var(--text-body);
  line-height:var(--lh-base);
}
.treatment-footnote {
  margin-top:32px;
  padding:20px 26px;
  background:rgba(254,252,248,0.7);
  border:1px solid rgba(115,88,49,0.20);
  font-size:14.5px;
  color:var(--text-sub);
  line-height:1.7;
}
.treatment-footnote a {
  color:var(--gold-ink);
  text-decoration:none;
  border-bottom:1px solid rgba(115,88,49,0.45);
  font-weight:700;
}
.treatment-footnote a:hover {
  color:var(--charcoal);
  border-bottom-color:var(--charcoal);
}

/* ═══════════════════════════════════════════════════════ */
/* FAQ                                                      */
/* ═══════════════════════════════════════════════════════ */
.faq-section {
  max-width:920px;
  background:var(--cream-dark);
  padding:36px 40px;
  border-radius:2px;
}
.faq-item { border-bottom:1px solid rgba(115,88,49,0.22); }
.faq-item:last-child { border-bottom:none; }
.faq-btn {
  width:100%;
  padding:22px 0;
  background:none; border:none;
  text-align:left;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
  transition:color 0.3s var(--ease);
  font-family:'Cormorant Garamond', serif;
  font-size:21px;
  font-weight:500;
  color:var(--text-primary);
  letter-spacing:var(--ls-tight);
  line-height:1.35;
}
.faq-btn:hover { color:var(--gold-ink); }
.faq-q { flex:1; }
.faq-icon {
  flex-shrink:0;
  width:22px; height:22px;
  position:relative;
  display:inline-block;
  transition:transform 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
  margin-top:8px;
}
.faq-icon::before, .faq-icon::after {
  content:''; position:absolute;
  background:var(--gold-deep);
  transition:transform 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
}
.faq-icon::before {
  top:50%; left:0; right:0;
  height:1.6px; transform:translateY(-50%);
}
.faq-icon::after {
  top:0; bottom:0; left:50%;
  width:1.6px; transform:translateX(-50%);
}
.faq-btn[aria-expanded="true"] .faq-icon::after {
  transform:translateX(-50%) scaleY(0);
}
.faq-answer {
  max-height:0;
  overflow:hidden;
  transition:max-height 0.4s ease;
}
.faq-btn[aria-expanded="true"] + .faq-answer {
  max-height:800px;
  padding-bottom:28px;
}
.faq-answer p {
  color:var(--text-body);
  line-height:1.75;
  margin-bottom:16px;
  font-size:17px;
}
.faq-answer p:last-child { margin-bottom:0; }
.faq-answer a {
  color:var(--gold-ink);
  text-decoration:none;
  border-bottom:1px solid rgba(115,88,49,0.45);
  font-weight:600;
}
.faq-answer a:hover {
  color:var(--charcoal);
  border-bottom-color:var(--charcoal);
}

/* ═══════════════════════════════════════════════════════ */
/* D · DR ASADI FEATURE BLOCK                               */
/* ═══════════════════════════════════════════════════════ */
.physician-feature {
  background:var(--cream);
  padding:var(--sp-section) 40px;
  position:relative;
  border-top:1px solid rgba(115,88,49,0.18);
}
.physician-feature-inner {
  max-width:1240px; margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:72px;
  align-items:center;
}
.physician-portrait {
  position:relative;
  aspect-ratio:4/5;
  background:linear-gradient(135deg, #E8DCC8 0%, #F0E8D8 100%);
  border-radius:2px;
  overflow:hidden;
}

.physician-portrait img {
  width:100%; height:100%; object-fit:cover; display:block;
}
.physician-text { padding:8px 0; }
.physician-eyebrow {
  display:block;
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:20px;
}
.physician-name {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(40px, 5vw, 62px);
  font-weight:500;
  color:var(--text-primary);
  line-height:1.05;
  letter-spacing:var(--ls-tight);
  margin-bottom:10px;
}
.physician-name i.i-italic {
  font-style:italic;
  font-weight:400;
  color:var(--text-sub);
  display:block;
  font-size:0.7em;
  margin-top:6px;
}
.physician-credentials {
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:21px;
  font-weight:500;
  color:var(--gold-ink);
  margin-bottom:32px;
  line-height:1.4;
  letter-spacing:0.005em;
}
.physician-rule {
  width:64px; height:1px;
  background:linear-gradient(90deg, var(--gold-deep) 0%, transparent 100%);
  margin-bottom:32px;
}
.physician-philosophy {
  font-size:17.5px;
  line-height:1.78;
  color:var(--text-body);
  margin-bottom:20px;
}
.physician-philosophy:last-of-type { margin-bottom:36px; }
.physician-meta {
  display:flex;
  flex-wrap:wrap;
  gap:32px;
  margin-bottom:36px;
  padding:26px 0;
  border-top:1px solid rgba(115,88,49,0.20);
  border-bottom:1px solid rgba(115,88,49,0.20);
}
.physician-meta-item { flex:1; min-width:140px; }
.physician-meta-label {
  display:block;
  font-size:11px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:8px;
}
.physician-meta-value {
  display:block;
  font-family:'Nunito Sans', system-ui, sans-serif;
  font-size:18px;
  font-weight:700;
  color:var(--text-primary);
  line-height:1.4;
  letter-spacing:0.01em;
  font-variant-numeric:tabular-nums lining-nums;
}
.physician-meta-value i.i-italic {
  font-style:normal;
  font-weight:500;
  color:var(--text-body);
  display:block;
  margin-top:3px;
  font-size:14.5px;
  letter-spacing:0.02em;
}
.physician-actions {
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  align-items:center;
}
@media (max-width:900px) {
  .physician-feature { padding:72px 22px; }
  .physician-feature-inner { grid-template-columns:1fr; gap:48px; }
  .physician-portrait { aspect-ratio:3/4; width:100%; max-width:480px; margin:0 auto; }
  .physician-meta { gap:24px; }
}
@media (max-width:560px) {
  .physician-meta {
    flex-direction:column;
    gap:22px;
    padding:22px 0;
  }
  .physician-meta-item { flex:1 1 100%; min-width:0; }
}

/* ═══════════════════════════════════════════════════════ */
/* CTA SECTION · Engraved Invitation                        */
/* ═══════════════════════════════════════════════════════ */
.cta-section {
  position:relative;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(201,169,110,0.12) 0%, transparent 55%),
    linear-gradient(180deg, #F5EFE5 0%, #EDE4D6 60%, #E8DBC2 100%);
  padding:clamp(80px, 11vw, 112px) 40px;
  text-align:center;
  border-top:1px solid rgba(115,88,49,0.25);
  border-bottom:1px solid rgba(115,88,49,0.25);
  overflow:hidden;
}
.cta-section::before, .cta-section::after {
  content:''; position:absolute;
  top:24px;
  width:60px; height:60px;
  border:1px solid rgba(115,88,49,0.45);
  opacity:0.7;
}
.cta-section::before { left:24px; border-right:none; border-bottom:none; }
.cta-section::after { right:24px; border-left:none; border-bottom:none; }

.cta-inner {
  position:relative;
  max-width:780px;
  margin:0 auto;
  padding:64px 56px;
  background:rgba(254,252,248,0.6);
  border:1px solid var(--gold-deep);
  box-shadow:
    0 0 0 6px rgba(254,252,248,0.55),
    0 0 0 7px rgba(115,88,49,0.45),
    0 30px 80px -30px rgba(42,36,32,0.22);
}
.cta-ornament {
  display:flex; align-items:center; justify-content:center;
  gap:14px; margin-bottom:22px;
}
.cta-ornament-line {
  width:64px; height:1px;
  background:linear-gradient(90deg, transparent 0%, var(--gold-deep) 100%);
}
.cta-ornament-line.right {
  background:linear-gradient(90deg, var(--gold-deep) 0%, transparent 100%);
}
.cta-ornament-diamond {
  width:9px; height:9px;
  background:var(--gold-deep);
  transform:rotate(45deg);
  flex-shrink:0;
}
.cta-eyebrow {
  display:block;
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:20px;
}
.cta-title {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(36px, 5vw, 56px);
  font-weight:500;
  color:var(--text-primary);
  line-height:1.1;
  margin-bottom:18px;
  letter-spacing:var(--ls-tight);
}
.cta-title i.i-italic {
  font-style:italic;
  font-weight:400;
  color:var(--text-sub);
}
.cta-sub {
  font-size:18px;
  color:var(--text-body);
  line-height:1.7;
  margin-bottom:32px;
  max-width:580px;
  margin-left:auto;
  margin-right:auto;
}
.cta-actions {
  display:flex;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
}
@media (max-width:640px) {
  .cta-section { padding:68px 18px; }
  .cta-inner { padding:48px 28px; }
  .cta-actions { flex-direction:column; align-items:stretch; }
  .cta-actions a { width:100%; justify-content:center; }
}

/* ═══════════════════════════════════════════════════════ */
/* CONTACT                                                  */
/* ═══════════════════════════════════════════════════════ */
.contact-section {
  background:var(--cream);
  padding:var(--sp-section) 40px;
  border-top:1px solid rgba(115,88,49,0.18);
}
.contact-inner {
  max-width:1240px; margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:72px;
  align-items:start;
}
.contact-intro { position:sticky; top:200px; }
.contact-eyebrow {
  display:block;
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:20px;
}
.contact-title {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(42px, 5.2vw, 64px);
  font-weight:500;
  color:var(--text-primary);
  line-height:1.05;
  margin-bottom:20px;
  letter-spacing:var(--ls-tight);
}
.contact-title i.i-italic {
  font-style:italic;
  font-weight:400;
  color:var(--text-sub);
}
.contact-lede {
  font-size:18px;
  line-height:1.75;
  color:var(--text-body);
  margin-bottom:32px;
  max-width:440px;
}
.contact-ornament {
  display:flex; align-items:center; gap:12px;
  margin-bottom:32px;
}
.contact-ornament-diamond {
  width:8px; height:8px;
  background:var(--gold-deep);
  transform:rotate(45deg);
}
.contact-ornament-line {
  flex:1; max-width:80px; height:1px;
  background:linear-gradient(90deg, var(--gold-deep) 0%, transparent 100%);
}
.contact-deck { margin-bottom:32px; }
.contact-row {
  display:flex;
  align-items:flex-start;
  gap:20px;
  padding:18px 0;
  border-bottom:1px solid rgba(115,88,49,0.20);
}
.contact-row:last-child { border-bottom:none; }
.contact-row-label {
  flex-shrink:0;
  width:100px;
  font-size:13px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  padding-top:4px;
  line-height:1.2;
}
.contact-row-value {
  font-family:'Nunito Sans', system-ui, sans-serif;
  font-size:17px;
  font-weight:600;
  color:var(--text-primary);
  line-height:1.55;
  letter-spacing:0.02em;
  text-decoration:none;
  font-variant-numeric:tabular-nums lining-nums;
  transition:color 0.3s var(--ease);
}
.contact-row-value:hover { color:var(--gold-ink); }
.contact-hours-mini {
  font-family:'Nunito Sans', system-ui, sans-serif;
  font-size:15px;
  font-weight:500;
  color:var(--text-body);
  line-height:1.85;
  padding-top:24px;
  border-top:1px solid rgba(115,88,49,0.20);
  font-variant-numeric:tabular-nums lining-nums;
}
.contact-hours-mini strong {
  display:block;
  font-size:13px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:12px;
  line-height:1.2;
}

.contact-form-wrap {
  position:relative;
  background:var(--white);
  padding:56px 52px;
  border:1px solid rgba(115,88,49,0.25);
  box-shadow:0 30px 80px -40px rgba(42,36,32,0.18);
}
.form-card-eyebrow {
  display:block;
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:14px;
}
.form-card-title {
  font-family:'Cormorant Garamond', serif;
  font-size:30px;
  font-weight:500;
  color:var(--text-primary);
  margin-bottom:36px;
  letter-spacing:var(--ls-tight);
}
.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:26px;
  margin-bottom:26px;
}
.form-group { margin-bottom:26px; }
.form-label {
  display:block;
  font-size:11.5px;
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-bottom:10px;
}
.form-optional {
  font-size:10.5px;
  font-weight:600;
  letter-spacing:0.1em;
  color:var(--text-muted);
  text-transform:none;
  margin-left:6px;
}
.form-input {
  width:100%;
  border:none;
  border-bottom:1.5px solid rgba(115,88,49,0.38);
  background:transparent;
  padding:14px 0;
  font-family:'Nunito Sans', sans-serif;
  font-size:16px;
  color:var(--text-primary);
  transition:border-color 0.25s;
  -webkit-appearance:none;
  border-radius:0;
}
.form-input::placeholder { color:var(--text-muted); opacity:0.7; }
.form-input:focus {
  outline:none;
  border-bottom-color:var(--gold-deep);
  border-bottom-width:2px;
}
.form-textarea {
  resize:vertical;
  min-height:120px;
  line-height:1.65;
}
.form-footer {
  display:flex;
  gap:26px;
  align-items:flex-start;
  flex-wrap:wrap;
  margin-top:8px;
}
.form-disclaimer {
  flex:1;
  font-size:13px;
  color:var(--text-sub);
  line-height:1.65;
  min-width:200px;
  font-weight:500;
}
.btn-submit {
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  gap:12px;
  background:var(--charcoal);
  color:var(--cream);
  font-family:'Nunito Sans', sans-serif;
  font-size:13px;
  font-weight:700;
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  padding:17px 36px;
  border:1.5px solid var(--charcoal);
  cursor:pointer;
  transition:all 0.25s ease;
}
.btn-submit::after { content:'→'; transition:transform 0.2s; font-weight:400; }
.btn-submit:hover {
  background:var(--gold-deep);
  border-color:var(--gold-deep);
  color:var(--white);
}
.btn-submit:hover::after { transform:translateX(4px); }

.form-success {
  display:none;
  position:absolute; inset:0;
  background:var(--white);
  align-items:center; justify-content:center;
  text-align:center;
  padding:40px;
}
.form-success.is-visible { display:flex; }
.form-success-inner { max-width:400px; }
.form-success-icon {
  display:inline-flex;
  align-items:center; justify-content:center;
  width:60px; height:60px;
  border:1.5px solid var(--gold-deep);
  color:var(--gold-ink);
  font-size:24px;
  margin-bottom:24px;
  border-radius:50%;
}
.form-success h3 {
  font-family:'Cormorant Garamond', serif;
  font-size:28px;
  font-weight:500;
  color:var(--charcoal);
  margin-bottom:12px;
  letter-spacing:var(--ls-tight);
}
.form-success p {
  color:var(--text-body);
  font-size:16px;
  line-height:1.65;
}

@media (max-width:1000px) {
  .contact-inner { grid-template-columns:1fr; gap:48px; }
  .contact-intro { position:static; }
  .contact-title { font-size:clamp(36px, 6vw, 52px); }
}
@media (max-width:640px) {
  .contact-section { padding:68px 18px; }
  .contact-form-wrap { padding:36px 24px; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .form-footer { flex-direction:column; align-items:stretch; gap:18px; }
  .btn-submit { width:100%; justify-content:center; }
}
@media (max-width:560px) {
  .contact-row {
    flex-direction:column;
    gap:6px;
    align-items:flex-start;
    padding:16px 0;
  }
  .contact-row-label {
    width:auto;
    padding-top:0;
  }
  .contact-row-value {
    width:100%;
    word-break:break-word;
    overflow-wrap:break-word;
  }
}

/* ═══════════════════════════════════════════════════════ */
/* RESPONSIVE · Mobile nav, anchor nav, sections            */
/* ═══════════════════════════════════════════════════════ */
@media (max-width:900px) {
  .header-inner { padding:0 20px; }
  .nav-inner { padding:0; }
  .main-nav { display:none; }
  .main-nav.is-open { display:block; }
  .nav-inner { flex-direction:column; align-items:stretch; }
  .nav-item { width:100%; border-bottom:1px solid rgba(115,88,49,0.12); }
  .nav-item.has-mega { position:relative; width:100%; }
  .nav-item > a { padding:16px 24px; }
  .dropdown {
    position:static; min-width:auto;
    border:none; box-shadow:none;
    background:rgba(115,88,49,0.04);
  }
  .nav-item:hover .dropdown, .nav-item.is-open .dropdown { display:block; }
  .mega-dropdown {
    position:static; width:100%; max-width:none;
    transform:none; left:auto;
    border:none; box-shadow:none;
    background:rgba(115,88,49,0.04);
    padding:0;
  }
  .nav-item.has-mega:hover .mega-dropdown,
  .nav-item.has-mega.is-open .mega-dropdown { display:block; }
  .mega-grid { grid-template-columns:1fr; padding:8px 0; gap:0; }
  .mega-col {
    padding:0;
    border-left:none;
    border-top:1px solid rgba(115,88,49,0.10);
  }
  .mega-col:first-child { border-top:none; }
  .mega-section { margin-bottom:8px; padding:0 24px; }
  .mega-heading { margin:18px 0 10px; padding-bottom:8px; font-size:19px; }
  .mega-col a { padding:10px 24px; }
  .mega-col a:hover { padding-left:34px; }
  .mega-footer { flex-direction:column; align-items:flex-start; padding:22px 24px; gap:14px; }
  .mega-footer-cta { width:100%; justify-content:center; }
  .breadcrumb-inner { padding:14px 22px; font-size:13.5px; }
  .anchor-nav { padding:0; top:72px; }
  .anchor-nav-inner {
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    padding:0 22px;
    gap:18px;
    scrollbar-width:none;
  }
  .anchor-nav-inner::-webkit-scrollbar { display:none; }
  .anchor-link { padding:14px 0; font-size:13px; }
  .content-section, .content-section-alt { padding:56px 22px; }
  .split-layout { gap:40px; }
  .bdh-quote { padding:26px 24px; }
  .bdh-quote blockquote { font-size:20px; line-height:1.5; }
  .faq-section { padding:28px 26px; }
  .faq-btn { font-size:19px; padding:20px 0; gap:18px; }
  .faq-answer p { font-size:16px; line-height:1.7; }
  .treatment-category { padding:26px 24px; }
  .treatment-name { font-size:22px; }
}

/* ═══════════════════════════════════════════════════════ */
/* LUXURY FOOTER · cream-on-cream                           */
/* ═══════════════════════════════════════════════════════ */
.site-footer-dark {
  position:relative;
  background:linear-gradient(180deg, var(--footer-bg-from) 0%, var(--footer-bg-to) 100%);
  color:var(--charcoal);
  border-top:none;
}
.site-footer-dark::before {
  content:''; display:block;
  height:4px;
  background:linear-gradient(90deg,
    transparent 0%,
    var(--gold-deep) 12%,
    var(--gold) 50%,
    var(--gold-deep) 88%,
    transparent 100%);
}
.footer-dark-inner {
  max-width:1440px; margin:0 auto;
  padding:76px 40px 0;
}
.footer-dark-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-bottom:38px;
  border-bottom:1px solid rgba(42,36,32,0.20);
  margin-bottom:48px;
  flex-wrap:wrap;
  gap:24px;
}
.footer-dark-logo { text-decoration:none; display:inline-block; }
.footer-dark-wordmark {
  font-family:'Cormorant Garamond', serif;
  font-size:32px;
  font-weight:500;
  letter-spacing:0.16em;
  color:var(--charcoal);
  display:block;
  text-transform:uppercase;
  line-height:1.05;
}
.footer-dark-subline {
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  color:var(--gold-ink);
  text-transform:uppercase;
  display:block;
  margin-top:10px;
  font-weight:700;
}
.footer-social {
  display:flex;
  align-items:center;
  gap:14px;
}
.footer-social-label {
  font-size:11.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  color:var(--gold-ink);
  font-weight:700;
  margin-right:6px;
}
.footer-social-link {
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px; height:42px;
  border:1px solid rgba(42,36,32,0.5);
  color:var(--charcoal);
  text-decoration:none;
  transition:all 0.25s ease;
  background:rgba(254,252,248,0.4);
}
.footer-social-link:hover {
  border-color:var(--charcoal);
  color:var(--cream);
  background:var(--charcoal);
  transform:translateY(-2px);
}
.footer-dark-cols {
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  gap:28px;
  padding-bottom:48px;
  border-bottom:1px solid rgba(42,36,32,0.20);
}
.footer-dark-heading {
  font-family:'Cormorant Garamond', serif;
  font-size:19px;
  font-weight:600;
  color:var(--charcoal);
  margin-bottom:22px;
  letter-spacing:0.01em;
  padding-bottom:14px;
  position:relative;
}
.footer-dark-heading::after {
  content:''; position:absolute;
  left:0; bottom:0;
  width:32px; height:1.5px;
  background:var(--gold-deep);
}
.footer-dark-col ul { list-style:none; }
.footer-dark-col li { margin-bottom:12px; }
.footer-dark-col a {
  color:var(--charcoal);
  text-decoration:none;
  font-size:14.5px;
  font-weight:600;
  transition:all 0.2s ease;
  line-height:1.5;
  letter-spacing:0.005em;
  position:relative;
  padding-left:0;
}
.footer-dark-col a:hover {
  color:var(--gold-ink);
  padding-left:6px;
}
.footer-dark-contact-line {
  margin-bottom:18px;
  line-height:1.55;
}
.footer-dark-contact-line a {
  color:var(--charcoal);
  text-decoration:none;
  transition:color 0.2s;
  font-weight:600;
  font-size:15px;
  letter-spacing:0.01em;
  font-variant-numeric:tabular-nums lining-nums;
}
.footer-dark-contact-line a:hover { color:var(--gold-ink); }
.footer-dark-label {
  display:block;
  color:var(--gold-ink);
  font-weight:700;
  font-size:12.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  margin-bottom:7px;
  line-height:1.2;
}
.footer-dark-value {
  display:block;
  color:var(--charcoal);
  font-size:15px;
  font-weight:600;
  line-height:1.55;
  letter-spacing:0.01em;
  font-variant-numeric:tabular-nums lining-nums;
}
.footer-dark-hours {
  font-size:15px;
  color:var(--charcoal);
  line-height:1.85;
  margin-top:18px;
  font-weight:600;
  padding-top:18px;
  border-top:1px solid rgba(42,36,32,0.20);
  font-variant-numeric:tabular-nums lining-nums;
}
.footer-dark-hours strong {
  display:block;
  color:var(--gold-ink);
  font-weight:700;
  font-size:12.5px;
  letter-spacing:var(--ls-widest);
  text-transform:uppercase;
  margin-bottom:10px;
  line-height:1.2;
}
.footer-dark-bottom {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:24px;
  padding:34px 0 40px;
  margin-top:4px;
}
.footer-dark-legal {
  flex:1;
  min-width:280px;
  max-width:820px;
}
.footer-dark-copy {
  font-size:13.5px;
  color:var(--text-body);
  line-height:1.7;
  letter-spacing:0.01em;
  font-weight:500;
  margin-bottom:0;
  font-variant-numeric:tabular-nums lining-nums;
}
.footer-policy-row {
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  margin:0; padding:0;
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(42,36,32,0.18);
}
.footer-policy-row li {
  display:flex;
  align-items:center;
  line-height:1;
}
.footer-policy-row li:not(:last-child)::after {
  content:'·';
  margin:0 12px;
  color:var(--gold-ink);
  font-weight:700;
  font-size:14px;
}
.footer-policy-row a {
  font-size:11.5px;
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  font-weight:700;
  color:var(--charcoal);
  text-decoration:none;
  transition:color 0.2s ease;
}
.footer-policy-row a:hover { color:var(--gold-ink); }
.footer-dark-actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.footer-action-link {
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:12px 22px;
  background:rgba(254,252,248,0.65);
  border:1px solid rgba(42,36,32,0.4);
  color:var(--charcoal);
  text-decoration:none;
  font-size:12px;
  font-weight:700;
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  transition:all 0.25s ease;
}
.footer-action-link:hover {
  background:var(--charcoal);
  border-color:var(--charcoal);
  color:var(--cream);
}
@media (max-width:1200px) {
  .footer-dark-cols { grid-template-columns:repeat(3, 1fr); }
}
@media (max-width:700px) {
  .footer-dark-inner { padding:62px 22px 0; }
  .footer-dark-top { flex-direction:column; align-items:flex-start; gap:20px; }
  .footer-dark-cols { grid-template-columns:1fr; gap:28px; }
  .footer-dark-bottom { flex-direction:column; align-items:flex-start; }
  .footer-dark-wordmark { font-size:26px; }
}

/* ═══════════════════════════════════════════════════════════
   ▼▼▼  v41 · MOBILE & TABLET REFINEMENT LAYER  ▼▼▼
   ────────────────────────────────────────────────────────────
   Loaded LAST so it overrides earlier breakpoint rules
   where they conflict. Organised by:
     1. Safe-area insets & global polish
     2. "Read More / Read Less" expandable system
     3. Refined FAQ accordion (true smooth height)
     4. Mobile nav drawer w/ backdrop & scroll-lock
     5. iPad / tablet (601–1024px) layouts
     6. Mobile (≤600px) refinements
     7. Small mobile (≤400px) micro-adjustments
   ═══════════════════════════════════════════════════════════ */

/* ─── 1 · Safe-area insets & global polish ─────────────── */
@supports(padding:env(safe-area-inset-left)) {
  .header-inner,
  .nav-inner,
  .breadcrumb-inner,
  .anchor-nav-inner,
  .footer-dark-inner,
  .age-bar {
    padding-left:max(env(safe-area-inset-left), 14px);
    padding-right:max(env(safe-area-inset-right), 14px);
  }
}

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

/* Universal min touch-target enforcement for inline interactive elements
   on coarse-pointer devices (phones/tablets). */
@media (hover:none) and (pointer:coarse) {
  .link-arrow,
  .phone-link,
  .anchor-link,
  .footer-policy-row a,
  .contact-row-value,
  .footer-dark-col a {
    min-height:44px;
    display:inline-flex;
    align-items:center;
  }
  .footer-dark-col li { margin-bottom:6px; }
}

/* ─── 2 · "Read More / Read Less" expandable system ────
   Uses grid-template-rows: 0fr → 1fr for true content-
   length aware smooth animation (vs max-height hack).
   Progressive enhancement: when JS is absent or content
   fits, no toggle is shown.
   ──────────────────────────────────────────────────────── */
.expandable {
  position:relative;
}
.expandable__content {
  display:grid;
  grid-template-rows:1fr;            /* default: open (desktop) */
  transition:grid-template-rows 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.expandable__inner {
  overflow:hidden;
  min-height:0;                       /* required for grid row collapse */
}
/* Collapsed state (only applied via JS on mobile/tablet) */
.expandable.is-collapsed .expandable__content {
  grid-template-rows:0fr;
}
.expandable.is-collapsed .expandable__preview {
  display:block;
}
.expandable__preview {
  display:none;                       /* shown only when collapsed */
  position:relative;
  margin-bottom:14px;
}
.expandable__preview p {
  font-size:var(--fs-base);
  color:var(--text-body);
  line-height:var(--lh-base);
  margin:0;
}
/* Subtle gradient fade-out at bottom of preview */
.expandable__preview::after {
  content:'';
  position:absolute;
  left:0; right:0; bottom:0;
  height:2.4em;
  background:linear-gradient(180deg, transparent 0%, var(--cream) 92%);
  pointer-events:none;
}
/* Section-specific fade backgrounds (matches surrounding panel) */
.content-section-alt .expandable__preview::after,
.faq-section .expandable__preview::after,
.treatment-category .expandable__preview::after {
  background:linear-gradient(180deg, transparent 0%, var(--cream-dark) 92%);
}
.bento-card .expandable__preview::after,
.consult-card .expandable__preview::after,
.contact-form-wrap .expandable__preview::after {
  background:linear-gradient(180deg, transparent 0%, var(--white) 92%);
}
.consult-card--feature .expandable__preview::after {
  background:linear-gradient(180deg, transparent 0%, #FAF4E9 92%);
}

/* The toggle button : refined, premium */
.expandable__toggle {
  display:none;                       /* shown only when collapse is active */
  margin-top:18px;
  background:transparent;
  border:none;
  padding:12px 0 6px;
  cursor:pointer;
  font-family:'Nunito Sans', sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:var(--ls-wider);
  text-transform:uppercase;
  color:var(--gold-ink);
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  min-height:44px;
  align-items:center;
  gap:10px;
  transition:color 0.25s var(--ease), gap 0.25s var(--ease);
  position:relative;
}
.expandable__toggle::before {
  content:'';
  display:inline-block;
  width:24px; height:1px;
  background:var(--gold-deep);
  transition:background-color 0.25s var(--ease), width 0.25s var(--ease);
}
.expandable__toggle:hover,
.expandable__toggle:focus-visible {
  color:var(--charcoal);
  gap:14px;
  outline:none;
}
.expandable__toggle:hover::before,
.expandable__toggle:focus-visible::before {
  background:var(--charcoal);
  width:32px;
}
.expandable__toggle-icon {
  display:inline-block;
  width:12px; height:12px;
  position:relative;
  margin-left:6px;
  transition:transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.expandable__toggle-icon::before,
.expandable__toggle-icon::after {
  content:'';
  position:absolute;
  background:currentColor;
  transition:transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.expandable__toggle-icon::before {
  top:50%; left:0; right:0;
  height:1.5px; transform:translateY(-50%);
}
.expandable__toggle-icon::after {
  top:0; bottom:0; left:50%;
  width:1.5px; transform:translateX(-50%);
}
/* Open state: morph + into − */
.expandable:not(.is-collapsed) .expandable__toggle-icon::after {
  transform:translateX(-50%) scaleY(0);
}
/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .expandable__content,
  .expandable__toggle,
  .expandable__toggle::before,
  .expandable__toggle-icon::before,
  .expandable__toggle-icon::after {
    transition:none !important;
  }
}

/* Activate the collapse only at mobile/tablet (≤900px) */
@media (min-width:901px) {
  .expandable.is-collapsed .expandable__content {
    grid-template-rows:1fr;          /* always open on desktop */
  }
  .expandable.is-collapsed .expandable__preview { display:none; }
  .expandable__toggle { display:none !important; }
}
@media (max-width:900px) {
  .expandable[data-collapsible="true"] .expandable__toggle {
    display:inline-flex;
  }
}

/* ─── 3 · Refined FAQ accordion : true smooth height ───
   Replaces the max-height:800px hack with grid-rows
   so answers of any length animate gracefully.
   ──────────────────────────────────────────────────────── */
.faq-answer {
  max-height:none;                   /* override prior rule */
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  overflow:hidden;
}
.faq-answer-inner {
  min-height:0;
  overflow:hidden;
  padding-bottom:0;
  transition:padding-bottom 0.4s var(--ease);
}
.faq-btn[aria-expanded="true"] + .faq-answer {
  max-height:none;
  grid-template-rows:1fr;
  padding-bottom:0;                  /* override prior rule */
}
.faq-btn[aria-expanded="true"] + .faq-answer .faq-answer-inner {
  padding-bottom:28px;
}
/* Better touch target on FAQ buttons */
.faq-btn {
  min-height:64px;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}

/* ─── 4 · Mobile nav drawer · backdrop + slide-in ───── */
.nav-backdrop {
  position:fixed;
  inset:0;
  background:rgba(30,26,23,0.42);
  opacity:0;
  visibility:hidden;
  z-index:998;
  transition:opacity 0.35s var(--ease), visibility 0.35s var(--ease);
  -webkit-backdrop-filter:blur(2px);
  backdrop-filter:blur(2px);
}
.nav-backdrop.is-open {
  opacity:1;
  visibility:visible;
}
@media (max-width:900px) {
  .main-nav {
    display:block;                   /* override prior display:none */
    position:fixed;
    top:0; bottom:0; right:0;
    width:min(86vw, 380px);
    background:var(--cream);
    z-index:1001;
    transform:translateX(100%);
    transition:transform 0.42s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    box-shadow:-20px 0 60px -10px rgba(42,36,32,0.18);
    border-left:1px solid rgba(115,88,49,0.16);
    border-bottom:none;
    padding-top:env(safe-area-inset-top, 0);
    padding-bottom:calc(40px + env(safe-area-inset-bottom, 0));
  }
  .main-nav.is-open {
    transform:translateX(0);
  }
  /* Drawer header : gives the panel a finished top */
  .nav-inner::before {
    content:'MENU';
    display:block;
    font-family:'Cormorant Garamond', serif;
    font-size:12px;
    letter-spacing:var(--ls-widest);
    color:var(--gold-ink);
    font-weight:700;
    text-transform:uppercase;
    padding:26px 26px 14px;
    border-bottom:1px solid rgba(115,88,49,0.14);
    background:var(--cream);
    position:sticky;
    top:0;
    z-index:2;
  }
  .nav-inner { padding:0 0 16px; }
  .nav-item {
    width:100%;
    border-bottom:1px solid rgba(115,88,49,0.18);
  }
  .nav-item:last-child { border-bottom:none; }

  /* ── Parent section headings (ABOUT, CONCERNS, LASER & DEVICES,
     SKIN, HAIR & BODY, SHOP, BLOG, CONTACT US) ─────────────
     Treated as elegant editorial section headers in serif,
     anchored by a gold-deep left bar for visual weight. */
  .nav-item > a {
    display:flex;
    align-items:center;
    gap:14px;
    font-family:'Cormorant Garamond', serif;
    font-size:22px;
    font-weight:500;
    letter-spacing:-0.005em;
    text-transform:none;
    color:var(--charcoal);
    padding:20px 26px 12px;
    line-height:1.15;
    text-decoration:none;
    position:relative;
    background:var(--cream-mid);
    border-left:3px solid var(--gold-deep);
  }
  .nav-item > a::before {
    content:'';
    flex-shrink:0;
    width:6px;
    height:6px;
    background:var(--gold-deep);
    transform:rotate(45deg);
    margin-right:2px;
  }
  .nav-item > a:hover,
  .nav-item > a:focus-visible,
  .nav-item > a:active {
    color:var(--gold-ink);
    background:var(--gold-pale);
  }
  /* Leaf-only parents (BLOG, CONTACT US : no dropdown beneath them)
     get a small arrow to signal they navigate immediately */
  .nav-item > a:not([aria-haspopup="true"])::after {
    content:'→';
    margin-left:auto;
    font-family:'Cormorant Garamond', serif;
    font-size:20px;
    color:var(--gold-ink);
    font-weight:400;
    line-height:1;
    transition:transform 0.25s var(--ease);
  }
  .nav-item > a:not([aria-haspopup="true"]):hover::after {
    transform:translateX(4px);
  }
  .nav-arrow-icon { display:none; }    /* dropdowns are always expanded now */

  /* ── Auto-expand ALL sub-menus in the drawer ───────────
     The previous "tap to expand" pattern was unintuitive.
     Now every dropdown is visible by default so the user
     sees the full nav tree as one scrollable list. */
  .dropdown,
  .mega-dropdown {
    display:block !important;
    position:static !important;
    width:100% !important;
    max-width:none !important;
    transform:none !important;
    background:transparent !important;
    border:none !important;
    box-shadow:none !important;
    padding:0 !important;
    min-width:0 !important;
  }
  .mega-grid {
    grid-template-columns:1fr !important;
    padding:0 !important;
    gap:0 !important;
  }
  .mega-col {
    padding:0 !important;
    border-left:none !important;
    border-top:none !important;
  }
  .mega-section {
    margin:0 !important;
    padding:6px 0 4px !important;
    border-top:1px solid rgba(115,88,49,0.10) !important;
  }
  .mega-section:first-child { border-top:none !important; }

  /* ── Sub-group headings inside the mega-menu
     (GENERAL CONCERNS, UPPER FACE, MID FACE, LOWER FACE,
     NECK & DÉCOLLETAGE, SPECIAL) ─────────────────────────── */
  .mega-heading {
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
    font-family:'Nunito Sans', sans-serif !important;
    font-size:12.5px !important;
    font-weight:700 !important;
    letter-spacing:0.18em !important;
    text-transform:uppercase !important;
    color:var(--gold-ink) !important;
    border:none !important;
    padding:18px 26px 10px !important;
    margin:0 !important;
  }
  .mega-heading::before {
    content:'';
    flex-shrink:0;
    width:18px;
    height:1px;
    background:var(--gold-deep);
  }

  /* ── Leaf links (Dr Fatemeh Asadi, Wrinkle Concerns,
     AviClear Laser, etc.) : the items the user actually taps ─ */
  .dropdown a,
  .mega-col a {
    display:block !important;
    font-family:'Nunito Sans', sans-serif !important;
    font-size:16px !important;
    font-weight:500 !important;
    letter-spacing:0 !important;
    color:var(--text-primary) !important;
    text-transform:none !important;
    padding:13px 26px 13px 44px !important;
    line-height:1.4 !important;
    text-decoration:none !important;
    border-bottom:1px solid rgba(115,88,49,0.06) !important;
    transition:background 0.2s var(--ease), color 0.2s var(--ease), padding-left 0.2s var(--ease) !important;
    -webkit-tap-highlight-color:transparent;
    position:relative;
  }
  .dropdown a:last-child,
  .mega-col a:last-of-type,
  .mega-col a:last-child { border-bottom:none !important; }
  .dropdown a::before,
  .mega-col a::before {
    content:'' !important;
    position:absolute !important;
    left:26px !important;
    top:50% !important;
    width:6px !important;
    height:1px !important;
    background:var(--gold) !important;
    transform:translateY(-50%) !important;
    opacity:0.7 !important;
    transition:width 0.2s var(--ease), opacity 0.2s var(--ease) !important;
  }
  .dropdown a:active,
  .mega-col a:active,
  .dropdown a:hover,
  .mega-col a:hover {
    background:rgba(115,88,49,0.06) !important;
    color:var(--gold-ink) !important;
    padding-left:52px !important;
  }
  .dropdown a:active::before,
  .mega-col a:active::before,
  .dropdown a:hover::before,
  .mega-col a:hover::before {
    width:14px !important;
    opacity:1 !important;
    background:var(--gold-deep) !important;
  }

  /* ── Mega-footer (the "Not sure where to start?" panel) ── */
  .mega-footer {
    flex-direction:column !important;
    align-items:stretch !important;
    padding:20px 26px 24px !important;
    margin:14px 0 0 !important;
    background:linear-gradient(180deg, var(--cream-mid) 0%, var(--cream-dark) 100%) !important;
    border-top:1px solid rgba(115,88,49,0.20) !important;
    gap:14px !important;
  }
  .mega-footer-text {
    font-family:'Cormorant Garamond', serif !important;
    font-size:16px !important;
    line-height:1.45 !important;
    font-style:italic !important;
    color:var(--text-body) !important;
  }
  .mega-footer-text strong {
    color:var(--charcoal) !important;
    font-style:normal !important;
  }
  .mega-footer-cta {
    width:100% !important;
    justify-content:center !important;
    padding:15px 22px !important;
    font-size:11.5px !important;
    background:var(--charcoal) !important;
    color:var(--cream) !important;
    border-color:var(--charcoal) !important;
  }

  /* Body lock when drawer is open */
  body[data-nav-open="true"] {
    overflow:hidden;
    position:fixed;
    width:100%;
  }
}

/* ─── 5 · iPad / Tablet (601–1024px) refined layouts ── */
@media (min-width:601px) and (max-width:1024px) {
  /* Generally restore breathing room on tablets */
  .content-section,
  .content-section-alt {
    padding:clamp(56px, 7vw, 84px) 32px;
  }
  .page-hero {
    padding:56px 32px 64px;
    gap:32px;
    grid-template-columns:1fr;
  }
  .hero-image-col {
    aspect-ratio:16/9;
    max-height:46vh;
  }
  .hero-page-title {
    font-size:clamp(40px, 5.4vw, 64px);
  }
  .hero-bio {
    font-size:18px;
    line-height:1.7;
  }
  /* 5-up credential row → 3-up on tablet (avoids ugly 5/2 stagger) */
  .credential-row { padding:30px 28px; }
  .credential-item {
    flex:1 1 calc(33.333% - 0px);
    min-width:140px;
    padding:14px 18px;
  }
  .credential-item::after,
  .credential-item::before { display:none; }
  .credential-item:nth-child(n+1):nth-child(-n+3) {
    border-bottom:1px solid rgba(201,169,110,0.30);
    padding-bottom:22px;
    margin-bottom:6px;
  }
  /* 6-col bento → 2-col tablet */
  .bento-grid {
    grid-template-columns:repeat(2, 1fr);
    gap:16px;
  }
  .bento-card--lg { grid-column:span 2; }
  .bento-card--md { grid-column:span 1; }
  .bento-card--sm { grid-column:span 1; }
  .bento-card--feature { grid-column:span 2; }
  .bento-card { padding:32px 28px; }
  /* Consultation 3-up → tablet keeps 3-up but tighter */
  .consultation-steps-grid {
    grid-template-columns:repeat(3, 1fr);
    gap:14px;
  }
  .consult-card { padding:32px 22px; }
  .consultation-step-title { font-size:21px; }
  /* Physician feature */
  .physician-feature-inner {
    grid-template-columns:1fr;
    gap:44px;
  }
  .physician-feature { padding:clamp(64px, 8vw, 88px) 32px; }
  .physician-name { font-size:clamp(36px, 5vw, 52px); }
  .physician-portrait { aspect-ratio:3/4; width:100%; max-width:480px; margin:0 auto; }
  /* Contact: stack with refined spacing */
  .contact-inner {
    grid-template-columns:1fr;
    gap:44px;
  }
  .contact-intro { position:static; max-width:none; }
  .contact-form-wrap { padding:44px 36px; }
  /* Footer: 5-col → 2-col tablet */
  .footer-dark-cols {
    grid-template-columns:repeat(2, 1fr);
    gap:36px 28px;
  }
  .footer-dark-inner { padding:64px 32px 0; }
}

/* Specifically iPad portrait sweet-spot polish */
@media (min-width:768px) and (max-width:1024px) {
  .editorial-interlude { padding:90px 32px; }
  .cta-section { padding:88px 32px; }
  .cta-inner { padding:54px 44px; }
  .mid-cta { padding:64px 32px; }
}

/* ─── 6 · Mobile (≤600px) refinements ────────────────── */
@media (max-width:600px) {
  /* Smoother section padding rhythm */
  :root {
    --sp-section:clamp(56px, 9vw, 72px);
  }
  .content-section,
  .content-section-alt {
    padding:60px 20px;
  }
  /* Hero refinement */
  .page-hero {
    padding:36px 20px 44px;
    gap:24px;
  }
  .hero-text-col { padding:0; }
  .hero-page-title {
    font-size:clamp(32px, 9.6vw, 44px);
    line-height:1.06;
    margin-bottom:18px;
  }
  .hero-bio {
    font-size:16.5px;
    line-height:1.65;
  }
  .hero-image-col {
    aspect-ratio:4/3;
    max-height:50vh;
    border-radius:3px;
  }
  /* Eyebrow scaling */
  .section-eyebrow {
    font-size:10.5px;
    letter-spacing:0.2em;
    margin-bottom:12px;
  }
  /* Section titles : tighter line-height for stacked words */
  .section-title {
    font-size:clamp(30px, 8.4vw, 40px);
    line-height:1.08;
    margin-bottom:14px;
  }
  /* Body text : slightly more compact, easier scan */
  .body-text {
    font-size:16.5px;
    line-height:1.72;
    margin-bottom:16px;
  }
  /* Credential row · stacked but refined */
  .credential-row { padding:28px 18px; }
  .credential-item {
    padding:18px 0;
    min-height:auto;
  }
  .credential-label {
    font-size:10.5px;
    letter-spacing:0.2em;
    margin-bottom:8px;
  }
  .credential-value { font-size:17px; }
  .credential-value i.i-italic { font-size:13.5px; margin-top:2px; }
  /* Buttons : wider tap area, slightly smaller text */
  .btn-primary,
  .btn-secondary {
    padding:16px 28px;
    font-size:13px;
    letter-spacing:0.1em;
    width:100%;
    justify-content:center;
    min-height:52px;
  }
  /* Quote card */
  .bdh-quote {
    padding:24px 22px;
    margin:22px 0;
  }
  .bdh-quote blockquote {
    font-size:18.5px;
    line-height:1.5;
    margin-bottom:14px;
  }
  /* Bento : refined single column */
  .bento-grid { gap:12px; margin-top:6px; }
  .bento-card { padding:28px 22px; }
  .bento-title { font-size:21px; line-height:1.18; margin-bottom:12px; }
  .bento-body { font-size:15.5px; line-height:1.68; }
  .bento-icon { width:44px; height:44px; margin-bottom:16px; }
  /* Editorial interlude : tighter & elegant */
  .editorial-interlude { padding:70px 20px; }
  .editorial-interlude::before { top:38px; }
  .editorial-interlude-eyebrow { margin-bottom:28px; font-size:10.5px; }
  .editorial-interlude-quote {
    font-size:clamp(22px, 6.4vw, 30px);
    line-height:1.36;
    margin-bottom:34px;
  }
  .editorial-interlude-quote::before,
  .editorial-interlude-quote::after {
    width:5px; height:5px;
    margin:0 9px;
  }
  /* Consultation cards */
  .consult-card { padding:34px 24px; }
  .consult-num { font-size:38px; margin-bottom:14px; }
  .consultation-step-title { font-size:21px; margin-bottom:12px; }
  .consult-tag {
    font-size:10.5px;
    padding:9px 18px;
    letter-spacing:0.22em;
    top:-14px;
  }
  /* Treatments */
  .treatment-category {
    padding:24px 22px;
    margin-top:24px;
  }
  .treatment-category-label {
    font-size:10.5px;
    letter-spacing:0.2em;
    margin-bottom:14px;
  }
  .treatment-name { font-size:20px; margin-bottom:6px; }
  .treatment-provider {
    font-size:11.5px;
    letter-spacing:0.16em;
    margin-bottom:12px;
  }
  .treatment-body { font-size:16px; line-height:1.7; }
  .treatment-item { margin-bottom:22px; padding-bottom:22px; }
  .treatment-footnote {
    padding:18px 20px;
    font-size:13.5px;
    line-height:1.7;
    margin-top:26px;
  }
  /* FAQ */
  .faq-section { padding:24px 20px; }
  .faq-btn {
    font-size:17.5px;
    padding:18px 0;
    gap:14px;
    line-height:1.38;
  }
  .faq-icon { width:18px; height:18px; margin-top:6px; }
  .faq-answer-inner p {
    font-size:15.5px;
    line-height:1.72;
  }
  .faq-btn[aria-expanded="true"] + .faq-answer .faq-answer-inner {
    padding-bottom:22px;
  }
  /* Physician feature */
  .physician-feature { padding:64px 20px; }
  .physician-feature-inner { gap:36px; }
  .physician-name { font-size:clamp(34px, 8.8vw, 44px); }
  .physician-credentials { font-size:17px; margin-bottom:24px; }
  .physician-philosophy { font-size:16.5px; line-height:1.72; }
  .physician-meta { padding:20px 0; gap:20px; margin-bottom:28px; }
  .physician-meta-value { font-size:16.5px; }
  .physician-meta-value i.i-italic { font-size:13px; }
  .physician-actions { gap:14px; flex-direction:column; align-items:stretch; }
  .physician-actions .btn-primary { width:100%; justify-content:center; }
  /* Mid CTA */
  .mid-cta { padding:54px 20px; }
  .mid-cta-eyebrow { font-size:10.5px; }
  .mid-cta-title {
    font-size:clamp(26px, 7.6vw, 36px);
    line-height:1.14;
  }
  .mid-cta-sub { font-size:15.5px; margin-bottom:26px; }
  /* CTA section */
  .cta-section { padding:60px 16px; }
  .cta-inner {
    padding:42px 26px;
    box-shadow:
      0 0 0 4px rgba(254,252,248,0.55),
      0 0 0 5px rgba(115,88,49,0.45),
      0 20px 50px -24px rgba(42,36,32,0.22);
  }
  .cta-section::before,
  .cta-section::after {
    width:44px; height:44px;
    top:18px;
  }
  .cta-section::before { left:18px; }
  .cta-section::after { right:18px; }
  .cta-title {
    font-size:clamp(28px, 8.4vw, 40px);
    line-height:1.12;
  }
  .cta-sub { font-size:16px; line-height:1.65; margin-bottom:26px; }
  /* Contact */
  .contact-section { padding:60px 16px; }
  .contact-title { font-size:clamp(34px, 8.8vw, 46px); }
  .contact-lede { font-size:16.5px; }
  .contact-form-wrap {
    padding:32px 22px;
  }
  .form-card-title {
    font-size:24px;
    margin-bottom:28px;
  }
  .form-label { font-size:10.5px; letter-spacing:0.16em; }
  .form-input {
    font-size:16px;                  /* iOS zoom prevention */
  }
  /* Anchor nav active dot : more visible on mobile */
  .anchor-link {
    font-size:12px;
    padding:14px 4px;
    letter-spacing:0.1em;
  }
  .anchor-link.is-active {
    color:var(--charcoal);
  }
  .anchor-link.is-active::after {
    height:2.5px;
    background:var(--gold-deep);
  }
  /* Footer micro */
  .footer-dark-inner { padding:54px 20px 0; }
  .footer-dark-wordmark { font-size:24px; letter-spacing:0.14em; }
  .footer-dark-heading { font-size:17px; margin-bottom:18px; padding-bottom:12px; }
  .footer-dark-col a { font-size:14px; }
  .footer-dark-bottom {
    padding:28px 0 36px;
    gap:20px;
  }
  .footer-policy-row {
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    margin-top:14px;
    padding-top:14px;
  }
  .footer-policy-row li:not(:last-child)::after {
    display:none;
  }
  .footer-policy-row li {
    padding:8px 0;
    width:100%;
    border-bottom:1px solid rgba(42,36,32,0.10);
  }
  .footer-policy-row li:last-child { border-bottom:none; }
  .footer-policy-row a { font-size:11px; }
  .footer-dark-actions { width:100%; flex-direction:column; gap:8px; }
  .footer-action-link {
    width:100%;
    justify-content:center;
    padding:14px 20px;
  }
}

/* ─── 7 · Small mobile (≤400px) micro-adjustments ────── */
@media (max-width:400px) {
  .header-inner { padding:0 12px; height:58px; }
  .site-logo .wordmark { font-size:13px; letter-spacing:0.04em; }
  .btn-book {
    padding:8px 11px;
    font-size:11px;
    letter-spacing:0.04em;
  }
  .anchor-nav { top:58px; }
  .content-section,
  .content-section-alt { padding:52px 16px; }
  .hero-page-title { font-size:30px; }
  .section-title { font-size:28px; }
  .editorial-interlude-quote { font-size:21px; }
  .cta-title { font-size:26px; }
  .contact-title { font-size:32px; }
  .form-row { gap:0; }
  .bdh-quote { padding:22px 18px; }
  .faq-btn { font-size:16.5px; }
}

/* ─── Image lazy-load polish ──────────────────────────── */
.img-placeholder img,
.hero-image-col img,
.physician-portrait img {
  transition:opacity 0.6s ease;
}

/* ─── Print-friendly fallback (expand all collapsibles) ─ */
@media print {
  .expandable.is-collapsed .expandable__content { grid-template-rows:1fr !important; }
  .expandable__preview { display:none !important; }
  .expandable__toggle { display:none !important; }
  .faq-answer { grid-template-rows:1fr !important; }
  .faq-answer-inner { padding-bottom:18px !important; }
  .nav-backdrop, .main-nav { display:none !important; }
}
/* ═══════════════════════════════════════════════════════════
   ▲▲▲  END v41 · MOBILE & TABLET REFINEMENT LAYER  ▲▲▲
   ═══════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════
   WOMEN'S HEALTH · page-specific layout additions
   ═══════════════════════════════════════════════════════ */

/* Two-column editorial content grid */
.two-col-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
  margin-top: 40px;
}

@media (max-width: 1000px) {
  .two-col-content { grid-template-columns: 1fr; gap: 0; }
}

/* Content lead paragraph: Cormorant serif intro */
.content-lead {
  font-family: 'Cormorant Garamond', serif;
  font-size: var(--fs-md);
  font-weight: 500;
  line-height: 1.58;
  color: var(--text-primary);
  margin-bottom: 28px;
  letter-spacing: var(--ls-snug);
}

/* Consultation section: 4-column grid */
.consultation-steps-grid.four-col {
  grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 900px) {
  .consultation-steps-grid.four-col { grid-template-columns: 1fr 1fr; gap: 18px; }
}

@media (max-width: 600px) {
  .consultation-steps-grid.four-col { grid-template-columns: 1fr; }
}


/* BDH LOGO LOCKUP */
.site-logo {
  display:flex; flex-direction:row; align-items:center; justify-content:center;
  gap:20px; text-align:left; text-decoration:none;
}
.logo-mark {
  width:44px; height:44px; object-fit:contain;
  flex-shrink:0; display:block; vertical-align:middle;
}
.logo-text-group {
  display:flex; flex-direction:column; justify-content:center;
  padding-left:20px; border-left:1px solid rgba(201,169,110,0.4);
}
.footer-dark-logo {
  display:flex; flex-direction:row; align-items:center;
  gap:24px; text-align:left; text-decoration:none;
}
.footer-logo-mark {
  width:52px; height:52px; object-fit:contain; flex-shrink:0; display:block;
}
.footer-logo-text {
  display:flex; flex-direction:column; justify-content:center;
  padding-left:24px; border-left:1px solid rgba(201,169,110,0.4);
}
@media (max-width:560px) {
  .logo-mark { width:34px; height:34px; }
  .logo-text-group { padding-left:14px; }
  .site-logo { gap:12px; }
}
@media (max-width:400px) {
  .logo-mark { width:30px; height:30px; }
  .logo-text-group { padding-left:12px; }
  .site-logo { gap:10px; }
}


/* ═══ bloco 2: blog article add-ons ═══ */

/* ═══════════════════════════════════════════════════════════
   BLOG ARTICLE ADD-ONS · BDH design system v40
   Only components the house system does not already provide:
   figures, the figure viewer, the comparison table, callouts
   and the reference list. Everything else uses page-hero,
   content-section, editorial-interlude, mid-cta, etc.
   Palette v2 FINAL only.
   ═══════════════════════════════════════════════════════════ */

/* ── Tab bar overflow guard ─────────────────────────────────
   The theme only makes .anchor-nav-inner scrollable below 900px.
   Between 900px and ~1100px a longer label set overflows the page.
   Scoped here so the shared stylesheet is untouched. No visual
   change when the tabs already fit. ── */
.anchor-nav-inner {
  overflow-x:auto; -webkit-overflow-scrolling:touch;
  scrollbar-width:none; flex-wrap:nowrap;
}
.anchor-nav-inner::-webkit-scrollbar { display:none; }
.anchor-link { white-space:nowrap; }

/* ── Article byline in the hero ─────────────────────────── */
.art-byline {
  display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center;
  font-family:'Nunito Sans',sans-serif; font-size:12.5px;
  color:var(--text-muted); margin:22px 0 0;
  padding-top:18px; border-top:1px solid rgba(201,169,110,.4);
}
.art-byline a {
  color:var(--gold-deep); text-decoration:none;
  border-bottom:1px solid rgba(115,88,49,.3);
}
.art-byline a:hover { color:var(--charcoal); border-color:var(--charcoal); }
.art-byline strong { color:var(--text-sub); font-weight:600; }
.art-byline__sep { color:var(--cream-dark); }

.art-hero-slot {
  width:100%; height:100%; display:flex;
  align-items:center; justify-content:center; text-align:center;
  font-family:'Cormorant Garamond',Georgia,serif; font-size:13px;
  font-style:italic; letter-spacing:.05em; color:var(--warm-mid);
  padding:24px;
}

/* ── Figures ────────────────────────────────────────────── */
.art-figure { margin:40px auto 8px; max-width:820px; }
.art-figure img {
  width:100%; height:auto; display:block;
  border:1px solid var(--cream-dark); background:var(--white);
}
.art-figure__btn {
  display:block; width:100%; padding:0; border:none; background:none;
  cursor:zoom-in; position:relative; font:inherit; color:inherit;
}
.art-figure__hint {
  position:absolute; right:12px; bottom:12px;
  font-family:'Nunito Sans',sans-serif; font-size:10.5px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--charcoal); background:rgba(254,252,248,.92);
  border:1px solid var(--cream-dark); padding:7px 11px; pointer-events:none;
}
.art-figure__brand {
  display:flex; align-items:center; gap:9px;
  padding:9px 12px; margin-top:-1px;
  background:var(--cream-mid); border:1px solid var(--cream-dark);
}
.art-figure__brand img { width:22px; height:22px; object-fit:contain; flex-shrink:0; display:block; }
.art-figure__brand span {
  font-family:'Nunito Sans',sans-serif; font-size:10px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--gold-ink);
}
.art-figure__brand em {
  font-family:'Nunito Sans',sans-serif; font-style:normal; font-size:10px;
  letter-spacing:.1em; color:var(--text-muted); margin-left:auto;
}
@media(max-width:520px){ .art-figure__brand em { display:none; } }
.art-figure figcaption {
  font-family:'Nunito Sans',sans-serif; font-size:12.5px; line-height:1.65;
  color:var(--text-muted); margin-top:14px; padding-left:14px;
  border-left:2px solid var(--gold);
}
.art-figure figcaption b { color:var(--text-sub); font-weight:700; }

/* ── Full-screen figure viewer ──────────────────────────── */
.art-lightbox {
  position:fixed; inset:0; z-index:9999; display:none;
  background:rgba(30,26,23,.94);
  overflow:auto; -webkit-overflow-scrolling:touch;
}
.art-lightbox.is-open { display:block; }
.art-lightbox__stage {
  min-width:100%; width:max-content; margin:0 auto;
  padding:64px 12px 84px; box-sizing:border-box;
}
.art-lightbox__img {
  max-width:none; width:auto; height:auto; display:block;
  margin:0 auto; background:var(--white);
}
.art-lightbox__brand {
  position:fixed; top:calc(14px + env(safe-area-inset-top,0px)); left:14px;
  display:flex; align-items:center; gap:9px;
}
.art-lightbox__brand img { width:30px; height:30px; object-fit:contain; display:block; }
.art-lightbox__brand span {
  font-family:'Nunito Sans',sans-serif; font-size:10px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--gold-light);
}
@media(max-width:420px){ .art-lightbox__brand span { display:none; } }
.art-lightbox__close {
  position:fixed; top:calc(12px + env(safe-area-inset-top,0px)); right:12px;
  width:48px; height:48px; border:none; cursor:pointer;
  background:rgba(254,252,248,.95); color:var(--charcoal);
  font-size:22px; line-height:1; font-family:'Nunito Sans',sans-serif;
}
.art-lightbox__cap {
  position:fixed; left:0; right:0; bottom:calc(env(safe-area-inset-bottom,0px));
  font-family:'Nunito Sans',sans-serif; font-size:12px; line-height:1.5;
  color:rgba(250,247,242,.8); background:rgba(30,26,23,.9);
  padding:12px 16px; text-align:center;
}
body.art-lightbox-open { overflow:hidden; }

/* ── Comparison table ───────────────────────────────────── */
.art-table-wrap { overflow-x:auto; max-width:100%; margin:36px 0 0; -webkit-overflow-scrolling:touch; }
.art-table {
  width:100%; border-collapse:collapse; background:var(--white);
  border:1px solid var(--cream-dark); font-family:'Nunito Sans',sans-serif;
  min-width:560px;
}
.art-table th, .art-table td {
  padding:14px 18px; text-align:left; font-size:14.5px; line-height:1.6;
  border-bottom:1px solid var(--cream-dark); vertical-align:top;
}
.art-table thead th {
  font-size:10.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold-ink); background:var(--cream-mid);
}
.art-table tbody th {
  font-weight:600; color:var(--text-primary); background:var(--cream); width:30%;
}
.art-table td { color:var(--text-body); }
.art-table tbody tr:last-child th, .art-table tbody tr:last-child td { border-bottom:none; }

/* ── Callouts ───────────────────────────────────────────── */
.art-keypoints {
  background:var(--gold-pale); border-left:2px solid var(--gold);
  padding:28px 30px; margin:36px 0 0;
}
.art-keypoints__label {
  font-family:'Nunito Sans',sans-serif; font-size:10.5px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--gold-bronze);
  display:block; margin-bottom:14px;
}
.art-keypoints ul { margin:0; padding-left:18px; }
.art-keypoints li {
  font-family:'Nunito Sans',sans-serif; font-size:15.5px; line-height:1.72;
  color:var(--text-body); margin-bottom:9px;
}
.art-keypoints li:last-child { margin-bottom:0; }
.art-keypoints li::marker { color:var(--gold); }

.art-evidence {
  background:var(--white); border:1px solid var(--cream-dark);
  border-left:2px solid var(--gold); padding:28px 30px; margin:36px 0 0;
}
.art-evidence__label {
  font-family:'Nunito Sans',sans-serif; font-size:10.5px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--gold-ink);
  display:block; margin-bottom:14px;
}
.art-evidence p {
  font-family:'Nunito Sans',sans-serif; font-size:15.5px; line-height:1.75;
  color:var(--text-body); margin:0 0 12px;
}
.art-evidence p:last-child { margin-bottom:0; }

/* ── Step lists ─────────────────────────────────────────── */
.art-steps { margin:0 0 8px; padding-left:20px; }
.art-steps li {
  font-family:'Nunito Sans',sans-serif; font-size:16.5px; line-height:1.75;
  color:var(--text-body); margin-bottom:11px;
}
.art-steps li::marker { color:var(--gold); }
.art-steps strong { color:var(--text-primary); font-weight:700; }
.art-steps a { color:var(--gold-deep); text-decoration:none; border-bottom:1px solid rgba(115,88,49,.35); }
.art-steps a:hover { color:var(--charcoal); border-color:var(--charcoal); }

.art-subhead {
  font-family:'Nunito Sans',sans-serif; font-size:15.5px; font-weight:700;
  letter-spacing:.03em; color:var(--text-primary); margin:30px 0 12px;
}

/* ── Citations and references ───────────────────────────── */
.art-ref {
  font-size:.66em; vertical-align:super; line-height:0;
  color:var(--gold-deep); text-decoration:none; font-weight:700;
  padding:0 1px; border:none;
}
.art-ref:hover { color:var(--charcoal); }

.art-sources ol {
  font-family:'Nunito Sans',sans-serif; font-size:12.5px; line-height:1.7;
  color:var(--text-muted); padding-left:22px; margin:0;
}
.art-sources li { margin-bottom:10px; scroll-margin-top:120px; }
.art-sources li a {
  color:var(--gold-deep); text-decoration:none;
  border-bottom:1px solid rgba(115,88,49,.3);
}
.art-sources li a:hover { color:var(--charcoal); border-color:var(--charcoal); }
.art-sources li.is-retracted { color:var(--text-sub); }
.art-sources .ref-flag {
  display:inline-block; font-size:9.5px; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:var(--warm-brown);
  background:none; border:1px solid rgba(92,74,58,.45);
  padding:1px 7px; margin:0 5px; vertical-align:1px; white-space:nowrap;
}

.art-disclaimer {
  background:var(--cream-mid); border:1px solid var(--cream-dark);
  padding:26px 28px; margin:36px 0 0;
}
.art-disclaimer__label {
  font-family:'Nunito Sans',sans-serif; font-size:10.5px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--gold-ink);
  display:block; margin-bottom:12px;
}
.art-disclaimer p {
  font-family:'Nunito Sans',sans-serif; font-size:13.5px; line-height:1.72;
  color:var(--text-sub); margin:0 0 10px;
}
.art-disclaimer p:last-child { margin-bottom:0; }
.art-disclaimer a { color:var(--gold-deep); text-decoration:none; border-bottom:1px solid rgba(115,88,49,.35); }

/* ── Print ──────────────────────────────────────────────── */
@media print {
  .site-header,.main-nav,.anchor-nav,.age-bar,.search-overlay,
  .mid-cta,.cta-section,.contact-section { display:none !important; }
  .art-figure { page-break-inside:avoid; }
}


/* ═══ bloco 3: layout do artigo (article-*) ═══ */

/* The system sets body{overflow-x:hidden}, which disables position:sticky for
   descendants. overflow:clip stops the same horizontal overflow without creating a
   scroll container, so the contents rail sticks. Older engines keep hidden. */
@supports (overflow:clip){ body{ overflow-x:clip; } }

.article-wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,5vw,48px);}
.article-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(32px,5vw,60px);}
@media(min-width:1040px){.article-grid{grid-template-columns:minmax(0,1fr) 262px;align-items:start;}}

/* Hero */
.article-hero{padding:clamp(36px,5vw,64px) 0 clamp(18px,3vw,28px);max-width:820px;}
.article-hero__cat{display:inline-block;font-family:'Nunito Sans',sans-serif;font-size:11px;
  font-weight:700;letter-spacing:0.22em;text-transform:uppercase;color:var(--gold-ink,#735831);}
.article-hero__title{font-family:'Cormorant Garamond',serif;font-weight:400;
  font-size:clamp(32px,4.4vw,54px);line-height:1.14;letter-spacing:-0.012em;
  color:var(--text-primary,#1E1A17);margin:15px 0 0;}
.article-hero__title i{display:block;font-style:italic;color:var(--gold-deep,#8B6F3F);margin-top:.12em;}
.article-hero__rule{width:62px;height:1px;background:var(--gold,#C9A96E);margin:24px 0;}
.article-hero__deck{font-family:'Nunito Sans',sans-serif;font-size:clamp(17px,1.6vw,19.5px);
  line-height:1.78;color:var(--text-sub,#4A3D32);max-width:62ch;}
.article-hero .art-byline{margin-top:26px;padding-top:18px;
  border-top:1px solid var(--cream-dark,#EDE4D6);}

/* Contents rail */
.toc{font-family:'Nunito Sans',sans-serif;}
@media(min-width:1040px){.toc{position:sticky;top:150px;}}
@media(max-width:1039px){
  .article-grid{display:flex;flex-direction:column;gap:0;}
  .toc{order:-1;margin-bottom:34px;padding:20px 22px;background:var(--white,#FEFCF8);
       border:1px solid var(--cream-dark,#EDE4D6);border-radius:3px;}
}
.toc__label{font-size:10.5px;font-weight:700;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--gold-ink,#735831);padding-bottom:11px;border-bottom:1px solid var(--gold,#C9A96E);}
.toc ol{list-style:none;counter-reset:toc;margin:13px 0 0;padding:0;}
.toc li{counter-increment:toc;}
.toc a{display:block;padding:9px 0 9px 27px;position:relative;font-size:13.5px;line-height:1.45;
  color:var(--text-sub,#4A3D32);text-decoration:none;
  border-bottom:1px solid var(--cream-dark,#EDE4D6);transition:all .3s ease;}
.toc a::before{content:counter(toc,decimal-leading-zero);position:absolute;left:0;top:9px;
  font-size:10px;color:var(--gold,#C9A96E);}
.toc a:hover{color:var(--gold-deep,#8B6F3F);padding-left:31px;}

/* Prose */
.prose{max-width:68ch;}
.prose h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(26px,3vw,34px);
  line-height:1.22;letter-spacing:-0.012em;color:var(--text-primary,#1E1A17);
  margin:clamp(40px,4.5vw,56px) 0 14px;scroll-margin-top:150px;}
.prose h2 i{font-style:italic;color:var(--gold-deep,#8B6F3F);}
.prose .art-subhead{margin-top:28px;}
.prose p{font-family:'Nunito Sans',sans-serif;font-size:17.5px;line-height:1.78;
  color:var(--text-body,#2D2622);margin-bottom:18px;}
.prose a{color:var(--gold-deep,#8B6F3F);text-decoration:none;
  border-bottom:1px solid var(--gold-light,#DEC28E);}
.prose a:hover{color:var(--gold-bronze,#5C4A28);}
.prose a.art-ref{border-bottom:0;}
.prose strong{font-weight:700;color:var(--text-primary,#1E1A17);}
.prose .art-figure,.prose .art-table-wrap,.prose .art-keypoints,
.prose .art-evidence,.prose .art-steps{margin-top:24px;margin-bottom:28px;}

/* "Right for you if" panels */
.pick{border:1px solid var(--cream-dark,#EDE4D6);border-radius:3px;background:var(--white,#FEFCF8);
  padding:clamp(22px,3vw,30px);margin:24px 0 28px;}
.pick--deep{background:var(--cream-mid,#F5EFE5);}
.pick__label{display:block;font-family:'Nunito Sans',sans-serif;font-size:10.5px;font-weight:700;
  letter-spacing:0.22em;text-transform:uppercase;color:var(--gold-ink,#735831);margin-bottom:14px;}
.pick .art-steps{margin:0;}
.pick__foot{margin:16px 0 0!important;font-size:15.5px!important;color:var(--text-sub,#4A3D32)!important;}

/* Retraction note: reads as a sentence rather than a floating badge */
.art-sources .ref-retracted{display:block;margin-top:5px;color:var(--warm-brown,#5C4A3A);}
.art-sources .ref-retracted strong{font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;font-size:11px;color:var(--warm-brown,#5C4A3A);}

/* Related */
.related{padding:clamp(42px,5vw,68px) 0;border-top:1px solid var(--cream-dark,#EDE4D6);}
.related__label{font-family:'Nunito Sans',sans-serif;font-size:11px;font-weight:700;
  letter-spacing:0.22em;text-transform:uppercase;color:var(--gold-ink,#735831);}
.related__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:1px;
  background:var(--cream-dark,#EDE4D6);border:1px solid var(--cream-dark,#EDE4D6);
  margin-top:20px;border-radius:3px;overflow:hidden;}
.related__card{background:var(--cream,#FAF7F2);padding:24px 22px;text-decoration:none;display:block;
  transition:background .3s ease;}
.related__card:hover{background:var(--white,#FEFCF8);}
.related__cat{font-family:'Nunito Sans',sans-serif;font-size:10.5px;font-weight:700;
  letter-spacing:0.22em;text-transform:uppercase;color:var(--gold-ink,#735831);}
.related__title{display:block;font-family:'Cormorant Garamond',serif;font-size:21px;line-height:1.28;
  color:var(--text-primary,#1E1A17);margin:9px 0 7px;}
.related__desc{font-family:'Nunito Sans',sans-serif;font-size:14px;line-height:1.6;
  color:var(--text-sub,#4A3D32);}

/* ══ CONTRAST ══════════════════════════════════════════════
   --gold-deep (#8B6F3F) measures 4.42:1 on --cream, 4.13:1 on --cream-mid
   and 3.79:1 on --gold-pale. WCAG AA needs 4.5:1 for text below 18.66px,
   so every inline link and citation marker was failing. #7C6338 is the
   same hue a shade deeper: 5.31:1 on cream, 4.96:1 on cream-mid,
   4.56:1 on gold-pale. Large decorative uses of --gold-deep are left
   alone, since they only need 3:1. */
:root{--gold-link:#7C6338;}
.prose a,.art-sources li a,.art-disclaimer a,.faq-da a,.pick__foot a,
.art-evidence a,.related__card:hover .related__title{color:var(--gold-link);}
.prose a:hover,.art-sources li a:hover,.art-disclaimer a:hover{color:var(--charcoal,#2A2420);}
.prose .art-ref{color:var(--gold-link);}

/* Caption and reference type was 12.5px on desktop as well as mobile. */
.art-figure figcaption,.art-sources li{font-size:13px;line-height:1.7;}
.art-table caption{caption-side:top;text-align:left;padding:0 0 14px;
  font-family:'Nunito Sans',sans-serif;font-size:13px;line-height:1.6;
  color:var(--text-sub,#4A3D32);}

/* ══ MOBILE & TABLET ═══════════════════════════════════════
   Audited on iPhone SE/13 mini/15/15 Pro Max, Pixel 7, Galaxy S20,
   iPad mini/Air/Pro 11 portrait and Pro 11/12.9 landscape.        */

/* Anchor landings: the sticky chrome is ~59px on phones, not the 150px
   the desktop layout allows for, so headings were landing a quarter of
   the way down the screen. */
@media (max-width:1039px){
  html{scroll-padding-top:72px;}                  /* was 132px, sized for desktop chrome */
  .prose h2,.art-sources li,#references,.related{scroll-margin-top:0;}
}

/* Touch targets: Apple HIG asks for 44x44pt, Android for 48x48dp. */
/* Any touch pointer, not just narrow screens: an iPad Pro in landscape is
   1194px wide and still finger-driven. */
@media (max-width:1039px),(pointer:coarse){
  .toc a{padding-top:12px;padding-bottom:12px;}          /* 39px -> 45px */
  .breadcrumb a,.breadcrumb .current{display:inline-block;padding:6px 0;}
}
.hamburger,.search-btn{position:relative;}
.hamburger::after,.search-btn::after{
  content:'';position:absolute;top:50%;left:50%;width:48px;height:48px;
  transform:translate(-50%,-50%);}
/* Superscript citation markers were 9-12px tall. Padding plus a negative
   margin gives a 24px+ target without opening up the line height. */
.prose .art-ref{display:inline-block;min-width:20px;text-align:center;
  line-height:1;padding:8px 5px;margin:-8px 0;}

/* Small type is harder to read at arm's length on a phone. */
@media (max-width:600px){
  .art-figure figcaption{font-size:13.5px;line-height:1.62;}
  .art-sources ol{font-size:13px;line-height:1.72;}
  .art-lightbox__cap{font-size:13px;}
}

/* Enlarged diagrams open at full size and pan in both axes, which is the
   right behaviour for dense artwork. The stage was wider than the screen,
   so bound it to the viewport and let the close button stay reachable. */
@media (max-width:1039px){
  .art-lightbox__stage{max-width:100vw;}
  .art-lightbox__close{position:fixed;top:calc(env(safe-area-inset-top,0px) + 12px);
    right:calc(env(safe-area-inset-right,0px) + 12px);z-index:5;}
}

/* Four cards at three columns leaves one stranded on the second row.
   Tablet widths get a 2x2 block instead. */
@media (min-width:600px) and (max-width:1039px){
  .related__grid{grid-template-columns:repeat(2,1fr);}
}


/* ══ INK & CONTRAST ════════════════════════════════════════
   1. Titles, subtitles, eyebrows and labels move from gold to dark ink.
      Links stay gold so they are still identifiable as links.
   2. The secondary ink tiers were light enough to read as grey on cream.
   Scoped to the light sections: the dark footer keeps its own palette. */

/* Headings, and the italic second half of each heading */
.article-hero__title,.article-hero__title i,
.prose h2,.prose h2 i,.prose h3,
.prose .art-subhead,
main .section-title,main .section-title i,
.cta-title,.cta-title i.i-italic,
main .section-title i.i-italic,
.related__title{color:var(--text-primary,#1E1A17);}

/* Small uppercase eyebrows, labels and category tags */
.article-hero__cat,.art-keypoints__label,.pick__label,.toc__label,
main .section-eyebrow,.cta-eyebrow,.art-disclaimer__label,
.related__label,.related__cat,.prose-kicker,
.art-table thead th,.art-figure figcaption b,
.art-sources .ref-retracted strong{color:var(--charcoal,#2A2420);}

/* Captions, byline and meta were on --text-muted (#6B5949, 6.2:1).
   Moving to --text-sub takes them to 9.8:1. */
.art-figure figcaption,.art-byline,.art-table caption,
.art-sources .ref-retracted,.art-sources li{color:var(--text-sub,#4A3D32);}

/* Contents numerals sat at roughly 2:1 and disappeared against the cream */
.toc a::before{color:var(--text-sub,#4A3D32);}

@media print{.site-header,.main-nav,.toc,.cta-section,.contact-section,.site-footer-dark,
  .anchor-nav,.age-bar{display:none!important;}}


/* ═══ bloco 4: extras ═══ */

.art-author{background:var(--white,#FEFCF8);border:1px solid var(--cream-dark,#EDE4D6);
  border-left:2px solid var(--gold,#C9A96E);padding:26px 28px;margin:36px 0 0;}
.art-author__label{font-family:'Nunito Sans',sans-serif;font-size:10.5px;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--charcoal,#2A2420);
  display:block;margin-bottom:12px;}
.art-author__name{font-family:'Cormorant Garamond',Georgia,serif;font-size:24px;font-weight:500;
  line-height:1.25;color:var(--text-primary,#1E1A17);margin:0 0 4px;}
.art-author__name a{color:inherit;text-decoration:none;
  border-bottom:1px solid var(--gold-light,#DEC28E);}
.art-author__name a:hover{color:var(--charcoal,#2A2420);}
.art-author__role{font-family:'Nunito Sans',sans-serif;font-size:13px;line-height:1.7;
  color:var(--text-sub,#4A3D32);margin:0 0 14px;}
.art-author p{font-family:'Nunito Sans',sans-serif;font-size:14.5px;line-height:1.75;
  color:var(--text-body,#2D2622);margin:0 0 12px;}
.art-author p:last-child{margin-bottom:0;}
.art-author__reg{font-family:'Nunito Sans',sans-serif;font-size:12.5px;line-height:1.7;
  color:var(--text-sub,#4A3D32);border-top:1px solid var(--cream-dark,#EDE4D6);
  margin-top:16px;padding-top:14px;}
.art-author__reg b{color:var(--text-primary,#1E1A17);font-weight:700;}

.art-editorial{background:var(--cream-mid,#F5EFE5);border:1px solid var(--cream-dark,#EDE4D6);
  padding:24px 28px;margin:24px 0 0;}
.art-editorial__label{font-family:'Nunito Sans',sans-serif;font-size:10.5px;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--charcoal,#2A2420);
  display:block;margin-bottom:12px;}
.art-editorial p{font-family:'Nunito Sans',sans-serif;font-size:13.5px;line-height:1.72;
  color:var(--text-sub,#4A3D32);margin:0 0 10px;}
.art-editorial p:last-child{margin-bottom:0;}
.art-editorial a{color:var(--gold-link,#7C6338);text-decoration:none;
  border-bottom:1px solid rgba(115,88,49,.35);}
.art-editorial a:hover{color:var(--charcoal,#2A2420);border-color:var(--charcoal,#2A2420);}
.art-policy-links{list-style:none;margin:6px 0 0;padding:0;
  display:flex;flex-wrap:wrap;gap:6px 18px;}
.art-policy-links li{font-family:'Nunito Sans',sans-serif;font-size:13px;line-height:1.7;}

/* Empty-figure guard: an article with no images must not leave a gap. */
.art-figure:empty{display:none;}

/* CORRECTION carried into the template: at 320px (iPhone SE 1st gen and the
   narrowest Android viewports) the header row measured 343px against a 320px
   viewport, so the whole page scrolled sideways. The wordmark and the booking
   button were competing for the same row. Tightening the gap and the button
   padding below 360px clears it with 0px to spare. No change at 361px and
   above, so the header looks identical on every device already tested. */
@media (max-width:360px){
  .header-inner{padding:0 10px;}
  .header-left{gap:8px;}
  .header-right{gap:6px;}
  .site-logo .wordmark{font-size:11.5px;letter-spacing:0.02em;}
  .btn-book{padding:8px 9px;font-size:10px;letter-spacing:0.02em;}
}

@media (max-width:600px){
  .art-author,.art-editorial{padding:22px 20px;}
}
@media print{.art-author,.art-editorial{page-break-inside:avoid;}}
