/* ══════════════════════════════════════════════════════════════════════
   HANSEN CHIROPRACTIC — SHARED DESIGN SYSTEM  (single source of truth)
   Edit here → propagates to every page. Do not inline page styles that
   belong here. Brand: Sky · Lime · Navy · Amber. Montserrat + Inter.
══════════════════════════════════════════════════════════════════════ */

/* ── TOKENS ─────────────────────────────────────────────────────────── */
:root{
  --sky:#34AAE4;      --sky-dark:#2693C9;
  --sky-ink:#0F6FA6;  /* accessible sky for TEXT/ICONS/BUTTONS on light bg (5.5:1) — use --sky only on dark bg or large fills */
  --lime:#ABCE5E;     --lime-dark:#8FB53F;
  --green-ink:#4F7A15;/* accessible green for text/numbers on light bg (5.1:1) */
  --navy:#1C2E3D;     --navy-deep:#0F1B26;
  --ice:#D4EEFA;      --mint:#EDF5D2;
  --amber:#FFB84E;    --amber-dark:#E89A28;
  --amber-ink:#A85D00;/* accessible amber for text/numbers on light bg (5.0:1) */
  --gold:#C67C00;     /* review stars — visible & WCAG-compliant (3.3:1) on white, vs pale amber */
  --white:#fff;       --off:#F8FBFD;
  --gray:#3F4C58;     --gray-light:#E5EEF4; /* body/secondary text — WCAG AAA (>=7:1) on white, off, ice & mint */
  --text:#1C2E3D;
  --shadow-sm:0 2px 8px rgba(28,46,61,.06);
  --shadow-md:0 8px 24px rgba(28,46,61,.10);
  --shadow-lg:0 16px 48px rgba(28,46,61,.14);
  --shadow-xl:0 28px 70px rgba(28,46,61,.22);
  --radius:12px; --radius-sm:8px; --radius-lg:20px; --radius-xl:28px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --maxw:1200px;
  --font-display:'Montserrat',system-ui,sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
}

/* ── RESET / BASE ───────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);color:var(--text);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg,video{max-width:100%;display:block}
a{color:var(--sky-ink);text-decoration:none;transition:color .2s var(--ease)}
a:hover{color:var(--navy)}
::selection{background:var(--lime);color:var(--navy)}

/* ── TYPOGRAPHY ─────────────────────────────────────────────────────── */
h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:700;line-height:1.14;color:var(--navy);letter-spacing:-.015em}
h1{font-size:clamp(34px,5.4vw,58px);font-weight:800;line-height:1.06}
h2{font-size:clamp(28px,4vw,44px)}
h3{font-size:clamp(20px,2.5vw,26px)}
.eyebrow{font-family:var(--font-display);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--sky-ink);margin-bottom:14px;display:inline-flex;align-items:center;gap:8px}
.eyebrow::before{content:"";width:26px;height:2px;background:currentColor;border-radius:2px;opacity:.7}
.section-header{text-align:center;max-width:700px;margin:0 auto 56px}
.section-header .eyebrow{justify-content:center}
.section-header h2 span{color:var(--sky-ink)}
.section-header p{font-size:17px;color:var(--gray);margin-top:14px;line-height:1.7}

/* ── LAYOUT ─────────────────────────────────────────────────────────── */
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}
section{scroll-margin-top:96px}
.card-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}
@media(max-width:900px){.card-grid-3{grid-template-columns:repeat(2,1fr)}.card-grid-2{grid-template-columns:1fr;gap:24px}}
@media(max-width:600px){.card-grid-3{grid-template-columns:1fr}}

/* ── BUTTONS ────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:.02em;padding:16px 32px;border-radius:var(--radius-sm);border:2px solid transparent;cursor:pointer;transition:all .2s var(--ease);text-transform:uppercase;text-align:center}
.btn svg{width:18px;height:18px}
.btn-primary{background:var(--sky-ink);color:var(--white)}
.btn-primary:hover{background:var(--navy);color:var(--white);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn-amber{background:var(--amber);color:var(--navy)}
.btn-amber:hover{background:var(--amber-dark);color:var(--navy);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn-lime{background:var(--lime);color:var(--navy)}
.btn-lime:hover{background:var(--lime-dark);color:var(--navy);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn-outline{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn-outline:hover{background:var(--navy);color:var(--white)}
.btn-ghost{background:transparent;color:var(--white);border-color:rgba(255,255,255,.4)}
.btn-ghost:hover{background:var(--white);color:var(--navy);border-color:var(--white)}
.btn-lg{padding:18px 38px;font-size:16px}

/* ── PROMO BAR (config-driven, dismissible) ─────────────────────────── */
.promo-bar{background:linear-gradient(90deg,var(--amber),#FFC96B);color:var(--navy);font-family:var(--font-display);font-weight:700;font-size:14px;position:relative;z-index:120}
.promo-bar .container{display:flex;align-items:center;justify-content:center;gap:16px;min-height:46px;padding-top:9px;padding-bottom:9px;text-align:center;flex-wrap:wrap}
.promo-bar .promo-text{display:inline-flex;align-items:center;gap:9px;line-height:1.35}
.promo-bar .promo-text svg{width:17px;height:17px;flex-shrink:0}
.promo-bar .promo-link{color:var(--navy);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.promo-bar .promo-link:hover{color:var(--navy-deep)}
.promo-bar .promo-close{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:rgba(28,46,61,.12);border:none;color:var(--navy);width:26px;height:26px;border-radius:50%;font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}
.promo-bar .promo-close:hover{background:rgba(28,46,61,.24)}
.promo-bar[hidden]{display:none}
@media(max-width:600px){.promo-bar .container{padding-right:44px}.promo-bar{font-size:12.5px}}

/* ── UTILITY BAR ────────────────────────────────────────────────────── */
.util-bar{background:var(--navy);color:var(--white);font-size:13px;padding:10px 0}
.util-bar .container{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.util-info{display:flex;gap:24px;flex-wrap:wrap}
.util-info span,.util-info a{display:flex;align-items:center;gap:6px;color:rgba(255,255,255,.85)}
.util-info a:hover{color:var(--lime)}
.util-info svg{width:14px;height:14px;flex-shrink:0}
.util-cta{font-weight:700;color:var(--lime)!important}
.util-cta:hover{color:var(--white)!important}
@media(max-width:760px){.util-bar{display:none}}

/* ── HEADER / NAV ───────────────────────────────────────────────────── */
.header{background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(12px);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(28,46,61,.05)}
.header .container{display:flex;justify-content:space-between;align-items:center;height:78px;gap:32px}
.logo{display:flex;align-items:center;gap:10px}
.logo img{height:46px;width:auto}
.nav{display:flex;align-items:center;gap:4px;font-family:var(--font-display);font-weight:600;font-size:14px}
.nav a{color:var(--navy);padding:10px 13px;border-radius:6px;transition:all .15s var(--ease);position:relative}
.nav a:not(.cta-nav):hover{background:var(--ice);color:var(--sky-ink)}
.nav a[aria-current="page"]:not(.cta-nav){color:var(--sky-ink)}
.nav a[aria-current="page"]:not(.cta-nav)::after{content:"";position:absolute;left:13px;right:13px;bottom:2px;height:2px;background:var(--sky-ink);border-radius:2px}
.nav .cta-nav{background:var(--sky-ink);color:var(--white);padding:12px 20px;font-weight:700;margin-left:6px;box-shadow:0 4px 14px rgba(15,111,166,.35)}
.nav .cta-nav:hover{background:var(--navy);color:var(--white);transform:translateY(-1px)}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px}
.nav-toggle svg{width:28px;height:28px;color:var(--navy)}
@media(max-width:1040px){
  .nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--white);flex-direction:column;align-items:stretch;padding:14px;box-shadow:var(--shadow-md);gap:2px;border-top:1px solid var(--gray-light)}
  .nav.open{display:flex;animation:navDrop .25s var(--ease)}
  .nav a{padding:14px 18px}
  .nav .cta-nav{margin:8px 0 0;text-align:center}
  .nav-toggle{display:block}
}
@keyframes navDrop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* ── HERO ───────────────────────────────────────────────────────────── */
.hero{position:relative;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-deep) 100%);color:var(--white);overflow:hidden;padding:88px 0 96px}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 82% 26%,rgba(52,170,228,.22) 0%,transparent 58%),radial-gradient(ellipse at 12% 78%,rgba(171,206,94,.14) 0%,transparent 58%);pointer-events:none}
.hero::after{content:"";position:absolute;inset:0;opacity:.4;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:22px 22px}
.hero .container{position:relative;display:grid;grid-template-columns:1.12fr .88fr;gap:56px;align-items:center}
.hero-content .eyebrow{color:var(--lime)}
.hero-content h1{color:var(--white);margin-bottom:22px}
.hero-content h1 span{background:linear-gradient(120deg,var(--sky),var(--lime));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero-lead{font-size:18px;line-height:1.72;color:rgba(255,255,255,.84);margin-bottom:30px;max-width:560px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-trust{display:flex;gap:34px;margin-top:42px;flex-wrap:wrap}
.hero-trust-item strong{color:var(--lime);font-family:var(--font-display);font-weight:800;font-size:26px;display:block;line-height:1}
.hero-trust-item small{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.72);margin-top:5px}
.hero-visual{position:relative}
.hero-figure{position:relative;aspect-ratio:4/5;border-radius:var(--radius-xl);overflow:hidden;background:radial-gradient(circle at 50% 40%,rgba(52,170,228,.20),transparent 70%);display:flex;align-items:flex-end;justify-content:center}
.hero-figure img{width:100%;height:100%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 24px 48px rgba(0,0,0,.4))}
.hero-badge-floating{position:absolute;bottom:20px;left:-14px;background:var(--lime);color:var(--navy);border-radius:var(--radius);padding:14px 20px;font-family:var(--font-display);font-weight:700;box-shadow:var(--shadow-xl);font-size:13px;line-height:1.25;z-index:2}
.hero-badge-floating strong{display:block;font-size:26px;font-weight:800;color:var(--navy)}
/* hero offer callout (config-driven) */
.hero-offer{position:absolute;top:16px;right:-6px;background:var(--white);color:var(--navy);border-radius:var(--radius);padding:14px 18px;box-shadow:var(--shadow-xl);z-index:2;text-align:center;border:2px solid var(--amber)}
.hero-offer small{display:block;font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--amber-ink)}
.hero-offer strong{display:block;font-family:var(--font-display);font-size:30px;font-weight:800;line-height:1.05;color:var(--navy)}
.hero-offer span{display:block;font-size:11px;color:var(--gray)}
@media(max-width:900px){
  .hero{padding:56px 0 66px}
  .hero .container{grid-template-columns:1fr;gap:36px}
  .hero-visual{max-width:360px;margin:0 auto}
  .hero-trust{justify-content:flex-start;gap:26px}
}

/* ── AWARD STRIP ────────────────────────────────────────────────────── */
.award-strip{background:var(--lime);color:var(--navy);text-align:center;padding:16px 24px;font-family:var(--font-display);font-weight:700;font-size:13.5px;letter-spacing:.04em;text-transform:uppercase}
.award-strip span{color:var(--navy);font-weight:800}

/* ── LOCATION BANNER (building photo — instant recognition near the top) ── */
.locstrip{max-width:1120px;margin:0 auto;padding:36px 24px 8px}
.locstrip-frame{position:relative;line-height:0;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}
.locstrip img{width:100%;height:auto;aspect-ratio:20/9;object-fit:cover;object-position:center 44%}
.locstrip-cap{position:absolute;left:18px;bottom:18px;background:rgba(15,27,38,.9);color:var(--white);border-left:4px solid var(--lime);border-radius:var(--radius);padding:14px 20px;line-height:1.3;box-shadow:var(--shadow-lg);backdrop-filter:blur(4px);max-width:calc(100% - 36px)}
.locstrip-cap strong{display:block;font-family:var(--font-display);font-weight:800;font-size:clamp(15px,2vw,19px)}
.locstrip-cap span{display:block;font-size:13px;color:rgba(255,255,255,.85);margin-top:3px}
@media(max-width:600px){.locstrip img{aspect-ratio:3/2}}

/* ── OFFER SECTION (home — config-driven) ───────────────────────────── */
.offer{padding:90px 0;background:linear-gradient(160deg,var(--mint) 0%,var(--off) 60%)}
.offer-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;display:grid;grid-template-columns:1.05fr .95fr;border:1px solid var(--gray-light)}
.offer-body{padding:52px 48px}
.offer-body .eyebrow{color:var(--amber-ink)}
.offer-body h2{margin-bottom:14px}
.offer-body h2 span{color:var(--sky-ink)}
.offer-lead{color:var(--gray);font-size:16px;line-height:1.7;margin-bottom:24px}
.offer-includes{list-style:none;margin-bottom:28px;display:grid;gap:12px}
.offer-includes li{display:flex;align-items:flex-start;gap:11px;font-size:15.5px;color:var(--navy);font-weight:500}
.offer-includes li::before{content:"";flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--lime);margin-top:1px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%231C2E3D' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M4.5 12.75l6 6 9-13.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center}
.offer-disclaimer{font-size:12px;color:var(--gray);margin-top:18px;line-height:1.5}
.offer-aside{background:linear-gradient(150deg,var(--navy),var(--navy-deep));color:var(--white);padding:52px 40px;display:flex;flex-direction:column;justify-content:center;text-align:center;position:relative;overflow:hidden}
.offer-aside::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(255,184,78,.22),transparent 62%);pointer-events:none}
.offer-aside .offer-scarcity{position:relative;display:inline-flex;align-self:center;align-items:center;gap:7px;background:rgba(255,184,78,.16);color:var(--amber);font-family:var(--font-display);font-weight:700;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;padding:7px 15px;border-radius:100px;margin-bottom:24px}
.offer-aside .offer-scarcity::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 0 rgba(255,184,78,.6);animation:pulse 2s infinite}
.offer-price{position:relative;font-family:var(--font-display);font-weight:800;font-size:80px;line-height:.95;color:var(--white)}
.offer-price sup{font-size:34px;top:-.6em;color:var(--amber);margin-right:2px}
.offer-was{position:relative;color:rgba(255,255,255,.74);font-size:15px;margin-top:8px}
.offer-was s{color:rgba(255,255,255,.62)}
.offer-was b{color:var(--lime)}
.offer-stack{position:relative;list-style:none;margin:26px 0;display:grid;gap:9px;text-align:left;max-width:280px;margin-left:auto;margin-right:auto}
.offer-stack li{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;color:rgba(255,255,255,.8);padding-bottom:9px;border-bottom:1px dashed rgba(255,255,255,.14)}
.offer-stack li span:last-child{color:var(--lime);font-family:var(--font-display);font-weight:700}
.offer-urgency{position:relative;font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--amber);margin-bottom:14px;letter-spacing:.02em}
.offer-urgency[hidden]{display:none}
.offer-aside .btn{position:relative;width:100%}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,184,78,.55)}70%{box-shadow:0 0 0 10px rgba(255,184,78,0)}100%{box-shadow:0 0 0 0 rgba(255,184,78,0)}}
@media(max-width:860px){.offer-card{grid-template-columns:1fr}.offer-body{padding:40px 30px}.offer-aside{padding:44px 30px}}

/* ── ABOUT PREVIEW ──────────────────────────────────────────────────── */
.about{padding:90px 0;background:var(--white)}
.about .container{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;align-items:center}
/* bio section holds a single .bio-grid (its own 2-col layout) — don't wrap it in the 2-col about grid */
.about-bio .container{display:block}
.about-media{position:relative}
.about-media img{aspect-ratio:1/1;width:100%;height:auto;object-fit:cover;border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}
.about-since{position:absolute;bottom:20px;right:20px;background:var(--sky-ink);color:var(--white);border-radius:var(--radius);padding:16px 20px;font-family:var(--font-display);box-shadow:var(--shadow-md);text-align:center}
.about-since strong{display:block;font-size:30px;font-weight:800;line-height:1}
.about-since small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.12em;margin-top:4px;opacity:.92}
.about-content h2{margin-bottom:20px}
.about-content h2 span{color:var(--sky-ink)}
.about-content p{font-size:16px;line-height:1.8;color:var(--gray);margin-bottom:18px}
.about-content .btn{margin-top:14px}
@media(max-width:900px){.about .container{grid-template-columns:1fr;gap:40px}.about-media{max-width:440px;margin:0 auto}}

/* ── SERVICES ───────────────────────────────────────────────────────── */
.services{padding:90px 0;background:var(--off)}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.service-card{background:var(--white);border-radius:var(--radius);padding:36px 28px;border:1px solid var(--gray-light);transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s;position:relative;overflow:hidden;display:flex;flex-direction:column}
.service-card::after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--sky),var(--lime));transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.service-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:transparent}
.service-card:hover::after{transform:scaleX(1)}
.service-card.featured{background:linear-gradient(150deg,var(--navy),var(--navy-deep));color:var(--white);border:none}
.service-card.featured h3{color:var(--white)}
.service-card.featured p{color:rgba(255,255,255,.78)}
.service-card.featured .service-tag{background:var(--amber);color:var(--navy)}
.service-card.featured .service-link{color:var(--amber)}
.service-card.featured .service-icon{background:rgba(255,184,78,.18);color:var(--amber)}
.service-icon{width:56px;height:56px;border-radius:14px;background:var(--ice);color:var(--sky-ink);display:flex;align-items:center;justify-content:center;margin-bottom:22px}
.service-icon svg{width:28px;height:28px}
.service-tag{display:inline-block;font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:var(--lime);color:var(--navy);padding:4px 10px;border-radius:4px;margin-bottom:12px;align-self:flex-start}
.service-card h3{font-size:21px;margin-bottom:12px}
.service-card p{font-size:15px;color:var(--gray);line-height:1.65;margin-bottom:18px;flex-grow:1}
.service-link{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--sky-ink);letter-spacing:.05em;text-transform:uppercase;transition:gap .2s var(--ease)}
.service-link:hover{gap:11px}
@media(max-width:900px){.services-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.services-grid{grid-template-columns:1fr}}

/* ── SOFTWAVE SPOTLIGHT ─────────────────────────────────────────────── */
.softwave-spot{padding:90px 0;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-deep) 100%);color:var(--white);position:relative;overflow:hidden}
.softwave-spot::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 72% 46%,rgba(255,184,78,.20) 0%,transparent 58%);pointer-events:none}
.softwave-spot .container{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.softwave-spot .eyebrow{color:var(--amber)}
.softwave-spot h2{color:var(--white);margin-bottom:20px}
.softwave-spot h2 span{color:var(--amber)}
.softwave-spot .sw-lead{font-size:17px;color:rgba(255,255,255,.84);line-height:1.75;margin-bottom:24px}
.softwave-features{display:grid;grid-template-columns:repeat(2,1fr);gap:13px 24px;margin-bottom:32px}
.softwave-feature{display:flex;align-items:flex-start;gap:10px;color:rgba(255,255,255,.9);font-size:14px}
.softwave-feature::before{content:"✓";color:var(--amber);font-weight:700;flex-shrink:0;font-size:17px;line-height:1.2}
.softwave-figure{position:relative;aspect-ratio:1/1;border-radius:var(--radius-lg);background:radial-gradient(circle at 55% 45%,rgba(255,184,78,.14),rgba(52,170,228,.06));border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;overflow:hidden}
.softwave-figure img{width:92%;height:92%;object-fit:contain;filter:drop-shadow(0 18px 40px rgba(0,0,0,.4))}
.softwave-figure.has-photo img{width:100%;height:100%;object-fit:cover;filter:none}
@media(max-width:900px){.softwave-spot .container{grid-template-columns:1fr;gap:40px}.softwave-figure{max-width:400px;margin:0 auto}.softwave-features{grid-template-columns:1fr}}

/* ── STATS BAND (softwave numbers) ──────────────────────────────────── */
.stats-band{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.stat-tile{padding:26px 20px;background:var(--white);border:1px solid var(--gray-light);border-radius:var(--radius);text-align:center;transition:transform .2s var(--ease),box-shadow .2s}
.stat-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.stat-tile strong{display:block;font-family:var(--font-display);font-size:42px;font-weight:800;color:var(--sky-ink);line-height:1}
.stat-tile.amber strong{color:var(--amber-ink)}
.stat-tile.lime strong{color:var(--green-ink)}
.stat-tile span{display:block;font-size:12px;color:var(--gray);text-transform:uppercase;letter-spacing:.09em;margin-top:8px;font-weight:600}
@media(max-width:700px){.stats-band{grid-template-columns:1fr 1fr;gap:14px}.stat-tile strong{font-size:34px}}

/* ── CONDITIONS ─────────────────────────────────────────────────────── */
.conditions{padding:90px 0;background:var(--white)}
.conditions-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.condition-pill{background:var(--off);border:1px solid var(--gray-light);border-left:4px solid var(--lime);border-radius:var(--radius-sm);padding:17px 18px;font-family:var(--font-display);font-weight:600;font-size:14px;color:var(--navy);transition:all .2s var(--ease);cursor:pointer;display:block}
.condition-pill:hover{transform:translateX(4px);border-left-color:var(--sky);background:var(--ice);color:var(--sky-ink)}
@media(max-width:900px){.conditions-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.conditions-grid{grid-template-columns:repeat(2,1fr)}}

/* ── 3-PHASE CARE ───────────────────────────────────────────────────── */
.phases{padding:90px 0;background:linear-gradient(180deg,var(--ice) 0%,var(--white) 100%)}
.phases-track{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;position:relative;margin-top:56px}
.phases-track::before{content:"";position:absolute;top:48px;left:16%;right:16%;height:3px;background:linear-gradient(90deg,var(--sky),var(--lime),var(--amber));border-radius:2px;z-index:0}
.phase-card{background:var(--white);border-radius:var(--radius);padding:32px 24px;text-align:center;box-shadow:var(--shadow-sm);position:relative;z-index:1;transition:transform .2s var(--ease),box-shadow .2s}
.phase-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.phase-num{width:70px;height:70px;border-radius:50%;background:var(--white);border:4px solid var(--sky);color:var(--sky-ink);font-family:var(--font-display);font-weight:800;font-size:26px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}
.phase-card:nth-child(2) .phase-num{border-color:var(--lime);color:var(--green-ink)}
.phase-card:nth-child(3) .phase-num{border-color:var(--amber);color:var(--amber-ink)}
.phase-card h4{font-family:var(--font-display);font-size:18px;margin-bottom:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--navy)}
.phase-card p{color:var(--gray);font-size:14px;line-height:1.7}
.phase-tag{display:inline-block;font-family:var(--font-display);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--sky-ink);background:var(--ice);padding:4px 10px;border-radius:4px;margin-top:14px}
.phase-card:nth-child(2) .phase-tag{color:var(--green-ink);background:var(--mint)}
.phase-card:nth-child(3) .phase-tag{color:var(--amber-ink);background:#FFF6E5}
@media(max-width:800px){.phases-track{grid-template-columns:1fr;gap:20px}.phases-track::before{display:none}}

/* ── TESTIMONIALS / REVIEWS ─────────────────────────────────────────── */
.testimonials{padding:90px 0;background:var(--off)}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:40px}
.review-card{background:var(--white);border-radius:var(--radius);padding:32px 28px;box-shadow:var(--shadow-sm);position:relative;transition:transform .2s var(--ease),box-shadow .2s}
.review-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.review-stars{color:var(--gold);font-size:18px;margin-bottom:14px;letter-spacing:2px}
.review-text{font-size:15px;line-height:1.75;color:var(--text);margin-bottom:20px;font-style:italic}
.review-author{display:flex;align-items:center;gap:12px;padding-top:18px;border-top:1px solid var(--gray-light)}
.review-avatar{width:42px;height:42px;border-radius:50%;background:var(--ice);color:var(--sky-ink);font-family:var(--font-display);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.review-name{font-weight:700;color:var(--navy);font-size:14px}
.review-meta{font-size:12px;color:var(--gray)}
.reviews-cta{text-align:center}
.google-stars{display:inline-flex;align-items:center;gap:10px;margin-bottom:8px;background:var(--white);padding:12px 22px;border-radius:100px;box-shadow:var(--shadow-sm)}
.google-stars strong{font-family:var(--font-display);font-weight:800;color:var(--navy)}
.google-stars .gs{color:var(--gold);font-size:18px;letter-spacing:1px}
@media(max-width:900px){.reviews-grid{grid-template-columns:1fr}}

/* ── BEFORE / AFTER ─────────────────────────────────────────────────── */
.before-after{padding:90px 0;background:var(--white)}
.ba-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ba-card{background:var(--off);border-radius:var(--radius);overflow:hidden;border:1px solid var(--gray-light)}
.ba-info{padding:20px}
.ba-info h4{font-size:16px;margin-bottom:6px}
.ba-info p{font-size:13px;color:var(--gray);line-height:1.5}
@media(max-width:900px){.ba-grid{grid-template-columns:1fr}}

/* ── FAQ ────────────────────────────────────────────────────────────── */
.faq{padding:90px 0;background:var(--off)}
.faq-list{max-width:820px;margin:0 auto}
.faq-item{background:var(--white);border:1px solid var(--gray-light);border-radius:var(--radius);margin-bottom:14px;overflow:hidden;transition:box-shadow .2s}
.faq-item:hover{box-shadow:var(--shadow-sm)}
.faq-q{width:100%;text-align:left;background:none;border:none;padding:22px 28px;display:flex;justify-content:space-between;align-items:center;gap:16px;cursor:pointer;font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--navy)}
.faq-q::after{content:"+";color:var(--sky-ink);font-size:26px;font-weight:300;transition:transform .25s var(--ease);flex-shrink:0}
.faq-item.open .faq-q::after{transform:rotate(45deg)}
.faq-a{padding:0 28px;color:var(--gray);font-size:15px;line-height:1.75;max-height:0;overflow:hidden;transition:max-height .3s var(--ease),padding .3s var(--ease)}
.faq-item.open .faq-a{padding:0 28px 24px;max-height:400px}

/* ── INSURANCE ──────────────────────────────────────────────────────── */
.insurance{padding:80px 0;background:var(--white);text-align:center}
.insurance h3{font-size:18px;text-transform:uppercase;letter-spacing:.1em;color:var(--gray);margin-bottom:30px;font-weight:600}
.insurance-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;max-width:980px;margin:0 auto;align-items:center}
.insurance-logo{aspect-ratio:5/2;background:var(--off);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;color:var(--gray);font-size:11px;text-align:center;padding:8px;border:1px solid var(--gray-light);transition:all .2s var(--ease)}
.insurance-logo:hover{border-color:var(--sky);color:var(--navy)}
.insurance-note{margin-top:30px;color:var(--gray);font-size:14px}
.insurance-note a{font-weight:600}
@media(max-width:768px){.insurance-grid{grid-template-columns:repeat(3,1fr)}}

/* ── CTA BLOCK / CONTACT ────────────────────────────────────────────── */
.cta-block{padding:90px 0;background:linear-gradient(135deg,#0F5A85 0%,#0A466B 100%);color:var(--white);position:relative;overflow:hidden}
.cta-block::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 92% 60%,rgba(171,206,94,.22) 0%,transparent 55%);pointer-events:none}
.cta-block .container{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.cta-block h2{color:var(--white);margin-bottom:18px}
.cta-block h2 span{color:var(--lime)}
.cta-block .cta-lead{font-size:17px;color:#fff;margin-bottom:30px;line-height:1.75}
.cta-info{display:flex;flex-direction:column;gap:18px;margin-top:30px}
.cta-info-item{display:flex;align-items:flex-start;gap:14px;color:var(--white);font-size:15px}
.cta-info-item svg{width:22px;height:22px;flex-shrink:0;color:var(--lime);margin-top:2px}
.cta-info-item strong{display:block;font-family:var(--font-display);font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px;color:#CFE29A}
.cta-info-item a{color:var(--white)}
.cta-info-item a:hover{color:var(--lime)}
.cta-form{background:var(--white);border-radius:var(--radius);padding:36px;color:var(--navy);box-shadow:var(--shadow-lg)}
.cta-form h3{margin-bottom:8px;font-size:22px}
.cta-form p{font-size:14px;color:var(--gray);margin-bottom:22px}
.form-disclaimer{font-size:11px;color:var(--gray);margin-top:14px;line-height:1.5}
@media(max-width:900px){.cta-block .container{grid-template-columns:1fr}}

/* ── FORM ELEMENTS ──────────────────────────────────────────────────── */
.form-row{margin-bottom:14px}
.form-row label{display:block;font-family:var(--font-display);font-size:12px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.form-row input,.form-row textarea,.form-row select{width:100%;padding:12px 14px;border:1px solid var(--gray-light);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:15px;color:var(--navy);transition:border-color .2s,box-shadow .2s;background:var(--white)}
.form-row input:focus,.form-row textarea:focus,.form-row select:focus{outline:none;border-color:var(--sky-ink);box-shadow:0 0 0 3px rgba(15,111,166,.22)}
.form-row textarea{resize:vertical;min-height:80px}
.form-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:520px){.form-2col{grid-template-columns:1fr}}
.form-status{margin-top:12px;font-size:14px;line-height:1.5;padding:12px 14px;border-radius:var(--radius-sm)}
.form-status[data-kind="error"]{background:#FDECEC;color:#8A1C1C;border:1px solid #F3C6C6}
.form-status[data-kind="info"]{background:var(--ice);color:var(--navy);border:1px solid var(--gray-light)}
.form-success{text-align:center;padding:36px 24px}
.form-success .form-success-ic{width:60px;height:60px;border-radius:50%;background:var(--lime);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;margin:0 auto 18px}
.form-success h3{font-size:22px;margin-bottom:10px}
.form-success p{color:var(--gray);font-size:15px;line-height:1.7;max-width:420px;margin:0 auto}

/* ── PAGE BANNER (inner pages) ──────────────────────────────────────── */
.page-banner{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-deep) 100%);color:var(--white);padding:76px 0 66px;position:relative;overflow:hidden}
.page-banner::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 80% 30%,rgba(52,170,228,.18) 0%,transparent 60%),radial-gradient(ellipse at 20% 70%,rgba(171,206,94,.12) 0%,transparent 60%);pointer-events:none}
.page-banner .container{position:relative;text-align:center;max-width:790px}
.page-banner .eyebrow{color:var(--lime);justify-content:center}
.page-banner h1{color:var(--white);margin-bottom:18px}
.page-banner p{font-size:18px;color:rgba(255,255,255,.84);line-height:1.7;max-width:620px;margin:0 auto}
.breadcrumb{font-family:var(--font-display);font-size:13px;color:rgba(255,255,255,.72);margin-bottom:20px;letter-spacing:.04em}
.breadcrumb a{color:rgba(255,255,255,.85)}
.breadcrumb a:hover{color:var(--sky)}
.breadcrumb span{margin:0 8px;opacity:.5}

/* ── PROSE ──────────────────────────────────────────────────────────── */
.prose{max-width:760px;margin:0 auto}
.prose h2{margin:44px 0 18px}
.prose h3{margin:32px 0 12px}
.prose p{font-size:16px;line-height:1.85;color:var(--text);margin-bottom:18px}
.prose ul{margin-bottom:20px;padding-left:24px}
.prose ul li{margin-bottom:10px;line-height:1.7}
.prose blockquote{border-left:4px solid var(--lime);background:var(--mint);padding:24px 28px;margin:28px 0;border-radius:0 var(--radius) var(--radius) 0;font-style:italic;color:var(--navy)}

/* ── IMG-SPEC (labeled slot for images we don't have yet) ───────────── */
.img-spec{position:relative;border:2px dashed var(--sky);background:linear-gradient(135deg,var(--ice),var(--off));border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px 26px;color:var(--navy);min-height:180px}
.img-spec svg{width:34px;height:34px;color:var(--sky-ink);margin-bottom:12px;opacity:.9}
.img-spec .img-spec-title{font-family:var(--font-display);font-weight:800;font-size:15px;letter-spacing:.02em;margin-bottom:6px}
.img-spec .img-spec-desc{font-size:13px;color:var(--gray);line-height:1.55;max-width:320px}
.img-spec .img-spec-tag{position:absolute;top:12px;left:12px;background:var(--sky-ink);color:var(--white);font-family:var(--font-display);font-weight:700;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;padding:4px 9px;border-radius:5px}
.img-spec.ratio-4-5{aspect-ratio:4/5}
.img-spec.ratio-1-1{aspect-ratio:1/1}
.img-spec.ratio-16-9{aspect-ratio:16/9}
.img-spec.ratio-3-2{aspect-ratio:3/2}

/* ── MEDIA PHOTO (real image filling a former img-spec slot) ── */
.media-photo{display:block;width:100%;height:auto;border-radius:var(--radius);object-fit:cover;box-shadow:var(--shadow-sm)}
.media-photo.ratio-1-1{aspect-ratio:1/1}
.media-photo.ratio-4-5{aspect-ratio:4/5}

/* ── VIDEO CARD (clickable card that opens an Instagram reel) ── */
.video-card{position:relative;display:block;aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;text-decoration:none;box-shadow:var(--shadow-sm);background:linear-gradient(135deg,var(--navy),var(--sky-ink));transition:transform .2s var(--ease)}
.video-card-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.video-card::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,20,30,.25),rgba(10,20,30,.05) 40%,rgba(10,20,30,.55))}
.video-card .video-card-tag,.video-card .video-card-play,.video-card .video-card-label{z-index:2}
.video-card:hover{transform:translateY(-4px)}
.video-card:hover .video-card-play{transform:translate(-50%,-50%) scale(1.08)}
.video-card-tag{position:absolute;top:12px;left:12px;z-index:2;display:inline-flex;align-items:center;gap:5px;background:rgba(0,0,0,.5);color:#fff;font-family:var(--font-display);font-weight:700;font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px;border-radius:6px}
.video-card-play{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.94);display:flex;align-items:center;justify-content:center;transition:transform .2s var(--ease)}
.video-card-play svg{width:22px;height:22px;color:var(--navy);margin-left:3px}
.video-card-label{position:absolute;left:0;right:0;bottom:0;padding:34px 16px 16px;background:linear-gradient(transparent,rgba(10,20,30,.85));color:#fff;font-family:var(--font-display);font-weight:700;font-size:14px;line-height:1.35}

/* ── OFFICE VIDEO (self-hosted portrait mp4 tour) ── */
.office-video{max-width:400px;margin:0 auto;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);background:var(--navy);line-height:0}
.office-video video{display:block;width:100%;height:auto}

/* ── SMS CONSENT CHECKBOX (opt-in; not required) ── */
.form-row.form-consent{margin-top:4px}
.form-row.form-consent label{display:flex;gap:10px;align-items:flex-start;font-size:12px;font-weight:400;color:var(--gray);line-height:1.5;cursor:pointer;margin:0;text-transform:none;letter-spacing:normal}
.form-row.form-consent input[type=checkbox]{width:16px;height:16px;margin:2px 0 0;flex-shrink:0;accent-color:var(--sky-ink);cursor:pointer}

/* ── EMBED SLOT (for launch-time widgets: reviews/map/booking) ──────── */
.embed-slot{border:2px dashed var(--lime);background:var(--mint);border-radius:var(--radius);padding:22px 24px;text-align:center;color:#5a7a1a;font-family:var(--font-display);font-weight:600;font-size:13px;line-height:1.55}
.embed-slot b{color:var(--navy)}

/* ── AWARDS GRID (about) ────────────────────────────────────────────── */
.awards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px;max-width:900px;margin:0 auto}
.award-badge{aspect-ratio:1/1;border-radius:50%;background:radial-gradient(circle at 50% 35%,var(--ice),var(--white));border:2px solid var(--lime);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease)}
.award-badge:hover{transform:translateY(-4px) scale(1.03)}
.award-badge .aw-star{color:var(--gold);font-size:18px}
.award-badge .aw-year{font-family:var(--font-display);font-weight:800;font-size:20px;color:var(--navy);line-height:1}
.award-badge .aw-label{font-size:8.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--gray);margin-top:2px}

/* ── CREDENTIALS CARD / TWO-COL BIO ─────────────────────────────────── */
.bio-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:52px;align-items:start}
.bio-media{position:sticky;top:100px}
.cred-card{background:var(--white);border:1px solid var(--gray-light);border-radius:var(--radius);padding:26px;margin-top:20px;box-shadow:var(--shadow-sm)}
.cred-card h4{font-family:var(--font-display);font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--sky-ink);margin-bottom:14px}
.cred-card ul{list-style:none;display:grid;gap:10px}
.cred-card li{display:flex;gap:10px;font-size:14px;color:var(--navy);align-items:flex-start}
.cred-card li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--lime);margin-top:6px;flex-shrink:0}
@media(max-width:860px){.bio-grid{grid-template-columns:1fr;gap:32px}.bio-media{position:static;max-width:420px}}

/* ── ANCHOR SUBNAV (new patients) ───────────────────────────────────── */
.subnav{position:sticky;top:78px;background:var(--white);border-bottom:1px solid var(--gray-light);z-index:90;box-shadow:var(--shadow-sm)}
.subnav .container{display:flex;gap:8px;overflow-x:auto;padding-top:12px;padding-bottom:12px}
.subnav a{font-family:var(--font-display);font-weight:600;font-size:13.5px;color:var(--navy);padding:9px 16px;border-radius:100px;white-space:nowrap;transition:all .18s var(--ease)}
.subnav a:hover{background:var(--ice);color:var(--sky-ink)}

/* ── PAYMENT / INFO CARDS ───────────────────────────────────────────── */
.info-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}
.info-card{background:var(--white);border:1px solid var(--gray-light);border-radius:var(--radius);padding:28px 24px;transition:transform .2s var(--ease),box-shadow .2s}
.info-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.info-card .info-ic{width:48px;height:48px;border-radius:12px;background:var(--ice);color:var(--sky-ink);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.info-card .info-ic svg{width:24px;height:24px}
.info-card h4{font-size:17px;margin-bottom:8px}
.info-card p{font-size:14px;color:var(--gray);line-height:1.65}

/* ── VIDEO TESTIMONIALS ─────────────────────────────────────────────── */
.video-testi{padding:90px 0;background:linear-gradient(135deg,var(--navy),var(--navy-deep));color:var(--white)}
.video-testi .section-header h2,.video-testi .section-header p{color:var(--white)}
.video-testi .section-header p{color:rgba(255,255,255,.75)}

/* ── CONTACT INFO CARDS + TABS + MAP ────────────────────────────────── */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}
.contact-cards{display:grid;gap:16px}
.contact-card{display:flex;gap:16px;align-items:flex-start;background:var(--white);border:1px solid var(--gray-light);border-radius:var(--radius);padding:22px}
.contact-card .cc-ic{width:46px;height:46px;border-radius:12px;background:var(--ice);color:var(--sky-ink);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.contact-card .cc-ic svg{width:22px;height:22px}
.contact-card h4{font-family:var(--font-display);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--sky-ink);margin-bottom:4px}
.contact-card p,.contact-card a{font-size:15px;color:var(--navy);line-height:1.55}
.contact-card a:hover{color:var(--sky-ink)}
.tabs{display:flex;gap:8px;margin-bottom:20px;background:var(--off);padding:6px;border-radius:var(--radius-sm);border:1px solid var(--gray-light)}
.tab-btn{flex:1;font-family:var(--font-display);font-weight:700;font-size:13px;padding:12px;border:none;background:transparent;color:var(--gray);border-radius:6px;cursor:pointer;transition:all .18s var(--ease);text-transform:uppercase;letter-spacing:.03em}
.tab-btn.active{background:var(--sky-ink);color:var(--white);box-shadow:var(--shadow-sm)}
.tab-panel{display:none}
.tab-panel.active{display:block;animation:fadeIn .25s var(--ease)}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr;gap:32px}}

/* ── RELATED / SIDEBAR (subpage template) ───────────────────────────── */
.sub-wrap{padding:64px 0}
.sub-grid{display:grid;grid-template-columns:1.6fr .9fr;gap:48px;align-items:start}
.sub-sidebar{position:sticky;top:100px;display:grid;gap:20px}
.sidebar-card{background:var(--white);border:1px solid var(--gray-light);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow-sm)}
.sidebar-card.dark{background:linear-gradient(150deg,var(--navy),var(--navy-deep));color:var(--white);border:none}
.sidebar-card.dark h4{color:var(--white)}
/* offer bits reused inside a dark sidebar need light text (the .offer-* defaults are for the white home offer section) */
.sidebar-card.dark .offer-includes li{color:rgba(255,255,255,.92)}
.sidebar-card.dark .offer-disclaimer{color:rgba(255,255,255,.72)}
/* the $69 badge reuses the hero's absolute-positioned .hero-offer — make it
   flow normally inside a sidebar card so it doesn't overlap the heading */
.sidebar-card .hero-offer{position:static;top:auto;right:auto;left:auto;margin:0 0 14px;width:100%}
@media(max-width:860px){.sub-grid{grid-template-columns:1fr}.sub-sidebar{position:static}}

/* ── MOBILE STICKY ACTION BAR ───────────────────────────────────────── */
.mobile-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:130;background:var(--white);box-shadow:0 -6px 24px rgba(28,46,61,.16);border-top:1px solid var(--gray-light);padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:10px}
.mobile-bar a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-display);font-weight:700;font-size:14px;padding:14px 10px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.02em}
.mobile-bar a svg{width:17px;height:17px}
.mobile-bar .mb-call{background:var(--navy);color:var(--white)}
.mobile-bar .mb-book{background:var(--amber);color:var(--navy)}
@media(max-width:760px){.mobile-bar{display:flex}body{padding-bottom:74px}}

/* ── FOOTER ─────────────────────────────────────────────────────────── */
.footer{background:var(--navy-deep);color:rgba(255,255,255,.65);padding:64px 0 24px;font-size:14px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px}
.footer-brand img{height:44px;width:auto;margin-bottom:18px;filter:brightness(0) invert(1);opacity:.95}
.footer-brand p{margin-bottom:18px;line-height:1.7;max-width:320px}
.footer-social{display:flex;gap:10px}
.footer-social a{width:38px;height:38px;border-radius:8px;background:rgba(255,255,255,.06);color:var(--white);display:flex;align-items:center;justify-content:center;transition:all .2s var(--ease)}
.footer-social a:hover{background:var(--sky-ink);color:var(--white);transform:translateY(-2px)}
.footer-social svg{width:18px;height:18px}
.footer h5{color:var(--white);font-family:var(--font-display);font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:18px}
.footer ul{list-style:none}
.footer ul li{margin-bottom:10px}
.footer ul a{color:rgba(255,255,255,.65)}
.footer ul a:hover{color:var(--sky)}
.footer-bottom{padding-top:24px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;font-size:12.5px}
.footer-bottom a{color:rgba(255,255,255,.55)}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;gap:32px}}
@media(max-width:600px){.footer-grid{grid-template-columns:1fr}}

/* ── ACCESSIBILITY ──────────────────────────────────────────────────── */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--navy);color:var(--white);padding:12px 20px;border-radius:0 0 8px 0;z-index:999;font-family:var(--font-display);font-weight:700}
.skip-link:focus{left:0}
:focus-visible{outline:3px solid var(--sky-ink);outline-offset:2px;border-radius:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ── SCROLL REVEAL ──────────────────────────────────────────────────────
   Progressive enhancement: content is ALWAYS visible by default. The gentle
   entrance only applies when JS has confirmed it can restore visibility
   (html.js-reveal) AND a failsafe in site.js guarantees every section is
   shown even if the observer never fires. Never hide content behind JS on a
   page whose job is to convert. */
.js-reveal .reveal{opacity:0;transform:translateY(22px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.js-reveal .reveal.in{opacity:1;transform:none}
@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 .reveal{opacity:1;transform:none}
}

/* ── LEAD-FORM REASSURANCE ("what happens next") ────────────────────────
   Sits directly under a form's submit button. Reducing post-submit
   uncertainty measurably lifts completion, so every capture form on the
   site gets one. */
.form-next{margin-top:16px;background:var(--mint);border-radius:var(--radius-sm);padding:14px 16px;font-size:13px;color:#4a6a12;line-height:1.6}
.form-next b{color:var(--navy)}

/* ── PATIENT RESULT CARDS ───────────────────────────────────────────────
   Quote-forward testimonial cards with a real photo. Used on the SoftWave
   page and on softwavesuffolk.com. Distinct from .review-card (short
   text-only Google quotes) — these carry a longer before/after story. */
.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.result-card{background:var(--white);border:1px solid var(--gray-light);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s var(--ease),box-shadow .2s}
.result-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.result-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
/* Cards are usually photo-free: we only have generic clinic footage, and pairing
   a specific patient's quote with unrelated footage misrepresents it. The mark
   below gives an image-less card a deliberate anchor instead. */
.result-card:not(:has(img)) .result-body{padding-top:30px}
.result-card:not(:has(img)) .result-body::before{content:"\201C";position:absolute;top:12px;left:22px;font-family:var(--font-display);font-size:74px;font-weight:800;line-height:1;color:var(--ice);pointer-events:none}
.result-card{position:relative}
.result-body{padding:26px 24px 24px;display:flex;flex-direction:column;flex:1;position:relative}
.result-stars{color:var(--gold);font-size:15px;letter-spacing:2px;margin-bottom:12px}
.result-quote{font-size:15.5px;line-height:1.7;color:var(--navy);font-weight:500;margin-bottom:18px;flex:1}
.result-who{border-top:1px solid var(--gray-light);padding-top:14px}
.result-name{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--navy)}
.result-meta{font-size:12.5px;color:var(--gray);margin-top:2px}
@media(max-width:900px){.result-grid{grid-template-columns:1fr;max-width:460px;margin:0 auto}}

/* ── <picture> WEBP WRAPPERS ────────────────────────────────────────────
   Large images are served as WebP with the original JPEG/PNG as fallback.
   display:contents removes the <picture> element from the layout box tree
   entirely, so the <img> inside still behaves as the direct flex/grid item
   its parent's CSS expects. Without this, wrapping an image changes layout. */
picture{display:contents}

/* ── SPLIT LEAD SECTION (pitch + form, collapses on mobile) ─────────────
   Used on /reviews. Inline grid styles have no breakpoint, so this stays a
   class — a hardcoded 1fr 1fr would squash the form on a phone. */
.leadsplit{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;max-width:1000px}
@media(max-width:900px){.leadsplit{grid-template-columns:1fr;gap:32px}}
