/* ==========================================================================
   Alamo Primary Care — design prototype
   Palette: ONLY the two colours in the logo artwork —
   navy #2A3078 (H235 S48) and green #52B04F (H118 S38). Every token is a
   lightness step of one of them; no other hues are introduced.
   Action colour is the logo navy itself; green marks hover and confirmations.
   ========================================================================== */

/* --- 1. Tokens ----------------------------------------------------------- */
:root{
  /* every value below is a lightness step of one of the two logo colours */
  --navy-900:#0C0E22;
  --navy-800:#141739;
  --navy-700:#20245B;
  --navy-600:#2A3078;
  --navy-400:#4A53C0;
  --navy-100:#CED0EE;
  --navy-50:#F0F1FA;

  /* action colour = the logo navy itself */
  --blue-700:#1A1E4C;
  --blue-600:#222762;
  --blue-500:#2A3078;
  --blue-200:#B3B7E5;
  --blue-50:#F0F1FA;

  --green-700:#2E632C;
  --green-600:#3B7F39;
  --green-500:#52B04F;
  --green-200:#B3DCB2;
  --green-50:#EEF7ED;

  --paper:#FAFAFB;
  --paper-2:#F2F2F5;
  --ink:#111431;
  --muted:#5A5D81;
  --line:rgba(42,48,120,.14);
  --line-soft:rgba(42,48,120,.08);

  --ff-display:"Fraunces",Georgia,"Times New Roman",serif;
  --ff-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;

  --shell:1320px;
  --gutter:clamp(20px,4vw,48px);
  --radius:20px;
  --radius-lg:28px;
  --radius-xl:40px;

  --ease:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,.05,.36,1);

  --header-h:78px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--ff-sans);
  font-size:16px;
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
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}
::selection{background:var(--navy-700);color:#fff}

/* --- 2. Typography ------------------------------------------------------- */
.display{
  text-wrap:balance;            /* no single-word last lines */
  font-family:var(--ff-display);
  font-weight:400;
  font-variation-settings:"SOFT" 0,"WONK" 0,"opsz" 120;
  line-height:1.02;
  letter-spacing:-.022em;
  color:var(--navy-800);
}
.d1{font-size:clamp(2.9rem,6.2vw,5.4rem)}
.d2{font-size:clamp(2.3rem,4.4vw,3.75rem)}
.d3{font-size:clamp(1.7rem,2.6vw,2.35rem);line-height:1.1}
.d4{font-size:clamp(1.25rem,1.6vw,1.5rem);line-height:1.2;letter-spacing:-.012em}

.lede{font-size:clamp(1rem,1.15vw,1.125rem);line-height:1.68;color:var(--muted);max-width:52ch}
.body-sm{font-size:.9375rem;line-height:1.65;color:var(--muted)}

.eyebrow{
  display:inline-flex;align-items:center;gap:.6em;
  font-size:.6875rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--navy-400);
}
.eyebrow::before{
  content:"";width:22px;height:1px;background:currentColor;opacity:.5;
}
.eyebrow--center{justify-content:center}
.eyebrow--plain::before{display:none}
.eyebrow--navy{color:var(--navy-600)}
.eyebrow--light{color:var(--blue-200)}

/* --- 3. Layout ----------------------------------------------------------- */
.shell{width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:var(--gutter)}
.shell--wide{max-width:1560px}
[id]{scroll-margin-top:104px}
.section{padding-block:clamp(58px,6.4vw,100px)}
.section--tight{padding-block:clamp(44px,4.6vw,72px)}
.section-head{max-width:760px}
.section-head--center{margin-inline:auto;text-align:center}
.stack-sm>*+*{margin-top:14px}
.stack>*+*{margin-top:22px}
.stack-lg>*+*{margin-top:34px}

/* --- 4. Buttons ---------------------------------------------------------- */
.btn{
  position:relative;display:inline-flex;align-items:center;gap:.7em;
  padding:14px 20px 14px 24px;border-radius:999px;
  font-size:.9375rem;font-weight:500;letter-spacing:-.005em;white-space:nowrap;
  transition:background-color .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease);
  will-change:transform;
}
.btn__ico{
  display:grid;place-items:center;width:30px;height:30px;border-radius:50%;
  background:rgba(255,255,255,.16);flex:none;
  transition:background-color .35s var(--ease);
}
.btn__ico svg{width:13px;height:13px;transition:transform .5s var(--ease)}
.btn:hover .btn__ico svg{transform:translate(2px,-2px)}

/* hover accent — the icon circle and outlines pick up the logo's green */
.btn:hover .btn__ico,.btn:focus-visible .btn__ico{background:var(--green-500);color:#fff}

.btn--navy{background:var(--navy-700);color:#fff}
.btn--navy:hover{background:var(--navy-800)}
.btn--blue{background:var(--blue-500);color:#fff}
.btn--blue:hover{background:var(--blue-600)}
.btn--green{background:var(--green-500);color:#fff}
.btn--green:hover{background:var(--green-600)}
.btn--ghost{border:1px solid var(--line);color:var(--navy-800);padding-right:24px}
.btn--ghost .btn__ico{background:var(--navy-50)}
.btn--ghost:hover{border-color:var(--green-500);background:var(--green-50)}
.btn--light{background:#fff;color:var(--navy-800)}
.btn--light .btn__ico{background:var(--navy-50)}
.btn--outline-light{border:1px solid rgba(255,255,255,.32);color:#fff}
.btn--outline-light:hover{border-color:var(--green-500);background:rgba(82,176,79,.16)}
.btn--sm{padding:10px 14px 10px 18px;font-size:.875rem}
.btn--sm .btn__ico{width:24px;height:24px}

.btn-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:clamp(22px,2.2vw,30px)}
.link-arrow{
  display:inline-flex;align-items:center;gap:.55em;font-weight:500;font-size:.9375rem;
  color:var(--navy-700);
}
.link-arrow svg{width:14px;height:14px;transition:transform .45s var(--ease)}
.link-arrow:hover svg{transform:translateX(4px)}

/* --- 5. Header ----------------------------------------------------------- */
.topline{height:4px;background:linear-gradient(90deg,var(--navy-800) 0%,var(--navy-600) 34%,var(--blue-500) 100%)}

.utility{
  background:var(--navy-800);color:rgba(255,255,255,.78);
  font-size:.8125rem;letter-spacing:-.005em;
  position:relative;z-index:60;
  overflow:hidden;
  transition:height .45s var(--ease),opacity .35s var(--ease),background-color .4s var(--ease);
}
.utility__inner{display:flex;align-items:center;justify-content:space-between;gap:20px;height:40px}
.utility__group{display:flex;align-items:center;gap:22px;min-width:0}
.u-brief{display:none}
.utility__item{display:inline-flex;align-items:center;gap:.5em;white-space:nowrap}
.utility__item svg{width:13px;height:13px;color:var(--blue-200);flex:none}
.utility a:hover{color:#fff}
.utility__sep{width:1px;height:14px;background:rgba(255,255,255,.18)}

.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(250,250,251,.82);
  backdrop-filter:blur(14px) saturate(1.4);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);
  border-bottom:1px solid transparent;
  transition:border-color .4s var(--ease),background-color .4s var(--ease),box-shadow .4s var(--ease);
}
.site-header.is-stuck{border-bottom-color:var(--line-soft);box-shadow:0 10px 40px -28px rgba(17,20,49,.5)}
.site-header.is-stuck .utility{height:0;opacity:0}
.site-header.is-stuck .topline{height:3px}

/* --- overlay variant: header floats over a full-bleed hero --------------- */
.site-header--overlay{
  position:fixed;top:0;left:0;right:0;
  background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;
  border-bottom:1px solid transparent;
}
/* gradient veil: solid enough at the top for the utility row, gone by ~230px */
.site-header--overlay::before{
  content:"";position:absolute;left:0;right:0;top:0;height:230px;z-index:-1;pointer-events:none;
  background:linear-gradient(to bottom,
    rgba(7,8,19,.82) 0%,
    rgba(7,8,19,.66) 26%,
    rgba(7,8,19,.4)  52%,
    rgba(7,8,19,.16) 76%,
    rgba(7,8,19,0)   100%);
  opacity:1;transition:opacity .45s var(--ease);
}
.site-header--overlay.is-stuck::before{opacity:0}
.site-header--overlay .utility{background:transparent;color:rgba(255,255,255,.78)}
.site-header--overlay .utility__inner{border-bottom:1px solid rgba(255,255,255,.16)}
.site-header--overlay .utility a:hover{color:#fff}
.site-header--overlay .nav__link{color:#fff}
.site-header--overlay .nav__link:hover{background:rgba(255,255,255,.12)}
.site-header--overlay .nav__link.is-active{background:rgba(255,255,255,.16);color:#fff;font-weight:500}
.site-header--overlay .nav__link.is-active::after{display:none}
.site-header--overlay .nav__link::after{background:#fff}
.site-header--overlay .nav__link--has-menu svg{opacity:.8}
.brand{position:relative}
.brand__mark{display:block;transition:opacity .4s var(--ease)}
.brand__mark--light{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:0}
.site-header--overlay .brand__mark--dark{opacity:0}
.site-header--overlay .brand__mark--light{opacity:1}
.site-header--overlay.is-stuck .brand__mark--dark{opacity:1}
.site-header--overlay.is-stuck .brand__mark--light{opacity:0}
.site-header--overlay .nav__toggle{border-color:rgba(255,255,255,.34)}
.site-header--overlay .nav__toggle span,
.site-header--overlay .nav__toggle span::before,
.site-header--overlay .nav__toggle span::after{background:#fff}
/* once scrolled past the hero it becomes the normal light bar */
.site-header--overlay.is-stuck{
  background:rgba(250,250,251,.88);
  backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);
}
.site-header--overlay.is-stuck .nav__link{color:var(--navy-800)}
.site-header--overlay.is-stuck .nav__link:hover{background:transparent}
.site-header--overlay.is-stuck .nav__link.is-active{background:transparent;color:var(--navy-700)}
.site-header--overlay.is-stuck .nav__link.is-active::after{display:block;transform:scaleX(1)}
.site-header--overlay.is-stuck .nav__toggle{border-color:var(--line)}
.site-header--overlay.is-stuck .nav__toggle span,
.site-header--overlay.is-stuck .nav__toggle span::before,
.site-header--overlay.is-stuck .nav__toggle span::after{background:var(--navy-800)}

.nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:var(--header-h);gap:18px}
.nav__group{display:flex;align-items:center;gap:4px}
.nav__group--right{justify-content:flex-end}
.nav__link{
  position:relative;padding:9px 13px;border-radius:999px;
  font-size:.9rem;font-weight:450;color:var(--navy-800);white-space:nowrap;
  transition:color .3s var(--ease),background-color .3s var(--ease);
}
.nav__link::after{
  content:"";position:absolute;left:13px;right:13px;bottom:4px;height:1.5px;
  background:var(--blue-500);transform:scaleX(0);transform-origin:left;
  transition:transform .45s var(--ease);
}
.nav__link:hover::after,.nav__link.is-active::after{transform:scaleX(1)}
.nav__link.is-active{color:var(--navy-700);font-weight:550}
.nav__link--has-menu{display:inline-flex;align-items:center;gap:.4em}
.nav__link--has-menu svg{width:9px;height:9px;opacity:.55;transition:transform .4s var(--ease)}
.nav__item.is-open .nav__link--has-menu svg{transform:rotate(180deg)}

.brand{display:flex;align-items:center;justify-content:center;padding-inline:10px}
.brand img{width:clamp(138px,13vw,178px);height:auto}

.nav__cta{margin-left:8px}
.nav__toggle{display:none;width:42px;height:42px;place-items:center;border-radius:50%;border:1px solid var(--line)}
.nav__toggle span{display:block;width:17px;height:1.5px;background:var(--navy-800);position:relative;transition:transform .4s var(--ease)}
.nav__toggle span::before,.nav__toggle span::after{
  content:"";position:absolute;left:0;width:17px;height:1.5px;background:var(--navy-800);
  transition:transform .4s var(--ease),opacity .3s var(--ease);
}
.nav__toggle span::before{top:-5.5px}
.nav__toggle span::after{top:5.5px}
body.menu-open .nav__toggle span{transform:rotate(45deg)}
body.menu-open .nav__toggle span::before{transform:translateY(5.5px) rotate(-90deg)}
body.menu-open .nav__toggle span::after{opacity:0}

/* Mega menu */
.megamenu{
  /* contained panel centred under the header, not a full-bleed band */
  position:absolute;top:100%;left:50%;margin-top:10px;
  width:min(1300px, calc(100vw - 2 * var(--gutter)));
  background:#fff;border:1px solid var(--line-soft);border-radius:22px;overflow:hidden;
  box-shadow:0 46px 92px -50px rgba(17,20,49,.55), 0 4px 12px -6px rgba(17,20,49,.08);
  opacity:0;visibility:hidden;transform:translateX(-50%) translateY(-10px);
  transition:opacity .35s var(--ease),transform .45s var(--ease),visibility .35s;
  z-index:40;
}
.nav__item.is-open .megamenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.megamenu__inner{
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(0,.58fr) minmax(0,.82fr);
  gap:clamp(20px,2vw,36px);
  padding:clamp(24px,2.2vw,32px) clamp(24px,2.2vw,34px) clamp(26px,2.4vw,34px);
  align-items:start;
}
.megamenu__title{
  font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  color:var(--navy-400);padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--line-soft);
}
.megamenu__list{
  display:grid;grid-auto-flow:column;grid-template-rows:repeat(6,auto);
  gap:2px clamp(16px,1.6vw,28px);
}
.megamenu__list--single{grid-auto-flow:row;grid-template-rows:none}

.megamenu__link{
  position:relative;display:flex;align-items:center;gap:12px;
  padding:9px 12px;margin-left:-12px;border-radius:12px;
  font-size:.9rem;color:var(--navy-800);will-change:transform;
}
.megamenu__link::before{
  content:"";position:absolute;inset:0;border-radius:12px;z-index:-1;
  background:var(--navy-50);opacity:0;transform:scale(.96);
  transition:opacity .35s var(--ease),transform .45s var(--ease);
}
.megamenu__link:hover::before,.megamenu__link:focus-visible::before{opacity:1;transform:none}
.megamenu__ico{
  display:grid;place-items:center;width:30px;height:30px;border-radius:9px;flex:none;
  background:var(--navy-50);color:var(--navy-600);
  transition:background-color .35s var(--ease),color .35s var(--ease),transform .45s var(--ease);
}
.megamenu__ico svg{width:14px;height:14px}
.megamenu__link:hover .megamenu__ico{background:var(--green-500);color:#fff;transform:rotate(-6deg) scale(1.06)}
.megamenu__link>span:not(.megamenu__ico){flex:1;min-width:0}
.megamenu__link i{
  width:13px;height:13px;flex:none;opacity:0;transform:translateX(-4px);color:var(--green-600);
  transition:opacity .3s var(--ease),transform .4s var(--ease);
}
.megamenu__link i svg{width:13px;height:13px;display:block}
.megamenu__link:hover i{opacity:1;transform:none}

/* preview card — image and label follow whichever service is hovered */
.megamenu__feature{
  position:relative;overflow:hidden;border-radius:18px;background:var(--navy-700);
  aspect-ratio:1/.92;display:block;color:#fff;
}
.megamenu__feature img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transform:scale(1.04);
}
.megamenu__feature img.is-on{opacity:1}
.megamenu__feature::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(17,20,49,.94) 4%,rgba(17,20,49,.5) 38%,rgba(17,20,49,.05) 70%);
}
.megamenu__cap{position:absolute;left:0;right:0;bottom:0;padding:20px;z-index:1}
.megamenu__cap b{
  display:block;font-family:var(--ff-display);font-weight:400;
  font-size:1.22rem;letter-spacing:-.015em;line-height:1.18;
}
.megamenu__cap small{
  display:inline-flex;align-items:center;gap:.4em;margin-top:6px;
  font-size:.8125rem;color:rgba(255,255,255,.82);
}
.megamenu__cap small svg{width:12px;height:12px}

.megamenu__foot{
  grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;
  justify-content:space-between;margin-top:6px;padding-top:18px;
  border-top:1px solid var(--line-soft);
}
.megamenu__foot p{font-size:.875rem;color:var(--muted)}

/* Mobile drawer */
.drawer{
  position:fixed;inset:0;z-index:45;background:var(--paper);
  padding:calc(var(--header-h) + 56px) var(--gutter) 40px;
  overflow-y:auto;
  clip-path:inset(0 0 100% 0);
  transition:clip-path .6s var(--ease);
}
body.menu-open .drawer{clip-path:inset(0 0 0 0)}
.drawer__link{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 0;border-bottom:1px solid var(--line-soft);
  font-family:var(--ff-display);font-size:1.5rem;color:var(--navy-800);
}
.drawer__sub{padding:4px 0 14px}
.drawer__sub a{display:block;padding:7px 0;font-size:.9375rem;color:var(--muted)}
.drawer__foot{margin-top:28px;display:grid;gap:12px}

/* --- 6. Reveal primitives ----------------------------------------------- */
[data-reveal]{opacity:0}
.split-line{display:block;overflow:hidden}
.split-line>span{display:block;will-change:transform}
/* JS-split words: pad so descenders are not clipped by overflow:hidden */
.split-word{padding-bottom:.18em;margin-bottom:-.18em}
.split-word>span{will-change:transform}
.reveal-img{overflow:hidden}
.reveal-img>img{will-change:transform}
@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1 !important;transform:none !important}
  *{animation-duration:.01ms !important;transition-duration:.01ms !important}
}

/* --- 7. Cards & surfaces ------------------------------------------------- */
.surface{background:#fff;border:1px solid var(--line-soft);border-radius:var(--radius-lg)}
.pattern{
  position:absolute;inset:0;pointer-events:none;opacity:.34;
  background:url("../img/pattern-swirl.jpg") center/cover no-repeat;
  mix-blend-mode:multiply;
}
/* --- texture: fine dot grid for the light sections -----------------------
   Derived from the logo navy at very low alpha, masked to fade out at the top
   and bottom so section edges stay crisp. Sits behind content, above the
   section's own background. */
.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%);
}
/* optional soft corner tint, for sections that need a little depth */
.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%);
}

.grain{
  position:absolute;inset:0;pointer-events:none;opacity:.03;z-index:1;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ==========================================================================
   PAGE 1 — Portal / Landing
   ========================================================================== */
.portal{position:relative;overflow:clip}
.portal__bg{
  position:absolute;inset:-10% -10% auto -10%;height:120%;pointer-events:none;z-index:0;
  background:
    radial-gradient(55% 45% at 12% 8%, rgba(42,48,120,.16), transparent 62%),
    radial-gradient(50% 50% at 88% 4%, rgba(42,48,120,.14), transparent 60%),
    radial-gradient(60% 40% at 70% 92%, rgba(42,48,120,.11), transparent 65%);
  filter:blur(6px);
}
.portal__inner{position:relative;z-index:1;padding-block:clamp(46px,6vw,86px) clamp(34px,4vw,56px)}
.portal__grid{
  display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1.28fr);
  gap:clamp(32px,4.5vw,76px);align-items:center;
}
.portal__copy{max-width:560px}
.portal__title{margin-block:20px 22px}
.portal__chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.chip{
  display:inline-flex;align-items:center;gap:.55em;
  padding:9px 15px;border-radius:999px;background:#fff;border:1px solid var(--line-soft);
  font-size:.8125rem;font-weight:500;color:var(--navy-800);
  box-shadow:0 12px 30px -26px rgba(17,20,49,.7);
}
.chip svg{width:13px;height:13px;color:var(--blue-600)}
.chip--solid{background:var(--navy-700);color:#fff;border-color:transparent}
.chip--solid svg{color:var(--blue-200)}

/* portal service cards (the shared card component — only the portal uses it now) */
.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.4vw,18px)}

.scard{
  --tint:17,20,49;
  position:relative;display:block;overflow:hidden;isolation:isolate;
  border-radius:20px;aspect-ratio:1/.78;background:var(--navy-800);
  transition:transform .7s var(--ease),box-shadow .7s var(--ease);
  will-change:transform;
}
.scard--blue{--tint:58,66,166}
.scard__img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transform:scale(1.03);object-position:center 28%;filter:saturate(.94) contrast(1.04);
  transition:transform 1.2s var(--ease),filter .7s var(--ease);
}
.scard__wash{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(to top,
      rgba(var(--tint),.97) 0%,
      rgba(var(--tint),.92) 19%,
      rgba(var(--tint),.62) 32%,
      rgba(var(--tint),.2)  45%,
      rgba(var(--tint),0)   58%),
    linear-gradient(to bottom, rgba(12,14,34,.3) 0%, rgba(12,14,34,0) 32%);
  transition:transform .8s var(--ease),opacity .6s var(--ease);
}
.scard__body{position:absolute;inset:auto 0 0 0;z-index:2;color:#fff;padding:clamp(16px,1.35vw,22px)}
.scard__name{
  font-family:var(--ff-display);font-weight:400;
  font-size:clamp(1rem,1.22vw,1.2rem);line-height:1.16;letter-spacing:-.013em;
  max-width:15ch;padding-right:40px;
}
.scard__desc{
  display:grid;grid-template-rows:0fr;opacity:0;margin-top:0;padding-right:44px;
  font-size:.8125rem;line-height:1.5;color:rgba(255,255,255,.84);
  transition:grid-template-rows .6s var(--ease),opacity .45s var(--ease),margin-top .6s var(--ease);
}
.scard__desc>span{overflow:hidden}
.scard__go{
  position:absolute;right:clamp(14px,1.2vw,18px);bottom:clamp(14px,1.2vw,18px);
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.18);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  opacity:0;transform:translateY(10px);
  transition:opacity .5s var(--ease),transform .6s var(--ease),background-color .4s var(--ease);
}
.scard__go svg{width:14px;height:14px}
.scard::after{
  content:"";position:absolute;inset:0;z-index:3;border-radius:inherit;pointer-events:none;
  box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.32);
  opacity:0;transition:opacity .5s var(--ease);
}
.scard:hover,.scard:focus-visible{transform:translateY(-6px);box-shadow:0 44px 74px -48px rgba(12,14,34,.72)}
.scard:hover .scard__img{transform:scale(1.11);filter:saturate(1.08) contrast(1.05)}
.scard:hover .scard__wash{transform:translateY(-7%)}
.scard:hover .scard__desc{grid-template-rows:1fr;opacity:1;margin-top:9px}
.scard:hover .scard__go{opacity:1;transform:none;background:rgba(255,255,255,.28)}
.scard:hover::after{opacity:1}
.scard:focus-visible{outline:none}

.scard--lg{aspect-ratio:1/.7;border-radius:24px}
.scard--lg .scard__body{padding:clamp(20px,1.8vw,28px)}
.scard--lg .scard__name{font-size:clamp(1.18rem,1.62vw,1.55rem);max-width:13ch}
.scard--lg .scard__desc{font-size:.875rem}
.scard--lg .scard__go{width:42px;height:42px;right:22px;bottom:22px}

/* locations bar */
.locbar{
  position:relative;z-index:1;margin-top:clamp(30px,3.6vw,52px);
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;
  padding:clamp(20px,2.2vw,30px);border-radius:var(--radius-lg);
  background:#fff;border:1px solid var(--line-soft);
  box-shadow:0 30px 60px -50px rgba(17,20,49,.6);
}
.locbar__pills{display:flex;flex-wrap:wrap;gap:12px}
.locpill{
  display:inline-flex;align-items:center;gap:12px;padding:12px 20px 12px 12px;border-radius:999px;
  border:1px solid var(--line);color:var(--navy-800);
  transition:background-color .45s var(--ease),color .45s var(--ease),border-color .45s var(--ease),transform .5s var(--ease);
}
.locpill__pin{
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:var(--blue-50);color:var(--blue-600);transition:background-color .45s var(--ease),color .45s var(--ease);
}
.locpill__pin svg{width:15px;height:15px}
.locpill b{display:block;font-size:.9375rem;font-weight:550;line-height:1.25}
.locpill small{display:block;font-size:.75rem;color:var(--muted);transition:color .45s var(--ease)}
.locpill:hover{background:var(--navy-700);border-color:var(--navy-700);color:#fff;transform:translateY(-2px)}
.locpill:hover .locpill__pin{background:var(--blue-500);color:#fff}
.locpill:hover small{color:rgba(255,255,255,.72)}

/* portal footer */
.portal-foot{
  position:relative;z-index:1;margin-top:clamp(34px,4vw,58px);padding-top:24px;
  border-top:1px solid var(--line-soft);
  display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;justify-content:space-between;
  font-size:.8125rem;color:var(--muted);
}
.portal-foot nav{display:flex;flex-wrap:wrap;gap:18px}
.portal-foot a:hover{color:var(--navy-700)}

/* ==========================================================================
   PAGE 2 — Primary Care home
   ========================================================================== */

/* hero — full-bleed photographic stage */
.hero-full{
  position:relative;min-height:100svh;display:flex;align-items:flex-end;
  padding-block:calc(var(--header-h) + 92px) clamp(40px,5vw,72px);
  overflow:hidden;isolation:isolate;color:#fff;
}
.hero-full__media{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero-full__media picture{display:block;width:100%;height:100%}
.hero-full__media img{
  width:100%;height:100%;object-fit:cover;object-position:center 14%;
  will-change:transform;
}
.hero-full__scrim{
  position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(to top, rgba(8,9,23,.9) 0%, rgba(8,9,23,.62) 20%, rgba(8,9,23,.18) 44%, rgba(8,9,23,.02) 62%, rgba(8,9,23,.34) 100%),
    linear-gradient(to right, rgba(8,9,23,.6) 0%, rgba(8,9,23,.22) 38%, rgba(8,9,23,0) 62%, rgba(8,9,23,.14) 100%);
}
.hero-full__inner{
  position:relative;z-index:1;width:100%;
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(30px,4vw,64px);align-items:end;
}
.hero-full__copy{max-width:660px}

/* announcement pill */
.announce{
  display:inline-flex;align-items:center;gap:14px;
  padding:7px 7px 7px 20px;border-radius:999px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  font-size:.875rem;color:rgba(255,255,255,.94);
  transition:background-color .4s var(--ease),transform .5s var(--ease);
}
.announce:hover{background:rgba(255,255,255,.22);transform:translateY(-2px)}
.announce:hover .announce__cta{color:var(--green-700)}
.announce__cta{
  display:inline-flex;align-items:center;gap:.4em;
  padding:7px 15px;border-radius:999px;background:#fff;color:var(--blue-600);
  transition:color .35s var(--ease);
  font-weight:550;font-size:.8125rem;white-space:nowrap;
}
.announce__cta svg{width:12px;height:12px}

.hero-full__title{
  margin-block:24px 20px;color:#fff;
  font-size:clamp(2.5rem,5.4vw,4.9rem);line-height:1.02;letter-spacing:-.025em;
  text-wrap:balance;
}
.hero-full__sub{
  font-size:clamp(1rem,1.2vw,1.18rem);line-height:1.62;
  color:rgba(255,255,255,.82);max-width:50ch;
}
.hero-full__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.btn--glass{
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.26);color:#fff;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.btn--glass:hover{background:rgba(255,255,255,.24)}
.btn--glass .btn__ico{background:rgba(255,255,255,.2)}

/* floating glass service cards */
.hero-full__cards{position:relative;min-height:340px;align-self:end}
.gcard{
  position:absolute;width:min(300px,84%);
  padding:22px;border-radius:22px;color:#fff;
  background:
    linear-gradient(158deg, rgba(255,255,255,.2) 0%, rgba(255,255,255,.07) 62%),
    rgba(11,12,30,.26);
  border:1px solid rgba(255,255,255,.24);
  backdrop-filter:blur(22px) saturate(1.35);-webkit-backdrop-filter:blur(22px) saturate(1.35);
  box-shadow:0 34px 66px -40px rgba(8,9,23,.95);
  transition:transform .7s var(--ease),background-color .5s var(--ease),border-color .5s var(--ease);
}
.gcard:hover{
  transform:translateY(-6px);border-color:rgba(255,255,255,.4);
  background:linear-gradient(158deg, rgba(255,255,255,.28) 0%, rgba(255,255,255,.12) 62%),rgba(11,12,30,.22);
}
.gcard__ico{
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.2);margin-bottom:44px;
}
.gcard__ico svg{width:17px;height:17px}
.gcard h3{font-family:var(--ff-display);font-weight:400;font-size:1.32rem;letter-spacing:-.015em;margin-bottom:10px}
.gcard p{font-size:.8125rem;line-height:1.6;color:rgba(255,255,255,.82)}
.gcard--a{right:0;top:0;z-index:2}
.gcard--b{left:0;bottom:0;z-index:1}

/* scroll-scrubbed text reveal — works on any [data-reveal="scrub"] element */
.is-scrub .split-word>span{opacity:.16}

/* value strip */
.values{background:var(--navy-800);color:#fff;position:relative;overflow:hidden}
.values__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.1)}
.value{background:var(--navy-800);padding:clamp(26px,3vw,40px) clamp(18px,2vw,32px);display:flex;gap:16px;align-items:flex-start}
.value__ico{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.08);color:var(--blue-200);flex:none}
.value__ico svg{width:18px;height:18px}
.value h3{font-family:var(--ff-display);font-size:1.0625rem;font-weight:400;letter-spacing:-.01em;margin-bottom:6px}
.value p{font-size:.8125rem;line-height:1.55;color:rgba(255,255,255,.62)}

/* about — centred statement, trust cluster, three cards */
.about-c{background:var(--navy-50);text-align:center}
.about-c__head{max-width:1140px;margin-inline:auto}
.eyebrow--dot::before{
  width:6px;height:6px;border-radius:50%;background:currentColor;opacity:1;
}
.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;
  will-change:filter;
}

.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:var(--blue-500);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 var(--navy-50);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 var(--line-soft);
  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)}

/* card visual — sits between the head and the copy */
.acard__viz{margin:clamp(18px,1.8vw,24px) 0 auto;min-height:74px;display:flex;align-items:center}

/* 1. named service rows — a photo alone at this size is unreadable, so each
   thumbnail carries its service name */
.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:var(--blue-600);
}
.asvc__more svg{width:11px;height:11px}

/* 2. provider avatar cluster */
.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)}

/* 3. feature card */
.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)}

/* stats — straddles the boundary into the providers band */
.stats-band{
  --overlap:clamp(52px,6vw,92px);
  position:relative;z-index:2;
  padding-block:clamp(30px,3.2vw,50px) 0;
  margin-bottom:calc(var(--overlap) * -1);
}
.providers-sec{
  --overlap:clamp(52px,6vw,92px);
  background:var(--navy-50);
  padding-top:calc(clamp(52px,5.4vw,84px) + var(--overlap));
}

/* stats */
.stats{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-radius:var(--radius-lg);overflow:hidden;background:#fff;
  border:1px solid var(--line-soft);
  box-shadow:0 40px 80px -46px rgba(17,20,49,.34), 0 2px 6px -2px rgba(17,20,49,.06);
}
.stat{padding:clamp(24px,2.6vw,34px);border-right:1px solid var(--line-soft)}
.stat:last-child{border-right:0}
.stat b{
  display:block;font-family:var(--ff-display);font-size:clamp(2rem,3.2vw,2.9rem);
  color:var(--navy-700);letter-spacing:-.03em;line-height:1;
}
.stat span{display:block;margin-top:8px;font-size:.8125rem;color:var(--muted);text-wrap:balance}

/* marquee — GSAP infinite loop, reacts to scroll velocity */
.marquee{
  position:relative;overflow:hidden;background:var(--paper);
  padding-block:clamp(26px,3vw,42px);
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%,#000 88%,transparent 100%);
          mask-image:linear-gradient(to right,transparent 0,#000 12%,#000 88%,transparent 100%);
}
.marquee__track{display:flex;align-items:center;width:max-content;will-change:transform}
.marquee__item{
  display:inline-flex;align-items:center;gap:clamp(28px,3.4vw,56px);
  padding-right:clamp(28px,3.4vw,56px);
  font-family:var(--ff-display);font-weight:400;
  font-size:clamp(1.9rem,3.9vw,3.4rem);line-height:1;letter-spacing:-.022em;
  color:var(--navy-600);white-space:nowrap;
}
.marquee__item svg{width:clamp(18px,1.7vw,26px);height:clamp(18px,1.7vw,26px);color:var(--navy-400);flex:none}

/* services — navy band with a horizontal card carousel */
.treatments{position:relative;background:var(--navy-800);color:#fff;overflow:hidden}
.treatments .eyebrow{color:var(--blue-200)}
.treatments h2{color:#fff}
.treatments__head{max-width:640px}

.tcarousel{overflow:hidden;margin-top:clamp(26px,3vw,44px)}
/* fallback when the pin cannot run (reduced motion, no GSAP) */
.tcarousel.is-free{overflow-x:auto;scrollbar-width:none}
.tcarousel.is-free::-webkit-scrollbar{display:none}
.tcarousel__track{
  display:flex;gap:clamp(14px,1.4vw,20px);
  width:max-content;will-change:transform;
}
.tcard{
  position:relative;flex:0 0 auto;
  height:clamp(300px,min(40svh,26vw),520px);aspect-ratio:1/.92;
  border-radius:20px;overflow:hidden;isolation:isolate;
  background:var(--navy-700);
  transition:transform .6s var(--ease);
}
.tcard__img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:center 26%;transform:scale(1.03);
  transition:transform 1.1s var(--ease);
}
.tcard__wash{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,
    rgba(17,20,49,.96) 0%, rgba(17,20,49,.88) 22%,
    rgba(17,20,49,.5) 40%, rgba(17,20,49,.08) 58%, rgba(17,20,49,0) 74%);
}
.tcard__body{position:absolute;inset:auto 0 0 0;z-index:2;padding:clamp(18px,1.5vw,24px)}
.tcard__ico{
  display:grid;place-items:center;width:38px;height:38px;border-radius:12px;
  background:rgba(255,255,255,.16);color:#fff;margin-bottom:14px;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  transition:background-color .4s var(--ease);
}
.tcard__ico svg{width:17px;height:17px}
.tcard h3{
  text-wrap:balance;
  font-family:var(--ff-display);font-weight:400;
  font-size:clamp(1.1rem,1.35vw,1.32rem);letter-spacing:-.015em;color:#fff;
}
.tcard p{margin-top:7px;font-size:.8125rem;line-height:1.55;color:rgba(255,255,255,.78)}
.tcard:hover .tcard__img{transform:scale(1.1)}
.tcard:hover .tcard__ico{background:var(--green-500)}

.tcarousel__foot{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:18px 28px;margin-top:clamp(24px,2.6vw,34px);
}
.tcarousel__actions{display:flex;align-items:center;gap:clamp(16px,1.6vw,26px)}
.tcarousel__actions::before{
  content:"";width:1px;height:26px;background:rgba(255,255,255,.18);order:1;
}
.tcarousel__nav{display:flex;gap:10px;order:2}
.tnav{
  width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.26);color:#fff;
  transition:background-color .4s var(--ease),border-color .4s var(--ease),opacity .4s var(--ease);
}
.tnav svg{width:15px;height:15px}
.tnav:hover{background:var(--green-500);border-color:var(--green-500)}
.tnav[disabled]{opacity:.3;pointer-events:none}
.tcarousel__foot p{font-size:.9375rem;line-height:1.6;color:rgba(255,255,255,.68);max-width:48ch}
.tcarousel__foot .link-arrow{color:#fff;order:0;white-space:nowrap}
.tcarousel__foot .link-arrow:hover{color:var(--green-200)}

/* why choose us — pill eyebrow, two-tone heading, accordion beside a portrait */
.why{background:var(--paper);padding-bottom:clamp(40px,4.2vw,66px)}
.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)}

.why__head{text-align:center;max-width:860px;margin-inline:auto}
.why__title{margin-top:20px;max-width:22ch;margin-inline:auto}
.hl,.split-word.hl>span{color:var(--navy-400)}
.why__lede{margin-top:20px;max-width:56ch;margin-inline:auto}

.why__grid{
  display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);
  gap:clamp(34px,5vw,80px);align-items:center;
  margin-top:clamp(34px,3.8vw,58px);
}

.wlist{border-top:1px solid var(--line-soft)}
.wrow{border-bottom:1px solid var(--line-soft)}
.wrow__head{
  text-wrap:balance;
  display:flex;align-items:center;gap:14px;width:100%;text-align:left;
  padding:clamp(16px,1.7vw,21px) 4px;
  font-family:var(--ff-display);font-weight:400;
  font-size:clamp(1.08rem,1.5vw,1.4rem);letter-spacing:-.015em;color:var(--navy-800);
  transition:color .35s var(--ease),padding-left .5s var(--ease);
}
.wrow__head svg{
  width:17px;height:17px;flex:none;color:var(--navy-400);
  transition:color .35s var(--ease),transform .6s var(--ease);
}
.wrow__head{cursor:pointer}
.wrow__head:hover{padding-left:12px;color:var(--navy-600)}
.wrow.is-open .wrow__head{color:var(--navy-700)}
.wrow.is-open .wrow__head svg{color:var(--green-500);transform:rotate(90deg)}
.wrow__body{overflow:hidden}
.wrow__body p{
  padding:0 4px clamp(18px,1.8vw,24px) 31px;
  font-size:.9375rem;line-height:1.68;color:var(--muted);max-width:52ch;
}

.why__media{
  position:relative;border-radius:26px;overflow:hidden;
  aspect-ratio:1/1.02;background:var(--navy-50);
  box-shadow:0 48px 86px -62px rgba(17,20,49,.7);
}
.why__media img{
  width:100%;height:100%;object-fit:cover;object-position:58% 46%;
  filter:contrast(1.05) saturate(1.05);will-change:transform;
}

/* providers */
.provider{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(30px,4vw,64px);align-items:center}
.provider__photo{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:1/1.05;background:var(--navy-50);max-width:440px}
.provider__photo img{width:100%;height:100%;object-fit:cover;object-position:center top}
.provider__badge{
  position:absolute;left:18px;bottom:18px;right:18px;
  background:rgba(255,255,255,.94);backdrop-filter:blur(8px);
  border-radius:16px;padding:14px 18px;
}
.provider__badge b{display:block;font-family:var(--ff-display);font-size:1.0625rem;color:var(--navy-800)}
.provider__badge small{display:block;font-size:.75rem;color:var(--muted);margin-top:2px}
.provider__meta{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:30px;border-top:1px solid var(--line-soft)}
.provider__meta div{padding:16px 0;border-bottom:1px solid var(--line-soft)}
.provider__meta dt{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--navy-400);margin-bottom:5px}
.provider__meta dd{margin:0;font-size:.9375rem;color:var(--navy-800)}

/* testimonials — three review cards */
.quotes-sec{background:var(--navy-800)}
.quotes-sec h2{color:#fff}
.quotes-sec .eyebrow{color:var(--blue-200)}
.qcards{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(14px,1.5vw,22px);margin-top:clamp(34px,4vw,56px);
}
.qcard{
  display:flex;flex-direction:column;
  padding:clamp(22px,2.2vw,30px);border-radius:22px;
  background:#fff;border:1px solid rgba(255,255,255,.12);
  box-shadow:0 34px 66px -40px rgba(6,9,24,.72);
  transition:transform .6s var(--ease),box-shadow .6s var(--ease);
}
.qcard:hover{transform:translateY(-5px);box-shadow:0 48px 80px -42px rgba(6,9,24,.8)}
.qcard__stars{display:flex;gap:3px;margin-bottom:18px}
.qcard__stars svg{width:15px;height:15px;color:var(--navy-600)}
.qcard h3{
  font-family:var(--ff-display);font-weight:400;text-wrap:balance;
  font-size:clamp(1.12rem,1.45vw,1.35rem);letter-spacing:-.015em;color:var(--navy-800);
}
.qcard__text{margin-top:12px;font-size:.9375rem;line-height:1.68;color:var(--muted)}
.qcard__who{
  display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:22px;
}
.qcard__avatar{
  width:44px;height:44px;border-radius:50%;overflow:hidden;flex:none;
  background:var(--blue-50);display:grid;place-items:center;
  font-family:var(--ff-display);font-size:1rem;color:var(--blue-700);
  border:1px solid var(--line-soft);
}
.qcard__avatar img{width:100%;height:100%;object-fit:cover}
.qcard__who b{display:block;font-size:.9375rem;font-weight:600;color:var(--navy-800);line-height:1.3}
.qcard__who small{display:block;font-size:.8125rem;color:var(--muted)}

/* blog — three article cards */
.blog{background:var(--paper)}
.blog__head{
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  gap:clamp(20px,3vw,56px);align-items:end;
}
.blog__head .lede{max-width:42ch}
.bcards{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(14px,1.6vw,24px);margin-top:clamp(32px,3.8vw,52px);
}
.bcard{
  display:flex;flex-direction:column;border-radius:20px;overflow:hidden;
  background:var(--paper-2);border:1px solid var(--line-soft);
  transition:transform .6s var(--ease),box-shadow .6s var(--ease);
}
.bcard:hover{transform:translateY(-5px);box-shadow:0 40px 72px -50px rgba(17,20,49,.5)}
.bcard__media{aspect-ratio:16/10.5;overflow:hidden;background:var(--navy-50)}
.bcard__media img{
  width:100%;height:100%;object-fit:cover;transform:scale(1.02);
  transition:transform 1.1s var(--ease);
}
.bcard:hover .bcard__media img{transform:scale(1.09)}
.bcard__body{padding:clamp(18px,1.8vw,24px);display:flex;flex-direction:column;gap:10px;flex:1}
.bcard__date{display:inline-flex;align-items:center;gap:.5em;font-size:.8125rem;color:var(--muted)}
.bcard__date svg{width:14px;height:14px;color:var(--navy-400)}
.bcard__tag{font-size:.8125rem;font-weight:500;color:var(--blue-600)}
.bcard h3{
  text-wrap:balance;margin-top:auto;
  font-family:var(--ff-display);font-weight:400;
  font-size:clamp(1.06rem,1.35vw,1.28rem);line-height:1.22;letter-spacing:-.015em;color:var(--navy-800);
}
.blog__foot{margin-top:clamp(26px,3vw,40px);text-align:center}

/* CTA band — sharp photograph with a glass panel, not a blanket overlay */
.cta-full{padding:0}
.cta-band{
  position:relative;overflow:hidden;isolation:isolate;
  min-height:clamp(440px,56vh,620px);
  display:flex;align-items:center;
  padding-block:clamp(40px,5vw,72px);
}
.cta-band picture{position:absolute;inset:0;display:block}
.cta-band img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:72% 40%;z-index:-2;
  filter:saturate(1.05) contrast(1.04);
}
/* only enough scrim to hold the panel edge and keep the frame from floating */
.cta-band::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(100deg, rgba(12,14,34,.58) 0%, rgba(12,14,34,.28) 42%, rgba(12,14,34,.06) 68%, rgba(12,14,34,.18) 100%),
    linear-gradient(to top, rgba(12,14,34,.34), rgba(12,14,34,0) 46%);
}
.cta-panel{
  position:relative;z-index:1;color:#fff;
  width:min(540px,100%);
  padding:clamp(26px,3vw,44px);
  border-radius:26px;
  background:rgba(17,20,49,.58);
  backdrop-filter:blur(20px) saturate(1.25);-webkit-backdrop-filter:blur(20px) saturate(1.25);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 40px 80px -56px rgba(8,10,26,.9);
}
.cta-panel .eyebrow{color:var(--blue-200);margin-bottom:18px}
.cta-band h2{
  text-wrap:balance;
  font-family:var(--ff-display);font-weight:400;
  font-size:clamp(1.65rem,2.9vw,2.55rem);letter-spacing:-.022em;line-height:1.1;
}
.cta-panel__copy{margin-top:16px;font-size:.9375rem;line-height:1.7;color:rgba(255,255,255,.8)}
.cta-band__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(24px,2.4vw,32px)}
.cta-band__actions .btn--light{color:var(--navy-700)}

/* footer */
.site-footer{background:var(--navy-900);color:rgba(255,255,255,.66);padding-block:clamp(52px,6vw,84px) 0;position:relative;overflow:hidden}
.site-footer__top{display:grid;grid-template-columns:minmax(0,1.25fr) repeat(3,minmax(0,.72fr));gap:clamp(26px,3vw,48px)}
.site-footer h4{font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;margin-bottom:18px;font-weight:600}
.site-footer a:hover{color:#fff}
.flist{display:grid;gap:11px;font-size:.875rem}
.fbrand img{width:172px}
.fbrand p{margin-top:18px;font-size:.875rem;line-height:1.7;max-width:36ch}
.fsocial{display:flex;gap:9px;margin-top:22px}
.fsocial a{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.16);color:#fff;transition:background-color .4s var(--ease),border-color .4s var(--ease),transform .5s var(--ease)}
.fsocial a svg{width:14px;height:14px}
.fsocial a:hover{background:var(--blue-500);border-color:var(--blue-500);transform:translateY(-2px)}
.fcontact{display:grid;gap:18px}
.fcontact div{display:flex;gap:12px;align-items:flex-start;font-size:.875rem;line-height:1.55}
.fcontact svg{width:15px;height:15px;color:var(--green-500);flex:none;margin-top:3px}
.fcontact b{display:block;color:#fff;font-weight:500;font-size:.8125rem;margin-bottom:2px}
.news{margin-top:clamp(34px,4vw,54px);padding-top:clamp(26px,3vw,38px);border-top:1px solid rgba(255,255,255,.1);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,50px);align-items:center}
.news h3{font-family:var(--ff-display);font-weight:400;font-size:clamp(1.25rem,2vw,1.6rem);color:#fff;letter-spacing:-.015em}
.news form{display:flex;gap:10px;flex-wrap:wrap}
.news input{
  flex:1 1 220px;min-width:0;padding:14px 18px;border-radius:999px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);color:#fff;font-size:.9375rem;
}
.news input::placeholder{color:rgba(255,255,255,.42)}
.news input:focus{outline:none;border-color:var(--blue-500);background:rgba(255,255,255,.1)}
.fbottom{
  margin-top:clamp(30px,3.4vw,46px);padding-block:22px;border-top:1px solid rgba(255,255,255,.1);
  display:flex;flex-wrap:wrap;gap:12px 26px;justify-content:space-between;font-size:.8125rem;
}
.fbottom nav{display:flex;flex-wrap:wrap;gap:20px}

/* the pinned band has to fit the viewport, so size it against height too */
@media (min-width:981px){
  .treatments{
    min-height:100svh;display:flex;flex-direction:column;justify-content:center;
    padding-block:clamp(56px,7vh,92px);
  }
  .treatments h2{font-size:clamp(2.1rem,3.4vw,3.4rem)}
}
@media (min-width:981px) and (max-height:820px){
  .treatments{padding-block:clamp(36px,4.5vh,56px)}
  .treatments h2{font-size:clamp(1.9rem,2.7vw,2.5rem)}
  .tcarousel{margin-top:20px}
  .tcarousel__foot{margin-top:18px}
}

/* --- 8. Responsive ------------------------------------------------------- */
@media (max-width:1180px){
  .scards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1320px){
  .nav__link{padding:9px 10px;font-size:.85rem}
  .brand img{width:clamp(128px,11vw,150px)}
}
@media (max-width:1240px){
  .nav__link--util{display:none}
}
@media (max-width:1100px){
  /* preview card hidden here, so give the service list the room instead */
  .megamenu__inner{grid-template-columns:minmax(0,2.1fr) minmax(0,.7fr)}
  .megamenu__feature{display:none}
  .megamenu__foot{grid-column:1/-1}
  .site-footer__top{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media (max-width:980px){

  :root{--header-h:70px}
  .nav{grid-template-columns:auto 1fr auto}
  .nav__group{display:none}
  .brand{justify-content:flex-start;padding-inline:0}
  .nav__toggle{display:grid}
  .nav__cta{display:none}
  .portal__grid,.provider{grid-template-columns:1fr}
  .about-cards{grid-template-columns:1fr 1fr}
  .hero-full__inner{grid-template-columns:1fr;gap:36px}
  .hero-full{min-height:0;padding-block:calc(var(--header-h) + 130px) clamp(36px,6vw,60px)}
  .hero-full__media img{object-position:center 8%}
  .hero-full__cards{min-height:0;display:grid;gap:12px}
  .gcard{position:static;width:100%}
  .gcard__ico{margin-bottom:16px}
  .portal__copy{max-width:none}
  .values__grid{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:1fr 1fr}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid var(--line-soft)}
  .why__grid{grid-template-columns:1fr}
  .why__media{order:-1;max-width:520px;aspect-ratio:4/3.2}
  /* photo reads above the panel instead of being hidden behind it */
  .cta-band{
    min-height:0;align-items:flex-end;
    padding:clamp(150px,34vw,220px) 0 clamp(26px,5vw,36px);
  }
  .blog__head{grid-template-columns:1fr}
  .bcards{grid-template-columns:1fr 1fr}
  .cta-band img{object-position:center 26%}
  .cta-panel{width:100%}
  .news{grid-template-columns:1fr}
  .locbar{grid-template-columns:1fr}
  .scards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tcarousel{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .tcarousel::-webkit-scrollbar{display:none}
  .tcarousel__track{transform:none !important}
  .tcard{scroll-snap-align:start;height:auto;width:min(78vw,340px);flex:0 0 auto}
  .tcarousel__nav{display:none}
  .qcards{grid-template-columns:1fr}
  .bcards{grid-template-columns:1fr}
  .provider__photo{max-width:420px}
}
@media (max-width:620px){
  .about-c__statement{text-wrap:pretty}
}
@media (max-width:560px){
  .scards{grid-template-columns:1fr;gap:12px}
  .scard{aspect-ratio:1/.6}
  .scard__desc{grid-template-rows:1fr;opacity:1;margin-top:9px}
  .scard__go{opacity:1;transform:none}
}
@media (max-width:820px){
  .u-full{display:none}
  .u-brief{display:inline}
}
@media (max-width:720px){
  .utility__group--secondary{display:none}
  .svc-grid{grid-template-columns:1fr}
  .svc-grid{grid-template-columns:1fr}
  .scard--lg{aspect-ratio:1/.62}
  .scard__desc{grid-template-rows:1fr;opacity:1;margin-top:9px}
  .scard__go{opacity:1;transform:none}
  .values__grid{grid-template-columns:1fr}
  .announce{font-size:.8125rem;padding-left:15px;gap:10px}
  .site-footer__top{grid-template-columns:1fr}
  .about-cards{grid-template-columns:1fr}
  .acard{min-height:0}
  .about-c__meta{gap:16px 20px}
  .provider__meta{grid-template-columns:1fr}
  .hero__proof{gap:14px 22px}
}

@media (max-width:430px){
  /* half-width cells cannot hold a two-word label at this size */
  .stats{grid-template-columns:1fr}
  .stat{border-right:0;border-bottom:1px solid var(--line-soft)}
  .stat:last-child{border-bottom:0}
}
