/* Langford Chiropractic — site stylesheet
   Edit design tokens here; every page reads from them. */

:root{
  --navy:#0E3A4C;
  --teal:#0E3A4C;
  --blue:#12839F;
  --blue-deep:#0C6982;
  --blue-50:#F5F6F4;
  --blue-100:#E4EBEC;
  --blue-200:#BCD6DC;
  --ink:#1F2528;
  --muted:#68706F;
  --muted-light:#A0A6A5;
  --line:#E7E4DE;
  --line-soft:#F4F2ED;
  --bg-soft:#F4F6F6;
  --ink-deep:#0A2C3A;   /* one step deeper than --navy, for gradients on dark bands */
  --font-serif:'Schibsted Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-sans:'Schibsted Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-display:'Schibsted Grotesk', -apple-system, 'Segoe UI', sans-serif;
  --pad-x:clamp(20px, 5vw, 72px);
  --maxw:1160px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:#fff; color:var(--ink); font-family:var(--font-sans); font-size:16px; -webkit-font-smoothing:antialiased;}
img{max-width:100%; display:block;}
noscript{display:none;}
a{color:var(--blue-deep); text-decoration:none;}
a:hover{color:var(--teal);}
:focus-visible{outline:2px solid var(--blue); outline-offset:2px;}
::selection{background:var(--blue-100);}

.container{max-width:var(--maxw); margin:0 auto; padding-left:var(--pad-x); padding-right:var(--pad-x);}
.container-wide{max-width:1440px; margin:0 auto; padding-left:var(--pad-x); padding-right:var(--pad-x);}
.section{padding:clamp(56px,7vw,96px) 0;}
.section-tight{padding:clamp(40px,5vw,64px) 0;}
.section-soft{background:var(--bg-soft); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.tint-top{background:linear-gradient(180deg,#EEF3F4 0%,#F4F6F6 60%,#fff 100%);}

/* ---------- type ---------- */
h1,h2,h3{font-family:var(--font-display); font-weight:500; color:var(--navy); letter-spacing:-.03em; margin:0; text-wrap:balance;}
h2{line-height:1.08;}
h3{font-weight:600; letter-spacing:-.015em;}
h1{font-size:clamp(30px,3.6vw,42px); line-height:1.12;}
h1.h1-hero{font-size:clamp(30px,3.6vw,42px); line-height:1.12;}
.h1-sub{display:block; margin-top:14px; font-family:var(--font-sans); font-weight:500; font-size:clamp(16px,1.5vw,19px); line-height:1.5; letter-spacing:0; color:var(--muted); max-width:52ch; text-wrap:balance;}
h2{font-size:clamp(28px,3.4vw,40px); line-height:1.14;}
h3{font-size:clamp(20px,2vw,24px); line-height:1.25;}
p{margin:0; text-wrap:pretty;}
.eyebrow{font:500 11.5px/1 var(--font-sans); letter-spacing:.19em; text-transform:uppercase; color:var(--blue-deep);}
.lede{font:400 clamp(16.5px,1.4vw,18px)/1.7 var(--font-sans); color:var(--muted); max-width:60ch;}
.body{font:400 16.5px/1.75 var(--font-sans); color:var(--muted); max-width:68ch;}
.body-sm{font:400 15px/1.65 var(--font-sans); color:var(--muted);}
.stack{display:flex; flex-direction:column;}
.gap-8{gap:8px;} .gap-12{gap:12px;} .gap-16{gap:16px;} .gap-20{gap:20px;} .gap-24{gap:24px;} .gap-32{gap:32px;} .gap-44{gap:44px;}
.center{align-items:center; text-align:center;}
.center .lede{margin-left:auto; margin-right:auto;}

/* ---------- buttons ---------- */
.btn{display:inline-flex; align-items:center; gap:9px; font:500 15.5px/1 var(--font-sans); border-radius:999px; padding:16px 26px; border:1.5px solid transparent; cursor:pointer; transition:filter .18s ease, border-color .18s ease, color .18s ease, background .18s ease;}
.btn svg{flex:none;}
.btn-primary{color:#fff; background:linear-gradient(180deg, var(--blue), var(--blue-deep)); box-shadow:0 10px 24px -14px color-mix(in oklab, var(--teal) 55%, transparent);}
.btn-primary:hover{color:#fff; background:linear-gradient(180deg, var(--blue-deep), var(--ink-deep));}
.btn-outline{color:var(--navy); background:#fff; border-color:var(--line);}
.btn-outline:hover{border-color:var(--blue); color:var(--blue);}
.btn-light{color:var(--blue-deep); background:#fff; box-shadow:0 14px 30px -18px rgba(0,0,0,.4);}
.btn-light:hover{color:var(--teal);}
.btn-ghost-light{color:#fff; background:transparent; border-color:rgba(255,255,255,.4);}
.btn-ghost-light:hover{color:#fff; background:rgba(255,255,255,.12);}
.btn-row{display:flex; gap:14px; flex-wrap:wrap; align-items:center;}
.btn-row.center{justify-content:center;}

/* ---------- split call/text control ---------- */
.btn-split{display:inline-flex; align-items:stretch;}
.btn-split .btn{border-radius:0;}
.btn-split .btn:first-child{border-top-left-radius:999px; border-bottom-left-radius:999px;}
.btn-split .btn:last-child{border-top-right-radius:999px; border-bottom-right-radius:999px; margin-left:-1.5px;}
.btn-split .btn:hover,.btn-split .btn:focus-visible{position:relative; z-index:1;}
.btn-split-block{display:flex; width:100%;}
.btn-split-block .btn{flex:1; justify-content:center;}

.header-actions .btn{min-height:46px; padding-top:0; padding-bottom:0; font-size:14.5px;}
.header-phone{display:inline-flex; align-items:center; gap:8px;}
.header-phone .btn{width:46px; padding:0; justify-content:center; border-radius:999px;}
.header-actions .btn-primary{padding-left:22px; padding-right:22px;}

.footer-phone{display:flex; align-items:center; gap:8px;}
.footer-phone span{color:rgba(255,255,255,.3); font-size:13px;}
.footer-phone a{min-height:44px; display:flex; align-items:center;}

/* ---------- chips / tags ---------- */
.chip{display:inline-flex; align-items:center; font:500 13.5px/1 var(--font-sans); color:var(--navy); background:var(--blue-50); border:1px solid var(--blue-100); border-radius:999px; padding:11px 17px;}
a.chip:hover{background:var(--blue); border-color:var(--blue); color:#fff;}
.chip-row{display:flex; gap:10px; flex-wrap:wrap;}
.fund{font:500 13px/1 var(--font-sans); color:var(--teal); background:#fff; border:1px solid var(--blue-100); border-radius:10px; padding:12px 20px;}

/* ---------- cards & grids ---------- */
.grid{display:grid; gap:24px;}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.card{display:flex; flex-direction:column; gap:15px; padding:30px; border:1px solid var(--line); border-radius:18px; background:#fff;}
a.card{transition:box-shadow .2s ease, transform .2s ease;}
a.card:hover{box-shadow:0 18px 40px -22px color-mix(in oklab, var(--navy) 40%, transparent); transform:translateY(-2px);}
.card-soft{background:var(--bg-soft);}
.card h3{font-size:21px;}
.card-link{font:700 13.5px/1 var(--font-sans); color:var(--blue-deep); margin-top:auto; padding-top:6px;}
.icon-badge{width:52px; height:52px; border-radius:14px; background:var(--blue-50); display:flex; align-items:center; justify-content:center;}
.split{display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center;}
.split-rev{grid-template-columns:.9fr 1.1fr;}
.split-even,.split-narrow{display:grid; gap:56px; align-items:center;}
.split-even{grid-template-columns:1fr 1fr;}
.split-narrow{grid-template-columns:.95fr 1.05fr;}
.figure{width:100%; border-radius:26px; object-fit:cover; display:block;}
.stat-num{font-family:var(--font-serif); font-weight:500; font-size:34px; color:var(--blue); line-height:1;}
.stat-label{font:600 13.5px/1.35 var(--font-sans); color:var(--muted); margin-top:6px;}
.stat-row{display:flex; gap:44px; flex-wrap:wrap;}
.check-list{display:flex; flex-direction:column; gap:11px;}
.check-list li{display:flex; align-items:center; gap:11px; font:500 16px/1.4 var(--font-sans); color:var(--ink); list-style:none;}
.check-list{margin:0; padding:0;}
.numbered{font:600 13px/1 var(--font-sans); color:var(--blue-deep); letter-spacing:.16em;}
.card-icon{display:flex; align-items:center; justify-content:center; width:46px; height:46px; border-radius:12px; background:var(--blue-100); color:var(--blue-deep); margin-bottom:4px;}

.mobile-book-fab{position:fixed; right:24px; bottom:24px; z-index:80; display:inline-flex; align-items:center; gap:8px; font:600 14.5px/1 var(--font-sans); color:#fff; background:linear-gradient(180deg, var(--blue-deep), var(--ink-deep)); border-radius:999px; padding:14px 22px; box-shadow:0 14px 30px -14px color-mix(in oklab, var(--teal) 60%, transparent); transition:filter .18s ease, transform .18s ease;}
.mobile-book-fab::before{content:"";position:absolute;inset:0;border-radius:999px;border:2px solid var(--blue-deep);opacity:.5;animation:fabping 2.4s ease-out infinite;}
.mobile-book-fab:hover{filter:brightness(1.12); transform:translateY(-1px);}
@keyframes fabping{0%{transform:scale(1);opacity:.5;} 100%{transform:scale(1.35);opacity:0;}}

/* ---------- header ---------- */
.site-header{position:sticky; top:0; z-index:60; width:100%; background:rgba(255,255,255,.94); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:24px; padding:14px var(--pad-x); max-width:1440px; margin:0 auto;}
.brand{flex:none; display:flex;}
.brand img{height:42px; width:auto; aspect-ratio:800/215; align-self:flex-start; flex:none;}
.nav{display:flex; align-items:center; gap:30px;}
.nav a{font:600 14.5px/1 var(--font-sans); color:var(--navy);}
.nav a:hover,.nav a[aria-current="page"]{color:var(--blue);}
.has-sub{position:relative; display:flex; align-items:center; gap:5px; padding:14px 0;}
.submenu{position:absolute; top:100%; left:-18px; display:none; flex-direction:column; min-width:250px; padding:10px; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 24px 48px -24px rgba(4,78,108,.4);}
.has-sub:hover .submenu,.has-sub:focus-within .submenu{display:flex;}
.submenu a{padding:11px 14px; border-radius:9px; font:600 14px/1.3 var(--font-sans); color:var(--ink);}
.submenu a:hover{background:var(--blue-50); color:var(--blue);}
.submenu-head{padding:12px 14px 5px; font:700 11px/1 var(--font-sans); letter-spacing:.09em; text-transform:uppercase; color:var(--muted);}
.submenu-head:first-child{padding-top:5px;}
.header-actions{display:flex; align-items:center; gap:10px; flex:none;}
/* Book Now sits first; call/text icons follow it */
.header-actions .header-phone{order:2;}
.header-actions .btn-primary{order:1;}
.header-actions .burger{order:3;}
.burger{display:none; align-items:center; justify-content:center; width:46px; height:46px; border:1.5px solid var(--line); border-radius:12px; background:#fff; cursor:pointer;}
.mobile-nav{display:none; flex-direction:column; gap:2px; padding:12px var(--pad-x) 24px; border-top:1px solid var(--line); background:#fff;}
.mobile-nav.open{display:flex;}
.mobile-nav a{padding:14px 4px; font:600 16px/1 var(--font-sans); color:var(--navy); border-bottom:1px solid var(--line-soft);}
.mobile-nav a.sub{padding:12px 4px 12px 18px; font:500 15px/1 var(--font-sans); color:var(--muted); border-bottom:0;}

/* ---------- footer ---------- */
.site-footer{background:var(--navy); color:rgba(255,255,255,.72); padding:64px var(--pad-x) 30px;}
.footer-inner{max-width:1440px; margin:0 auto;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:44px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.14);}
.footer-grid .footer-col:first-child{gap:14px;}
.footer-grid img{height:40px; width:auto; aspect-ratio:800/215; align-self:flex-start; flex:none;}
.footer-head{font:700 12.5px/1 var(--font-sans); color:#fff; letter-spacing:.1em; margin-bottom:6px;}
.footer-col{display:flex; flex-direction:column; gap:2px;}
.footer-col a,.footer-col p,.footer-col address{color:rgba(255,255,255,.65); font:400 14.5px/1.6 var(--font-sans); font-style:normal;}
.footer-col a:hover{color:var(--blue-200);}
.footer-cta{color:var(--blue-200) !important; font-weight:700;}
.social{display:flex; gap:10px; margin-top:4px;}
.social a{width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; color:#fff;}
.social a:hover{background:var(--blue);}
.footer-base{display:flex; align-items:center; justify-content:space-between; padding-top:24px; flex-wrap:wrap; gap:14px;}
.footer-reg{font-size:12.5px; line-height:1.5; color:rgba(255,255,255,.42); max-width:56ch;}
.footer-base span,.footer-base a{font-size:13px; color:rgba(255,255,255,.5);}
.footer-base a:hover{color:var(--blue-200);}
.footer-links{display:flex; gap:22px; flex-wrap:wrap;}

/* ---------- bands ---------- */
.band-dark{padding:clamp(56px,7vw,96px) var(--pad-x); background:linear-gradient(150deg, var(--navy), var(--ink-deep)); display:flex; flex-direction:column; align-items:center; gap:18px; text-align:center;}
.band-dark h2{color:#fff;}
.band-dark p{font:400 17px/1.6 var(--font-sans); color:rgba(255,255,255,.82); max-width:520px;}
.fund-strip{background:var(--bg-soft); padding:34px var(--pad-x); display:flex; align-items:center; justify-content:center; gap:22px; flex-wrap:wrap; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.fund-strip .label{font:500 11.5px/1 var(--font-sans); color:var(--muted); letter-spacing:.17em;}
.breadcrumb{display:flex; align-items:center; gap:8px; font:600 13px/1 var(--font-sans); color:var(--muted);}
.breadcrumb a{color:var(--muted);}
.breadcrumb a:hover{color:var(--blue);}

/* ---------- booking embed ---------- */
.booking-frame{width:100%; border:1px solid var(--line); border-radius:20px; overflow:hidden; background:#fff; box-shadow:0 18px 44px -30px color-mix(in oklab, var(--navy) 38%, transparent);}
.booking-frame iframe{width:100%; height:780px; border:0; display:block;}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:transparent; overflow:hidden;}
.faq + .faq{border-top:0;}
.faq summary{display:flex; align-items:center; justify-content:space-between; gap:24px; padding:26px 4px; cursor:pointer; font:600 17.5px/1.45 var(--font-sans); color:var(--navy); list-style:none;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary:hover{color:var(--blue-deep);}
.faq summary svg{flex:none; transition:transform .2s ease;}
.faq[open] summary{padding-bottom:12px;}
.faq[open] summary svg{transform:rotate(45deg);}
.faq .answer{padding:0 60px 28px 4px; font:400 16.5px/1.75 var(--font-sans); color:var(--muted); max-width:70ch;}
@media (max-width:600px){
  .faq summary{font-size:16.5px; padding:22px 2px; gap:16px;}
  .faq .answer{padding:0 30px 24px 2px;}
}

/* ---------- team & fees ---------- */
.bio{display:grid; grid-template-columns:230px 1fr; gap:40px; align-items:start; padding:34px; border:1px solid var(--line); border-radius:22px; scroll-margin-top:110px;}
.team-grid{display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start;}
.bio .portrait{width:100%; aspect-ratio:1/1.1; border-radius:16px; overflow:hidden; background:linear-gradient(155deg, var(--blue), var(--ink-deep)); display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--font-serif); font-size:54px;}
.bio .portrait img{width:100%; height:100%; object-fit:cover; object-position:50% 25%;}
.role{font:500 12px/1 var(--font-sans); color:var(--blue-deep); letter-spacing:.16em;}
details.bio-more summary{list-style:none; cursor:pointer; display:inline-flex; align-items:center; gap:6px; font:600 13px/1 var(--font-sans); color:var(--blue-deep); margin-top:2px;}
details.bio-more summary::-webkit-details-marker{display:none;}
details.bio-more summary:hover{color:var(--blue);}
details.bio-more svg{transition:transform .22s ease;}
details.bio-more[open] svg{transform:rotate(180deg);}
details.bio-more[open] .lbl-closed{display:none;} .lbl-open{display:none;} details.bio-more[open] .lbl-open{display:inline;}
details.bio-more p{margin-top:12px;}

/* ---------- statement + tick list ---------- */
.statement{font-family:var(--font-serif); font-weight:500; font-size:clamp(21px,2vw,25px); line-height:1.4; color:var(--navy); letter-spacing:-.01em; max-width:30ch;}

.chip-plain{background:transparent; border-style:dashed; color:var(--muted);}

.benefits-card{gap:18px; padding:32px; position:sticky; top:104px;}
.tick-list{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:16px;}
.tick-list li{display:flex; gap:13px; align-items:flex-start;}
.tick-list strong{display:block; font:700 15.5px/1.4 var(--font-sans); color:var(--navy);}
.tick-list span{display:block; font:400 14.5px/1.6 var(--font-sans); color:var(--muted); margin-top:3px;}
.tick{flex:none; width:24px; height:24px; border-radius:50%; background:var(--blue-deep); display:flex; align-items:center; justify-content:center; margin-top:1px;}

@media (max-width:1000px){
  .benefits-card{position:static;}
}

/* ---------- hero ---------- */
.h1-sub-strong{color:var(--navy); font-weight:600; font-size:clamp(18px,1.7vw,22px); margin-top:16px; max-width:46ch;}
.h1-sub-strong .h1-sub-place{display:block; margin-top:7px; font-weight:400; font-size:clamp(15.5px,1.4vw,17px); color:var(--muted);}

/* ---------- hero proof points ---------- */
.hero-points{display:flex; flex-direction:column; gap:10px; margin:2px 0 0; padding:0;}
.hero-points li{display:flex; align-items:flex-start; gap:10px; list-style:none; font:500 15.5px/1.5 var(--font-sans); color:var(--ink);}
.hero-points svg{flex:none; margin-top:3px;}
.hero-points b{font-weight:700; color:var(--navy);}


/* ---------- process steps (timeline) ---------- */
.process{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(20px,2.6vw,32px); position:relative; padding-top:52px;}
/* rule fades solid → pale so it reads as progress */
.process::before{content:''; position:absolute; top:15px; left:0; right:0; height:1.5px; background:linear-gradient(90deg,var(--blue-deep) 0%,var(--blue-100) 100%);}
.step{display:flex; flex-direction:column; gap:12px; position:relative;}
.step-num{position:absolute; top:-52px; left:0; display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; background:#fff; border:1.5px solid var(--blue-deep); color:var(--blue-deep); font:600 12.5px/1 var(--font-sans); letter-spacing:.04em;}
.step-title{font-family:var(--font-display); font-weight:600; font-size:24px; line-height:1.1; letter-spacing:-.02em; color:var(--navy); margin:0; padding-top:2px;}
.step-lead{order:2; font:600 15.5px/1.55 var(--font-sans); color:var(--navy); margin:0;}
.step-body{order:2; font:400 15px/1.65 var(--font-sans); color:var(--muted); margin:0;}
.step-fig{order:3; width:100%; aspect-ratio:5/4; border-radius:12px; overflow:hidden; margin-top:6px;}

@media (max-width:900px){
  /* vertical rule once the columns stack */
  .process{grid-template-columns:1fr; gap:38px; padding-top:0; padding-left:52px;}
  .process::before{top:16px; bottom:16px; left:15px; right:auto; width:1.5px; height:auto; background:linear-gradient(180deg,var(--blue-deep) 0%,var(--blue-100) 100%);}
  .step-num{top:0; left:-52px;}
}
@media (max-width:560px){.step-fig{aspect-ratio:16/10;}}

/* ---------- spine statement (navy band) ---------- */
.spine-b{display:flex; flex-direction:column; align-items:center; text-align:center; gap:clamp(22px,3vw,32px);}
.spine-b-lead{margin:0; max-width:30ch; font-family:var(--font-display); font-weight:600; font-size:clamp(27px,3.9vw,46px); line-height:1.12; letter-spacing:-.025em; text-wrap:pretty;}
.spine-b-rule{width:64px; height:2px; background:var(--blue-200);}
.spine-b-cols{display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,56px); text-align:left; max-width:900px;}
.spine-b-cols p{font:400 16.5px/1.75 var(--font-sans); color:rgba(255,255,255,.8);}
@media (max-width:760px){
  .spine-b-cols{grid-template-columns:1fr; gap:18px; max-width:56ch; text-align:center;}
  .spine-b-lead{max-width:24ch;}
  .spine-b-cols p{font-size:16px;}
}

.fund-strip .fund-link{display:inline-flex; align-items:center; min-height:44px; padding:0 2px; font:600 14px/1 var(--font-sans); color:var(--blue-deep); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px;}
.fund-strip .fund-link:hover{color:var(--teal); text-decoration-thickness:2px;}

/* ---------- process timeline (vertical rail) ---------- */
.vt{position:relative;}
.vt-rail{position:absolute;left:23px;top:8px;bottom:8px;width:2px;background:var(--blue-100);}
.vt-fill{position:absolute;inset:0;background:var(--blue-deep);transform:scaleY(0);transform-origin:top;transition:transform 1.7s cubic-bezier(.22,.61,.36,1);}
.vt-row{position:relative;display:grid;grid-template-columns:48px 1fr;gap:clamp(20px,3vw,38px);padding-bottom:clamp(36px,4.4vw,56px);opacity:0;transform:translateY(20px) scale(.985);transition:opacity .75s cubic-bezier(.22,.61,.36,1),transform .75s cubic-bezier(.22,.61,.36,1);}
.vt-row:last-child{padding-bottom:0;}
.vt-row.in{opacity:1;transform:none;}
.vt-dot{width:48px;height:48px;border-radius:50%;background:#fff;border:2px solid var(--blue-200);display:flex;align-items:center;justify-content:center;font:600 13px/1 var(--font-sans);color:var(--blue-deep);z-index:2;transition:background .45s ease,border-color .45s ease,color .45s ease,transform .5s cubic-bezier(.34,1.4,.64,1);}
.vt-row.in .vt-dot{background:var(--blue-deep);border-color:var(--blue-deep);color:#fff;transform:scale(1.07);}
.vt-in{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(20px,3vw,34px);align-items:start;}
.vt-in h3{margin:0 0 9px;font-size:23px;}
.vt-fig{border-radius:14px;overflow:hidden;aspect-ratio:4/3;}
.vt-fig img,.vt-fig image-slot{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.03);transition:transform 1.1s cubic-bezier(.22,.61,.36,1);}
.vt-row.in .vt-fig img,.vt-row.in .vt-fig image-slot{transform:none;}
@media (max-width:820px){
  .vt-in{grid-template-columns:1fr;}
  .vt-row{grid-template-columns:40px 1fr;}
  .vt-dot{width:40px;height:40px;}
  .vt-rail{left:19px;}
}
@media (prefers-reduced-motion:reduce){
  .vt-row{opacity:1;transform:none;transition:none;}
  .vt-fill{transform:scaleY(1);transition:none;}
  .vt-row .vt-fig img,.vt-row .vt-fig image-slot{transform:none;transition:none;}
  .vt-row.in .vt-dot{transform:none;}
}

/* ---------- gentle reveal, used across the home page ---------- */
.rv{opacity:0;transform:translateY(18px) scale(.99);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1);}
.rv.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none;}}

/* ---------- who we see ---------- */
.who-see-head{display:flex; flex-direction:column; align-items:center; gap:20px; text-align:center; max-width:760px; margin:0 auto;}
.who-see-title{font-family:var(--font-sans); font-weight:600; font-size:clamp(32px,4vw,50px); line-height:1.08; letter-spacing:-.028em; color:#fff; margin:0;}
.who-see-head .lede{margin:0; color:rgba(255,255,255,.74);}
.who-see-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(14px,1.8vw,22px);}
.who-see-card{display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; padding:44px 30px; background:rgba(255,255,255,.055); text-decoration:none; position:relative; transition:background .28s ease, transform .28s ease, box-shadow .28s ease;}
.who-see-card::after{content:''; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--blue-200); transform:scaleX(0); transform-origin:center; transition:transform .32s cubic-bezier(.2,.7,.3,1);}
.who-see-card:hover{background:rgba(255,255,255,.115); transform:translateY(-4px); box-shadow:0 18px 34px -22px rgba(0,0,0,.55);}
.who-see-card:hover::after{transform:scaleX(1);}
.who-see-card:hover .who-see-ico{color:#fff; transform:translateY(-2px);}
.who-see-ico{color:var(--blue-200); display:flex; transition:color .28s ease, transform .28s ease;}
@media (prefers-reduced-motion:reduce){.who-see-card,.who-see-card::after,.who-see-ico{transition:none;} .who-see-card:hover{transform:none;}}
.who-see-name{font:600 17px/1.3 var(--font-sans); color:#fff;}
.who-see-desc{font:400 14.5px/1.65 var(--font-sans); color:rgba(255,255,255,.72);}
@media (max-width:1000px){.who-see-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.who-see-grid{grid-template-columns:1fr;} .who-see-card{padding:34px 26px;}}

/* ---------- care tiles ---------- */
.care-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(14px,1.8vw,20px);}
.care-tile{position:relative; display:block; border-radius:20px; overflow:hidden; aspect-ratio:3/4; text-decoration:none; background:var(--blue-50);}
.care-tile image-slot{position:absolute; inset:0; width:100%; height:100%; display:block;}
.care-tile img{width:100%; height:100%; object-fit:cover;}
.care-cap{position:absolute; inset:auto 0 0 0; padding:22px 20px; display:flex; flex-direction:column; gap:6px; background:linear-gradient(to top, color-mix(in oklab, var(--ink-deep) 92%, transparent), color-mix(in oklab, var(--ink-deep) 46%, transparent) 55%, transparent); z-index:2;}
.care-cap strong{font:600 16px/1.25 var(--font-sans); color:#fff;}
.care-cap span{font:400 13.5px/1.5 var(--font-sans); color:rgba(255,255,255,.82);}
.care-tile:hover .care-cap{background:linear-gradient(to top, color-mix(in oklab, var(--ink-deep) 95%, transparent), color-mix(in oklab, var(--ink-deep) 56%, transparent) 60%, transparent);}
.care-all{font:600 15px/1 var(--font-sans); color:var(--blue-deep); border-bottom:1px solid var(--blue-200); text-decoration:none; padding-bottom:3px;}
@media (max-width:900px){.care-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.care-grid{grid-template-columns:1fr; max-width:400px;}}

/* ---------- what-is grid ---------- */
.whatis-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(18px,2.4vw,28px); margin-top:8px;}
.whatis-cell{padding-top:20px; border-top:2px solid var(--blue-200); display:flex; flex-direction:column; gap:12px;}
.whatis-cell svg{color:var(--blue-deep);}
.whatis-cell strong{font:600 16px/1.3 var(--font-sans); color:var(--navy);}
@media (max-width:900px){.whatis-grid{grid-template-columns:1fr 1fr;} .whatis-split{grid-template-columns:1fr !important; gap:24px !important;}}
@media (max-width:560px){.whatis-grid{grid-template-columns:1fr;}}

/* ---------- who-is-it-for grid ---------- */
.who-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden;}
.who-item{background:#fff; padding:32px 30px; display:flex; flex-direction:column; gap:9px; text-decoration:none;}
a.who-item{transition:background .18s ease;}
.band-teal a.who-item:hover{background:rgba(255,255,255,.07);}
.who-grid-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.who-grid-4 .who-item strong{font-size:16.5px;}
.who-grid-4 .who-item span{font-size:14.5px; line-height:1.65;}
/* on the navy band the plate is drawn in light rules, not white fills */
.band-navy .who-grid,.band-teal .who-grid{background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.2);}
/* white service cards read cleanly on the teal ground */
.band-teal .card{background:#fff; border-color:rgba(255,255,255,.28);}
.band-teal .card h3{color:var(--navy);}
.band-teal .card .body-sm{color:var(--muted);}
.band-teal .card .card-link{color:var(--blue-deep);}
.band-navy .who-item,.band-teal .who-item{background:transparent;}
.band-navy .who-item strong,.band-teal .who-item strong{color:#fff;}
.band-navy .who-item span,.band-teal .who-item span{color:rgba(255,255,255,.72);}
@media (max-width:900px){.who-grid-4{grid-template-columns:1fr 1fr;} .who-grid{grid-template-columns:1fr !important;}}
.who-item strong{font:700 15.5px/1.35 var(--font-sans); color:var(--navy);}
.who-item span{font:400 14.5px/1.6 var(--font-sans); color:var(--muted);}
@media (max-width:560px){.who-grid{grid-template-columns:1fr;}}

/* ---------- section bands ----------
   Distinct full-bleed blocks instead of a near-white rhythm.
   .band-navy / .band-teal reverse the type; .band-tint is a pale blue field.
   Apply alongside .section — they replace .section-soft on that section. */
.band-tint{background:var(--blue-50); border-top:1px solid var(--blue-100); border-bottom:1px solid var(--blue-100);}
.band-tint .card{background:#fff; border-color:var(--blue-100);}
.band-tint .chip{background:#fff;}

.band-navy{background:linear-gradient(160deg,#0C6982 0%,#0E3A4C 54%,#0A2C3A 100%); border-top:0; border-bottom:0;}
/* ombré variant: deep navy easing into the blue accent */
.band-ombre{background:linear-gradient(160deg,#0C6982 0%,#0E3A4C 54%,#0A2C3A 100%);}
.band-teal{background:linear-gradient(160deg,#0C6982 0%,#0E3A4C 54%,#0A2C3A 100%); border-top:0; border-bottom:0;}
.band-navy h2,.band-teal h2,.band-navy h3,.band-teal h3{color:#fff;}
.band-navy .statement,.band-teal .statement{color:#fff;}
.band-navy .eyebrow,.band-teal .eyebrow{color:var(--blue-200);}
.band-navy .body,.band-teal .body,.band-navy .lede,.band-teal .lede{color:rgba(255,255,255,.76);}
.band-navy .chip,.band-teal .chip{background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.26); color:#fff;}
.band-navy .chip-plain,.band-teal .chip-plain{background:transparent; color:rgba(255,255,255,.66);}
.band-navy .btn-outline,.band-teal .btn-outline{color:#fff; border-color:rgba(255,255,255,.4); background:transparent;}
.band-navy .btn-outline:hover,.band-teal .btn-outline:hover{background:rgba(255,255,255,.1); border-color:#fff; color:#fff;}
.band-navy .btn-primary,.band-teal .btn-primary{background:#fff; color:var(--blue-deep); box-shadow:none;}
.band-navy .btn-primary:hover,.band-teal .btn-primary:hover{background:#fff; color:var(--teal);}
.band-navy a:not(.btn),.band-teal a:not(.btn){color:var(--blue-200);}
.band-navy a:not(.btn):hover,.band-teal a:not(.btn):hover{color:#fff;}

/* a little more air so each block reads as its own plate */
.band-navy,.band-teal,.band-tint{padding:clamp(64px,8vw,112px) 0;}

/* ---------- trust bar ---------- */
.trust-bar{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--bg-soft);}
.trust-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr));}
.trust-cell{display:flex; flex-direction:column; gap:7px; padding:28px 30px; border-left:1px solid var(--line);}
.trust-cell:first-child{border-left:0;}
.trust-figure{display:flex; align-items:baseline; gap:7px; font-family:var(--font-serif); font-weight:500; font-size:30px; line-height:1; color:var(--navy); letter-spacing:-.01em;}
.trust-figure .star{font-size:22px; color:var(--blue-deep);}
.trust-figure-word{font-size:24px;}
.trust-head{font:700 14.5px/1.3 var(--font-sans); color:var(--navy);}
.trust-note{font:400 13.5px/1.55 var(--font-sans); color:var(--muted);}
.trust-cell a.trust-note{text-decoration:underline; text-underline-offset:2px;}

.trust-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}

@media (max-width:900px){
  .trust-grid{grid-template-columns:1fr 1fr;}
  .trust-grid-3{grid-template-columns:1fr 1fr;}
  .trust-grid-3 .trust-cell:nth-child(3){border-left:0; border-top:1px solid var(--line);}
  .trust-cell:nth-child(3){border-left:0;}
  .trust-cell:nth-child(n+3){border-top:1px solid var(--line);}
}
@media (max-width:520px){
  .trust-grid, .trust-grid-3{grid-template-columns:1fr;}
  .trust-cell{border-left:0;}
  .trust-cell + .trust-cell{border-top:1px solid var(--line);}
}

/* ---------- article ---------- */
.article-head{max-width:760px;}
.article-meta{font:500 14px/1.5 var(--font-sans); color:var(--muted);}
.article{max-width:680px;}
.article p{font:400 17.5px/1.8 var(--font-sans); color:var(--ink);}
.article p:first-of-type{font-size:19px; line-height:1.75; color:var(--navy);}
.article h2{font-size:26px; margin-top:14px;}
.article ul{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:10px;}
.article ul li{position:relative; padding-left:22px; font:400 17px/1.7 var(--font-sans); color:var(--ink);}
.article ul li::before{content:""; position:absolute; left:4px; top:11px; width:6px; height:6px; border-radius:50%; background:var(--blue-deep);}

/* ---------- legal ---------- */
.legal{max-width:760px;}
.legal h2{font-size:24px; margin-top:26px;}
.legal p{font:400 16.5px/1.8 var(--font-sans); color:var(--muted); margin-top:10px;}
.legal .meta{font:500 14px/1.5 var(--font-sans); color:var(--muted);}
.note-box{border:1px dashed var(--blue-200); border-radius:18px; background:var(--bg-soft); padding:28px;}

/* ---------- hit areas: 44px minimum on every standalone link/button, all widths ----------
   Split deliberately: this must NOT set `display`, or it clobbers each
   component's own layout (a shrink-wrapped .faq summary breaks space-between,
   and min-height beats an explicit square height, ovalling .social a).
   Group A — already has a working flex display, so only the height floor is needed.
   Group B — block-level anchors that need a flex box for the text to centre.
   Inline links inside prose are excluded so text flow is untouched. */
.btn,
a.chip,
.faq summary,
.social a{
  min-height:44px;
}
.brand,
.breadcrumb a,
.footer-col a,
.footer-links a,
.mobile-nav a,
.card a[href^="tel:"],
.card a[href^="mailto:"],
.card a[href^="sms:"]{
  min-height:44px;
  display:flex;
  align-items:center;
}
.breadcrumb a,
.footer-links a{display:inline-flex;}

/* ---------- compact header on small phones ---------- */
@media (max-width:520px){
  .header-inner{gap:10px; padding-left:16px; padding-right:16px;}
  .brand img{height:34px;}
  .header-actions{gap:8px;}
  .header-actions .btn-primary{padding-left:16px; padding-right:16px; font-size:14px; gap:7px;}
}
@media (max-width:400px){
  .header-actions .btn-primary svg{display:none;}
}

/* ---------- touch targets (phones only) ---------- */
@media (max-width:760px){
  a.chip{padding-top:13px; padding-bottom:13px;}
  .footer-links{gap:8px;}
  .footer-links a{padding:0 10px; margin-left:-10px;}
}

/* ---------- responsive ---------- */
/* nav appears only once brand + nav + phone/text + Book fit without overflow */
/* tier 1: tighten the nav so it survives medium desktops */
@media (max-width:1240px){
  .header-inner{gap:20px;}
  .nav{gap:20px;}
  .nav a{font-size:13.5px;}
  .brand img{height:38px;}
}
/* tier 2: call/text stay — the nav links collapse to the burger instead */
@media (max-width:1080px){
  .nav{gap:16px;}
}
@media (max-width:1020px){
  .nav{display:none;}
  .burger{display:flex;}
}
@media (max-width:1000px){
  .split,.split-rev,.split-even,.split-narrow{grid-template-columns:1fr; gap:36px;}
  .grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:900px){
  .footer-grid{grid-template-columns:1fr 1fr;}
  .team-grid{grid-template-columns:1fr;}
  .bio{grid-template-columns:1fr; gap:22px;}
  .bio .portrait{max-width:220px;}
}
@media (max-width:760px){
  .grid-2{grid-template-columns:1fr;}
}
@media (max-width:680px){
  .grid-3,.grid-4{grid-template-columns:1fr;}
}
/* 641–900px: keep call/text one tap away, but icon-only so the header still fits */
@media (max-width:900px){
  .header-phone .btn{width:46px; padding:0; justify-content:center;}
}
/* below 640px the mobile menu carries Call/Text instead */
@media (max-width:640px){
  .header-phone{display:none;}
}
@media (max-width:560px){
  .footer-grid{grid-template-columns:1fr;}
}


/* ---------- footer: visit-us rows ---------- */
  .vu{display:flex; flex-direction:column; gap:14px;}
  .vu-row{display:flex; gap:14px; align-items:center;}
  .vu-row .i{flex:none; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.08); color:#fff; display:grid; place-items:center; transition:background .25s;}
  .vu-row:hover .i{background:var(--blue);}
  .vu-row .t{font:400 14.5px/1.5 var(--font-sans); color:rgba(255,255,255,.86);}
  .vu-row:hover .t{color:#fff;}
  .vu-row .t b{display:block; font:600 14.5px/1.4 var(--font-sans); color:#fff;}
  .vu-row a{color:inherit;} .vu-row:hover .t b{color:#fff;}

/* ---------- footer: book button ---------- */
.footer-book{align-self:flex-start; margin-top:6px; min-height:44px;}
.footer-areas{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; padding-top:0; margin-top:26px;}
.footer-areas span{font:500 10.5px/1.6 var(--font-sans); letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.4);}
.footer-areas a{font:400 12.5px/1.6 var(--font-sans); color:rgba(255,255,255,.5);}
.footer-areas a:hover{color:#fff;}

.fund-strip .fund-more{background:transparent; border-style:dashed; color:var(--muted);}

.band-flat{background:var(--navy);}

/* ---------- phone type scale ----------
   Hero sizes live in per-page <style> blocks (.b1 h1, .t4 h1, .z2-in h2) that load
   after this sheet, so this one phone scale is declared !important to govern them all. */
@media (max-width:480px){
  h1, h1.h1-hero, .b1 h1, .t4 h1{font-size:27px !important; line-height:1.14 !important; letter-spacing:-.02em;}
  h2, .z2-in h2{font-size:23px !important; line-height:1.18 !important;}
  h3{font-size:18px !important; line-height:1.3;}
  .sa-sec h2, .article h2{font-size:20px !important; margin-top:10px;}
  .who-see-title{font-size:25px !important; line-height:1.15;}
  .statement{font-size:20px !important; line-height:1.4;}
  .h1-sub{font-size:15px !important; line-height:1.55; margin-top:11px;}
  .lede, .b1 p, .b1 p.lede, .z2-in p{font-size:15.5px !important; line-height:1.65 !important;}
  .body{font-size:15.5px !important; line-height:1.7;}
  .body-sm{font-size:14.5px !important;}
  .article p{font-size:16px !important; line-height:1.75;}
  .article p:first-of-type{font-size:17px !important;}
  .article ul li{font-size:15.5px;}
  .card h3{font-size:18px !important;}
  .eyebrow, .z2-eb{font-size:11px !important; letter-spacing:.16em;}
  .trust-figure{font-size:24px !important;}
  .trust-figure .star{font-size:18px !important;}
  .tm-photo span{font-size:34px !important;}
  .faq summary{font-size:16px !important;}
}
@media (max-width:380px){
  h1, h1.h1-hero, .b1 h1, .t4 h1{font-size:25px !important;}
  h2, .z2-in h2{font-size:21px !important;}
  .who-see-title{font-size:23px !important;}
}

/* ---------- refresh: calmer type, flat navy, soft cards, more air ---------- */
.eyebrow{font-size:12.5px; letter-spacing:.12em;}
h3,.card h3{font-weight:500;}
.band-navy,.band-teal,.band-ombre{background:#0E3A4C !important;}
.btn-primary{background:var(--blue) !important; box-shadow:none !important;}
.btn-primary:hover{background:var(--navy) !important;}
.band-navy .btn-primary,.band-teal .btn-primary{background:#fff !important; color:var(--blue-deep) !important;}
.section-soft .card{background:#fff;}
.card{border-color:transparent; background:#F5F6F4; border-radius:12px;}
.band-teal .card,.band-navy .card{background:#fff;}
.section{padding:clamp(70px,8.75vw,120px) 0;}
.band-navy,.band-teal,.band-tint{padding:clamp(80px,10vw,140px) 0;}
.who-see-ico svg{stroke-width:1.5;}

/* ---------- footer (1a: get started + columns) ---------- */
.mf{box-sizing:border-box; font-family:var(--font-sans);}
.mf a:not(.btn){color:inherit;}
.mf-in{max-width:1296px; margin:0 auto;}
.mf-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1.2fr; gap:40px;}
.mf-col{display:flex; flex-direction:column; gap:10px; font-size:14.5px; line-height:1.5;}
.mf-head{font-size:12px; letter-spacing:.12em; margin-bottom:6px;}
.mf-base{display:flex; justify-content:space-between; align-items:center; gap:16px 24px; flex-wrap:wrap; font-size:13px;}
.mf-base-links{display:flex; gap:22px; flex-wrap:wrap;}
.mf-a{background:#0E3A4C; color:rgba(255,255,255,.72); padding:72px var(--pad-x) 32px;}
.mf-a .mf-col a:not(.btn):hover,.mf-a .mf-base a:hover{color:#BCD6DC;}
.mf-top > .btn-row{flex:none; flex-wrap:nowrap;}
@media (max-width:1100px){.mf-top{flex-direction:column; align-items:flex-start !important;}}
@media (max-width:900px){.mf-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.mf-top > .btn-row{flex-wrap:wrap;}}
@media (max-width:560px){.mf-grid{grid-template-columns:1fr;} .mf-base{flex-direction:column; align-items:flex-start;}}

/* ---------- proudly serving strip ---------- */
.mf-areas{background:var(--bg-soft); border-top:1px solid #E7E4DE; padding:clamp(28px,3.4vw,40px) var(--pad-x);}
.mf-areas .mf-in{display:flex; flex-direction:column; align-items:center; gap:16px; text-align:center;}
.mf-areas .mf-in > span{font:500 12px/1 var(--font-sans) !important; letter-spacing:.16em !important; color:var(--blue-deep) !important;}
.mf-chips{display:flex; flex-wrap:wrap; justify-content:center; gap:8px; max-width:980px;}
.mf-chips a{display:inline-flex; align-items:center; min-height:38px; padding:0 16px; border:1px solid var(--line); border-radius:999px; background:#fff; font:400 14px/1 var(--font-sans); color:var(--ink); transition:border-color .2s ease, color .2s ease;}
.mf-chips a:hover{border-color:var(--blue); color:var(--blue-deep);}
.mf-chips a:last-child{background:transparent; border-color:transparent; color:var(--blue-deep); font-weight:500;}
.mf-chips a:last-child:hover{border-color:transparent; text-decoration:underline; text-underline-offset:4px;}

/* ---------- home: proof band (after Meet the team) ---------- */
.proof{background:#fff; padding:clamp(56px,6vw,80px) 0;}
.proof-in{display:flex; flex-direction:column; gap:32px;}
.proof-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px;}
.proof-stat{display:flex; flex-direction:column; gap:6px;}
.proof-fig{font-family:var(--font-serif); font-weight:500; font-size:34px; line-height:1.05; color:var(--navy);}
.proof-fig .star{color:var(--blue-deep); font-size:24px; margin-left:4px;}
.proof-word{font-size:26px;}
.proof-h{font:600 14.5px/1.3 var(--font-sans); color:var(--navy);}
.proof-n{font:400 13.5px/1.55 var(--font-sans); color:var(--muted);}
a.proof-n{text-decoration:underline; text-underline-offset:2px;}
.proof-funds{display:flex; align-items:baseline; gap:10px 28px; flex-wrap:wrap;}
.proof-k{font:500 12px/1 var(--font-sans); letter-spacing:.14em; text-transform:uppercase; color:var(--muted);}
.proof-list{display:flex; flex-wrap:wrap; gap:6px 20px; font:400 14.5px/1.5 var(--font-sans); color:var(--ink);}
.proof-list .more{color:var(--blue-deep);}
@media (max-width:900px){.proof-grid{grid-template-columns:1fr; gap:22px;}}
/* ---------- footer: slim suburbs line ---------- */
.mf-serve{display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; font-size:13px; color:rgba(255,255,255,.5);}
.mf-serve b{font-weight:500; color:rgba(255,255,255,.72); margin-right:4px;}
.mf-serve a:hover{color:#fff;}

/* ---------- calm mobile: fewer boxes, even rhythm, more air ---------- */
@media (max-width:600px){
  .section{padding:64px 0;}
  .band-navy,.band-teal,.band-tint{padding:72px 0;}
  .container,.container-wide{padding-left:22px; padding-right:22px;}
  .stack.gap-44{gap:32px;}
  /* who we see: quiet 2-up grid, names only */
  .who-see-grid{grid-template-columns:1fr 1fr !important; gap:10px !important;}
  .who-see-card{padding:22px 12px !important; gap:10px !important; border-radius:14px;}
  .who-see-desc{display:none;}
  .who-see-name{font-size:14.5px !important;}
  .who-see-card:hover{transform:none; box-shadow:none;}
  /* cards and team: flatter */
  a.card:hover{transform:none; box-shadow:none;}
  .tm-card{padding:18px !important;}
  /* footer: two link columns side by side */
  .mf-grid{grid-template-columns:1fr 1fr !important; gap:32px 20px !important;}
  .mf-grid > .mf-col:first-child,.mf-grid > .mf-col:last-child{grid-column:1 / -1;}
  .mf-a{padding-top:56px !important;}
  .mf-top{gap:20px !important; padding-bottom:36px !important;}
  .mf-top > div:first-child > span:first-child{display:none;}
  .mf-top p{display:none;}
  .mf-top h2{font-size:24px !important;}
  .mf-top .btn-row{width:100%; display:grid !important; grid-template-columns:1fr; gap:10px !important;}
  .mf-top .btn-row .btn{width:100%; justify-content:center;}
  .mf-top .btn-split{display:grid !important; grid-template-columns:1fr 1fr; gap:10px; border:0 !important; background:none !important; border-radius:0 !important; padding:0 !important; box-shadow:none !important;}
  .mf-top .btn-split .btn{width:100%; min-height:48px; padding:0 16px !important; justify-content:center; gap:8px; font:500 15px/1 var(--font-sans) !important; color:#fff !important; background:transparent !important; border:1px solid rgba(255,255,255,.35) !important; border-radius:999px !important; box-shadow:none !important;}
  .mf-top .btn-split .btn:hover{background:rgba(255,255,255,.08) !important; border-color:#fff !important;}
  .mf-top .btn-split .btn svg{width:16px; height:16px;}
  .mf-top .btn-split .btn[href^="tel:"]{font-size:0 !important;}
  .mf-top .btn-split .btn[href^="tel:"]::after{content:"Call"; font-size:15px;}
  .mf-serve{font-size:12.5px;}
}
