/* ==========================================================================
   Alamo Primary Care — prototype stylesheet
   Figma-faithful build. Primary: logo navy #2A3379. Accent: logo green #52B04F.
   ========================================================================== */

/* --- tokens ------------------------------------------------------------- */
:root{
  /* the only two hand-picked values: sampled from the logo artwork */
  --navy:#2A3379;
  --green:#52B04F;

  /* lightness steps of --navy */
  --navy-900:#11153A;
  --navy-800:#191F52;
  --navy-700:#212969;
  --navy-600:#2A3379;
  --navy-500:#3B4590;
  --navy-400:#5B64AA;
  --navy-300:#8F95C4;
  --navy-200:#C2C6DF;
  --navy-100:#DEE0EC;
  --navy-50:#F1F2F8;

  /* lightness steps of --green */
  --green-800:#2C6A2A;
  --green-700:#3C8C3A;
  --green-600:#479F45;
  --green-500:#52B04F;
  --green-400:#74C371;
  --green-200:#B6DFB4;
  --green-50:#EFF8EE;

  --ink:#14173A;
  --ink-soft:#4B4F73;
  --muted:#6B6F8F;
  --paper:#FFFFFF;
  --paper-2:#F7F7FA;
  --paper-3:#EFF0F4;
  --line:rgba(42,51,121,.14);
  --line-soft:rgba(42,51,121,.07);

  --ff-display:"Fraunces",'Iowan Old Style',Georgia,'Times New Roman',serif;
  --ff-sans:"Inter",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;

  --shell:1340px;
  --gutter:clamp(18px,3.6vw,44px);
  --radius:12px;
  --radius-lg:18px;
  --ease:cubic-bezier(.22,1,.36,1);
  --cut-h:clamp(52px,6.6vw,96px);
  --topbar-h:48px;
  --nav-h:74px;
  --shadow-sm:0 2px 10px rgba(20,23,58,.06);
  --shadow:0 12px 34px rgba(20,23,58,.10);
  --shadow-lg:0 26px 70px rgba(20,23,58,.16);
}

/* --- reset -------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--ff-sans);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  /* `clip`, never `hidden` — `hidden` makes the body a scroll container and
     silently breaks position:sticky on the header. */
  overflow-x:clip;
}
img,svg,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p{margin:0}
:focus-visible{outline:2px solid var(--green-500);outline-offset:3px;border-radius:4px}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}

/* --- layout ------------------------------------------------------------- */
.shell{width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:var(--gutter)}
.section{position:relative;padding-block:clamp(56px,6vw,96px)}
.section--tight{padding-block:clamp(40px,4.4vw,64px)}

/* --- type --------------------------------------------------------------- */
.eyebrow{
  font-size:clamp(13px,1.05vw,15px);letter-spacing:.01em;color:var(--muted);
  margin-bottom:.7em;
}
.eyebrow--green{color:var(--navy-500);font-weight:600;letter-spacing:.09em;text-transform:uppercase;font-size:12.5px}
.h1,.h2,.h3{font-family:var(--ff-display);font-weight:700;letter-spacing:-.015em;
  line-height:1.1;text-wrap:balance;color:var(--navy-900)}
.h1{font-size:clamp(34px,4.5vw,58px)}
.h2{font-size:clamp(27px,3.1vw,42px)}
.h3{font-size:clamp(19px,1.6vw,24px);line-height:1.25}
.lede{font-size:clamp(15px,1.1vw,17px);line-height:1.75;color:var(--ink-soft);
  max-width:56ch;text-wrap:pretty}
.on-dark .h1,.on-dark .h2,.on-dark .h3{color:#fff}
.on-dark .lede,.on-dark p{color:rgba(255,255,255,.78)}
.on-dark .eyebrow{color:rgba(255,255,255,.6)}
.on-dark .eyebrow--green{color:var(--navy-200)}
.center{text-align:center}
.center .lede{margin-inline:auto}

/* --- buttons ------------------------------------------------------------ */
.btn{
  --bg:var(--navy-600);--fg:#fff;--bd:transparent;
  position:relative;display:inline-flex;align-items:center;gap:.7em;
  padding:12px 15px 12px 20px;border-radius:999px;
  background:var(--bg);color:var(--fg);border:1.5px solid var(--bd);
  font-size:14.5px;font-weight:500;line-height:1;white-space:nowrap;
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),
             transform .3s var(--ease),box-shadow .3s var(--ease);
}
.btn__ico{
  display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;
  background:#fff;color:var(--navy-600);
  transition:background .3s var(--ease),color .3s var(--ease),transform .45s var(--ease);
}
.btn__ico svg{width:12px;height:12px}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(20,23,58,.18)}
.btn:hover .btn__ico{transform:translate(2px,-2px)}
.btn--green{--bg:var(--green-500)}
.btn--green .btn__ico{color:var(--green-700)}
.btn--green:hover{--bg:var(--green-600)}
.btn--navy:hover{--bg:var(--navy-700)}
/* ghost / outline sits on dark grounds */
.btn--ghost{--bg:transparent;--fg:#fff;--bd:rgba(255,255,255,.4)}
.btn--ghost .btn__ico{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.45)}
.btn--ghost:hover{--bd:var(--green-500);--bg:rgba(82,176,79,.12)}
.btn--ghost:hover .btn__ico{background:var(--green-500);border-color:var(--green-500);color:#fff}
/* light outline on paper */
.btn--line{--bg:transparent;--fg:var(--navy-700);--bd:var(--line)}
.btn--line .btn__ico{background:var(--navy-50);color:var(--navy-600)}
.btn--line:hover{--bd:var(--navy-400);--fg:var(--navy-700)}
.btn--line:hover .btn__ico{background:var(--navy-600);color:#fff}
/* leading-icon variant (Figma "Book An Appointment") */
.btn--lead{padding:12px 22px 12px 14px}
.btn--lead .btn__ico{order:-1}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.center .btn-row{justify-content:center}

/* quiet text link with a trailing arrow */
.tlink{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;font-weight:600;
  color:var(--navy-600);transition:color .25s var(--ease)}
.tlink svg{width:13px;height:13px;transition:transform .35s var(--ease)}
.tlink:hover{color:var(--green-700)}
.tlink:hover svg{transform:translateX(4px)}

/* ==========================================================================
   HEADER — Figma frame 63-99
   ========================================================================== */
.topbar{background:var(--navy-600);color:#fff;font-size:13px}
.topbar__in{min-height:var(--topbar-h);display:flex;align-items:center;
  justify-content:space-between;gap:18px;padding-block:8px}
.topbar__hours{display:flex;align-items:center;gap:9px;min-width:0}
.topbar__hours svg{width:17px;height:17px;flex:none;color:var(--navy-200)}
.topbar__hours b{color:#fff;font-weight:600}
.topbar__hours span{color:rgba(255,255,255,.9)}
.topbar__call{display:inline-flex;align-items:center;gap:9px;
  padding:7px 16px;border:1px solid rgba(255,255,255,.42);border-radius:999px;
  transition:background .3s var(--ease),border-color .3s var(--ease)}
.topbar__call svg{width:16px;height:16px;color:var(--navy-200)}
.topbar__call em{font-style:normal;color:var(--navy-200);font-weight:500}
.topbar__call b{font-weight:500;color:#fff}
.ins-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ins{display:grid;place-items:center;min-height:104px;padding:18px;border-radius:20px;background:#fff;
  border:1px solid var(--line);font-size:15px;font-weight:600;color:var(--navy-300);text-align:center;
  transition:border-color .4s var(--ease),transform .4s var(--ease)}
.ins:hover{border-color:var(--navy-200);transform:translateY(-3px)}
.ins-note{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 30px;
  margin-top:clamp(24px,3vw,38px);padding:clamp(22px,2.6vw,32px);border-radius:24px;background:var(--navy-50)}
.ins-note p{font-size:15.5px;line-height:1.6;color:var(--ink-soft);max-width:46ch}
.ins-note b{color:var(--navy-800)}
@media (max-width:980px){.ins-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.ins-grid{grid-template-columns:1fr 1fr}.ins{min-height:84px;font-size:14px}}
.aplans{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0}
.aplan{padding:9px 14px;border-radius:999px;background:var(--paper-2);border:1px solid var(--line);
  font-size:13.5px;font-weight:600;color:var(--navy-700)}
.aplan--more{background:var(--green-50);border-color:transparent;color:var(--green-800)}
.prov--soon .prov__ph{display:grid;place-items:center;width:100%;aspect-ratio:1/1.12;border-radius:inherit;
  background:linear-gradient(160deg,var(--navy-100),var(--paper-2));color:var(--navy-300)}
.prov--soon .prov__ph svg{width:52px;height:52px}
.portal__new{display:inline-flex;align-items:center;gap:10px;margin-top:22px;padding:10px 18px;border-radius:999px;
  background:var(--green-50);font-size:14.5px;font-weight:600;color:var(--green-800)}
.portal__new svg{width:17px;height:17px;color:var(--green-600)}
.foot__item em{display:block;margin-top:6px;font-style:normal;font-size:12.5px;color:rgba(255,255,255,.62)}
.topbar__call:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.7)}

/* One flat white section — no inset card, no border, no shadow. It is fully
   opaque so page content passes cleanly behind it while pinned. */
.site-header{position:relative;z-index:60;background:#fff}
.site-header--sticky{position:sticky;top:0}
.navbar{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;
  min-height:var(--nav-h);
}
.navbar__brand{justify-self:center;display:block;padding-inline:8px}
.navbar__brand img{width:clamp(176px,14vw,210px)}
.nav{display:flex;align-items:center;gap:clamp(2px,.45vw,7px);min-width:0}
.nav--right{justify-content:flex-end;gap:clamp(2px,.35vw,5px)}
/* No underline, border or pill on the menu — as in the Figma, the active and
   hover states are carried by colour and weight alone. */
.nav__link{
  position:relative;display:inline-block;padding:9px clamp(4px,.45vw,7px);
  font-size:15px;font-weight:700;color:var(--navy-900);white-space:nowrap;
  transition:color .25s var(--ease);
}
.nav__link:hover,.nav__link:focus-visible{color:var(--navy-600)}
.nav__link.is-active{color:var(--navy-600);font-weight:600}
.has-mega.is-open>.nav__link{color:var(--navy-600)}
.nav__util{padding:8px clamp(3px,.3vw,5px);font-size:14px;font-weight:700;color:var(--navy-900);
  transition:color .25s var(--ease);white-space:nowrap}
.nav__util:hover{color:var(--green-700)}
.nav__cta{
  display:inline-flex;align-items:center;gap:8px;margin-left:6px;
  padding:11px clamp(13px,1.3vw,20px);border-radius:999px;background:var(--navy-600);color:#fff;
  font-size:14px;font-weight:500;white-space:nowrap;
  transition:background .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease);
}
.nav__cta svg{width:15px;height:15px}
.nav__cta:hover{background:var(--navy-700);transform:translateY(-1px);
  box-shadow:0 8px 20px rgba(42,51,121,.34)}
.navbar__burger{display:none;justify-self:end;width:42px;height:42px;border-radius:10px;
  align-items:center;justify-content:center;background:var(--navy-50);color:var(--navy-700)}
.navbar__burger svg{width:19px;height:19px}

/* mobile drawer */
.drawer{position:fixed;inset:0;z-index:90;visibility:hidden;pointer-events:none}
.drawer__scrim{position:absolute;inset:0;background:rgba(17,21,58,.55);opacity:0;
  transition:opacity .4s var(--ease)}
.drawer__panel{position:absolute;top:0;right:0;width:min(400px,88vw);height:100%;
  background:#fff;padding:22px var(--gutter) 32px;overflow-y:auto;
  transform:translateX(100%);transition:transform .5s var(--ease);
  display:flex;flex-direction:column;gap:18px}
.drawer.is-open{visibility:visible;pointer-events:auto}
.drawer.is-open .drawer__scrim{opacity:1}
.drawer.is-open .drawer__panel{transform:none}
.drawer__top{display:flex;align-items:center;justify-content:space-between}
.drawer__top img{width:158px}
.drawer__close{width:40px;height:40px;border-radius:10px;background:var(--navy-50);
  display:grid;place-items:center;color:var(--navy-700)}
.drawer__close svg{width:15px;height:15px}
.drawer__group{border-top:1px solid var(--line-soft);padding-top:14px}
.drawer__label{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);margin-bottom:8px}
.drawer__link{font-weight:600;display:flex;align-items:center;justify-content:space-between;
  padding:11px 0;font-size:16px;color:var(--navy-800);border-bottom:1px solid var(--line-soft)}
.drawer__link svg{width:13px;height:13px;color:var(--navy-400)}
.drawer__link:last-child{border-bottom:0}

/* ==========================================================================
   ABOUT — pre-Figma design, restored from .backup-editorial
   Centred statement, trust cluster, three cards. Scoped to .about-c.
   ========================================================================== */
.tex{position:relative;isolation:isolate}
.tex::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:radial-gradient(circle, rgba(42,48,120,.07) 1px, transparent 1.5px);
  background-size:26px 26px;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 15%,#000 85%,transparent 100%);
          mask-image:linear-gradient(to bottom,transparent 0,#000 15%,#000 85%,transparent 100%);
}
.tex--glow::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(58% 46% at 88% 2%, rgba(42,48,120,.055), transparent 62%);
}
.about-c{text-align:center}
.about-c__head{max-width:1140px;margin-inline:auto}
.about-c__eyebrow{
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--navy-600);
}
.about-c__eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.about-c__statement{
  font-family:var(--ff-display);font-weight:400;
  font-size:clamp(1.6rem,3.35vw,2.95rem);line-height:1.18;letter-spacing:-.022em;
  color:var(--navy-800);margin-top:22px;text-wrap:balance;
}
.about-c__meta{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:18px 34px;margin-top:clamp(28px,3.2vw,40px);
}
.pill-btn{
  display:inline-flex;align-items:center;gap:16px;
  padding:8px 8px 8px 26px;border-radius:999px;
  background:#fff;border:1px solid var(--line-soft);
  box-shadow:0 18px 40px -32px rgba(17,20,49,.7);
  font-size:.9375rem;font-weight:500;color:var(--navy-800);
  transition:background-color .35s var(--ease),border-color .35s var(--ease);
}
.pill-btn__ico{
  display:grid;place-items:center;width:44px;height:44px;border-radius:14px;
  background:#2A3078;color:#fff;
  transition:background-color .35s var(--ease);
}
.pill-btn__ico svg{width:16px;height:16px}
.pill-btn:hover .pill-btn__ico{background:var(--green-500)}
.pill-btn:hover{border-color:var(--green-200)}

.trusted{display:flex;align-items:center;gap:14px}
.trusted__avatars{display:flex}
.trusted__avatars img{
  width:44px;height:44px;border-radius:50%;object-fit:cover;
  border:2.5px solid #fff;margin-left:-13px;background:#fff;
}
.trusted__avatars img:first-child{margin-left:0}
.trusted__text{text-align:left;line-height:1.3}
.trusted__text small{display:block;font-size:.8125rem;color:var(--muted)}
.trusted__text b{display:block;font-size:.9375rem;font-weight:600;color:var(--navy-800)}

.about-cards{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(14px,1.5vw,22px);margin-top:clamp(38px,4.4vw,64px);text-align:left;
}
.acard{
  position:relative;display:flex;flex-direction:column;
  padding:clamp(22px,2.2vw,30px);border-radius:22px;
  background:#fff;border:1px solid rgba(42,51,121,.1);
  box-shadow:0 26px 56px -48px rgba(17,20,49,.6);
  transition:transform .6s var(--ease),box-shadow .6s var(--ease),border-color .4s var(--ease);
  overflow:hidden;
}
.acard:hover{
  transform:translateY(-5px);border-color:var(--green-200);
  box-shadow:0 44px 76px -50px rgba(17,20,49,.7);
}
.acard__head{display:flex;align-items:center;gap:12px}
.acard__ico{
  display:grid;place-items:center;width:38px;height:38px;border-radius:11px;flex:none;
  background:var(--green-50);color:var(--green-600);
  transition:background-color .4s var(--ease),color .4s var(--ease),transform .6s var(--ease);
}
.acard__ico svg{width:19px;height:19px}
.acard:hover .acard__ico{background:var(--green-500);color:#fff;transform:rotate(-6deg)}
.acard h3{
  font-family:var(--ff-display);font-weight:400;text-wrap:balance;
  font-size:clamp(1.1rem,1.45vw,1.32rem);letter-spacing:-.016em;color:var(--navy-700);
}
.acard p{margin-top:14px;font-size:.9375rem;line-height:1.62;color:var(--muted)}
.acard__viz{margin:clamp(18px,1.8vw,24px) 0 auto;min-height:74px;display:flex;align-items:center}

.asvc{display:grid;gap:9px;width:100%}
.asvc__row{display:flex;align-items:center;gap:11px;will-change:transform}
.asvc__row img{
  width:34px;height:34px;border-radius:9px;object-fit:cover;flex:none;
  background:var(--navy-50);box-shadow:0 5px 12px -7px rgba(17,20,49,.6);
}
.asvc__row span{
  font-size:.8125rem;font-weight:500;color:var(--navy-800);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.asvc__more{
  display:inline-flex;align-items:center;gap:.45em;margin-top:3px;
  font-size:.75rem;font-weight:500;color:#222762;
}
.asvc__more svg{width:11px;height:11px}

.aav{display:flex;align-items:center}
.aav img{
  width:44px;height:44px;border-radius:50%;object-fit:cover;
  border:2.5px solid #fff;margin-left:-13px;background:var(--navy-50);
  box-shadow:0 6px 14px -8px rgba(17,20,49,.5);
}
.aav img:first-child{margin-left:0}
.aav__more{
  display:grid;place-items:center;width:44px;height:44px;border-radius:50%;margin-left:-13px;
  border:2.5px solid #fff;background:var(--navy-700);color:#fff;
  font-size:.8125rem;font-weight:600;
}
.aav__label{margin-left:14px;line-height:1.25}
.aav__label b{display:block;font-family:var(--ff-display);font-size:1.25rem;color:var(--navy-700)}
.aav__label small{display:block;font-size:.75rem;color:var(--muted)}

.acard--feature{background:var(--navy-800);border-color:transparent;color:#fff;isolation:isolate}
.acard__bg{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
  transform:scale(1.1);will-change:transform;
  transition:transform 1.2s var(--ease);
}
.acard__veil{
  position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(158deg, rgba(32,36,91,.82) 0%, rgba(17,20,49,.93) 55%, rgba(12,14,34,.96) 100%),
    radial-gradient(72% 56% at 94% 2%, rgba(82,176,79,.3), transparent 60%);
  transition:opacity .55s var(--ease);
}
.acard--feature:hover .acard__bg{transform:scale(1.16)}
.acard--feature:hover .acard__veil{opacity:.94}
.acard--feature h3{color:#fff}
.acard--feature p{color:rgba(255,255,255,.76)}
.acard--feature .acard__ico{background:rgba(255,255,255,.14);color:#fff}
.acard--feature:hover .acard__ico{background:var(--green-500);color:#fff}
.acard--feature:hover{border-color:transparent}
.afchips{display:flex;flex-wrap:wrap;gap:8px}
.afchip{
  padding:7px 13px;border-radius:999px;font-size:.75rem;font-weight:500;
  background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.16);color:#fff;
  transition:background-color .4s var(--ease),border-color .4s var(--ease);
}
.acard--feature:hover .afchip{background:rgba(255,255,255,.2)}
.acard__link{
  display:inline-flex;align-items:center;gap:.5em;margin-top:20px;
  font-size:.9375rem;font-weight:500;color:#fff;
}
.acard__link svg{width:14px;height:14px;transition:transform .45s var(--ease)}
.acard:hover .acard__link svg{transform:translateX(4px)}

@media (max-width:980px){
  .about-cards{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .about-cards{grid-template-columns:1fr}
  .about-c__meta{gap:16px 20px}
  .about-c__statement{text-wrap:pretty}
}

/* ==========================================================================
   MISSION / FACULTY / PROMISE — bento layout
   Split header, a tall photo card, two stacked cards and a count-up stat bar.
   ========================================================================== */
.pill-eyebrow{
  display:inline-flex;align-items:center;gap:.6em;
  padding:9px 18px 9px 14px;border-radius:999px;
  background:var(--navy-50);border:1px solid var(--line-soft);
  font-size:.875rem;font-weight:500;color:var(--navy-700);
}
.pill-eyebrow svg{width:15px;height:15px;color:var(--green-600)}

.mvp{
  overflow:hidden;
  background:
    radial-gradient(42% 38% at 6% 12%, rgba(82,176,79,.16), transparent 70%),
    radial-gradient(46% 42% at 96% 92%, rgba(59,69,144,.18), transparent 70%),
    radial-gradient(30% 30% at 70% 8%, rgba(91,100,170,.10), transparent 70%),
    linear-gradient(180deg,#F7F8FC 0%,#EEF0F8 100%);
}
.mvp.tex::before{
  background-image:
    linear-gradient(rgba(42,51,121,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(42,51,121,.05) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000 30%,transparent 100%);
          mask-image:radial-gradient(70% 60% at 50% 40%,#000 30%,transparent 100%);
}
.mvp .pill-eyebrow{background:rgba(255,255,255,.75);border-color:rgba(42,51,121,.1);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

.mvp__head{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  gap:clamp(24px,4vw,64px);align-items:end}
.mvp__title{
  margin-top:20px;max-width:17ch;text-wrap:balance;
  font-family:var(--ff-display);font-weight:400;
  font-size:clamp(2.2rem,4.4vw,3.9rem);line-height:1.02;letter-spacing:-.024em;
  color:var(--navy-800);
}
.mvp__title .hl{color:var(--navy-400)}
.mvp__intro p{font-size:clamp(15px,1.12vw,17px);line-height:1.65;color:var(--muted);margin-bottom:22px}

.mvp__grid{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(12px,1.3vw,20px);margin-top:clamp(34px,4vw,60px);
}
.mvp-card{
  position:relative;isolation:isolate;overflow:hidden;
  display:flex;flex-direction:column;
  padding:clamp(22px,2.4vw,34px);border-radius:28px;
  background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.95);
  box-shadow:0 30px 70px -48px rgba(17,20,49,.5),inset 0 1px 0 #fff;
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  transition:transform .6s var(--ease),box-shadow .6s var(--ease);
}
.mvp-card:hover{transform:translateY(-5px);box-shadow:0 44px 80px -48px rgba(17,20,49,.6)}
.mvp-card h3{font-family:var(--ff-display);font-weight:400;letter-spacing:-.018em;
  font-size:clamp(1.5rem,2.1vw,2rem);line-height:1.1;color:var(--navy-800)}
.mvp-card p{margin-top:12px;font-size:clamp(14.5px,1.02vw,15.5px);line-height:1.65;color:var(--muted)}
.mvp-card__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:clamp(18px,2vw,28px)}
.mvp-card__num{font-family:var(--ff-display);font-size:15px;letter-spacing:.06em;color:var(--navy-400)}
.mvp-card__ico{
  display:grid;place-items:center;width:46px;height:46px;border-radius:14px;flex:none;
  background:var(--green-50);color:var(--green-600);
  transition:background-color .4s var(--ease),color .4s var(--ease),transform .6s var(--ease);
}
.mvp-card__ico svg{width:21px;height:21px}
.mvp-card:hover .mvp-card__ico{background:var(--green-500);color:#fff;transform:rotate(-6deg)}
.mvp-card__bg{
  position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;
  transform:scale(1.04);transition:transform 1.2s var(--ease);
}
.mvp-card:hover .mvp-card__bg{transform:scale(1.1)}

/* 01 — tall photo card with a frosted text panel */
.mvp-card--mission{
  grid-column:1 / span 7;grid-row:span 2;min-height:clamp(440px,40vw,560px);
  justify-content:flex-end;padding:clamp(14px,1.4vw,20px);background:var(--navy-700);border:0;
}
.mvp-card--mission::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(17,20,49,0) 35%,rgba(17,20,49,.55) 100%)}
.mvp-card--mission > .mvp-card__num{
  position:absolute;top:clamp(18px,2vw,26px);right:clamp(20px,2.2vw,30px);
  padding:6px 14px;border-radius:999px;background:rgba(22,27,74,.55);color:#fff;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.mvp-card__glass{
  padding:clamp(20px,2.2vw,30px);border-radius:22px;
  background:rgba(22,27,74,.58);border:1px solid rgba(255,255,255,.2);
  -webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);
}
.mvp-card__glass .mvp-card__ico{background:rgba(255,255,255,.2);color:#fff;margin-bottom:16px}
.mvp-card__glass h3{color:#fff}
.mvp-card__glass p{color:rgba(255,255,255,.86);max-width:52ch}

/* 02 — light card with a photo thumb */
.mvp-card--faculty{grid-column:8 / span 5}
.mvp-card__row{display:grid;grid-template-columns:minmax(0,1fr) 38%;gap:18px;align-items:end;flex:1}
.mvp-card__thumb{margin:0;border-radius:18px;overflow:hidden;aspect-ratio:3/4;align-self:stretch;max-height:220px}
.mvp-card__thumb img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.mvp-card--faculty:hover .mvp-card__thumb img{transform:scale(1.08)}

/* 03 — dark card, photo fading in from the right */
.mvp-card--promise{grid-column:8 / span 5;background:linear-gradient(150deg,#2A3379,#161B4A);border:0;color:#fff}
.mvp-card--promise .mvp-card__bg{
  left:auto;width:62%;opacity:.5;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 70%);
          mask-image:linear-gradient(90deg,transparent,#000 70%);
}
.mvp-card--promise::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(60% 70% at 100% 0%,rgba(82,176,79,.3),transparent 60%)}
.mvp-card--promise h3{color:#fff;margin-top:auto}
.mvp-card--promise p{color:rgba(255,255,255,.78);max-width:34ch}
.mvp-card--promise .mvp-card__ico{background:rgba(255,255,255,.14);color:#fff}
.mvp-card--promise .mvp-card__num{color:rgba(255,255,255,.6)}

/* stat bar */
.mvp-stats{
  grid-column:1 / -1;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);
  padding:clamp(20px,2.2vw,30px) clamp(10px,1.4vw,20px);border-radius:24px;
  background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.95);
  box-shadow:0 30px 70px -52px rgba(17,20,49,.5);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
}
.mvp-stat{padding-inline:clamp(12px,2vw,28px);text-align:center}
.mvp-stat + .mvp-stat{border-left:1px solid rgba(42,51,121,.1)}
.mvp-stat b{display:block;font-family:var(--ff-display);font-weight:400;
  font-size:clamp(2rem,3.4vw,3rem);line-height:1;letter-spacing:-.02em;color:var(--navy-700);
  font-variant-numeric:tabular-nums}
.mvp-stat span{display:block;margin-top:8px;font-size:13.5px;color:var(--muted)}

@media (max-width:980px){
  .mvp__head{grid-template-columns:1fr;align-items:start}
  .mvp__title{max-width:none}
  .mvp-card--mission,.mvp-card--faculty,.mvp-card--promise{grid-column:1 / -1;grid-row:auto}
  .mvp-card--mission{min-height:460px}
  .mvp-card--promise{min-height:300px}
  .mvp-stats{row-gap:22px}
  .mvp-stat:nth-child(3){border-left:0}
}
@media (max-width:520px){
  .mvp-card{border-radius:22px}
  .mvp-card__row{grid-template-columns:1fr}
  .mvp-card__thumb{aspect-ratio:16/9;max-height:none}
  .mvp-stat span{font-size:12.5px}
}

/* ==========================================================================
   TESTIMONIALS — GSAP card deck
   Copy + controls on the left, a stacked deck on the right whose front card
   is flung away to reveal the next. A looping snippet strip runs underneath.
   ========================================================================== */
.tdeck-sec{
  overflow:hidden;padding-bottom:clamp(40px,4vw,64px);
  background:
    radial-gradient(40% 50% at 88% 30%, rgba(59,69,144,.14), transparent 70%),
    radial-gradient(34% 40% at 4% 90%, rgba(82,176,79,.12), transparent 70%),
    #fff;
}
.tdeck-sec__in{
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(40px,6vw,96px);align-items:center;
}
.tdeck-sec .pill-eyebrow svg{color:#F5B301}
.tdeck-sec__title{
  margin-top:20px;max-width:14ch;text-wrap:balance;
  font-family:var(--ff-display);font-weight:400;
  font-size:clamp(2.2rem,4.2vw,3.6rem);line-height:1.04;letter-spacing:-.022em;
  color:var(--navy-800);
}
.tdeck-sec__title .hl{color:var(--navy-400)}
.tdeck-sec__lede{margin-top:18px;max-width:38ch;font-size:clamp(15px,1.1vw,17px);line-height:1.65;color:var(--muted)}

.tdeck-stars{display:inline-flex;gap:3px;color:#F5B301}
.tdeck-stars svg{width:15px;height:15px}
.tdeck-trust{display:flex;align-items:center;gap:14px;margin-top:clamp(24px,2.6vw,34px)}
.tdeck-trust small{display:block;margin-top:3px;font-size:13.5px;color:var(--muted)}
.tdeck-trust b{color:var(--navy-800);font-weight:600}

.tdeck-ctrl{display:flex;align-items:center;gap:10px;margin-top:clamp(30px,3.4vw,48px)}
.tdeck-ctrl__btn{
  display:grid;place-items:center;width:52px;height:52px;border-radius:50%;
  border:1px solid rgba(42,51,121,.16);background:#fff;color:var(--navy-700);
  box-shadow:0 12px 26px -18px rgba(17,20,49,.5);
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);
}
.tdeck-ctrl__btn svg{width:16px;height:16px}
.tdeck-ctrl__btn:hover{background:var(--navy-600);border-color:var(--navy-600);color:#fff;transform:translateY(-2px)}
.tdeck-ctrl__meta{display:grid;gap:8px;margin-left:14px;min-width:120px}
.tdeck-ctrl__count{font-size:13px;letter-spacing:.08em;color:var(--muted);font-variant-numeric:tabular-nums}
.tdeck-ctrl__count b{font-weight:600;color:var(--navy-800)}
.tdeck-ctrl__bar{display:block;height:3px;border-radius:3px;background:rgba(42,51,121,.12);overflow:hidden}
.tdeck-ctrl__bar i{display:block;height:100%;background:linear-gradient(90deg,var(--green-500),var(--navy-500));
  transform-origin:left center;transform:scaleX(0)}

/* the deck: every card shares one grid cell, so the deck is as tall as its
   tallest card and JS only has to move transforms */
.tdeck{display:grid;padding:0 clamp(40px,5vw,70px) clamp(40px,4vw,60px) 0;touch-action:pan-y;
  -webkit-user-select:none;user-select:none}
.tcard{
  grid-area:1/1;position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:clamp(16px,1.8vw,24px);
  padding:clamp(28px,3.2vw,46px);border-radius:28px;
  background:#fff;border:1px solid rgba(42,51,121,.1);
  box-shadow:0 40px 80px -56px rgba(17,20,49,.55);
  transform-origin:50% 100%;will-change:transform;
  transition:background-color .6s var(--ease),border-color .6s var(--ease),color .6s var(--ease);
}
.tcard:not(:first-child){opacity:0}
.tcard.is-front{
  background:
    radial-gradient(70% 60% at 100% 0%, rgba(82,176,79,.28), transparent 60%),
    linear-gradient(150deg,#2A3379 0%,#1B2159 100%);
  border-color:transparent;color:#fff;cursor:grab;
}
.tcard.is-front:active{cursor:grabbing}
.tcard__mark{
  position:absolute;right:clamp(18px,2.4vw,34px);top:-.12em;
  font-family:var(--ff-display);font-size:clamp(130px,13vw,190px);line-height:1;
  color:rgba(42,51,121,.07);pointer-events:none;
}
.tcard.is-front .tcard__mark{color:rgba(255,255,255,.1)}
.tcard__quote{
  position:relative;font-family:var(--ff-display);font-weight:400;
  font-size:clamp(1.25rem,1.9vw,1.7rem);line-height:1.38;letter-spacing:-.012em;
  color:var(--navy-800);text-wrap:pretty;
}
.tcard.is-front .tcard__quote{color:#fff}
.tcard__quote .tw{display:inline-block}
.tcard__who{display:flex;align-items:center;gap:14px;margin-top:auto;padding-top:clamp(16px,1.8vw,24px);
  border-top:1px solid rgba(42,51,121,.1)}
.tcard.is-front .tcard__who{border-top-color:rgba(255,255,255,.14)}
.tcard__who img,.tcard__initials{
  width:48px;height:48px;border-radius:50%;object-fit:cover;flex:none;
  border:2px solid rgba(255,255,255,.7);
}
.tcard__initials{display:grid;place-items:center;background:var(--green-500);color:#fff;
  font-size:14px;font-weight:600;letter-spacing:.04em}
.tcard__who b{display:block;font-size:15.5px;font-weight:600;color:var(--navy-800)}
.tcard__who small{display:block;font-size:13px;color:var(--muted)}
.tcard.is-front .tcard__who b{color:#fff}
.tcard.is-front .tcard__who small{color:rgba(255,255,255,.66)}

/* snippet strip */
.tmarq{position:relative;margin-top:clamp(44px,5vw,76px);overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.tmarq__track{display:flex;gap:14px;width:max-content;will-change:transform}
.tmarq__item{
  display:inline-flex;align-items:center;gap:10px;white-space:nowrap;
  padding:12px 22px;border-radius:999px;
  background:var(--navy-50);border:1px solid rgba(42,51,121,.08);
  font-family:var(--ff-display);font-size:clamp(15px,1.3vw,18px);color:var(--navy-700);
}
.tmarq__item:nth-child(even){background:#fff}
.tmarq__item svg{width:14px;height:14px;color:#F5B301}

@media (max-width:980px){
  .tdeck-sec__in{grid-template-columns:1fr}
  .tdeck-sec__title,.tdeck-sec__lede{max-width:none}
  .tdeck{padding:0 34px 34px 0}
}
@media (max-width:520px){
  .tdeck{padding:0 18px 26px 0}
  .tcard{border-radius:22px}
  .tdeck-ctrl__meta{margin-left:6px;min-width:0;flex:1}
}

/* ==========================================================================
   SERVICE PAGES — weight loss, hormones, TRT, aesthetics
   Shared: banner (.phero), services grid (.pcard-grid), band, footer.
   Everything below is the per-page storytelling.
   ========================================================================== */
.section--flush-top{padding-top:0}
.hl{color:var(--navy-400)}

/* services grid variants — same card, different counts */
.pcard-grid.pcard-grid--5{grid-template-columns:repeat(6,minmax(0,1fr))}
.pcard-grid--5 .pcard{grid-column:span 2}
/* two cards on the second row, centred under the first three */
.pcard-grid--5 .pcard:nth-child(4){grid-column:2 / span 2}
.pcard-grid--5 .pcard:nth-child(5){grid-column:4 / span 2}
.pcard-grid.pcard-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
.pcard-grid--4 .pcard{aspect-ratio:1/.58}
.pcard-grid.pcard-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pcard-grid--3 .pcard{aspect-ratio:1/.86}
.pcard-grid.pcard-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pcard-grid--2 .pcard{aspect-ratio:1/.58}
.pcard-grid--2 .pcard h3,.pcard-grid--3 .pcard h3,.pcard-grid--4 .pcard h3{font-size:clamp(18px,1.6vw,24px)}
.pcard--light{background:linear-gradient(160deg,#fff,#E6E9F6)}
.pcard.pcard--light img{object-fit:contain;object-position:right bottom}
.pcard__tag{position:absolute;top:18px;left:18px;z-index:1;
  padding:7px 13px;border-radius:999px;font-size:12.5px;font-weight:600;
  background:var(--green-500);color:#fff;box-shadow:0 8px 20px -10px rgba(0,0,0,.4)}
.pcard__tag--soft{background:rgba(255,255,255,.9);color:var(--navy-700)}

/* check list */
.ticks{display:grid;gap:12px;margin:22px 0 28px}
.ticks li{display:flex;gap:12px;align-items:flex-start;font-size:15.5px;line-height:1.5;color:var(--ink-soft)}
.ticks svg{flex:none;width:22px;height:22px;padding:4px;border-radius:50%;
  background:var(--green-50);color:var(--green-600);margin-top:1px}

/* --- about split: photo pair + floating badge | copy + checklist -------- */
.absplit__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,6vw,100px);align-items:center}
.absplit__media{position:relative;padding:0 clamp(40px,5vw,70px) clamp(40px,5vw,70px) 0}
.absplit__main{margin:0;border-radius:28px;overflow:hidden;aspect-ratio:4/4.3;background:var(--navy-50)}
.absplit__main img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.absplit__media:hover .absplit__main img{transform:scale(1.05)}
.absplit__sub{position:absolute;right:0;bottom:0;width:46%;aspect-ratio:1;margin:0;border-radius:24px;overflow:hidden;
  border:8px solid #fff;background:linear-gradient(160deg,#F4F5FB,#E3E7F5);box-shadow:0 30px 60px -30px rgba(17,20,49,.45)}
.absplit__sub img{width:100%;height:100%;object-fit:cover}
.absplit__badge{position:absolute;left:clamp(-10px,-1vw,0px);top:clamp(20px,3vw,40px);display:flex;align-items:center;gap:12px;
  padding:12px 18px 12px 12px;border-radius:18px;background:#fff;box-shadow:0 24px 50px -24px rgba(17,20,49,.45);
  animation:floaty 6s ease-in-out infinite}
.absplit__badge > span{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--green-500);color:#fff}
.absplit__badge > span svg{width:21px;height:21px}
.absplit__badge b{display:block;font-size:15px;font-weight:600;color:var(--navy-800)}
.absplit__badge small{display:block;font-size:12.5px;color:var(--muted)}
.absplit__stat{position:absolute;left:clamp(16px,2vw,28px);bottom:clamp(60px,7vw,100px);padding:14px 18px;border-radius:18px;
  background:var(--navy-700);color:#fff;box-shadow:0 24px 50px -24px rgba(17,20,49,.6);animation:floaty 6s ease-in-out -3s infinite}
.absplit__stat b{display:block;font-family:var(--ff-display);font-weight:400;font-size:34px;line-height:1}
.absplit__stat small{display:block;margin-top:4px;font-size:12.5px;color:rgba(255,255,255,.75)}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.absplit__title{margin:18px 0 18px;font-family:var(--ff-display);font-weight:400;
  font-size:clamp(2.1rem,3.8vw,3.3rem);line-height:1.06;letter-spacing:-.022em;color:var(--navy-800);text-wrap:balance}
.absplit__copy > p:not(.pill-eyebrow){font-size:15.5px;line-height:1.78;color:var(--ink-soft)}
.absplit__copy > p + p{margin-top:.9em}
.absplit__copy > .absplit__lead{font-size:clamp(16.5px,1.25vw,18.5px);line-height:1.65;color:var(--navy-800)}
.absplit__checks{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin:26px 0 30px;padding:22px 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.absplit__checks li{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;font-weight:500;line-height:1.45;color:var(--navy-800)}
.absplit__checks svg{flex:none;width:22px;height:22px;padding:4px;border-radius:50%;background:var(--green-500);color:#fff}
.absplit__acts{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px}
.absplit__call{display:flex;align-items:center;gap:12px}
.absplit__call > span:first-child{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;
  border:1px solid var(--line);color:var(--navy-600);transition:background .3s var(--ease),color .3s var(--ease)}
.absplit__call:hover > span:first-child{background:var(--navy-600);color:#fff}
.absplit__call svg{width:19px;height:19px}
.absplit__call small{display:block;font-size:12.5px;color:var(--muted)}
.absplit__call b{display:block;font-size:17px;color:var(--navy-800)}

/* --- why grid: intro + image | 2x2 feature cards ------------------------ */
.whygrid{background:linear-gradient(180deg,#F7F8FC,#EEF0F8)}
.whygrid__in{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(30px,5vw,80px);align-items:center}
.whygrid__title{margin:18px 0 14px;font-family:var(--ff-display);font-weight:400;
  font-size:clamp(2rem,3.6vw,3.1rem);line-height:1.06;letter-spacing:-.022em;color:var(--navy-800)}
.whygrid__img{position:relative;margin:28px 0 0;border-radius:24px;overflow:hidden;aspect-ratio:16/10}
.whygrid__img img{width:100%;height:100%;object-fit:cover}
.whygrid__img figcaption{position:absolute;left:16px;bottom:16px;display:flex;align-items:center;gap:12px;
  padding:10px 16px;border-radius:16px;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.whygrid__img figcaption b{font-family:var(--ff-display);font-weight:400;font-size:36px;line-height:1;color:var(--green-600)}
.whygrid__img figcaption span{font-size:12.5px;line-height:1.35;color:var(--navy-800)}
.whygrid__cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.4vw,20px)}
.fcard{padding:clamp(24px,2.6vw,34px);border-radius:24px;background:#fff;border:1px solid var(--line);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.fcard:hover{transform:translateY(-5px);box-shadow:0 34px 60px -40px rgba(17,20,49,.55)}
.fcard:nth-child(even){transform:translateY(clamp(0px,2.4vw,34px))}
.fcard:nth-child(even):hover{transform:translateY(calc(clamp(0px,2.4vw,34px) - 5px))}
.fcard__ico{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;margin-bottom:22px;
  background:var(--navy-50);color:var(--navy-600);transition:background .4s var(--ease),color .4s var(--ease)}
.fcard__ico svg{width:24px;height:24px}
.fcard:hover .fcard__ico{background:var(--green-500);color:#fff}
.fcard h3{font-family:var(--ff-display);font-weight:400;font-size:22px;color:var(--navy-800);margin-bottom:8px}
.fcard p{font-size:14.5px;line-height:1.65;color:var(--muted)}
.fcard--accent{background:var(--navy-700);border-color:transparent}
.fcard--accent h3{color:#fff}
.fcard--accent p{color:rgba(255,255,255,.75)}
.fcard--accent .fcard__ico{background:rgba(255,255,255,.12);color:#fff}

/* --- medication comparison --------------------------------------------- */
.medcmp__title{margin:18px 0 14px;font-family:var(--ff-display);font-weight:400;
  font-size:clamp(2.2rem,4.4vw,3.8rem);line-height:1.04;letter-spacing:-.024em;color:var(--navy-800)}
.medcmp__grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,34px)}
.medcmp__vs{position:absolute;left:50%;top:50%;z-index:2;translate:-50% -50%;
  display:grid;place-items:center;width:64px;height:64px;border-radius:50%;
  background:#fff;border:1px solid var(--line);box-shadow:0 14px 30px -18px rgba(17,20,49,.5);
  font-family:var(--ff-display);font-style:italic;font-size:22px;color:var(--navy-500)}
.medcard{position:relative;overflow:hidden;padding:clamp(26px,3vw,44px);border-radius:28px;
  border:1px solid var(--line);background:#fff;transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.medcard:hover{transform:translateY(-4px);box-shadow:0 36px 70px -48px rgba(17,20,49,.6)}
.medcard::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;
  pointer-events:none;opacity:.6}
.medcard--t{background:linear-gradient(170deg,#F2F9F1,#fff 60%)}
.medcard--t::after{background:radial-gradient(circle,rgba(82,176,79,.28),transparent 70%)}
.medcard--s{background:linear-gradient(170deg,#F1F2FA,#fff 60%)}
.medcard--s::after{background:radial-gradient(circle,rgba(59,69,144,.24),transparent 70%)}
.medcard__top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:26px}
.medcard__chip{padding:7px 13px;border-radius:999px;font-size:12.5px;font-weight:600;letter-spacing:.02em}
.medcard--t .medcard__chip{background:var(--green-50);color:var(--green-700)}
.medcard--s .medcard__chip{background:var(--navy-50);color:var(--navy-600)}
.medcard__dose{font-size:13px;color:var(--muted)}
.medcard h3{font-family:var(--ff-display);font-weight:400;font-size:clamp(2rem,3.2vw,2.8rem);
  letter-spacing:-.02em;color:var(--navy-800);line-height:1}
.medcard__sum{margin:14px 0 24px;font-size:15.5px;line-height:1.7;color:var(--ink-soft);max-width:46ch}
.medcard__rows{display:grid;border-top:1px solid var(--line)}
.medcard__rows div{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.medcard__rows dt{font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--navy-400)}
.medcard__rows dd{margin:0;font-size:14.5px;line-height:1.55;color:var(--navy-800)}
.medcmp__note{max-width:760px;margin:clamp(22px,2.6vw,34px) auto 0;text-align:center;
  font-size:13.5px;line-height:1.65;color:var(--muted)}

/* --- InBody report ------------------------------------------------------ */
.inbody{background:linear-gradient(180deg,#fff,#F3F5FB)}
.inbody__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(34px,6vw,96px);align-items:center}
.inbody__title{margin:20px 0 16px;font-family:var(--ff-display);font-weight:400;
  font-size:clamp(2rem,3.8vw,3.3rem);line-height:1.05;letter-spacing:-.022em;color:var(--navy-800);text-wrap:balance}
.report{position:relative;margin:0;padding:clamp(22px,2.6vw,34px);border-radius:28px;
  background:#fff;border:1px solid var(--line);
  box-shadow:14px 14px 0 rgba(82,176,79,.16),0 50px 90px -60px rgba(17,20,49,.6);
  rotate:1.5deg;transition:rotate .8s var(--ease),box-shadow .8s var(--ease)}
.report:hover{rotate:0deg;box-shadow:8px 8px 0 rgba(82,176,79,.16),0 50px 90px -60px rgba(17,20,49,.6)}
.report__head{display:flex;justify-content:space-between;align-items:center;padding-bottom:18px;border-bottom:1px dashed var(--line)}
.report__head b{display:block;font-family:var(--ff-display);font-weight:400;font-size:22px;color:var(--navy-800)}
.report__head small{font-size:12px;color:var(--muted)}
.report__badge{padding:6px 12px;border-radius:8px;background:var(--navy-700);color:#fff;
  font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.report__rows{display:grid;gap:18px;padding:22px 0}
.report__row{display:grid;grid-template-columns:150px 1fr 44px;gap:14px;align-items:center}
.report__row span{font-size:13.5px;color:var(--ink-soft)}
.report__row i{position:relative;height:10px;border-radius:10px;background:var(--navy-50);overflow:hidden}
.report__row em{position:absolute;inset:0 auto 0 0;width:var(--w,0%);border-radius:10px;
  background:linear-gradient(90deg,var(--navy-400),var(--navy-600))}
.report__row em.is-warn{background:linear-gradient(90deg,var(--green-400),var(--green-600))}
.report__row b{text-align:right;font-variant-numeric:tabular-nums;font-size:14px;color:var(--navy-800)}
.report__foot{display:flex;align-items:center;gap:14px;padding-top:18px;border-top:1px dashed var(--line)}
.report__foot small{display:block;font-size:11.5px;color:var(--muted)}
.report__foot b{font-size:14px;color:var(--navy-800);white-space:nowrap}
.report__spark{flex:1;height:40px;overflow:visible}
.report__spark path{fill:none;stroke:var(--green-500);stroke-width:2.5;stroke-linecap:round}

/* --- delivery banner ---------------------------------------------------- */
.deliver{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(20px,3vw,40px);align-items:center;padding:clamp(28px,3.6vw,54px);border-radius:32px;
  background:
    radial-gradient(50% 80% at 100% 100%,rgba(255,255,255,.18),transparent 60%),
    linear-gradient(120deg,var(--green-600),#3E9A4F)}
.deliver__ico{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;
  background:rgba(255,255,255,.18);color:#fff;margin-bottom:20px}
.deliver__ico svg{width:26px;height:26px}
.deliver h2{font-family:var(--ff-display);font-weight:400;color:#fff;
  font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.08;letter-spacing:-.02em;margin-bottom:12px}
.deliver p{color:rgba(255,255,255,.88);font-size:15.5px;line-height:1.7;max-width:44ch}
.deliver__route{width:100%;height:auto;overflow:visible}
.deliver__path{fill:none;stroke:#fff;stroke-width:2.5;stroke-dasharray:.012 .018;stroke-linecap:round}
.deliver__dot{fill:#fff}
.deliver__pin circle{fill:#fff}
.deliver__pin .deliver__pin-in{fill:var(--green-600)}
.deliver__route text{fill:rgba(255,255,255,.85);font:500 13px var(--ff-sans)}

/* --- steps -------------------------------------------------------------- */
.steps{position:relative;display:grid;list-style:none;padding:0;margin:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2.4vw,34px)}
.steps::before,.steps::after{content:"";position:absolute;top:31px;left:32px;right:32px;height:2px;
  background:var(--navy-100)}
.steps::after{background:linear-gradient(90deg,var(--green-500),var(--navy-500));
  transform-origin:left center;transform:scaleX(var(--p,1))}
.step{position:relative;z-index:1}
.step__dot{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;margin-bottom:22px;
  background:#fff;border:1px solid var(--line);color:var(--navy-600);
  box-shadow:0 16px 30px -20px rgba(17,20,49,.5);transition:background .4s var(--ease),color .4s var(--ease)}
.step__dot svg{width:26px;height:26px}
.step:hover .step__dot{background:var(--navy-600);color:#fff}
.step small{display:block;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--green-600);margin-bottom:6px}
.step h3{font-family:var(--ff-display);font-weight:400;font-size:22px;color:var(--navy-800);margin-bottom:8px}
.step p{font-size:14.5px;line-height:1.65;color:var(--muted)}

/* --- FAQ ---------------------------------------------------------------- */
.faq__in{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(30px,6vw,100px);align-items:start}
.faq__side{position:sticky;top:calc(var(--nav-h) + 30px)}
.faq__title{margin:18px 0 14px;font-family:var(--ff-display);font-weight:400;
  font-size:clamp(2.1rem,3.8vw,3.3rem);line-height:1.04;letter-spacing:-.022em;color:var(--navy-800)}
.faq__side p{color:var(--muted);line-height:1.7}
.faq__side a{color:var(--navy-600);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.faq__list{border-top:1px solid var(--line)}
.faq__item{border-bottom:1px solid var(--line)}
.faq__item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:clamp(18px,2vw,26px) 0;font-family:var(--ff-display);font-size:clamp(1.08rem,1.5vw,1.35rem);
  color:var(--navy-800);transition:color .3s var(--ease)}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary:hover{color:var(--navy-500)}
.faq__item summary span{position:relative;flex:none;width:36px;height:36px;border-radius:50%;
  border:1px solid var(--line);transition:background .35s var(--ease),border-color .35s var(--ease),transform .5s var(--ease)}
.faq__item summary span::before,.faq__item summary span::after{content:"";position:absolute;left:50%;top:50%;
  width:12px;height:1.6px;background:var(--navy-600);translate:-50% -50%;transition:rotate .4s var(--ease),background .3s}
.faq__item summary span::after{rotate:90deg}
.faq__item[open] summary span{background:var(--navy-600);border-color:var(--navy-600);transform:rotate(180deg)}
.faq__item[open] summary span::before,.faq__item[open] summary span::after{background:#fff}
.faq__item[open] summary span::after{rotate:0deg}
.faq__item p{padding:0 56px clamp(20px,2vw,26px) 0;font-size:15.5px;line-height:1.75;color:var(--ink-soft)}

/* --- consult strip ------------------------------------------------------ */
.cstrip{padding-block:clamp(40px,5vw,80px)}
.cstrip__in{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px 40px;
  padding:clamp(26px,3vw,44px) clamp(26px,3.6vw,54px);border-radius:32px;
  background:var(--navy-50);border:1px solid var(--line)}
.cstrip__kicker{font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green-600);margin-bottom:8px}
.cstrip__title{font-family:var(--ff-display);font-weight:400;font-size:clamp(1.6rem,2.8vw,2.4rem);
  line-height:1.1;letter-spacing:-.02em;color:var(--navy-800);max-width:20ch}
.cstrip__acts{display:flex;flex-wrap:wrap;align-items:center;gap:16px 26px}
.cstrip__call{display:flex;align-items:center;gap:12px}
.cstrip__ico{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#fff;color:var(--navy-600);border:1px solid var(--line)}
.cstrip__ico svg{width:19px;height:19px}
.cstrip__call small{display:block;font-size:12.5px;color:var(--muted)}
.cstrip__call b{display:block;font-size:18px;color:var(--navy-800)}

/* --- TRT spotlight (hormone page) -------------------------------------- */
.spot{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  border-radius:34px;background:linear-gradient(135deg,#1B2159,#2A3379 60%,#323D8C)}
.spot::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(50% 70% at 0% 100%,rgba(82,176,79,.28),transparent 60%)}
.spot__copy{position:relative;padding:clamp(30px,4.4vw,70px)}
.spot__kicker{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--green-400)!important;margin-bottom:16px}
.spot__kicker span{width:28px;height:1.5px;background:currentColor}
.spot__title{font-family:var(--ff-display);font-weight:400;color:#fff;
  font-size:clamp(2.1rem,4vw,3.6rem);line-height:1.02;letter-spacing:-.024em;margin-bottom:18px;max-width:14ch}
.spot__copy > p{font-size:16px;line-height:1.7;max-width:48ch}
.spot__chips{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 30px}
.spot__chips li{padding:8px 14px;border-radius:999px;font-size:13px;color:#fff;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16)}
.spot__media{position:relative;min-height:380px}
.spot__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 30%);mask-image:linear-gradient(90deg,transparent,#000 30%)}
.spot__price{position:absolute;right:clamp(18px,2.6vw,36px);bottom:clamp(18px,2.6vw,36px);
  padding:18px 22px;border-radius:20px;background:#fff;box-shadow:0 30px 60px -30px rgba(0,0,0,.5);rotate:-3deg}
.spot__price small{display:block;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.spot__price b{display:block;font-family:var(--ff-display);font-weight:400;font-size:44px;line-height:1.05;color:var(--navy-800)}
.spot__price b span{font-family:var(--ff-sans);font-size:14px;color:var(--muted)}
.spot__price em{font-style:normal;font-size:12px;color:var(--green-700)}

/* --- Biote -------------------------------------------------------------- */
.biote__in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,6vw,96px);align-items:center}
.biote__media{position:relative;margin:0;border-radius:30px;overflow:hidden;aspect-ratio:4/3.4;background:var(--navy-50)}
.biote__media img{width:100%;height:100%;object-fit:cover}
.biote__media figcaption{position:absolute;left:18px;bottom:18px;padding:12px 18px;border-radius:16px;
  background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  font-family:var(--ff-display);font-size:22px;color:var(--navy-800);line-height:1.1}
.biote__media figcaption span{display:block;font-family:var(--ff-sans);font-size:12.5px;color:var(--muted)}
.biote__title{margin:18px 0 14px;font-family:var(--ff-display);font-weight:400;
  font-size:clamp(2rem,3.6vw,3.1rem);line-height:1.05;letter-spacing:-.022em;color:var(--navy-800)}

/* --- symptom checker ---------------------------------------------------- */
.hcheck{background:linear-gradient(180deg,#F7F8FC,#EEF0F8)}
.hcheck__box{max-width:920px;margin-inline:auto;padding:clamp(22px,3vw,40px);border-radius:30px;
  background:#fff;border:1px solid var(--line);box-shadow:0 40px 80px -60px rgba(17,20,49,.6)}
.hcheck__tabs{position:relative;display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;
  padding:5px;border-radius:999px;background:var(--navy-50);margin-bottom:24px}
.hcheck__tabs button{position:relative;z-index:1;padding:11px 26px;border-radius:999px;
  font-size:14.5px;font-weight:600;color:var(--navy-500);transition:color .35s var(--ease)}
.hcheck__tabs button[aria-selected="true"]{color:#fff}
.hcheck__pill{position:absolute;top:5px;bottom:5px;left:5px;border-radius:999px;
  background:var(--navy-600);box-shadow:0 8px 18px -10px rgba(17,20,49,.7);
  width:var(--pw,0);transform:translateX(var(--px,0));transition:transform .5s var(--ease),width .5s var(--ease)}
.hcheck__panel{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hcheck__panel[hidden]{display:none}
.hcheck__opt{display:flex;align-items:center;gap:14px;padding:15px 16px;border-radius:16px;cursor:pointer;
  border:1px solid var(--line);font-size:15px;color:var(--navy-800);
  transition:background .3s var(--ease),border-color .3s var(--ease)}
.hcheck__opt:hover{border-color:var(--navy-200)}
.hcheck__opt input{position:absolute;opacity:0;pointer-events:none}
.hcheck__opt > span{display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:8px;
  border:1.5px solid var(--navy-200);color:transparent;transition:all .3s var(--ease)}
.hcheck__opt > span svg{width:15px;height:15px}
.hcheck__opt:has(input:checked){background:var(--green-50);border-color:var(--green-200)}
.hcheck__opt:has(input:checked) > span{background:var(--green-500);border-color:var(--green-500);color:#fff}
.hcheck__opt:has(input:focus-visible){outline:2px solid var(--navy-400);outline-offset:2px}
.hcheck__result{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;
  margin-top:24px;padding-top:22px;border-top:1px dashed var(--line)}
.hcheck__result p{font-size:15px;color:var(--ink-soft)}
.hcheck__result b{font-family:var(--ff-display);font-size:28px;font-weight:400;color:var(--navy-700);margin-right:2px}

/* --- TRT signs ---------------------------------------------------------- */
.signs__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;align-items:end;margin-bottom:clamp(28px,3.4vw,48px)}
.signs__head .lede{max-width:44ch;justify-self:end}
.signs__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;border-radius:26px;overflow:hidden;
  background:var(--line);border:1px solid var(--line)}
.sign{padding:clamp(22px,2.4vw,34px);background:#fff;transition:background .4s var(--ease)}
.sign:hover{background:var(--navy-50)}
.sign__ico{display:grid;place-items:center;width:50px;height:50px;border-radius:15px;margin-bottom:18px;
  background:var(--green-50);color:var(--green-600);transition:transform .5s var(--ease),background .4s,color .4s}
.sign__ico svg{width:23px;height:23px}
.sign:hover .sign__ico{background:var(--green-500);color:#fff;transform:rotate(-8deg)}
.sign h3{font-family:var(--ff-display);font-weight:400;font-size:22px;color:var(--navy-800);margin-bottom:6px}
.sign p{font-size:14.5px;line-height:1.6;color:var(--muted)}

/* --- TRT membership ----------------------------------------------------- */
.member{background:linear-gradient(180deg,#F7F8FC,#EEF0F8)}
.member__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,5vw,80px);align-items:start}
.mcard{position:relative;overflow:hidden;padding:clamp(28px,3.4vw,48px);border-radius:32px;
  background:linear-gradient(160deg,#2A3379,#161B4A);box-shadow:0 50px 90px -50px rgba(17,20,49,.8)}
.mcard::before{content:"";position:absolute;right:-90px;top:-90px;width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle,rgba(82,176,79,.35),transparent 70%);pointer-events:none}
.mcard__head{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;
  padding-bottom:24px;border-bottom:1px solid rgba(255,255,255,.14)}
.mcard__label{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--green-400)!important}
.mcard__price{display:flex;align-items:baseline;gap:4px}
.mcard__price b{font-family:var(--ff-display);font-weight:400;font-size:clamp(3.6rem,6vw,5rem);line-height:.9;color:#fff}
.mcard__price span{font-size:16px;color:rgba(255,255,255,.7)}
.mcard__inc{margin:24px 0 14px;font-family:var(--ff-display);font-size:20px;color:#fff!important}
.mcard__list{display:grid;gap:13px}
.mcard__list li{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.55;color:rgba(255,255,255,.88)}
.mcard__list svg{flex:none;width:22px;height:22px;padding:4px;border-radius:50%;background:var(--green-500);color:#fff;margin-top:1px}
.mcard__note{display:flex;align-items:center;gap:10px;margin:26px 0;padding:14px 16px;border-radius:14px;
  background:rgba(255,255,255,.08);border:1px dashed rgba(255,255,255,.28);font-size:14px;color:#fff!important}
.mcard__note svg{flex:none;width:18px;height:18px;rotate:45deg;color:var(--green-400)}
.member__side{padding-top:clamp(0px,1.4vw,20px)}
.member__title{margin:18px 0 clamp(24px,3vw,40px);font-family:var(--ff-display);font-weight:400;
  font-size:clamp(2rem,3.6vw,3.1rem);line-height:1.05;letter-spacing:-.022em;color:var(--navy-800)}
.tline{position:relative;display:grid;gap:10px;list-style:none;padding:0;margin:0}
.tline::before{content:"";position:absolute;left:52px;top:20px;bottom:20px;width:2px;background:var(--navy-100)}
.tline::after{content:"";position:absolute;left:52px;top:20px;bottom:20px;width:2px;
  background:linear-gradient(180deg,var(--green-500),var(--navy-500));transform-origin:top;transform:scaleY(var(--p,1))}
.tline__item{position:relative;z-index:1;display:grid;grid-template-columns:106px 1fr;gap:18px;align-items:start;
  padding:16px 18px 16px 0}
.tline__when{justify-self:center;padding:7px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);
  font-size:12px;font-weight:600;color:var(--navy-600);white-space:nowrap;box-shadow:0 8px 18px -12px rgba(17,20,49,.5)}
.tline__item h3{font-family:var(--ff-display);font-weight:400;font-size:21px;color:var(--navy-800);margin-bottom:4px}
.tline__item p{font-size:14.5px;line-height:1.6;color:var(--muted)}

/* --- contact form ------------------------------------------------------- */
.cform__in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,5vw,90px);align-items:start}
.cform__title{margin:18px 0 14px;font-family:var(--ff-display);font-weight:400;
  font-size:clamp(2.1rem,3.8vw,3.3rem);line-height:1.04;letter-spacing:-.022em;color:var(--navy-800)}
.cform__ways{display:grid;gap:10px;margin-top:28px}
.cform__ways a,.cform__ways p{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:16px;
  background:var(--navy-50);transition:background .3s var(--ease)}
.cform__ways a:hover{background:var(--navy-100)}
.cform__ways svg{flex:none;width:40px;height:40px;padding:10px;border-radius:50%;background:#fff;color:var(--navy-600)}
.cform__ways small{display:block;font-size:12px;color:var(--muted)}
.cform__ways b{display:block;font-size:15px;font-weight:600;color:var(--navy-800);overflow-wrap:anywhere}
.cform__card{position:relative;display:grid;gap:16px;padding:clamp(24px,3vw,44px);border-radius:30px;
  background:#fff;border:1px solid var(--line);box-shadow:0 50px 90px -60px rgba(17,20,49,.6)}
.field{display:grid;gap:7px}
.field label{font-size:13.5px;font-weight:600;color:var(--navy-800)}
.field input,.field textarea{width:100%;padding:14px 16px;border-radius:14px;font:inherit;font-size:15px;color:var(--ink);
  background:var(--paper-2);border:1px solid var(--line);resize:vertical;
  transition:border-color .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease)}
.field input::placeholder,.field textarea::placeholder{color:#9A9DB8}
.field input:focus,.field textarea:focus{outline:none;background:#fff;border-color:var(--navy-400);
  box-shadow:0 0 0 4px rgba(91,100,170,.14)}
.field.is-bad input{border-color:#D14343;box-shadow:0 0 0 4px rgba(209,67,67,.1)}
.field__err{font-size:12.5px;color:#C03434}
.cform__submit{justify-self:start;margin-top:6px}
.cform__fine{font-size:12.5px;color:var(--muted)}
.cform__done{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:10px;
  padding:30px;text-align:center;border-radius:30px;background:#fff}
.cform__done[hidden]{display:none}
.cform__done > span{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--green-500);color:#fff}
.cform__done > span svg{width:30px;height:30px}
.cform__done h3{font-family:var(--ff-display);font-weight:400;font-size:26px;color:var(--navy-800)}
.cform__done p{color:var(--muted);max-width:34ch}

@media (max-width:1080px){
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:34px}
  .steps::before,.steps::after{display:none}
  .signs__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:980px){
  .absplit__in,.whygrid__in,.inbody__in,.biote__in,.faq__in,.member__in,.cform__in,.spot,.deliver{grid-template-columns:1fr}
  .faq__side{position:static}
  .absplit__media{max-width:560px}
  .signs__head{grid-template-columns:1fr}
  .signs__head .lede{justify-self:start}
  .medcmp__grid{grid-template-columns:1fr}
  .medcmp__vs{position:relative;left:auto;top:auto;translate:none;justify-self:center;margin:-34px 0}
  .spot__media{min-height:300px}
  .spot__media img{-webkit-mask-image:linear-gradient(180deg,transparent,#000 30%);mask-image:linear-gradient(180deg,transparent,#000 30%)}
  .report{rotate:0deg}
}
@media (max-width:760px){
  .pcard-grid.pcard-grid--5,.pcard-grid.pcard-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pcard-grid.pcard-grid--2,.pcard-grid.pcard-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pcard-grid--5 .pcard,.pcard-grid--5 .pcard:nth-child(n+4){grid-column:auto;aspect-ratio:auto}
  .pcard-grid--3 .pcard,.pcard-grid--2 .pcard,.pcard-grid--4 .pcard{aspect-ratio:auto}
  .pcard-grid--2 .pcard h3,.pcard-grid--3 .pcard h3,.pcard-grid--4 .pcard h3{font-size:12px}
  .pcard--light{background:none}
  .pcard.pcard--light img{object-fit:cover;background:linear-gradient(160deg,#fff,#E6E9F6)}
  .pcard__tag{display:none}
  .absplit__checks,.whygrid__cards{grid-template-columns:1fr}
  .absplit__badge{padding:8px 12px 8px 8px;gap:8px}
  .absplit__badge > span{width:34px;height:34px;border-radius:10px}
  .absplit__badge small{display:none}
  .absplit__stat{padding:10px 12px;bottom:clamp(30px,10vw,60px)}
  .absplit__stat b{font-size:24px}
  .fcard:nth-child(even),.fcard:nth-child(even):hover{transform:none}
  .hcheck__panel{grid-template-columns:1fr}
  .medcard__rows div{grid-template-columns:1fr;gap:4px}
  .report__row{grid-template-columns:110px 1fr 40px;gap:10px}
}
@media (max-width:560px){
  .steps,.signs__grid{grid-template-columns:1fr}
  .tline::before,.tline::after{left:40px}
  .tline__item{grid-template-columns:82px 1fr;gap:12px}
}
@media (max-width:560px){
  /* "Before your first visit" cannot sit in an 82px column without spilling over
     the text, so on a phone the stage label sits above what it describes */
  .tline::before,.tline::after{display:none}
  .tline__item{grid-template-columns:minmax(0,1fr);gap:8px;padding:14px 0}
  .tline__when{justify-self:start;white-space:normal}
  .hcheck__tabs{display:grid;width:100%}
  .hcheck__tabs button{padding:10px 12px}
  .faq__item p{padding-right:0}
  .deliver__route text{font-size:18px}
}

/* ==========================================================================
   AESTHETICS — soft clinical layout in the Alamo brand
   Pale navy grounds, Fraunces display type, dot tags, a treatment wheel
   in the hero, expandable treatment rows and a bento grid.
   ========================================================================== */
.derm{--dp:#F5F6FA;--dp2:#ECEEF6;--dp3:#E1E4F0;--dink:var(--navy-900);--dsoft:var(--ink-soft);
  --dline:rgba(42,51,121,.12);--R:clamp(290px,31vw,430px);background:var(--dp);color:var(--dink)}
.derm .section{background:transparent}
.dm-tag{display:inline-flex;align-items:center;gap:8px;padding:6px 13px;border-radius:999px;background:var(--dp2);
  font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--navy-600)}
.dm-tag i{width:6px;height:6px;border-radius:50%;background:var(--green-500)}
.dm-tag--paper{background:#fff}
.dm-tag--glass{background:rgba(255,255,255,.14);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.dm-tag--glass i{background:var(--green-400)}
.dm-h2{margin-top:16px;font-family:var(--ff-display);font-weight:400;font-size:clamp(2.3rem,4.6vw,4.2rem);
  line-height:1.02;letter-spacing:-.025em;color:var(--dink)}
.dm-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px 40px;margin-bottom:clamp(30px,4vw,56px)}
.dm-head--center{flex-direction:column;align-items:center;text-align:center}
.dm-head__note{max-width:40ch;font-size:15.5px;line-height:1.65;color:var(--dsoft)}
.dm-btn{display:inline-flex;align-items:center;gap:10px;padding:6px 20px 6px 6px;border:0;border-radius:999px;cursor:pointer;
  background:var(--navy-600);color:#fff;font:600 14.5px/1 var(--ff-sans);
  transition:background .4s var(--ease),transform .4s var(--ease)}
.dm-btn__ico{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#fff;color:var(--navy-600);
  transition:transform .6s var(--ease)}
.dm-btn__ico svg{width:14px;height:14px}
.dm-btn:hover{background:var(--navy-800);transform:translateY(-2px)}
.dm-btn:hover .dm-btn__ico{transform:rotate(90deg)}
.dm-btn--light{background:#fff;color:var(--navy-800)}
.dm-btn--light .dm-btn__ico{background:var(--navy-600);color:#fff}
.dm-btn--light:hover{background:var(--dp2)}
.dm-btn--sm{font-size:13.5px}

/* hero */
/* full-bleed photo; the copy sits on top and the wheel fans up from the bottom edge */
.dm-hero{position:relative;overflow:hidden;isolation:isolate;color:#fff;background:var(--navy-900);
  min-height:max(calc(var(--R) + 450px),min(calc(100svh - var(--nav-h)),940px));padding-top:clamp(40px,5vw,72px)}
.dm-hero__top{position:relative;z-index:3;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.3fr) minmax(0,1fr);align-items:center;gap:24px;
  padding-bottom:clamp(36px,5vw,64px)}
.dm-badge{justify-self:start;display:flex;align-items:center;gap:12px;padding:9px 20px 9px 9px;border-radius:999px;background:#fff;
  box-shadow:0 24px 44px -32px rgba(17,21,58,.4)}
.dm-badge__ico{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--dp2);color:var(--navy-600)}
.dm-badge__ico svg{width:20px;height:20px}
.dm-badge b{display:block;color:var(--dink);font-family:var(--ff-display);font-weight:400;font-size:19px;line-height:1.1}
.dm-badge small{font-size:12.5px;color:var(--dsoft)}
.dm-hero__center{text-align:center}
.dm-hero__title{font-family:var(--ff-display);font-weight:400;font-size:clamp(3rem,7vw,6.6rem);line-height:.98;letter-spacing:-.035em}
.dm-hero__title em{font-style:italic;color:var(--navy-200)}
.dm-hero__center p{max-width:42ch;margin:22px auto 0;font-size:16.5px;line-height:1.65;color:rgba(255,255,255,.84)}
.dm-note{justify-self:end;max-width:260px;padding:18px 20px;border-radius:22px;background:#fff;box-shadow:0 24px 44px -32px rgba(17,21,58,.4)}
.dm-note__head{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--navy-600)}
.dm-note__head svg{width:16px;height:16px;color:var(--green-500)}
.dm-note p:not(.dm-note__head){margin:8px 0 12px;font-size:14px;line-height:1.55;color:var(--dsoft)}
.dm-note a{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--navy-700)}
.dm-note a svg{width:13px;height:13px;transition:transform .4s var(--ease)}
.dm-note a:hover svg{transform:translateX(3px)}

.dm-stage{position:absolute;inset:0;z-index:0;overflow:hidden;isolation:isolate;background:var(--navy-900)}
.dm-stage__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 38%;transform:scale(var(--z,1))}
/* darkens around the wheel so the labels read on any photo */
.dm-stage::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(17,21,58,.72) 0%,rgba(17,21,58,.42) 38%,rgba(17,21,58,.1) 58%),
    radial-gradient(ellipse 55% 60% at 50% 100%,rgba(17,21,58,.6),rgba(17,21,58,.15) 70%,transparent)}
/* the wheel: spokes fan out from the middle of the bottom edge */
.dm-wheel{position:absolute;left:50%;bottom:0;z-index:1;width:0;height:0;will-change:transform;
  transform:rotate(calc(var(--spin,0deg) + var(--tilt,0deg)))}
.dm-spoke{position:absolute;left:0;bottom:0;width:0;height:var(--R);transform-origin:50% 100%;transform:rotate(var(--a))}
/* left half reads down towards the middle, right half reads up and out, so no label is upside down */
.dm-chip{position:absolute;left:0;top:0;display:flex;align-items:center;gap:10px;padding:6px 18px 6px 6px;border-radius:999px;
  white-space:nowrap;font-size:14.5px;font-weight:600;letter-spacing:.01em;color:#fff;
  background:rgba(17,21,58,.62);border:1px solid rgba(255,255,255,.3);box-shadow:0 12px 26px -14px rgba(0,0,0,.6);
  transform:translate(-50%,-50%) rotate(90deg) translateX(50%)}
.dm-spoke--r .dm-chip{flex-direction:row-reverse;padding:6px 6px 6px 18px;transform:translate(-50%,-50%) rotate(-90deg) translateX(-50%)}
.dm-chip img{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.85);transform:rotate(-90deg)}
.dm-spoke--r .dm-chip img{transform:rotate(90deg)}
.dm-notch{position:absolute;left:50%;bottom:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;
  width:clamp(220px,21vw,290px);height:clamp(92px,8vw,116px);padding-bottom:18px;transform:translateX(-50%);
  border-radius:50% 50% 0 0 / 100% 100% 0 0;background:var(--dp);font-size:14px;font-weight:600;color:var(--dink)}
.dm-notch::before,.dm-notch::after{content:"";position:absolute;bottom:0;width:28px;height:28px}
.dm-notch::before{left:-27px;background:radial-gradient(circle at 0 0,transparent 27.5px,var(--dp) 28px)}
.dm-notch::after{right:-27px;background:radial-gradient(circle at 100% 0,transparent 27.5px,var(--dp) 28px)}
.dm-notch svg{width:18px;height:18px;color:var(--navy-500);transition:transform .8s var(--ease)}
.dm-notch:hover svg{transform:rotate(180deg)}

/* about statement with drifting photos */
.dm-about{position:relative;overflow:hidden;padding-block:clamp(120px,15vw,220px)}
.dm-about__in{position:relative;z-index:1;max-width:960px;text-align:center}
.dm-statement{margin-top:22px;font-family:var(--ff-display);font-weight:400;font-size:clamp(1.9rem,3.5vw,3.2rem);
  line-height:1.24;letter-spacing:-.02em;color:var(--dink)}
.dm-inline{display:inline-block;width:1.9em;height:1.1em;margin:0 .06em;border-radius:999px;overflow:hidden;vertical-align:-.12em}
.dm-inline img{width:100%;height:100%;object-fit:cover}
.dm-proof{display:inline-flex;align-items:center;gap:12px;margin-top:36px;text-align:left}
.dm-proof__ico{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:var(--navy-600);color:#fff}
.dm-proof__ico svg{width:19px;height:19px}
.dm-proof b{display:block;font-size:14.5px;font-weight:600}
.dm-proof small{font-size:12.5px;color:var(--dsoft)}
.dm-float{position:absolute;margin:0;border-radius:20px;overflow:hidden;box-shadow:0 30px 60px -40px rgba(17,21,58,.55)}
.dm-float img{width:100%;height:100%;object-fit:cover}
.dm-float--a{left:4%;top:7%;width:clamp(120px,14vw,210px);aspect-ratio:3/4}
.dm-float--b{right:4%;top:12%;width:clamp(140px,17vw,250px);aspect-ratio:4/3.3}
.dm-float--c{left:10%;bottom:5%;width:clamp(90px,9.5vw,140px);aspect-ratio:1}
.dm-float--d{right:9%;bottom:4%;width:clamp(120px,14vw,210px);aspect-ratio:4/3}

/* approach panel */
.dm-approach{padding-top:clamp(40px,5vw,70px)}
.dm-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,70px);align-items:center;
  padding:clamp(14px,1.6vw,22px);border-radius:34px;background:var(--dp2)}
.dm-panel__img{position:relative;margin:0;border-radius:26px;overflow:hidden;aspect-ratio:1/1.02}
.dm-panel__img img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.dm-panel__img figcaption{position:absolute;left:16px;right:16px;bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 22px;border-radius:20px;color:#fff;background:rgba(17,21,58,.26);border:1px solid rgba(255,255,255,.2);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.dm-panel__img b{display:block;font-family:var(--ff-display);font-weight:400;font-size:24px;line-height:1.15}
.dm-panel__img small{font-size:13px;opacity:.85}
.dm-panel__img figcaption svg{flex:none;width:22px;height:22px}
.dm-panel__copy{padding:clamp(10px,3vw,40px) clamp(10px,3vw,40px) clamp(10px,3vw,40px) 0}
.dm-panel__copy > p:not(.dm-tag){max-width:46ch;margin:18px 0 26px;font-size:16px;line-height:1.7;color:var(--dsoft)}
.dm-ticks{display:grid;gap:14px;margin-bottom:34px}
.dm-ticks li{display:flex;align-items:center;gap:14px;font-size:15px;font-weight:500}
.dm-ticks span{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;background:#fff;color:var(--navy-600)}
.dm-ticks svg{width:18px;height:18px}

/* bento */
.dm-bento{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(230px,auto);gap:14px;
  grid-template-areas:"photo reach num" "photo tailor when" "free clinic clinic"}
.dm-card{position:relative;overflow:hidden;padding:clamp(22px,2.4vw,30px);border-radius:28px;background:var(--dp2);
  transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.dm-card:hover{transform:translateY(-6px);box-shadow:0 34px 60px -44px rgba(17,21,58,.55)}
.dm-card h3{position:relative;font-family:var(--ff-display);font-weight:400;font-size:clamp(1.4rem,2vw,1.8rem);line-height:1.1}
.dm-card p{position:relative;margin-top:8px;font-size:14.5px;line-height:1.6;color:var(--dsoft)}
.dm-card > img{transition:transform 1.2s var(--ease)}
.dm-card:hover > img{transform:scale(1.05)}
.dm-card--photo{grid-area:photo;display:flex;align-items:flex-end;padding:16px}
.dm-card--photo > img,.dm-card--clinic > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dm-card__foot{position:relative;width:100%;padding:18px 20px;border-radius:20px;color:#fff;background:rgba(17,21,58,.28);
  border:1px solid rgba(255,255,255,.18);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.dm-card__foot b{display:block;font-family:var(--ff-display);font-weight:400;font-size:clamp(1.3rem,1.8vw,1.6rem);line-height:1.15}
.dm-card__foot span{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px;opacity:.9}
.dm-card__foot svg{width:14px;height:14px}
.dm-card--reach{grid-area:reach;min-height:260px}
.dm-card--reach > img{position:absolute;left:0;right:0;bottom:0;width:100%;height:50%;object-fit:cover;object-position:50% 40%;
  -webkit-mask-image:linear-gradient(transparent,#000 45%);mask-image:linear-gradient(transparent,#000 45%)}
.dm-card--num{grid-area:num;background:var(--navy-700);color:#fff}
.dm-card__big{display:block;font-family:var(--ff-display);font-weight:400;font-size:clamp(4.4rem,7vw,6.4rem);line-height:.85}
.dm-card--num p{color:rgba(255,255,255,.75)}
.dm-card__faces{position:absolute;right:clamp(20px,2.4vw,30px);top:clamp(20px,2.4vw,30px);display:grid}
.dm-card__faces img{width:62px;height:62px;border-radius:50%;object-fit:cover;border:3px solid var(--navy-700);margin-top:-14px}
.dm-card__faces img:first-child{margin-top:0}
.dm-card__faces img:nth-child(2){transform:translateX(-26px)}
.dm-card__pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}
.dm-card__pills span{padding:7px 13px;border-radius:999px;background:rgba(255,255,255,.12);font-size:12.5px}
.dm-card--free{grid-area:free;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#fff;border:1px solid var(--dline)}
.dm-card__seal{display:grid;place-items:center;width:58px;height:58px;margin-bottom:14px;border-radius:50%;background:var(--dp2);
  font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--navy-600)}
.dm-card--free p{max-width:28ch;margin-bottom:20px}
.dm-card--tailor{grid-area:tailor;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;min-height:280px}
.dm-card--tailor p{max-width:32ch}
.dm-bub{position:absolute;width:62px;aspect-ratio:5/6;border-radius:14px;object-fit:cover;border:3px solid #fff;
  box-shadow:0 18px 30px -18px rgba(17,21,58,.5)}
.dm-bub--1{left:8%;top:12%;rotate:-7deg}
.dm-bub--2{left:39%;top:6%;width:70px;rotate:3deg}
.dm-bub--3{right:8%;top:16%;rotate:8deg}
.dm-bub--4{left:25%;top:36%;width:44px;rotate:-4deg}
.dm-card--when{grid-area:when;background:#fff;border:1px solid var(--dline)}
.dm-bars{display:grid;gap:18px;margin-top:22px}
.dm-bars div{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:baseline}
.dm-bars span{font-size:14px;font-weight:600}
.dm-bars em{font-style:normal;font-size:12.5px;color:var(--dsoft)}
.dm-bars i{grid-column:1 / -1;position:relative;height:8px;border-radius:8px;background:var(--dp2);overflow:hidden}
.dm-bars i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);border-radius:inherit;transform:scaleX(var(--p,1));
  transform-origin:left;background:linear-gradient(90deg,var(--navy-400),var(--navy-700))}
.dm-card--clinic{grid-area:clinic;display:flex;align-items:flex-end;min-height:260px}
.dm-card--clinic > img{object-position:50% 35%}
.dm-card--clinic::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(transparent 40%,rgba(17,21,58,.7))}
.dm-card--clinic b{position:relative;z-index:2;font-family:var(--ff-display);font-weight:400;font-size:clamp(1.5rem,2.4vw,2.2rem);color:#fff}

/* concerns */
.dm-concerns__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,5vw,90px);align-items:center}
.dm-concerns__lede{max-width:48ch;margin:18px 0 30px;font-size:16px;line-height:1.7;color:var(--dsoft)}
.dm-checks{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}
.dm-checks li{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500}
.dm-checks svg{flex:none;width:24px;height:24px;padding:5px;border-radius:50%;border:1px solid var(--navy-300);color:var(--navy-600)}
.dm-concerns__img{position:relative;margin:0;border-radius:30px;overflow:hidden;aspect-ratio:1/1.05}
.dm-concerns__img img{width:100%;height:100%;object-fit:cover}
.dm-concerns__img figcaption{position:absolute;left:20px;bottom:20px;display:grid;justify-items:start;gap:8px;max-width:280px;padding:22px;
  border-radius:22px;color:#fff;background:rgba(17,21,58,.34);border:1px solid rgba(255,255,255,.18);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.dm-concerns__img svg{width:28px;height:28px}
.dm-concerns__img b{font-family:var(--ff-display);font-weight:400;font-size:24px;line-height:1.15}
.dm-concerns__img a{font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:4px}

/* appointment */
.dm-appt{padding-block:clamp(80px,10vw,140px);background:var(--dp2)}
.dm-appt__in{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(16px,2vw,24px)}
.dm-appt__form{padding:clamp(26px,3.4vw,52px);border-radius:30px;background:#fff}
.dm-appt__form .dm-h2{margin-top:0;font-size:clamp(2.1rem,3.8vw,3.4rem)}
.dm-appt__form > p{margin:12px 0 30px;font-size:16px;color:var(--dsoft)}
.dm-form{position:relative;display:grid;gap:16px}
.dm-form__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dm-form select{width:100%;padding:14px 40px 14px 16px;border-radius:14px;font:inherit;font-size:15px;color:var(--ink);cursor:pointer;
  background:var(--paper-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%232A3379' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 16px center/12px;
  border:1px solid var(--line);-webkit-appearance:none;appearance:none}
.dm-form select:focus{outline:none;background-color:#fff;border-color:var(--navy-400);box-shadow:0 0 0 4px rgba(91,100,170,.14)}
.field.is-bad select{border-color:#D14343;box-shadow:0 0 0 4px rgba(209,67,67,.1)}
.dm-form__agree{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--dsoft);cursor:pointer}
.dm-form__agree input{width:18px;height:18px;accent-color:var(--navy-600)}
.dm-form .dm-btn{justify-self:start;margin-top:4px}
.dm-appt__side{position:relative;overflow:hidden;min-height:520px;border-radius:30px}
.dm-appt__side > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 30%}
.dm-appt__card{position:absolute;left:18px;right:18px;bottom:18px;display:grid;gap:12px;padding:24px;border-radius:22px;
  background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.dm-appt__card-head{font-family:var(--ff-display);font-size:24px;color:var(--dink)}
.dm-appt__card a,.dm-appt__card p:not(.dm-appt__card-head){display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500;color:var(--navy-800);overflow-wrap:anywhere}
.dm-appt__card svg{flex:none;width:18px;height:18px;color:var(--navy-500)}
.dm-appt__card a:hover{color:var(--navy-500)}

/* faq */
.dm-faq__in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,5vw,90px);align-items:start}
.dm-faq__img{position:relative;margin:30px 0 0;border-radius:28px;overflow:hidden;aspect-ratio:4/3.4}
.dm-faq__img img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.dm-faq__img figcaption{position:absolute;inset:auto 0 0;display:grid;justify-items:start;gap:8px;padding:28px;color:#fff;
  background:linear-gradient(transparent,rgba(17,21,58,.86))}
.dm-faq__img b{font-family:var(--ff-display);font-weight:400;font-size:26px}
.dm-faq__img span{font-size:14.5px;opacity:.85}
.dm-faq__img .dm-btn{margin-top:8px}
.dm-faq__list{display:grid;gap:12px}
.dm-q{border-radius:22px;border:1px solid var(--dline);background:#fff;transition:border-color .4s var(--ease)}
.dm-q:hover{border-color:var(--navy-200)}
.dm-q summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 24px;list-style:none;cursor:pointer;
  font-family:var(--ff-display);font-size:clamp(1.15rem,1.5vw,1.4rem);color:var(--dink)}
.dm-q summary::-webkit-details-marker{display:none}
.dm-q summary span{position:relative;flex:none;width:34px;height:34px;border-radius:50%;background:var(--dp);transition:background .4s var(--ease)}
.dm-q summary span::before,.dm-q summary span::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;margin:-.75px 0 0 -6px;
  border-radius:2px;background:var(--navy-700);transition:transform .5s var(--ease),background .4s var(--ease)}
.dm-q summary span::after{transform:rotate(90deg)}
.dm-q[open] summary span{background:var(--navy-600)}
.dm-q[open] summary span::before,.dm-q[open] summary span::after{background:#fff}
.dm-q[open] summary span::after{transform:rotate(0deg)}
.dm-q__body{overflow:hidden}
.dm-q__body p{max-width:60ch;padding:0 24px 22px;font-size:15px;line-height:1.7;color:var(--dsoft)}

/* closing band */
.dm-cta{position:relative;overflow:hidden;display:grid;place-items:center;min-height:min(80vh,700px);text-align:center;color:#fff;background:var(--navy-900)}
.dm-cta__media{position:absolute;inset:-16% 0;will-change:transform}
.dm-cta__media img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.dm-cta::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(17,21,58,.45),rgba(17,21,58,.78))}
.dm-cta__in{position:relative;z-index:2;padding-block:clamp(90px,11vw,150px)}
.dm-cta__title{margin:18px 0 16px;font-family:var(--ff-display);font-weight:400;font-size:clamp(2.8rem,6.4vw,6rem);line-height:.98;letter-spacing:-.03em}
.dm-cta__title em{display:block;font-style:italic}
.dm-cta__in > p:not(.dm-tag){max-width:46ch;margin:0 auto 30px;font-size:17px;line-height:1.7;color:rgba(255,255,255,.85)}

@media (max-width:1100px){
  .dm-hero__top{grid-template-columns:1fr;justify-items:center}
  .dm-badge{justify-self:center;order:-1}
  .dm-note{display:none}
}
@media (max-width:980px){
  .dm-panel,.dm-concerns__in,.dm-appt__in,.dm-faq__in{grid-template-columns:1fr}
  .dm-panel__copy{padding:0 10px 20px}
  .dm-bento{grid-template-columns:1fr 1fr;grid-template-areas:"photo photo" "reach num" "tailor when" "free clinic"}
  .dm-card--photo{min-height:420px}
  .dm-appt__side{min-height:420px}
  .dm-float--c,.dm-float--d{display:none}
  .dm-float--a{top:3%;left:3%}
  .dm-float--b{top:3%;right:3%}
  .dm-about{padding-top:clamp(220px,32vw,300px)}
}
@media (max-width:760px){
  .dm-chip{font-size:12.5px;padding:4px 13px 4px 4px}
  .dm-spoke--r .dm-chip{padding:4px 4px 4px 13px}
  .dm-chip img{width:24px;height:24px}
}
@media (max-width:640px){
  .dm-bento{grid-template-columns:1fr;grid-template-areas:"photo" "reach" "num" "tailor" "when" "free" "clinic"}
  .dm-form__row,.dm-checks{grid-template-columns:1fr}
  .derm{--R:210px}
  .dm-float--a{width:104px}
  .dm-float--b{width:120px}
  .dm-about{padding-top:190px}
}
@media (max-width:560px){
  /* the labels fan out from the bottom centre, so on a narrow screen the
     outermost ones were landing past the left edge */
  .derm{--R:150px}
  .dm-chip{font-size:11.5px;padding:3px 10px 3px 3px;gap:7px}
  .dm-spoke--r .dm-chip{padding:3px 3px 3px 10px}
  .dm-chip img{width:20px;height:20px}
}

/* ==========================================================================
   SERVICE DETAIL — shared blocks for the individual service pages
   ========================================================================== */
.svc-intro__in{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(24px,4vw,70px);align-items:end}
.svc-intro .lede{margin:0}
/* intro panel — tinted card with a fine grid, a glow and an italic accent line */
.svc-panel{position:relative;overflow:hidden;border-radius:34px;background:var(--navy-50);
  padding:clamp(34px,5vw,74px) clamp(24px,4vw,64px)}
.svc-panel__grid{position:absolute;inset:0;opacity:.5;
  background-image:linear-gradient(rgba(42,51,121,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(42,51,121,.08) 1px,transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(ellipse 70% 80% at 30% 0%,#000,transparent 75%);
  mask-image:radial-gradient(ellipse 70% 80% at 30% 0%,#000,transparent 75%)}
.svc-panel__glow{position:absolute;right:-6%;bottom:-40%;width:520px;height:520px;border-radius:50%;
  background:radial-gradient(circle,rgba(82,176,79,.22),transparent 65%);pointer-events:none}
.svc-panel__in{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(24px,4vw,64px);align-items:center}
.svc-panel__title{font-family:var(--ff-display);font-weight:400;font-size:clamp(2rem,3.6vw,3.3rem);
  line-height:1.06;letter-spacing:-.025em;color:var(--navy-900)}
.svc-panel__title em{display:block;font-style:italic;color:var(--navy-500)}
.svc-panel__copy{position:relative;padding-left:clamp(18px,2vw,28px)}
.svc-panel__copy::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;border-radius:3px;
  background:linear-gradient(180deg,var(--green-500),var(--navy-400))}
.svc-panel__copy p{font-size:clamp(15.5px,1.15vw,17px);line-height:1.75;color:var(--ink-soft)}
@media (max-width:860px){
  .svc-panel__in{grid-template-columns:1fr}
}
.svc-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.svc-grid > *{flex:0 1 calc((100% - 3 * 14px) / 4)}
.svc-card{padding:clamp(24px,2.6vw,34px);border-radius:26px;background:var(--paper-2);border:1px solid var(--line-soft);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.svc-card:hover{transform:translateY(-4px);box-shadow:0 30px 56px -42px rgba(17,21,58,.5)}
.svc-card__ico{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#fff;color:var(--navy-600)}
.svc-card__ico svg{width:20px;height:20px}
.svc-card h3{margin:18px 0 14px;font-family:var(--ff-display);font-weight:400;font-size:clamp(1.3rem,1.8vw,1.6rem);
  line-height:1.15;color:var(--navy-900)}
.svc-card ul{display:grid;gap:9px;list-style:none;padding:0;margin:0}
.svc-card li{position:relative;padding-left:18px;font-size:14.5px;line-height:1.5;color:var(--ink-soft)}
.svc-card li::before{content:"";position:absolute;left:0;top:.56em;width:6px;height:6px;border-radius:50%;background:var(--green-500)}
.svc-steps{display:grid;grid-template-columns:repeat(var(--steps,5),minmax(0,1fr));gap:14px;list-style:none;padding:0;margin:0;counter-reset:s}
.svc-steps[data-step-count="4"]{--steps:4}
.svc-steps[data-step-count="6"]{--steps:6}
.svc-steps li{padding:clamp(22px,2.4vw,30px);border-radius:24px;background:#fff;border:1px solid var(--line);
  transition:background .5s var(--ease),transform .5s var(--ease)}
.svc-steps li:hover{background:var(--navy-700);transform:translateY(-4px)}
.svc-steps span{font-family:var(--ff-display);font-size:clamp(2rem,3vw,2.6rem);line-height:1;color:var(--navy-200);
  transition:color .5s var(--ease)}
.svc-steps h3{margin:22px 0 8px;font-family:var(--ff-display);font-weight:400;font-size:1.3rem;color:var(--navy-900);
  transition:color .5s var(--ease)}
.svc-steps p{font-size:14px;line-height:1.55;color:var(--muted);transition:color .5s var(--ease)}
.svc-steps li:hover span{color:var(--green-400)}
.svc-steps li:hover h3{color:#fff}
.svc-steps li:hover p{color:rgba(255,255,255,.75)}
.svc-why{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,80px);align-items:stretch}
.svc-ticks{display:grid;gap:14px;margin-top:28px;list-style:none;padding:0}
.svc-ticks li{display:flex;gap:14px;align-items:flex-start}
.svc-ticks svg{flex:none;width:26px;height:26px;padding:6px;border-radius:50%;background:var(--green-50);color:var(--green-700)}
.svc-ticks b{display:block;font-size:15px;color:var(--navy-800)}
.svc-ticks span{font-size:14.5px;line-height:1.55;color:var(--ink-soft)}
.svc-why__img{position:relative;margin:0;border-radius:28px;overflow:hidden;min-height:420px}
.svc-why__img img{width:100%;height:100%;object-fit:cover}
.svc-alert{display:flex;gap:18px;align-items:flex-start;padding:clamp(24px,2.8vw,34px);border-radius:26px;
  background:var(--navy-900);color:#fff}
.svc-alert__ico{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:50%;
  background:rgba(255,255,255,.12);color:var(--green-400)}
.svc-alert__ico svg{width:21px;height:21px}
.svc-alert h3{font-family:var(--ff-display);font-weight:400;font-size:clamp(1.3rem,1.8vw,1.6rem)}
.svc-alert p{margin-top:8px;font-size:15px;line-height:1.65;color:rgba(255,255,255,.8);max-width:80ch}
.svc-end .lede{margin-inline:auto}
.svc-end .btn-row{margin-top:30px}
@media (max-width:1180px){
  .svc-grid > *{flex-basis:calc((100% - 2 * 14px) / 3)}
  .svc-steps{grid-template-columns:repeat(3,minmax(0,1fr))}
  .svc-steps[data-step-count="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .svc-grid > *{flex-basis:calc((100% - 14px) / 2)}
}
@media (max-width:860px){
  .svc-intro__in,.svc-why{grid-template-columns:1fr}
  .svc-why__img{min-height:0;aspect-ratio:4/3}
}
@media (max-width:560px){
  .svc-grid > *{flex-basis:100%}
}
@media (max-width:640px){
  .svc-steps{grid-template-columns:1fr}
}

/* service page extras — hero form, photo cards, background sections, CTA band */
.rhero__in--split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,4vw,64px);align-items:center}
.rhero--form .rhero__title{max-width:20ch}
.rhero--form .rhero__lede{max-width:52ch}
.rform{position:relative;display:grid;gap:12px;padding:clamp(22px,2.4vw,30px);border-radius:26px;background:rgba(255,255,255,.96);
  box-shadow:0 40px 80px -50px rgba(0,0,0,.8)}
.rform__head{font-family:var(--ff-display);font-weight:400;font-size:clamp(1.4rem,2vw,1.8rem);color:var(--navy-900)}
.rform .field label{font-size:12.5px}
.rform .field input,.rform .field textarea,.rform select{padding:11px 14px;border-radius:12px;font-size:14.5px}
.rform select{width:100%;color:var(--ink);cursor:pointer;border:1px solid var(--line);
  background:var(--paper-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%232A3379' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 14px center/11px;
  -webkit-appearance:none;appearance:none}
.rform .rform__submit{justify-self:start;margin-top:4px;background:var(--green-500);color:#fff}
.rform .rform__submit:hover{background:var(--green-600)}
.rform .cform__done{border-radius:26px}
.svc-card__img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:18px}
.svc-card--plain{padding:clamp(20px,2.2vw,28px)}
.svc-card--plain h3{margin:14px 0 8px;font-size:clamp(1.15rem,1.5vw,1.35rem)}
.svc-card--plain p{font-size:14.5px;line-height:1.6;color:var(--ink-soft)}
.svc-card__list{display:grid;gap:7px;margin-top:10px;list-style:none;padding:0}
.svc-card__list li{position:relative;padding-left:16px;font-size:14px;line-height:1.5;color:var(--ink-soft)}
.svc-card__list li::before{content:"";position:absolute;left:0;top:.55em;width:5px;height:5px;border-radius:50%;background:var(--green-500)}
.svc-ticks--row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:clamp(26px,3vw,40px)}
@media (max-width:980px){.svc-ticks--row{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.svc-ticks--row{grid-template-columns:1fr}}
.svc-card:hover .svc-card__img{filter:saturate(1.05)}
.svc-steps-sec{position:relative;overflow:hidden;isolation:isolate;color:#fff}
.svc-bg{position:absolute;inset:0;z-index:-1}
.svc-bg img{width:100%;height:100%;object-fit:cover}
.svc-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,21,58,.92),rgba(17,21,58,.86))}
.svc-steps-sec .h2{color:#fff}
.svc-steps-sec .svc-steps li{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.18)}
.svc-steps-sec .svc-steps h3{color:#fff}
.svc-steps-sec .svc-steps p{color:rgba(255,255,255,.75)}
.svc-steps-sec .svc-steps li:hover{background:#fff}
.svc-steps-sec .svc-steps li:hover h3{color:var(--navy-900)}
.svc-steps-sec .svc-steps li:hover p{color:var(--ink-soft)}
.svc-steps-sec .svc-steps li:hover span{color:var(--navy-300)}
/* live icons — line icons that draw themselves in, used beside short claims */
.lic{display:grid;place-items:center;flex:none;width:54px;height:54px;border-radius:16px;
  background:linear-gradient(160deg,var(--green-50),#fff);border:1px solid rgba(82,176,79,.28);
  color:var(--navy-700)}
.lic svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:2.1;
  stroke-linecap:round;stroke-linejoin:round}
.lic__draw,.lic__tick,.lic__beat{stroke-dasharray:var(--len,160);stroke-dashoffset:var(--len,160);
  animation:licDraw 1.4s var(--ease) forwards}
.lic__draw{--len:150}
.lic__tick{--len:30;animation-delay:.5s;stroke:var(--green-600)}
.lic__beat{--len:46;animation-delay:.45s;stroke:var(--green-600)}
.lic__arrow{stroke:var(--green-600);animation:licBob 2.6s var(--ease) infinite .9s}
.lic--pulse .lic__beat{animation:licDraw 1.1s var(--ease) forwards .4s,licTrace 3.4s linear infinite 1.6s}
@keyframes licDraw{to{stroke-dashoffset:0}}
@keyframes licBob{0%,100%{transform:translateY(0)}50%{transform:translateY(2.5px)}}
@keyframes licTrace{0%{opacity:1}45%{opacity:.35}100%{opacity:1}}
@media (prefers-reduced-motion:reduce){
  .lic__draw,.lic__tick,.lic__beat{stroke-dashoffset:0;animation:none}
  .lic__arrow{animation:none}
}
/* the claim rows keep their icon at the top of the text */
.svc-ticks--row li{align-items:flex-start}
.svc-ticks--row .lic{margin-top:2px}
/* icon points presented as cards, for sections that would otherwise read flat */
.svc-ticks--cards{display:flex;flex-wrap:wrap;justify-content:center;gap:18px}
.svc-ticks--cards > li{flex:0 1 calc((100% - 3 * 18px) / 4)}
@media (max-width:980px){.svc-ticks--cards > li{flex:0 1 calc((100% - 18px) / 2)}}
@media (max-width:600px){.svc-ticks--cards > li{flex:1 1 100%}}
.svc-ticks--cards li{padding:clamp(20px,2vw,26px);border-radius:22px;background:#fff;
  border:1px solid rgba(42,51,121,.08);box-shadow:0 10px 30px rgba(20,27,70,.05);
  flex-direction:column;gap:14px;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.svc-ticks--cards li:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(20,27,70,.1)}
.svc-ticks--cards b{font-size:16px;margin-bottom:6px}
.center-lede{max-width:68ch;margin-inline:auto}

/* soft section grounds so the service pages are not one flat white */
.sec-tint{position:relative;background:linear-gradient(180deg,#F4F6FC 0%,#FBFCFE 70%,#fff 100%)}
.sec-tint--green{position:relative;background:linear-gradient(180deg,#F2F8F2 0%,#FAFCFA 70%,#fff 100%)}
.sec-tint--flip{background:linear-gradient(180deg,#fff 0%,#F7F8FD 40%,#F2F4FB 100%)}
/* a band that keeps its colour the whole way down, for a section that holds a
   white panel: the fading tints leave the lower half looking like a gap */
.sec-band{position:relative;background:linear-gradient(180deg,#E9EDF9 0%,#EFF2FB 55%,#E9EDF9 100%)}
.sec-band > .shell{position:relative;z-index:1}
.sec-band .safe__note{background:#fff}
.sec-dots::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(42,51,121,.12) 1px,transparent 1px);background-size:26px 26px;
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000,transparent 70%);
  mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000,transparent 70%)}
.sec-tint > .shell,.sec-tint--green > .shell,.sec-tint--flip > .shell{position:relative;z-index:1}

/* approach list — editorial rows, deliberately not the service card look */
.appr{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(30px,5vw,80px);align-items:start}
.appr__head{position:sticky;top:calc(var(--nav-h) + 30px)}
.appr__img{margin:26px 0 0;border-radius:24px;overflow:hidden;aspect-ratio:4/3}
.appr__img img{width:100%;height:100%;object-fit:cover}
.appr__list{list-style:none;padding:0;margin:0;counter-reset:a}
.appr__list li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(16px,2vw,28px);
  padding:clamp(20px,2.4vw,28px) 0;border-top:1px solid var(--line-soft)}
.appr__list li:first-child{border-top:0;padding-top:0}
.appr__n{font-family:var(--ff-display);font-size:clamp(1.6rem,2.4vw,2.2rem);line-height:1;color:var(--navy-200)}
.appr__list h3{font-family:var(--ff-display);font-weight:400;font-size:clamp(1.25rem,1.8vw,1.55rem);
  line-height:1.15;color:var(--navy-900)}
.appr__list p{margin-top:8px;font-size:15px;line-height:1.7;color:var(--ink-soft);max-width:60ch}
.appr__list li:hover .appr__n{color:var(--green-500)}
/* the list and its closing line share the right column, so the line follows
   the last item instead of being pushed to the foot of the row */
.appr__body{grid-column:2}
.appr__note{margin:22px 0 0;font-size:14.5px;line-height:1.7;color:var(--ink-soft);max-width:60ch}
/* a short list leaves the picture floating, so it fills its column instead */
.appr__head{display:flex;flex-direction:column;align-self:stretch}
.appr__img{flex:1 1 auto;min-height:260px}
.appr__img img{height:100%}
@media (max-width:980px){
  .appr{grid-template-columns:1fr}
  .appr__head{position:static;display:block}
  .appr__img{aspect-ratio:16/9;min-height:0}
  .appr__body{grid-column:1}
}

/* related services rail — compact cards that scroll sideways */
.svc-more__head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;
  margin-bottom:clamp(24px,3vw,38px)}
.srail{overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;-ms-overflow-style:none;
  /* the rail keeps the shell's left edge so the first card lines up with the heading */
  margin-right:calc(var(--gutter) * -1);padding-right:var(--gutter)}
.srail::-webkit-scrollbar{display:none}
.srail__track{display:flex;gap:14px;width:max-content;padding-block:4px}
.scard{scroll-snap-align:start;display:grid;gap:12px;width:clamp(150px,16vw,196px);
  transition:transform .4s var(--ease)}
.scard__img{display:block;overflow:hidden;border-radius:18px;aspect-ratio:4/3.2;background:var(--paper-3)}
.scard__img img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.scard__name{font-size:14.5px;font-weight:600;line-height:1.35;color:var(--navy-800)}
.scard:hover{transform:translateY(-4px)}
.scard:hover .scard__img img{transform:scale(1.06)}
.srail__ctrl{display:flex;gap:8px}
.srail__btn{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;cursor:pointer;
  background:#fff;border:1px solid var(--line);color:var(--navy-700);
  transition:background .3s var(--ease),color .3s var(--ease),opacity .3s var(--ease)}
.srail__btn svg{width:15px;height:15px}
.srail__btn:hover{background:var(--navy-600);color:#fff;border-color:transparent}
.srail__btn[disabled]{opacity:.35;cursor:default}
.srail__btn[disabled]:hover{background:#fff;color:var(--navy-700);border-color:var(--line)}

/* emergency notice — dark band with a pulsing alert and the symptoms as chips */
.er{position:relative;overflow:hidden;background:var(--navy-900);color:#fff;
  padding-block:clamp(54px,6.5vw,86px)}
.er::before{content:"";position:absolute;inset:0;opacity:.5;
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 2px,transparent 2px 14px)}
.er__in{position:relative;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  gap:clamp(26px,4vw,64px);align-items:center}
.er__glow{position:absolute;left:-10%;top:50%;width:420px;height:420px;translate:0 -50%;border-radius:50%;
  background:radial-gradient(circle,rgba(82,176,79,.35),transparent 65%);filter:blur(10px);pointer-events:none}
.er__num{position:absolute;right:-.06em;top:50%;translate:0 -50%;margin:0;font-family:var(--ff-display);
  font-size:clamp(9rem,17vw,16rem);line-height:.8;letter-spacing:-.04em;color:transparent;
  -webkit-text-stroke:1.5px rgba(255,255,255,.12);pointer-events:none}
.er__copy{position:relative}
.er__ico{position:relative;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;
  background:rgba(82,176,79,.16);color:var(--green-400)}
.er__ico svg{width:24px;height:24px}
.er__ico::after{content:"";position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--green-400);
  animation:erPulse 2.6s ease-out infinite}
@keyframes erPulse{0%{transform:scale(1);opacity:.7}70%{transform:scale(1.45);opacity:0}100%{opacity:0}}
.er__title{margin:22px 0 14px;font-family:var(--ff-display);font-weight:400;font-size:clamp(1.9rem,3.2vw,2.9rem);
  line-height:1.08;letter-spacing:-.02em;color:#fff}
.er__lead{font-size:16px;line-height:1.7;color:rgba(255,255,255,.78);max-width:46ch}
.er__lead + .er__lead{margin-top:14px}
.er__list{position:relative;display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0}
.er__list li{padding:11px 18px;border-radius:999px;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.2);font-size:14.5px;line-height:1.3;color:#fff;
  transition:background .4s var(--ease),border-color .4s var(--ease),transform .4s var(--ease)}
.er__list li:hover{background:rgba(82,176,79,.18);border-color:var(--green-400);transform:translateY(-2px)}
/* the alert band without a pill list: the closing line becomes a callout so
   the second column is not left empty */
.er__note{position:relative;align-self:center;display:grid;gap:16px;
  padding:clamp(24px,2.6vw,34px);border-radius:26px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14)}
.er__note p{margin:0;font-size:17px;line-height:1.7;color:rgba(255,255,255,.88)}
.er__note-ico{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;
  background:rgba(82,176,79,.18);color:var(--green-400)}
.er__note-ico svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round}
@media (max-width:860px){.er__note{align-self:stretch}}
@media (max-width:860px){
  .er__in{grid-template-columns:1fr}
  .er__num{top:auto;bottom:-.1em;right:-.04em;translate:0;font-size:clamp(7rem,24vw,11rem)}
}
@media (prefers-reduced-motion:reduce){.er__ico::after{animation:none}}

.svc-cta{position:relative;overflow:hidden;display:grid;place-items:center;min-height:min(70vh,620px);
  text-align:center;color:#fff;background:var(--navy-900)}
.svc-cta__media{position:absolute;inset:0;z-index:0}
.svc-cta__media img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.svc-cta::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(17,21,58,.6),rgba(17,21,58,.82))}
.svc-cta__in{position:relative;z-index:2;padding-block:clamp(70px,9vw,120px)}
.svc-cta__title{font-family:var(--ff-display);font-weight:400;font-size:clamp(2.1rem,3.8vw,3.4rem);line-height:1.08;
  letter-spacing:-.02em;color:#fff;max-width:22ch;margin-inline:auto}
.svc-cta__lede{max-width:62ch;margin:20px auto 0;font-size:16.5px;line-height:1.7;color:rgba(255,255,255,.85)}
.svc-cta .btn-row{margin-top:30px}
.rform-slot{background:linear-gradient(180deg,#fff,#F4F6FC)}
.rform-slot .rform{box-shadow:0 30px 60px -45px rgba(17,21,58,.5);border:1px solid var(--line)}
@media (max-width:980px){
  .rhero__in--split{grid-template-columns:1fr}
}

/* ==========================================================================
   MOBILE BAR — fixed quick links along the bottom on phones
   ========================================================================== */
.mbar{display:none}
@media (max-width:760px){
  .mbar{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:80;
    display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:4px;padding:6px;border-radius:20px;
    background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
    border:1px solid var(--line);box-shadow:0 18px 40px -18px rgba(17,21,58,.45)}
  .mbar__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:52px;
    border-radius:14px;font-size:11.5px;font-weight:600;color:var(--navy-800);transition:background .3s var(--ease)}
  .mbar__item svg{width:20px;height:20px;color:var(--navy-600)}
  .mbar__item:active{background:var(--navy-50)}
  .mbar__item--book{flex-direction:row;gap:8px;background:var(--navy-600);color:#fff;font-size:14px}
  .mbar__item--book svg{color:#fff}
  .mbar__item--book:active{background:var(--navy-800)}
  /* keep the end of the page clear of the bar */
  body{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
}

/* ==========================================================================
   SERVICE HERO — full-bleed photo, copy on a navy fade (weight loss, hormone)
   ========================================================================== */
.rhero{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;
  min-height:min(calc(100svh - var(--nav-h)),860px);background:var(--navy-900);color:#fff}
.rhero__media{position:absolute;inset:-6% 0;z-index:-2;will-change:transform}
.rhero__media img{width:100%;height:100%;object-fit:cover;object-position:65% 40%;transform:scale(var(--z,1))}
.rhero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(17,21,58,.94) 0%,rgba(17,21,58,.8) 32%,rgba(17,21,58,.35) 62%,rgba(17,21,58,.12)),
    linear-gradient(0deg,rgba(17,21,58,.45),transparent 40%)}
.rhero__in{position:relative;width:100%;padding-block:clamp(70px,9vw,120px)}
.rhero__eyebrow{display:flex;align-items:center;gap:14px;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.78)}
.rhero__eyebrow i{width:34px;height:1px;background:var(--green-400)}
.rhero__title{max-width:14ch;margin:24px 0 26px;font-family:var(--ff-display);font-weight:400;font-size:clamp(2.8rem,5.6vw,5.2rem);
  line-height:1.02;letter-spacing:-.03em;color:#fff}
.rhero__title--long{max-width:22ch;font-size:clamp(2.4rem,4.2vw,3.9rem)}
@media (max-width:620px){.rhero__title--long{max-width:none;font-size:clamp(1.85rem,7.4vw,2.4rem)}}
.rhero__line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.rhero__line > *{display:inline-block}
.rhero__lede{max-width:44ch;font-size:clamp(16px,1.25vw,18px);line-height:1.7;color:rgba(255,255,255,.8)}
.rhero__acts{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px;margin-top:36px}
.rbtn{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border-radius:999px;background:#fff;color:var(--navy-900);
  font-size:14.5px;font-weight:600;line-height:1;transition:background .4s var(--ease),color .4s var(--ease),transform .4s var(--ease)}
.rbtn svg{width:15px;height:15px;transition:transform .4s var(--ease)}
.rbtn:hover{background:var(--navy-50);transform:translateY(-2px)}
.rbtn--line{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4)}
.rbtn--line:hover{background:rgba(255,255,255,.1);border-color:#fff}
.rbtn--line:hover svg{transform:translateX(4px)}
.rhero__call{display:grid;justify-items:start;gap:8px}
.rhero__call small{font-size:12.5px;font-style:italic;color:rgba(255,255,255,.62)}
.rhero__proof{display:flex;align-items:center;gap:16px;margin-top:44px}
.rhero__faces{display:flex}
.rhero__faces img{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid var(--navy-900);margin-left:-12px;background:var(--navy-700)}
.rhero__faces img:first-child{margin-left:0}
.rhero__proof b{display:block;font-size:14px;font-weight:600;letter-spacing:.02em}
/* service pages carry longer titles, so the type steps down a little */
.rhero--svc .rhero__in{padding-block:clamp(52px,6.5vw,84px)}
.rhero--svc .rhero__title{max-width:24ch;font-size:clamp(2.3rem,3.9vw,3.6rem)}
.rhero--svc .rhero__lede{max-width:60ch;font-size:16px;line-height:1.65}
.rhero__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:34px;list-style:none;padding:0}
.rhero__tags li{padding:9px 16px;border-radius:999px;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.26);font-size:13.5px;font-weight:600;color:#fff}
.rhero__proof small{font-size:13px;color:rgba(255,255,255,.65)}

.rhero__media--flip img{transform:scale(calc(var(--z,1) * -1),var(--z,1))}
.rhero__price{display:flex;align-items:center;gap:10px;margin:0}
.rhero__price b{font-family:var(--ff-display);font-weight:400;font-size:34px;line-height:1}
.rhero__price span{font-size:12.5px;line-height:1.35;color:rgba(255,255,255,.7)}
@media (max-width:640px){
  .rhero::before{background:linear-gradient(180deg,rgba(17,21,58,.55),rgba(17,21,58,.88) 55%,rgba(17,21,58,.95))}
  .rhero__call{justify-items:start}
}

/* ==========================================================================
   WEIGHT LOSS — editorial studio layout in the Alamo brand
   Fraunces display with italic navy accents, Inter body and letter-spaced
   labels, logo navy as the primary colour and logo green as a small accent,
   on a cool, lightly grained ground. Everything is scoped to .well.
   ========================================================================== */
.well{--wp:#F3F4F9;--wp2:#E7E9F3;--wink:var(--navy-900);--wsage:var(--navy-600);--wsage-d:var(--navy-700);
  --wacc:var(--navy-500);--wgreen:var(--green-500);--wsoft:var(--ink-soft);--wline:rgba(42,51,121,.13);
  --wserif:var(--ff-display);--wsans:var(--ff-sans);--wmono:var(--ff-sans);
  position:relative;background:#fff;color:var(--wink);font-family:var(--wsans)}
.well em{font-style:italic;color:var(--wacc)}

/* paper grain on the paper-coloured grounds */
.wl-sec--paper{background-color:var(--wp);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .16 0 0 0 0 .2 0 0 0 0 .47 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E")}

.wl-kicker{display:flex;align-items:center;gap:10px;font-family:var(--wmono);font-size:11.5px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--wsoft)}
.wl-kicker i{width:6px;height:6px;border-radius:50%;background:var(--wgreen)}
.wl-kicker--light{color:rgba(243,244,249,.8)}
.wl-kicker--light i{background:var(--green-400)}
.wl-h2{margin-top:18px;font-family:var(--wserif);font-weight:400;font-size:clamp(2.3rem,4.4vw,4.1rem);
  line-height:1.02;letter-spacing:-.028em;color:var(--wink);text-wrap:balance}
.wl-h2 em{position:relative;display:inline-block}
.wl-h2 em::after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:1px;background:currentColor;
  transform-origin:left;transform:scaleX(var(--u,1))}
.wl-body{font-size:clamp(15.5px,1.15vw,17px);line-height:1.7;color:var(--wsoft);max-width:52ch}
.wl-sec{position:relative;padding-block:clamp(80px,10vw,150px)}
/* two paper sections in a row read as one band, so only keep one gap */
.wl-sec--paper + .wl-sec--paper{padding-top:0}
.wl-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:clamp(36px,4.6vw,64px)}

.wl-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border-radius:999px;line-height:1;
  background:var(--wsage);color:#fff;font-size:14.5px;font-weight:600;
  box-shadow:0 18px 34px -18px rgba(33,41,105,.55);
  transition:background .4s var(--ease),transform .4s var(--ease),box-shadow .4s var(--ease)}
.wl-btn svg{width:15px;height:15px;transition:transform .4s var(--ease)}
.wl-btn:hover{background:var(--wsage-d);transform:translateY(-2px)}
.wl-btn:hover svg{transform:translateX(4px)}
.wl-btn--line{background:transparent;color:var(--wink);box-shadow:none;border:1px solid rgba(17,21,58,.28)}
.wl-btn--line:hover{background:rgba(255,255,255,.6);border-color:var(--wink)}
.wl-btn--paper{background:var(--wp);color:var(--wink);box-shadow:none}
.wl-btn--paper:hover{background:#fff}
.wl-link{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:500;color:var(--wink)}
.wl-link svg{width:14px;height:14px;transition:transform .4s var(--ease)}
.wl-link:hover svg{transform:translateX(5px)}

/* marquee */
.wl-marq{position:relative;z-index:2;margin-top:-1px;padding-block:18px;overflow:hidden;background:var(--wp2);
  border-radius:28px 28px 0 0;border-bottom:1px solid var(--wline)}
.wl-marq .tmarq__track{display:flex;align-items:center;gap:34px;width:max-content}
.wl-marq span{font-family:var(--wmono);font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--wink);white-space:nowrap}
.wl-marq i{width:5px;height:5px;border-radius:50%;background:var(--wgreen)}

/* program split */
.wl-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(40px,7vw,120px);align-items:center}
.wl-split .wl-body{margin-top:26px}
.wl-stats{display:flex;flex-wrap:wrap;gap:clamp(24px,4vw,60px);margin:36px 0 34px;padding-top:30px;border-top:1px solid var(--wline)}
.wl-stats dt{font-family:var(--wserif);font-size:clamp(2.6rem,4vw,3.6rem);line-height:1;color:var(--wink)}
.wl-stats dd{margin:8px 0 0;font-family:var(--wmono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--wsoft)}
.wl-arch{position:relative;margin:0;border-radius:999px 999px 26px 26px;overflow:hidden;aspect-ratio:4/5.2;background:var(--wp2)}
.wl-arch img{width:100%;height:100%;object-fit:cover;transform:scale(calc(var(--s,1) * var(--h,1)))}
[data-wl-img]{--h:1}
[data-wl-img] img{transition:filter .6s var(--ease)}
[data-wl-img]:hover img{filter:saturate(1.08) brightness(1.02)}
.wl-arch figcaption{position:absolute;left:18px;bottom:18px;padding:8px 14px;border-radius:999px;
  background:rgba(243,244,249,.86);font-family:var(--wmono);font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--wink)}

/* medication board */
.wl-board{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(36px,6vw,100px);align-items:start}
.wl-board .wl-body{margin-top:24px}
.wl-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}
.wl-chips button{padding:12px 20px;border-radius:999px;border:1px solid rgba(17,21,58,.2);background:transparent;
  font-family:var(--wmono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--wink);
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease)}
.wl-chips button:hover{border-color:var(--wink)}
.wl-chips button[aria-selected="true"]{background:var(--wink);border-color:var(--wink);color:var(--wp)}
.wl-board__rows{border-top:1px solid var(--wline)}
.wl-panel[hidden]{display:none}
.wl-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:24px;padding:24px 4px;border-bottom:1px solid var(--wline);
  transition:background .35s var(--ease)}
.wl-row:hover{background:rgba(255,255,255,.45)}
.wl-row > b{font-family:var(--wserif);font-weight:400;font-size:clamp(1.6rem,2.4vw,2.1rem);line-height:1;color:var(--wink)}
.wl-row h3{font-family:var(--wsans);font-weight:600;font-size:17px;color:var(--wink)}
.wl-row p{margin-top:4px;font-family:var(--wmono);font-size:12.5px;line-height:1.6;color:var(--wsoft)}
.wl-note{margin-top:22px;font-size:13.5px;line-height:1.65;color:var(--wsoft)}

/* green offer band */
.wl-offer{position:relative;overflow:hidden;padding-block:clamp(90px,11vw,160px);background:var(--wsage);color:var(--wp)}
.wl-offer__in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(40px,6vw,100px);align-items:center}
.wl-offer__title{margin:20px 0 22px;font-family:var(--wserif);font-weight:400;font-size:clamp(2.8rem,5.8vw,5.4rem);
  line-height:.96;letter-spacing:-.02em;color:var(--wp)}
.wl-offer__title em{color:var(--green-200)}
.wl-offer__body{max-width:46ch;font-size:17px;line-height:1.7;color:rgba(243,244,249,.86)}
.wl-ticks{display:grid;gap:12px;margin:28px 0 34px}
.wl-ticks li{display:flex;align-items:center;gap:12px;font-size:15.5px;color:var(--wp)}
.wl-ticks svg{flex:none;width:22px;height:22px;padding:4px;border-radius:50%;background:var(--wgreen);color:#fff}
.wl-offer__acts{display:flex;flex-wrap:wrap;align-items:center;gap:16px 26px}
.wl-offer__acts span{font-family:var(--wmono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(243,244,249,.75)}
.wl-offer__img{margin:0;border-radius:26px;overflow:hidden;aspect-ratio:4/4.6}
.wl-offer__img img{width:100%;height:100%;object-fit:cover;transform:scale(calc(var(--s,1) * var(--h,1)))}
[data-wl-letters] .wl-ch{display:inline-block;will-change:transform,opacity}

/* sticky scroll */
.wl-sticky{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(36px,6vw,100px)}
.wl-sticky__list{list-style:none;padding:0;margin:0}
.wl-step{min-height:min(62vh,560px);display:flex;flex-direction:column;justify-content:center;opacity:.3;transition:opacity .6s var(--ease)}
.wl-step.is-on{opacity:1}
.wl-step small{font-family:var(--wmono);font-size:12.5px;letter-spacing:.18em;color:var(--wsoft)}
.wl-step h3{margin:14px 0 14px;font-family:var(--wserif);font-weight:400;font-size:clamp(2.2rem,4vw,3.6rem);line-height:1;color:var(--wink)}
.wl-step p{max-width:40ch;font-size:16px;line-height:1.7;color:var(--wsoft)}
.wl-sticky__media{position:relative}
.wl-sticky__frame{position:sticky;top:calc(var(--nav-h) + 40px);margin:0;height:min(70vh,640px);border-radius:28px;overflow:hidden;background:var(--wp2)}
.wl-sticky__frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);
  transition:opacity .8s var(--ease),transform 1.4s var(--ease)}
.wl-sticky__frame img.is-on{opacity:1;transform:none}
.wl-sticky__frame figcaption{position:absolute;left:18px;bottom:18px;padding:8px 14px;border-radius:999px;
  background:rgba(17,21,58,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  font-family:var(--wmono);font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--wp)}
.wl-steps4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;list-style:none;padding:0;margin:clamp(60px,8vw,110px) 0 0}
.wl-steps4--five{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:clamp(28px,3.4vw,46px)}
.wl-steps4--six{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:clamp(28px,3.4vw,46px)}
.wl-steps4--six li:nth-child(even){margin-top:0}
.wl-steps4--six li:nth-child(3n+2){margin-top:34px}
.wl-steps4 a{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.wl-steps4 a:hover{color:var(--wgreen)}
.wl-step__note{margin-top:12px;font-family:var(--wmono);font-size:12.5px;letter-spacing:.02em;color:var(--wink);opacity:.75}
.wl-step__link{display:inline-block;margin-top:10px;font-weight:600;text-decoration:none!important}
.wl-ticks--ink li{color:var(--wink)}
.wl-facts{display:grid;gap:14px;margin:30px 0 6px;list-style:none;padding:0}
.wl-facts li{display:flex;gap:14px;align-items:flex-start;font-size:15.5px;line-height:1.6;color:var(--wsoft)}
.wl-facts svg{flex:none;width:30px;height:30px;padding:7px;border-radius:50%;
  background:rgba(82,176,79,.14);color:var(--green-700)}
.wl-board__acts{margin-top:26px}
#first-90 .wl-row{grid-template-columns:minmax(150px,auto) minmax(0,1fr);align-items:baseline}
#first-90 .wl-row > b{font-size:clamp(1.4rem,2vw,1.8rem);white-space:nowrap}
.wl-row--head{padding-block:14px}
#first-90 .wl-row--head > b,.wl-row--head > b,.wl-row--head h3{font-family:var(--wmono);font-size:11.5px;
  font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--wsoft);line-height:1.4}
.wl-head--mid{margin-top:clamp(60px,8vw,110px)}
.wl-wins{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:26px;list-style:none;padding:0}
.wl-wins li{display:flex;align-items:center;gap:9px;padding:9px 15px;border-radius:999px;background:#fff;
  border:1px solid var(--wline);font-size:14px;font-weight:600;color:var(--wink)}
.wl-wins svg{width:17px;height:17px;color:var(--wgreen)}
.wl-labs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:clamp(30px,4vw,54px)}
.wl-lab{padding:clamp(24px,2.6vw,34px);border-radius:26px;background:#fff;border:1px solid var(--wline)}
.wl-lab h3{font-family:var(--wserif);font-weight:400;font-size:clamp(1.4rem,2vw,1.85rem);line-height:1.1;color:var(--wink)}
.wl-lab > p{margin-top:12px;font-size:14.5px;line-height:1.6;color:var(--wsoft)}
.wl-lab__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;list-style:none;padding:0}
.wl-lab__tags li{padding:8px 14px;border-radius:999px;background:var(--wp2);font-size:13.5px;font-weight:600;color:var(--wacc)}
.wl-lab__checks{display:grid;gap:10px;margin-top:16px;list-style:none;padding:0}
.wl-lab--wide .wl-lab__checks{grid-template-columns:1fr 1fr}
.wl-lab__checks li{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;line-height:1.45;color:var(--wink)}
.wl-lab__checks svg{flex:none;width:19px;height:19px;margin-top:1px;padding:4px;border-radius:50%;
  background:var(--green-50);color:var(--green-700)}
.wl-lab--wide{grid-column:span 2}
.wl-lab--pay{grid-column:span 3;display:grid;gap:8px}
.wl-lab--pay .wl-lab__checks{grid-template-columns:repeat(3,minmax(0,1fr))}
.wl-lab--pay .wl-link{margin-top:6px;justify-self:start}
.wl-steps4 li{position:relative;overflow:hidden;isolation:isolate;padding:28px 26px 30px;border-radius:24px;
  background:#fff;border:1px solid var(--wline);
  transition:transform .6s var(--ease),box-shadow .6s var(--ease),border-color .6s var(--ease)}
.wl-steps4 li:nth-child(even){margin-top:34px}
/* navy fill that rises from the bottom, with a soft light that follows the pointer */
.wl-steps4 li::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,100%),rgba(255,255,255,.14),transparent 60%),var(--wink);
  clip-path:inset(100% 0 0 0 round 24px);transition:clip-path .7s var(--ease)}
/* oversized step number sitting in the corner */
.wl-steps4 li::after{content:counter(list-item,decimal-leading-zero);position:absolute;right:18px;bottom:-22px;z-index:-1;
  font-family:var(--wserif);font-size:120px;line-height:1;color:rgba(255,255,255,.08);
  transform:translateY(40%);opacity:0;transition:transform .8s var(--ease),opacity .6s var(--ease)}
.wl-steps4 span{position:relative;display:inline-flex;align-items:center;gap:8px;font-family:var(--wmono);font-size:12.5px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--wsage);transition:color .5s var(--ease)}
.wl-steps4 span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--wgreen);
  transform:scale(0);margin-right:-14px;transition:transform .5s var(--ease),margin .5s var(--ease)}
.wl-steps4 h3{margin:40px 0 10px;font-family:var(--wserif);font-weight:400;font-size:28px;line-height:1.05;color:var(--wink);
  transition:color .5s var(--ease),transform .6s var(--ease)}
.wl-steps4 p{font-size:14.5px;line-height:1.6;color:var(--wsoft);transition:color .5s var(--ease)}
@media (hover:hover){
  .wl-steps4 li:hover{transform:translateY(-10px);border-color:transparent;box-shadow:0 40px 70px -40px rgba(17,21,58,.65)}
  .wl-steps4 li:hover::before{clip-path:inset(0 0 0 0 round 24px)}
  .wl-steps4 li:hover::after{transform:none;opacity:1}
  .wl-steps4 li:hover span{color:rgba(255,255,255,.7)}
  .wl-steps4 li:hover span::before{transform:scale(1);margin-right:0}
  .wl-steps4 li:hover h3{color:#fff;transform:translateX(4px)}
  .wl-steps4 li:hover p{color:rgba(255,255,255,.78)}
}

/* InBody "space" */
.wl-space__head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:30px;align-items:end;margin-bottom:clamp(36px,4.4vw,60px)}
.wl-space{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:18px;align-items:stretch}
.wl-space__big{position:relative;margin:0;border-radius:28px;overflow:hidden;aspect-ratio:4/3;min-height:0;background:var(--wp2)}
.wl-space__big img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 72%;transform:scale(calc(var(--s,1) * var(--h,1)))}
.wl-report{margin:0;padding:clamp(24px,2.6vw,36px);border-radius:28px;background:var(--wp);border:1px solid var(--wline);
  transition:transform .6s var(--ease),box-shadow .6s var(--ease);
  display:flex;flex-direction:column;gap:18px}
.wl-report:hover{transform:translateY(-6px);box-shadow:0 40px 70px -46px rgba(17,21,58,.5)}
.wl-report figcaption small{display:block;font-family:var(--wmono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--wsoft)}
.wl-report figcaption b{display:block;margin-top:8px;font-family:var(--wserif);font-weight:400;font-size:32px;line-height:1;color:var(--wink)}
.wl-report__row{display:grid;grid-template-columns:1fr 44px;gap:8px 12px;align-items:baseline}
.wl-report__row span{font-size:14px;color:var(--wink)}
.wl-report__row i{grid-column:1 / -1;grid-row:2;position:relative;height:6px;border-radius:6px;background:rgba(17,21,58,.08);overflow:hidden}
.wl-report__row em{position:absolute;inset:0 auto 0 0;width:var(--w,0%);border-radius:6px;background:var(--wsage)}
.wl-report__row b{grid-column:2;grid-row:1;text-align:right;font-family:var(--wmono);font-weight:400;font-size:12.5px;color:var(--wink)}
.wl-report__list{display:grid;gap:8px;margin-top:auto;padding-top:18px;border-top:1px dashed var(--wline)}
.wl-report__list li{position:relative;padding-left:16px;font-size:13.5px;color:var(--wsoft)}
.wl-report__list li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--wgreen)}

/* FAQ */
.wl-faq{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(36px,6vw,100px);align-items:center}
.wl-faq .wl-body{margin:22px 0 28px}
.wl-faq__list{border-top:1px solid var(--wline)}
.wl-q{border-bottom:1px solid var(--wline)}
.wl-q summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:26px 4px;font-family:var(--wserif);font-size:clamp(1.35rem,2vw,1.75rem);line-height:1.2;color:var(--wink)}
.wl-q summary::-webkit-details-marker{display:none}
.wl-q summary::after{content:"+";flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;
  border:1px solid rgba(17,21,58,.2);font-family:var(--wsans);font-size:20px;line-height:1;transition:transform .5s var(--ease),background .35s,color .35s}
.wl-q[open] summary::after{transform:rotate(45deg);background:var(--wsage);border-color:var(--wsage);color:#fff}
.wl-q summary:hover::after{border-color:var(--wsage)}
.wl-q__body{overflow:hidden}
.wl-q p{padding:0 60px 26px 4px;font-size:15.5px;line-height:1.7;color:var(--wsoft)}

/* closing card */
/* full-bleed closing band; the photo sits in a taller frame so it can drift on scroll */
.wl-end{position:relative;overflow:hidden;display:grid;place-items:center;min-height:min(86vh,760px);
  text-align:center;color:#fff;background:var(--wink)}
.wl-end__media{position:absolute;inset:-18% 0;will-change:transform}
.wl-end__media img{width:100%;height:100%;object-fit:cover;object-position:60% 30%}
.wl-end::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(17,21,58,.5),rgba(17,21,58,.72) 60%,rgba(17,21,58,.82))}
.wl-end__in{position:relative;z-index:2;padding-block:clamp(90px,11vw,150px)}
.wl-end .wl-kicker{justify-content:center}
.wl-end__title{margin:18px 0 0;font-family:var(--wserif);font-weight:400;font-size:clamp(2.8rem,6.6vw,6.2rem);line-height:.95;letter-spacing:-.03em;color:#fff}
.wl-end__title em{display:block;color:#fff}
.wl-end__lede{max-width:48ch;margin:24px auto 32px;font-size:17px;line-height:1.7;color:rgba(255,255,255,.85)}
.wl-end__acts{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.wl-btn--ghost{background:transparent;color:#fff;box-shadow:none;border:1px solid rgba(255,255,255,.45)}
.wl-btn--ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}
.wl-end__meta{margin:30px 0 0;font-family:var(--wmono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6)}

@media (max-width:1080px){
  .wl-steps4,.wl-steps4--five{grid-template-columns:1fr 1fr}
  .wl-labs{grid-template-columns:1fr}
  .wl-lab--wide,.wl-lab--pay{grid-column:auto}
  .wl-lab--pay .wl-lab__checks{grid-template-columns:1fr}
  .wl-steps4 li:nth-child(even){margin-top:0}
}
@media (max-width:900px){
  .wl-split,.wl-board,.wl-offer__in,.wl-faq,.wl-space,.wl-space__head{grid-template-columns:1fr}
  .wl-arch{max-width:460px;aspect-ratio:4/4.6}
  .wl-sticky{grid-template-columns:1fr}
  .wl-sticky__media{display:none}
  .wl-step{min-height:0;opacity:1;padding:26px 0;border-top:1px solid var(--wline)}
  .wl-space__big{aspect-ratio:4/3.4}
}
@media (max-width:640px){
  .wl-steps4,.wl-steps4--five{grid-template-columns:1fr}
  .wl-lab--wide .wl-lab__checks{grid-template-columns:1fr}
  .wl-row{grid-template-columns:1fr;gap:6px}
  .wl-q p{padding-right:0}
}

/* ==========================================================================
   HORMONE REPLACEMENT — calm editorial layout in the Alamo brand
   A pinned photo hero whose headline resolves out of blur as you scroll,
   stacking service cards, numbered steps and a two-column FAQ.
   Fraunces + Inter, logo navy primary, logo green as a small accent.
   ========================================================================== */
.calm{--cm-bg:#fff;--cm-tint:#F5F6FA;--cm-ink:var(--navy-900);--cm-body:var(--ink-soft);--cm-pri:var(--navy-600);
  --cm-acc:var(--navy-500);--cm-line:rgba(42,51,121,.14);background:var(--cm-bg);color:var(--cm-ink)}
.calm em{font-style:italic;color:var(--cm-acc)}
.cm-sec{position:relative;padding-block:clamp(80px,10vw,150px)}
.cm-sec--tint{background:var(--cm-tint)}
.cm-eyebrow{font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--cm-pri)}
.cm-eyebrow--light{color:rgba(255,255,255,.8)}
.cm-h2{margin-top:14px;font-family:var(--ff-display);font-weight:400;font-size:clamp(2.3rem,4.2vw,3.9rem);
  line-height:1.04;letter-spacing:-.025em;color:var(--cm-ink)}
.cm-h2 em,.cm-cta__title em{display:block}
.cm-body{margin-top:20px;font-size:clamp(15.5px,1.12vw,17px);line-height:1.72;color:var(--cm-body);max-width:52ch}
.cm-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:clamp(36px,4.6vw,64px)}
.cm-head--center{justify-content:center;text-align:center}
.cm-head--center .cm-body{margin-inline:auto}
.cm-btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 24px;border-radius:999px;line-height:1;
  background:var(--cm-pri);color:#fff;font-size:14.5px;font-weight:600;
  transition:background .4s var(--ease),transform .4s var(--ease),box-shadow .4s var(--ease)}
.cm-btn:hover{background:var(--navy-700);transform:translateY(-2px);box-shadow:0 18px 30px -18px rgba(17,21,58,.6)}
.cm-btn--light{background:#fff;color:var(--cm-ink)}
.cm-btn--light:hover{background:var(--cm-tint);color:var(--cm-ink)}
.cm-link{position:relative;display:inline-flex;align-items:center;gap:10px;padding-bottom:6px;font-size:15.5px;color:var(--cm-pri)}
.cm-link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;
  transform-origin:right;transition:transform .6s var(--ease)}
.cm-link:hover::after{transform:scaleX(0);transform-origin:left}
.cm-link svg{width:16px;height:16px;transition:transform .5s var(--ease)}
.cm-link:hover svg{transform:translateX(6px)}
.cm-link--light{color:#fff}
.cm-acts{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px;margin-top:32px}
.cm-acts--center{justify-content:center}

/* hero: tall section, the photo panel stays pinned while the words resolve */

/* about */

/* TRT spotlight */
.cm-benefit{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(36px,6vw,100px);align-items:center}
.cm-benefit__img{position:relative;margin:0;border-radius:28px;overflow:hidden;aspect-ratio:4/4.6}
.cm-benefit__img img{width:100%;height:100%;object-fit:cover;object-position:62% 50%;transition:transform 1.4s var(--ease)}
.cm-benefit__img:hover img{transform:scale(1.05)}
.cm-benefit__img figcaption{position:absolute;right:20px;bottom:20px;display:flex;align-items:center;gap:12px;
  padding:14px 20px;border-radius:20px;background:#fff;box-shadow:0 24px 50px -24px rgba(17,21,58,.5)}
.cm-benefit__img b{font-family:var(--ff-display);font-weight:400;font-size:40px;line-height:1;color:var(--cm-ink)}
.cm-benefit__img b i{font-style:normal}
.cm-benefit__img span{font-size:12.5px;line-height:1.35;color:var(--cm-body)}
.cm-benefit--detail{align-items:start}
.cm-benefit--detail .cm-benefit__img{position:sticky;top:calc(var(--nav-h) + 30px)}
.cm-benefit__copy .cm-body + .cm-body{margin-top:14px}
.cm-member{margin-top:30px;padding:clamp(22px,2.6vw,32px);border-radius:24px;background:#fff;box-shadow:0 30px 60px -48px rgba(17,21,58,.5)}
.cm-member__head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:16px;margin-bottom:6px;border-bottom:1px solid var(--line)}
.cm-member__head h3{font-family:var(--ff-display);font-weight:400;font-size:clamp(1.4rem,2vw,1.75rem);color:var(--cm-ink)}
.cm-member__head p{font-size:14px;color:var(--cm-body)}
.cm-member__head b{font-family:var(--ff-display);font-weight:400;font-size:30px;color:var(--cm-pri)}
.cm-incl{list-style:none;padding:0;margin:0}
.cm-incl li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;font-size:15px;line-height:1.55;color:var(--cm-ink);border-bottom:1px solid var(--line-soft)}
.cm-incl li:last-child{border-bottom:0}
.cm-incl svg{flex:none;width:22px;height:22px;margin-top:1px;padding:5px;border-radius:50%;background:var(--green-50);color:var(--green-700)}
.cm-member__note{margin-top:14px;padding:12px 16px;border-radius:14px;background:var(--cm-tint,var(--navy-50));font-size:14px;font-weight:600;color:var(--cm-pri)}

/* Biote steps */
.cm-prep{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(36px,6vw,100px);align-items:start}
.cm-prep__head{position:sticky;top:calc(var(--nav-h) + 40px)}
.cm-prep__img{margin:30px 0 0;border-radius:24px;overflow:hidden;aspect-ratio:16/11}
.cm-prep__img img{width:100%;height:100%;object-fit:cover}
.cm-steps{list-style:none;padding:0;margin:0;border-top:1px solid var(--cm-line)}
.cm-steps li{display:grid;grid-template-columns:clamp(70px,9vw,120px) 1fr;gap:20px;padding:clamp(28px,3.4vw,44px) 0;
  border-bottom:1px solid var(--cm-line);opacity:.35;transition:opacity .6s var(--ease)}
.cm-steps li.is-on{opacity:1}
.cm-steps span{font-family:var(--ff-display);font-size:clamp(2.6rem,4.4vw,4rem);line-height:.9;color:var(--cm-pri)}
.cm-steps h3{font-family:var(--ff-display);font-weight:400;font-size:clamp(1.5rem,2.2vw,2rem);color:var(--cm-ink);margin-bottom:8px}
.cm-steps p{font-size:15.5px;line-height:1.65;color:var(--cm-body);max-width:44ch}

/* symptom checker card */
.cm-check{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);max-width:1100px;margin-inline:auto;
  border-radius:30px;overflow:hidden;background:#fff;box-shadow:0 40px 90px -60px rgba(17,21,58,.5)}
.cm-check__img{position:relative;min-height:320px}
.cm-check__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cm-check__main{padding:clamp(24px,3.4vw,48px)}
.cm-check .hcheck__panel{grid-template-columns:1fr}
.cm-check .hcheck__result{border-top-style:solid}

/* FAQ */
.cm-faq{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(36px,6vw,100px);align-items:start}
.cm-faq .cm-btn{margin-top:30px}
.cm-faq__list{display:grid;gap:12px}
.cm-q{border-radius:20px;background:var(--cm-tint);transition:background .4s var(--ease)}
.cm-q[open]{background:#fff;box-shadow:0 0 0 1px var(--cm-line),0 30px 60px -44px rgba(17,21,58,.45)}
.cm-q summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:24px 26px;font-size:clamp(16px,1.3vw,18px);font-weight:500;color:var(--cm-ink)}
.cm-q summary::-webkit-details-marker{display:none}
.cm-q summary::after{content:"";flex:none;width:12px;height:12px;border-right:1.6px solid var(--cm-pri);border-bottom:1.6px solid var(--cm-pri);
  transform:translateY(-3px) rotate(45deg);transition:transform .5s var(--ease)}
.cm-q[open] summary::after{transform:translateY(3px) rotate(-135deg)}
.cm-q__body{overflow:hidden}
.cm-q p{padding:0 26px 26px;font-size:15.5px;line-height:1.7;color:var(--cm-body)}

/* closing */
.cm-cta{position:relative;overflow:hidden;display:grid;place-items:center;min-height:min(80vh,720px);text-align:center;color:#fff}
.cm-cta > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(var(--z,1.1))}
.cm-cta::before{content:"";position:absolute;inset:0;z-index:1;background:rgba(17,21,58,.62)}
.cm-cta__in{position:relative;z-index:2;padding-block:100px}
.cm-cta__title{margin:16px 0 18px;font-family:var(--ff-display);font-weight:400;font-size:clamp(2.8rem,6.4vw,6rem);line-height:.98;letter-spacing:-.03em}
.cm-cta__title em{color:#fff}
.cm-cta__in > p:not(.cm-eyebrow){max-width:46ch;margin-inline:auto;font-size:17px;line-height:1.7;color:rgba(255,255,255,.85)}

@media (max-width:980px){
  .cm-benefit,.cm-prep,.cm-faq,.cm-check{grid-template-columns:1fr}
  .cm-benefit--detail .cm-benefit__img{position:relative;top:auto}
  .cm-prep__head{position:static}
}
@media (max-width:640px){
  .cm-steps li{opacity:1}
}

/* ==========================================================================
   DIAGONAL CUTS — Figma frame 203-210
   Two stacked wedges: a thin green accent over a navy body.
   ========================================================================== */
.cut{position:relative;z-index:3;height:var(--cut-h);
  margin-top:calc(var(--cut-h) * -1);pointer-events:none;
  background:transparent;overflow:hidden}
.cut svg{position:absolute;inset:0;width:100%;height:100%}
/* the section the wedge is drawn over has to reserve its height */
section:has(+ .cut),
main:has(+ .cut) > :last-child{padding-bottom:calc(var(--cut-h) + clamp(12px,1.2vw,20px))}
.hero:has(+ .cut),.phero:has(+ .cut){padding-bottom:0}

/* ==========================================================================
   HERO — landing page (63-99)
   ========================================================================== */
.hero{position:relative;overflow:hidden;background:var(--paper-2)}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;filter:blur(14px) saturate(.85);
  transform:scale(1.12);opacity:.5}
.hero__bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,#F7F8FB 0%,rgba(247,248,251,.92) 38%,rgba(247,248,251,.35) 62%,rgba(247,248,251,0) 84%)}
.hero__in{position:relative;z-index:2;display:grid;grid-template-columns:1.14fr .86fr;
  align-items:end;gap:clamp(16px,3vw,40px);
  padding-top:clamp(46px,5.6vw,84px);padding-bottom:clamp(20px,2.4vw,38px)}
.hero__copy{padding-bottom:clamp(58px,7vw,116px);max-width:none}
.hero__copy .h1{margin-bottom:.62em;max-width:19ch}
.hero__copy .eyebrow{max-width:34ch}
.hero__art{position:relative;align-self:end;justify-self:end;width:100%;max-width:700px}
.hero__art img{width:100%;filter:drop-shadow(0 30px 50px rgba(20,23,58,.22))}

/* ==========================================================================
   HERO — primary care page (203-210): dark photo + play button
   ========================================================================== */
.phero{position:relative;isolation:isolate;min-height:min(78vh,640px);
  display:flex;align-items:center;overflow:hidden;background:var(--navy-900)}
.phero__media{position:absolute;inset:0;z-index:-2}
.phero__media img,
.phero__media .phero__video{width:100%;height:100%;object-fit:cover;display:block}
.phero__media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(268deg,rgba(17,21,58,.88) 0%,rgba(17,21,58,.74) 42%,rgba(17,21,58,.34) 100%)}
/* the film carries the banner on its own: no veil, nothing laid over it */
.phero--film .phero__media::after{content:none}
.phero__in{position:relative;width:100%;display:grid;
  grid-template-columns:minmax(0,min(640px,100%));justify-content:end;
  align-items:center;gap:clamp(20px,4vw,56px);
  padding-block:clamp(74px,9vw,132px)}
.phero__in .h1{margin-bottom:1.1em;max-width:19ch}

/* ==========================================================================
   VALUE STRIP — navy, 4 items (63-99)
   ========================================================================== */
.values{background:var(--navy-600);position:relative;z-index:2}
.values__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(18px,2.4vw,36px);padding-block:clamp(34px,3.8vw,54px)}
.value{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start}
.value__ico{display:grid;place-items:center;flex:none;width:58px;height:58px;
  border-radius:50%;background:#fff;color:var(--navy-600);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.value__ico svg{width:27px;height:27px}
.value:hover .value__ico{transform:translateY(-4px);box-shadow:0 12px 26px rgba(0,0,0,.22)}
.value h3{font-family:var(--ff-display);font-size:17px;font-weight:700;color:#fff;
  line-height:1.25;margin-bottom:5px}
.value p{font-size:13.8px;line-height:1.55;color:rgba(255,255,255,.76)}

/* ==========================================================================
   ABOUT — split photo + copy (63-99)
   ========================================================================== */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4.6vw,76px);
  align-items:center}
.split--wide-l{grid-template-columns:1.08fr .92fr}
.split__media{position:relative;overflow:hidden;border-radius:var(--radius);
  box-shadow:var(--shadow)}
.split__media img{width:100%;aspect-ratio:4/3;object-fit:cover;transform:scale(1.06)}
.split__copy .h2{margin-bottom:.66em}
.split__copy .lede{margin-bottom:1.7em}

/* --- circular collage (203-210) ---------------------------------------- */
.collage{position:relative;aspect-ratio:1/.84;min-height:340px}
.collage__rule{position:absolute;top:-6%;bottom:-6%;width:2px;background:var(--navy-400);
  opacity:.85;z-index:3}
.collage__rule--a{left:31%}
.collage__rule--b{left:69%}
.collage figure{position:absolute;margin:0;border-radius:50%;overflow:hidden;
  background:var(--navy-50)}
.collage figure img{width:100%;height:100%;object-fit:cover}
.collage__a{left:0;top:14%;width:56%;aspect-ratio:1;z-index:1}
.collage__b{left:27%;top:0;width:64%;aspect-ratio:1;z-index:2}
.collage__c{left:62%;top:30%;width:44%;aspect-ratio:1;z-index:1}
.collage--duo .collage__a{left:0;top:6%;width:56%}
.collage--duo .collage__b{left:29%;top:0;width:52%;z-index:3}
.collage--duo .collage__c{left:50%;top:26%;width:48%;z-index:2}
.collage--duo .collage__rule--a{left:33%}
.collage--duo .collage__rule--b{left:63%}

/* ==========================================================================
   MISSION / FACULTY / PROMISE — navy zig-zag (203-210)
   ========================================================================== */
.pillars{background:var(--navy-600);position:relative}
.pillar{display:grid;grid-template-columns:1fr 1fr;align-items:center;
  gap:clamp(24px,4vw,64px)}
.pillar+.pillar{margin-top:clamp(30px,3.6vw,56px)}
.pillar--flip .pillar__media{order:2}
.pillar__media{overflow:hidden;border-radius:var(--radius)}
.pillar__media img{width:100%;aspect-ratio:16/10;object-fit:cover}
.pillar__copy .h2{font-size:clamp(24px,2.4vw,34px);margin-bottom:.6em}
.pillar__copy p{font-size:15px;line-height:1.7;max-width:44ch}
/* media bleeds past the band edge, as in the Figma */
.pillars .pillar:first-child .pillar__media{margin-top:clamp(-84px,-6vw,-40px)}
.pillars .pillar:last-child .pillar__media{margin-bottom:clamp(-84px,-6vw,-40px)}

/* ==========================================================================
   SERVICE CARDS — square icon cards (63-99)
   ========================================================================== */
.swirl{position:relative;isolation:isolate;background:var(--paper-2)}
.swirl::before{content:"";position:absolute;inset:0;z-index:-1;
  background:url("../img/pattern-swirl.jpg") center/cover no-repeat;opacity:.38;
  mask-image:linear-gradient(to bottom,transparent 0,#000 12%,#000 88%,transparent 100%)}
.icard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(12px,1.5vw,20px)}
.icard{
  position:relative;isolation:isolate;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:18px;text-align:center;
  aspect-ratio:1/.92;padding:24px 18px;border-radius:var(--radius);
  background:rgba(255,255,255,.82);border:1px solid var(--line-soft);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),color .35s var(--ease);
}
.icard::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;
  background:linear-gradient(150deg,var(--navy-600),var(--navy-700));
  opacity:0;transition:opacity .45s var(--ease)}
.icard__ico{display:grid;place-items:center;width:78px;height:78px;border-radius:50%;
  background:#fff;color:var(--navy-600);box-shadow:var(--shadow-sm);
  transition:color .35s var(--ease),transform .5s var(--ease)}
.icard__ico svg{width:42px;height:42px}
.icard h3{font-family:var(--ff-display);font-size:17px;font-weight:700;line-height:1.3;
  color:var(--navy-900);transition:color .35s var(--ease);text-wrap:balance}
.icard:hover,.icard.is-lead{transform:translateY(-6px);box-shadow:var(--shadow)}
.icard:hover::before,.icard.is-lead::before{opacity:1}
.icard:hover h3,.icard.is-lead h3{color:#fff}
.icard:hover .icard__ico,.icard.is-lead .icard__ico{transform:scale(1.06)}
.icard.is-lead{background:transparent;border-color:transparent}

/* ==========================================================================
   SERVICE CARDS — 4x3 photo cards with gradient overlay (203-210)
   ========================================================================== */
.pcard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(10px,1.3vw,18px)}
.pcard{
  position:relative;isolation:isolate;display:flex;align-items:flex-end;
  aspect-ratio:1/.72;padding:20px;border-radius:var(--radius);overflow:hidden;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.pcard img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;
  object-fit:cover;transform:scale(1.02);
  transition:transform .9s var(--ease)}
.pcard::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(to top,var(--navy-600) 0%,var(--navy-600) 26%,rgba(42,51,121,.82) 44%,rgba(42,51,121,.24) 68%,rgba(42,51,121,0) 86%);
  transition:opacity .5s var(--ease)}
.pcard::after{content:"";position:absolute;inset:0;z-index:-1;opacity:0;
  background:linear-gradient(to top,var(--green-600) 0%,var(--green-600) 26%,rgba(71,159,69,.82) 44%,rgba(71,159,69,.24) 68%,rgba(71,159,69,0) 86%);
  transition:opacity .5s var(--ease)}
.pcard h3{position:relative;font-family:var(--ff-sans);font-size:clamp(15px,1.16vw,17.5px);
  font-weight:600;line-height:1.3;color:#fff;text-wrap:balance}
.pcard__short{display:none}
.pcard:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.pcard:hover img{transform:scale(1.1)}
.pcard:hover::after{opacity:1}

/* ==========================================================================
   LOCATIONS — the client asked for these to carry real weight
   ========================================================================== */
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.4vw,30px)}
.loc{
  display:flex;flex-direction:column;overflow:hidden;background:#fff;
  border:1px solid var(--line-soft);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s var(--ease);
}
.loc:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--navy-100)}
.loc__media{position:relative;isolation:isolate;aspect-ratio:16/8.4;overflow:hidden}
.loc__media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.loc:hover .loc__media img{transform:scale(1.06)}
.loc__tag{
  position:absolute;left:16px;top:16px;z-index:2;display:inline-flex;align-items:center;gap:7px;
  padding:7px 13px;border-radius:999px;background:rgba(255,255,255,.94);
  font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  color:var(--navy-700);box-shadow:var(--shadow-sm)}
.loc__tag svg{width:13px;height:13px;color:var(--navy-600)}
/* static map panel */
.loc__map{position:absolute;right:14px;bottom:14px;z-index:2;width:38%;max-width:190px;
  border-radius:10px;overflow:hidden;border:2px solid #fff;box-shadow:var(--shadow);
  background:var(--navy-50)}
.loc__map svg{width:100%;height:auto;display:block}
.loc__body{display:flex;flex-direction:column;gap:14px;padding:clamp(18px,1.9vw,26px)}
.loc__body h3{font-family:var(--ff-display);font-size:clamp(19px,1.6vw,23px);font-weight:700;
  color:var(--navy-900);line-height:1.2}
.loc__rows{display:grid;gap:11px;border-top:1px solid var(--line-soft);padding-top:14px}
.loc__row{display:grid;grid-template-columns:20px 1fr;gap:11px;align-items:start;
  font-size:14.2px;line-height:1.5;color:var(--ink-soft)}
.loc__row svg{width:16px;height:16px;margin-top:3px;color:var(--navy-400)}
.loc__row b{display:block;font-weight:600;color:var(--navy-800);font-size:13px;
  letter-spacing:.02em;margin-bottom:1px}
.loc__row a:hover{color:var(--navy-700)}
.loc__foot{display:flex;flex-wrap:wrap;gap:10px;margin-top:2px}

/* ==========================================================================
   DNA BAND (203-210)
   ========================================================================== */
.band{position:relative;isolation:isolate;text-align:center;overflow:hidden;
  background:linear-gradient(120deg,#EAF1FB,#F6FAFF 46%,#DDE9F9)}
.band img{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;
  object-position:right center;opacity:.95}
.band__in{position:relative;padding-block:clamp(58px,6.4vw,92px)}
.band .h2{margin-bottom:1.05em;color:var(--navy-700)}

/* ==========================================================================
   PROVIDERS (63-99)
   ========================================================================== */
.prov-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(16px,2.2vw,30px)}
.prov{position:relative;border-radius:var(--radius);overflow:hidden;
  background:var(--navy-50);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.prov img{width:100%;aspect-ratio:1/1.04;object-fit:cover;object-position:top center;
  transition:transform .9s var(--ease)}
.prov:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.prov:hover img{transform:scale(1.05)}
.prov__plate{position:absolute;left:clamp(14px,1.5vw,22px);right:clamp(14px,1.5vw,22px);
  bottom:clamp(14px,1.5vw,22px);padding:16px 18px;background:#fff;border-radius:10px;
  text-align:center;box-shadow:var(--shadow-sm)}
.prov__plate h3{font-family:var(--ff-display);font-size:17px;font-weight:700;
  color:var(--navy-900);line-height:1.25}
.prov__plate p{font-size:13.4px;color:var(--muted);margin-top:3px}

/* ==========================================================================
   TESTIMONIALS (63-99)
   ========================================================================== */
.tst{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;gap:clamp(10px,2vw,26px)}
.tst__stage{position:relative;min-height:290px}
/* stacked paper edges behind the live card */
.tst__stage::before,.tst__stage::after{content:"";position:absolute;top:22px;bottom:22px;
  background:#fff;border:1px solid var(--line-soft);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);z-index:0}
.tst__stage::before{left:-16px;right:-16px}
.tst__stage::after{left:-32px;right:-32px;top:34px;bottom:34px;opacity:.6}
.tst__card{position:relative;z-index:2;display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:clamp(22px,3.4vw,52px);align-items:center;
  padding:clamp(26px,3.4vw,48px);background:#fff;border:1px solid var(--line-soft);
  border-radius:var(--radius-lg);box-shadow:var(--shadow)}
.tst__avatar{position:relative;flex:none;width:clamp(120px,12vw,168px);aspect-ratio:1;
  border-radius:50% 50% 50% 14%;overflow:hidden;
  border:5px solid var(--navy-100);background:var(--navy-50)}
.tst__avatar img{width:100%;height:100%;object-fit:cover}
.tst__quote{font-size:clamp(16px,1.32vw,19px);line-height:1.62;font-style:italic;
  color:var(--navy-900);text-wrap:pretty}
.tst__rule{display:block;width:34px;height:2.5px;border-radius:2px;background:var(--navy-600);
  margin:18px 0 12px}
.tst__who b{display:block;font-family:var(--ff-display);font-size:16.5px;font-weight:700;
  color:var(--navy-600)}
.tst__who span{font-size:13.4px;color:var(--muted)}
.tst__nav{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;
  background:#fff;border:1px solid var(--line);color:var(--navy-700);
  box-shadow:var(--shadow-sm);
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease)}
.tst__nav svg{width:15px;height:15px}
.tst__nav:hover{background:var(--navy-600);border-color:var(--navy-600);color:#fff;
  transform:scale(1.07)}
.tst__dots{display:flex;justify-content:center;gap:9px;margin-top:clamp(22px,2.4vw,34px)}
.tst__dot{width:9px;height:9px;border-radius:50%;background:var(--navy-200);
  transition:background .3s var(--ease),transform .3s var(--ease)}
.tst__dot.is-on{background:var(--navy-600);transform:scale(1.25)}

/* ==========================================================================
   CTA BAND (63-99)
   ========================================================================== */
.ctaband{position:relative;isolation:isolate;overflow:hidden;background:var(--navy-600)}
.ctaband img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.ctaband::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(95deg,rgba(42,51,121,.95),rgba(42,51,121,.82))}
.ctaband__in{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;
  gap:clamp(24px,4vw,60px);padding-block:clamp(44px,4.8vw,68px)}
.ctaband .h2{margin-bottom:.42em}
.ctaband p{font-size:15px;color:rgba(255,255,255,.78)}
.ctaband__acts{display:grid;gap:12px;justify-items:stretch}
.ctaband__acts .btn{justify-content:space-between;padding-left:26px}

/* ==========================================================================
   FOOTER — Figma frame 63-99
   ========================================================================== */
.foot{background:var(--navy-800);color:#fff;position:relative;isolation:isolate}
.foot__top{display:flex;align-items:center;justify-content:space-between;gap:22px;
  padding-block:clamp(34px,3.6vw,50px) 26px}
.foot__plaque{display:inline-block;padding:10px 16px;background:#fff;border-radius:8px}
.foot__plaque img{width:clamp(168px,14vw,208px)}
.foot__social{display:flex;gap:11px}
.foot__social a{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;
  background:#fff;color:var(--navy-700);
  transition:background .3s var(--ease),color .3s var(--ease),transform .3s var(--ease)}
.foot__social svg{width:17px;height:17px}
.foot__social a:hover{background:var(--navy-400);color:#fff;transform:translateY(-3px)}
.foot__nav{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px 26px;
  padding-block:22px;border-top:1px solid rgba(255,255,255,.14);
  border-bottom:1px solid rgba(255,255,255,.14)}
.foot__nav a{font-size:14.2px;color:rgba(255,255,255,.82);transition:color .25s var(--ease)}
.foot__nav a:hover{color:#fff}
.foot__mid{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;
  gap:clamp(22px,3vw,48px);padding-block:clamp(24px,2.6vw,34px);
  border-bottom:1px solid rgba(255,255,255,.14)}
.foot__about b{display:block;font-size:15px;font-weight:600;margin-bottom:5px}
.foot__about p{font-size:14px;line-height:1.6;color:rgba(255,255,255,.72);max-width:52ch}
.foot__acts{display:flex;flex-wrap:wrap;gap:10px}
.foot__btn{display:inline-flex;align-items:center;padding:11px 20px;border-radius:6px;
  border:1px solid rgba(255,255,255,.42);font-size:13.6px;white-space:nowrap;
  transition:background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease)}
.foot__btn:hover{background:#fff;color:var(--navy-700);border-color:#fff}
.foot__btn--green{background:var(--green-500);border-color:var(--green-500);font-weight:600}
.foot__btn--green:hover{background:var(--green-600);border-color:var(--green-600);color:#fff}
.foot__contact{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(18px,2.4vw,32px);padding-block:clamp(24px,2.8vw,36px)}
.foot__item{display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:start}
.foot__item svg{width:22px;height:22px;flex:none;color:var(--navy-200);margin-top:2px}
.foot__item span{display:block;font-size:13.2px;color:rgba(255,255,255,.66);margin-bottom:2px}
.foot__item b{font-size:14.2px;font-weight:600;line-height:1.45;display:block}
.foot__item a:hover b{color:#fff}
.foot__base{padding-block:18px 22px;border-top:1px solid rgba(255,255,255,.14);
  text-align:center;font-size:12.8px;color:rgba(255,255,255,.6)}

/* ==========================================================================
   MOTION — initial states, neutralised by [data-static]
   ========================================================================== */
[data-reveal]{opacity:0}
[data-reveal-y]{opacity:0;transform:translateY(26px)}
.word{display:inline-block;opacity:.12;will-change:opacity}
html[data-static] [data-reveal],
html[data-static] [data-reveal-y]{opacity:1!important;transform:none!important;filter:none!important}
html[data-static] .word{opacity:1!important}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  [data-reveal],[data-reveal-y]{opacity:1!important;transform:none!important}
  .word{opacity:1!important}
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1320px){
  .navbar{grid-template-columns:auto 1fr auto;padding-right:14px}
  .nav--left,.nav--right{display:none}
  .navbar__brand{justify-self:start;padding-inline:0}
  .navbar__burger{display:flex}
  .values__grid{grid-template-columns:1fr 1fr;gap:26px}
  .icard-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pcard-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .foot__contact{grid-template-columns:1fr 1fr}
}
@media (max-width:980px){
  .hero__in{grid-template-columns:1fr;align-items:start}
  .hero__copy{padding-bottom:0;max-width:none}
  .hero__art{justify-self:center;max-width:520px;margin-top:14px}
  .phero__in{grid-template-columns:1fr;gap:28px;text-align:center;justify-content:stretch}
  .phero__media::after{background:linear-gradient(180deg,rgba(17,21,58,.74) 0%,rgba(17,21,58,.82) 100%)}
  .phero__in .h1{max-width:none;margin-inline:auto}
  .phero__in .btn-row{justify-content:center}
  .split,.pillar{grid-template-columns:1fr;gap:26px}
  .pillar--flip .pillar__media{order:0}
  .pillars .pillar:first-child .pillar__media,
  .pillars .pillar:last-child .pillar__media{margin:0}
  .prov-grid{grid-template-columns:1fr 1fr}
  .prov-grid>*:last-child{display:none}
  .loc-grid{grid-template-columns:1fr}
  .ctaband__in{grid-template-columns:1fr;gap:22px}
  .ctaband__acts{justify-items:start;grid-auto-flow:column;grid-auto-columns:max-content}
  .foot__mid{grid-template-columns:1fr}
  .tst__stage::after{display:none}
}
@media (max-width:760px){
  .icard-grid{grid-template-columns:1fr 1fr}
  /* app-style tiles: photo square on top, label underneath, four per row */
  .pcard-grid,.pcard-grid.pcard-grid--4,
  .pcard-grid.pcard-grid--5{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 10px}
  /* a hub with three or two services fills the row rather than leaving a hole */
  .pcard-grid.pcard-grid--3{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 10px}
  .pcard-grid.pcard-grid--2{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 10px}
  .pcard-grid--5 .pcard,.pcard-grid--5 .pcard:nth-child(n+4){grid-column:auto}
  .pcard{display:flex;flex-direction:column;align-items:center;gap:8px;
    aspect-ratio:auto;padding:0;border-radius:0;overflow:visible;isolation:auto}
  .pcard::before,.pcard::after{display:none}
  .pcard img{position:static;z-index:auto;width:100%;height:auto;aspect-ratio:1;
    border-radius:14px;transform:none;background:var(--navy-50);
    box-shadow:0 8px 18px -12px rgba(17,20,49,.45)}
  .pcard h3{font-size:12px;font-weight:500;line-height:1.3;color:var(--navy-800);
    text-align:center;text-wrap:balance}
  .pcard__full{display:none}
  .pcard__short{display:inline}
  .pcard:hover{transform:none;box-shadow:none}
  .pcard:hover img{transform:none}
  .values__grid{grid-template-columns:1fr}
  .tst{grid-template-columns:1fr}
  .tst__nav{display:none}
  .tst__card{grid-template-columns:1fr;text-align:center;justify-items:center}
  .tst__avatar{margin-inline:auto}
  .tst__rule{margin-inline:auto}
  .tst__stage::before{left:-8px;right:-8px}
  .collage{min-height:260px}
  /* the footer links and the card links are a 23px target on a phone */
  .foot__nav{justify-content:flex-start;gap:4px 18px}
  .foot__nav a{display:inline-block;padding-block:9px}
  .acard__link{padding-block:8px}
  .tlink,.wl-link,.wl-step__link,.xref a{display:inline-flex;align-items:center;padding-block:8px}
  /* calling or mailing from a phone should not need a precise tap */
  .loc__row a,.ctile a,.rhero__card-list a,.cform__ways a{display:inline-block;padding-block:9px}
  .topbar__hours span{display:none}
}
@media (max-width:620px){
  .prov-grid{grid-template-columns:1fr}
  .prov-grid>*:nth-child(n+2){display:none}
  .foot__contact{grid-template-columns:1fr}
  .ctaband__acts{grid-auto-flow:row;justify-items:stretch}
  .loc__map{display:none}
  .topbar__call b{display:none}
}
@media (max-width:430px){
  .icard-grid{grid-template-columns:1fr}
  .pcard-grid{gap:16px 8px}
  .pcard h3{font-size:11.5px}
  .btn{width:100%;justify-content:space-between}
  .btn-row{flex-direction:column;align-items:stretch}
  .btn--lead{justify-content:center}
}

/* The pillar photography paints above the diagonal cut that enters the navy
   band, so the wedge passes behind the images exactly as in frame 203-210. */
.pillar__media{position:relative;z-index:5}



/* ==========================================================================
   PORTAL — Figma frame 163-139
   Pale green ground, 2x2 vertical cards with cut-out photography, and the
   Location block promoted from a strip to a full panel.
   ========================================================================== */
.eyebrow--plain{font-size:clamp(15px,1.2vw,17.5px);color:var(--green-600);
  letter-spacing:0;text-transform:none;font-weight:400}

/* minimal header */
.site-header--min{background:#fff}
.minbar{display:flex;align-items:center;justify-content:space-between;gap:20px;
  min-height:76px;padding-block:12px}
.minbar__brand{display:block}
.minbar__brand img{width:clamp(186px,15.5vw,228px)}
.minbar__acts{display:flex;align-items:center;gap:clamp(8px,1.4vw,22px)}
.minbar__link{font-size:14.5px;color:var(--ink-soft);transition:color .25s var(--ease)}
.minbar__link:hover{color:var(--navy-700)}

.portal{position:relative;background:linear-gradient(180deg,#F6FCF5,#EEF9ED 42%,#E9F6E8);
  /* the portal is the whole page: fill the fold below the header, content centred */
  display:flex;align-items:center;min-height:calc(100vh - var(--nav-h) - 2px);
  min-height:calc(100svh - var(--nav-h) - 2px)}
.portal > .shell{width:100%}
.portal__in{padding-block:clamp(34px,4.4vw,64px) clamp(34px,4vw,58px)}
.portal__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.9fr);
  gap:clamp(26px,4.4vw,62px);align-items:center}
.portal__copy .h1{margin:.34em 0 .78em;font-size:clamp(32px,3.5vw,48px);line-height:1.14}
.portal__copy .lede{font-size:clamp(14px,1.02vw,15px);line-height:1.72;max-width:46ch}

/* --- 2 x 2 vertical cards ---------------------------------------------- */
.vcard-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(8px,.85vw,12px)}
.vcard{
  --wash:var(--navy-100);--img-w:56%;--img-r:0%;--img-b:0%;
  position:relative;isolation:isolate;overflow:hidden;
  display:block;aspect-ratio:1/.46;min-height:158px;
  padding:clamp(16px,1.5vw,22px);border-radius:10px;
  background:linear-gradient(180deg,#fff 8%,var(--wash) 100%);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.vcard--green{--wash:#DCF6DB}
.vcard--navy{--wash:#EBECF8}
.vcard__copy{position:relative;z-index:2;display:flex;flex-direction:column;
  align-items:flex-start;gap:clamp(12px,1.4vw,20px);height:100%;max-width:48%}
.vcard__name{font-family:var(--ff-display);font-weight:700;letter-spacing:-.01em;
  font-size:clamp(16px,1.42vw,20px);line-height:1.22;color:var(--navy-900)}
.vcard__go{margin-top:auto;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;
  background:var(--navy-600);color:#fff;flex:none;
  transition:background .35s var(--ease),transform .45s var(--ease)}
.vcard__go svg{width:13px;height:13px}
.vcard>img{
  position:absolute;z-index:1;right:var(--img-r);bottom:var(--img-b);
  width:var(--img-w);height:auto;max-width:none;
  transform-origin:bottom right;
  transition:transform .7s var(--ease);
}
.vcard:hover{transform:translateY(-4px);box-shadow:0 22px 48px -26px rgba(20,23,58,.34)}
.vcard:hover>img{transform:scale(1.045)}
.vcard:hover .vcard__go{background:var(--navy-600);transform:translate(2px,-2px)}
/* each cut-out is a different crop, so it gets its own anchoring */
.vcard--primary{--img-w:50%;--img-r:-2%;--img-b:0%}
.vcard--weight{--img-w:31%;--img-r:7%;--img-b:-4%}
.vcard--hormone{--img-w:52%;--img-r:-3%;--img-b:-8%}
.vcard--aesthetics{--img-w:54%;--img-r:-6%;--img-b:-2%}

/* --- locations strip ---------------------------------------------------- */
.locstrip{margin-top:clamp(20px,2.4vw,34px);padding:clamp(16px,1.7vw,24px);
  background:#fff;border:1px solid var(--line-soft);border-radius:18px;
  box-shadow:0 26px 58px -46px rgba(20,23,58,.5)}
.locstrip__label{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;
  margin-bottom:clamp(12px,1.3vw,18px)}
.locstrip__label .eyebrow{margin:0}
.locstrip__label p:last-child{font-size:14px;color:var(--muted)}
.locstrip__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.3vw,18px)}

.locitem{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;
  gap:clamp(12px,1.3vw,18px);
  padding:clamp(14px,1.5vw,20px);border-radius:14px;
  background:var(--paper-2);border:1px solid var(--line-soft);
  transition:background .35s var(--ease),border-color .35s var(--ease),
             transform .45s var(--ease),box-shadow .45s var(--ease);
}
/* the frame fills its first pill green; a tint keeps that emphasis without
   letting green outweigh the navy */
.locitem--lead{background:var(--green-50);border-color:var(--green-200)}
.locitem:hover{transform:translateY(-3px);border-color:var(--navy-200);
  box-shadow:0 18px 40px -24px rgba(20,23,58,.3)}

.locitem__pin{display:grid;place-items:center;flex:none;
  width:clamp(46px,3.9vw,56px);aspect-ratio:1;border-radius:50%;
  background:var(--navy-600);color:#fff;
  transition:background .35s var(--ease),transform .45s var(--ease)}
.locitem__pin svg{width:22px;height:22px}
.locitem:hover .locitem__pin{transform:scale(1.06)}

.locitem__text{display:block;min-width:0}
.locitem__name{display:block;font-family:var(--ff-display);font-weight:700;
  font-size:clamp(18px,1.55vw,22px);line-height:1.2;letter-spacing:-.01em;
  color:var(--navy-900);margin-bottom:3px}
.locitem__addr{display:block;font-size:clamp(13.5px,1.02vw,14.5px);line-height:1.45;
  color:var(--ink-soft)}
.locitem__meta{display:flex;flex-wrap:wrap;gap:2px 16px;margin-top:5px;
  font-size:12.5px;line-height:1.4;color:var(--muted)}
.locitem__meta>span{display:inline-flex;align-items:center;gap:6px;min-width:0}
.locitem__meta svg{width:13px;height:13px;flex:none;color:var(--navy-400)}

.locitem__go{display:grid;place-items:center;flex:none;width:38px;height:38px;
  border-radius:50%;background:var(--navy-600);color:#fff;
  transition:background .35s var(--ease),transform .45s var(--ease)}
.locitem__go svg{width:14px;height:14px}
.locitem:hover .locitem__go{background:var(--navy-700);transform:translate(2px,-2px)}

@media (max-width:1080px){
  .portal__grid{grid-template-columns:1fr;gap:30px}
  .portal__copy .lede{max-width:60ch}
  .vcard{aspect-ratio:1/.5}
}
@media (max-width:980px){
  .locstrip__grid{grid-template-columns:1fr}
}
@media (max-width:760px){
  .minbar__link{display:none}
  /* two narrow columns: name across the top, image tucked bottom-right */
  .vcard-grid{grid-template-columns:1fr 1fr;gap:10px}
  .vcard{aspect-ratio:1/1.12;min-height:0;padding:14px}
  .vcard__copy{max-width:none}
  .vcard__name{font-size:clamp(14px,3.9vw,17px)}
  .vcard__go{width:30px;height:30px}
  .vcard--primary{--img-w:88%;--img-r:-8%;--img-b:0%}
  .vcard--weight{--img-w:50%;--img-r:4%;--img-b:-6%}
  .vcard--hormone{--img-w:80%;--img-r:-8%;--img-b:-10%}
  .vcard--aesthetics{--img-w:86%;--img-r:-12%;--img-b:-2%}
}
@media (max-width:520px){
  /* the pin aligns to the clinic name and the arrow tucks into the corner, so a
     tall wrapped tile has no stray gap down its left side */
  .locitem{position:relative;grid-template-columns:auto minmax(0,1fr);
    gap:12px;align-items:start;padding-right:56px}
  .locitem__pin{width:42px}
  .locitem__go{position:absolute;top:13px;right:13px;width:34px;height:34px}
}
/* keep the whole first fold on 768px-tall laptops */
@media (min-width:1080px) and (max-height:840px){
  .portal__in{padding-block:24px 22px}
  .portal__copy .h1{font-size:clamp(30px,2.9vw,40px)}
  .vcard{min-height:0}
  .locstrip{margin-top:18px;padding:16px}
  .locitem{padding:13px}
}


/* ==========================================================================
   MEGA MENU
   One panel per header, anchored to the nav bar so it spans the shell and is
   never full-bleed. CSS owns open/close, so it still works without JS; GSAP
   only staggers the contents once a panel is open.
   ========================================================================== */
[data-mega-scope]{position:relative}
.mega{
  position:absolute;top:100%;left:0;right:0;z-index:70;margin-top:10px;
  background:#fff;border:1px solid var(--line-soft);border-radius:18px;
  box-shadow:0 40px 90px -40px rgba(20,23,58,.4);
  opacity:0;visibility:hidden;pointer-events:none;overflow:hidden;
  transform:translateY(-8px);
  transition:opacity .32s var(--ease),transform .38s var(--ease),
             visibility 0s linear .38s;
}
.mega.is-open{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);
  transition:opacity .32s var(--ease),transform .38s var(--ease),visibility 0s;
}
/* bridges the gap between the trigger and the panel so hover does not drop */
.mega.is-open.is-instant{transition:none}
.mega::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}

.mega__inner{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.82fr) minmax(0,.92fr);
  gap:clamp(18px,2vw,30px);padding:clamp(20px,2.1vw,28px)}
.mega__col{min-width:0}
.mega__col--promo{padding-left:clamp(18px,2vw,28px);border-left:1px solid var(--line-soft);
  display:flex;flex-direction:column}
.mega__col--promo .mega__promo{flex:1}
.mega__label{font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);margin-bottom:14px}

.mega__links{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px}
.mega__link{
  display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:10px;
  font-size:14px;line-height:1.3;color:var(--navy-800);
  transition:background-color .25s var(--ease),color .25s var(--ease);
}
.mega__link>span:not(.mega__ico){flex:1;min-width:0}
.mega__ico{display:grid;place-items:center;flex:none;width:34px;height:34px;
  border-radius:9px;background:var(--navy-50);color:var(--navy-600);
  transition:background-color .25s var(--ease),color .25s var(--ease),transform .35s var(--ease)}
.mega__ico svg{width:19px;height:19px}
.mega__link:hover,.mega__link.is-active{background:var(--navy-50);color:var(--navy-600)}
.mega__link:hover .mega__ico,.mega__link.is-active .mega__ico{background:var(--navy-600);color:#fff;transform:scale(1.06)}

.mega__explore{display:grid;gap:4px}
.mega__explore a{display:flex;align-items:center;justify-content:space-between;gap:6px;
  padding:12px 14px;border-radius:11px;font-size:15.5px;font-weight:500;color:var(--navy-700);white-space:nowrap;
  transition:background-color .25s var(--ease),color .25s var(--ease)}
.mega__explore svg{width:11px;height:11px;opacity:.45;transition:transform .3s var(--ease),opacity .3s var(--ease)}
.mega__explore a:hover{background:var(--navy-50);color:var(--navy-600)}
.mega__explore a:hover svg{opacity:1;transform:translate(2px,-2px)}

.mega__promo{position:relative;isolation:isolate;display:flex;overflow:hidden;
  border-radius:14px;min-height:190px;padding:16px;
  transition:transform .4s var(--ease)}
.mega__promo img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;
  transition:transform .9s var(--ease)}
.mega__promo-body>b,.mega__promo-body>span:not(.mega__promo-cta){will-change:transform,opacity}
.mega__promo::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(to top,var(--navy-800) 4%,rgba(25,31,82,.8) 40%,rgba(25,31,82,.22) 78%,rgba(25,31,82,.05) 100%)}
.mega__promo-body{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:4px}
.mega__promo-body>b{font-family:var(--ff-display);font-size:15.5px;font-weight:700;color:#fff;
  line-height:1.25}
.mega__promo-body>span{font-size:12.6px;line-height:1.45;color:rgba(255,255,255,.78)}
.mega__promo-cta{display:inline-flex!important;align-items:center;gap:7px;margin-top:8px;
  font-size:13px;font-weight:600;color:var(--green-400)!important}
.mega__promo-cta svg{width:12px;height:12px;transition:transform .35s var(--ease)}
.mega__promo:hover img{transform:scale(1.06)}
.mega__promo:hover .mega__promo-cta svg{transform:translate(2px,-2px)}

.mega__locs{display:grid;gap:8px;margin-top:12px}
.mega__loc{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:11px;
  background:var(--paper-2);transition:background-color .25s var(--ease)}
.mega__loc-pin{display:grid;place-items:center;flex:none;width:30px;height:30px;
  border-radius:50%;background:var(--navy-600);color:#fff}
.mega__loc-pin svg{width:14px;height:14px}
.mega__loc b{display:block;font-size:13.4px;font-weight:600;color:var(--navy-800);line-height:1.25}
.mega__loc span span{display:block;font-size:12px;color:var(--muted)}
.mega__loc:hover{background:var(--navy-100)}

@media (max-width:1180px){
  /* the drawer covers navigation below this width */
  .mega{display:none}
}

/* Column counts matched to the number of cards, so a row never ends with one
   card stranded on its own. `data-cards` carries the count; four is the default. */
.svc-grid > *{min-width:0}
.svc-card h3{overflow-wrap:break-word;hyphens:auto}
.svc-grid[data-cards="10"] .svc-card,
.svc-grid[data-cards="11"] .svc-card{padding:clamp(18px,1.8vw,24px)}
.svc-grid[data-cards="10"] .svc-card h3,
.svc-grid[data-cards="11"] .svc-card h3{font-size:clamp(1.05rem,1.25vw,1.22rem);margin:14px 0 10px}
.svc-grid[data-cards="10"] .svc-card p,
.svc-grid[data-cards="11"] .svc-card p{font-size:14px}
.svc-card--more{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  background:linear-gradient(140deg,var(--navy-50),#fff);border-style:dashed}
.svc-card__plus{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;
  background:var(--green-50);color:var(--green-700)}
.svc-card__plus svg{width:18px;height:18px}

@media (min-width:1181px){
  .svc-grid[data-cards="5"] > *,
  .svc-grid[data-cards="6"] > *,
  .svc-grid[data-cards="9"] > *{flex-basis:calc((100% - 2 * 14px) / 3 - 0.5px)}
  .svc-grid[data-cards="10"] > *{flex-basis:calc((100% - 4 * 14px) / 5 - 0.5px)}
  .svc-grid[data-cards="11"] > *{flex-basis:calc((100% - 3 * 14px) / 4 - 0.5px)}
  .svc-ticks--cards[data-cards="5"] > li{flex-basis:calc((100% - 4 * 18px) / 5 - 0.5px)}
  .svc-ticks--cards[data-cards="3"] > li{flex-basis:calc((100% - 2 * 18px) / 3 - 0.5px)}
  /* two points read better as a centred pair than as two narrow cards */
  .svc-ticks--cards[data-cards="2"] > li{flex-basis:calc((100% - 2 * 18px) / 3 - 0.5px)}
}
@media (max-width:1180px) and (min-width:901px){
  .svc-grid[data-cards="4"] > *,
  .svc-grid[data-cards="10"] > *,
  .svc-grid[data-cards="11"] > *{flex-basis:calc((100% - 14px) / 2 - 0.5px)}
  .svc-grid[data-cards="7"] > *,
  .svc-grid[data-cards="8"] > *,
  .svc-grid[data-cards="12"] > *,
  .svc-grid[data-cards="16"] > *{flex-basis:calc((100% - 3 * 14px) / 4 - 0.5px)}
  /* eleven splits three to a row here; two would strand the last one */
  .svc-grid[data-cards="11"] > *{flex-basis:calc((100% - 2 * 14px) / 3 - 0.5px)}
  .svc-ticks--cards[data-cards="5"] > li,
  .svc-ticks--cards[data-cards="3"] > li{flex-basis:calc((100% - 2 * 18px) / 3 - 0.5px)}
}
@media (max-width:900px) and (min-width:701px){
  /* seven cannot split evenly in two columns, so the last one takes the row */
  .svc-grid[data-cards="7"] > *:last-child{flex-basis:100%}
  /* three stay in one row rather than splitting 2 + 1 */
  .svc-grid[data-cards="3"] > *{flex-basis:calc((100% - 2 * 14px) / 3 - 0.5px)}
  .svc-grid[data-cards="5"] > *,
  .svc-grid[data-cards="9"] > *,
  .svc-grid[data-cards="11"] > *{flex-basis:calc((100% - 2 * 14px) / 3 - 0.5px)}
  .svc-ticks--cards[data-cards="5"] > li{flex-basis:calc((100% - 2 * 18px) / 3 - 0.5px)}
}
@media (max-width:700px){
  .svc-grid > *,.svc-ticks--cards > li{flex-basis:100%}
}

@media (max-width:640px){
  /* three stats will not split evenly in two columns, so they stack */
  .mvp-stats{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:1fr;row-gap:20px}
  .mvp-stat + .mvp-stat{border-left:0;border-top:1px solid rgba(42,51,121,.1);padding-top:20px}
}

@media (max-width:640px){
  .svc-steps[data-step-count="4"]{grid-template-columns:1fr}
}

/* ---- medication pages: trust strip, data table, facing lists, list + photo ---- */
.tstrip{background:var(--navy-900);color:#fff}
.tstrip__list{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 30px;
  list-style:none;margin:0;padding:18px 0;font-size:13.5px;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(255,255,255,.76)}
.tstrip__list li{position:relative;padding-left:30px}
.tstrip__list li::before{content:"";position:absolute;left:8px;top:50%;translate:0 -50%;
  width:6px;height:6px;border-radius:50%;background:var(--green-400)}
.tstrip__list li:first-child{padding-left:0}
.tstrip__list li:first-child::before{display:none}

.dtable__wrap{overflow-x:auto;border-radius:24px;border:1px solid var(--line);background:#fff;
  box-shadow:0 30px 60px -50px rgba(17,21,58,.45)}
.dtable{width:100%;border-collapse:collapse;min-width:420px}
.dtable th,.dtable td{padding:clamp(14px,1.5vw,18px) clamp(16px,2vw,26px);text-align:left;
  font-size:15px;color:var(--ink-soft);border-bottom:1px solid var(--line-soft)}
.dtable thead th{font-family:var(--ff-display);font-weight:400;font-size:15.5px;color:var(--navy-800);
  background:var(--paper-2);border-bottom:1px solid var(--line)}
.dtable tbody th{font-weight:600;color:var(--navy-800)}
.dtable tbody tr:last-child th,.dtable tbody tr:last-child td{border-bottom:0}
.dtable tbody tr:hover{background:var(--paper-2)}
.dtable__note,.duo__note{margin:18px auto 0;max-width:72ch;text-align:center;
  font-size:14px;line-height:1.7;color:var(--muted)}

.duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.duo__card{padding:clamp(24px,2.6vw,34px);border-radius:26px;background:#fff;border:1px solid var(--line)}
.duo__card h3{margin:0 0 16px;font-family:var(--ff-display);font-weight:400;
  font-size:clamp(1.2rem,1.6vw,1.45rem);color:var(--navy-800)}
.duo__card ul{display:grid;gap:11px;list-style:none;padding:0;margin:0}
.duo__card li{position:relative;padding-left:30px;font-size:15px;line-height:1.6;color:var(--ink-soft)}
.duo__card li::before{position:absolute;left:0;top:.08em;width:19px;height:19px;border-radius:50%;
  display:grid;place-items:center;font-size:12px;font-weight:700}
.duo__card--yes li::before{content:"✓";background:var(--green-50);color:var(--green-700)}
.duo__card--no li::before{content:"!";background:rgba(42,51,121,.08);color:var(--navy-600)}
@media (max-width:860px){.duo{grid-template-columns:1fr}}

.listsec{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(30px,5vw,70px);align-items:center}
.listsec--solo{grid-template-columns:minmax(0,1fr)}
.listsec__list{display:grid;gap:11px;list-style:none;padding:0;margin:26px 0 0}
.listsec__list li{position:relative;padding-left:22px;font-size:15.5px;line-height:1.6;color:var(--ink-soft)}
.listsec__list li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;
  border-radius:50%;background:var(--green-500)}
.listsec__note{margin-top:22px;font-size:14.5px;line-height:1.7;color:var(--muted);max-width:66ch}
.listsec__img{margin:0;border-radius:28px;overflow:hidden;aspect-ratio:4/3}
.listsec__img img{width:100%;height:100%;object-fit:cover}
@media (max-width:860px){.listsec{grid-template-columns:1fr}}
.prose{margin-top:24px;display:grid;gap:16px}
.prose p{font-size:16px;line-height:1.75;color:var(--ink-soft);max-width:62ch}

/* a rail with only a few cards should fill its row rather than trail off into
   empty space, and has nothing to scroll */
.svc-more[data-rail-count="1"] .srail__ctrl,
.svc-more[data-rail-count="2"] .srail__ctrl,
.svc-more[data-rail-count="3"] .srail__ctrl,
.svc-more[data-rail-count="4"] .srail__ctrl{display:none}
/* a rail with nothing to scroll is laid out as a row of its own, starting at the
   heading's edge, rather than a few cards adrift in the middle of the shell */
.svc-more[data-rail-count="1"] .srail,
.svc-more[data-rail-count="2"] .srail,
.svc-more[data-rail-count="3"] .srail,
.svc-more[data-rail-count="4"] .srail{margin-right:0;padding-right:0;overflow:visible}
.svc-more[data-rail-count="1"] .srail__track,
.svc-more[data-rail-count="2"] .srail__track,
.svc-more[data-rail-count="3"] .srail__track,
.svc-more[data-rail-count="4"] .srail__track{display:grid;width:100%;gap:20px}
.svc-more[data-rail-count="2"] .srail__track{grid-template-columns:repeat(2,minmax(0,1fr))}
.svc-more[data-rail-count="3"] .srail__track{grid-template-columns:repeat(3,minmax(0,1fr))}
.svc-more[data-rail-count="4"] .srail__track{grid-template-columns:repeat(4,minmax(0,1fr))}
.svc-more[data-rail-count="1"] .srail__track{grid-template-columns:minmax(0,380px)}
.svc-more[data-rail-count="1"] .scard,
.svc-more[data-rail-count="2"] .scard,
.svc-more[data-rail-count="3"] .scard,
.svc-more[data-rail-count="4"] .scard{width:auto;gap:14px}
.svc-more[data-rail-count="1"] .scard__img,
.svc-more[data-rail-count="2"] .scard__img{aspect-ratio:16/10}
.svc-more[data-rail-count="3"] .scard__img{aspect-ratio:4/3}
.svc-more[data-rail-count="1"] .scard__name,
.svc-more[data-rail-count="2"] .scard__name,
.svc-more[data-rail-count="3"] .scard__name{font-size:16.5px}
@media (max-width:900px){
  /* back to a swipeable rail, where the cards would otherwise be too narrow to read */
  .svc-more[data-rail-count="1"] .srail,
  .svc-more[data-rail-count="2"] .srail,
  .svc-more[data-rail-count="3"] .srail,
  .svc-more[data-rail-count="4"] .srail{margin-right:calc(var(--gutter) * -1);padding-right:var(--gutter)}
  .svc-more[data-rail-count="2"] .srail__track,
  .svc-more[data-rail-count="3"] .srail__track,
  .svc-more[data-rail-count="4"] .srail__track{display:flex;width:max-content;gap:14px}
  .svc-more[data-rail-count="2"] .scard,
  .svc-more[data-rail-count="3"] .scard,
  .svc-more[data-rail-count="4"] .scard{width:clamp(170px,42vw,230px);flex:none}
  .svc-more[data-rail-count="2"] .scard__img,
  .svc-more[data-rail-count="3"] .scard__img{aspect-ratio:4/3.2}
}

/* a list section with no photo: heading and intro on the left, the list on the
   right, so the row is not half empty */
@media (min-width:861px){
  .listsec--solo > div{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
    column-gap:clamp(30px,5vw,70px);align-items:center}
  .listsec--solo > div > h2{grid-column:1;margin:0}
  .listsec--solo > div > .lede{grid-column:1;margin-top:18px}
  .listsec--solo > div > .listsec__list,
  .listsec--solo > div > .prose{grid-column:2;grid-row:1 / span 4;align-self:center;margin-top:0;
    padding:clamp(22px,2.4vw,30px);border-radius:24px;background:#fff;border:1px solid var(--line-soft)}
  .sec-tint .listsec--solo > div > .listsec__list,
  .sec-tint--green .listsec--solo > div > .listsec__list{background:#fff}
  .listsec--solo > div > .listsec__note{grid-column:1;margin-top:22px}
}
/* a call to action with no supporting line does not need a full-height band */
.svc-cta--compact{min-height:min(52vh,460px)}

/* long call-to-action labels must wrap on a phone rather than push the band
   wider than the screen */
@media (max-width:560px){
  .svc-cta .btn{white-space:normal;text-align:left;line-height:1.3;max-width:100%}
  .svc-cta .btn--lead{padding:14px 20px 14px 14px}
}
/* a two-column table fits a phone, so it should not force a sideways swipe */
.dtable[data-cols="2"]{min-width:0}
.dtable[data-cols="2"] th,.dtable[data-cols="2"] td{padding-inline:clamp(12px,4vw,26px)}

/* on a phone a three or four column comparison restacks into one block per
   row, so nothing has to be swiped sideways to be read */
@media (max-width:700px){
  .dtable[data-cols="3"],.dtable[data-cols="4"]{min-width:0;display:block}
  .dtable[data-cols="3"] thead,.dtable[data-cols="4"] thead{display:none}
  .dtable[data-cols="3"] tbody,.dtable[data-cols="4"] tbody{display:block}
  .dtable[data-cols="3"] tr,.dtable[data-cols="4"] tr{display:block;padding:16px 18px;
    border-bottom:1px solid var(--line-soft)}
  .dtable[data-cols="3"] tbody tr:last-child,.dtable[data-cols="4"] tbody tr:last-child{border-bottom:0}
  .dtable[data-cols="3"] tbody th,.dtable[data-cols="4"] tbody th{display:block;padding:0 0 10px;
    border:0;font-family:var(--ff-display);font-weight:400;font-size:1.15rem;color:var(--navy-800)}
  .dtable[data-cols="3"] td,.dtable[data-cols="4"] td{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
    gap:14px;padding:7px 0;border:0;font-size:14.5px}
  .dtable[data-cols="3"] td::before,.dtable[data-cols="4"] td::before{content:attr(data-label);
    font-weight:600;color:var(--navy-700)}
  .dtable[data-cols="3"] tbody tr:nth-child(odd),.dtable[data-cols="4"] tbody tr:nth-child(odd){background:var(--paper-2)}
}

/* a cross-reference inside body copy: the services the text already names */
.xref{color:var(--navy-600);font-weight:600;text-decoration:underline;
  text-underline-offset:3px;text-decoration-thickness:1px;
  text-decoration-color:rgba(42,51,121,.35);transition:color .3s var(--ease),text-decoration-color .3s var(--ease)}
.xref:hover{color:var(--green-700);text-decoration-color:var(--green-500)}
.dtable .xref{font-weight:600}
.lic__only{display:block;font-size:16px;line-height:1.6;color:var(--navy-800);font-weight:500}
/* a card carrying one sentence wants a little more presence than a label pair */
.svc-ticks--cards li:has(.lic__only){gap:18px}
.svc-ticks--cards li:has(.lic__only) .lic{width:48px;height:48px;border-radius:14px}
.svc-ticks--cards li:has(.lic__only) .lic svg{width:26px;height:26px}

/* a two-column table holds a handful of short values, so it should not run the
   full width of the page with the figures stranded far apart */
.dtable[data-cols="2"]{max-width:none}
.dtable__wrap:has(.dtable[data-cols="2"]){max-width:720px;margin-inline:auto}
.dtable[data-cols="2"] th,.dtable[data-cols="2"] td{padding-block:13px}
.dtable[data-cols="2"] thead th:last-child,.dtable[data-cols="2"] td{text-align:right}
.dtable[data-cols="3"] .dtable__wrap,.dtable__wrap:has(.dtable[data-cols="3"]){max-width:980px;margin-inline:auto}

/* a section holding a short list or a couple of lines does not need the full
   rhythm above and below it */
.section--tight{padding-block:clamp(42px,4.6vw,62px)}

/* eleven service tiles in a four-wide grid leave a hole at the end of the last
   row, so the remainder is centred instead */
.pcard-grid:not([class*="pcard-grid--"]){display:flex;flex-wrap:wrap;justify-content:center}
.pcard-grid:not([class*="pcard-grid--"]) > *{flex:0 1 calc((100% - 3 * clamp(10px,1.3vw,18px)) / 4 - 0.5px)}
@media (max-width:1180px){
  .pcard-grid:not([class*="pcard-grid--"]) > *{flex-basis:calc((100% - 2 * clamp(10px,1.3vw,18px)) / 3 - 0.5px)}
}
@media (max-width:760px){
  /* back to the app tiles below: the grid owns the columns again */
  .pcard-grid:not([class*="pcard-grid--"]){display:grid}
  .pcard-grid:not([class*="pcard-grid--"]) > *{flex:none}
}


/* pricing: one panel, the heading and the phone line on the left, what you pay
   on the right, instead of two small cards adrift in the section */
.cost{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(24px,4vw,60px);align-items:center;
  padding:clamp(26px,3.2vw,44px);border-radius:30px;background:#fff;
  border:1px solid var(--line);box-shadow:0 30px 70px -56px rgba(17,21,58,.45)}
.cost__head .h2{margin:0}
.cost__note{margin-top:14px;font-size:15.5px;line-height:1.7;color:var(--ink-soft)}
.cost__note a{color:var(--navy-700);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.cost__note a:hover{color:var(--green-700)}
.cost__list{display:grid;gap:12px;list-style:none;padding:0;margin:0}
.cost__list li{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:18px;
  background:var(--paper-2);border:1px solid var(--line-soft);
  font-size:15.5px;line-height:1.6;color:var(--ink-soft)}
.cost__list svg{flex:none;width:26px;height:26px;padding:6px;border-radius:50%;
  background:var(--green-50);color:var(--green-700)}
@media (max-width:860px){.cost{grid-template-columns:1fr;gap:26px;align-items:start}}

/* a heading with a list under it: the points are ruled into one panel across
   the full width, so a long lead paragraph no longer leaves the column beside
   it empty and no single line floats in a card of its own */
.safe{display:grid;gap:clamp(26px,3.2vw,42px)}
.safe__intro .h2{margin:0}
.safe__intro .lede{margin:16px 0 0;max-width:74ch}
.safe__intro--split{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(24px,4vw,64px);align-items:start}
.safe__intro--split .lede{margin:0;max-width:none}
.safe__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;
  padding:0;margin:0;overflow:hidden;border-radius:26px;background:#fff;
  border:1px solid var(--line-soft);box-shadow:0 30px 64px -58px rgba(17,21,58,.5)}
.safe__list[data-cols="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}
.safe__list li{display:flex;gap:14px;align-items:flex-start;padding:20px 24px;
  font-size:15.5px;line-height:1.6;color:var(--ink-soft);
  border-top:1px solid var(--line-soft);border-left:1px solid var(--line-soft)}
.safe__list[data-cols="2"] li:nth-child(-n+2),
.safe__list[data-cols="3"] li:nth-child(-n+3){border-top:0}
.safe__list[data-cols="2"] li:nth-child(odd),
.safe__list[data-cols="3"] li:nth-child(3n+1){border-left:0}
/* an odd one out runs the width of the panel rather than leaving a gap beside it */
.safe__list[data-cols="2"] > li:last-child:nth-child(odd){grid-column:1 / -1;border-left:0}
.safe__list[data-cols="3"] > li:last-child:nth-child(3n+2){grid-column:span 2}
.safe__list b{color:var(--ink);font-weight:600}
.safe__dot{flex:none;width:9px;height:9px;margin-top:.52em;border-radius:50%;
  background:var(--green-500);box-shadow:0 0 0 5px var(--green-50)}
.safe__ico{flex:none;width:26px;height:26px;padding:6px;margin-top:-1px;border-radius:50%;
  background:var(--green-50);color:var(--green-700)}
.safe__lead{margin:0;font-size:16px;font-weight:600;color:var(--navy-800)}
.safe__note a{color:var(--navy-700);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.safe__note a:hover{color:var(--green-700)}
.mcard__inc--out{margin-top:22px;opacity:.75}
.mcard__head--stack{display:grid;gap:12px;justify-items:start;align-items:start}
.mcard__h2{font-family:var(--ff-display);font-weight:400;font-size:clamp(24px,2.1vw,31px);
  line-height:1.18;color:#fff;max-width:18ch}
.mcard__head--stack .mcard__price b{font-size:clamp(3rem,4.6vw,3.9rem)}
.mcard__note{align-items:flex-start!important;line-height:1.6}
.mcard__note svg{margin-top:4px}
.mcard__note b{color:#fff}
.field select{width:100%;padding:14px 16px;border-radius:14px;font:inherit;font-size:15px;color:var(--ink);
  background:var(--paper-2);border:1px solid var(--line);appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--navy-600) 50%),linear-gradient(135deg,var(--navy-600) 50%,transparent 50%);
  background-position:calc(100% - 20px) calc(50% + 2px),calc(100% - 15px) calc(50% + 2px);
  background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.field select:focus{outline:none;background-color:#fff;border-color:var(--navy-400);box-shadow:0 0 0 4px rgba(91,100,170,.14)}
.on-dark .pill-eyebrow{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.22);color:#fff}
.on-dark .pill-eyebrow svg{color:var(--green-400)}
.band__copy{margin:16px auto 24px;max-width:64ch;font-size:16px;line-height:1.7;color:var(--ink-soft)}
.cform__done p a{color:var(--navy-700);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.mcard__list--out svg{background:rgba(255,255,255,.1);color:rgba(255,255,255,.7)}
.phero__lead{margin:16px 0 26px;max-width:62ch;font-size:17px;line-height:1.7;color:rgba(255,255,255,.88)}
.safe__note{display:block;margin:0;padding:18px 22px;border-radius:18px;
  border-left:3px solid var(--green-200);background:var(--paper-2);
  font-size:14.5px;line-height:1.75;color:var(--muted)}
.sec-tint .safe__note,.sec-tint--green .safe__note{background:#fff}

/* a list whose points each open with a term: each one becomes a card led by
   that term, with the position marked in the corner */
.tcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;
  list-style:none;padding:0;margin:0;counter-reset:tc}
.tcards[data-cards="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.svc-why__copy{margin:18px 0 0;font-size:16.5px;line-height:1.75;color:var(--ink-soft);max-width:54ch}
.tcards li{position:relative;overflow:hidden;padding:30px 28px 30px 32px;border-radius:26px;
  background:linear-gradient(165deg,#fff 0%,#FBFCFE 60%,#F6F8FD 100%);
  border:1px solid var(--line-soft);box-shadow:0 34px 70px -60px rgba(17,21,58,.55);
  transition:transform .3s ease,box-shadow .3s ease}
.tcards li::before{content:"";position:absolute;left:0;top:22px;bottom:22px;width:4px;
  border-radius:0 4px 4px 0;background:linear-gradient(180deg,var(--green-400),var(--green-700))}
.tcards li:hover{transform:translateY(-3px);box-shadow:0 40px 80px -58px rgba(17,21,58,.6)}
.tcards__n{position:absolute;right:20px;top:10px;font-family:var(--ff-display);font-size:58px;
  line-height:1;color:rgba(42,51,121,.07);pointer-events:none}
.tcards__k{display:block;font-family:var(--ff-display);font-size:clamp(19px,1.5vw,23px);
  line-height:1.2;color:var(--ink);letter-spacing:-.01em}
.tcards__k i{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.tcards__v{display:block;margin-top:12px;font-size:15.5px;line-height:1.7;color:var(--ink-soft)}
.tcards__v::first-letter{text-transform:uppercase}
.tcards--rail li:not(:last-child)::after{content:"";position:absolute;top:46px;right:-19px;
  width:20px;border-top:1px dashed var(--line)}
@media (max-width:900px){
  .safe__intro--split{grid-template-columns:1fr;gap:16px}
  .safe__intro--split .lede{margin:0}
  .safe__list,.safe__list[data-cols="3"]{grid-template-columns:1fr}
  .safe__list > li,.safe__list[data-cols="3"] > li{grid-column:auto!important}
  .safe__list li{border-left:0;border-top:1px solid var(--line-soft)}
  .safe__list li:first-child{border-top:0}
  .tcards,.tcards[data-cards="2"]{grid-template-columns:1fr}
  .tcards--rail li:not(:last-child)::after{display:none}
}

/* about, doctor, careers and contact — blocks these four pages need */
.drhero{padding-top:clamp(40px,5vw,70px)}
.drhero__in{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(30px,5vw,80px);align-items:center}
.drhero__role{margin:14px 0 18px;font-size:16px;font-weight:600;color:var(--green-700)}
.drhero__copy .h1{margin:18px 0 0}
.drhero__img{position:relative;margin:0;border-radius:30px;overflow:hidden;aspect-ratio:4/3.7;
  box-shadow:0 60px 110px -70px rgba(17,21,58,.75)}
.drhero__img img{width:100%;height:100%;object-fit:cover;object-position:50% 22%}
.drhero__img figcaption{position:absolute;left:18px;bottom:18px;display:grid;gap:2px;
  padding:14px 18px;border-radius:18px;background:rgba(255,255,255,.94);
  backdrop-filter:blur(6px);box-shadow:0 20px 40px -30px rgba(17,21,58,.6)}
.drhero__img b{font-size:14.5px;font-weight:600;color:var(--navy-800)}
.drhero__img small{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--green-700)}

.drphil{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  gap:clamp(26px,3.4vw,52px);align-items:stretch}
.drphil__body{display:grid;align-content:center;gap:22px}
.drphil__lead{margin:0;font-size:17px;line-height:1.8;color:var(--ink-soft)}
.drphil__off{display:flex;gap:16px;align-items:flex-start;padding:22px 24px;border-radius:22px;
  background:var(--paper-2);border:1px solid var(--line-soft)}
.drphil__off span{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;
  background:var(--green-50);color:var(--green-700)}
.drphil__off svg{width:18px;height:18px}
.drphil__off p{margin:0;font-size:15px;line-height:1.7;color:var(--muted)}
.drquote{position:relative;margin:0;padding:clamp(30px,4vw,56px);border-radius:30px;
  background:linear-gradient(150deg,var(--navy-900),var(--navy-700));color:#fff;overflow:hidden}
.drquote::before{content:"\201C";position:absolute;right:28px;top:-22px;font-family:var(--ff-display);
  font-size:190px;line-height:1;color:rgba(255,255,255,.08)}
.drquote blockquote{margin:0;font-family:var(--ff-display);font-weight:400;
  font-size:clamp(21px,2.1vw,29px);line-height:1.34}
.drquote figcaption{display:grid;gap:3px;margin-top:26px}
.drquote figcaption b{font-size:15px;font-weight:600}
.drquote figcaption small{font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--green-400)}
.drquote__after{margin:clamp(24px,3vw,38px) 0 0;max-width:78ch;font-size:16.5px;line-height:1.75;color:var(--ink-soft)}
.drquote__after--soft{margin-top:14px;font-size:15px;color:var(--muted)}

.ctiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;list-style:none;padding:0;margin:0}
.ctile{display:grid;gap:6px;padding:24px 22px;border-radius:24px;background:#fff;
  border:1px solid var(--line-soft);box-shadow:0 30px 64px -58px rgba(17,21,58,.5)}
.ctile__ico{display:grid;place-items:center;width:42px;height:42px;margin-bottom:8px;border-radius:50%;
  background:var(--green-50);color:var(--green-700)}
.ctile__ico svg{width:19px;height:19px}
.ctile b{font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ctile a,.ctile > span{font-size:15.5px;line-height:1.55;color:var(--navy-800);overflow-wrap:anywhere}
.ctile a:hover{color:var(--green-700)}

.rhero__card{align-self:center;padding:clamp(22px,2.4vw,30px);border-radius:26px;
  background:rgba(255,255,255,.95);box-shadow:0 50px 90px -60px rgba(17,20,49,.7)}
.rhero__card-head{margin-bottom:16px;font-size:12.5px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted)}
.rhero__card-list{display:grid;gap:14px;list-style:none;padding:0;margin:0}
.rhero__card-list li{display:flex;gap:13px;align-items:flex-start}
.rhero__card-list svg{flex:none;width:32px;height:32px;padding:8px;border-radius:50%;
  background:var(--navy-50);color:var(--navy-700)}
.rhero__card-list b{display:block;font-size:14.5px;font-weight:600;color:var(--navy-800)}
.rhero__card-list span{font-size:13.5px;line-height:1.6;color:var(--ink-soft)}
.rhero__card-list a{color:var(--navy-700);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}

.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fieldset{border:0;padding:0;margin:0}
.fieldset legend{padding:0;font-size:13.5px;font-weight:600;color:var(--navy-800)}
.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:7px}
.choice{display:flex;gap:10px;align-items:center;padding:13px 16px;border-radius:14px;cursor:pointer;
  background:var(--paper-2);border:1px solid var(--line);font-size:14.5px;color:var(--ink-soft);
  transition:border-color .3s var(--ease),background .3s var(--ease)}
.choice:hover{border-color:var(--navy-400)}
.choice input,.field input[type="radio"],.field input[type="checkbox"]{flex:none;width:17px;height:17px;
  padding:0;border:0;background:none;box-shadow:none;accent-color:var(--green-600)}
.choice--terms input{margin-top:2px}
.choice span{flex:1}
.choice:has(input:checked){background:var(--green-50);border-color:var(--green-400);color:var(--navy-800)}
.choice--terms{align-items:flex-start;font-size:13px;line-height:1.6;background:transparent;border-style:dashed}
.cform__legend{margin-top:6px;font-size:12.5px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted)}
.field input[type="file"]{padding:11px 14px;background:var(--paper-2);cursor:pointer}
.field input[type="file"]::file-selector-button{margin-right:14px;padding:9px 16px;border:0;border-radius:999px;
  background:var(--navy-700);color:#fff;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer}
.field input[type="file"]::file-selector-button:hover{background:var(--navy-600)}

@media (max-width:980px){
  .drhero__in{grid-template-columns:1fr;gap:30px}
  .ctiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .ctiles{grid-template-columns:1fr}
  .field-row{grid-template-columns:1fr}
}

/* the doctor's profile — credential cards, a chip set of specialties and the
   stat strip under the hero */
.drstrip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:34px 0 0;
  padding:28px 0 0;border-top:1px solid var(--line-soft);list-style:none}
.drstrip li{display:grid;gap:4px;align-content:start}
.drstrip b{font-family:var(--ff-display);font-weight:400;font-size:clamp(28px,2.6vw,36px);
  line-height:1;color:var(--navy-800)}
.drstrip small{font-size:13px;line-height:1.5;color:var(--muted)}

.credits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;list-style:none;padding:0;margin:0}
.credit{position:relative;overflow:hidden;display:grid;gap:16px;align-content:start;
  padding:28px 24px 30px;border-radius:26px;background:#fff;border:1px solid var(--line-soft);
  box-shadow:0 34px 70px -60px rgba(17,21,58,.55);transition:transform .3s ease,box-shadow .3s ease}
.credit:hover{transform:translateY(-3px);box-shadow:0 40px 80px -58px rgba(17,21,58,.6)}
.credit__n{position:absolute;right:18px;top:8px;font-family:var(--ff-display);font-size:52px;line-height:1;
  color:rgba(42,51,121,.07);pointer-events:none}
.credit__ico{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;
  background:var(--green-50);color:var(--green-700)}
.credit__ico svg{width:20px;height:20px}
.credit p{font-size:15px;line-height:1.6;color:var(--ink-soft)}

.spec{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(28px,4.4vw,70px);align-items:start}
.chipset{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 0;padding:0;list-style:none}
.chipset li{padding:11px 18px;border-radius:999px;background:var(--paper-2);border:1px solid var(--line);
  font-size:14.5px;line-height:1.4;color:var(--navy-800)}
.spec__card{padding:clamp(26px,3vw,38px);border-radius:28px;color:#fff;
  background:linear-gradient(155deg,var(--navy-900),var(--navy-700));
  box-shadow:0 50px 90px -62px rgba(17,20,49,.8)}
.spec__card h3{font-family:var(--ff-display);font-weight:400;font-size:clamp(22px,2vw,27px);color:#fff}
.spec__card > p{margin-top:12px;font-size:15px;line-height:1.7;color:rgba(255,255,255,.75)}
.spec__list{display:grid;gap:12px;margin:24px 0 0;padding:0;list-style:none}
.spec__list li{display:flex;gap:13px;align-items:flex-start;font-size:15px;line-height:1.55;
  color:rgba(255,255,255,.92)}
.spec__list svg{flex:none;width:24px;height:24px;padding:6px;border-radius:50%;
  background:rgba(82,176,79,.22);color:var(--green-400)}
@media (max-width:1040px){.credits{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.drphil{grid-template-columns:1fr}}
@media (max-width:860px){.spec{grid-template-columns:1fr}}
@media (max-width:560px){.credits{grid-template-columns:1fr}
  .drstrip{grid-template-columns:1fr;gap:18px}}

/* the weight loss page sets its labels in a 10.5-11.5px mono, which is below
   what reads comfortably on a phone */
@media (max-width:560px){
  .wl-kicker{font-size:12.5px}
  .wl-steps4 span{font-size:12px}
  .wl-report figcaption small,.wl-stats dd,.wl-sticky__list small{font-size:12px}
  .wl-arch figcaption,.wl-sticky__frame figcaption{font-size:12px}
  .dm-card__seal{font-size:12px}
  .about-c__eyebrow{font-size:12px}
  .wl-row > b{font-size:1.45rem}
}


/* ===== Sitemap page ===================================================== */
.drhero--plain{padding-bottom:0}
.drhero--plain .lede{max-width:62ch}
.smap{display:grid;gap:clamp(26px,3vw,44px);
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.smap__col h2{margin:0 0 14px;font-family:var(--ff-display);font-size:1.3rem;color:var(--navy-900)}
.smap__col ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.smap__col li{border-bottom:1px solid var(--line)}
.smap__col a{display:block;padding:11px 2px;font-size:15px;color:var(--navy-700);
  text-decoration:none;transition:color .2s,padding-left .2s}
.smap__col a:hover,.smap__col a:focus-visible{color:var(--green-700);padding-left:6px}

/* ===== Blog index ======================================================= */
.pcard-b-grid{display:grid;gap:clamp(22px,2.6vw,34px);
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.pcard-b{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:22px;
  overflow:hidden;background:var(--paper);text-decoration:none;
  transition:transform .25s,box-shadow .25s,border-color .25s}
.pcard-b:hover,.pcard-b:focus-visible{transform:translateY(-4px);border-color:transparent;
  box-shadow:0 38px 70px -46px rgba(17,21,58,.5)}
.pcard-b__img{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--green-50)}
.pcard-b__img img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s cubic-bezier(.22,.61,.36,1)}
.pcard-b:hover .pcard-b__img img{transform:scale(1.04)}
.pcard-b__body{display:flex;flex-direction:column;gap:9px;flex:1;
  padding:clamp(18px,2vw,26px)}
.pcard-b__body time{font-size:12.5px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--green-700)}
.pcard-b__body h2{margin:0;font-family:var(--ff-display);font-size:1.22rem;line-height:1.3;
  color:var(--navy-900)}
.pcard-b__body p{margin:0;font-size:14.5px;line-height:1.65;color:var(--navy-600)}
.pcard-b__more{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:14px;
  font-size:14px;font-weight:700;color:var(--navy-900)}
.pcard-b__more svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;
  transition:transform .25s}
.pcard-b:hover .pcard-b__more svg{transform:translateX(4px)}

/* ===== A single post ==================================================== */
.post{padding-top:clamp(26px,3.4vw,46px)}
.post__head{max-width:860px;margin:0 0 clamp(26px,3vw,38px)}
.post__title{margin:16px 0 0;font-family:var(--ff-display);font-weight:500;
  font-size:clamp(30px,4.1vw,54px);line-height:1.1;letter-spacing:-.015em;
  color:var(--navy-900)}
.post__meta{display:flex;align-items:center;gap:12px;margin:18px 0 0;
  font-size:14px;color:var(--navy-600)}
.post__meta i{width:4px;height:4px;border-radius:50%;background:var(--green-400);
  display:inline-block}
.post__hero{margin:0 0 clamp(30px,3.6vw,52px);border-radius:26px;overflow:hidden;
  aspect-ratio:21/9;box-shadow:0 50px 90px -70px rgba(17,21,58,.7)}
.post__hero img{width:100%;height:100%;object-fit:cover;display:block}

.post__grid{display:grid;gap:clamp(34px,4vw,70px);
  grid-template-columns:minmax(0,1fr) 322px;align-items:start}

.post__copy{font-size:16.5px;line-height:1.82;color:var(--navy-700);max-width:72ch}
.post__copy > :first-child{margin-top:0}
.post__copy p{margin:0 0 1.2em}
.post__copy h2,.post__copy h3,.post__copy h4{margin:2em 0 .55em;font-family:var(--ff-display);
  font-weight:500;color:var(--navy-900);line-height:1.25;letter-spacing:-.01em}
.post__copy h2{font-size:1.72rem}
.post__copy h3{font-size:1.36rem}
.post__copy h4{font-size:1.1rem}
.post__copy ul,.post__copy ol{margin:0 0 1.2em;padding-left:1.25em}
.post__copy li{margin:0 0 .55em;padding-left:.15em}
.post__copy li::marker{color:var(--green-600)}
.post__copy strong{color:var(--navy-900);font-weight:700}
.post__copy a{color:var(--green-700);text-underline-offset:3px}

/* the sidebar */
.post__side{position:sticky;top:98px;display:grid;gap:18px}
.pside{padding:24px 22px;border:1px solid var(--line);border-radius:22px;
  background:var(--paper)}
.pside__h{margin:0 0 16px;font-family:var(--ff-display);font-weight:500;font-size:1.18rem;
  color:var(--navy-900)}
.pside__list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.pside__list a{display:flex;gap:13px;align-items:center;padding:9px 8px;margin:0 -8px;
  border-radius:14px;text-decoration:none;transition:background .2s}
.pside__list a:hover,.pside__list a:focus-visible{background:var(--green-50)}
.pside__thumb{flex:0 0 62px;width:62px;height:52px;border-radius:11px;overflow:hidden;
  background:var(--green-50)}
.pside__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.pside__txt{display:grid;gap:3px;min-width:0}
.pside__txt time{font-size:11.5px;font-weight:700;letter-spacing:.055em;
  text-transform:uppercase;color:var(--green-700)}
.pside__txt b{font-size:13.5px;font-weight:600;line-height:1.35;color:var(--navy-900);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pside__all{display:inline-flex;align-items:center;gap:7px;margin-top:16px;
  font-size:13.5px;font-weight:700;color:var(--navy-900);text-decoration:none}
.pside__all svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;
  transition:transform .22s}
.pside__all:hover svg{transform:translateX(4px)}
.pside--cta{background:linear-gradient(180deg,#E9EDF9 0%,#EFF2FB 100%);border-color:transparent}
.pside--cta p{margin:0 0 18px;font-size:14px;line-height:1.65;color:var(--navy-600)}
.pside--cta .btn{width:100%;justify-content:center}
.pside__tel{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;
  font-size:14px;font-weight:700;color:var(--navy-900);text-decoration:none}
.pside__tel svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}

@media (max-width:1080px){
  .post__grid{grid-template-columns:minmax(0,1fr)}
  .post__side{position:static;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
  .post__copy{max-width:none}
}
@media (max-width:620px){
  .post__hero{aspect-ratio:16/10;border-radius:20px}
  .post__copy{font-size:16px}
}

@media (max-width:560px){
  .smap{gap:24px}
  .smap__col a{padding:13px 2px}
}

/* ===== Google reviews =================================================== */
.grev__box{border:1px solid var(--line);border-radius:24px;overflow:hidden;background:#fff;
  box-shadow:0 40px 80px -64px rgba(17,21,58,.5)}
.grev__head{display:flex;align-items:center;gap:clamp(16px,2.4vw,34px);flex-wrap:wrap;
  padding:clamp(20px,2.3vw,28px) clamp(20px,2.6vw,32px);border-bottom:1px solid var(--line)}
.grev__brand{display:flex;align-items:center;gap:13px;margin-right:auto}
.grev__g{width:30px;height:30px;flex:none}
.grev__brand-t{margin:0;font-size:16px;font-weight:700;color:var(--navy-900);letter-spacing:-.01em}
.grev__brand-s{margin:2px 0 0;font-size:13px;color:var(--navy-600)}
.grev__rating{display:flex;align-items:center;gap:10px}
.grev__score{font-size:1.5rem;font-weight:700;color:#E7711B;line-height:1}
.grev__stars{display:inline-flex;gap:2px}
.grev__star{width:17px;height:17px;color:#FBBC04;fill:currentColor;stroke:none}
.grev__star.is-empty{color:#DADCE0}
.grev__count{font-size:13.5px;color:var(--navy-600);white-space:nowrap}
.grev__cta{display:inline-flex;align-items:center;padding:10px 18px;border-radius:999px;
  background:#1A73E8;color:#fff;font-size:14px;font-weight:600;text-decoration:none;
  transition:background .2s}
.grev__cta:hover,.grev__cta:focus-visible{background:#1557B0}

.grev__track{display:flex;gap:16px;padding:clamp(18px,2.1vw,26px);overflow-x:auto;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.grev__track::-webkit-scrollbar{height:6px}
.grev__track::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.grev__empty{margin:0;font-size:15px;line-height:1.7;color:var(--navy-600)}

.grev-card{flex:0 0 302px;scroll-snap-align:start;margin:0;display:flex;flex-direction:column;
  gap:11px;padding:19px;border:1px solid var(--line);border-radius:16px;background:#fff}
.grev-card header{display:flex;align-items:center;gap:11px}
.grev-card__pic{flex:0 0 40px;width:40px;height:40px;border-radius:50%;overflow:hidden;
  display:grid;place-items:center;background:var(--green-50);color:var(--green-700);
  font-weight:700;font-size:16px}
.grev-card__pic img{width:100%;height:100%;object-fit:cover;display:block}
.grev-card__who{display:grid;gap:1px;min-width:0;margin-right:auto}
.grev-card__who b{font-size:14px;font-weight:600;color:var(--navy-900)}
.grev-card__who small{font-size:12.5px;color:var(--navy-600)}
.grev-card__g{width:17px;height:17px;flex:none;opacity:.9}
.grev-card__stars{display:inline-flex;gap:2px}
.grev-card blockquote{margin:0;font-size:14px;line-height:1.72;color:var(--navy-700);
  display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}

.grev__foot{padding:16px clamp(20px,2.6vw,32px);border-top:1px solid var(--line);
  background:#FAFBFE}
.grev__foot a{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:700;
  color:#1A73E8;text-decoration:none}
.grev__foot svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}

@media (max-width:620px){
  .grev__head{gap:14px}
  .grev__brand{margin-right:0;width:100%}
  .grev__cta{width:100%;justify-content:center}
  .grev-card{flex-basis:262px}
}

/* ===== Assistant ======================================================== */
.abot{position:fixed;right:clamp(14px,2vw,26px);bottom:clamp(14px,2vw,26px);z-index:120;
  font-family:var(--ff-sans)}
.abot__launch{position:relative;display:grid;place-items:center;width:58px;height:58px;
  border:0;border-radius:50%;cursor:pointer;background:var(--green-600);color:#fff;
  box-shadow:0 16px 34px -12px rgba(42,51,121,.6);transition:transform .22s,background .22s}
.abot__launch:hover,.abot__launch:focus-visible{transform:scale(1.06);background:var(--green-700)}
.abot__launch svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;
  grid-area:1/1;transition:opacity .2s,transform .2s}
.abot__launch-x{opacity:0;transform:rotate(-45deg)}
.abot[data-open] .abot__launch-i{opacity:0;transform:rotate(45deg)}
.abot[data-open] .abot__launch-x{opacity:1;transform:none}

.abot__panel{position:absolute;right:0;bottom:70px;width:min(372px,calc(100vw - 28px));
  display:flex;flex-direction:column;max-height:min(560px,calc(100vh - 140px));
  border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;
  box-shadow:0 40px 90px -40px rgba(17,21,58,.5);
  opacity:0;visibility:hidden;transform:translateY(10px) scale(.98);
  transition:opacity .22s,transform .22s,visibility .22s}
.abot[data-open] .abot__panel{opacity:1;visibility:visible;transform:none}

.abot__head{display:flex;align-items:center;gap:11px;padding:14px 15px;
  background:var(--navy-600);color:#fff}
.abot__avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.16);flex:none}
.abot__avatar svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:1.7}
.abot__who{display:grid;gap:1px;margin-right:auto;min-width:0}
.abot__who b{font-size:14.5px}
.abot__who small{font-size:11.5px;opacity:.75}
.abot__close{display:grid;place-items:center;width:30px;height:30px;border:0;cursor:pointer;
  border-radius:50%;background:rgba(255,255,255,.14);color:#fff}
.abot__close:hover{background:rgba(255,255,255,.26)}
.abot__close svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2}

.abot__log{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;padding:16px 15px;display:flex;flex-direction:column;
  gap:12px;background:var(--navy-50)}
.abot__msg{display:flex;flex-direction:column;gap:5px;max-width:86%}
.abot__msg--bot{align-self:flex-start}
.abot__msg--you{align-self:flex-end;align-items:flex-end}
.abot__bubble{padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.6;
  background:#fff;color:var(--navy-700);border:1px solid var(--line)}
.abot__msg--you .abot__bubble{background:var(--green-600);color:#fff;border-color:transparent}
.abot__bubble a{color:var(--green-700);font-weight:600}
.abot__msg--you .abot__bubble a{color:#fff}
.abot__note{display:block;margin-top:2px;font-size:12.5px;color:var(--navy-600)}
.abot__src{font-size:12px;font-weight:700;color:var(--navy-600);text-decoration:none}
.abot__src:hover{color:var(--green-700);text-decoration:underline}
.abot__btn{display:inline-block;margin-top:2px;padding:8px 14px;border-radius:999px;
  background:var(--green-600);color:#fff !important;font-size:13.5px;font-weight:700;
  text-decoration:none}

.abot__chips{display:flex;flex-wrap:wrap;gap:7px;padding:11px 15px 0;background:#fff}
.abot__chip{padding:7px 12px;border:1px solid var(--line);border-radius:999px;cursor:pointer;
  background:#fff;color:var(--navy-700);font-size:12.5px;font-family:inherit;text-align:left;
  transition:border-color .18s,background .18s}
.abot__chip:hover,.abot__chip:focus-visible{background:var(--green-50);border-color:var(--green-400)}

.abot__form{display:flex;gap:8px;padding:11px 15px 14px;background:#fff}
.abot__input{flex:1;min-width:0;padding:10px 13px;border:1px solid var(--line);border-radius:999px;
  font-size:14px;font-family:inherit;color:var(--navy-900);background:var(--navy-50)}
.abot__input:focus{outline:2px solid var(--green-400);outline-offset:1px}
.abot__send{display:grid;place-items:center;width:40px;height:40px;flex:none;border:0;
  border-radius:50%;cursor:pointer;background:var(--navy-600);color:#fff}
.abot__send:hover{background:var(--navy-500)}
.abot__send svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2}

/* the phone has a fixed action bar of its own (min-height 52 + 12 padding,
   sitting 10px off the bottom plus the safe area); clear it */
@media (max-width:760px){
  .abot{right:12px;bottom:calc(88px + env(safe-area-inset-bottom,0px))}
  .abot__panel{max-height:min(66vh,calc(100vh - 210px))}
}
@media (prefers-reduced-motion:reduce){
  .abot__launch,.abot__panel,.abot__launch svg{transition:none}
}

/* ===== Thank you ======================================================== */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.thanks{padding-top:clamp(40px,6vw,90px)}
.thanks__in{max-width:720px;text-align:center}
.thanks__mark{display:grid;place-items:center;width:74px;height:74px;margin:0 auto 26px;
  border-radius:50%;background:var(--green-50);color:var(--green-700)}
.thanks__mark--warn{background:#FDF1E7;color:#B4590F}
.thanks__mark svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:2.2}
.thanks__in .lede{margin-inline:auto;max-width:56ch}
.thanks__what{margin:18px 0 0;font-size:13.5px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--navy-600)}
.thanks .btn-row{justify-content:center;margin-top:clamp(26px,3vw,38px)}
.thanks__clinics{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  margin-top:clamp(34px,4vw,56px);padding-top:clamp(26px,3vw,38px);border-top:1px solid var(--line);
  text-align:left}
.thanks__clinics p{margin:0;font-size:14.5px;line-height:1.7;color:var(--navy-600)}
.thanks__clinics b{display:block;color:var(--navy-900)}
