/* ============================================================
   REVIVE BY MWS, editorial healthcare build (matches Home Page)
   Display: Playfair Display · UI/body: Inter
   black #0A0A0A · ink #131312 · beige #D9A38E · bg #F5F5F5 · white #FFF · gray #E1E1E1
   ============================================================ */
:root{
  --black:#0A0A0A;
  --ink:#131312;
  --beige:#D9A38E;
  --bg:#F5F5F5;
  --white:#FFFFFF;
  --gray:#E1E1E1;

  --clay:#975537;
  --beige-lo:#EAC9B9;
  --ink-90:rgba(19,19,18,.9);  --ink-72:rgba(19,19,18,.72); --ink-62:rgba(19,19,18,.62);
  --ink-58:rgba(19,19,18,.58); --ink-40:rgba(19,19,18,.4); --ink-16:rgba(19,19,18,.16); --ink-09:rgba(19,19,18,.09);
  --line:var(--gray);
  --line-dark:rgba(255,255,255,.14);
  --cod:#FFFFFF;
  --mist:rgba(255,255,255,.72);

  /* legacy token names kept so every structural rule on this page still resolves */
  --cream:var(--white); --cream-hi:var(--white); --cream-lo:var(--bg);
  --teal:#1C1C1B; --sand:var(--gray); --mint:var(--beige); --bronze:var(--beige); --bronze-dk:var(--clay);

  --f-d:"Playfair Display",Georgia,"Times New Roman",serif;
  --f-b:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;

  --s--1:clamp(.72rem,.7rem + .1vw,.78rem);
  --s-0:clamp(.97rem,.95rem + .12vw,1.03rem);
  --s-1:clamp(1.15rem,1.08rem + .3vw,1.3rem);
  --s-2:clamp(1.5rem,1.3rem + .8vw,2rem);
  --s-3:clamp(2.2rem,1.7rem + 1.9vw,3.3rem);
  --s-4:clamp(2.6rem,1.9rem + 3vw,4.3rem);
  --s-5:clamp(3.2rem,2.1rem + 4.8vw,5.8rem);

  --sp:clamp(4.5rem,3rem + 5.6vw,7.5rem);
  --gut:clamp(1.25rem,.5rem + 2.6vw,2.75rem);
  --maxw:1240px;
  --cgap:1.25rem;

  --r-s:8px; --r-m:18px; --r-l:18px; --r-xl:18px; --r-pill:999px;
  --sh-1:0 1px 2px rgba(19,19,18,.03),0 16px 32px -22px rgba(19,19,18,.16);
  --sh-2:0 24px 56px -28px rgba(19,19,18,.22);
  --photo:grayscale(.85) sepia(.06) contrast(1.04) brightness(.96);
  --photo-hover:grayscale(.55) sepia(.05) contrast(1.03) brightness(1);
  --ease:cubic-bezier(.22,.61,.36,1);
  --eout:cubic-bezier(.16,1,.3,1);
}
*,*::before,*::after{box-sizing:border-box}*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:hidden}
body{font-family:var(--f-b);font-size:var(--s-0);line-height:1.7;color:var(--ink);
  background:var(--white);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video,svg,iframe{display:block;max-width:100%}img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:none;-webkit-appearance:none;appearance:none}
input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid currentColor;outline-offset:3px;box-shadow:none}
.on-dark :focus-visible{outline-color:var(--beige)}
h1,h2,h3,h4{font-family:var(--f-d);font-weight:400;line-height:1.06;letter-spacing:-.012em}
.i{font-style:italic;color:#000}
.on-dark .i{color:var(--beige)}
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.section{padding-block:var(--sp)}

/* Eyebrow, the Home Page's section label: a 32px beige rule, then the
   uppercase tracked-out label (identical to .hero-badge on the Home Page). */
.eyebrow{display:inline-flex;align-items:center;gap:.85rem;font-family:var(--f-b);font-size:var(--s--1);
  font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--clay)}
.eyebrow::before{content:"";width:32px;height:1px;flex:none;background:var(--beige);border-radius:999px}
.eyebrow.on-dark{color:rgba(255,255,255,.76)}
.eyebrow.center{justify-content:center}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;font-weight:600;
  font-size:var(--s-0);line-height:1;padding:1rem 1.6rem;border-radius:var(--r-pill);
  transition:transform .35s var(--ease),background-color .35s var(--ease),color .35s var(--ease),
  border-color .35s var(--ease),box-shadow .35s var(--ease);white-space:nowrap}
.btn svg{width:1.05em;height:1.05em;transition:transform .35s var(--ease)}
.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}
.btn:hover svg{transform:translateX(3px)}
.btn-dark{background:var(--black);color:var(--white);border-color:var(--black)}
.btn-dark:hover{background:var(--ink);border-color:var(--ink);box-shadow:var(--sh-2)}
.btn-bronze{background:var(--beige);color:var(--ink);border-color:var(--beige)}
.btn-bronze:hover{background:var(--beige-lo);border-color:var(--beige-lo);color:var(--ink);box-shadow:var(--sh-2)}
.btn-light{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.btn-light:hover{background:var(--ink);color:var(--white);box-shadow:var(--sh-1)}
.btn-ghost-dark{background:transparent;color:var(--cod);border:1px solid var(--line-dark)}
.btn-ghost-dark:hover{background:var(--cod);color:var(--ink)}
.btn-lg{padding:1.15rem 1.9rem}

/* Reveal */
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--eout),transform .9s var(--eout)}
.js .reveal.in{opacity:1;transform:none}
.js [data-d]{transition-delay:var(--d)}

/* ============================================================ ANNOUNCEMENT BAR */
.announce{background:var(--black);padding:.75rem var(--gut);text-align:center}
.announce p{font-family:var(--f-b);font-size:.72rem;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(255,255,255,.78);line-height:1.5;margin:0}
.announce .i{color:var(--beige);font-weight:600;font-style:normal}
@media(max-width:640px){
  .announce p{font-size:.64rem;letter-spacing:.12em;line-height:1.5}
}

/* ============================================================ NAV (always-white bar, matches Home Page) */
.nav{position:sticky;top:0;margin-bottom:calc(-1 * var(--nav-h, 76px));
  z-index:100;color:var(--ink);background:var(--white);border-bottom:1px solid var(--line)}
.nav-in{position:relative;width:100%;max-width:var(--maxw);margin-inline:auto;display:flex;align-items:center;
  justify-content:space-between;gap:1.5rem;padding:.85rem clamp(1.5rem,4vw,4rem)}
.brand{display:inline-flex;align-items:center;line-height:0;color:inherit}
.brand-logo{height:clamp(26px,2.5vw,34px);width:auto;display:block;filter:brightness(0)}
.nav-links{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;
  gap:clamp(1.1rem,1.9vw,2.2rem);list-style:none;white-space:nowrap}
.nav-links a{position:relative;font-size:calc(.7rem + 1px);font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:inherit;opacity:.82;padding:.4rem 0;transition:opacity .3s var(--ease)}
.nav-links a[aria-current="page"]{opacity:1}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--beige);
  transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.nav-links a[aria-current="page"]::after{transform:scaleX(1)}
.nav-links a:hover{opacity:1}
.nav-links a:hover::after,.nav-links a:focus-visible::after{transform:scaleX(1)}
.nav-cta{display:flex;align-items:center;gap:.6rem;margin-left:auto}
.nav .btn{padding:.85rem 1.4rem;font-size:calc(.68rem + 1px)}
.nav-phone{background:var(--beige);color:var(--ink);border-color:var(--beige)}
.nav-phone:hover{background:var(--ink);color:var(--white);border-color:var(--ink)}
.nav-phone svg{width:14px;height:14px}
.nav-phone:hover svg{transform:none}
.m-phone{display:inline-flex!important;font-size:calc(.76rem + 1px)!important;letter-spacing:.14em;
  padding:1.15rem 1.9rem!important;margin-top:1.6rem;
  background:var(--beige)!important;color:var(--ink)!important;border-color:var(--beige)!important}
.m-phone svg{width:15px;height:15px}
.m-phone:hover{background:var(--white)!important;border-color:var(--white)!important}
.nav-tog{display:none;width:44px;height:44px;align-items:center;justify-content:center;color:inherit}
.nav-tog svg{width:22px;height:22px}
.m-menu{position:fixed;inset:0;z-index:150;background:var(--black);transform:translateY(-100%);
  transition:transform .7s var(--eout);display:flex;flex-direction:column;justify-content:center;
  padding:var(--gut);visibility:hidden}
.m-menu.open{transform:none;visibility:visible}
.m-menu ul{list-style:none;display:flex;flex-direction:column;gap:0}
.m-menu li{border-bottom:1px solid var(--line-dark)}
.m-menu li:last-child{border-bottom:0}
.m-menu a{font-family:var(--f-d);font-size:calc(clamp(1.72rem,7.2vw,2.5rem) + 1px);letter-spacing:-.012em;
  color:var(--white);padding:.75rem 0;display:block}
.m-menu a:hover{color:var(--beige)}
.m-close{position:absolute;top:1.2rem;right:var(--gut);width:48px;height:48px;color:var(--white)}
.m-close svg{width:26px;height:26px}

/* ============================================================ HERO */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-3;background:linear-gradient(115deg,#2e2416,#6a5334 58%,#9a7c4c)}
.hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:78% 32%;
  animation:kb 28s ease-in-out infinite alternate}
.hero-bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:78% 32%}
@keyframes kb{from{transform:scale(1.04)}to{transform:scale(1.13)}}
/* warm golden wash + gentle left shading for light text, keep the image bright */
.hero-scrim{position:absolute;inset:0;z-index:-1;background:
  linear-gradient(96deg,rgba(30,22,12,.66) 0%,rgba(38,28,15,.44) 26%,rgba(40,30,16,.16) 46%,rgba(40,30,16,0) 62%),
  linear-gradient(180deg,rgba(30,22,12,.28) 0%,transparent 20% 60%,rgba(26,18,10,.5) 100%),
  radial-gradient(80% 60% at 78% 40%,rgba(214,168,96,.18),transparent 70%),
  rgba(18,13,7,.16)}
.hero-in{width:100%;max-width:var(--maxw);margin-inline:auto;padding:clamp(7rem,12vh,9rem) var(--gut) clamp(3rem,7vh,5rem)}
.hero-content{max-width:min(48%,620px)}
.hero-badge{display:inline-flex;align-items:center;gap:.6rem;padding:.6rem 1.15rem;border-radius:var(--r-pill);
  border:1px solid rgba(239,227,206,.42);background:rgba(239,227,206,.12);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--cod)}
.hero-badge svg{width:17px;height:17px;color:var(--bronze)}
.hero h1{font-family:var(--f-d);font-size:clamp(3.4rem, 1.7rem + 4.4vw, 5.6rem);line-height:.98;letter-spacing:-.018em;
  color:var(--cream);max-width:14ch;margin-top:0;
  text-shadow:0 2px 30px rgba(20,14,6,.35)}
.hero .lede{max-width:40ch;margin-top:clamp(1.5rem,2.6vw,2.1rem);color:rgba(239,227,206,.88);
  font-size:clamp(1.16rem, 1.06rem + .5vw, 1.4rem);font-weight:400;line-height:1.6}
.hero-actions{display:flex;flex-wrap:wrap;gap:1.1rem;margin-top:clamp(2.1rem,3.6vw,3rem)}
.hero-actions .btn{padding:1.18rem 2.05rem;font-size:1.02rem}
.hero-actions .btn-bronze{background:var(--beige);color:var(--ink)}
.hero-actions .btn-bronze:hover{background:var(--beige-lo);color:var(--ink)}
.btn-glass{background:rgba(239,227,206,.1);color:var(--cod);border:1px solid rgba(239,227,206,.45);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.btn-glass:hover{background:var(--cod);color:var(--ink);border-color:var(--cod)}
.hero-proof{display:flex;align-items:center;gap:1.1rem;margin-top:clamp(2.1rem,3.2vw,2.8rem)}
.avatars{display:flex}
.avatars span{width:52px;height:52px;border-radius:50%;border:3px solid rgba(239,227,206,.92);
  margin-left:-18px;overflow:hidden;background:linear-gradient(140deg,var(--teal),var(--bronze));position:relative}
.avatars span:first-child{margin-left:0}
.avatars span img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-proof .pt{font-size:.82rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(239,227,206,.82);line-height:1.4}
.hero-proof .pt b{color:var(--cream);font-weight:700}

/* ============================================================ ABOUT */
.about{background:var(--cream)}
.about-grid{display:grid;grid-template-columns:.86fr 1.14fr;gap:clamp(2.75rem, 6vw, 7rem);align-items:center}
.about-media{position:relative}
.about-frame{position:relative;border-radius:var(--r-l);overflow:hidden;aspect-ratio:.76/1;
  background:linear-gradient(150deg,#e8dcc6,#cbb083);box-shadow:var(--sh-2)}
.about-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 14%}
.about-frame::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 42%,rgba(13,22,36,.18) 62%,rgba(13,22,36,.92) 100%)}
.about-caption{position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:clamp(1.7rem,3.2vw,2.4rem) clamp(1.6rem,3vw,2.2rem)}
.about-caption .name{font-family:var(--f-d);font-weight:400;color:var(--cream);
  font-size:clamp(1.5rem,1.05rem + 1.7vw,2.05rem);line-height:1.1}
.about-caption .rule{width:42px;height:1.5px;border:0;background:var(--bronze);margin:.85rem 0 .7rem}
.about-caption .role{font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze)}
.about-copy .eyebrow{color:var(--bronze-dk);letter-spacing:.24em}
.about-copy .eyebrow::before{display:none}
.about-copy h2{font-weight:400;font-size:clamp(2.7rem, 1.85rem + 3.5vw, 4.5rem);line-height:1.06;
  letter-spacing:-.012em;margin:1.4rem 0 0}
.about-copy p{color:rgba(29,56,91,.64);margin-top:1.7rem;line-height:1.8}
.about-copy .btn{margin-top:2.1rem}
.about-feats{display:flex;justify-content:space-between;gap:1.2rem;margin-top:clamp(2.8rem, 4vw, 3.8rem)}
.about-feats .f{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.8rem}
.about-feats .fi{display:flex;align-items:center;justify-content:center;color:var(--bronze)}
.about-feats .fi svg{width:30px;height:30px}
.about-feats .fn{font-size:.9rem;font-weight:600;color:var(--ink);line-height:1.3;white-space:nowrap}

/* ============================================================ MISSION (wide navy block, editorial) */
.mission{background:var(--cream);padding-block:clamp(2.4rem,1.6rem + 3vw,3.8rem)}
.mission-block{background:var(--ink);border-radius:var(--r-xl);
  display:grid;grid-template-columns:.62fr 1fr;column-gap:clamp(2.5rem, 6vw, 5.5rem);
  align-items:center;padding:clamp(3rem, 6vw, 5.5rem) clamp(2.2rem, 6vw, 5.5rem)}
.mission-title{font-family:var(--f-d);font-weight:400;color:var(--cream);
  font-size:clamp(3.1rem, 2.2rem + 4.5vw, 5.8rem);line-height:.96;letter-spacing:-.01em}
.mission-rule{margin-top:clamp(1.4rem, 2.5vw, 2rem);width:64px;height:2px;background:var(--bronze);border:0}
.mission-text{color:var(--mist);font-size:clamp(1.05rem, .95rem + .5vw, 1.3rem);line-height:1.7}
.mission-text strong{color:var(--cream);font-weight:600}
@media (max-width:900px){
  .mission-block{grid-template-columns:1fr;row-gap:1.8rem;padding:clamp(2.4rem, 6vw, 3.2rem)}
}

/* ============================================================ SERVICES */
.services{background:var(--cream-lo)}
.svc-head{text-align:center;max-width:900px;margin:0 auto}
.svc-head .eyebrow{letter-spacing:.24em;justify-content:center}
.svc-head .eyebrow::before{display:none}
.svc-head h2{font-weight:400;font-size:clamp(2.6rem, 1.8rem + 3.3vw, 4.3rem);line-height:1.08;
  letter-spacing:-.012em;margin:1.2rem 0 0}
.svc-head h2 .i{color:#9C744A;font-style:italic}
.svc-head p{color:var(--ink-72);margin:1.5rem auto 0;max-width:78ch;line-height:1.7}
/* Hover-expand rail restored: cards grow and reveal their text with smooth motion,
   matching the site's original interaction. Titles/text stay bigger and roomier than before. */
.svc-rail{display:flex;gap:1rem;height:clamp(440px, 56vh, 560px);margin-top:clamp(3rem, 5vw, 4.5rem)}
.svc{position:relative;flex:1 1 0;min-width:clamp(150px, 15vw, 190px);border-radius:var(--r-l);overflow:hidden;
  cursor:pointer;background:var(--teal);box-shadow:var(--sh-1);isolation:isolate;
  transition:flex-grow .7s var(--ease),box-shadow .7s var(--ease)}
.svc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.9);
  transition:transform 1.1s var(--ease),filter .7s var(--ease)}
.svc::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(29,56,91,0) 30%,rgba(29,56,91,.5) 58%,rgba(29,56,91,.92) 100%);
  transition:background .6s var(--ease)}
.svc-inner{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:1.6rem 1.5rem}
.svc h3{font-family:var(--f-d);font-weight:400;font-size:clamp(1.5rem, 1.3rem + .6vw, 1.85rem);
  color:var(--cream);line-height:1.15}
.svc-body{max-height:0;opacity:0;overflow:hidden;transition:max-height .7s var(--ease),opacity .5s var(--ease),margin .7s var(--ease)}
.svc-body p{color:rgba(239,227,206,.88);font-size:.94rem;line-height:1.6;max-width:none}
.svc-more{margin-top:1.1rem;display:inline-flex;align-items:center;gap:.5rem;font-weight:600;
  font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze)}
.svc-more svg{width:1.05em;height:1.05em;transition:transform .35s var(--ease)}
.svc.is-open{flex-grow:3.2;box-shadow:var(--sh-2)}
.svc.is-open img{transform:scale(1.05);filter:brightness(1)}
.svc.is-open::after{background:linear-gradient(180deg,rgba(29,56,91,0) 24%,rgba(29,56,91,.44) 54%,rgba(29,56,91,.9) 100%)}
.svc.is-open .svc-body{max-height:240px;opacity:1;margin-top:.7rem}
.svc.is-open .svc-more:hover svg{transform:translateX(4px)}

/* ============================================================ SERVICE HUB (explorer) */
/* Typographic scale for this section, largest to smallest:
   H1 (.hub-h1) > Hub title (.hub-title) > Service title (.hub-svc-title) > Lede (.hub-lede) > Card body (.hub-body) */
.hub{background:var(--cream-lo)}

/* Clean 2-column grid, no divider lines: header row (label+H1 | intro) then nav | content. */
.hub-grid{display:grid;
  grid-template-columns:minmax(0,.4fr) minmax(0,.6fr);
  column-gap:clamp(2rem, 4vw, 3.75rem);
  row-gap:clamp(2.4rem, 4vw, 3.6rem)}

.hub-headL{grid-column:1;grid-row:1;align-self:center}
.hub-headL .eyebrow{letter-spacing:.24em}
.hub-headL .eyebrow::before{display:none}
.hub-h1{font-weight:400;color:var(--ink);margin-top:1.2rem;
  font-size:clamp(2.6rem, 1.8rem + 3.3vw, 4.3rem);line-height:1.08;letter-spacing:-.012em}

.hub-headR{grid-column:2;grid-row:1;align-self:center;max-width:46rem}

.hub-navL{grid-column:1;grid-row:2;min-width:0}
.hub-nav{display:flex;flex-direction:column;position:sticky;top:clamp(90px, 10vh, 120px)}
.hub-tab{display:flex;align-items:baseline;gap:1rem;width:100%;padding:1.15rem .1rem;text-align:left;
  border-bottom:1px solid var(--ink-16);transition:color .3s var(--ease)}
.hub-tab:first-child{border-top:1px solid var(--ink-16)}
.hub-tab .hn{font-family:var(--f-b);font-size:var(--s--1);font-weight:600;color:var(--ink-40);flex:none;
  transition:color .3s var(--ease)}
.hub-tab .hl{font-family:var(--f-d);font-size:1.38rem;line-height:1.25;color:var(--ink-72);
  transition:color .3s var(--ease)}
.hub-tab:hover .hl{color:var(--ink)}
.hub-tab.is-active{position:relative}
.hub-tab.is-active .hn,.hub-tab.is-active .hl{color:var(--bronze-dk)}
.hub-tab.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--bronze)}

.hub-content{grid-column:2;grid-row:2;min-width:0}
.hub-panel{display:none}
.hub-panel.is-active{display:block}
.hub-panel-head .hub-label{display:inline-flex;align-items:center;gap:.55rem;font-size:var(--s--1);
  font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze-dk)}
.hub-panel-head .hub-label .hn{color:var(--ink-40);font-weight:700}
.hub-title{font-weight:400;color:var(--ink);margin-top:.9rem;
  font-size:clamp(1.9rem, 1.55rem + 1.5vw, 2.4rem);line-height:1.15;letter-spacing:-.008em}
.hub-panel-head p{max-width:46rem}

/* Lede text: the section intro (top-right) and each hub's intro paragraph.
   Sized like body copy elsewhere on the site (inherits the base body scale). */
.hub-lede,.hub-headR,.hub-panel-head p{
  font-family:var(--f-b);color:var(--ink-72);font-size:var(--s-0);line-height:1.8;margin-top:1.1rem}

/* Service title: card titles and the laser-hair split points share one size - large and prominent */
.hub-svc-title,.hub-card-b h4,.hub-point h4{
  font-family:var(--f-d);font-weight:400;color:var(--ink);
  font-size:clamp(1.5rem, 1.3rem + .6vw, 1.85rem);line-height:1.15}

/* Card body: smaller than the title, matching the reference's card hierarchy */
.hub-body,.hub-card-b p,.hub-point p{
  font-family:var(--f-b);color:var(--ink-58);font-size:.92rem;line-height:1.65}

.hub-cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.2rem, 2vw, 1.6rem);
  margin-top:clamp(2.4rem, 4vw, 3.2rem);align-items:stretch}

/* Cards: flat (no shadow), equal height, image flush to all edges, Learn More pinned to the bottom */
.hub-card{display:flex;flex-direction:column;background:var(--cream-hi);border-radius:var(--r-l);
  overflow:hidden;box-shadow:none}
.hub-card-media{position:relative;aspect-ratio:3/2;background:var(--sand);flex:none}
.hub-card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform 1s var(--ease)}
.hub-card:hover .hub-card-media img{transform:scale(1.05)}
.hub-card-b{display:flex;flex-direction:column;flex:1;gap:.6rem;padding:1.5rem 1.3rem 1.7rem}
.hub-card-b h4{margin:0}
.hub-card-b p{margin:0}
.hub-learn{margin-top:auto;padding-top:.5rem;display:inline-flex;align-items:center;gap:.5rem;
  font-weight:600;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze-dk)}
.hub-learn svg{width:1.05em;height:1.05em;transition:transform .35s var(--ease)}
.hub-card:hover .hub-learn svg{transform:translateX(4px)}

.hub-card--wide{grid-column:1/-1}
.hub-card--wide .hub-card-media{aspect-ratio:21/9}
.hub-card-b--split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem, 3vw, 2.4rem)}
.hub-point{display:flex;flex-direction:column;gap:.5rem}
.hub-point h4{margin:0}
.hub-point p{margin:0}

@media (max-width:1024px){
  .hub-grid{grid-template-columns:1fr;row-gap:2rem}
  .hub-headL{grid-column:1;grid-row:auto}
  .hub-headR{grid-column:1;grid-row:auto;max-width:none}
  .hub-navL{grid-column:1;grid-row:auto}
  .hub-content{grid-column:1;grid-row:auto}
  .hub-nav{position:static;flex-direction:row;overflow-x:auto;scrollbar-width:none;gap:.5rem}
  .hub-nav::-webkit-scrollbar{display:none}
  .hub-tab{flex:none;flex-direction:column;align-items:flex-start;gap:.3rem;width:auto;
    padding:.9rem 1.2rem;border:1px solid var(--ink-16)!important;border-radius:var(--r-m);white-space:nowrap}
  .hub-tab:first-child{border-top:1px solid var(--ink-16)}
  .hub-tab.is-active::after{display:none}
  .hub-tab.is-active{border-color:var(--bronze)!important;background:var(--cream-hi)}
}
@media (max-width:640px){
  .hub-cards{grid-template-columns:minmax(0,1fr)}
  .hub-card--wide .hub-card-media{aspect-ratio:4/3}
  .hub-card-b--split{grid-template-columns:1fr;gap:1.4rem}
}

/* Reviews, one global system shared with the Home Page: photo-bg section + carousel + review card */
.reviews{background:var(--black);position:relative;isolation:isolate}
.reviews::before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;
  background-image:url("new assets/shared-reviews-background.webp");
  background-size:cover;background-position:50% 32%;
  filter:grayscale(1) contrast(1.08) brightness(.6)}
.reviews::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,10,10,.78) 0%,rgba(10,10,10,.55) 45%,rgba(10,10,10,.85) 100%)}
.rev-head{max-width:60rem;margin:0 auto clamp(2.8rem,5vw,4rem);text-align:center}
.rev-head h2{font-weight:400;color:var(--white);font-size:clamp(2.1rem,1.6rem + 2.15vw,3.25rem);
  line-height:1.12;letter-spacing:-.016em}
.rev-card{background:rgba(0,0,0,.88);
  border-radius:clamp(16px,2vw,22px);overflow:hidden;
  padding:clamp(2.2rem,3.4vw,2.8rem) clamp(1.8rem,2.6vw,2.4rem);
  display:flex;flex-direction:column;align-items:stretch;text-align:left;
  gap:clamp(1.1rem,1.8vw,1.5rem);min-height:20rem;justify-content:flex-start;height:100%}
.rev-stars{order:2;display:flex;justify-content:flex-start;gap:.4rem;color:var(--beige);
  margin-left:calc(48px + .9rem)}
.rev-stars svg{width:14px;height:14px}
.rev-card p.rt{order:3;color:rgba(255,255,255,.88);font-family:var(--f-d);font-weight:400;
  font-size:clamp(.88rem,.83rem + .22vw,.98rem);line-height:1.6;letter-spacing:.002em;
  margin:0}
.rev-more{display:none}
.rev-who{order:1;align-self:flex-start;display:flex;flex-direction:row;align-items:center;gap:.9rem}
.rev-who .av{width:48px;height:48px;flex:none;overflow:hidden;position:relative;
  background:var(--beige);border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:var(--ink);font-family:var(--f-b);font-size:.72rem;font-weight:600;letter-spacing:.12em}
.rev-meta{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;text-align:left}
.rev-who .n{font-family:var(--f-b);font-weight:500;font-size:.92rem;letter-spacing:.02em;
  color:var(--white);line-height:1.2}
.rev-who .r{font-size:.6rem;color:rgba(255,255,255,.56);letter-spacing:.2em;text-transform:uppercase}

/* ============================================================ CAROUSEL (shared) */
.carousel{position:relative}
.c-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2*var(--cgap))/3);
  gap:var(--cgap);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:.4rem}
.c-track::-webkit-scrollbar{display:none}
.c-track>*{scroll-snap-align:start}
.c-nav{display:flex;align-items:center;justify-content:center;gap:1.1rem;margin-top:clamp(1.8rem,3vw,2.6rem)}
.c-btn{width:46px;height:46px;border-radius:50%;border:1px solid var(--ink-16);display:flex;
  align-items:center;justify-content:center;color:var(--ink);
  transition:background-color .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease)}
.c-btn:hover{background:var(--ink);color:var(--white);border-color:var(--ink)}
.c-btn svg{width:16px;height:16px}
.c-dots{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:.55rem;max-width:60vw}
.c-dot{width:20px;height:1px;border-radius:999px;padding:0;flex:none;background:var(--ink-16);
  transition:background-color .35s var(--ease),width .35s var(--ease)}
.c-dot.on{background:var(--clay);width:34px}
.on-dark .c-btn{border-color:var(--line-dark);color:var(--white)}
.on-dark .c-btn:hover{background:var(--beige);color:var(--ink);border-color:var(--beige)}
.on-dark .c-dot{background:rgba(255,255,255,.24)}
.on-dark .c-dot.on{background:var(--beige)}

/* ============================================================ CONDITIONS (dark) */
.conditions{background:var(--ink);color:var(--cod)}
.cond-head{margin-bottom:clamp(2.6rem, 5vw, 3.6rem)}
.cond-head h2{font-weight:400;font-size:clamp(2.5rem, 1.8rem + 3vw, 4.2rem);line-height:1.06;
  color:var(--cream);margin-top:1.1rem}
.cond-head h2 .i{color:var(--bronze);font-style:italic}
.cond-head p{color:var(--mist);margin-top:1.3rem;max-width:46ch;line-height:1.6}
/* Card system unified with the Services (Hub Explorer) cards: same width/size,
   flat (no shadow), image flush edge-to-edge, no icons, Learn More pinned to the bottom. */
.cond-cards{display:grid;grid-template-columns:repeat(3, 1fr);gap:clamp(1.2rem, 2vw, 1.6rem);
  margin-top:clamp(2.4rem, 4vw, 3.2rem);align-items:stretch}
.cond-card{display:flex;flex-direction:column;background:var(--cream-hi);color:var(--ink);
  border-radius:var(--r-l);overflow:hidden;box-shadow:none}
.cond-img{position:relative;aspect-ratio:3/2;background:var(--sand);flex:none}
.cond-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.cond-card:hover .cond-img img{transform:scale(1.05)}
.cond-b{display:flex;flex-direction:column;flex:1;gap:.6rem;padding:1.5rem 1.3rem 1.7rem}
.cond-b h3{font-family:var(--f-d);font-weight:400;color:var(--ink);margin:0;
  font-size:clamp(1.5rem, 1.3rem + .6vw, 1.85rem);line-height:1.15}
.cond-b p{color:var(--ink-58);font-size:.92rem;line-height:1.65;margin:0}
.cond-b .learn{margin-top:auto;padding-top:.5rem;display:inline-flex;align-items:center;gap:.5rem;
  font-weight:600;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze-dk)}
.cond-b .learn svg{width:1.05em;height:1.05em;transition:transform .35s var(--ease)}
.cond-card:hover .learn svg{transform:translateX(4px)}
@media (max-width:900px){
  .cond-cards{grid-template-columns:minmax(0,1fr)}
}

/* ============================================================ SOLUTIONS */
.solutions{background:var(--cream);overflow:hidden}
.sol-head{text-align:center;max-width:900px;margin:0 auto}
.sol-head h2{font-weight:400;font-size:clamp(2.6rem, 1.85rem + 3.1vw, 4.4rem);line-height:1.08;
  letter-spacing:-.012em;margin-top:1.1rem}
.sol-head h2 .i{color:#9C744A;font-style:italic}
.sol-head p{color:var(--ink-72);margin-top:1.3rem;max-width:46rem;margin-inline:auto;line-height:1.65}
.sol-stage{display:flex;justify-content:center;align-items:center;margin:clamp(2.6rem,5vw,4rem) 0}
.sol-fan{position:relative;display:flex;align-items:center;justify-content:center}
.sol-pic{width:clamp(170px,20vw,250px);aspect-ratio:4/5;border-radius:var(--r-l);overflow:hidden;
  box-shadow:var(--sh-2);background:var(--sand);position:relative}
.sol-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sol-pic.l{transform:rotate(-9deg) translateX(24%);z-index:1}
.sol-pic.r{transform:rotate(9deg) translateX(-24%);z-index:1}
.sol-pic.c{z-index:2;width:clamp(210px,25vw,310px);transform:translateY(-14px)}
.js .solutions .sol-pic{opacity:0}
.js .solutions .sol-pic.c{transform:translateY(28px) scale(.92)}
.js .solutions.play .sol-pic{opacity:1;transition:opacity 1s var(--eout),transform 1s var(--eout)}
.js .solutions.play .sol-pic.c{transform:translateY(-14px);transition-delay:0ms}
.js .solutions.play .sol-pic.l{transition-delay:.55s}
.js .solutions.play .sol-pic.r{transition-delay:.75s}
.sol-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.9rem, 1.6vw, 1.4rem);
  margin-top:clamp(2.6rem, 4vw, 3.6rem);align-items:start}
/* Accordion card: header row always visible, body expands in place (height-animated, no jump) */
.sol-item{background:var(--cream-hi);border:1px solid var(--ink-09);border-radius:var(--r-m);
  overflow:hidden;transition:box-shadow .35s var(--ease),border-color .35s var(--ease)}
.sol-item:hover{box-shadow:var(--sh-1);border-color:transparent}
.sol-q{width:100%;display:flex;align-items:center;gap:.9rem;text-align:left;padding:1.2rem 1.4rem}
.sol-q .si{color:var(--teal);flex:none;display:flex}
.sol-q .si svg{width:30px;height:30px}
.sol-q .sl{font-family:var(--f-d);font-size:1.18rem;line-height:1.25;color:var(--ink);flex:1 1 auto}
.sol-ic{width:32px;height:32px;flex:none;border-radius:50%;background:transparent;border:1.5px solid var(--ink-16);color:var(--ink);
  display:flex;align-items:center;justify-content:center;position:relative;transition:all .4s var(--ease)}
.sol-ic::before,.sol-ic::after{content:"";position:absolute;background:currentColor;border-radius:2px;transition:transform .4s var(--ease)}
.sol-ic::before{width:12px;height:1.6px}.sol-ic::after{width:1.6px;height:12px}
.sol-item[aria-expanded="true"] .sol-ic{border-color:var(--bronze);color:var(--bronze)}
.sol-item[aria-expanded="true"] .sol-ic::after{transform:rotate(90deg);opacity:0}
.sol-a{overflow:hidden;height:0;transition:height .45s var(--ease)}
.sol-a-in{padding:0 1.4rem 1.3rem;color:var(--ink-58);font-size:.94rem;line-height:1.65}

/* ============================================================ WHY */
.why{position:relative;isolation:isolate;overflow:hidden}
.why-bg{position:absolute;inset:0;z-index:-2;background:var(--teal)}
.why-bg img{width:100%;height:100%;object-fit:cover}
.why-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(29,56,91,.5),rgba(29,56,91,.62))}
.why-panel{position:relative;overflow:hidden;background:var(--ink);color:var(--cod);border-radius:var(--r-xl);
  box-shadow:0 40px 90px -46px rgba(29,56,91,.75)}
.why-inner{width:62%;padding:clamp(2.2rem, 4vw, 3.6rem)}
.why-top h2{font-weight:400;font-size:clamp(2.2rem, 1.6rem + 2.3vw, 3.3rem);line-height:1.1;color:var(--cream)}
.why-top h2 .i{color:var(--bronze);font-style:italic}
.why-divide{height:1px;background:rgba(46,90,143,.5);margin:clamp(1.5rem, 2.6vw, 2.2rem) 0}
.why-content{display:flex;flex-direction:column;gap:1rem}
.why-content p{color:var(--mist);line-height:1.75;font-size:.98rem}
.why-cta{margin-top:clamp(1.6rem, 3vw, 2.2rem)}
.why-media{position:absolute;top:0;right:0;bottom:0;width:38%;overflow:hidden}
.why-media img{width:100%;height:100%;object-fit:cover}

/* ============================================================ FAQ */
.faq{background:var(--cream)}
.faq-head{text-align:center;margin-bottom:clamp(2.6rem,5vw,3.6rem)}
.faq-head h2{font-weight:400;font-size:clamp(2.5rem, 1.8rem + 3vw, 4.2rem);line-height:1.06;margin-top:1.1rem}
.faq-head h2 .i{color:#9C744A;font-style:italic}
.faq-list{max-width:780px;margin-inline:auto;display:flex;flex-direction:column}
.faq-item{border-bottom:1px solid rgba(29,56,91,.1)}
.faq-item:first-child{border-top:1px solid rgba(29,56,91,.1)}
.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;text-align:left;
  padding:1.6rem .25rem;font-family:var(--f-b);font-weight:500;font-size:1.05rem;color:var(--ink);transition:color .3s var(--ease)}
.faq-q:hover{color:var(--bronze-dk)}
.faq-ic{width:38px;height:38px;flex:none;border-radius:50%;background:transparent;border:1.5px solid var(--ink-16);color:var(--ink);
  display:flex;align-items:center;justify-content:center;position:relative;transition:all .4s var(--ease)}
.faq-ic::before,.faq-ic::after{content:"";position:absolute;background:currentColor;border-radius:2px;transition:transform .4s var(--ease)}
.faq-ic::before{width:13px;height:1.6px}.faq-ic::after{width:1.6px;height:13px}
.faq-item[aria-expanded="true"] .faq-ic{border-color:var(--bronze);color:var(--bronze)}
.faq-item[aria-expanded="true"] .faq-ic::after{transform:rotate(90deg);opacity:0}
.faq-a{overflow:hidden;height:0;transition:height .45s var(--ease)}
.faq-a-in{padding:0 .25rem 1.5rem;color:var(--ink-72);max-width:64ch;line-height:1.65}

/* ============================================================ CONTACT */
.contact{background:var(--cream)}
.contact-panel{display:grid;grid-template-columns:1.12fr .88fr;background:var(--cream-hi);
  border:1px solid var(--ink-09);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-1)}
.contact-copy{padding:clamp(1.8rem, 3.4vw, 3rem)}
.contact-copy h2{font-weight:400;font-size:clamp(2.4rem, 1.8rem + 2.7vw, 3.8rem);line-height:1.05}
.contact-copy h2 .i{color:#9C744A;font-style:italic}
.contact-copy>p{color:var(--ink-72);margin-top:.85rem;max-width:34ch}
.form{margin-top:clamp(1.6rem, 3vw, 2.2rem)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.field{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.4rem}
.field label{font-size:.7rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-72)}
.field label .req{color:var(--bronze)}
.field input,.field select,.field textarea{width:100%;padding:.78rem .95rem;background:var(--cream);
  border:1px solid rgba(97,116,140,.28);border-radius:12px;
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.field select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:2.7rem;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22%231D385B%22%3E%3Cpath%20d%3D%22M4%209h16l-8%207L4%209z%22/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1rem center;background-size:12px 12px}
.field textarea{resize:vertical;min-height:118px}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-40)}
.field :focus{outline:none;border-color:#2E5A8F;box-shadow:0 0 0 3px rgba(46,90,143,.2)}
.consent{display:flex;gap:.65rem;align-items:flex-start;font-size:.86rem;color:var(--ink-72);margin:.2rem 0 1.5rem}
.consent input{width:20px;height:20px;flex:none;margin-top:.1rem;accent-color:var(--bronze);border-radius:5px}
.form .btn{padding:.95rem 1.5rem}
.form .btn .btn-badge{display:flex;color:var(--bronze)}
.form .btn .btn-badge svg{width:18px;height:18px}
.form-ok{display:none;margin-top:1rem;text-align:center;padding:.9rem;border-radius:12px;
  background:var(--mint);color:var(--ink);font-weight:600}
.form-ok.show{display:block}
.contact-media{position:relative;min-height:440px;background:linear-gradient(150deg,var(--sand),var(--teal))}
.contact-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.contact-glass{position:absolute;left:clamp(1rem,1.8vw,1.6rem);right:clamp(1rem,1.8vw,1.6rem);
  bottom:clamp(1rem,1.8vw,1.6rem);z-index:2;padding:clamp(1.4rem,2.4vw,2rem);text-align:center;color:var(--cream);
  border:1px solid rgba(255,255,255,.4);border-radius:var(--r-l);background:rgba(30,26,18,.22);
  -webkit-backdrop-filter:blur(12px) saturate(1.1);backdrop-filter:blur(12px) saturate(1.1)}
.contact-glass .gi{color:var(--bronze);display:flex;justify-content:center;margin-bottom:.8rem}
.contact-glass .gi svg{width:30px;height:30px}
.contact-glass .gt{font-family:var(--f-d);font-size:clamp(1.5rem,1.2rem + 1.1vw,2rem);line-height:1.18}
.contact-glass .gt .i{color:var(--bronze);font-style:italic}

/* ============================================================ VISIT (dark) */
.visit{background:var(--ink)}
.visit-panel{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(1.8rem,3.6vw,3rem);align-items:start}
.visit-info{background:var(--teal);color:var(--cod);padding:clamp(2rem,4vw,3.2rem);
  border-radius:var(--r-xl);box-shadow:var(--sh-1)}
.visit-info h2{font-size:var(--s-3);color:var(--cream);margin-top:1rem}
.visit-lede{color:var(--mist);margin-top:1rem;max-width:52ch;line-height:1.65;font-size:.96rem}
.vrows{margin-top:2rem;display:flex;flex-direction:column;gap:1.3rem}
.vrow{display:flex;gap:1rem;align-items:flex-start}
.vrow .vi{width:44px;height:44px;flex:none;border-radius:var(--r-pill);background:rgba(207,220,236,.12);
  color:var(--mint);display:flex;align-items:center;justify-content:center}
.vrow .vi svg{width:20px;height:20px}
.vrow .vk{font-size:var(--s--1);letter-spacing:.12em;text-transform:uppercase;color:var(--mist)}
.vrow .vv{margin-top:.15rem;line-height:1.5}
.vrow .vv a:hover{color:var(--bronze)}
.hrs{display:grid;grid-template-columns:auto auto;gap:.35rem 1.6rem;font-size:.94rem;margin-top:.2rem}
.hrs .d{color:var(--mist)}
.visit-actions{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.9rem}
.visit-map-note{margin-top:1.1rem;color:var(--mist);font-size:.86rem;font-weight:300;line-height:1.7}
.visit-map-col{width:100%}
.visit-map{position:relative;height:clamp(500px,55vh,600px);border-radius:var(--r-l);overflow:hidden;
  box-shadow:var(--sh-2);border:1px solid var(--line-dark);background:var(--ink)}
.visit-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.15)}
.visit-map-guard{position:absolute;inset:0;cursor:pointer;background:transparent;border:0;padding:0;
  display:flex;align-items:flex-end;justify-content:center}
.visit-map.active .visit-map-guard{display:none}
.visit-map-hint{margin-bottom:1.1rem;padding:.6rem 1.1rem;border-radius:var(--r-pill);
  background:rgba(20,26,20,.6);color:var(--cream);font-size:.78rem;letter-spacing:.02em;
  display:flex;align-items:center;gap:.5rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  box-shadow:0 6px 20px -10px rgba(0,0,0,.5)}
.visit-map-hint svg{width:14px;height:14px;color:var(--bronze);flex:none}
@media(min-width:1025px){
  .visit-map-col{position:sticky;top:clamp(96px,10vh,120px)}
}
@media(max-width:1024px){
  .visit-map{height:clamp(360px,50vh,460px)}
}

/* ============================================================ FOOTER */
.footer{background:var(--ink);color:var(--cod);padding-top:var(--sp)}
.foot-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:3.2rem;padding-bottom:3rem;
  border-bottom:1px solid var(--line-dark);text-align:left}
.foot-logo{height:54px;width:auto;display:block;filter:brightness(0) invert(1)}
.foot-brand p{color:var(--mist);margin-top:1rem;max-width:34ch;font-size:.95rem}
.foot-social{display:flex;gap:.65rem;margin-top:1.5rem}
.foot-social a{width:42px;height:42px;border-radius:50%;border:1px solid var(--line-dark);
  display:flex;align-items:center;justify-content:center;transition:all .35s var(--ease)}
.foot-social a:hover{background:var(--bronze);border-color:var(--bronze);color:var(--ink);transform:translateY(-3px)}
.foot-social svg{width:18px;height:18px}
.foot-col{text-align:left}
.foot-col h4{font-family:var(--f-b);font-size:.76rem;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--mint);margin:0 0 1.1rem}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:.7rem;margin:0;padding:0;text-align:left}
.foot-col li{margin:0;padding:0;text-align:left}
.foot-col a{display:inline-block;color:var(--cod);opacity:.82;font-size:.95rem;transition:all .3s var(--ease)}
.foot-col a:hover{opacity:1;color:var(--bronze)}
/* R2/G5: explicit "see all" exits from the two index columns. */
.foot-all{margin-top:.35rem}
.foot-all a{color:var(--beige);font-weight:600;letter-spacing:.06em;opacity:1}
.foot-all a span{display:inline-block;transition:transform .35s var(--ease)}
.foot-all a:hover span{transform:translateX(4px)}
.foot-bot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;
  padding:1.8rem 0;font-size:.88rem;color:var(--mist)}
.foot-bot .links{display:flex;gap:1.5rem}
.foot-bot a:hover{color:var(--bronze)}

/* ============================================================ ABOUT PAGE
   Editorial system for this page: one left-hand type axis shared by every
   section head, alternating light/dark bands for rhythm, hairline structure
   instead of boxed cards, and one photographic accent per band. Every value
   resolves through the shared Revive tokens, so the page inherits the Home
   Page brand rather than restating it. */

/* The Home Page nav cancels its own height so it can overlay the hero.
   This page opens on type, not a hero, so that pull-up must not apply. */
.nav{margin-bottom:0}

/* ---- ONE ALIGNMENT SYSTEM FOR THE WHOLE PAGE ----
   Every band is the same 12-column grid inside the same .container, so each
   section head starts on column 1, every left block spans columns 1 to 5, every
   right block spans columns 7 to 12, and all of them end on column 12. Nothing
   is positioned per-section any more: heads, copy, images, lists and buttons
   all resolve to these tracks, which is what gives the page a single vertical
   rhythm instead of six independently placed layouts. */
.pg-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  column-gap:clamp(1.1rem,2.2vw,2rem);row-gap:clamp(2.1rem,3.2vw,3.2rem);align-items:start}
.pg-head{grid-column:1/span 8}          /* heading run: wide enough to read as one statement */
.pg-head--page{grid-column:1/span 12}   /* the page title gets the widest measure of all */
.pg-l{grid-column:1/span 5}             /* left block, every section */
.pg-r{grid-column:7/span 6}             /* right block, every section */
.pg-full{grid-column:1/span 12}
/* Nested 12-column grid: same tracks, same gutters, so children of a
   full-width cell still land on the page grid. */
.pg-subgrid{grid-column:1/span 12;display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(1.1rem,2.2vw,2rem)}

/* Lead paragraph: one step up from body copy, so each band has an entry point */
.pg-lead{font-size:clamp(1.06rem,1rem + .38vw,1.26rem);font-weight:300;line-height:1.74;color:var(--ink-90)}

/* Shared section head, same axis, same scale, every band on the page.
   The measure comes from the grid column, not a ch cap, so a heading breaks
   into as few lines as possible instead of a stack of short fragments. */
.pg-head .eyebrow{margin-bottom:1.25rem}
/* Balanced wrapping keeps a heading from ending on a single orphan word, so
   each one reads as one statement rather than a stack of short fragments. */
.pg-head h1,.pg-head h2,.team-name,.cta-copy p{text-wrap:balance}
.pg-head h1,.pg-head h2{font-weight:400;color:var(--ink);letter-spacing:-.016em;line-height:1.06}
.pg-head h2{font-size:clamp(2rem,1.45rem + 2.3vw,3.25rem)}
.pg-head h1{font-size:clamp(2.3rem,1.35rem + 3.4vw,4.1rem);line-height:1.04}
.pg-lede{color:var(--ink-72);line-height:1.85;font-weight:300;max-width:56ch}
.pg-head .pg-lede{margin-top:1.5rem}
.pg-lede + .pg-lede{margin-top:1.3rem}

/* ---- 01 · HERO: black band, black-and-white photography under a scrim ---- */
.apg-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--black);color:var(--white);
  min-height:clamp(440px,56vh,640px);display:flex;align-items:center;
  padding-block:clamp(3.6rem,2.6rem + 4.6vw,6.4rem)}
.ahero-photo{position:absolute;inset:0;z-index:-2}
.ahero-photo img{width:100%;height:100%;object-fit:cover;object-position:62% 22%;
  filter:grayscale(1) contrast(1.06) brightness(.6)}
/* Deeper on the left so the display type always sits on near-black */
.ahero-photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(94deg,rgba(10,10,10,.88) 0%,rgba(10,10,10,.82) 38%,rgba(10,10,10,.66) 66%,rgba(10,10,10,.4) 100%),
  linear-gradient(180deg,rgba(10,10,10,.42) 0%,rgba(10,10,10,.1) 40%,rgba(10,10,10,.48) 100%)}
/* This h1 sits in the same 5-column .pg-l track every other section's h2
   uses (Story, Care, Team, Area), so it takes that h2 scale rather than the
   page's full-width h1 size, keeping every heading on the page the same
   size-for-column instead of one outsized, oddly-wrapping exception. */
.apg-hero .pg-head h1{color:var(--white);font-size:clamp(2rem,1.45rem + 2.3vw,3.25rem);line-height:1.08}
.ahero-copy p{color:rgba(255,255,255,.84);line-height:1.85;font-weight:300}
.ahero-copy p + p{margin-top:1.2rem}
.ahero-copy .btn{margin-top:clamp(1.7rem,2.6vw,2.2rem)}

/* ---- 02 · story: heading on the axis, the narrative opposite ---- */
.apg-story{background:var(--white)}
.story-cols p{color:var(--ink-72);font-weight:300;line-height:1.9}
.story-cols p + p{margin-top:1.3rem}
.story-cols p strong{font-weight:600;color:var(--ink)}

/* ---- 03 · approach: dark band, photograph under a scrim, steps on a rail
   (the Home Page's Our Approach treatment, reused here) ---- */
.apg-approach{position:relative;isolation:isolate;overflow:hidden;background:var(--black);color:var(--white)}
.apr-bg{position:absolute;inset:0;z-index:-2}
.apr-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;
  filter:grayscale(1) contrast(1.08) brightness(.5)}
.apr-bg::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,10,10,.86) 0%,rgba(10,10,10,.62) 42%,rgba(10,10,10,.9) 100%)}
.apg-approach .pg-head h2{color:var(--white)}
/* One hairline across all three steps, each with its own node on it */
.apr-rail{grid-column:1/span 12;position:relative;padding-top:2.9rem;display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(1.1rem,2.2vw,2rem)}
.apr-rail::before{content:"";position:absolute;left:0;right:0;top:7px;height:1px;
  background:rgba(255,255,255,.24)}
.apr-step:nth-child(1){grid-column:1/span 4}
.apr-step:nth-child(2){grid-column:5/span 4}
.apr-step:nth-child(3){grid-column:9/span 4}
.apr-step{position:relative;padding-right:clamp(1rem,2.2vw,2.4rem)}
.apr-node{position:absolute;top:-2.9rem;left:0;width:15px;height:15px;border-radius:50%;
  background:rgba(10,10,10,.4);border:1px solid rgba(255,255,255,.5);
  transition:background-color .5s var(--ease),border-color .5s var(--ease),transform .5s var(--ease)}
/* First node reads as the starting point, matching the Home Page rail */
.apr-step:first-child .apr-node{background:var(--beige);border-color:var(--beige)}
.apr-step:hover .apr-node{background:var(--beige);border-color:var(--beige);transform:scale(1.2)}
.apr-num{display:block;font-family:var(--f-d);font-size:1rem;letter-spacing:.08em;color:var(--beige)}
.apr-step h3{font-family:var(--f-d);font-weight:400;color:var(--white);margin-top:.7rem;
  font-size:clamp(1.24rem,1.08rem + .55vw,1.55rem);line-height:1.2}
.apr-step p{color:rgba(255,255,255,.7);font-size:.95rem;font-weight:300;line-height:1.85;margin-top:.85rem}

/* ---- 04 · care model: heading beside a monochrome photograph,
   the condition list in two hairline columns underneath ---- */
.apg-care{background:var(--white)}
/* Narrower head here so the photograph sits beside it on the same row */
.apg-care .pg-head{grid-column:1/span 5}
.care-media{grid-column:7/span 6;position:relative;overflow:hidden;border-radius:var(--r-l);
  aspect-ratio:4/3;background:var(--gray);box-shadow:var(--sh-1)}
.care-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;
  transform:scale(1.02);transition:transform 1.8s var(--eout)}
.care-media:hover img{transform:scale(1.06)}
/* Column-wise flow: the list reads down the first column, then the second */
.care-list{grid-column:1/span 12;list-style:none;margin:0;padding:0;display:grid;
  grid-auto-flow:column;grid-template-rows:repeat(7,auto);
  column-gap:clamp(1.6rem,3.4vw,3.4rem)}
.care-list li{display:flex;align-items:center;gap:.9rem;margin:0;padding:.9rem .4rem;
  border-bottom:1px solid var(--line);color:var(--ink);font-size:.98rem;line-height:1.4;
  transition:background-color .35s var(--ease),padding-left .35s var(--ease)}
.care-list li:nth-child(1),.care-list li:nth-child(8){border-top:1px solid var(--line)}
.care-list li:hover{background:var(--bg);padding-left:.9rem}
.care-list li svg{width:14px;height:14px;flex:none;color:var(--beige)}

/* ---- 05 · founder: dark band, name on the axis, biography opposite.
   No portrait of the founder exists, so the block is purely typographic. ---- */
.apg-team{background:var(--black);color:var(--white)}
.apg-team .pg-head h2{color:var(--white)}
.team-name{font-family:var(--f-b);font-weight:600;color:var(--beige);margin-top:1.6rem;
  font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;line-height:1.6}
.team-rule{width:44px;height:1px;border:0;background:rgba(255,255,255,.28);margin:1.4rem 0 0}
.team-bio p{color:rgba(255,255,255,.74);font-weight:300;line-height:1.9;font-size:.97rem}
.team-bio p + p{margin-top:1.3rem}

/* ---- 06 · CTA banner: a contained black/photo split, sitting on white so it
   reads as a deliberate conversion moment rather than another paragraph ---- */
.cta-band{background:var(--white);padding-top:clamp(2.8rem,1.9rem + 3.4vw,4.8rem);padding-bottom:0}
.cta-banner{grid-column:1/span 12;display:grid;grid-template-columns:1fr 1fr;
  background:var(--black);color:var(--white);overflow:hidden;isolation:isolate;
  border-radius:var(--r-l);min-height:clamp(320px,29vw,440px)}
.cta-copy{padding:clamp(2rem,1.3rem + 2.8vw,3.6rem);display:flex;flex-direction:column;
  align-items:flex-start;justify-content:center}
.cta-copy p{margin:0;font-family:var(--f-d);font-weight:400;color:var(--white);
  font-size:clamp(1.42rem,1.08rem + 1.5vw,2.35rem);line-height:1.2;letter-spacing:-.012em;
  text-wrap:balance;max-width:26ch}
/* The call-to-action reads as one statement; the rest drops to the site's
   body face (Inter) at a lighter weight and smaller size, so it supports the
   headline instead of competing with it. */
.cta-copy .cta-sub{display:block;margin-top:.9rem;font-family:var(--f-b);font-weight:300;
  color:rgba(255,255,255,.74);font-size:clamp(.94rem,.88rem + .3vw,1.06rem);
  line-height:1.65;letter-spacing:0}
.cta-copy .btn{margin-top:clamp(1.7rem,2.4vw,2.4rem)}
/* The photograph fills its half edge to edge, no inset, no radius */
.cta-media{position:relative;overflow:hidden}
.cta-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:52% 32%}

/* ---- 07 · location: label + heading top-left, copy beneath, list opposite ---- */
/* Sits directly under the CTA banner, which already carries its own bottom
   padding, so this band's own top padding is trimmed to match, otherwise
   the two stack into one oversized gap. */
.apg-area{background:var(--white);padding-top:clamp(4rem,3rem + 4vw,5.8rem)}
/* Explicit rows so the list starts level with the heading while the copy still
   follows the heading in the reading order. */
.apg-area .pg-head{grid-column:1/span 5;grid-row:1}
/* This heading shares its row with the location list, so it is set one step
   down the display scale, as in the reference, to stay two even lines
   instead of fragmenting into four short ones. */
.apg-area .pg-head h2{font-size:clamp(1.7rem,1.3rem + 1.5vw,2.4rem);line-height:1.1}
.apg-area .pg-l{grid-column:1/span 5;grid-row:2}
.apg-area .pg-r{grid-column:7/span 6;grid-row:1/span 2}
.apg-area .pg-grid{row-gap:clamp(1.8rem,3vw,2.8rem)}
.area-note{font-size:.95rem;margin-top:1.3rem}
.area-rows{border-top:1px solid var(--line)}
.area-row{display:flex;gap:1.1rem;align-items:flex-start;padding:1.15rem .4rem;
  border-bottom:1px solid var(--line);
  transition:background-color .35s var(--ease),padding-left .35s var(--ease)}
.area-row:hover{background:var(--bg);padding-left:.9rem}
.area-row .ari{width:32px;height:32px;flex:none;border-radius:var(--r-pill);background:var(--bg);
  color:var(--clay);display:flex;align-items:center;justify-content:center;
  transition:background-color .35s var(--ease),color .35s var(--ease)}
.area-row:hover .ari{background:var(--beige);color:var(--ink)}
.area-row .ari svg{width:15px;height:15px}
.area-row .ark{font-size:.94rem;font-weight:600;color:var(--ink);letter-spacing:.01em}
.area-row .arv{margin-top:.25rem;color:var(--ink-72);font-size:.9rem;font-weight:300;line-height:1.6}


@media (max-width:1024px){
  /* Two tracks collapse to one; the alignment axis stays identical */
  .pg-head,.pg-head--page,.pg-l,.pg-r,.pg-full,.care-media,.care-list,
  .apg-care .pg-head,.apg-area .pg-head,.apg-area .pg-l,.apg-area .pg-r{grid-column:1/span 12}
  .apg-area .pg-head,.apg-area .pg-l,.apg-area .pg-r{grid-row:auto}
  .apg-hero{min-height:0}
  .ahero-photo img{object-position:58% 24%}
  .apr-step:nth-child(1){grid-column:1/span 6}
  .apr-step:nth-child(2){grid-column:7/span 6}
  .apr-step:nth-child(3){grid-column:1/span 6}
  .apr-rail{padding-top:0;row-gap:2.2rem}
  .apr-rail::before{display:none}
  .apr-step{padding-top:2.2rem;border-top:1px solid rgba(255,255,255,.24)}
  .apr-node{top:-8px}
  .care-media{max-width:560px}
  .care-list{grid-auto-flow:row;grid-template-rows:none}
  .care-list li:nth-child(8){border-top:0}
  .care-list li:nth-child(1){border-top:1px solid var(--line)}
  /* Banner stacks: photograph first, then the statement on black */
  .cta-banner{grid-template-columns:minmax(0,1fr);min-height:0}
  .cta-copy{order:2}
  .cta-media{order:1;min-height:clamp(220px,44vw,320px)}
}
@media (max-width:720px){
  .pg-grid{row-gap:1.9rem}
  .apr-step:nth-child(1),.apr-step:nth-child(2),.apr-step:nth-child(3){grid-column:1/span 12}
  .care-media{aspect-ratio:4/3}
  .cta-copy p{max-width:none}
  .cta-copy .btn,.ahero-copy .btn,.visit-actions .btn{width:100%;white-space:normal;text-align:center}
}


/* ============================================================ RESPONSIVE */
@media (max-width:1024px){
  .nav-links,.nav-cta .btn,.nav-phone{display:none}
  .nav-tog{display:flex}
  .hero-content{max-width:min(72%,560px)}
  .about-grid{grid-template-columns:minmax(0,1fr);gap:3rem}.about-media{max-width:460px}
  .why-inner{width:100%}
  .why-top .btn{position:static;margin-top:1.2rem}
  .why-media{position:relative;top:auto;bottom:auto;right:auto;width:100%;max-width:none;height:280px}
  .contact-panel{grid-template-columns:minmax(0,1fr)}
  .contact-media{min-height:340px;order:-1}
  .visit-panel{grid-template-columns:minmax(0,1fr)}
  .c-track{grid-auto-columns:calc((100% - var(--cgap))/2)}
  .sol-cards{grid-template-columns:1fr 1fr}
  .foot-top{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}
}
@media (max-width:720px){
  .hero-content{max-width:100%}
  .hero-bg img{object-position:68% 28%}
  .hero-actions .btn{flex:1 1 100%}
  .about-feats{flex-wrap:wrap;justify-content:flex-start;gap:1.8rem 2rem}
  .about-feats .f{flex:0 0 40%;align-items:flex-start;text-align:left}
  .why-top{flex-direction:column;gap:1.4rem}
  .form-row{grid-template-columns:minmax(0,1fr)}
  .form .btn{white-space:normal;text-align:center;width:100%}
  .c-track{grid-auto-columns:86%}
  .reviews .c-track{grid-auto-columns:86%}
  /* Solutions fan → simplified stacked composition: center image dominant, l/r peek out behind it */
  .sol-fan{overflow:visible}
  .sol-pic.l,.sol-pic.r{display:block;position:absolute;top:50%;width:clamp(96px,28vw,130px);z-index:1}
  .sol-pic.l{left:calc(50% - 150px);transform:translateY(-50%) rotate(-8deg)!important}
  .sol-pic.r{right:calc(50% - 150px);transform:translateY(-50%) rotate(8deg)!important}
  .sol-pic.c{position:relative;width:clamp(180px,56vw,220px);transform:none!important;z-index:2;margin-inline:auto}
  .js .solutions .sol-pic.l,.js .solutions .sol-pic.r{opacity:1}
  .js .solutions .sol-pic.c{transform:translateY(24px) scale(.94)!important}
  .js .solutions.play .sol-pic.c{transform:none!important}
  .sol-cards{grid-template-columns:minmax(0,1fr)}
  /* Services rail → stacked, bottom-anchored overlay with stronger lower-third contrast */
  .svc-rail{flex-direction:column;height:auto}
  .svc{flex:none;height:420px}.svc.is-open{flex:none}
  .svc-inner{position:absolute;padding:1.9rem 1.6rem 1.8rem}
  .svc-body{max-height:none;opacity:1;margin-top:.6rem}
  .svc::after{background:linear-gradient(180deg,rgba(29,56,91,0) 8%,rgba(29,56,91,.42) 28%,rgba(29,56,91,.85) 50%,rgba(29,56,91,.99) 100%)}
  .foot-top{grid-template-columns:minmax(0,1fr)}.foot-bot{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  .js .reveal,.js .solutions .sol-pic{opacity:1!important;transform:none!important}
}

.btn-bronze:active,.btn-dark:active{background:var(--clay);color:var(--white)}

/* ============================================================ MEGA-MENU (global, identical across all pages) */
.nav-primary{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.nav-links{display:flex;align-items:center;gap:.2rem;list-style:none;margin:0;padding:0;white-space:nowrap}
.nav-item:nth-last-child(2){margin-right:.6rem}
.nav-item{position:relative;list-style:none}
.nav-link,.nav-trigger{position:relative;display:inline-flex;align-items:center;gap:.35rem;
  padding:.55rem .95rem;font-family:var(--f-b);font-size:calc(.7rem + 1px);font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink);opacity:.82;background:none;border:0;cursor:pointer;
  transition:opacity .3s var(--ease),color .3s var(--ease)}
.nav-link:hover,.nav-trigger:hover,.nav-trigger[aria-expanded="true"]{opacity:1;color:var(--ink)}
.nav-chev{width:11px;height:11px;flex:none;transition:transform .35s var(--ease)}
.nav-trigger[aria-expanded="true"] .nav-chev{transform:rotate(180deg)}
.nav-item.is-active .nav-trigger,.nav-item.is-active .nav-link{color:var(--clay);opacity:1}

/* Panel, anchored to sticky nav, centered horizontally on the viewport */
/* R2/G2: anchored under its OWN trigger (JS sets --mega-x on open), never
   viewport-centred. padding-top is the hover-intent bridge: it is part of the
   panel, so the pointer can travel from the trigger into the menu without
   crossing dead space and cancelling the open state. */
.mega{position:absolute;left:var(--mega-x,0px);top:100%;padding-top:12px;transform:translateY(-4px);
  z-index:120;opacity:0;pointer-events:none;transition:opacity .28s var(--ease),transform .28s var(--ease)}
.mega:not([hidden]){opacity:1;pointer-events:auto;transform:translateY(0)}
.mega-inner{background:var(--white);border:1px solid var(--line);border-radius:var(--r-l);
  box-shadow:0 24px 60px -24px rgba(19,19,18,.28);
  padding:clamp(1.5rem,1.2rem + 1vw,2rem);
  display:grid;gap:clamp(1.4rem,2.2vw,2.4rem);
  max-height:calc(100vh - 120px);overflow-y:auto;overscroll-behavior:contain;
  scrollbar-width:thin;scrollbar-color:var(--gray) transparent}
.mega-inner::-webkit-scrollbar{width:8px}
.mega-inner::-webkit-scrollbar-track{background:transparent}
.mega-inner::-webkit-scrollbar-thumb{background:var(--gray);border-radius:99px}
.mega-inner::-webkit-scrollbar-thumb:hover{background:var(--ink-16)}
.mega-cols-1{grid-template-columns:minmax(220px,260px)}
.mega-cols-3{grid-template-columns:repeat(3,minmax(200px,240px))}
.mega-cols-4{grid-template-columns:repeat(4,minmax(240px,280px))}
.mega-flex{display:flex;flex-wrap:wrap;align-items:flex-start;gap:clamp(1.4rem,2.2vw,2.4rem) clamp(1.8rem,2.6vw,3rem)}
.mega-col-group{display:flex;flex-direction:column;flex:0 1 auto;gap:clamp(1.4rem,2.2vw,2.2rem)}
.mega--widest .mega-inner{width:min(1120px,calc(100vw - 40px));max-width:min(1120px,calc(100vw - 40px))}
/* R2/G4: conditions grouped by body location, balanced across columns. */
.mega-bygroup{display:block;columns:4;column-gap:clamp(1.5rem,2.2vw,2.4rem)}
.mega-group{break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;
  display:inline-block;width:100%;margin-bottom:clamp(1.1rem,1.8vw,1.6rem)}
.mega-group .mega-h{margin-bottom:.5rem}
@media(max-width:1200px){.mega-bygroup{columns:3}}
.mega-col{min-width:0}
.mega-col--wide{flex:0 1 auto}
.mega-lists{display:flex;gap:0 1.6rem}
.mega-lists .mega-list{flex:0 0 auto;min-width:140px;max-width:230px}
.mega-h{display:block;font-family:var(--f-b);font-size:calc(.62rem + 1px);font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--clay);margin-bottom:.85rem}
.mega-h--split{margin-top:1.4rem;padding-top:1rem;border-top:1px solid var(--line)}
.mega-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.05rem}
.mega-list a{display:block;padding:.4rem .5rem;font-family:var(--f-b);font-size:calc(.86rem + 1px);font-weight:400;
  color:var(--ink-72);border-radius:8px;transition:background-color .25s var(--ease),color .25s var(--ease),padding-left .25s var(--ease)}
.mega-list a:hover{background:var(--bg);color:var(--ink);padding-left:.85rem}
@media(max-width:1200px){
  .mega-cols-4{grid-template-columns:repeat(3,minmax(200px,240px))}
  .mega-lists{flex-direction:column;gap:0}
  .mega-lists .mega-list{max-width:none}
}
@media(max-width:1024px){
  .nav-primary{display:none}
  .mega{display:none}
}

/* Mobile menu, accordion groups */
.m-menu ul .m-group{border-bottom:1px solid var(--line-dark)}
.m-menu ul .m-group:last-of-type{border-bottom:0}
.m-menu .m-group-h{width:100%;display:flex;align-items:center;justify-content:space-between;
  padding:.9rem 0;background:none;border:0;color:var(--white);cursor:pointer;
  font-family:var(--f-d);font-size:calc(clamp(1.72rem,7.2vw,2.5rem) + 1px);letter-spacing:-.012em;text-align:left}
.m-menu .m-group-h svg{width:20px;height:20px;flex:none;transition:transform .3s var(--ease);color:var(--beige)}
.m-menu .m-group-h[aria-expanded="true"] svg{transform:rotate(180deg)}
.m-menu .m-sub{max-height:0;overflow:hidden;transition:max-height .45s var(--ease);
  list-style:none;margin:0;padding:0}
.m-menu .m-group[aria-expanded="true"] .m-sub{max-height:1400px}
.m-menu .m-sub li{border:0}
.m-menu .m-sub a{padding:.55rem 0;font-family:var(--f-b);font-size:calc(1rem + 1px);letter-spacing:.01em;
  font-weight:400;color:rgba(255,255,255,.78);text-transform:none;display:block}
.m-menu .m-sub a:hover{color:var(--beige)}
.m-menu .m-sub-h{padding:1rem 0 .35rem;font-family:var(--f-b);font-size:calc(.6rem + 1px);font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--beige);list-style:none}


/* ============================================================ VARIANT B (factory additions)
   Every rule below composes the mockup's own tokens and the eight motion
   primitives catalogued in MOTION-INVENTORY.md §5. Nothing is restyled. */
:root{
  --motion-ease:var(--ease);
  --motion-ease-out:var(--eout);
  --motion-ui:.35s; --motion-control:.45s; --motion-panel:.5s;
}
/* shared eyebrow for the new sections (namespaced so it never collides) */
.vb-eyebrow{display:inline-flex;align-items:center;gap:.85rem;font-family:var(--f-b);
  font-size:.66rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--clay)}
.vb-eyebrow::before{content:"";width:32px;height:1px;flex:none;background:var(--beige);border-radius:999px}
.on-dark .vb-eyebrow,.vb-eyebrow.on-dark{color:var(--beige)}
.vb-h2{font-family:var(--f-d);font-weight:400;line-height:1.1;letter-spacing:-.016em;
  font-size:clamp(1.9rem,1.5rem + 1.6vw,2.9rem);margin-top:1.1rem}
.on-dark .vb-h2{color:var(--white)}
.vb-lede{margin-top:1rem;font-size:.98rem;font-weight:300;line-height:1.75;color:var(--ink-72);max-width:64ch}
.on-dark .vb-lede{color:var(--mist)}

/* Long-label CTAs in the new sections wrap instead of forcing a horizontal
   scroll at phone widths (.btn is white-space:nowrap by default). */
.offer-in > .btn,.cta-copy .btn,.fhost .btn{max-width:100%;white-space:normal;text-align:center}
@media(max-width:560px){.offer-in > .btn{width:100%}}

/* ---- hero trust element (R2/G3: stars over "Google Business Profile" in white) ---- */
.trust-strip{display:inline-flex;flex-direction:column;align-items:center;gap:.45rem;
  padding:.8rem 1.3rem;
  border-radius:var(--r-m);background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.28);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--white);text-align:center;
  transition:background-color var(--motion-control) var(--ease),
             border-color var(--motion-control) var(--ease),
             transform var(--motion-control) var(--ease)}
.trust-strip:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.52);transform:translateY(-2px)}
.trust-stars{display:inline-flex;gap:3px;flex:none}
.trust-stars svg{width:17px;height:17px;fill:#fbbc04;stroke:none;display:block}
.trust-copy{display:flex;flex-direction:column;align-items:center;gap:.22rem;min-width:0}
.trust-v{font-family:var(--f-b);font-size:.88rem;font-weight:500;line-height:1.25;color:#FFFFFF;
  letter-spacing:.01em}
.trust-k{font-family:var(--f-b);font-size:.6rem;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:rgba(255,255,255,.78)}
.hero-trust{margin-top:clamp(1.4rem,2.4vw,2rem)}
.cond-trust{margin-top:clamp(1.2rem,2vw,1.7rem)}
@media(max-width:560px){.trust-strip{width:100%}}

/* ---- persistent mobile CTA bar (<=768px) ---- */
.mcta{position:fixed;left:0;right:0;bottom:0;z-index:140;display:none;
  grid-template-columns:auto minmax(0,1fr);gap:.5rem;
  padding:.5rem .6rem;padding-bottom:calc(.5rem + env(safe-area-inset-bottom,0px));
  background:rgba(10,10,10,.97);border-top:1px solid var(--line-dark)}
.mcta .btn{white-space:normal;text-align:center;justify-content:center;
  padding:.78rem .9rem;font-size:.7rem;line-height:1.25;letter-spacing:.1em;min-height:48px}
.mcta .btn svg{width:16px;height:16px;flex:none}
@media(max-width:768px){.mcta{display:grid}body{padding-bottom:5.1rem}}

/* ---- Poptin-shaped booking host (no live Poptin ID assigned yet) ---- */
.fhost-head h3{font-family:var(--f-d);font-weight:400;letter-spacing:-.012em;line-height:1.15;
  font-size:clamp(1.24rem,1.06rem + .6vw,1.62rem);margin-top:.6rem}
.fhost-box{min-height:560px;background:var(--bg);border:1px solid var(--line);
  border-radius:var(--r-m);padding:clamp(.9rem,1.5vw,1.3rem);display:flex;margin-top:1.1rem}
.fhost-slot{flex:1;min-height:620px;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:.7rem;text-align:center;padding:1.5rem;
  background:var(--white);border:1px dashed var(--ink-16);border-radius:var(--r-s)}
.fhost-note{font-family:var(--f-b);font-size:.72rem;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--clay)}
.fhost-sub{font-family:var(--f-b);font-size:.88rem;font-weight:300;line-height:1.65;
  color:var(--ink-62);max-width:36ch}
.fhost-alt{margin-top:1rem;font-size:.88rem;font-weight:300;color:var(--ink-72)}
.fhost-alt a{color:var(--clay);font-weight:600;text-decoration:underline;text-underline-offset:3px}
/* "Cardless" at the mobile breakpoint: the CHROME goes, the height stays. */
@media(max-width:768px){
  .fhost-box{background:transparent;border:0;border-radius:0;padding:0;margin-top:.9rem}
  .fhost-slot{border-radius:var(--r-m)}
}
.on-dark .fhost-box{background:rgba(255,255,255,.05);border-color:var(--line-dark)}
.on-dark .fhost-slot{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.24)}
.on-dark .fhost-note{color:var(--beige)}
.on-dark .fhost-sub,.on-dark .fhost-alt{color:var(--mist)}
.on-dark .fhost-alt a{color:var(--beige)}

/* ---- sticky right rail (Service + Condition) ---- */
.svc-rail-grid{display:grid;grid-template-columns:minmax(0,1fr) 358px;
  gap:clamp(2.4rem,4.5vw,4rem);align-items:start}
.svc-rail-main{display:flex;flex-direction:column;gap:clamp(2.4rem,4vw,3.4rem);min-width:0}
.svc-sticky-rail{position:sticky;top:6.5rem;display:flex;flex-direction:column;gap:1.1rem}
.rail-contact{border:1px solid var(--line);border-radius:var(--r-m);
  padding:clamp(1.1rem,1.8vw,1.4rem);background:var(--white)}
.rail-contact .rc-k{font-family:var(--f-b);font-size:.6rem;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--clay);display:block;margin-bottom:.6rem}
.rail-contact p{font-size:.88rem;font-weight:300;line-height:1.6;color:var(--ink-72);margin-top:.5rem}
.rail-contact .rc-phone{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--f-d);
  font-size:1.35rem;letter-spacing:-.01em;color:var(--ink)}
.rail-contact .rc-phone svg{width:17px;height:17px;color:var(--clay)}
@media(max-width:1024px){
  .svc-rail-grid{grid-template-columns:minmax(0,1fr)}
  .svc-sticky-rail{position:static}
}
/* A pinned rail taller than the viewport would strand its lower half, so it
   scrolls inside itself once pinned. */
@media(min-width:1025px){
  .svc-sticky-rail{max-height:calc(100vh - 7.5rem);overflow-y:auto;overscroll-behavior:contain;
    padding-right:3px;scrollbar-width:thin;scrollbar-color:var(--gray) transparent}
  .svc-sticky-rail::-webkit-scrollbar{width:8px}
  .svc-sticky-rail::-webkit-scrollbar-track{background:transparent}
  .svc-sticky-rail::-webkit-scrollbar-thumb{background:var(--gray);border-radius:99px}
}

/* ---- service: at-a-glance ---- */
.glance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:var(--r-m);
  overflow:hidden;margin-top:clamp(1.5rem,2.4vw,2.1rem)}
.glance-cell{background:var(--white);padding:clamp(1.1rem,1.8vw,1.5rem);
  transition:background-color var(--motion-ui) var(--ease)}
.glance-cell:hover{background:var(--bg)}
.glance-cell dt{font-family:var(--f-b);font-size:.6rem;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--clay);margin-bottom:.6rem}
.glance-cell dd{margin:0;font-size:.9rem;font-weight:300;line-height:1.65;color:var(--ink-72)}
.tbc{font-style:italic;color:var(--ink-62)}
@media(max-width:640px){.glance-grid{grid-template-columns:minmax(0,1fr)}}

/* ---- condition: TL;DR box ---- */
.cond-tldr{border-left:3px solid var(--beige);background:var(--bg);
  border-radius:0 var(--r-m) var(--r-m) 0;
  padding:clamp(1.2rem,2vw,1.75rem) clamp(1.3rem,2.2vw,2rem)}
.cond-tldr ul{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-direction:column;gap:.6rem}
.cond-tldr li{position:relative;padding-left:1.2rem;font-size:.95rem;font-weight:300;
  line-height:1.65;color:var(--ink-90)}
.cond-tldr li::before{content:"";position:absolute;left:0;top:.66em;width:6px;height:6px;
  border-radius:50%;background:var(--clay)}

/* ---- numbered walk-through rows (first visit / how we evaluate) ---- */
.vb-steps{list-style:none;margin:clamp(1.4rem,2.2vw,2rem) 0 0;padding:0;border-top:1px solid var(--line)}
.vb-steps li{display:flex;gap:1.15rem;padding:1.2rem .25rem;border-bottom:1px solid var(--line);
  transition:background-color var(--motion-ui) var(--ease),padding-left var(--motion-ui) var(--ease)}
.vb-steps li:hover{background:var(--bg);padding-left:.85rem}
.vb-steps .n{flex:none;font-family:var(--f-b);font-size:.68rem;font-weight:700;
  letter-spacing:.18em;color:var(--clay);padding-top:.34rem;width:2.1rem}
.vb-steps h3{font-family:var(--f-d);font-weight:400;font-size:1.12rem;letter-spacing:-.008em;
  line-height:1.25;margin-bottom:.35rem;color:var(--ink)}
.vb-steps p{font-size:.9rem;font-weight:300;line-height:1.68;color:var(--ink-72)}

/* ---- Home: complimentary-consultation offer strip ---- */
.offer-strip{background:var(--black);color:var(--white);
  padding-block:clamp(2.4rem,1.7rem + 2.4vw,3.6rem)}
.offer-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:clamp(1.4rem,3vw,2.8rem)}
.offer-copy{flex:1 1 30rem;max-width:54ch;min-width:0}
.offer-copy h2{font-family:var(--f-d);font-weight:400;letter-spacing:-.014em;line-height:1.14;
  font-size:clamp(1.5rem,1.2rem + 1.2vw,2.15rem);color:var(--white);margin-top:.9rem}
.offer-copy p{margin-top:.85rem;font-size:.95rem;font-weight:300;line-height:1.72;color:var(--mist)}

/* ---- Home: credentials band (no photos) ---- */
.creds{background:var(--bg)}
.creds-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;
  margin-top:clamp(1.6rem,2.6vw,2.4rem)}
.cred{background:var(--white);padding:clamp(1.3rem,2vw,1.8rem);
  transition:background-color var(--motion-ui) var(--ease)}
.cred:hover{background:var(--bg)}
.cred .ck{font-family:var(--f-d);font-weight:400;line-height:1.08;letter-spacing:-.02em;
  font-size:clamp(1.45rem,1.2rem + .9vw,2rem);color:var(--ink);display:block}
.cred .cv{margin-top:.6rem;font-size:.88rem;font-weight:300;line-height:1.6;color:var(--ink-72)}
.creds .creds-grid + .vb-lede{margin-top:clamp(1.4rem,2.2vw,2rem)}

/* ---- Home: stat band (verified facts only) ---- */
.statband{background:var(--black);color:var(--white)}
.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.6rem,3vw,3rem);
  margin-top:clamp(1.6rem,2.6vw,2.4rem)}
.stat{border-top:1px solid var(--line-dark);padding-top:1.25rem}
.stat .sk{font-family:var(--f-d);font-weight:400;line-height:1;letter-spacing:-.022em;
  font-size:clamp(2rem,1.5rem + 2vw,3.1rem);color:var(--beige);display:block}
.stat .sv{margin-top:.65rem;font-size:.88rem;font-weight:300;line-height:1.62;color:var(--mist)}
@media(max-width:720px){.stat-grid{grid-template-columns:minmax(0,1fr)}}

/* ---- Home: service-area block ---- */
.vb-area-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(2rem,4vw,3.6rem);align-items:start}
.vb-chiplist{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.4rem 0 0;padding:0;list-style:none}
.vb-chiplist li{padding:.58rem 1rem;border:1px solid var(--line);border-radius:var(--r-pill);
  font-size:.82rem;font-weight:400;color:var(--ink-72);
  transition:border-color var(--motion-ui) var(--ease),color var(--motion-ui) var(--ease)}
.vb-chiplist li:hover{border-color:var(--clay);color:var(--ink)}
.vb-county{margin-top:1.5rem;font-size:.88rem;font-weight:300;line-height:1.7;color:var(--ink-72)}
@media(max-width:860px){.vb-area-grid{grid-template-columns:minmax(0,1fr)}}

/* ---- About: fact snapshot (dark ground, no photos) ---- */
.fact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:1px;
  background:var(--line-dark);border:1px solid var(--line-dark);border-radius:var(--r-m);
  overflow:hidden;margin-top:clamp(1.6rem,2.6vw,2.2rem)}
.fact{background:#0F0F0E;padding:clamp(1.2rem,1.9vw,1.6rem)}
.fact dt{font-family:var(--f-b);font-size:.6rem;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--beige);margin-bottom:.55rem}
.fact dd{margin:0;font-size:.9rem;font-weight:300;line-height:1.62;color:rgba(255,255,255,.82)}

/* ---- no-JS fallbacks (progressive enhancement) ---- */
html:not(.js) .faq-a{height:auto}
html:not(.js) .faq-ic{opacity:.3}
@media(max-width:1024px){
  html:not(.js) .m-menu{position:static;inset:auto;transform:none;visibility:visible;
    height:auto;padding:1.3rem var(--gut) 2rem;justify-content:flex-start}
  html:not(.js) .m-close{display:none}
  html:not(.js) .nav-tog{display:none}
  html:not(.js) .m-menu .m-sub{max-height:none}
  html:not(.js) .m-menu .m-group-h svg{display:none}
}

/* ---- coverflow captions are server-rendered; JS only switches the active one ---- */
.cf-caption{gap:0}
.cf-cap{display:flex;flex-direction:column;gap:.4rem}
.cf-cap + .cf-cap{margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid var(--line)}
.js .cf-cap{display:none}
.js .cf-cap.is-active{display:flex}
.js .cf-cap + .cf-cap{margin-top:0;padding-top:0;border-top:0}

.about-facts{background:var(--black)}

/* ---- POPTIN EMBED (CORE30-POPTIN-PLAYBOOK) ------------------------------
   min-height is LOAD-BEARING: Poptin scales the whole form (fields AND type)
   to the box it is given. Container 560, iframe 620. The tinted .fhost-box
   host stays on light grounds so Poptin's white inputs remain visible, and
   goes cardless (chrome off, HEIGHT KEPT) at the mobile breakpoint above.
   Static pages, so there is no ClientRouter re-init. */
.poptin-embedded{width:100%;min-height:560px;color:var(--ink)}
.poptin-embedded iframe{width:100%!important;min-height:620px;background:transparent!important;
  border:0;display:block}
.on-dark .poptin-embedded,.book-band .poptin-embedded{color:var(--ink)}
.fhost-fallback{font-family:var(--f-b);font-size:.82rem;font-weight:300;line-height:1.6;
  color:var(--ink-62);margin-top:.8rem}
.on-dark .fhost-fallback{color:var(--mist)}

/* ---- low-page booking band (Service + Condition; the rail only links here) ---- */
.book-band{background:var(--bg)}
.book-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(2rem,4vw,3.4rem);align-items:start}
.book-steps{list-style:none;margin:clamp(1.4rem,2.2vw,2rem) 0 0;padding:0;
  border-top:1px solid var(--line)}
.book-steps li{display:flex;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--line)}
.book-steps .n{font-family:var(--f-b);font-size:.66rem;font-weight:700;letter-spacing:.2em;
  color:var(--clay);flex:none;padding-top:.25rem}
.book-steps h3{font-family:var(--f-d);font-weight:400;font-size:1.06rem;line-height:1.3;
  margin-bottom:.3rem;color:var(--ink)}
.book-steps p{font-size:.9rem;font-weight:300;line-height:1.65;color:var(--ink-72);margin:0}
.book-assure{margin-top:1.3rem;font-size:.88rem;font-weight:300;line-height:1.7;color:var(--ink-72)}
@media(max-width:900px){.book-grid{grid-template-columns:minmax(0,1fr)}}

/* R2/S4: the compliance duty lives in ONE place, globally, sourced from a
   single entity variable (medical_oversight_provider, awaiting the client). */
.foot-oversight{margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid var(--line-dark);
  font-family:var(--f-b);font-size:.78rem;font-weight:300;line-height:1.7;
  color:rgba(255,255,255,.6);max-width:78ch}
.foot-oversight .tbc-foot{font-style:italic}

/* ---- ICON SYSTEM (R2/G6) -------------------------------------------------
   ONE system everywhere: the art sits on a soft tinted tile with the mockup's
   own radius. No icon-in-a-circle anywhere in the body. Generated duotone PNGs
   are wired by slug; anything not yet generated renders the inline line icon
   on the same tile, so the system never breaks. */
.ic-tile{width:88px;height:88px;flex:none;border-radius:var(--r-m);
  background:rgba(151,85,55,.07);display:inline-flex;align-items:center;justify-content:center;
  overflow:hidden;transition:background-color var(--motion-ui,.35s) var(--ease)}
.ic-tile img{width:64px;height:64px;object-fit:contain;display:block}
.ic-tile svg{width:32px;height:32px;color:var(--clay)}
.on-dark .ic-tile,.on-black .ic-tile,.visit .ic-tile{background:rgba(255,255,255,.08)}
.on-dark .ic-tile svg,.on-black .ic-tile svg,.visit .ic-tile svg{color:var(--beige)}
.ic-tile--sm{width:60px;height:60px;border-radius:var(--r-m)}
.ic-tile--sm img{width:46px;height:46px}
.ic-tile--sm svg{width:24px;height:24px}
/* rows that carry no generated art keep the old compact footprint */
.ic-tile--xs{width:40px;height:40px;border-radius:var(--r-s)}
.ic-tile--xs img{width:26px;height:26px}
.ic-tile--xs svg{width:18px;height:18px}
@media(max-width:640px){.ic-tile{width:72px;height:72px}.ic-tile img{width:54px;height:54px}}