/* Sterling Services — shared styles */
:root{
  --blue:#2563EB;
  --blue-dark:#1D4ED8;
  --blue-soft:#EFF4FF;
  --blue-tint:#DCE7FF;
  --ink:#0F1B2D;
  --slate:#566175;
  --slate-light:#8A93A3;
  --paper:#FFFFFF;
  --mist:#F7F9FC;
  --line:#E6EBF2;
  --r:14px;
  --max:1180px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--blue-soft)}
body{font-family:'Inter',system-ui,sans-serif;color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased}
body.body-locked{overflow:hidden}
.skip-link{position:absolute;top:-100px;left:16px;z-index:200;background:var(--blue);color:#fff;padding:12px 18px;border-radius:8px;font-weight:600;font-size:14px;transition:top .2s var(--ease)}
.skip-link:focus{top:16px}
:focus{outline:none}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
h1,h2,h3,h4{font-family:'Fraunces',serif;font-weight:500;line-height:1.1;letter-spacing:-.01em;color:var(--ink);text-wrap:balance}
p,li,blockquote,figcaption,dd{text-wrap:pretty}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
.eyebrow{font-family:'Inter';font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--blue)}
.center{text-align:center;margin-left:auto;margin-right:auto}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:15px;padding:15px 26px;border-radius:999px;transition:.3s var(--ease);cursor:pointer;border:none;white-space:nowrap;font-family:'Inter'}
.btn-blue{background:var(--blue);color:#fff;box-shadow:0 8px 22px rgba(37,99,235,.28)}
.btn-blue:hover{background:var(--blue-dark);transform:translateY(-2px);box-shadow:0 14px 32px rgba(37,99,235,.36)}
.btn-ghost{background:#fff;color:var(--blue);border:1.5px solid var(--blue-tint)}
.btn-ghost:hover{border-color:var(--blue);background:var(--blue-soft)}
.btn-lg{padding:17px 32px;font-size:16px}

/* NAV */
header{position:sticky;top:0;z-index:100;background:rgba(239,244,255,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);transition:box-shadow .25s var(--ease)}
header.scrolled{box-shadow:0 8px 24px rgba(15,27,45,.06)}
nav{display:flex;align-items:center;justify-content:space-between;height:108px}
.logo{font-family:'Fraunces';font-size:32px;font-weight:600;color:var(--ink);letter-spacing:-.01em;display:flex;align-items:center;gap:18px}
.logo img{width:88px;height:88px;display:block;flex-shrink:0;filter:drop-shadow(0 3px 10px rgba(37,99,235,.22))}
.logo .mark{color:var(--blue)}
.logo-text{line-height:1}
.logo-text.tagline{font-size:clamp(1.05rem,1.8vw,1.45rem);line-height:1.25;font-weight:500;letter-spacing:.005em;padding-top:4px}
@media(max-width:760px){.logo-text.tagline{font-size:.95rem;line-height:1.3;padding-top:0}}
@media(max-width:760px){.logo{font-size:26px;gap:12px}.logo img{width:72px;height:72px}}
.nav-links{display:flex;gap:32px;align-items:center}
.nav-links a{font-size:15px;font-weight:500;color:var(--slate);transition:.25s}
.nav-links a:hover,.nav-links a.active{color:var(--blue)}
.nav-cta{padding:11px 22px;font-size:14px;color:#fff!important}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:8px;margin:-8px}
.burger span{width:24px;height:2px;background:var(--ink);transition:.3s var(--ease);transform-origin:center}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* HERO / PAGE HEADERS */
.hero{position:relative;background:linear-gradient(165deg,#fff 0%,var(--blue-soft) 100%);overflow:hidden;padding:72px 0 56px}
.hero-split{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero-inner{max-width:640px}
.hero-photo{border-radius:20px;overflow:hidden;border:1px solid var(--line);box-shadow:0 24px 60px rgba(15,27,45,.12);background:var(--blue-soft)}
.hero-photo img{width:100%;aspect-ratio:4/4.3;object-fit:cover;object-position:center 30%;display:block}
.hero h1{font-size:clamp(42px,6vw,76px);margin:20px 0 22px}
.hero h1 em{font-style:italic;color:var(--blue)}
.hero p{color:var(--slate);font-size:clamp(17px,2vw,21px);max-width:560px;margin-bottom:34px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero-trust{display:flex;gap:36px;margin-top:50px;flex-wrap:wrap}
.hero-trust .n{font-family:'Fraunces';font-size:30px;display:block;color:var(--blue)}
.hero-trust .l{font-size:13px;color:var(--slate);letter-spacing:.02em}

/* families band — diverse family photos separated by a thin border */
.family-band{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;border-radius:20px;overflow:hidden;border:1px solid var(--line);box-shadow:0 20px 50px rgba(15,27,45,.10);background:var(--line)}
.family-band img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 22%;display:block;background:var(--blue-soft)}
@media(max-width:720px){.family-band{grid-template-columns:1fr 1fr;gap:8px}.family-band img,.family-band img:last-child{aspect-ratio:4/5;object-position:center 20%;grid-column:auto}}
@media(max-width:460px){.family-band{grid-template-columns:1fr}.family-band img,.family-band img:last-child{aspect-ratio:4/5;object-position:center 18%}}

/* compact page banner (interior pages) */
.banner{background:linear-gradient(165deg,#fff,var(--blue-soft));padding:56px 0 44px;position:relative;overflow:hidden}
.banner::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 20%,rgba(37,99,235,.09),transparent 45%)}
.banner .wrap{position:relative;z-index:2;max-width:720px}
.banner h1{font-size:clamp(36px,5vw,60px);margin:14px 0 16px}
.banner p{color:var(--slate);font-size:19px}
/* title-only banner: balanced, centered, no leftover empty space */
.banner-title{padding:44px 0}
.banner-title::before{background:radial-gradient(circle at 50% 25%,rgba(37,99,235,.09),transparent 55%)}
.banner-title .wrap{max-width:var(--max);text-align:center}
.banner-title h1{margin:0}

/* SECTIONS */
section{padding:64px 0}
.sec-head{max-width:640px;margin-bottom:40px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head h2{font-size:clamp(30px,4.2vw,50px);margin:14px 0 16px}
.sec-head p{color:var(--slate);font-size:18px}
.section-alt{background:var(--mist);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section-tight-top{padding-top:0}
.section-tight-bottom{padding-bottom:0}
.section-snug-top{padding-top:32px}
.section-snug-bottom{padding-bottom:32px}
.section-title{font-size:clamp(28px,3.6vw,44px);margin:14px 0 16px}
.section-title-sm{font-size:clamp(26px,3.4vw,38px);margin-bottom:20px}
.section-lead{color:var(--slate);font-size:17px;margin-bottom:22px}
.lead-md{color:var(--slate);font-size:17px;margin-bottom:16px}
.lead-md:last-child{margin-bottom:0}
.mt-cta{margin-top:42px}
.mt-note{margin-top:28px;color:var(--slate-light);font-size:14px}
.split-start{align-items:start}
.split-reverse .vis{order:2}
.split-reverse .split-content{order:1}
.service-block{margin-bottom:60px}
.service-block:last-child{margin-bottom:0}
.service-icon{width:56px;height:56px;display:inline-flex;align-items:center;justify-content:center;background:var(--blue-soft);color:var(--blue);border-radius:13px;margin-bottom:18px}
.quote-inline{margin-top:30px;background:var(--blue-soft);border-color:var(--blue-tint)}
.quote-inline p{font-family:'Fraunces';font-style:italic;font-size:18px;line-height:1.4;margin:0}
.hero-trust.spread{justify-content:space-between;margin:0}
.hero-trust.spread > div{text-align:center;flex:1;min-width:140px}
.owner-title{font-size:clamp(28px,4vw,42px);margin:12px 0 16px}
.owner-quote{max-width:820px;margin:36px auto 0;text-align:center;background:var(--blue-soft);border:1px solid var(--blue-tint);border-radius:14px;padding:28px 32px}
.owner-quote p{font-family:'Fraunces';font-style:italic;font-size:19px;line-height:1.55;color:var(--ink);margin-bottom:14px}
.owner-quote .who{font-size:14px;color:var(--slate);font-weight:500}
@media(max-width:760px){.owner-quote{padding:22px 22px;margin-top:28px}.owner-quote p{font-size:17px}}
.strip{background:var(--mist);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:32px 0}
.strip .wrap{display:flex;justify-content:space-between;gap:26px;flex-wrap:wrap}
.strip .item{display:flex;align-items:center;gap:12px;font-weight:500;font-size:15px}
.strip svg{color:var(--blue);flex-shrink:0}

/* CARDS */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:36px 30px;transition:.4s var(--ease);position:relative;overflow:hidden}
.card.has-img{padding:0}
.card-body{padding:24px 30px 36px}
.card-img{width:100%;height:200px;object-fit:cover;object-position:center;display:block}
.card::after{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--blue);transition:.4s var(--ease)}
.card:hover{transform:translateY(-6px);box-shadow:0 22px 46px rgba(15,27,45,.09);border-color:transparent}
.card:hover::after{width:100%}
.card .ic{width:54px;height:54px;border-radius:13px;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;color:var(--blue);margin-bottom:22px}
.card h3{font-size:23px;margin-bottom:11px}
.card p{color:var(--slate);font-size:15.5px;margin-bottom:18px}
.card ul{list-style:none}
.card li{font-size:14.5px;padding:8px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px}
.card li:first-child{border-top:none}
.card li svg{color:var(--blue);flex-shrink:0}

/* STEPS */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:38px}
.step{position:relative;padding-top:14px}
.step .num{font-family:'Fraunces';font-size:54px;color:var(--blue);line-height:1}
.step h3{font-size:22px;margin:12px 0 9px}
.step p{color:var(--slate);font-size:15.5px}

.steps-illustrated{gap:24px}
.steps-illustrated .step{padding-top:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:.4s var(--ease)}
.steps-illustrated .step:hover{transform:translateY(-6px);box-shadow:0 22px 46px rgba(15,27,45,.09);border-color:transparent}
.step-illus{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center;display:block;background:var(--blue-soft)}
.step-body{padding:22px 24px 28px}
.steps-illustrated .step .num{font-size:42px;margin-bottom:4px}
.steps-illustrated .step h3{margin:0 0 9px}
.steps-illustrated .step p{margin:0}

/* SPLIT */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.split .vis{aspect-ratio:4/4.3;border-radius:18px;background:linear-gradient(150deg,var(--blue-soft),var(--blue-tint));position:relative;overflow:hidden;border:1px solid var(--line)}
.split .vis::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(37,99,235,.16),transparent 55%);z-index:1;pointer-events:none}
.vis-photo::before{background:linear-gradient(to top,rgba(15,27,45,.62) 0%,rgba(15,27,45,.18) 45%,rgba(255,255,255,.08) 100%)}
.vis-photo-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 28%;z-index:0}
.vis-photo.vis-clean::before{background:linear-gradient(135deg,rgba(255,255,255,.06),rgba(15,27,45,.12))}
.vis-photo .quote-card{z-index:2}
.vis-icon{position:absolute;inset:0;margin:auto;width:46%;max-width:200px;height:auto;object-fit:contain;filter:drop-shadow(0 12px 28px rgba(37,99,235,.22));z-index:1}
.photo-band{border-radius:18px;overflow:hidden;border:1px solid var(--line);aspect-ratio:21/9;max-height:340px;box-shadow:0 18px 46px rgba(15,27,45,.08);margin:0 auto}
.photo-band img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block}
.families-intro{margin-bottom:40px}
.support-lead{font-size:20px;margin-bottom:14px;color:var(--ink)}
.support-lead strong{font-weight:600}
.contact-split{align-items:center}
.contact-split .vis{aspect-ratio:4/3.2;min-height:360px}
.quote-card{position:absolute;left:26px;right:26px;bottom:26px;background:#fff;border-radius:14px;padding:26px;box-shadow:0 16px 40px rgba(15,27,45,.12)}
.quote-card p{font-family:'Fraunces';font-style:italic;font-size:18px;line-height:1.4;margin-bottom:13px}
.quote-card .who{font-size:13.5px;color:var(--slate);font-weight:500}
/* compact variant for longer quotes — the card sits in normal flow, overlapping
   only the photo's bottom edge and expanding DOWNWARD, so it never climbs up
   over the faces as the column narrows */
.vis-quote-wrap{position:relative}
.quote-card.compact{position:relative;left:auto;right:auto;bottom:auto;margin:-44px 22px 0;padding:18px 22px;border:1px solid rgba(255,255,255,.6);box-shadow:0 20px 44px rgba(15,27,45,.18)}
.quote-card.compact p{font-size:13px;line-height:1.5;margin-bottom:8px}
.quote-card.compact .who{font-size:12px}
@media(max-width:600px){
  .quote-card.compact{margin:-32px 14px 0;padding:16px 18px}
  .quote-card.compact p{font-size:12.5px}
}
.feat{list-style:none}
.feat li{display:flex;gap:18px;padding:22px 0;border-bottom:1px solid var(--line)}
.feat li:last-child{border-bottom:none}
.feat .fic{width:44px;height:44px;border-radius:11px;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;color:var(--blue);flex-shrink:0}
.feat h3{font-size:18px;margin-bottom:4px}
.feat p{color:var(--slate);font-size:15px}

/* TESTIMONIALS */
.tg{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch}
.tg-2{grid-template-columns:repeat(2,1fr);max-width:920px;margin:0 auto}
.tcard{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:32px}
.stars{color:var(--blue);font-size:16px;letter-spacing:3px;margin-bottom:15px}
.tcard p{font-size:16px;margin-bottom:22px;line-height:1.55;flex:1}
.tcard .by{display:flex;align-items:center;gap:13px;margin-top:auto}
.tcard .av{width:42px;height:42px;border-radius:50%;background:var(--blue-soft);color:var(--blue);display:flex;align-items:center;justify-content:center;font-family:'Fraunces';font-size:17px;flex-shrink:0}
.tcard .av-photo{width:42px;height:42px;border-radius:50%;object-fit:cover;display:block;flex-shrink:0;border:2px solid var(--blue-soft)}
.tcard .meta strong{display:block;font-size:14.5px}
.tcard .meta span{font-size:13px;color:var(--slate)}

/* CTA band */
.ctaband{background:var(--blue);color:#fff;text-align:center;border-radius:24px;padding:72px 40px;position:relative;overflow:hidden}
.ctaband::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.16),transparent 45%)}
.ctaband>*{position:relative;z-index:2}
.ctaband-layout{display:grid;grid-template-columns:1.15fr minmax(240px,290px);gap:48px;align-items:center;max-width:920px;margin:0 auto;text-align:left}
.ctaband-copy h2{color:#fff;font-size:clamp(30px,4vw,46px);margin-bottom:16px}
.ctaband-copy p{color:rgba(255,255,255,.86);font-size:18px;max-width:480px;margin:0 0 30px}
.ctaband h2{color:#fff;font-size:clamp(30px,4vw,46px);margin-bottom:16px}
.ctaband p{color:rgba(255,255,255,.86);font-size:18px;max-width:540px;margin:0 auto 30px}
.checklist-anim{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:22px 24px;backdrop-filter:blur(10px)}
.checklist{list-style:none;margin:0;padding:0}
.checklist-item{display:flex;align-items:center;gap:12px;padding:9px 0;color:rgba(255,255,255,.9);font-size:15px;font-weight:500}
.check-box{width:22px;height:22px;border:2px solid rgba(255,255,255,.45);border-radius:6px;flex-shrink:0;position:relative;animation:boxCheck 11s ease-in-out calc(var(--i) * 1.1s) infinite}
.check-box::after{content:"";position:absolute;left:5px;top:1px;width:6px;height:11px;border:solid var(--blue);border-width:0 2.5px 2.5px 0;transform:rotate(45deg) scale(0);opacity:0;animation:tickPop 11s ease-in-out calc(var(--i) * 1.1s) infinite}
.checklist-label{animation:labelCheck 11s ease-in-out calc(var(--i) * 1.1s) infinite}
@keyframes boxCheck{0%,7%{background:transparent;border-color:rgba(255,255,255,.45)}11%,82%{background:#fff;border-color:#fff}88%,100%{background:transparent;border-color:rgba(255,255,255,.45)}}
@keyframes tickPop{0%,9%{transform:rotate(45deg) scale(0);opacity:0}13%,80%{transform:rotate(45deg) scale(1);opacity:1}86%,100%{transform:rotate(45deg) scale(0);opacity:0}}
@keyframes labelCheck{0%,10%{opacity:1;text-decoration:none;color:rgba(255,255,255,.92)}14%,78%{opacity:.55;text-decoration:line-through;text-decoration-color:rgba(255,255,255,.4);color:rgba(255,255,255,.55)}84%,100%{opacity:1;text-decoration:none;color:rgba(255,255,255,.92)}}
@media(prefers-reduced-motion:reduce){.check-box,.check-box::after,.checklist-label{animation:none}.check-box{background:#fff;border-color:#fff}.check-box::after{transform:rotate(45deg) scale(1);opacity:1}.checklist-label{opacity:.55;text-decoration:line-through;color:rgba(255,255,255,.55)}}
.btn-white{background:#fff;color:var(--blue)}
.btn-white:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.18)}
.ctaband .btn-white{background:#fff;color:var(--blue)}
.ctaband .btn-white:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.18)}
.btn[disabled]{opacity:.7;cursor:not-allowed;transform:none!important}

/* FORM */
.form{background:#fff;border:1px solid var(--line);border-radius:18px;padding:36px;box-shadow:0 18px 50px rgba(15,27,45,.07)}
.form h3{font-size:23px;margin-bottom:6px}
.form .sub{color:var(--slate);font-size:14px;margin-bottom:24px}
.fg{margin-bottom:16px}
.fg label{display:block;font-size:13px;color:var(--slate);margin-bottom:7px;font-weight:500}
.fg input,.fg select,.fg textarea{width:100%;padding:13px 15px;background:var(--mist);border:1px solid var(--line);border-radius:10px;color:var(--ink);font-family:inherit;font-size:15px;transition:.25s}
.fg input::placeholder,.fg textarea::placeholder{color:var(--slate-light)}
.fg input:focus,.fg select:focus,.fg textarea:focus{outline:none;border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px var(--blue-soft)}
.fg textarea{resize:vertical;min-height:96px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form .btn-blue{width:100%;justify-content:center;margin-top:8px}
.form .fineprint{font-size:12.5px;color:var(--slate-light);text-align:center;margin-top:14px}
.success{display:none;text-align:center;padding:30px 10px}
.success.show{display:block}
.success .check{width:62px;height:62px;border-radius:50%;background:var(--blue);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;color:#fff}
.success h3{margin-bottom:8px}
.success p{color:var(--slate);font-size:15px}

/* contact rows */
.contact-line{display:flex;align-items:center;gap:14px;margin:16px 0;font-size:16px}
.contact-line svg{color:var(--blue);flex-shrink:0}
.contact-line a:hover{color:var(--blue)}
.contact-panel{max-width:560px;margin:0 auto}
.contact-split .contact-panel{max-width:none;margin:0}
.contact-actions{display:flex;gap:14px;flex-wrap:wrap;margin:28px 0 32px}

/* FAQ */
.faq{max-width:780px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{width:100%;text-align:left;background:none;border:none;padding:24px 0;font-size:18px;font-weight:600;font-family:'Inter';color:var(--ink);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;border-radius:4px}
.faq-q svg{color:var(--blue);flex-shrink:0;transition:.3s}
.faq-item.open .faq-q svg{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:.35s var(--ease);color:var(--slate);font-size:16px}
.faq-item.open .faq-a{max-height:240px;padding-bottom:24px}

/* PRICING / plan cards */
.plans{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;align-items:stretch;max-width:820px;margin:0 auto}
.plan{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--line);border-radius:18px;padding:36px 30px;transition:.35s var(--ease)}
.plan:hover{box-shadow:0 22px 46px rgba(15,27,45,.08);transform:translateY(-4px)}
.plan.featured{border:2px solid var(--blue);position:relative}
.plan.featured .tag{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--blue);color:#fff;font-size:12px;font-weight:600;padding:6px 16px;border-radius:999px;letter-spacing:.04em}
.plan h3{font-size:22px;margin-bottom:6px}
.plan .pdesc{color:var(--slate);font-size:14.5px;margin-bottom:20px;min-height:42px}
.plan .price{font-family:'Fraunces';font-size:40px;color:var(--ink);margin-bottom:4px}
.plan .price span{font-size:15px;color:var(--slate);font-family:'Inter'}
.plan .pnote{font-size:13px;color:var(--slate-light);margin-bottom:24px}
.plan ul{list-style:none;margin-bottom:26px;flex:1}
.plan li{font-size:14.5px;padding:9px 0;display:flex;gap:10px;align-items:flex-start}
.plan li svg{color:var(--blue);flex-shrink:0;margin-top:3px}
.plan .btn{width:100%;justify-content:center;margin-top:auto}

/* FOOTER */
footer{background:var(--ink);color:rgba(255,255,255,.62);padding:60px 0 30px}
.fcols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:40px}
footer .logo{color:#fff;margin-bottom:14px;display:inline-flex;align-items:center;gap:18px}
footer .logo img{width:88px;height:88px;filter:drop-shadow(0 4px 14px rgba(0,0,0,.4))}
footer .logo .logo-text{color:#fff;font-size:34px}
footer .logo .logo-text.tagline{font-size:clamp(1.05rem,1.8vw,1.45rem);line-height:1.25}
footer .logo .mark{color:var(--blue)}
footer p{font-size:14.5px;max-width:300px}
.fcol h4{color:#fff;font-size:14px;font-weight:600;margin-bottom:16px;font-family:'Inter'}
.fcol a{display:block;font-size:14.5px;padding:6px 0;transition:.25s}
.fcol a:hover{color:#fff}
.fbottom{border-top:1px solid rgba(255,255,255,.12);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13.5px}
.medical-disclaimer{font-size:12.5px;color:rgba(255,255,255,.45);margin-top:20px;line-height:1.6;max-width:920px}
.service-note{font-size:14px;color:var(--slate);margin-top:20px;padding:16px 18px;background:var(--mist);border:1px solid var(--line);border-radius:10px;line-height:1.55}

/* owner photo */
.owner{display:grid;grid-template-columns:auto 1fr;gap:40px;align-items:center}
.owner-photo{width:180px;height:180px;border-radius:20px;object-fit:cover;box-shadow:0 16px 38px rgba(15,27,45,.16);border:4px solid #fff}
.owner-photo.round{border-radius:50%}
@media(max-width:880px){.owner{grid-template-columns:1fr;gap:24px;text-align:center}.owner-photo{margin:0 auto}}

/* reveal */
.reveal{opacity:0;transform:translateY(22px);transition:.8s var(--ease)}
.reveal.in{opacity:1;transform:none}

@media(max-width:880px){
  .nav-links{position:fixed;inset:108px 0 auto 0;background:#fff;flex-direction:column;padding:24px 28px;gap:18px;box-shadow:0 12px 30px rgba(0,0,0,.1);transform:translateY(-130%);transition:.4s var(--ease);align-items:flex-start;border-bottom:1px solid var(--line);max-height:calc(100vh - 108px);overflow-y:auto}
  .nav-links.open{transform:none}
  .burger{display:flex}
  .cards,.steps,.tg,.plans{grid-template-columns:1fr}
  .split{grid-template-columns:1fr;gap:38px}
  .hero-split{grid-template-columns:1fr;gap:32px}
  .hero-photo{max-width:480px;margin:0 auto}
  .split-reverse .vis,.split-reverse .split-content{order:unset}
  .row2{grid-template-columns:1fr}
  .fcols{grid-template-columns:1fr;gap:28px}
  section{padding:48px 0}
  .ctaband{padding:54px 26px}
  .ctaband-layout{grid-template-columns:1fr;gap:32px;text-align:center}
  .ctaband-copy p{margin-left:auto;margin-right:auto}
  .checklist-anim{max-width:300px;margin:0 auto}
  .service-block{margin-bottom:44px}
  .hero-trust.spread{justify-content:center;gap:28px}
  .banner-checklist{display:none}
  .steps-illustrated.in::before{display:none}
}

/* === MICRO ANIMATIONS === */
.cta-deco{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:22px 24px;backdrop-filter:blur(10px)}
.checklist-sm .checklist-item{padding:7px 0;font-size:14px}
.checklist-sm .check-box{width:18px;height:18px;border-radius:5px}
.checklist-sm .check-box::after{left:4px;top:0;width:5px;height:9px;border-width:0 2px 2px 0}
.banner-deco{position:relative;overflow:visible}
.banner-checklist{position:absolute;right:28px;bottom:-28px;width:220px;background:rgba(255,255,255,.95);border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:0 16px 40px rgba(15,27,45,.12)}
.banner-checklist .checklist-label{color:var(--slate)}
.banner-checklist .check-box{border-color:var(--blue-tint)}
.banner-checklist .check-box::after{border-color:var(--blue)}

@media(prefers-reduced-motion:no-preference){
  @keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  @keyframes statPop{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}
  @keyframes gentleFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
  @keyframes starGlow{0%,100%{opacity:1;letter-spacing:3px}50%{opacity:.85;letter-spacing:4px}}
  @keyframes tagPulse{0%,100%{box-shadow:0 0 0 0 rgba(37,99,235,.35)}50%{box-shadow:0 0 0 8px rgba(37,99,235,0)}}
  @keyframes phoneRing{0%,88%,100%{transform:rotate(0)}90%{transform:rotate(-8deg)}92%{transform:rotate(8deg)}94%{transform:rotate(-6deg)}96%{transform:rotate(6deg)}}
  @keyframes clockSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
  @keyframes iconPop{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}
  @keyframes checkPop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}
  @keyframes slideUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
  @keyframes kenBurns{from{transform:scale(1)}to{transform:scale(1.04)}}
  @keyframes photoRing{0%,100%{box-shadow:0 20px 50px rgba(15,27,45,.16),0 0 0 0 rgba(37,99,235,.15)}50%{box-shadow:0 20px 50px rgba(15,27,45,.16),0 0 0 6px rgba(37,99,235,0)}}
  @keyframes stripCheck{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
  @keyframes calDot{0%,12%{background:rgba(255,255,255,.15);transform:scale(.9)}18%,78%{background:#fff;transform:scale(1)}84%,100%{background:rgba(255,255,255,.15);transform:scale(.9)}}
  @keyframes routeNode{0%,15%{background:rgba(255,255,255,.2);transform:scale(.85)}22%,75%{background:#fff;transform:scale(1)}82%,100%{background:rgba(255,255,255,.2);transform:scale(.85)}}
  @keyframes routeFill{0%,20%{width:0}35%,70%{width:100%}85%,100%{width:0}}
  @keyframes stackLift{0%,10%{opacity:1;transform:translateY(0)}28%,100%{opacity:0;transform:translateY(-14px)}}
  @keyframes stepLine{0%{width:0}40%,90%{width:100%}100%{width:0}}

  .strip.in .item{animation:fadeUp .55s var(--ease) backwards}
  .strip.in .item:nth-child(1){animation-delay:.05s}
  .strip.in .item:nth-child(2){animation-delay:.12s}
  .strip.in .item:nth-child(3){animation-delay:.19s}
  .strip.in .item:nth-child(4){animation-delay:.26s}
  .strip.in .item svg{animation:stripCheck 3s ease-in-out infinite}
  .strip.in .item:nth-child(2) svg{animation-delay:.4s}
  .strip.in .item:nth-child(3) svg{animation-delay:.8s}
  .strip.in .item:nth-child(4) svg{animation-delay:1.2s}

  .hero-photo img{animation:gentleFloat 7s ease-in-out infinite}
  .reveal.in .hero-trust>div{animation:statPop .55s var(--ease) backwards}
  .reveal.in .hero-trust>div:nth-child(2){animation-delay:.1s}
  .reveal.in .hero-trust>div:nth-child(3){animation-delay:.2s}
  .reveal.in .hero-trust>div:nth-child(4){animation-delay:.3s}

  .reveal.in .card .ic{animation:iconPop .5s var(--ease) .15s backwards}
  .reveal.in .card li svg{animation:checkPop .4s var(--ease) backwards}
  .reveal.in .card li:nth-child(1) svg{animation-delay:.25s}
  .reveal.in .card li:nth-child(2) svg{animation-delay:.35s}
  .reveal.in .card li:nth-child(3) svg{animation-delay:.45s}

  .steps-illustrated.reveal.in{position:relative}
  .steps-illustrated.reveal.in::before{content:"";position:absolute;top:22%;left:14%;height:2px;width:0;background:var(--blue);opacity:.25;z-index:0;animation:stepLine 8s ease-in-out infinite}
  .steps-illustrated.reveal.in .step{position:relative;z-index:1}

  .reveal.in .feat li{animation:fadeUp .45s var(--ease) backwards}
  .reveal.in .feat li:nth-child(2){animation-delay:.1s}
  .reveal.in .feat li:nth-child(3){animation-delay:.2s}

  .vis-photo.reveal.in .quote-card{animation:slideUp .65s var(--ease) .2s backwards}
  .photo-band.reveal.in img{animation:kenBurns 14s ease-in-out infinite alternate}

  .tcard.reveal.in .stars{animation:starGlow 3.5s ease-in-out infinite}
  .tcard.reveal.in:nth-child(2) .stars{animation-delay:.5s}
  .tcard.reveal.in:nth-child(3) .stars{animation-delay:1s}

  .plan.featured .tag{animation:tagPulse 2.8s ease-in-out infinite}
  .plan.reveal.in li svg{animation:checkPop .35s var(--ease) backwards}
  .plan.reveal.in li:nth-child(1) svg{animation-delay:.15s}
  .plan.reveal.in li:nth-child(2) svg{animation-delay:.25s}
  .plan.reveal.in li:nth-child(3) svg{animation-delay:.35s}
  .plan.reveal.in li:nth-child(4) svg{animation-delay:.45s}

  .owner.reveal.in .owner-photo{animation:photoRing 4s ease-in-out infinite}
  .service-icon{animation:gentleFloat 5.5s ease-in-out infinite}

  .contact-line-phone svg{animation:phoneRing 5s ease-in-out infinite}
  .contact-line-reply svg{animation:clockSpin 12s linear infinite;transform-origin:center}

  .cal-dot{width:100%;aspect-ratio:1;border-radius:6px;background:rgba(255,255,255,.15);animation:calDot 5s ease-in-out calc(var(--d)*.25s) infinite}
  .cal-head{height:8px;border-radius:4px;background:rgba(255,255,255,.35);margin-bottom:12px;width:55%}
  .cal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}

  .cta-deco-route{display:flex;align-items:center;gap:6px;padding:28px 20px}
  .route-node{width:14px;height:14px;border-radius:50%;background:rgba(255,255,255,.2);flex-shrink:0;animation:routeNode 4s ease-in-out calc(var(--d)*.6s) infinite}
  .route-track{flex:1;height:2px;background:rgba(255,255,255,.2);border-radius:1px;overflow:hidden}
  .route-fill{display:block;height:100%;width:0;background:#fff;animation:routeFill 4s ease-in-out calc(var(--d)*.6s + .3s) infinite}

  .cta-deco-stack{display:flex;flex-direction:column;gap:8px;min-width:180px}
  .stack-item{display:block;padding:10px 14px;border-radius:8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);font-size:14px;font-weight:500;color:rgba(255,255,255,.9);animation:stackLift 4.5s ease-in-out calc(var(--d)*.7s) infinite}

  .banner-checklist .checklist-item{--i:var(--i)}
  .banner-checklist .check-box{animation:boxCheckBanner 11s ease-in-out calc(var(--i)*1.1s) infinite}
  .banner-checklist .check-box::after{border-color:#fff;animation:tickPopBanner 11s ease-in-out calc(var(--i)*1.1s) infinite}
  .banner-checklist .checklist-label{color:var(--slate);animation:labelCheckBanner 11s ease-in-out calc(var(--i)*1.1s) infinite}
  @keyframes boxCheckBanner{0%,7%{background:transparent;border-color:var(--blue-tint)}11%,82%{background:var(--blue);border-color:var(--blue)}88%,100%{background:transparent;border-color:var(--blue-tint)}}
  @keyframes tickPopBanner{0%,9%{transform:rotate(45deg) scale(0);opacity:0}13%,80%{transform:rotate(45deg) scale(1);opacity:1}86%,100%{transform:rotate(45deg) scale(0);opacity:0}}
  @keyframes labelCheckBanner{0%,10%{opacity:1;text-decoration:none;color:var(--slate)}14%,78%{opacity:.55;text-decoration:line-through;color:var(--slate-light)}84%,100%{opacity:1;text-decoration:none;color:var(--slate)}}
  .route-track:nth-of-type(2) .route-fill{animation-delay:.9s}
  .route-track:nth-of-type(4) .route-fill{animation-delay:1.5s}
}

@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  *{scroll-behavior:auto}
  .check-box,.check-box::after,.checklist-label{animation:none!important}
  .check-box{background:#fff;border-color:#fff}
  .check-box::after{transform:rotate(45deg) scale(1);opacity:1}
  .checklist-label{opacity:.55;text-decoration:line-through;color:rgba(255,255,255,.55)}
  .banner-checklist .checklist-label{color:var(--slate);opacity:.65;text-decoration:line-through}
  .banner-checklist .check-box{background:var(--blue);border-color:var(--blue)}
  .banner-checklist .check-box::after{transform:rotate(45deg) scale(1);opacity:1;border-color:#fff}
}
