/* Fallback fonts sized to match Outfit / Plus Jakarta Sans, so text doesn't move when the web fonts arrive
   (home hero layout shift was 0.13 on a first visit). Measured against Arial in Chrome, Oct 2026: Outfit on the
   uppercase headings it is used for, Plus Jakarta Sans (300) on body text. */
@font-face{font-family:'Outfit Fallback';src:local('Arial'),local('Helvetica Neue'),local('Helvetica');size-adjust:93.43%;ascent-override:107.03%;descent-override:27.83%;line-gap-override:0%}
@font-face{font-family:'Plus Jakarta Sans Fallback';src:local('Arial'),local('Helvetica Neue'),local('Helvetica');size-adjust:101.88%;ascent-override:102.08%;descent-override:21.59%;line-gap-override:0%}
:root{
  --ink:#1B1B1B;
  --ink-2:#232323;
  --ink-3:#161616;
  --cream:#F6F5F0;
  --gold:#D9BC6A;
  --white:rgba(255,255,255,.85);
  --white-dim:rgba(255,255,255,.55);
  --white-faint:rgba(255,255,255,.55);
  --hairline:rgba(255,255,255,.12);
  --hairline-gold:rgba(217,188,106,.35);
  --hairline-dark:rgba(27,27,27,.14);
  --error:#D96A6A;
  --display:'Outfit','Outfit Fallback',sans-serif;
  --body:'Plus Jakarta Sans','Plus Jakarta Sans Fallback',sans-serif;
  --pad:clamp(24px,5vw,80px);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--body);
  font-weight:300;
  background:var(--ink);
  color:var(--white);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.12}
.gold{color:var(--gold)}

/* ============ shared atoms ============ */
.eyebrow{
  font-family:var(--body);font-size:13px;font-weight:500;
  letter-spacing:.3em;text-transform:uppercase;color:var(--gold);
  display:inline-flex;align-items:center;gap:14px;
}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--gold);flex:none}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--body);font-size:12px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;
  padding:18px 36px;border-radius:9999px;cursor:pointer;
  border:1px solid transparent;
  transition:transform .35s cubic-bezier(.22,1,.36,1),background .35s,color .35s,border-color .35s;
  white-space:nowrap;
}
.btn-gold{background:var(--gold);color:#1B1B1B}
.btn-gold:hover{transform:translateY(-3px);background:#ECCF7A}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.btn-ghost:hover{transform:translateY(-3px);border-color:var(--gold);color:var(--gold)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{transform:translateY(-3px);background:#000}
.wrap{max-width:1440px;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.section-dark{background:var(--ink)}
.section-dark-2{background:var(--ink-2)}
.section-cream{background:var(--cream);color:var(--ink)}
.section-cream .eyebrow{color:#85681a}

/* watermarks */
.wm{
  position:absolute;font-family:var(--display);font-weight:400;
  letter-spacing:-.03em;color:#fff;opacity:.05;pointer-events:none;
  user-select:none;line-height:1;white-space:nowrap;z-index:0;
}
.section-cream .wm{color:var(--ink);opacity:.04}

/* reveals */
.rv{opacity:0;transform:translateY(44px);transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.12s}.rv-d2{transition-delay:.24s}.rv-d3{transition-delay:.36s}.rv-d4{transition-delay:.48s}

/* ============ NAV ============ */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:20px var(--pad);
  background:transparent;
  transition:background .45s ease,padding .45s ease,box-shadow .45s ease;
}
.nav.scrolled{background:var(--ink);padding:13px var(--pad);box-shadow:0 1px 0 var(--hairline)}
.nav-brand{display:flex;align-items:center;gap:14px}
.nav-brand img{width:auto;height:40px;filter:brightness(0) invert(1);opacity:1}
.nav-brand span{font-family:var(--display);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#fff;line-height:1.4}
.nav-brand small{display:block;font-family:var(--body);font-size:9px;font-weight:500;letter-spacing:.32em;color:var(--gold);text-transform:uppercase}
.nav-links{display:flex;gap:38px;align-items:center}
.nav-links a{font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--white);position:relative;padding:8px 0}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);transition:width .35s}
.nav-links a:hover::after{width:100%}
.nav-cta{display:flex;align-items:center;gap:18px}
.nav-cta .btn{padding:13px 28px}
.nav-phone{font-size:12px;font-weight:500;letter-spacing:.12em;color:var(--white-dim)}
.nav-phone:hover{color:var(--gold)}
.nav-burger{display:none;background:none;border:0;cursor:pointer;width:40px;height:40px;flex-direction:column;justify-content:center;align-items:center;gap:6px}
.nav-burger span{display:block;width:24px;height:1.5px;background:#fff;transition:transform .3s,opacity .3s}
.mobile-menu{display:none}

/* ============ HERO ============ */
.hero{position:relative;height:100vh;min-height:680px;overflow:hidden;background:var(--ink)}
.hero-slides{position:absolute;inset:0}
.hero-slide{
  position:absolute;inset:0;opacity:0;
  background-size:cover;background-position:center;
  animation:heroFade 18s ease-in-out infinite,heroKB 18s linear infinite;
  will-change:opacity,transform;
}
.hero-slide:nth-child(1){animation-delay:0s}
.hero-slide:nth-child(2){animation-delay:6s}
.hero-slide:nth-child(3){animation-delay:12s}
@keyframes heroFade{0%{opacity:0}8%{opacity:1}33.3%{opacity:1}41.3%{opacity:0}100%{opacity:0}}
@keyframes heroKB{0%{transform:scale(1) translate(0,0)}100%{transform:scale(1.12) translate(-1.5%,1%)}}
.hero-scrim{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(27,27,27,.62) 0%,rgba(27,27,27,.45) 35%,rgba(27,27,27,.78) 100%);
}
.hero-wm{font-size:clamp(200px,30vw,440px);bottom:-.18em;right:-.06em;z-index:1}
.hero-content{
  position:absolute;z-index:2;left:0;right:0;bottom:0;
  padding:0 var(--pad) clamp(56px,8vh,96px);
  max-width:1440px;margin:0 auto;
}
.hero-content .eyebrow{margin-bottom:28px}
.hero h1{
  font-size:clamp(3rem,6.5vw,5.6rem);
  letter-spacing:-.03em;text-transform:uppercase;color:#fff;
  max-width:18ch;margin-bottom:30px;
}
.hero-sub{font-size:clamp(17px,1.4vw,20px);font-weight:300;color:var(--white);max-width:46ch;margin-bottom:40px}
.hero-actions{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:44px}
.hero-pills{display:flex;gap:14px;flex-wrap:wrap}
.pill{
  display:inline-flex;align-items:center;gap:10px;
  border:1px solid var(--hairline);border-radius:9999px;
  padding:10px 20px;font-size:12px;font-weight:500;
  letter-spacing:.08em;color:var(--white-dim);
  backdrop-filter:blur(6px);background:rgba(27,27,27,.35);
}
.pill strong{color:var(--gold);font-weight:600}
.hero-vertical{
  position:absolute;z-index:2;top:120px;right:calc(var(--pad) - 6px);
  writing-mode:vertical-rl;
  font-size:10px;font-weight:500;letter-spacing:.42em;text-transform:uppercase;
  color:var(--white-faint);
}
.hero-scrollline{
  position:absolute;z-index:2;left:50%;bottom:0;width:1px;height:72px;
  background:linear-gradient(180deg,transparent,var(--gold));
  overflow:hidden;
}
.hero-scrollline::after{
  content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;
  background:#fff;opacity:.8;animation:scrollPulse 2.6s ease-in-out infinite;
}
@keyframes scrollPulse{0%{top:-100%}60%{top:100%}100%{top:100%}}

/* ============ STAT BAND ============ */
.stats{position:relative;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);overflow:hidden}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{
  padding:clamp(48px,6vw,84px) 28px;text-align:center;
  border-left:1px solid var(--hairline);
}
.stat:first-child{border-left:0}
.stat-num{
  font-family:var(--display);letter-spacing:-.03em;
  font-size:clamp(2.4rem,4.6vw,4.2rem);color:#fff;line-height:1;
  margin-bottom:18px;font-variant-numeric:tabular-nums;
}
.stat-num .gold{color:var(--gold)}
.stat-label{font-size:12px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--white-dim)}

/* ============ MARQUEE ============ */
.gallery{padding:clamp(72px,9vw,130px) 0;background:var(--ink-2);overflow:hidden;position:relative}
.gallery-head{margin-bottom:clamp(44px,5vw,72px);display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}
.gallery-head h2{font-size:clamp(1.6rem,3vw,2.6rem);letter-spacing:-.03em;text-transform:uppercase;color:#fff;max-width:22ch}
.marquee{display:flex;flex-direction:column;gap:18px}
.marquee-row{overflow:hidden;width:100%}
.marquee-track{display:flex;gap:18px;width:max-content;will-change:transform}
.marquee-row:nth-child(1) .marquee-track{animation:marqL 70s linear infinite}
.marquee-row:nth-child(2) .marquee-track{animation:marqR 80s linear infinite}
@keyframes marqL{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes marqR{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.marquee figure{
  width:clamp(280px,28vw,420px);aspect-ratio:4/3;flex:none;
  border-radius:6px;overflow:hidden;
}
.marquee img{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(.3);transform:scale(1.01);
  transition:filter .6s ease,transform .8s cubic-bezier(.22,1,.36,1);
}
.marquee figure:hover img{filter:grayscale(0);transform:scale(1.06)}

/* ============ MANIFESTO ============ */
.manifesto{position:relative;padding:clamp(96px,12vw,180px) 0;overflow:clip}
.manifesto .wm{font-size:clamp(180px,24vw,360px);top:-.12em;left:-.05em}
.manifesto-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(48px,7vw,120px);position:relative;z-index:1}
.manifesto-sticky{position:sticky;top:140px;align-self:start}
.manifesto-sticky h2{
  font-size:clamp(2rem,3.6vw,3.2rem);letter-spacing:-.03em;
  text-transform:uppercase;color:#fff;margin:26px 0 34px;max-width:16ch;
}
.manifesto-sticky p{color:var(--white-dim);max-width:42ch;margin-bottom:40px}
.story-blocks{display:flex;flex-direction:column;gap:clamp(56px,7vw,110px)}
.story-lead{font-size:clamp(19px,1.7vw,24px);font-weight:300;line-height:1.75;color:var(--white)}
.story-lead em{font-style:normal;color:var(--gold)}
.story-block{border-top:1px solid var(--hairline);padding-top:44px;display:grid;grid-template-columns:64px 1fr;gap:28px;align-items:start}
.story-icon{
  width:64px;height:64px;border:1px solid var(--hairline-gold);border-radius:50%;
  display:flex;align-items:center;justify-content:center;flex:none;
}
.story-icon img{width:30px;height:30px;filter:invert(1) brightness(1.4);opacity:.9}
.story-block h3{font-size:clamp(15px,1.2vw,18px);letter-spacing:.02em;text-transform:uppercase;color:#fff;margin-bottom:12px}
.story-block p{color:var(--white-dim)}
.story-struggles{border-top:1px solid var(--hairline);padding-top:44px}
.story-struggles h3{font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--gold);margin-bottom:24px;font-family:var(--display)}
.story-struggles li{
  padding:16px 0;border-bottom:1px solid var(--hairline);
  font-size:15px;color:var(--white);display:flex;gap:16px;align-items:baseline;
}
.story-struggles li::before{content:"—";color:var(--gold);flex:none}

/* ============ TRIPTYCH ============ */
.triptych{display:grid;grid-template-columns:repeat(3,1fr);background:var(--ink-3)}
.panel{
  position:relative;height:max(70vh,560px);overflow:hidden;
  display:flex;align-items:flex-end;cursor:pointer;
  border-left:1px solid var(--hairline);
}
.panel:first-child{border-left:0}
.panel-bg{
  position:absolute;inset:0;background-size:cover;background-position:center;
  filter:brightness(.42) grayscale(.25);transform:scale(1.02);
  transition:filter .7s ease,transform 1.1s cubic-bezier(.22,1,.36,1);
}
.panel:hover .panel-bg{filter:brightness(.62) grayscale(0);transform:scale(1.07)}
.panel-inner{
  position:relative;z-index:1;width:100%;
  padding:clamp(32px,3.4vw,52px);
  background:linear-gradient(180deg,transparent,rgba(22,22,22,.88) 70%);
}
.panel-num{font-family:var(--display);font-size:12px;letter-spacing:.3em;color:var(--gold);display:block;margin-bottom:16px}
.panel h3{font-size:clamp(1.15rem,1.8vw,1.6rem);letter-spacing:-.01em;text-transform:uppercase;color:#fff;margin-bottom:8px}
.panel-list{
  max-height:0;opacity:0;overflow:hidden;
  transition:max-height .7s cubic-bezier(.22,1,.36,1),opacity .6s ease,margin .6s ease;
}
.panel:hover .panel-list,.panel:focus-within .panel-list{max-height:200px;opacity:1;margin-top:18px}
.panel-list li{
  font-size:13px;font-weight:400;color:var(--white-dim);
  padding:9px 0;border-top:1px solid var(--hairline);
  letter-spacing:.04em;
}
.panel-cue{font-size:11px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--white-faint);margin-top:14px;display:block;transition:opacity .4s}
.panel:hover .panel-cue{opacity:0;height:0;margin:0;overflow:hidden}

/* ============ PARALLAX BAND ============ */
.band{position:relative;height:max(72vh,540px);overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center}
.band-img{
  position:absolute;left:0;top:-15%;width:100%;height:130%;
  object-fit:cover;will-change:transform;
  filter:brightness(.85);
}
.band-scrim{position:absolute;inset:0;background:rgba(27,27,27,.72)}
.band-inner{position:relative;z-index:1;padding:0 var(--pad);max-width:1100px}
.band h2{font-size:clamp(1.8rem,3.8vw,3.4rem);letter-spacing:-.03em;text-transform:uppercase;color:#fff;margin:26px 0 40px}

/* ============ CONDITIONS (CREAM 1) ============ */
.conditions{position:relative;padding:clamp(96px,12vw,170px) 0;overflow:clip}
.conditions .wm{font-size:clamp(180px,26vw,380px);bottom:-.16em;right:-.04em}
.conditions-head{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:end;margin-bottom:clamp(48px,6vw,84px);position:relative;z-index:1}
.conditions-head h2{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.03em;text-transform:uppercase;color:var(--ink);margin-top:24px}
.conditions-head p{color:rgba(27,27,27,.62);font-size:16px;max-width:40ch;justify-self:end;align-self:end}
.cond-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--hairline-dark);border-left:1px solid var(--hairline-dark);
  position:relative;z-index:1;
}
.cond{
  border-right:1px solid var(--hairline-dark);border-bottom:1px solid var(--hairline-dark);
  padding:clamp(26px,2.6vw,40px) clamp(18px,2vw,30px);
  font-family:var(--display);font-size:13px;letter-spacing:.04em;
  text-transform:uppercase;color:var(--ink);
  display:flex;align-items:center;gap:14px;
  transition:background .4s ease,color .4s ease;
}
.cond span{color:var(--gold);font-size:10px;flex:none;transition:transform .4s}
.cond-ico{line-height:0}
.cond-ico svg{width:22px;height:22px;display:block}
.cond:hover{background:var(--ink);color:#fff}
.cond:hover span{transform:translateX(3px)}
.cond:hover .cond-ico{color:var(--gold)}
.cond-foot{margin-top:40px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;position:relative;z-index:1}
.cond-foot p{font-size:13px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:rgba(27,27,27,.62)}

/* ============ FIRST VISIT THEATRE ============ */
.theatre{position:relative;padding:clamp(110px,13vw,200px) 0;background:var(--ink-3);overflow:clip}
.theatre-head{text-align:center;margin-bottom:clamp(70px,9vw,130px)}
.theatre-head h2{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.03em;text-transform:uppercase;color:#fff;margin-top:24px}
.theatre-steps{display:flex;flex-direction:column;gap:clamp(80px,10vw,150px);max-width:1100px;margin:0 auto}
.tstep{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,80px);align-items:center;padding:0 var(--pad)}
.tstep-num{
  position:absolute;top:50%;font-family:var(--display);
  font-size:clamp(160px,22vw,300px);line-height:1;color:var(--gold);
  opacity:.22;letter-spacing:-.03em;transform:translateY(-50%);
  pointer-events:none;user-select:none;
}
.tstep:nth-child(odd) .tstep-num{left:0}
.tstep:nth-child(even) .tstep-num{right:0}
.tstep-body{position:relative;z-index:1;max-width:520px}
.tstep:nth-child(odd) .tstep-body{order:1}
.tstep:nth-child(odd) .tstep-img{order:2}
.tstep:nth-child(even) .tstep-body{order:2;justify-self:end;text-align:right}
.tstep:nth-child(even) .tstep-img{order:1}
.tstep-img{position:relative;z-index:1;border-radius:16px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 30px 70px rgba(0,0,0,.45);border:1px solid var(--hairline)}
.tstep-img img{width:100%;height:100%;object-fit:cover;display:block}
.tstep-body .eyebrow{margin-bottom:18px}
.tstep:nth-child(even) .tstep-body .eyebrow{flex-direction:row-reverse}
.tstep-body h3{font-size:clamp(1.3rem,2.2vw,1.9rem);letter-spacing:-.01em;text-transform:uppercase;color:#fff;margin-bottom:18px}
.tstep-body p{color:var(--white-dim)}
.theatre-cta{text-align:center;margin-top:clamp(80px,10vw,140px)}

/* ============ DOCTORS ============ */
.doctors{position:relative;padding:clamp(96px,12vw,170px) 0;background:var(--ink)}
.doctors-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;margin-bottom:clamp(48px,6vw,80px)}
.doctors-head h2{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.03em;text-transform:uppercase;color:#fff;margin-top:24px}
.doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.6vw,40px)}
.doc{position:relative}
.doc-frame{aspect-ratio:3/4;border-radius:6px;overflow:hidden;margin-bottom:26px;border:1px solid var(--hairline)}
.doc-frame img{
  width:100%;height:100%;object-fit:cover;object-position:top center;
  filter:grayscale(1);transform:scale(1.01);
  transition:filter .7s ease,transform .9s cubic-bezier(.22,1,.36,1);
}
.doc:hover .doc-frame img{filter:grayscale(0);transform:scale(1.05)}
.doc .eyebrow{font-size:11px;margin-bottom:12px}
.doc .eyebrow::before{width:22px}
.doc h3{font-size:clamp(.95rem,1.25vw,1.15rem);letter-spacing:0;text-transform:uppercase;color:#fff;margin-bottom:12px}
.doc p{font-size:14px;color:var(--white-dim);max-width:34ch}
.doc small{display:block;margin-top:14px;font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--white-faint)}
.doc-quote{
  margin-top:clamp(64px,8vw,110px);padding-top:clamp(44px,5vw,64px);
  border-top:1px solid var(--hairline);text-align:center;
}
.doc-quote blockquote{
  font-family:var(--display);font-size:clamp(1.1rem,2vw,1.7rem);
  letter-spacing:-.01em;line-height:1.6;color:var(--white);
  max-width:34ch;margin:0 auto;text-transform:uppercase;
}
.doc-quote cite{display:block;margin-top:28px;font-style:normal;font-size:12px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}

/* ============ TESTIMONIALS (CREAM 2) ============ */
.testimonials{position:relative;padding:clamp(96px,12vw,170px) 0;overflow:clip}
.testi-title{
  font-size:clamp(2.6rem,7vw,6rem);letter-spacing:-.03em;
  text-transform:uppercase;color:var(--ink);line-height:1.02;
  margin-bottom:clamp(48px,6vw,80px);
}
.testi-title .gold{display:block}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,36px);margin-bottom:clamp(44px,5vw,64px)}
.testi-card{
  border-radius:6px;overflow:hidden;background:#fff;
  box-shadow:0 18px 50px -18px rgba(27,27,27,.22);
  transition:transform .5s cubic-bezier(.22,1,.36,1),box-shadow .5s;
}
.testi-card:hover{transform:translateY(-8px);box-shadow:0 30px 70px -20px rgba(27,27,27,.32)}
.testi-card img{width:100%;height:100%;object-fit:cover}
.testi-trust{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.pill-dark{
  display:inline-flex;align-items:center;gap:12px;
  border:1px solid var(--hairline-dark);border-radius:9999px;
  padding:12px 24px;font-size:13px;font-weight:500;
  letter-spacing:.04em;color:var(--ink);background:#fff;
  transition:transform .35s,border-color .35s;
}
.pill-dark:hover{transform:translateY(-3px);border-color:var(--gold)}
.pill-dark strong{font-weight:600}

/* ============ LOCATIONS ============ */
.locations{
  position:relative;padding:clamp(96px,12vw,170px) 0;background:var(--ink-2);
  overflow:clip;
}
.locations::before{
  content:"";position:absolute;inset:0;
  background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);
  background-size:34px 34px;
  mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 0%,transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 0%,transparent 75%);
}
.loc-head{text-align:center;margin-bottom:clamp(48px,6vw,80px);position:relative;z-index:1}
.loc-head h2{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.03em;text-transform:uppercase;color:#fff;margin-top:24px}
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.6vw,40px);max-width:1100px;margin:0 auto;position:relative;z-index:1}
.loc-card{
  background:var(--ink);border:1px solid var(--hairline);border-radius:6px;
  padding:clamp(36px,4vw,56px);position:relative;overflow:hidden;
  transition:border-color .45s,transform .45s cubic-bezier(.22,1,.36,1);
}
.loc-card:hover{border-color:var(--hairline-gold);transform:translateY(-6px)}
.loc-card::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.loc-card h3{font-size:clamp(1.1rem,1.6vw,1.45rem);letter-spacing:.02em;text-transform:uppercase;color:#fff;margin:18px 0 26px}
.loc-line{
  display:flex;justify-content:space-between;gap:18px;
  padding:14px 0;border-bottom:1px solid var(--hairline);
  font-size:14px;color:var(--white);
}
.loc-line span:first-child{font-size:11px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--white-faint);padding-top:3px;flex:none}
.loc-line span:last-child{text-align:right}
.loc-line a:hover{color:var(--gold)}
.loc-hours{margin-top:22px}
.loc-hours li{display:flex;justify-content:space-between;font-size:13px;color:var(--white-dim);padding:8px 0;border-bottom:1px dashed var(--hairline)}
.loc-card .btn{margin-top:32px;width:100%}
.areas{max-width:1100px;margin:clamp(48px,6vw,72px) auto 0;text-align:center;position:relative;z-index:1}
.areas p{font-size:12px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--white-faint);margin-bottom:24px}
.areas-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.chip{
  border:1px solid var(--hairline);border-radius:9999px;
  padding:9px 20px;font-size:12px;font-weight:400;
  letter-spacing:.08em;color:var(--white-dim);
  transition:border-color .35s,color .35s;
}
.chip:hover{border-color:var(--gold);color:var(--gold)}

/* ============ FORM FINALE ============ */
.finale{position:relative;padding:clamp(110px,13vw,190px) 0;background:var(--ink-3);overflow:clip}
.finale-bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center 28%}
.finale-bg::before{content:"";position:absolute;inset:0;background:linear-gradient(96deg,rgba(16,16,16,.24) 0%,rgba(16,16,16,.38) 28%,rgba(16,16,16,.88) 49%,rgba(16,16,16,.96) 66%)}
.finale-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,16,16,.42) 0%,rgba(16,16,16,.1) 24%,transparent 52%,rgba(16,16,16,.86) 100%)}
.finale .wm{font-size:clamp(190px,26vw,400px);top:-.14em;right:-.05em;z-index:0}
.finale-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(48px,7vw,110px);position:relative;z-index:1}
.finale h2{
  font-size:clamp(2.4rem,5vw,4.2rem);letter-spacing:-.03em;
  text-transform:uppercase;color:#fff;margin:26px 0 32px;line-height:1.06;
}
.finale-left p{color:var(--white-dim);max-width:42ch;margin-bottom:40px}
.finale-meta{border-top:1px solid var(--hairline);padding-top:32px;display:flex;flex-direction:column;gap:20px}
.finale-meta a{font-size:15px;color:var(--white)}
.finale-meta a:hover{color:var(--gold)}
.finale-meta span{display:block;font-size:11px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--white-faint);margin-bottom:6px}
.finale-faq{margin-top:44px;border-top:1px solid var(--hairline)}
.finale-faq details{border-bottom:1px solid var(--hairline)}
.finale-faq summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:18px;
  padding:20px 0;font-size:14px;font-weight:500;letter-spacing:.04em;color:var(--white);
}
.finale-faq summary::-webkit-details-marker{display:none}
.finale-faq summary::after{content:"+";font-family:var(--display);color:var(--gold);font-size:16px;transition:transform .3s}
.finale-faq details[open] summary::after{transform:rotate(45deg)}
.finale-faq details p{padding:0 0 22px;font-size:14px;color:var(--white-dim);max-width:52ch}
.form{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.field{display:flex;flex-direction:column;gap:10px}
.field-full{grid-column:1 / -1}
.field label{font-size:11px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--white-faint)}
.field input,.field select,.field textarea{
  font-family:var(--body);font-size:15px;font-weight:300;color:#fff;
  background:transparent;border:0;border-bottom:1px solid var(--hairline);
  padding:12px 2px 16px;outline:none;border-radius:0;
  transition:border-color .35s;appearance:none;-webkit-appearance:none;
}
.field select{cursor:pointer}
.field select option{background:var(--ink);color:#fff}
.field textarea{resize:vertical;min-height:96px}
.field input:focus,.field select:focus,.field textarea:focus{border-bottom-color:var(--gold)}
.field input::placeholder,.field textarea::placeholder{color:rgba(255,255,255,.25)}
.form .btn{justify-self:start;margin-top:14px}
.form-note{grid-column:1 / -1;font-size:12px;color:var(--white-faint)}
.form-success{
  display:none;border:1px solid var(--hairline-gold);border-radius:6px;
  padding:clamp(40px,5vw,64px);text-align:center;
}
.form-success.show{display:block}
.form-success .ring{
  width:72px;height:72px;border:1px solid var(--gold);border-radius:50%;
  display:flex;align-items:center;justify-content:center;margin:0 auto 28px;
  color:var(--gold);font-size:26px;
}
.form-success h3{font-size:clamp(1.1rem,1.8vw,1.5rem);text-transform:uppercase;letter-spacing:-.01em;color:#fff;margin-bottom:16px}
.form-success p{color:var(--white-dim);max-width:38ch;margin:0 auto}
.field-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea{border-bottom-color:var(--error)}
.field-error{grid-column:1 / -1;font-size:12px;color:var(--error);margin-top:-4px}
.form-error-banner{
  grid-column:1 / -1;border:1px solid var(--error);border-radius:6px;
  padding:14px 18px;font-size:13px;color:#fff;background:rgba(217,90,90,.08);
}
.form-error-banner[hidden]{display:none}
.btn.is-loading{opacity:.6;pointer-events:none}

/* ============ FOOTER ============ */
.footer{background:#161616;border-top:1px solid var(--hairline-gold);padding:clamp(72px,9vw,120px) 0 48px}
.footer-wordmark{
  font-family:var(--display);font-size:clamp(1.4rem,3.6vw,2.8rem);
  letter-spacing:-.02em;text-transform:uppercase;color:#fff;line-height:1.2;
  display:flex;align-items:center;gap:clamp(16px,2vw,28px);margin-bottom:clamp(48px,6vw,72px);
}
.footer-wordmark img{width:clamp(52px,5vw,72px);height:auto;filter:brightness(0) invert(1);opacity:1}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(32px,4vw,64px);padding-bottom:clamp(48px,6vw,72px);border-bottom:1px solid var(--hairline)}
.footer-col h4,.footer-col .footer-col-title{font-size:11px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:24px;font-family:var(--body)}
.footer-col li{margin-bottom:13px}
.footer-col a{font-size:14px;color:var(--white-dim);transition:color .3s}
.footer-col a:hover{color:#fff}
.footer-col p{font-size:14px;color:var(--white-dim);max-width:34ch}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-top:40px}
.footer-bottom p{font-size:12px;color:var(--white-faint);letter-spacing:.06em}
.footer-bottom nav{display:flex;gap:26px}
.footer-bottom nav a{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--white-faint);padding:6px 0}
.footer-bottom nav a:hover{color:var(--gold)}

/* ============ FLOATING BADGE ============ */
.badge{
  position:fixed;left:28px;bottom:28px;z-index:90;
  width:132px;height:132px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(27,27,27,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:1px solid var(--hairline-gold);
  opacity:0;transform:translateY(20px) scale(.9);
  transition:opacity .6s ease,transform .6s cubic-bezier(.22,1,.36,1);
}
.badge.show{opacity:1;transform:none}
.badge svg{position:absolute;inset:0;width:100%;height:100%;animation:badgeSpin 20s linear infinite}
@keyframes badgeSpin{to{transform:rotate(360deg)}}
.badge svg text{
  font-family:var(--body);font-size:9.2px;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;fill:var(--gold);
}
.badge-center{text-align:center;line-height:1.4}
.badge-center span{display:block;font-size:8px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--white-faint)}
.badge-center a{font-family:var(--display);font-size:11px;color:#fff;letter-spacing:0}
.badge-center a:hover{color:var(--gold)}

/* ============ RESPONSIVE ============ */
@media (max-width:1020px){
  .nav-links{display:none}
  .nav-phone{display:none}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(3){border-left:0}
  .stat{border-top:1px solid var(--hairline)}
  .stat:nth-child(-n+2){border-top:0}
  .manifesto-grid{grid-template-columns:1fr}
  .manifesto-sticky{position:static}
  .finale-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .cond-grid{grid-template-columns:repeat(2,1fr)}
  .conditions-head{grid-template-columns:1fr}
  .conditions-head p{justify-self:start}
}
@media (max-width:720px){
  .nav-burger{display:flex}
  .nav-cta .btn{display:none}
  .mobile-menu{
    display:flex;position:fixed;inset:0;z-index:99;background:var(--ink);
    flex-direction:column;justify-content:flex-start;padding:96px var(--pad) 40px;gap:6px;
    opacity:0;pointer-events:none;transition:opacity .4s ease;
    overflow-y:auto;
  }
  .mobile-menu.open{opacity:1;pointer-events:auto}
  .mobile-menu a{
    font-family:var(--display);font-size:20px;
    text-transform:uppercase;color:#fff;padding:10px 0;
    border-bottom:1px solid var(--hairline);letter-spacing:-.02em;
  }
  .mobile-menu a:last-of-type{border-bottom:0}
  .mobile-menu .btn{margin-top:21px;align-self:stretch;font-size:11px;padding:17px 32px}
  body.menu-open{overflow:hidden}
  /* Solid header while the mobile menu is open — otherwise its transparent
     (unscrolled) background lets scrolled menu content show through behind
     the logo/close button instead of disappearing under it. */
  body.menu-open .nav{background:var(--ink)}
  body.menu-open .nav-burger span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  body.menu-open .nav-burger span:nth-child(2){opacity:0}
  body.menu-open .nav-burger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
  .hero h1{font-size:clamp(2.2rem,11vw,3rem)}
  .hero-vertical{display:none}
  .hero-actions .btn{width:100%}
  /* mobile: let hero grow with content + clear the fixed nav (no eyebrow/nav overlap) */
  .hero{height:auto;min-height:100svh}
  .hero-content{position:relative;bottom:auto;min-height:100svh;padding-top:104px;padding-bottom:56px;display:flex;flex-direction:column;justify-content:center}
  .hero-content .eyebrow{margin-bottom:18px}
  /* marquee → static grid. Both rows merge into one grid (display:contents on the
     row/track wrappers) so the 10 unique images (odd 5 per row) fill evenly in
     pairs instead of each row leaving its own leftover half-empty cell. */
  .marquee{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .marquee-row,.marquee-row .marquee-track{display:contents}
  .marquee-row .marquee-track{animation:none}
  .marquee figure{width:100%;aspect-ratio:1}
  .marquee figure.dup{display:none}
  .marquee img{filter:grayscale(0)}
  .triptych{grid-template-columns:1fr}
  .panel{height:auto;min-height:420px;border-left:0;border-top:1px solid var(--hairline)}
  .panel-list{max-height:none;opacity:1;margin-top:18px}
  .panel-cue{display:none}
  .panel-bg{filter:brightness(.5)}
  .tstep{grid-template-columns:1fr;gap:30px}
  .tstep:nth-child(even) .tstep-body{justify-self:start;margin-left:0;text-align:left;order:1}
  .tstep:nth-child(even) .tstep-img{order:2}
  .tstep:nth-child(even) .tstep-body .eyebrow{flex-direction:row}
  .tstep-num{font-size:clamp(120px,38vw,180px);opacity:.16}
  .doc-grid{grid-template-columns:1fr}
  .testi-grid{grid-template-columns:1fr}
  .loc-grid{grid-template-columns:1fr}
  .form{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .cond-grid{grid-template-columns:1fr 1fr}
  .cond{padding:20px 14px;font-size:11px}
  .badge{width:104px;height:104px;left:16px;bottom:16px}
  .stats-grid{grid-template-columns:1fr 1fr}
}

/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none !important;transition:none !important}
  .rv{opacity:1;transform:none}
  .hero-slide{opacity:0}
  .hero-slide:first-child{opacity:1}
  .band-img{transform:none !important}
  .panel-list{max-height:none;opacity:1;margin-top:18px}
  .marquee-track{transform:none}
}

/* =========================================================================
   CPT / interior page templates — built in the F-outfit design system.
   ========================================================================= */
.cpt-hero{
  position:relative;background:var(--ink);color:#fff;
  padding:clamp(130px,16vw,210px) var(--pad) clamp(56px,7vw,90px);
  border-bottom:1px solid var(--hairline-gold);overflow:hidden;
}
.cpt-hero::after{
  content:attr(data-watermark);position:absolute;right:-2%;bottom:-12%;
  font-family:var(--display);font-weight:700;font-size:clamp(120px,22vw,300px);
  letter-spacing:-.04em;color:rgba(255,255,255,.03);pointer-events:none;line-height:1;
}
.cpt-hero .wrap{position:relative;z-index:1;max-width:980px;margin:0 auto}
.cpt-hero .eyebrow{color:var(--gold);margin-bottom:20px}
.cpt-hero h1{
  font-family:var(--display);font-weight:600;letter-spacing:-.03em;
  font-size:clamp(38px,6vw,76px);line-height:1.04;text-transform:uppercase;margin:0 0 22px;
}
.cpt-hero .cpt-lede{font-size:clamp(16px,1.7vw,20px);color:var(--white);max-width:62ch;line-height:1.6}
.cpt-hero .cpt-actions{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap}

.cpt-body{background:var(--cream);color:var(--ink);padding:clamp(64px,9vw,120px) var(--pad)}
.cpt-prose{max-width:820px;margin:0 auto;font-family:var(--body);font-size:17px;line-height:1.75;color:#2a2a2a}
.cpt-prose > *:first-child{margin-top:0}
.cpt-prose h2{font-family:var(--display);font-weight:600;font-size:clamp(26px,3.2vw,38px);letter-spacing:-.02em;margin:48px 0 16px;line-height:1.15}
.cpt-prose h3{font-family:var(--display);font-weight:600;font-size:clamp(20px,2.2vw,26px);letter-spacing:-.01em;margin:36px 0 12px;color:var(--ink)}
.cpt-prose h4{font-family:var(--display);font-weight:600;font-size:18px;margin:28px 0 10px}
.cpt-prose p{margin:0 0 20px}
.cpt-prose a{color:#7a6220;text-decoration:underline;text-underline-offset:3px}
.cpt-prose a:hover{color:var(--ink)}
.cpt-prose ul,.cpt-prose ol{margin:0 0 22px;padding-left:24px}
.cpt-prose li{margin:0 0 9px}
.cpt-prose img{max-width:100%;height:auto;border-radius:16px;margin:28px 0}
.cpt-prose blockquote{border-left:3px solid var(--gold);margin:28px 0;padding:6px 0 6px 24px;font-style:italic;color:#444}

.cpt-cta{background:var(--ink-3);color:#fff;text-align:center;padding:clamp(70px,9vw,110px) var(--pad)}
.cpt-cta h2{font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(28px,4vw,48px);margin:0 0 16px}
.cpt-cta p{color:var(--white-dim);max-width:52ch;margin:0 auto 30px;font-size:16px}
.cpt-cta .cpt-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* Archive grids */
.arch{background:var(--cream);color:var(--ink);padding:clamp(64px,9vw,120px) var(--pad)}
.arch .wrap{max-width:1180px;margin:0 auto}
.arch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;margin-top:48px}
.arch-card{
  display:block;background:#fff;border:1px solid var(--hairline-dark);border-radius:16px;
  padding:30px 28px;text-decoration:none;color:var(--ink);transition:transform .4s var(--ease,ease),box-shadow .4s;
}
.arch-card:hover{transform:translateY(-4px);box-shadow:0 18px 50px rgba(27,27,27,.12);border-color:var(--hairline-gold)}
.arch-card h3{font-family:var(--display);font-weight:600;font-size:20px;letter-spacing:-.01em;margin:0 0 10px}
.arch-card p{font-size:14px;line-height:1.6;color:#555;margin:0}
.arch-card .arch-more{display:inline-block;margin-top:16px;font-family:var(--display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#9a7d2e}

/* =========================================================================
   Custom service icons (inc/icons.php)
   ========================================================================= */
.arch-card--icon{padding-top:26px}
.arch-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:14px;margin-bottom:18px;
  background:rgba(217,188,106,.12);border:1px solid var(--hairline-gold);color:#9a7d2e;
  transition:background .4s var(--ease,ease),color .4s,transform .4s;
}
.arch-icon .hfw-svc-icon{width:26px;height:26px}
.arch-card--icon:hover .arch-icon{background:var(--gold);color:var(--ink);transform:translateY(-2px)}

.cpt-hero-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:64px;height:64px;border-radius:16px;margin-bottom:26px;
  background:rgba(217,188,106,.14);border:1px solid var(--hairline-gold);color:var(--gold);
}
.cpt-hero-icon .hfw-svc-icon{width:32px;height:32px}

/* ============ LOCATIONS LANDING (bespoke) ============ */
.loc-clinics{padding:clamp(56px,8vw,110px) 0}
.loc-clinic-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3vw,40px)}
.loc-clinic{background:#fff;border:1px solid var(--hairline-dark);border-radius:18px;padding:clamp(28px,3vw,44px);display:flex;flex-direction:column;gap:6px}
.loc-clinic .eyebrow{color:#85681a;margin-bottom:6px}
.loc-clinic h2{font-family:var(--display);font-size:clamp(1.6rem,2.6vw,2.2rem);letter-spacing:-.02em;text-transform:uppercase;color:var(--ink);margin-bottom:10px}
.loc-clinic address{font-style:normal;font-size:15px;color:rgba(27,27,27,.7);line-height:1.6}
.loc-clinic .loc-phone{margin:6px 0 20px}
.loc-clinic .loc-phone a{font-family:var(--display);font-size:1.3rem;color:var(--ink);letter-spacing:-.01em}
.loc-clinic .loc-phone a:hover{color:#85681a}
.loc-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.loc-actions .btn{padding:14px 24px;font-size:11px}
.loc-map-link{font-size:13px;font-weight:600;letter-spacing:.04em;color:#85681a;text-transform:uppercase}
.loc-map-link:hover{text-decoration:underline}

.loc-areas{background:var(--ink);padding:clamp(56px,8vw,110px) 0}
.loc-areas .eyebrow{color:var(--gold);margin-bottom:16px}
.loc-areas h2{font-family:var(--display);font-size:clamp(1.8rem,3.4vw,2.8rem);letter-spacing:-.03em;text-transform:uppercase;color:#fff;margin-bottom:14px}
.loc-areas-lede{color:var(--white-dim);max-width:56ch;margin-bottom:clamp(32px,4vw,48px)}
.loc-areas-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--hairline);border-left:1px solid var(--hairline)}
.loc-areas-grid li{border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}
.loc-areas-grid a{display:flex;align-items:center;gap:12px;padding:22px 24px;font-family:var(--display);font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--white);transition:background .3s,color .3s}
.loc-areas-grid a:hover{background:rgba(217,188,106,.1);color:var(--gold)}
.loc-area-arrow{color:var(--gold);font-size:12px;transition:transform .3s}
.loc-areas-grid a:hover .loc-area-arrow{transform:translateX(4px)}
@media(max-width:820px){.loc-clinic-grid{grid-template-columns:1fr}.loc-areas-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.loc-areas-grid{grid-template-columns:1fr}}

/* ============ ABOUT PAGE ============ */
.about-story{padding:clamp(56px,8vw,110px) 0}
.about-story-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,5vw,80px);align-items:start}
.about-story .eyebrow{color:#85681a;margin-bottom:16px}
.about-story h2{font-family:var(--display);font-size:clamp(1.8rem,3.4vw,2.8rem);letter-spacing:-.03em;text-transform:uppercase;color:var(--ink);max-width:14ch}
.about-story-body p{font-size:clamp(16px,1.3vw,18px);color:rgba(27,27,27,.78);margin-bottom:20px}
.about-story-body em{color:#85681a;font-style:normal;font-weight:600}

.about-values{padding:clamp(56px,8vw,110px) 0}
.about-values .eyebrow{color:var(--gold);margin-bottom:16px}
.about-values > .wrap > h2{font-family:var(--display);font-size:clamp(1.8rem,3.4vw,2.8rem);letter-spacing:-.03em;text-transform:uppercase;color:#fff;margin-bottom:clamp(32px,4vw,52px)}
.about-values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.5vw,32px)}
.about-value{border:1px solid var(--hairline);border-radius:16px;padding:clamp(24px,2.5vw,36px);background:var(--ink-2)}
.about-value h3{font-family:var(--display);font-size:1.3rem;letter-spacing:-.01em;color:var(--gold);margin-bottom:14px}
.about-value p{color:var(--white-dim);font-size:15px}

.about-team{padding:clamp(56px,8vw,110px) 0}
.about-team .eyebrow{color:#85681a;margin-bottom:16px}
.about-team > .wrap > h2{font-family:var(--display);font-size:clamp(1.8rem,3.4vw,2.8rem);letter-spacing:-.03em;text-transform:uppercase;color:var(--ink);margin-bottom:clamp(32px,4vw,52px)}
/* Flex, not grid — so an incomplete last row (e.g. 5 doctors over 2 rows of 3)
   centers itself instead of leaving a blank trailing grid cell. */
.about-team-grid{display:flex;flex-wrap:wrap;justify-content:center;--doc-gap:clamp(20px,2.5vw,32px);gap:var(--doc-gap)}
.about-team-grid > .about-doc{flex:0 0 calc((100% - 2*var(--doc-gap))/3);max-width:calc((100% - 2*var(--doc-gap))/3)}
.about-doc{display:flex;flex-direction:column;align-items:flex-start;background:#fff;border:1px solid var(--hairline-dark);border-radius:18px;padding:clamp(24px,2.5vw,36px);transition:transform .3s,box-shadow .3s}
.about-doc:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(27,27,27,.09)}
.about-doc-monogram{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:rgba(217,188,106,.16);border:1px solid var(--hairline-gold);color:#85681a;font-family:var(--display);font-size:1.4rem;letter-spacing:.02em;margin-bottom:20px}
.about-doc h3{font-family:var(--display);font-size:1.25rem;letter-spacing:-.01em;color:var(--ink);margin-bottom:10px;line-height:1.2}
.about-doc p{color:rgba(27,27,27,.66);font-size:14.5px;margin-bottom:18px;flex:1}
.about-doc-more{font-family:var(--body);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#85681a}
@media(max-width:900px){.about-values-grid{grid-template-columns:1fr}.about-story-grid{grid-template-columns:1fr}.about-team-grid > .about-doc{flex-basis:calc((100% - var(--doc-gap))/2);max-width:calc((100% - var(--doc-gap))/2)}}
@media(max-width:640px){.about-team-grid > .about-doc{flex-basis:100%;max-width:100%}}

/* ============ REVIEWWAVE SCHEDULER ============ */
.hfw-scheduler{display:grid;gap:clamp(28px,4vw,48px);margin:clamp(24px,4vw,40px) 0}
.hfw-sched-title{font-family:var(--display);font-size:clamp(1.2rem,2vw,1.5rem);letter-spacing:-.01em;color:var(--ink);margin-bottom:16px;text-transform:uppercase}
.hfw-sched-title span{display:block;font-family:var(--body);font-size:13px;font-weight:500;letter-spacing:.02em;text-transform:none;color:rgba(27,27,27,.6);margin-top:4px}
.hfw-sched-block{background:#fff;border:1px solid var(--hairline-dark);border-radius:16px;padding:clamp(16px,2vw,24px)}
.rw-embed-wrap.rw-sched-wrap{min-height:640px;width:100%}
.rw-embed-wrap.rw-sched-wrap iframe{width:100%!important;border:0;border-radius:10px}
@media(max-width:900px){.hfw-scheduler{gap:24px}}
.rw-fallback{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:clamp(24px,3vw,40px);min-height:220px;justify-content:center}
.rw-fallback p{color:rgba(27,27,27,.75);max-width:46ch;margin:0}
.rw-fallback strong{font-family:var(--display);font-size:1.2rem;color:var(--ink)}
.rw-embed-wrap.rw-working .rw-fallback,.rw-embed-wrap:not(:empty) .rw-fallback{}

/* ============ ABOUT — steps + benefits ============ */
.about-steps{padding:clamp(56px,8vw,110px) 0}
.about-steps .eyebrow{color:#85681a;margin-bottom:16px}
.about-steps > .wrap > h2{font-family:var(--display);font-size:clamp(1.8rem,3.4vw,2.8rem);letter-spacing:-.03em;text-transform:uppercase;color:var(--ink);margin-bottom:clamp(32px,4vw,52px)}
.about-steps-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.5vw,36px);counter-reset:step}
.about-steps-grid li{position:relative;padding-top:8px}
.about-step-n{font-family:var(--display);font-size:clamp(2.4rem,4vw,3.4rem);color:var(--gold);line-height:1;display:block;margin-bottom:16px}
.about-steps-grid h3{font-family:var(--display);font-size:1.25rem;letter-spacing:-.01em;color:var(--ink);margin-bottom:10px}
.about-steps-grid p{color:rgba(27,27,27,.7);font-size:15px}
.about-benefits{padding:clamp(56px,8vw,110px) 0;background:var(--ink)}
.about-benefits .eyebrow{color:var(--gold);margin-bottom:16px}
.about-benefits > .wrap > h2{font-family:var(--display);font-size:clamp(1.7rem,3.2vw,2.6rem);letter-spacing:-.03em;text-transform:uppercase;color:#fff;max-width:22ch;margin-bottom:clamp(32px,4vw,52px)}
.about-benefits-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.5vw,32px)}
.about-benefit{border-left:2px solid var(--gold);padding:6px 0 6px 22px}
.about-benefit h3{font-family:var(--display);font-size:1.2rem;color:#fff;margin-bottom:10px}
.about-benefit p{color:var(--white-dim);font-size:15px}
@media(max-width:820px){.about-steps-grid,.about-benefits-grid{grid-template-columns:1fr}}

/* ============ SINGLE LOCATION — visit + nearby ============ */
.loc-visit{padding:clamp(48px,6vw,80px) 0}
.loc-visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px);align-items:center}
.loc-visit-info .eyebrow{color:#85681a;margin-bottom:14px}
.loc-visit-info h2{font-family:var(--display);font-size:clamp(1.5rem,2.6vw,2.1rem);letter-spacing:-.02em;text-transform:uppercase;color:var(--ink);margin-bottom:24px}
.loc-visit-info address{font-style:normal;display:flex;flex-direction:column;gap:16px;margin-bottom:28px}
.loc-visit-line{display:flex;flex-direction:column;gap:3px}
.loc-visit-line strong{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#85681a}
.loc-visit-line, .loc-visit-line a{font-size:16px;color:rgba(27,27,27,.82)}
.loc-visit-line a:hover{color:#85681a}
.loc-visit-actions{display:flex;gap:12px;flex-wrap:wrap}
.loc-visit-actions .btn{padding:14px 24px;font-size:11px}
.loc-visit-map{border-radius:16px;overflow:hidden;border:1px solid var(--hairline-dark);aspect-ratio:4/3;background:#e9e6df}
.loc-visit-map iframe{width:100%;height:100%;border:0;display:block}

.loc-nearby{background:var(--ink);padding:clamp(48px,6vw,90px) 0}
.loc-nearby .eyebrow{color:var(--gold);margin-bottom:14px}
.loc-nearby > .wrap > h2{font-family:var(--display);font-size:clamp(1.6rem,3vw,2.4rem);letter-spacing:-.03em;text-transform:uppercase;color:#fff;margin-bottom:12px}
.loc-nearby-lede{color:var(--white-dim);max-width:52ch;margin-bottom:clamp(28px,3vw,40px)}
.loc-nearby-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,24px)}
.loc-nearby-card{display:flex;flex-direction:column;gap:6px;background:var(--ink-2);border:1px solid var(--hairline);border-radius:16px;padding:clamp(22px,2.4vw,32px);transition:border-color .3s,transform .3s}
.loc-nearby-card:hover{border-color:var(--gold);transform:translateY(-2px)}
.loc-nearby-card h3{font-family:var(--display);font-size:1.4rem;color:#fff;letter-spacing:-.01em}
.loc-nearby-addr{color:var(--white-dim);font-size:14px}
.loc-nearby-phone{color:var(--gold);font-family:var(--display);font-size:1.05rem;margin-top:4px}
.loc-nearby-more{margin-top:10px;font-family:var(--body);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--white)}
@media(max-width:820px){.loc-visit-grid,.loc-nearby-grid{grid-template-columns:1fr}}

/* ============ Footer clinic addresses (both locations) ============ */
.footer-clinic{font-style:normal;margin:0 0 14px;line-height:1.5;font-size:.92rem}
.footer-clinic strong{display:block;color:#fff;font-weight:600;letter-spacing:.01em;margin-bottom:2px}
.footer-clinic a{white-space:nowrap}
.footer-email{margin:2px 0 0;font-size:.92rem}

/* ============ Nav hover dropdown menus ============ */
.nav-item{position:relative;display:inline-flex;align-items:center}
.nav-item.has-submenu a{display:inline-flex;align-items:center;gap:5px}
.nav-caret{flex:none;width:14px;height:14px;transition:transform .3s}
.nav-item:hover .nav-caret,.nav-item:focus-within .nav-caret{transform:rotate(180deg)}
.submenu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);min-width:240px;background:#fff;border:1px solid #ece8dc;border-radius:12px;box-shadow:0 24px 60px -24px rgba(23,23,23,.4);padding:10px;opacity:0;visibility:hidden;transition:opacity .2s ease,transform .2s ease;z-index:120}
.nav-item:hover .submenu,.nav-item:focus-within .submenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.submenu::before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px}
.submenu-list{list-style:none;margin:0;padding:0;display:grid;gap:1px}
.submenu-wide{min-width:540px}
.submenu-wide .submenu-list{grid-template-columns:1fr 1fr;gap:1px 16px}
.submenu-list li{margin:0}
.submenu-list a{display:block;padding:9px 12px;font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:#1b1b1b;border-radius:7px;transition:background .15s,color .15s}
.submenu-list a::after{display:none!important}
.submenu-list a:hover{background:#f6f5f0;color:#7a6220}

/* Area chips are now clickable links */
a.chip{cursor:pointer;text-decoration:none;transition:background .18s,color .18s,border-color .18s}
a.chip:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}

/* Left-align section headers so they line up with the content below (matches /about/) */
.theatre-head,.loc-head{text-align:left}
.theatre-head .eyebrow,.loc-head .eyebrow{justify-content:flex-start!important}

/* What We Treat (conditions archive) — trim the oversized section padding */
.arch{padding-top:clamp(44px,5vw,76px);padding-bottom:clamp(44px,5vw,76px)}

/* Instagram strip */
.ig-strip{padding:clamp(56px,7vw,90px) 0;background:var(--cream)}
.ig-strip .wrap{max-width:1180px;margin:0 auto}
.ig-head{text-align:center;margin-bottom:34px}
.ig-head h2{font-size:clamp(1.8rem,3.4vw,2.8rem);letter-spacing:-.03em;text-transform:uppercase;color:var(--ink);margin-top:14px}
.ig-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;align-items:start;justify-items:center;max-width:1180px;margin:0 auto}
.ig-grid .instagram-media{margin:0!important;min-width:0!important;width:100%!important}
.ig-cta{text-align:center;margin-top:32px}

/* Location single hero photo + town map */
.cpt-hero--photo{position:relative;overflow:hidden}
.cpt-hero-photo{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.26;z-index:0}
.cpt-hero--photo .wrap{position:relative;z-index:1}
.loc-map{margin-top:34px;border-radius:14px;overflow:hidden}
.loc-map iframe{width:100%;height:340px;border:0;display:block}

/* ============ HEADER PHONE PICKER (number swap: Bettendorf / Davenport) ============ */
.nav-phone-wrap{position:relative;display:flex}
.nav-phone-toggle{display:inline-flex;align-items:center;gap:8px;background:none;border:0;cursor:pointer;
  font-family:var(--body);font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;
  color:var(--white-dim);padding:8px 2px;transition:color .3s}
.nav-phone-toggle:hover,.nav-phone-wrap:focus-within .nav-phone-toggle,.nav-phone-wrap.open .nav-phone-toggle{color:var(--gold)}
.nav-phone-caret{transition:transform .3s}
.nav-phone-wrap:hover .nav-phone-caret,.nav-phone-wrap:focus-within .nav-phone-caret,.nav-phone-wrap.open .nav-phone-caret{transform:rotate(180deg)}
.nav-phone-menu{position:absolute;top:calc(100% + 12px);right:0;min-width:230px;background:var(--ink-2);
  border:1px solid var(--hairline);border-radius:12px;box-shadow:0 22px 50px rgba(0,0,0,.45);
  padding:8px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .25s,transform .25s,visibility .25s;z-index:60}
.nav-phone-wrap:hover .nav-phone-menu,.nav-phone-wrap:focus-within .nav-phone-menu,.nav-phone-wrap.open .nav-phone-menu{opacity:1;visibility:visible;transform:translateY(0)}
.nav-phone-menu::before{content:"";position:absolute;top:-16px;right:0;left:0;height:16px}
.nav-phone-menu a{display:flex;flex-direction:column;gap:3px;padding:11px 14px;border-radius:8px;text-decoration:none;transition:background .2s}
.nav-phone-menu a:hover{background:rgba(255,255,255,.05)}
.nav-phone-loc{font-size:10px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.nav-phone-num{font-size:16px;font-weight:600;color:#fff;letter-spacing:.02em}

/* mobile menu — collapsible Services / What We Treat / Locations submenus */
.mobile-acc-item{border-bottom:1px solid var(--hairline)}
.mobile-acc-toggle{
  display:flex;align-items:center;justify-content:space-between;width:100%;
  font-family:var(--display);font-size:20px;text-transform:uppercase;
  color:#fff;padding:10px 0;letter-spacing:-.02em;background:none;border:0;
  cursor:pointer;text-decoration:none;-webkit-tap-highlight-color:transparent;
}
.mobile-acc-caret{flex:none;margin-left:14px;transition:transform .3s}
.mobile-acc-item.is-open .mobile-acc-caret{transform:rotate(180deg)}
.mobile-acc-panel{height:0;overflow:hidden}
.mobile-acc-panel .submenu-list{list-style:none;margin:0;padding:2px 0 16px;display:grid;gap:2px}
.mobile-acc-panel .submenu-list li{margin:0}
.mobile-acc-panel .submenu-list a{
  display:flex;align-items:center;gap:12px;padding:10px 6px;border-radius:8px;
  font-family:var(--body);font-size:13px;font-weight:500;letter-spacing:.03em;
  text-transform:none;color:rgba(255,255,255,.68);text-decoration:none;
  transition:background .15s,color .15s;
}
.mobile-acc-panel .submenu-list a:hover,.mobile-acc-panel .submenu-list a:active{background:rgba(255,255,255,.06);color:#fff}
.mobile-acc-panel .submenu-ico{flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--gold)}
.mobile-acc-panel .submenu-ico-svg{width:20px;height:20px}
.mobile-acc-panel .submenu-txt{display:block}
.mobile-acc-panel .submenu-lead{border-bottom:1px solid var(--hairline);margin-bottom:4px;padding-bottom:4px}
.mobile-acc-panel .submenu-lead a{color:var(--gold);font-weight:700;font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:10px 6px}

/* mobile menu — both location numbers */
.mobile-phones{display:flex;flex-direction:column;gap:10px;margin:19px 0 6px;width:100%}
.mobile-phones a{display:flex;flex-direction:column;gap:3px;text-decoration:none}
.mobile-phones span{font-size:8px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.mobile-phones strong{font-size:18px;font-weight:600;color:#fff}

/* ============ photo-refresh follow-ups — 2026-07-25 ============ */
/* 1 · Testimonials on one line */
.testi-title .gold{display:inline}

/* 2 · cpt-hero text left-aligns to the site container gutter (single gutter, matches nav/homepage) */
.cpt-hero{padding-left:0;padding-right:0}
.cpt-hero .wrap{max-width:1440px}

/* 3 · About doctor cards — real photos + spacing */
.about-doc-photo{display:block;width:100%;aspect-ratio:4/5;border-radius:12px;overflow:hidden;margin-bottom:22px;border:1px solid var(--hairline-dark)}
.about-doc-photo img{width:100%;height:100%;object-fit:cover;object-position:center 12%;filter:grayscale(.5);transition:filter .35s,transform .35s;display:block}
.about-doc:hover .about-doc-photo img{filter:grayscale(0);transform:scale(1.04)}
.about-doc-role{font-family:var(--body);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#85681a;margin:-6px 0 12px}
.about-doc{cursor:pointer}

/* 4 · Doctor bio modal */
.doc-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px}
.doc-modal[hidden]{display:none}
.doc-modal-overlay{position:absolute;inset:0;background:rgba(16,16,16,.72);backdrop-filter:blur(3px)}
.doc-modal-card{position:relative;z-index:1;background:#fff;border-radius:18px;overflow:hidden;max-width:880px;width:100%;max-height:88vh;display:grid;grid-template-columns:minmax(0,42%) 1fr;box-shadow:0 30px 90px rgba(0,0,0,.45)}
.doc-modal-media{background:#111;min-height:100%}
.doc-modal-media img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.doc-modal-body{padding:clamp(28px,3.4vw,52px);overflow-y:auto}
.doc-modal-body .eyebrow{color:#85681a;margin-bottom:12px}
.doc-modal-body h3{font-family:var(--display);font-weight:600;font-size:clamp(1.5rem,2.6vw,2.1rem);letter-spacing:-.02em;color:var(--ink);margin:0 0 20px;line-height:1.1}
.doc-modal-bio{color:rgba(27,27,27,.76);font-size:15.5px;line-height:1.72}
.doc-modal-bio p{margin:0 0 14px}.doc-modal-bio p:last-child{margin-bottom:0}
.doc-modal-body .btn{margin-top:26px}
.doc-modal-close{position:absolute;top:12px;right:14px;z-index:2;width:40px;height:40px;border:none;border-radius:50%;background:rgba(255,255,255,.9);color:var(--ink);font-size:26px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}
.doc-modal-close:hover{background:var(--gold)}
body.doc-modal-open{overflow:hidden}
@media(max-width:680px){.doc-modal-card{grid-template-columns:1fr;max-height:92vh}.doc-modal-media{max-height:240px}}

/* 5 · Footer social icons + back-to-top arrow */
.footer-social{display:flex;gap:12px;align-items:center}
.footer-social a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--hairline);color:var(--white-dim);transition:color .25s,border-color .25s,background .25s}
.footer-social a:hover{color:#111;background:var(--gold);border-color:var(--gold)}
.footer-bottom .back-to-top{display:inline-flex;flex-direction:column;align-items:center;gap:5px;line-height:1.1}
.footer-bottom .back-to-top svg{transition:transform .25s}
.footer-bottom .back-to-top:hover svg{transform:translateY(-3px)}

/* 6 · Social icons inside the finale contact block */
.finale-social{display:flex;gap:12px;margin-top:26px}
.finale-social .soc{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;border:1px solid var(--hairline);color:var(--white);transition:color .25s,background .25s,border-color .25s}
.finale-social .soc:hover{color:#111;background:var(--gold);border-color:var(--gold)}

/* ============ nav + hero follow-ups — 2026-07-25b ============ */
/* About hero: reveal team faces, push copy to the bottom */
.cpt-hero--faces{display:flex;flex-direction:column;justify-content:flex-end;min-height:100vh}
.cpt-hero--faces .cpt-hero-photo{opacity:1;background-position:center 32%}
.cpt-hero--faces .cpt-hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,16,16,.22) 0,rgba(16,16,16,0) 30%,rgba(16,16,16,.62) 62%,rgba(16,16,16,.93) 100%)}

/* Mobile/tablet nav: burger up top, CTAs move to a fixed bottom action bar (muv-style) */
.mobile-actionbar{display:none}
@media (max-width:1020px){
  .nav-burger{display:flex}
  .nav-phone-wrap{display:none}
  .nav-cta .btn{display:none}
  .nav-brand img{height:34px}
  .nav-brand span{font-size:11.5px;line-height:1.28;white-space:nowrap}
  .nav-brand small{letter-spacing:.2em;white-space:nowrap}
  .mobile-menu{display:flex;position:fixed;inset:0;z-index:99;background:var(--ink);flex-direction:column;justify-content:flex-start;padding:96px var(--pad) 96px;gap:6px;opacity:0;pointer-events:none;transition:opacity .35s ease;overflow-y:auto}
  .mobile-menu.open{opacity:1;pointer-events:auto}
  .mobile-menu a{font-family:var(--display);font-size:20px;text-transform:uppercase;color:#fff;padding:10px 0;border-bottom:1px solid var(--hairline);letter-spacing:-.02em}
  .mobile-menu a:last-of-type{border-bottom:0}
  .mobile-menu .btn{margin-top:18px;align-self:stretch;font-size:11px;padding:17px 32px}
  body.menu-open{overflow:hidden}
  body.menu-open .nav{background:var(--ink)}
  .mobile-actionbar{display:grid;grid-template-columns:1fr 1.55fr;position:fixed;left:0;right:0;bottom:0;z-index:95;background:var(--ink);border-top:1px solid var(--hairline);box-shadow:0 -6px 24px rgba(0,0,0,.32)}
  .mab-btn{display:flex;align-items:center;justify-content:center;gap:9px;padding:15px 10px;font-family:var(--body);font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;min-height:58px}
  .mab-call{color:#fff;border-right:1px solid var(--hairline)}
  .mab-call:active{background:rgba(255,255,255,.08)}
  .mab-book{color:#111;background:var(--gold)}
  body{padding-bottom:59px}
  .badge{display:none}
}

/* ============ contact cards + footer clinics + nav/gutter polish — 2026-07-25e ============ */
/* Contact page cards */
.contact-info{background:var(--cream);color:var(--ink);padding:clamp(44px,6vw,84px) var(--pad)}
.contact-info .wrap{max-width:1080px}
.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,24px)}
.contact-card{background:#fff;border:1px solid var(--hairline-dark);border-radius:18px;padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;gap:14px;transition:transform .3s,box-shadow .3s}
.contact-card:hover{transform:translateY(-3px);box-shadow:0 16px 44px rgba(27,27,27,.09)}
.contact-card-eyebrow{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#85681a;margin:0}
.contact-card h3{font-family:var(--display);font-weight:600;font-size:clamp(1.5rem,2.6vw,2rem);letter-spacing:-.02em;color:var(--ink);margin:0;line-height:1.05}
.contact-card h3 a{color:inherit;text-decoration:none}
.contact-card h3 a:hover{color:#85681a}
.contact-row{display:flex;align-items:flex-start;gap:12px;margin:0;color:#3a3a3a;font-size:15px;line-height:1.5}
.contact-ico{flex:none;display:inline-flex;color:var(--gold)}
.contact-ico svg{width:18px;height:18px;margin-top:1px}
.contact-row a{color:#3a3a3a;text-decoration:none}
.contact-row a:hover{color:#85681a}
.contact-card-actions{margin-top:auto;display:flex;gap:10px;flex-wrap:wrap;padding-top:6px}
.contact-card-actions .btn{padding:11px 20px;font-size:11px}
.contact-card--email{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}
.contact-card--email .contact-row a{font-size:1.05rem;color:var(--ink);font-weight:500}
.contact-card--email .contact-card-eyebrow{display:block;margin-bottom:2px}
@media(max-width:720px){.contact-cards{grid-template-columns:1fr}.contact-card--email{flex-direction:column;align-items:flex-start}}

/* Footer: clinic name link + per-clinic social icons */
.footer-clinic{margin-bottom:22px}
.footer-clinic-name{display:block;color:#fff;font-weight:600;letter-spacing:.01em;margin-bottom:3px;font-size:.98rem;text-decoration:none}
.footer-clinic-name:hover{color:var(--gold)}
.footer-clinic-addr{display:block;color:var(--white-dim);font-size:.9rem;line-height:1.5}
.footer-clinic-phone{display:inline-block;color:var(--white-dim);font-size:.9rem;margin-top:2px}
.footer-clinic-phone:hover{color:#fff}
.footer-clinic-social{display:flex;gap:9px;margin-top:10px}
.footer-clinic-social a{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1px solid var(--hairline);color:var(--white-dim);transition:color .25s,background .25s,border-color .25s}
.footer-clinic-social a:hover{color:#111;background:var(--gold);border-color:var(--gold)}

/* Nav links: nudge lower + padded hover underline */
.nav-links a{padding:13px 0 14px}
.nav-links a::after{bottom:3px}

/* Uniform, tighter mobile gutters */
@media (max-width:640px){ :root{ --pad:18px } }

/* ============ megamenu icons + padding + anchor scroll — 2026-07-26 ============ */
.submenu{padding:16px}
.submenu-wide{min-width:600px}
.submenu-list{gap:3px}
.submenu-list a{display:flex;align-items:center;gap:13px;padding:12px 16px}
.submenu-ico{flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;color:#a98b3e}
.submenu-ico-svg{width:22px;height:22px}
.submenu-txt{display:block;line-height:1.2}
/* smooth in-page anchor to the on-page contact form, clear of the sticky nav */
html{scroll-behavior:smooth}
.finale{scroll-margin-top:88px}

article ul{
	list-style-type: disclosure-closed;
}

@media(max-width:639px){
	.blockquote-break br{
		display: none;
	}
}

.apptForm-container{
	align-items: center;
    display: flex;
	width: 100%;
}

#apptForm{
	width: 100%;
}

.finale-faq details p{
	margin-bottom: 0 !important;
}
/* ============ mid-desktop nav: never stack — 2026-08-06 ============ */
/* Between the 1020px burger breakpoint and ~1469px the three nav groups
   (brand / links / CTAs) did not fit on one line, so the wordmark collided
   with "Services", "What We Treat" broke onto three lines, "Call Us" onto
   two, and the Schedule button ran off-screen.

   Fix: nothing in the bar may wrap or shrink. Width is shed deliberately —
   first spacing, then low-priority links move into a "More" dropdown.
   Each step's minimum width was binary-searched against the live page:
     roomy spacing, all 5 links ............... 1469px
     step 1 spacing ........................... 1398px
     step 2 spacing + smaller brand ........... 1280px
     About + Contact in "More" ................ 1198px
     Locations in "More" too, brand tighter ... 1021px  */
@media (min-width:1021px){
  .nav{flex-wrap:nowrap}
  .nav-brand{flex:0 0 auto}
  .nav-brand span,.nav-brand small{white-space:nowrap}
  .nav-links{flex:0 0 auto;flex-wrap:nowrap}
  .nav-links > a,.nav-item.has-submenu > a{white-space:nowrap}
  .nav-cta{flex:0 0 auto;flex-wrap:nowrap}
  .nav-phone-toggle span{white-space:nowrap}
  .nav-cta .btn{white-space:nowrap}
  /* "More" and its Locations entry only exist in the bands that need them */
  .nav-more{display:none}
  .nav-more-loc{display:none}
}

/* <=1468px — first tightening */
@media (min-width:1021px) and (max-width:1468px){
  .nav-links{gap:26px}
  .nav-cta{gap:14px}
  .nav-cta .btn{padding:13px 22px}
}

/* <=1397px — second tightening, brand steps down */
@media (min-width:1021px) and (max-width:1397px){
  .nav-links{gap:18px}
  .nav-cta{gap:12px}
  .nav-cta .btn{padding:12px 17px;font-size:10.5px}
  .nav-brand{gap:10px}
  .nav-brand img{height:34px}
  .nav-brand span{font-size:11.5px;line-height:1.3}
  .nav-brand small{letter-spacing:.2em}
}

/* <=1279px — About + Contact move into "More" instead of wrapping */
@media (min-width:1021px) and (max-width:1279px){
  .nav-links{gap:20px}
  .nav-more{display:inline-flex}
  .nav-links > .nav-drop-1,
  .nav-links > .nav-drop-2{display:none}
}

/* <=1197px — Locations joins them; brand + spacing take a final step down */
@media (min-width:1021px) and (max-width:1197px){
  .nav-links{gap:18px}
  .nav-links > .nav-drop-3{display:none}
  .nav-more-loc{display:block}
  .nav-cta{gap:11px}
  .nav-cta .btn{padding:12px 16px}
  .nav-brand{gap:9px}
  .nav-brand img{height:32px}
  .nav-brand span{font-size:11px;line-height:1.28}
  .nav-brand small{font-size:8.5px;letter-spacing:.16em}
}

/* "More" panel: centred under its item and icon-led, exactly like the
   Services / What We Treat / Locations megamenus it stands in for. */
@media (min-width:1021px){
  .nav-more .submenu{min-width:232px}
}

/* "More" toggle: a button (not a dead "#" link) styled to match the nav links */
.nav-more-toggle{
  display:inline-flex;align-items:center;gap:5px;
  background:none;border:0;padding:13px 0 14px;cursor:pointer;
  font-family:var(--body);font-size:12px;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--white);position:relative;
}
.nav-more-toggle::after{content:"";position:absolute;left:0;bottom:3px;width:0;height:1px;background:var(--gold);transition:width .35s}
.nav-more-toggle:hover::after,.nav-more:focus-within .nav-more-toggle::after{width:100%}
.nav-more:hover .nav-caret,.nav-more:focus-within .nav-caret{transform:rotate(180deg)}

/* ============ MarkUp round 2026-09-29 (Dr. Ashly + Paige) ============ */
/* #64 — Google review stats pill replaces the Facebook one */
.pill-stars{color:var(--gold);letter-spacing:.08em;font-size:13px;line-height:1}
/* #72 — social icons grouped per clinic in the finale */
.finale-social{flex-wrap:wrap;gap:28px;align-items:center}
.finale-social-clinic{display:flex;align-items:center;gap:10px}
.finale-social-city{font-size:11px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--white-faint);margin-right:2px}
/* #76/#77 — per-clinic email under each footer clinic */
.footer-clinic-email{display:block;color:var(--white-dim);font-size:.9rem;margin-top:2px;white-space:nowrap}
.footer-clinic-email:hover{color:#fff}
@media(max-width:640px){
  .finale-social{gap:18px}
  .footer-clinic-email{white-space:normal;word-break:break-word}
}
/* #58 — "Chiropractor, Founder & CEO" wraps to 2 lines; keep the 3 doctor cards aligned */
.doc .eyebrow{min-height:2.4em;align-items:flex-start}
.finale-meta-email{display:block;margin-top:4px;font-size:14px !important;color:var(--white-dim) !important}
.finale-meta-email:hover{color:var(--gold) !important}

/* ============ Photo reel — homepage testimonials carousel (2026-09-29) ============
   Replaces the three static review screenshots (MarkUp #65-67). Mixed portrait +
   landscape client photos: every slide keeps its own aspect at a shared height, so
   the strip reads like a filmstrip rather than a grid of crops.
   Images come from Theme Options → Gallery (hfw_gallery_ids()). */
.reel{position:relative;margin-bottom:clamp(44px,5vw,64px)}
.reel-track{
  display:flex;gap:clamp(12px,1.4vw,20px);
  overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding:4px 0 18px;margin:0 -2px;
  scrollbar-width:none;-ms-overflow-style:none;
  cursor:grab;
}
.reel-track::-webkit-scrollbar{display:none}
.reel-track.is-dragging{cursor:grabbing;scroll-behavior:auto;scroll-snap-type:none}
.reel-track:focus-visible{outline:2px solid var(--gold);outline-offset:6px}
.reel-slide{
  position:relative;flex:0 0 auto;margin:0;
  height:clamp(250px,26vw,420px);
  border-radius:3px;overflow:hidden;background:rgba(27,27,27,.06);
  scroll-snap-align:center;
  box-shadow:0 18px 44px -22px rgba(27,27,27,.45);
  transition:transform .5s cubic-bezier(.22,.61,.36,1),box-shadow .5s;
}
.reel-slide:hover{transform:translateY(-6px);box-shadow:0 34px 70px -24px rgba(27,27,27,.5)}
.reel-img{display:block;height:100%;width:auto;max-width:none;object-fit:cover;user-select:none;-webkit-user-drag:none}
/* The caption IS the testimonial (chalkboard quotes), so it is always visible and
   set as a sentence rather than as a decorative uppercase label. */
.reel-cap{
  position:absolute;left:0;right:0;bottom:0;
  padding:46px 18px 16px;
  font-family:var(--body);font-size:13.5px;font-weight:300;line-height:1.4;
  letter-spacing:.005em;text-transform:none;text-wrap:balance;
  color:#fff;background:linear-gradient(180deg,rgba(27,27,27,0),rgba(27,27,27,.55) 42%,rgba(27,27,27,.9));
}
/* arrows */
.reel-nav{
  position:absolute;top:calc(50% - 20px);z-index:3;
  width:52px;height:52px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--cream);color:var(--ink);
  border:1px solid var(--hairline-dark);cursor:pointer;
  box-shadow:0 12px 30px -10px rgba(27,27,27,.35);
  transition:background .3s,color .3s,border-color .3s,opacity .3s,transform .3s;
}
.reel-nav:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.reel-nav:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.reel-nav[disabled]{opacity:.28;pointer-events:none}
.reel-prev{left:calc(-1 * clamp(10px,2vw,26px))}
.reel-next{right:calc(-1 * clamp(10px,2vw,26px))}
/* progress rail */
.reel-rail{position:relative;height:2px;background:var(--hairline-dark);border-radius:2px;overflow:hidden}
.reel-bar{position:absolute;left:0;top:0;height:100%;width:22%;background:var(--gold);border-radius:2px;transition:transform .18s linear,width .3s}
@media (max-width:900px){
  .reel-nav{display:none}
  .reel-track{scroll-snap-type:x proximity}
}
@media (prefers-reduced-motion:reduce){
  .reel-track{scroll-behavior:auto}
  .reel-slide,.reel-bar{transition:none}
  .reel-slide:hover{transform:none}
}
/* pill text must wrap as one sentence, not as two spread flex children (mobile) */
.pill-dark .pill-txt{display:inline}

/* ============ SKED scheduling portals — MarkUp #80, 2026-10-01 ============
   Replaces the "Ready When You Are" appointment form with the practice's EHR
   portals. Heights below are measured, not guessed: the SKED portal lays out
   in two columns at >=720px wide (759px tall) and stacks below that
   (~1195px tall for New Patient, ~620px for Existing Patient). The finale is
   therefore two-column only while the portal column can still clear 720px;
   under 1380px the section goes single-column so the portal keeps the short
   layout all the way down to an 800px viewport.                            */
.finale-has-sked .finale-grid{grid-template-columns:1fr}
@media (min-width:1380px){
  .finale-has-sked .finale-grid{grid-template-columns:1fr 1.7fr;gap:56px}
}
.sked-container{display:block;width:100%;min-width:0}
.finale-has-sked .finale-left p{margin-bottom:32px}

.sked{display:flex;flex-direction:column;gap:14px}
.sked-tabs{display:flex;flex-wrap:wrap;gap:8px}
.sked-tabs-loc{margin-bottom:-4px}
.sked-tab{
  font-family:var(--body);font-size:12px;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;cursor:pointer;
  padding:11px 20px;border-radius:999px;
  border:1px solid var(--hairline);background:transparent;color:var(--white);
  transition:background .25s,color .25s,border-color .25s;
}
.sked-tab:hover{border-color:var(--hairline-gold);color:var(--gold)}
.sked-tab.is-active{background:var(--gold);border-color:var(--gold);color:#1B1B1B}
.sked-tab:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.sked-tabs-type .sked-tab{font-size:11px;letter-spacing:.2em;padding:9px 18px}

.sked-stage{
  position:relative;width:100%;height:var(--sked-h,820px);
  background:#F7F8FA;border-radius:6px;overflow:hidden;
  transition:height .35s ease;
}
/* Heights are measured against the portal's real content, which GROWS once an
   appointment type is picked: 759 -> 1014 at desktop width, 1195 -> 1450 on a
   phone. SKED sends no resize message (its only postMessage is "get-user"), so
   the stage cannot track the content automatically. Instead it starts at the
   resting height and expands once the visitor actually puts focus inside the
   iframe — no dead whitespace before they engage, no inner scrollbar after. */
/* Resting heights differ per CLINIC, not just per patient type: Davenport's
   New Patient portal has a single appointment type so it skips straight to the
   time list and rests ~200px taller than Bettendorf's. Measured at the widths
   each one actually gets:
       Bettendorf NEW  759 / 1195   Davenport NEW  966 / 1402
       EXISTING (both) 482 /  603                (desktop / phone)          */
.sked[data-active-type="new"]      .sked-stage{--sked-h:820px}
.sked[data-active-type="existing"] .sked-stage{--sked-h:620px}
.sked[data-active-loc="davenport"][data-active-type="new"] .sked-stage{--sked-h:1010px}
.sked[data-engaged][data-active-type="new"]      .sked-stage{--sked-h:1080px}
.sked[data-engaged][data-active-type="existing"] .sked-stage{--sked-h:1060px}
.sked[data-engaged][data-active-loc="davenport"][data-active-type="new"] .sked-stage{--sked-h:1260px}
@media (max-width:799px){
  .sked[data-active-type="new"]      .sked-stage{--sked-h:1240px}
  .sked[data-active-type="existing"] .sked-stage{--sked-h:700px}
  .sked[data-active-loc="davenport"][data-active-type="new"] .sked-stage{--sked-h:1450px}
  .sked[data-engaged][data-active-type="new"]      .sked-stage{--sked-h:1520px}
  .sked[data-engaged][data-active-type="existing"] .sked-stage{--sked-h:1480px}
  .sked[data-engaged][data-active-loc="davenport"][data-active-type="new"] .sked-stage{--sked-h:1700px}
}
.sked-frame{position:absolute;top:0;left:0;width:100%;height:100%;border:0;display:block}
.sked .sked-frame[hidden]{display:none}
.sked-loading,.sked-noscript{
  position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;height:fit-content;
  padding:0 24px;text-align:center;color:#5a5a5a;font-size:14px;
}
.sked-loading[hidden]{display:none}
.sked-fallback{font-size:13px;color:var(--white-dim);margin:0}
.sked-fallback a{color:var(--white);border-bottom:1px solid var(--hairline-gold)}
.sked-fallback a:hover{color:var(--gold)}
@media (prefers-reduced-motion:reduce){
  .sked-stage{transition:none}
}

/* Privacy Policy sits next to "Back to top", which is a column flex item. */
.footer-bottom nav{align-items:center}
.footer-legal{white-space:nowrap}

/* ---- finale legibility once the white scheduler panel is in play ----------
   The section's photo overlay was built to darken toward the RIGHT, where the
   old form sat; the left column was left bright on purpose. With a large white
   portal on the right, that left side became unreadable (David, 2026-10-01:
   the lede, the clinic phones/emails and the FAQ questions). Darken the whole
   wash under the scheduler and lift the dimmest text a little.              */
.finale-has-sked .finale-bg::before{
  background:linear-gradient(96deg,
    rgba(16,16,16,.72) 0%,
    rgba(16,16,16,.84) 32%,
    rgba(16,16,16,.93) 58%,
    rgba(16,16,16,.96) 100%);
}
.finale-has-sked .finale-bg::after{
  background:linear-gradient(180deg,rgba(16,16,16,.55) 0%,rgba(16,16,16,.18) 26%,rgba(16,16,16,.12) 55%,rgba(16,16,16,.88) 100%);
}
.finale-has-sked .finale-left p{color:rgba(255,255,255,.76)}
.finale-has-sked .finale-meta-email{color:rgba(255,255,255,.72) !important}
.finale-has-sked .finale-meta span,
.finale-has-sked .finale-social-city{color:rgba(255,255,255,.68)}
.finale-has-sked .finale-faq summary{color:#fff}

/* ---- mobile: book first, read later --------------------------------------
   Stacked, the scheduler fell below the phones, socials and the FAQ, so the
   thing every "Schedule" button exists to reach was the last thing on screen.
   Promote .finale-left's children to grid items so the scheduler can sit
   directly under the heading. Gap goes to 0 because each child already owns
   its own vertical margin. Scoped to the scheduler layout only — the form
   fallback keeps the original markup flow untouched.                        */
@media (max-width:1379px){
  .finale-has-sked .finale-grid{gap:0}
  .finale-has-sked .finale-left{display:contents}
  .finale-has-sked .finale-left .eyebrow{order:1}
  .finale-has-sked .finale-left h2{order:2}
  .finale-has-sked .finale-left > p{order:3}
  .finale-has-sked .sked-container{order:4;margin:8px 0 4px}
  .finale-has-sked .finale-meta{order:5;margin-top:40px}
  .finale-has-sked .finale-social{order:6}
  .finale-has-sked .finale-faq{order:7}
}

/* ============ Google reviews — MarkUp #64, 2026-10-01 =====================
   Dr. Ashly: "we have way more reviews on Google than Facebook, can we
   embed/widget in Google review stats instead?". Free plugin, both clinics
   configured, so Google returns five per location = ten real reviews.
   The plugin's own markup is a flat <ul>; these rules turn it into cards that
   match the cream Testimonials section. Review text is clamped rather than
   truncated server-side so the full wording stays in the DOM for search
   engines and screen readers while the grid keeps an even rhythm.         */
.greviews{margin-top:56px}
.greviews .google-business-reviews-rating{max-width:none}
.greviews .listing{list-style:none;margin:0;padding:0}

/* Fallback layout if the plugin's markup ever changes and the carousel hooks
   cannot be attached — a plain responsive grid, still perfectly readable. */
.greviews:not(.greviews-reel) .listing{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;
}
@media (min-width:1200px){ .greviews:not(.greviews-reel) .listing{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:720px){ .greviews:not(.greviews-reel) .listing{grid-template-columns:1fr} }

/* Carousel: the plugin's <ul> IS the reel track, so it inherits .reel-track
   (flex, scroll-snap, hidden scrollbar, grab cursor) and each <li> is a slide.
   align-items:stretch keeps every card the same height in a row. */
/* The plugin's own `.gmbrr .listing` sets flex-wrap:wrap (and a 2rem gap), which
   wraps the cards into rows instead of letting them scroll. Its stylesheet loads
   after the theme's at equal specificity, so this needs the extra class to win. */
.greviews-reel .listing.reel-track{
  flex-wrap:nowrap;align-items:stretch;
  gap:clamp(14px,1.6vw,20px);
  padding:4px 2px 20px;
}
.greviews-reel .listing.reel-track > li{
  flex:0 0 auto;width:clamp(282px,30vw,352px);
  scroll-snap-align:start;
}
@media (max-width:720px){
  .greviews-reel .listing.reel-track > li{width:min(84vw,340px)}
  .greviews-reel .reel-prev,.greviews-reel .reel-next{display:none}
}

.greviews .listing > li{
  display:grid;grid-template-columns:44px minmax(0,1fr);
  grid-template-areas:"avatar meta" "text text";
  gap:4px 12px;align-items:center;
  background:#fff;border:1px solid rgba(27,27,27,.10);border-radius:10px;
  padding:20px 22px 22px;margin:0;
  box-shadow:0 1px 2px rgba(27,27,27,.04);
}
.greviews .author-avatar{grid-area:avatar}
.greviews .author-avatar img{width:44px;height:44px;border-radius:50%;display:block;object-fit:cover}
.greviews .review-meta{grid-area:meta;display:flex;flex-direction:column;gap:2px;min-width:0}
.greviews .author-name,
.greviews .author-name a{
  font-family:var(--display);font-weight:600;font-size:15px;color:var(--ink);
  text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.greviews .author-name a:hover{color:#7a6220}
.greviews .rating{color:var(--gold);font-size:13px;letter-spacing:.06em;line-height:1}
.greviews .relative-time-description{font-size:11.5px;color:#7a7a7a;letter-spacing:.02em}
.greviews .text{
  grid-area:text;margin-top:10px;
  font-size:14.5px;line-height:1.62;color:#3a3a3a;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:8;line-clamp:8;
  overflow:hidden;
}
.greviews .attribution,
.greviews .powered-by-google{
  margin-top:20px;font-size:12px;color:#6b6b6b;text-align:center;
}
.greviews .powered-by-google img{vertical-align:middle;max-height:16px;width:auto}

/* "Read all reviews" under the carousel — one button per clinic, because the
   287 reviews live on two separate Google Business Profiles. */
.greviews-more{
  display:flex;flex-wrap:wrap;gap:14px;justify-content:center;
  margin-top:4px;
}
.greviews-more .btn{font-size:12px}
@media (max-width:560px){
  .greviews-more{flex-direction:column;align-items:stretch}
  .greviews-more .btn{justify-content:center;text-align:center}
}

/* Scheduler tab labels — "Select Location:" / "Are you a:" (client, 2026-10-01).
   Both labels share a min-width so the two tab rows line up on desktop; under
   560px the label takes its own line so the pills keep their full width. */
.sked-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.sked-label{
  flex:none;min-width:142px;
  font-family:var(--body);font-size:11px;font-weight:500;
  letter-spacing:.2em;text-transform:uppercase;color:var(--white-faint);
}
@media (max-width:560px){
  .sked-label{min-width:0;width:100%}
}


/* ===== Before-launch fixes (Oct 2026) ===== */

/* Phone menu: Services / What We Treat / Locations are buttons now (were links to "#"); same look as before. */
.mobile-menu button.mobile-acc-toggle{font-weight:inherit;line-height:inherit;text-align:left;margin:0;border-radius:0;-webkit-appearance:none;appearance:none}
.mobile-menu button.mobile-acc-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:4px}

/* Phone action bar: "Call Us" opens a two-clinic picker. */
.mab-call-wrap{position:relative;display:flex}
.mab-call-wrap .mab-btn{flex:1;width:100%;background:none;border:0;border-right:1px solid var(--hairline);cursor:pointer;-webkit-appearance:none;appearance:none}
.mab-call-menu{position:absolute;left:10px;bottom:calc(100% + 10px);min-width:250px;background:var(--ink);border:1px solid var(--hairline-gold);border-radius:14px;padding:6px;box-shadow:0 12px 32px rgba(0,0,0,.45);z-index:2}
.mab-call-menu[hidden]{display:none}
.mab-call-menu a{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px;padding:10px 12px;border-radius:10px;text-decoration:none;color:#fff;font-family:var(--body);font-size:14px}
.mab-call-menu a:active,.mab-call-menu a:focus-visible{background:rgba(255,255,255,.08)}
.mab-call-loc{font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-size:12.5px}
.mab-call-num{letter-spacing:.02em}

/* Tap targets (WCAG 2.2 min 24px): footer + booking-section phone/email links; menu button 44px. */
.footer-clinic-phone,.footer-clinic-email,.footer-email a,.finale-meta a{display:inline-flex;align-items:center;min-height:24px}
.nav-burger{width:44px;height:44px}

/* Nearby-clinic cards: the whole card still opens the clinic page; the phone number is its own tap-to-call link. */
.loc-nearby-card{position:relative;cursor:pointer}
.loc-nearby-card h3 a{color:inherit;text-decoration:none}
.loc-nearby-card h3 a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.loc-nearby-card h3 a:focus-visible{outline:none}
.loc-nearby-card h3 a:focus-visible::after{outline:2px solid var(--gold);outline-offset:3px}
.loc-nearby-card:focus-within{border-color:var(--gold)}
a.loc-nearby-phone{position:relative;z-index:1;align-self:flex-start;display:inline-flex;align-items:center;min-height:28px;text-decoration:underline;text-decoration-color:rgba(217,188,106,.45);text-underline-offset:4px}
a.loc-nearby-phone:hover{text-decoration-color:var(--gold)}

/* Footer "Cookie settings" (a button styled like the Privacy Policy link). */
button.footer-legal{background:none;border:0;cursor:pointer;font-family:inherit;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--white-faint);padding:6px 0}
button.footer-legal:hover{color:var(--gold)}

/* Cookie banner (inc/consent.php). */
.hfw-consent{position:fixed;z-index:120;right:20px;bottom:20px;width:min(400px,calc(100vw - 40px));background:var(--ink);color:#fff;border:1px solid var(--hairline-gold);border-radius:18px;padding:18px;box-shadow:0 14px 40px rgba(0,0,0,.45);font-family:var(--body);font-size:14px;line-height:1.55}
.hfw-consent[hidden]{display:none}
.hfw-consent-title{font-family:var(--display);font-size:17px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px;color:#fff}
.hfw-consent-text{color:var(--white)}
.hfw-consent-text a{color:var(--gold);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.hfw-consent-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.hfw-consent-btn{height:44px;border-radius:999px;border:1.5px solid var(--gold);background:transparent;color:#fff;font-family:var(--body);font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.hfw-consent-btn.hfw-consent-accept{background:var(--gold);color:#111}
.hfw-consent-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media (max-width:1020px){.hfw-consent{left:12px;right:12px;width:auto;bottom:calc(70px + env(safe-area-inset-bottom,0px))}}

/* Screen-reader-only headings that keep the heading outline in order without changing the design. */
.hfw-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Content headings moved up a level to fix skipped levels, styled as before. */
.cpt-prose h2.hfw-as-h3{font-size:clamp(20px,2.2vw,26px);letter-spacing:-.01em;margin:36px 0 12px;color:var(--ink);line-height:1.12}
.cpt-prose h3.hfw-as-h4{font-size:18px;letter-spacing:normal;margin:28px 0 10px;color:inherit;line-height:1.7}

/* Home hero widths in em instead of ch: "ch" follows whichever font is loaded, so the box shrank while the
   fallback font showed and the heading jumped when Outfit arrived. Same sizes as 18ch / 46ch with the real fonts. */
.hero h1{max-width:11.79em}
.hero-sub{max-width:33.26em}
/* Email links keep their own line (they were display:block) with the same 24px tap height. */
.finale-meta a.finale-meta-email,a.footer-clinic-email{display:flex;width:fit-content;max-width:100%}
