/* ─── RESET & TOKENS ─── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --ink:#0D0B09;
  --charcoal:#1A1511;
  --warm:#2E251D;
  --gold:#C6A97D;
  --gold2:#E8D5B0;
  --gold3:#A07848;
  --ivory:#F5EEE4;
  --cream:#EDE4D3;
  --stone:#8A7A6E;
  --border:rgba(198,169,125,0.18);
  --err:#D4756A;
  --ok:#7AAD8A;
  --ease:cubic-bezier(0.16,1,0.3,1);
  --ease-out:cubic-bezier(0.16,1,0.3,1);
}
html{overflow-x: hidden;font-size:16px}
body{overflow-x: hidden;
  font-family:'Jost',sans-serif;
  background:var(--ink);
  color:var(--ivory);
  overflow-x:hidden;
}

/* ─── GRAIN OVERLAY ─── */
body::after{
  content:'';
  position:fixed;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity:0.03;
  pointer-events:none;
  z-index:9990;
  mix-blend-mode:overlay;
}

/* ─── LOADER ─── */
#loader{position:fixed;inset:0;background:var(--ink);z-index:9999;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:32px}
.loader-logo,.ll{font-family:'Cormorant Garamond',serif;font-size:clamp(1.8rem,4vw,3.5rem);font-weight:300;letter-spacing:0.4em;text-transform:uppercase;color:var(--ivory);overflow:hidden}
.loader-logo span,.ll span{color:var(--gold)}
.loader-bar,.lb{width:180px;height:1px;background:rgba(198,169,125,0.12);position:relative;overflow:hidden}
.loader-bar::after,.lb::after{
  content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  animation:loaderBar 1.6s ease forwards;
}
@keyframes loaderBar{0%{left:-100%}100%{left:100%}}
.loader-pct,.lp,.lpct-el{font-family:'Jost',sans-serif;font-weight:400;font-size:0.62rem;letter-spacing:0.5em;text-transform:uppercase;color:var(--gold)}

/* custom cursor removed — normal system cursor everywhere */
#c-dot,#c-ring,#cd,#cr{display:none}

/* ─── NAV ─── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:500;
  padding:30px 64px;
  display:flex;align-items:center;justify-content:space-between;
  transition:padding .5s var(--ease),background .5s,border-bottom .5s;
}
/* Gradient scrim so nav items never blend into hero imagery */
.nav-scrim{
  position:absolute;top:0;left:0;right:0;height:180%;
  background:linear-gradient(to bottom,
    rgba(13,11,9,0.92) 0%,
    rgba(13,11,9,0.72) 45%,
    rgba(13,11,9,0.35) 75%,
    transparent 100%);
  pointer-events:none;z-index:0;
  transition:opacity .5s ease;
}
nav.stuck .nav-scrim{opacity:0}
nav>*{position:relative;z-index:1}
nav.stuck{padding:14px 64px;background:rgba(13,11,9,0.94);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border-bottom:1px solid var(--border)}
.nav-logo,.nlogo{display:inline-flex;align-items:center;position:relative;z-index:1;text-decoration:none}
.nav-logo-img{display:block;height:50px;width:auto}
.nav-links,.nlinks{display:flex;gap:48px;list-style:none}
.nav-links a,.nlinks a{
  font-family:'Jost',sans-serif;font-weight:400;
  font-size:0.92rem;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(245,238,228,0.92);text-decoration:none;
  transition:color .3s;position:relative;
  padding:6px 0;display:inline-block;
}
.nav-links a::after,.nlinks a::after{
  content:'';position:absolute;bottom:0;left:0;width:0;height:1px;
  background:var(--gold);transition:width .45s var(--ease);
}
.nav-links a:hover,.nlinks a:hover,.nlinks a.cur,.nav-links a.is-current{color:var(--gold)}
.nav-links a:hover::after,.nlinks a:hover::after,.nlinks a.cur::after,.nav-links a.is-current::after{width:100%}
/* numeric prefix — visible only in the mobile full-page menu */
.nav-num{display:none}
.nav-links li, .nlinks li, .nav-submenu li{list-style:none;margin:0;padding:0}
.nav-links li.has-submenu{position:relative}
.nav-links li.has-submenu > a{display:inline-flex;align-items:center;gap:0.5em}
.nav-links li.has-submenu > a::after{
  content:'';
  display:inline-block;
  width:0;
  height:0;
  border-left:4px solid transparent;
  border-right:4px solid transparent;
  border-top:6px solid currentColor;
  margin-left:0.4em;
  transition:transform .25s ease;
}
@media(min-width:901px){
  .nav-links li.has-submenu:focus-within > a::after,
  .nav-links li.has-submenu:hover > a::after{
    transform:translateY(-1px) rotate(180deg);
  }
}
.nav-submenu{
  position:absolute;
  left:0;
  top:100%;
  min-width:300px;
  margin-top:18px;
  padding:20px 18px;
  background:rgba(13,11,9,0.96);
  border:1px solid rgba(198,169,125,0.12);
  border-radius:18px;
  box-shadow:0 28px 70px rgba(0,0,0,0.18);
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .24s ease,transform .24s ease,visibility .24s ease;
  z-index: 20;
}
.submenu-toggle{display:none}
.mega-menu{display:none}
.nav-submenu li{margin:0}
.nav-submenu a{
  display:block;
  padding:10px 0;
  font-family:'Jost',sans-serif;
  font-size:0.95rem;
  font-weight:400;
  letter-spacing:0.16em;
  text-transform:none;
  color:rgba(245,238,228,0.92);
  text-decoration:none;
  transition:color .25s;
}
.nav-submenu a:hover{color:var(--gold)}

/* ─── MEGA MENU (Treatments — desktop & laptop) ─── */
@media(min-width:901px){
  /* the mobile flat list is replaced by the grouped mega menu at this width */
  .nav-submenu{display:none}

  .mega-menu{
    display:block;
    position:fixed;
    left:50%;
    top:70px;
    transform:translate(-50%,10px);
    width:min(880px,88vw);
    background:rgba(13,11,9,0.97);
    border:1px solid rgba(198,169,125,0.14);
    border-radius:20px;
    box-shadow:0 34px 80px rgba(0,0,0,0.24);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .3s ease,transform .3s ease,visibility .3s ease;
    z-index:5;
    padding:40px 44px;
  }
  nav.stuck .mega-menu{ top:70px; }
  .nav-links li.has-submenu:hover > .mega-menu,
  .nav-links li.has-submenu:focus-within > .mega-menu{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translate(-25%,0);
  }
  .mega-menu-inner{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:36px;
  }
  .mega-col-label{
    font-family:'Jost',sans-serif;font-weight:500;
    font-size:0.86rem;letter-spacing:0.3em;text-transform:uppercase;
    color:var(--gold);
    margin-bottom:16px;padding-bottom:14px;
    border-bottom:1px solid rgba(198,169,125,0.18);
  }
  .mega-col ul{list-style:none}
  .mega-col li{margin:0}
  .mega-col a{
    display:block;
    font-family:'Cormorant Garamond',serif;
    font-size:1.15rem;font-weight:400;
    text-transform:none;letter-spacing:0.01em;
    color:rgba(245,238,228,0.9);
    text-decoration:none;
    padding:9px 0;
    transition:color .25s ease,transform .25s ease;
  }
  .mega-col a:hover{color:var(--gold);transform:translateX(3px)}
}
@media(min-width:901px) and (max-width:1240px){
  /* laptop-width nav: logo + 5 links + Book Now don't fit at full desktop
     sizing once the viewport drops below ~1240px, so tighten spacing here
     rather than letting them overlap. */
  nav{padding:24px 32px}
  nav.stuck{padding:12px 32px}
  .nav-logo-img{height:28px}
  .nav-menu{gap:26px}
  .nav-links,.nlinks{gap:24px}
  .nav-links a,.nlinks a{font-size:0.8rem;letter-spacing:0.13em}
  .nav-book,.nbook{padding:13px 26px;font-size:0.8rem}

  .mega-menu{ width:min(700px,90vw); padding:30px 28px; }
  .mega-menu-inner{ gap:20px; }
  .mega-col a{ font-size:1.05rem; }
}
.nav-book,.nbook{
  font-family:'Jost',sans-serif;font-weight:500;
  font-size:0.92rem;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--ink);background:var(--gold);
  padding:15px 38px;text-decoration:none;
  border:1px solid var(--gold);
  transition:background .4s,color .4s,transform .3s;
  display:inline-block;white-space:nowrap;
}
.nav-book:hover,.nbook:hover{background:transparent;color:var(--gold);transform:translateY(-1px)}
/* secondary links + contact — mobile menu only */
.nav-menu-extra{display:none}

/* ─── SHARED BUTTONS ─── */
.bgold,.btn-lux{
  font-family:'Jost',sans-serif;font-weight:500;
  font-size:0.62rem;letter-spacing:0.3em;text-transform:uppercase;
  color:var(--ink);background:var(--gold);
  padding:14px 36px;text-decoration:none;
  border:1px solid var(--gold);
  display:inline-block;position:relative;overflow:hidden;
  transition:color .45s;
}
.bgold::before,.btn-lux::before{
  content:'';position:absolute;inset:0;
  background:var(--ink);
  transform:translateX(-101%);
  transition:transform .45s var(--ease);
}
.bgold:hover,.btn-lux:hover{color:var(--gold)}
.bgold:hover::before,.btn-lux:hover::before{transform:translateX(0)}
.bgold span,.btn-lux span{position:relative;z-index:1}
.bline,.btn-ghost-lux{
  font-family:'Jost',sans-serif;font-weight:400;
  font-size:0.62rem;letter-spacing:0.3em;text-transform:uppercase;
  color:rgba(245,238,228,0.85);text-decoration:none;
  display:inline-flex;align-items:center;gap:10px;
  transition:color .3s,gap .35s var(--ease);
}
.bline::after,.btn-ghost-lux::after{content:'→';transition:transform .35s var(--ease)}
.bline:hover,.btn-ghost-lux:hover{color:var(--gold);gap:18px}
.bline:hover::after,.btn-ghost-lux:hover::after{transform:translateX(5px)}

/* ─── SECTION LABELS ─── */
.s-label,.slbl{
  display:inline-flex;align-items:center;gap:12px;
  font-family:'Jost',sans-serif;font-weight:400;
  font-size:0.8rem;letter-spacing:0.4em;text-transform:uppercase;
  color:var(--gold);margin-bottom:16px;
}
.s-label::before,.slbl::before{content:'';display:block;width:30px;height:1px;background:var(--gold)}
.s-h2,.sh2{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(2.7rem,4.5vw,4.7rem);
  line-height:1.05;letter-spacing:-0.02em;color:var(--ivory);
}
.s-h2 em,.sh2 em{font-style:italic;color:var(--gold)}
.hcrumb{display:none !important}

/* ─── REVEALS ─── */
.reveal,.rv{opacity:0;transform:translateY(40px);transition:opacity .85s var(--ease),transform .85s var(--ease)}
.reveal.in,.rv.in{opacity:1;transform:none}
.reveal-left,.rvl{opacity:0;transform:translateX(-50px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal-left.in,.rvl.in{opacity:1;transform:none}
.reveal-right,.rvr{opacity:0;transform:translateX(50px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal-right.in,.rvr.in{opacity:1;transform:none}
.reveal-scale,.rvs{opacity:0;transform:scale(0.92);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal-scale.in,.rvs.in{opacity:1;transform:none}
.rv-d1{transition-delay:.08s}
.rv-d2{transition-delay:.16s}
.rv-d3{transition-delay:.24s}
.rv-d4{transition-delay:.32s}

/* gold line expansion */
.gold-line,.grule{display:block;height:1px;background:var(--gold);transform-origin:left;transform:scaleX(0);margin:32px 0;opacity:0.35;transition:transform 1.4s var(--ease)}
.grule.in,.gold-line.in{transform:scaleX(1)}

/* ─── OFFER BAND (shared across pages) ─── */
#offer{background:var(--warm);padding:112px 80px;text-align:center;position:relative;overflow:hidden}
.oc{position:absolute;border-radius:50%;border:1px solid var(--border);pointer-events:none}
.oc1{width:460px;height:460px;top:50%;left:50%;transform:translate(-50%,-50%)}
.oc2{width:740px;height:740px;top:50%;left:50%;transform:translate(-50%,-50%)}
.obadge{display:inline-block;font-family:'Jost',sans-serif;font-weight:500;font-size:0.58rem;letter-spacing:0.55em;text-transform:uppercase;color:var(--ink);background:var(--gold);padding:7px 20px;margin-bottom:30px}
.oh2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(2.7rem,5.5vw,6rem);line-height:0.98;letter-spacing:-0.02em;color:var(--ivory);margin-bottom:18px}
.oh2 em{font-style:italic;color:var(--gold)}
.osub{font-family:'Jost',sans-serif;font-weight:400;font-size:0.86rem;color:rgba(245,238,228,0.65);letter-spacing:0.05em;line-height:1.8;margin-bottom:44px;max-width:340px;margin-left:auto;margin-right:auto}
@media(max-width:768px){
  #offer{padding:80px 24px}
}

/* ─── READABLE BODY TEXT — site-wide bump
   `html`-prefixed selectors raise specificity so this wins over per-page CSS
   without needing to edit each page's stylesheet. Bumps long-form copy
   from ~14px to ~15–16px for comfortable reading; leaves design eyebrow
   labels (s-label, fbar tabs, button text) at their original sizes. */
html .hsub,
html .hero-sub,
html .osub,
html .offer-sub,
html .sub-body,
html .faq-intro,
html .fdesc,
html .fp-excerpt,
html .seo-list li,
html .pc-excerpt,
html .t-card-desc,
html .rc-excerpt{
  font-size:1.15rem;
}
html .t-card-desc{line-height:1.65}
html .t-card:hover .t-card-desc{max-height:140px}

/* secondary body / list / caption text — bumped from 0.72-0.85rem */
html .tcdesc,
html .fhi-txt,
html .fmore p,
html .pillar-body,
html .mval-body,
html .tm-spec,
html .success-body,
html .fi-a-inner,
html .author-bio,
html .info-note,
html .comp-table td,
html .pc-list li,
html .tr-body,
html .sp-list li,
html .ci-val,
html .sb-cat-name,
html .map-label p,
html .sb-nl-sub,
html .cf p{
  font-size:1.08rem;
}
html .cf h4{font-size:1.35rem;margin-bottom:8px}
html .tcdesc{line-height:1.6}
html .tc:hover .tcdesc{max-height:120px}
html .tm-spec{line-height:1.6}
html .tm:hover .tm-spec{max-height:160px}

/* form/input text — was 0.72-0.82rem, hard to read while typing */
html .f-input,
html .f-select,
html .f-textarea,
html .search-input,
html .sb-nl-input,
html .sub-input{
  font-size:1.05rem;
}

@media(max-width:768px){
  html .tcdesc,
  html .fhi-txt,
  html .fmore p,
  html .pillar-body,
  html .mval-body,
  html .tm-spec,
  html .success-body,
  html .fi-a-inner,
  html .author-bio,
  html .info-note,
  html .comp-table td,
  html .pc-list li,
  html .tr-body,
  html .sp-list li,
  html .ci-val,
  html .sb-cat-name,
  html .map-label p,
  html .sb-nl-sub{font-size:1rem}
}
html .about-body,
html .consult-body,
html .seo-body,
html .seo-body p,
html .sbody,
html .sbody p,
html .faq-a-inner,
html .lsec p,
html .lsec li,
html .art-body p,
html .art-body li,
html .trt-intro-text p,
html .trt-section p,
html .trt-fi-a-inner,
html .ov-body,
html .tx-desc,
html .ben-desc,
html .cg-txt,
html .exp-body,
html .fq-intro,
html .fi-ans-inner{
  font-size:1.2rem;
}
/* legal page intro paragraph (italic Cormorant) — slight bump for parity */
html .legal-intro{font-size:1.45rem}
/* FAQ question text */
html .faq-q-text{font-size:1.5rem}
html .trt-fi-q{font-size:1.35rem}
html .fi-q-txt{font-size:1.4rem}
@media(max-width:768px){
  html .hsub,
  html .hero-sub,
  html .osub,
  html .offer-sub,
  html .sub-body,
  html .faq-intro,
  html .fdesc,
  html .fp-excerpt,
  html .seo-list li,
  html .pc-excerpt{font-size:1.05rem}
  html .about-body,
  html .consult-body,
  html .seo-body,
  html .seo-body p,
  html .sbody,
  html .sbody p,
  html .faq-a-inner,
  html .lsec p,
  html .lsec li,
  html .art-body p,
  html .art-body li,
  html .trt-intro-text p,
  html .trt-section p,
  html .trt-fi-a-inner,
  html .ov-body,
  html .tx-desc,
  html .ben-desc,
  html .cg-txt,
  html .exp-body,
  html .fq-intro,
  html .fi-ans-inner{font-size:1.1rem}
  html .legal-intro{font-size:1.3rem}
}

/* ═══ UNIFIED MICRO-TYPOGRAPHY SCALE ═══
   One consistent scale for every small UI element site-wide.
   Overrides the scattered 0.5–0.68rem sizes in per-page CSS. */

/* 1 — Buttons & primary CTAs → 0.9rem */
html .bgold,
html .btn-lux,
html .bline,
html .btn-ghost-lux,
html .submit-btn,
html .sub-btn,
html .sb-nl-btn,
html .btn-next,
html .btn-back,
html .rmbtn,
html .btn-gold,
html .btn-ghost{
  font-size:0.9rem;letter-spacing:0.22em;
}
html .bgold,
html .btn-lux,
html .btn-gold{padding:16px 42px}

/* 2 — Eyebrows & section micro-labels → 0.78rem */
html .heye,
html .feye,
html .shb-label,
html .service-areas h4,
html .hc-title,
html .mc-label,
html .lcontact-label,
html .toc-title,
html .fb-title,
html .sb-cta-eyebrow,
html .sb-related-title,
html .author-role,
html .tm-role,
html .bc-cat,
html .trt-pract-role,
html .trt-quote-attrib,
html .pq-author,
html .pq-src,
html .sq-auth,
html .slide-author,
html .hours-title,
html .ts-label,
html .faq-phone-lbl,
html .share-label,
html .qs-label,
html .flbl,
html .fbar-lbl,
html .hmeta,
html .stf-role,
html .sum-total-lbl,
html .mb-key,
html .sb-post-cat,
html .stat-label,
html .ov-main-label{
  font-size:0.78rem;letter-spacing:0.32em;
}

/* 3 — Breadcrumbs → 0.72rem */
html .hcrumb,
html .ah-crumb{font-size:0.72rem;letter-spacing:0.26em}
html .hcsep,
html .hcrumb-sep,
html .ah-crumb-sep{font-size:0.52rem}

/* 4 — Gold badges → 0.72rem */
html .obadge,
html .offer-badge,
html .fbadge,
html .fp-feat-tag,
html .pc-cat-badge,
html .ah-cat,
html .rc-cat{font-size:0.72rem;letter-spacing:0.38em}

/* 5 — Small arrow links (Discover →, Read More) → 0.72rem */
html .tclink,
html .pc-link,
html .rc-link,
html .tm-link,
html .bc-link,
html .mc-link,
html .map-label a,
html .lcontact-info a{font-size:0.72rem;letter-spacing:0.24em}

/* 6 — Tags, chips, filter tabs → 0.85rem */
html .ft,
html .ftab,
html .tag,
html .sb-tag,
html .art-tag,
html .area-tag,
html .tctag,
html .cat-tab,
html .ts,
html .sort-btn,
html .share-btn,
html .soc-btn,
html .tx-tag,
html .ov-pill{font-size:0.85rem;letter-spacing:0.16em}

/* 7 — Meta text (dates, read-time, counts, captions) → 0.78rem */
html .fp-date,
html .fp-read,
html .pc-date,
html .pc-read-time,
html .posts-count,
html .ah-meta-item,
html .rc-meta,
html .svc-meta,
html .slide-location,
html .hcby,
html .cic-by,
html .mic-by,
html .f-error,
html .char-count,
html .sb-nl-note,
html .sub-note,
html .sum-key,
html .art-hero-img-cap span{font-size:0.78rem}

/* 8 — Form & step labels → 0.72rem */
html .f-label,
html .ci-lbl,
html .pb-step-label,
html .cal-day-label{font-size:0.72rem;letter-spacing:0.28em}
html .comp-table th{font-size:0.72rem;letter-spacing:0.22em}

/* 9 — Small body copy not covered above → 0.95rem */
html .fp-sub,
html .hst p,
html .cstep p,
html .f-check-lbl,
html .mc-addr,
html .hr-day,
html .hour-day,
html .step-sub,
html .pill-body,
html .bc-excerpt,
html .sb-cta-sub,
html .toc-item a,
html .form-alert{font-size:0.95rem}
html .cal-day{font-size:0.85rem}

/* 10 — Decorative serial numbers (01, 02…) → prominent design element.
   Tight letter-spacing so two digits read as "01", not "0 1". */
html .tcnum,
html .pill-n,
html .pillar-n,
html .t-card-n,
html .oth-card-num,
html .sb-cat-n{font-size:2.2rem;letter-spacing:0.04em;line-height:1;font-weight:300}
html .pillar-n,
html .pill-n{margin-bottom:16px}
html .lsec-n{font-size:1.6rem;letter-spacing:0.06em}
html .num-label{font-size:0.85rem}
html .ov-side-number{font-size:1rem}
html .pb-step-n{font-size:1.6rem}
html .trt-section h2::before{font-size:1.2rem}

/* 11 — Contrast: low-opacity text sitting on imagery or dark bg */
html .hcrumb,
html .hcrumb a,
html .ah-crumb,
html .ah-crumb a{color:rgba(245,238,228,0.72)}
html .tctag{color:rgba(245,238,228,0.68);border-color:rgba(245,238,228,0.24)}
html .slide-location{color:rgba(245,238,228,0.6)}
html .fp-date,
html .pc-date,
html .rc-meta,
html .ah-meta-item{color:rgba(245,238,228,0.62)}
html .hcby,
html .cic-by,
html .mic-by{color:rgba(245,238,228,0.62)}
html .f-label{color:rgba(245,238,228,0.6)}
html .pb-step-label{color:rgba(245,238,228,0.62)}

/* 12 — Titles & headings: consistent site-wide bump */
html .hh1{font-size:clamp(2.7rem,6.2vw,6rem)}
html .trt-h1{font-size:clamp(2.9rem,6.2vw,6.2rem)}
html .trt-intro-text h2{font-size:clamp(2rem,3.3vw,2.9rem)}
html .trt-section h2{font-size:clamp(2rem,2.9vw,2.8rem)}
html .trt-section h3{font-size:1.45rem}
html .trt-faq-head h2{font-size:clamp(2.6rem,4.2vw,4.3rem)}
html .trt-pract-name{font-size:2rem}
html .lsec h2{font-size:clamp(1.8rem,2.8vw,2.35rem)}
html .lsec h3{font-size:1.25rem}
html .lcontact h3{font-size:1.8rem}
html .hero-h1{font-size:clamp(4.2rem,6.4vw,7.4rem)}
html .ov-h2{font-size:clamp(2.8rem,4.8vw,5.3rem)}
html .tx-title{font-size:clamp(2.2rem,3.7vw,3.4rem)}
html .ben-h2{font-size:clamp(2.6rem,4.8vw,5.3rem)}
html .ben-title{font-size:1.55rem}
html .care-h2{font-size:clamp(2.6rem,4.2vw,4.8rem)}
html .cg-title{font-size:1.95rem}
html .fq-h2{font-size:clamp(2.4rem,4vw,4.3rem)}
html .oth-h2{font-size:clamp(2.2rem,3.7vw,3.8rem)}
html .oth-card-name{font-size:1.45rem}
html .exp-quote{font-size:clamp(1.55rem,2.6vw,2.3rem)}
html .trt-quote-text{font-size:clamp(1.55rem,2.4vw,2.3rem)}

/* 13 — Small card titles → readable */
html .pillar-title{font-size:1.4rem}
html .pill-title,
html .mval-title{font-size:1.35rem}
html .pc-title{font-size:1.3rem}
html .bc-title{font-size:1.4rem}
html .tm-name{font-size:1.65rem}
html .t-card-title{font-size:1.85rem}
html .sb-post-title{font-size:1.1rem}
html .svc-name{font-size:1.15rem}
html .stf-name{font-size:1.1rem}
html .tr-title{font-size:1.2rem}
html .hst h3{font-size:1.35rem}

/* ─── FOOTER (supports both naming conventions) ─── */
footer{background:var(--charcoal);border-top:1px solid var(--border);padding:80px 80px 40px}
.footer-grid,.fg{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:52px;
  padding-bottom:60px;
  border-bottom:1px solid var(--border);
  margin-bottom:36px;
}
.f-brand,.fbn{display:block;margin-bottom:16px}
.f-brand-img{height:50px;width:auto}
.f-tagline,.ftag{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.35rem;color:rgba(245,238,228,0.75);line-height:1.65;margin-bottom:32px}
.f-social,.fsr{display:flex;gap:12px}
.fsoc,.fs,.fso{
  width:44px;height:44px;
  border:1px solid rgba(198,169,125,0.28);
  display:flex;align-items:center;justify-content:center;
  color:rgba(245,238,228,0.75);font-size:0.85rem;
  text-decoration:none;
  transition:all .35s var(--ease);
}
.fsoc svg,.fs svg,.fso svg{width:18px;height:18px}
.fsoc:hover,.fs:hover,.fso:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px)}
.f-col h5,.fc-heading,.fc h3{
  font-family:'Jost',sans-serif;font-weight:500;
  font-size:0.85rem;letter-spacing:0.4em;text-transform:uppercase;
  color:var(--gold);margin-bottom:26px;
}
.f-links,.fl{list-style:none}
.f-links li,.fl li{margin-bottom:14px}
.f-links a,.fl a{
  font-family:'Jost',sans-serif;font-weight:400;
  font-size:1.05rem;color:rgba(245,238,228,0.82);
  text-decoration:none;letter-spacing:0.02em;
  transition:color .3s,padding-left .3s;display:inline-block;
}
.f-links a:hover,.fl a:hover{color:var(--gold);padding-left:6px}
.f-contact-item,.fci{
  font-family:'Jost',sans-serif;font-weight:400;
  font-size:1.05rem;color:rgba(245,238,228,0.82);
  line-height:1.75;margin-bottom:20px;letter-spacing:0.02em;
}
.f-contact-item strong,.fci strong{
  display:block;font-weight:500;
  font-size:0.75rem;letter-spacing:0.32em;text-transform:uppercase;
  color:rgba(245,238,228,0.65);margin-bottom:6px;
}
.footer-bottom,.fbot{display:flex;justify-content:space-between;align-items:center}
.f-copy,.fcopy{font-family:'Jost',sans-serif;font-weight:400;font-size:0.92rem;color:rgba(245,238,228,0.7);letter-spacing:0.05em;line-height:1.6}

/* ─── ACCESSIBILITY ─── */
.skip-link{
  position:absolute;top:-100px;left:16px;z-index:99999;
  font-family:'Jost',sans-serif;font-weight:500;font-size:0.8rem;
  letter-spacing:0.1em;text-transform:uppercase;
  background:var(--gold);color:var(--ink);
  padding:12px 24px;text-decoration:none;
  border:2px solid var(--ink);
  transition:top .2s;
}
.skip-link:focus{top:16px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
:focus:not(:focus-visible){outline:none}
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--gold);outline-offset:3px;
}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ─── MOBILE NAV / FOOTER ─── */

.nav-ham {
  display: none; background: transparent; border: none; cursor: pointer;
  width: 36px; height: 26px; position: relative; z-index: 502;
  flex-direction: column; justify-content: space-between; padding: 0;
}
.nav-ham span {
  display: block; width: 100%; height: 2px; background: var(--ivory);
  transition: transform 0.35s ease, opacity 0.3s ease, background 0.3s;
}
.nav-ham:hover span { background: var(--gold); }

.nav-menu {
  display: flex;
  align-items: center;
  gap: 48px;
}

/* lock page scroll while the full-page menu is open */
body.menu-open { overflow: hidden; }

@media(max-width:900px){
  nav{padding:20px 24px}
  nav.stuck{padding:14px 24px}

  .nav-ham { display: flex; }

  /* ── FULL-PAGE MENU ── */
  .nav-menu {
    position: fixed; inset: 0; width: 100%; height: 100vh; height: 100dvh;
    /* layered gradient backdrop — deep ink base with soft gold glows,
       fully opaque so links never blend into page imagery behind */
    background:
      radial-gradient(circle at 85% 12%, rgba(198,169,125,0.14), transparent 52%),
      radial-gradient(circle at 10% 92%, rgba(198,169,125,0.10), transparent 46%),
      linear-gradient(160deg, #1B1510 0%, #0D0B09 62%, #0A0806 100%);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 44px; z-index: 500;
    transform: translateX(100%);
    transition: transform 0.55s var(--ease);
    padding: 96px 32px 44px;
    overflow-y: auto;
  }
  .menu-open .nav-menu { transform: translateX(0); }

  .nav-links, .nlinks {
    display: flex !important; flex-direction: column; text-align: center; gap: 10px;
    list-style: none; margin: 0; padding: 0;
  }
  /* big editorial links */
  .nav-links a, .nlinks a {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 300; text-transform: none;
    font-size: clamp(2.1rem, 8vw, 2.8rem);
    letter-spacing: 0.02em; line-height: 1.3;
    color: var(--ivory);
    padding: 6px 14px;
    display: inline-flex; align-items: baseline; gap: 14px;
  }
  .nav-links a::after, .nlinks a::after { display: none; }
  .nav-links a.cur, .nlinks a.cur { color: var(--gold); font-style: italic; }

  /* Treatments row becomes a centered "label + toggle" pair; the submenu
     drops onto its own line beneath and is collapsed until tapped open. */
  .nav-links li.has-submenu {
    display: flex; align-items: center; justify-content: center;
    flex-wrap: wrap; row-gap: 4px;
  }
  .nav-links li.has-submenu > a::after { display: none; content: none; }

  .submenu-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    width: 34px; height: 34px; margin-left: 8px;
    background: transparent; border: 1px solid rgba(198,169,125,0.35);
    border-radius: 50%; cursor: pointer; padding: 0; flex-shrink: 0;
    transition: transform .3s ease, border-color .3s ease, background .3s ease;
  }
  .submenu-toggle span {
    width: 0; height: 0;
    border-left: 5px solid transparent; border-right: 5px solid transparent;
    border-top: 7px solid var(--gold);
    transition: transform .3s ease;
  }
  .submenu-toggle:hover, .submenu-toggle:focus-visible {
    border-color: var(--gold); background: rgba(198,169,125,0.08);
  }
  .nav-links li.has-submenu.open > .submenu-toggle { transform: rotate(180deg); }

  .nav-submenu {
    flex: 1 0 100%;
    position: static;
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 0;
    margin-top: 0;
    opacity: 0;
    visibility: hidden;
    transform: none;
    max-height: 0;
    overflow: hidden;
    transition: max-height .5s var(--ease), opacity .3s ease, visibility 0s linear .5s;
  }
  .nav-links li.has-submenu.open > .nav-submenu {
    opacity: 1;
    visibility: visible;
    max-height: 900px;
    margin-top: 4px;
    transition: max-height .6s var(--ease), opacity .4s ease;
  }
  .nav-submenu a {
    display:block;
    font-family:'Jost',sans-serif;
    font-size:1rem;
    font-weight:400;
    letter-spacing:0.24em;
    text-transform:uppercase;
    color:rgba(245,238,228,0.84);
    padding:12px 0 12px 0;
    text-align:center;
    width:100%;
  }
  .nav-submenu a:hover{color:var(--gold)}
  .nav-links li.has-submenu .nav-submenu a:first-child{padding-top:0}
  .nav-num {
    display: inline-block;
    font-family: 'Jost', sans-serif; font-weight: 400;
    font-size: 0.72rem; letter-spacing: 0.3em; color: var(--gold);
    opacity: 0.75; transform: translateY(-10px);
  }

  /* staggered entrance for links */
  .nav-links li, .nlinks li {
    opacity: 0; transform: translateY(26px);
    transition: opacity .5s ease, transform .5s var(--ease);
    transition-delay: 0s;
  }
  .menu-open .nav-links li, .menu-open .nlinks li {
    opacity: 1; transform: translateY(0);
    transition-delay: calc(0.16s + var(--nmi, 0) * 0.07s);
  }

  /* big book button */
  .nav-book, .nbook {
    display: inline-block !important;
    font-size: 1rem; letter-spacing: 0.22em;
    padding: 18px 56px;
    opacity: 0; transform: translateY(24px);
    transition: opacity .5s ease .55s, transform .5s var(--ease) .55s,
                background .4s, color .4s;
  }
  .menu-open .nav-book, .menu-open .nbook { opacity: 1; transform: translateY(0) }

  /* secondary links + contact info at the bottom of the menu */
  .nav-menu-extra {
    display: flex; flex-direction: column; align-items: center; gap: 12px;
    margin-top: 8px;
    opacity: 0; transform: translateY(20px);
    transition: opacity .5s ease .68s, transform .5s var(--ease) .68s;
  }
  .menu-open .nav-menu-extra { opacity: 1; transform: translateY(0); }
  .nme-links { display: flex; align-items: center; gap: 14px; }
  .nme-links a {
    font-family: 'Jost', sans-serif; font-weight: 400;
    font-size: 0.78rem; letter-spacing: 0.18em; text-transform: uppercase;
    color: rgba(245,238,228,0.6); text-decoration: none; transition: color .3s;
  }
  .nme-links a:hover { color: var(--gold); }
  .nme-sep { color: var(--gold); font-size: 0.4rem; opacity: 0.6; }
  .nme-phone {
    font-family: 'Cormorant Garamond', serif; font-size: 1.35rem;
    color: var(--gold); text-decoration: none; letter-spacing: 0.04em;
  }
  .nme-addr {
    font-family: 'Jost', sans-serif; font-weight: 400;
    font-size: 0.78rem; letter-spacing: 0.12em;
    color: rgba(245,238,228,0.5);
  }

  /* hamburger → X */
  .menu-open .nav-ham span:nth-child(1) { transform: translateY(12px) rotate(45deg); }
  .menu-open .nav-ham span:nth-child(2) { transform: translateY(-12px) rotate(-45deg); }

  footer{padding:52px 24px 28px}
  .footer-grid,.fg{grid-template-columns:1fr 1fr;gap:32px}
  .footer-bottom,.fbot{flex-direction:column;gap:10px;text-align:center}
}

@media(max-width: 768px) {
   .footer-grid, .fg {
        grid-template-columns: 1fr;
        gap: 32px;}
   }