*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
:root{
  --ink:#1d1d1f; --ink-2:#6e6e73; --ink-3:#86868b; --line:#d2d2d7; --line-soft:#e8e8ed;
  --bg:#ffffff; --bg-2:#f5f5f7; --bg-3:#fbfbfd;
  --accent:#1e6fb8; --accent-press:#17588f; --blue:#0071e3;
  --mint-1:#eaf3fb; --mint-2:#d6e8f7;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.47;letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:1024px;margin:0 auto;padding:0 22px}
.wrap-wide{max-width:1200px;margin:0 auto;padding:0 22px}

/* ── typography scale (Apple) ── */
.kicker{font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--accent);margin-bottom:10px}
h1,h2,h3{letter-spacing:-.035em;line-height:1.05;font-weight:600}
.display{font-size:clamp(44px,8.4vw,88px);letter-spacing:-.04em;line-height:1.02}
.h-sect{font-size:clamp(32px,5.2vw,56px)}
.statement{font-size:clamp(34px,6.4vw,72px);letter-spacing:-.04em;line-height:1.05;font-weight:600}
.sub{font-size:clamp(19px,2.3vw,26px);font-weight:500;color:var(--ink-2);letter-spacing:-.015em;line-height:1.35}
.body-lg{font-size:clamp(17px,1.6vw,19px);color:var(--ink-2);font-weight:400;letter-spacing:-.01em}

/* ── buttons + text links (Apple) ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:17px;font-weight:500;
  padding:12px 23px;border-radius:980px;border:none;cursor:pointer;transition:.25s var(--ease);white-space:nowrap;letter-spacing:-.01em}
.btn-fill{background:var(--accent);color:#fff}
.btn-fill:hover{background:var(--accent-press)}
.btn-tint{background:var(--bg-2);color:var(--ink)}
.btn-tint:hover{background:#ececf0}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:#000}
.tlink{display:inline-flex;align-items:center;gap:3px;color:var(--accent);font-size:17px;font-weight:500;letter-spacing:-.01em}
.tlink .chev{transition:transform .25s var(--ease)}
.tlink:hover{text-decoration:underline}
.tlink:hover .chev{transform:translateX(3px)}
.cta-row{display:flex;gap:26px;align-items:center;flex-wrap:wrap}

/* ── draft banner (REMOVE before handoff) ── */
.draft-banner{background:var(--ink);color:#f5f5f7;font-size:12.5px;font-weight:500;text-align:center;padding:7px 16px;letter-spacing:-.01em}
.draft-banner b{color:#fff}

/* ── nav (Apple translucent) ── */
header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.72);backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.06)}
.nav{display:flex;align-items:center;height:64px;gap:16px}
.brand{display:flex;align-items:center;gap:9px;font-size:19px;font-weight:600;letter-spacing:-.02em;margin-right:auto}
.brand .mark{width:27px;height:27px;flex-shrink:0}
.nav-links{display:flex;gap:34px}
.nav-links a{font-size:12.5px;font-weight:400;color:#1d1d1fcc;letter-spacing:-.01em;transition:.2s}
.nav-links a:hover{color:var(--ink)}
.nav-right{display:flex;align-items:center;gap:18px;margin-left:34px}
.nav-phone{font-size:12.5px;font-weight:500;color:var(--ink)}
.nav-mini{font-size:12px;font-weight:500;padding:6px 15px;border-radius:980px;background:var(--accent);color:#fff}
.nav-mini:hover{background:var(--accent-press)}
.burger{display:none;width:30px;height:30px;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;justify-content:center;align-items:center}
.burger span{width:18px;height:1.5px;background:var(--ink);border-radius:2px;transition:.3s var(--ease)}
.burger.on span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.on span:nth-child(2){opacity:0}
.burger.on span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.mobile-menu{display:none;flex-direction:column;background:rgba(255,255,255,.96);backdrop-filter:blur(20px);border-bottom:1px solid var(--line-soft)}
.mobile-menu a{padding:16px 22px;font-size:19px;font-weight:500;letter-spacing:-.02em;border-bottom:1px solid var(--line-soft)}
.mobile-menu a:last-child{border-bottom:none;color:var(--accent)}
.mobile-menu.on{display:flex}

/* ── section rhythm ── */
section{padding:clamp(80px,11vw,130px) 0}
.center{text-align:center}
.sec-head{max-width:720px;margin:0 auto clamp(44px,6vw,70px)}
.sec-head .sub{margin-top:18px}

/* ── hero ── */
.hero{padding:clamp(56px,9vw,96px) 0 clamp(30px,4vw,44px);text-align:center}
.hero .display{margin-bottom:22px}
.hero .grad{background:linear-gradient(120deg,var(--accent),#38a8e5 55%,#22b6ea);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero .sub{max-width:660px;margin:0 auto 30px}
.hero .cta-row{justify-content:center}
.hero-stage{max-width:1200px;margin:clamp(34px,5vw,60px) auto 0;padding:0 22px}
.stage{position:relative;border-radius:clamp(22px,3vw,34px);overflow:hidden;aspect-ratio:16/9;
  background:linear-gradient(160deg,#0f4c81 0%,#1e6fb8 42%,#6fb9e6 78%,#c2e0f6 100%);
  display:grid;place-items:center;box-shadow:0 40px 80px -40px rgba(15,76,129,.5)}
@media(max-width:700px){.stage{aspect-ratio:4/5}}
.stage .halo{position:absolute;width:64%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.45),transparent 62%);filter:blur(6px)}
.stage .spark{position:relative;width:clamp(110px,20vw,190px);height:clamp(110px,20vw,190px);color:#fff;opacity:.96;
  filter:drop-shadow(0 18px 40px rgba(0,0,0,.28));animation:float 6s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.glass{position:absolute;background:rgba(255,255,255,.16);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.35);border-radius:18px;padding:14px 18px;color:#fff;font-weight:600;font-size:14px;letter-spacing:-.01em;
  box-shadow:0 20px 40px -20px rgba(0,0,0,.35)}
.glass .lab{font-size:11px;font-weight:500;opacity:.85;letter-spacing:0}
.glass.g1{top:8%;left:6%}
.glass.g2{bottom:9%;right:6%;display:flex;align-items:center;gap:10px}
.glass.g3{top:14%;right:8%}
.glass .stars{color:#ffd15c;letter-spacing:1px}
@media(max-width:560px){.glass.g3{display:none}}
.tiny{position:relative;z-index:1;margin-top:clamp(28px,4vw,44px);font-size:12px;color:var(--ink-3);text-align:center;letter-spacing:-.01em}

/* ── stat strip (Apple specs row) ── */
.stats{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:clamp(44px,6vw,64px) 0;text-align:center}
.stat .n{font-size:clamp(34px,5vw,52px);font-weight:600;letter-spacing:-.04em;line-height:1;
  background:linear-gradient(120deg,var(--accent),#38a8e5);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.stat .l{font-size:14.5px;color:var(--ink-2);margin-top:10px;font-weight:500;letter-spacing:-.01em}
.stat + .stat{border-left:1px solid var(--line-soft)}
@media(max-width:640px){.stats-row{grid-template-columns:1fr 1fr;gap:36px 20px}.stat:nth-child(2n){border-left:1px solid var(--line-soft)}.stat:nth-child(-n+2){padding-bottom:0}}

/* ── bento (services) ── */
.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;
  grid-template-areas:"a a b" "a a c" "d e f";}
.tile{position:relative;overflow:hidden;background:var(--bg-2);border-radius:26px;padding:32px;
  display:flex;flex-direction:column;min-height:250px;transition:.4s var(--ease);cursor:default}
.tile:hover{background:#eef0f2;transform:translateY(-3px)}
.tile .ic{font-size:34px;margin-bottom:auto}
.tile h3{font-size:23px;letter-spacing:-.03em;margin:18px 0 8px;font-weight:600}
.tile p{font-size:15px;color:var(--ink-2);font-weight:400;letter-spacing:-.01em}
.tile .price{margin-top:14px;font-size:13px;font-weight:600;color:var(--accent)}
.tile.feat{grid-area:a;background:linear-gradient(165deg,#0f4c81,#1e6fb8 60%,#3f9fe0);color:#fff;justify-content:flex-end;min-height:340px}
.tile.feat .ic{font-size:46px}
.tile.feat h3{font-size:clamp(28px,3.4vw,40px);margin-top:22px}
.tile.feat p{color:rgba(255,255,255,.9);font-size:16.5px;max-width:340px}
.tile.feat .price{color:#fff;opacity:.92}
.tile.feat:hover{transform:translateY(-3px);filter:brightness(1.04)}
.tile.t-b{grid-area:b}.tile.t-c{grid-area:c}.tile.t-d{grid-area:d}.tile.t-e{grid-area:e}.tile.t-f{grid-area:f}
@media(max-width:820px){
  .bento{grid-template-columns:1fr 1fr;grid-template-areas:"a a" "b c" "d e" "f f";}
  .tile.feat{min-height:300px}
}
@media(max-width:560px){
  .bento{grid-template-columns:1fr;grid-template-areas:"a" "b" "c" "d" "e" "f";}
  .tile{min-height:200px;padding:26px}
}

/* ── feature statement blocks ── */
.feature{background:var(--bg-2)}
.feature .statement{max-width:940px;margin:0 auto}
.feature .statement .muted{color:var(--ink-3)}
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:clamp(48px,6vw,72px)}
.pillar{text-align:left}
.pillar .ic{font-size:28px;margin-bottom:14px}
.pillar h4{font-size:19px;font-weight:600;letter-spacing:-.02em;margin-bottom:7px}
.pillar p{font-size:15px;color:var(--ink-2);font-weight:400;letter-spacing:-.01em}
@media(max-width:820px){.pillars{grid-template-columns:1fr 1fr;gap:34px 22px}}
@media(max-width:520px){.pillars{grid-template-columns:1fr}}

/* ── steps ── */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,52px)}
.step{text-align:center}
.step .num{width:52px;height:52px;margin:0 auto 22px;border-radius:50%;border:1.5px solid var(--accent);color:var(--accent);
  display:grid;place-items:center;font-size:20px;font-weight:600;letter-spacing:-.02em}
.step h4{font-size:22px;font-weight:600;letter-spacing:-.03em;margin-bottom:10px}
.step p{font-size:16px;color:var(--ink-2);font-weight:400;max-width:300px;margin:0 auto;letter-spacing:-.01em}
@media(max-width:720px){.steps{grid-template-columns:1fr;gap:44px}}

/* ── areas ── */
.chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:800px;margin:0 auto}
.chips span{background:var(--bg-2);border-radius:980px;padding:10px 20px;font-size:15px;font-weight:500;color:var(--ink);letter-spacing:-.01em;transition:.2s}
.chips span:hover{background:var(--accent);color:#fff}

/* ── reviews ── */
.reviews{background:var(--bg-2)}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.review{background:#fff;border-radius:22px;padding:30px}
.review .stars{color:#ffb400;letter-spacing:2px;font-size:16px;margin-bottom:16px}
.review p{font-size:19px;font-weight:500;letter-spacing:-.02em;line-height:1.4;margin-bottom:22px}
.review .who{display:flex;align-items:center;gap:12px}
.review .av{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#38a8e5);color:#fff;display:grid;place-items:center;font-weight:600;font-size:15px}
.review .nm{font-weight:600;font-size:15px;letter-spacing:-.01em}.review .loc{font-size:13px;color:var(--ink-3)}
.rev-note{text-align:center;font-size:13px;color:var(--ink-3);margin-top:26px}
@media(max-width:820px){.rev-grid{grid-template-columns:1fr}}

/* ── quote ── */
.quote-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,6vw,80px);align-items:center}
.quote-copy .h-sect{margin-bottom:20px}
.quote-perk{display:flex;align-items:center;gap:12px;font-size:17px;font-weight:500;margin-bottom:15px;letter-spacing:-.01em}
.quote-perk .ic{color:var(--accent);font-size:19px;width:24px;text-align:center}
.quote-perk a{color:var(--accent);font-weight:600}
.form{background:var(--bg-2);border-radius:28px;padding:clamp(28px,3.5vw,42px)}
.form h3{font-size:26px;font-weight:600;letter-spacing:-.03em;margin-bottom:6px}
.form .fsub{font-size:15px;color:var(--ink-2);margin-bottom:26px;letter-spacing:-.01em}
.field{margin-bottom:15px}
.field label{display:block;font-size:13px;font-weight:500;color:var(--ink-2);margin-bottom:7px;letter-spacing:-.01em}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:13px;padding:14px 15px;
  font-family:var(--font);font-size:16px;color:var(--ink);background:#fff;outline:none;transition:.18s;letter-spacing:-.01em}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(30,111,184,.14)}
.field textarea{resize:vertical;min-height:92px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.form .btn-fill{width:100%;margin-top:8px}
.form-note{font-size:12.5px;color:var(--ink-3);text-align:center;margin-top:14px;letter-spacing:-.01em}
.form-success{display:none;text-align:center;padding:30px 10px}
.form-success.on{display:block}
.form-success .ok{width:66px;height:66px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:32px;margin:0 auto 18px}
.form-success h3{margin-bottom:10px}
.form-success p{color:var(--ink-2);font-size:16px;letter-spacing:-.01em}
@media(max-width:860px){.quote-grid{grid-template-columns:1fr;gap:40px}}

/* ── faq (hairline, Apple) ── */
.faq-list{max-width:760px;margin:0 auto}
.faq{border-bottom:1px solid var(--line);}
.faq:first-child{border-top:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:26px 4px;font-size:20px;font-weight:500;letter-spacing:-.02em;
  display:flex;justify-content:space-between;align-items:center;gap:18px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .plus{color:var(--accent);font-size:26px;font-weight:300;transition:.25s var(--ease);flex-shrink:0;line-height:1}
.faq[open] summary .plus{transform:rotate(45deg)}
.faq .fbody{padding:0 4px 26px;font-size:16.5px;color:var(--ink-2);line-height:1.6;font-weight:400;letter-spacing:-.01em;max-width:640px}

/* ── final cta ── */
.final{text-align:center;background:var(--bg-2)}
.final .statement{margin-bottom:14px}
.final .body-lg{max-width:520px;margin:0 auto 32px}
.final .cta-row{justify-content:center}

/* ── footer (Apple fine-print) ── */
footer{background:var(--bg-2);border-top:1px solid var(--line-soft);padding:44px 0 34px;font-size:12px;color:var(--ink-2)}
.foot-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:30px;padding-bottom:26px}
.foot-brand .brand{font-size:17px;margin-bottom:12px}
.foot-brand p{color:var(--ink-3);max-width:280px;font-size:12.5px;line-height:1.6;letter-spacing:-.01em}
.foot-col h5{font-size:12px;font-weight:600;color:var(--ink);margin-bottom:12px;letter-spacing:-.01em}
.foot-col a,.foot-col .line{display:block;color:var(--ink-2);margin-bottom:9px;font-size:12.5px;letter-spacing:-.01em;transition:.15s}
.foot-col a:hover{color:var(--accent)}
.foot-col .line{color:var(--ink-3)}
.gbp{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);color:var(--ink);
  font-weight:600;padding:9px 14px;border-radius:12px;font-size:12.5px;margin-top:4px}
.gbp:hover{border-color:var(--ink-3)}
.gbp .g b:nth-child(1){color:#4285F4}.gbp .g b:nth-child(2){color:#EA4335}.gbp .g b:nth-child(3){color:#FBBC05}.gbp .g b:nth-child(4){color:#4285F4}.gbp .g b:nth-child(5){color:#34A853}.gbp .g b:nth-child(6){color:#EA4335}
.foot-bottom{border-top:1px solid var(--line);padding-top:22px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:var(--ink-3);font-size:12px;letter-spacing:-.01em}
.foot-bottom .credit a{color:var(--ink-2)}.foot-bottom .credit a:hover{color:var(--accent)}
@media(max-width:760px){.foot-top{grid-template-columns:1fr 1fr;gap:28px}}

/* ── pricing calculator ── */
.calc{display:grid;grid-template-columns:1.4fr 1fr;background:#fff;border:1px solid var(--line-soft);border-radius:30px;overflow:hidden;box-shadow:0 34px 80px -46px rgba(0,0,0,.28)}
.calc-controls{padding:clamp(24px,3vw,40px)}
.cblock{margin-bottom:30px}
.cblock:last-child{margin-bottom:0}
.clabel{font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-.01em;margin-bottom:13px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.clabel .cval{color:var(--accent);font-weight:600}
.clabel .cnote{color:var(--ink-3);font-weight:500;font-size:12px}
.cdesc{font-size:13.5px;color:var(--ink-2);margin-top:12px;letter-spacing:-.01em;line-height:1.5;min-height:20px}
.cmicro{font-size:12px;color:var(--ink-3);margin-top:12px;letter-spacing:-.01em;line-height:1.5}
.seg{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;background:#ececf0;border-radius:13px;padding:4px}
.seg button{border:none;background:none;border-radius:9px;padding:11px 6px;font-family:inherit;font-size:13.5px;font-weight:500;color:var(--ink);cursor:pointer;transition:.22s var(--ease);letter-spacing:-.015em}
.seg button.on{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.13),0 3px 8px rgba(0,0,0,.06);font-weight:600}
.slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:6px;
  background:linear-gradient(90deg,var(--accent) var(--fill,18%),#e2e2e7 var(--fill,18%));outline:none;margin:8px 0 16px}
.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:26px;height:26px;border-radius:50%;background:#fff;border:.5px solid rgba(0,0,0,.04);box-shadow:0 1px 4px rgba(0,0,0,.22),0 5px 12px rgba(0,0,0,.12);cursor:grab}
.slider::-webkit-slider-thumb:active{cursor:grabbing}
.slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#fff;border:.5px solid rgba(0,0,0,.1);box-shadow:0 1px 4px rgba(0,0,0,.22);cursor:grab}
.presets{display:flex;flex-wrap:wrap;gap:8px}
.presets button,.addons button{border:1px solid var(--line);background:#fff;border-radius:980px;padding:9px 15px;font-family:inherit;font-size:13.5px;font-weight:500;color:var(--ink);cursor:pointer;transition:.18s var(--ease);letter-spacing:-.01em}
.presets button:hover,.addons button:hover{border-color:var(--ink-3)}
.presets button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.freq{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.freq button{border:1.5px solid var(--line);background:#fff;border-radius:15px;padding:14px 6px;font-family:inherit;cursor:pointer;transition:.18s var(--ease);text-align:center}
.freq button:hover{border-color:var(--ink-3)}
.freq button.on{border-color:var(--accent);background:var(--mint-1)}
.freq .fq-l{font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.02em}
.freq .fq-s{font-size:11.5px;font-weight:600;margin-top:4px;color:var(--accent)}
.freq button:not(.on) .fq-s{color:var(--ink-3)}
.freq .fq-n{font-size:11px;color:var(--ink-3);margin-top:2px}
.addons{display:flex;flex-wrap:wrap;gap:9px}
.addons button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.addons button .px{opacity:.6;font-weight:400}
.addons button.on .px{opacity:.9}
.calc-price{background:linear-gradient(172deg,#f6f8f8,#eef2f2);border-left:1px solid var(--line-soft);display:flex;flex-direction:column;justify-content:center;padding:clamp(26px,3vw,40px)}
.cp-label{font-size:13px;font-weight:600;color:var(--ink-2);letter-spacing:-.01em}
.cp-big{display:flex;align-items:baseline;gap:8px;margin:9px 0 8px}
.cp-big #priceNum{font-size:clamp(46px,6vw,62px);font-weight:600;letter-spacing:-.045em;line-height:1;
  background:linear-gradient(120deg,var(--accent),#38a8e5);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.cp-unit{font-size:16px;font-weight:500;color:var(--ink-2)}
.cp-save{align-self:flex-start;font-size:12.5px;font-weight:600;color:#0a7c4a;background:#e3f7ec;border-radius:980px;padding:6px 13px;margin-bottom:18px}
.cp-save:empty{display:none;margin:0}
.cp-break{border-top:1px solid rgba(0,0,0,.08);padding-top:15px;margin-bottom:20px}
.cp-row{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;color:var(--ink-2);padding:5px 0;letter-spacing:-.01em}
.cp-row .v{color:var(--ink);font-weight:500;white-space:nowrap}
.cp-row.disc .v{color:#0a7c4a}
.cp-row.total{border-top:1px solid rgba(0,0,0,.08);margin-top:8px;padding-top:12px;font-size:15.5px;color:var(--ink);font-weight:600}
.cp-row.total .v{font-size:18px;font-weight:700}
.cp-sub{font-size:12px;color:var(--ink-3);margin-top:6px;letter-spacing:-.01em}
.cp-cta{width:100%;margin-bottom:12px}
.cp-fine{font-size:11.5px;color:var(--ink-3);line-height:1.55;letter-spacing:-.01em}
@media(max-width:860px){.calc{grid-template-columns:1fr}.calc-price{border-left:none;border-top:1px solid var(--line-soft)}}
@media(max-width:560px){.seg{grid-template-columns:1fr 1fr}.freq{grid-template-columns:1fr 1fr}}

/* ── mobile sticky bar ── */
.mobile-bar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;background:rgba(255,255,255,.86);
  backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  border-top:1px solid var(--line-soft);padding:11px 16px calc(11px + env(safe-area-inset-bottom));gap:11px}
.mobile-bar .btn{flex:1;padding:13px}

/* ── scroll reveal ── */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.spark{animation:none}}

@media(max-width:820px){
  .nav-links,.nav-phone{display:none}
  .nav-right{margin-left:auto}
  .burger{display:flex}
}
@media(max-width:560px){
  .nav-mini{display:none}
  .mobile-bar{display:flex}
  body{padding-bottom:74px}
}

/* ══════════════════════════════════════════════════════════
   DEPTH + MOTION, 3D shadows, tilt, reveal, count-up, alive bg
   (added in v3; respects prefers-reduced-motion)
   ══════════════════════════════════════════════════════════ */
:root{
  --sh-1:0 1px 2px rgba(13,42,71,.05),0 2px 6px rgba(13,42,71,.05);
  --sh-2:0 5px 14px -6px rgba(13,42,71,.10),0 16px 34px -14px rgba(13,42,71,.16);
  --sh-3:0 12px 28px -12px rgba(13,42,71,.14),0 34px 66px -22px rgba(13,42,71,.22);
  --sh-4:0 22px 44px -18px rgba(13,42,71,.18),0 54px 100px -34px rgba(13,42,71,.30);
  --sh-accent:0 14px 34px -12px rgba(30,111,184,.55);
}

/* layered, dimensional shadows on every card surface */
.tile{box-shadow:var(--sh-2)}
.tile:hover{box-shadow:var(--sh-4)}
.tile.feat{box-shadow:0 30px 62px -26px rgba(15,76,129,.62),0 12px 26px -14px rgba(15,76,129,.42)}
.tile.feat:hover{box-shadow:0 44px 90px -30px rgba(15,76,129,.7),0 16px 32px -14px rgba(15,76,129,.5)}
.review{box-shadow:var(--sh-2)}
.review:hover{box-shadow:var(--sh-3)}
.form{box-shadow:var(--sh-3)}
.calc{box-shadow:var(--sh-4)}
.stage{box-shadow:0 50px 100px -44px rgba(15,76,129,.6),0 20px 44px -22px rgba(15,76,129,.4)}
.glass{box-shadow:0 24px 46px -22px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.4)}
.btn-fill,.btn-dark{box-shadow:var(--sh-accent);position:relative;overflow:hidden}
.btn-dark{box-shadow:0 14px 30px -12px rgba(29,29,31,.5)}
.btn-fill:hover,.btn-dark:hover{box-shadow:0 20px 44px -14px rgba(30,111,184,.62)}
.nav-mini{box-shadow:0 6px 16px -6px rgba(30,111,184,.5)}
.cp-cta{box-shadow:var(--sh-accent)}
.freq button.on,.presets button.on,.addons button.on{box-shadow:0 8px 18px -8px rgba(30,111,184,.5)}
.seg button.on{box-shadow:0 1px 3px rgba(0,0,0,.14),0 6px 14px -6px rgba(0,0,0,.18)}
.step .num{box-shadow:0 10px 22px -10px rgba(30,111,184,.5)}
header.scrolled{box-shadow:0 4px 24px -12px rgba(13,42,71,.22)}
header{transition:box-shadow .3s var(--ease),background .3s var(--ease)}

/* button shine sweep */
.btn-fill::after,.btn-dark::after,.cp-cta::after{content:'';position:absolute;top:0;left:-130%;width:55%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);transform:skewX(-18deg);transition:left .65s var(--ease);pointer-events:none}
.btn-fill:hover::after,.btn-dark:hover::after,.cp-cta:hover::after{left:150%}
.btn:active{transform:scale(.97)}

/* richer reveal (adds a little scale for depth) */
.reveal{transform:translateY(30px) scale(.985)}
.reveal.in{transform:none}
/* staggered children */
.stagger>*{opacity:0;transform:translateY(24px) scale(.99);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.stagger>*.in{opacity:1;transform:none}

/* 3D pointer tilt + glare */
[data-tilt]{transform-style:preserve-3d;transition:transform .5s var(--ease),box-shadow .45s var(--ease);will-change:transform}
[data-tilt] .glare{position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .35s var(--ease);mix-blend-mode:soft-light;z-index:3}

/* alive background blobs */
.blob{position:absolute;border-radius:50%;filter:blur(64px);opacity:.55;z-index:0;pointer-events:none;will-change:transform}
.blob.b-teal{background:radial-gradient(circle,#6fb9e6,transparent 70%)}
.blob.b-mint{background:radial-gradient(circle,#c2e0f6,transparent 70%)}
.blob.b-sky{background:radial-gradient(circle,#7fc4f5,transparent 70%)}
@keyframes drift{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(34px,-26px) scale(1.1)}66%{transform:translate(-26px,20px) scale(.94)}}
.hero{position:relative;overflow:hidden}
.hero>.wrap,.hero-stage,.hero .tiny{position:relative;z-index:1}

@media(prefers-reduced-motion:reduce){
  .blob{animation:none!important}
  .btn-fill::after,.btn-dark::after,.cp-cta::after{display:none}
  [data-tilt]{transition:none}
  .spark{animation:none}
}

/* ══════════════════════════════════════════════════════════
   SHARED PAGE SCAFFOLDING, About / Services / Pricing / Reviews / Contact
   ══════════════════════════════════════════════════════════ */
.nav-links a.active{color:var(--ink);font-weight:600}
.page-hero{padding:clamp(64px,9vw,120px) 0 clamp(28px,4vw,52px);text-align:center;position:relative;overflow:hidden}
.page-hero .kicker{margin-bottom:12px}
.page-hero h1{font-size:clamp(38px,6.6vw,72px);letter-spacing:-.04em;line-height:1.02;margin-bottom:20px}
.page-hero h1 .grad{background:linear-gradient(120deg,var(--accent),#38a8e5 55%,#22b6ea);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.page-hero .sub{max-width:640px;margin:0 auto}
.page-hero>.wrap,.page-hero>.wrap-wide{position:relative;z-index:1}
.prose{max-width:720px;margin:0 auto}
.prose p{font-size:18px;color:var(--ink-2);margin-bottom:20px;letter-spacing:-.01em;line-height:1.66}
.prose p:last-child{margin-bottom:0}
.prose h3{font-size:clamp(23px,3vw,30px);letter-spacing:-.03em;margin:36px 0 14px;color:var(--ink)}
.prose strong{color:var(--ink);font-weight:600}
.card{background:#fff;border:1px solid var(--line-soft);border-radius:24px;padding:clamp(24px,3vw,38px);box-shadow:var(--sh-2)}
.card-soft{background:var(--bg-2);border-radius:24px;padding:clamp(24px,3vw,38px)}
/* alternating detailed service rows */
.svc-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,4vw,60px);align-items:center;margin-bottom:clamp(40px,6vw,84px)}
.svc-row:last-child{margin-bottom:0}
.svc-row:nth-child(even) .svc-media{order:2}
.svc-media{aspect-ratio:4/3;border-radius:26px;background:linear-gradient(160deg,#0f4c81,#1e6fb8 55%,#6fb9e6);display:grid;place-items:center;font-size:clamp(60px,10vw,112px);box-shadow:var(--sh-3);position:relative;overflow:hidden}
.svc-row h3{font-size:clamp(26px,3.4vw,40px);letter-spacing:-.03em;margin-bottom:12px}
.svc-row .lede{font-size:17px;color:var(--ink-2);line-height:1.6;margin-bottom:18px}
.chk{list-style:none;display:grid;gap:11px}
.chk li{position:relative;padding-left:30px;font-size:15.5px;color:var(--ink);letter-spacing:-.01em;line-height:1.5}
.chk li::before{content:'✓';position:absolute;left:0;top:0;width:21px;height:21px;border-radius:50%;background:var(--mint-1);color:var(--accent);font-size:12px;display:grid;place-items:center;font-weight:700}
@media(max-width:760px){.svc-row{grid-template-columns:1fr;gap:22px}.svc-row:nth-child(even) .svc-media{order:0}}
/* contact layout */
.contact-grid{display:grid;grid-template-columns:1fr 1.12fr;gap:clamp(34px,5vw,64px);align-items:start}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr;gap:36px}}
.info-row{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line-soft)}
.info-row:last-child{border-bottom:none}
.info-row .ic{width:42px;height:42px;border-radius:12px;background:var(--mint-1);color:var(--accent);display:grid;place-items:center;font-size:19px;flex-shrink:0;box-shadow:var(--sh-1)}
.info-row .k{font-size:12.5px;color:var(--ink-3);letter-spacing:-.01em}
.info-row .v{font-size:16.5px;font-weight:600;letter-spacing:-.01em;margin-top:2px}
.info-row .v a{color:var(--accent)}
/* simple package cards */
.pkgs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:820px){.pkgs{grid-template-columns:1fr}}
.pkg{background:#fff;border:1px solid var(--line-soft);border-radius:22px;padding:28px;box-shadow:var(--sh-2)}
.pkg.hot{border-color:rgba(30,111,184,.4);box-shadow:var(--sh-3)}
.pkg .pk-n{font-size:19px;font-weight:600;letter-spacing:-.02em}
.pkg .pk-p{font-size:34px;font-weight:600;letter-spacing:-.04em;margin:10px 0 4px}
.pkg .pk-p small{font-size:15px;color:var(--ink-3);font-weight:500}
.pkg .pk-d{font-size:14px;color:var(--ink-2);margin-bottom:16px}

/* ── mobile live-price bar: keeps the total visible while dragging the slider ── */
.mobile-bar{transition:transform .35s var(--ease)}
.calc-bar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:96;align-items:center;gap:12px;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.93);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  border-top:1px solid var(--line-soft);box-shadow:0 -12px 34px -16px rgba(13,42,71,.3);
  transform:translateY(120%);transition:transform .38s var(--ease)}
.calc-bar .cb-price{display:flex;flex-direction:column;line-height:1.12;flex:1;min-width:0}
.calc-bar .cb-label{font-size:11px;color:var(--ink-3);font-weight:500;letter-spacing:-.01em}
.calc-bar .cb-amt{font-size:25px;font-weight:600;letter-spacing:-.035em;white-space:nowrap;
  background:linear-gradient(120deg,var(--accent),#38a8e5);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.calc-bar .cb-unit{font-size:12px;font-weight:500;color:var(--ink-2);-webkit-text-fill-color:var(--ink-2);margin-left:4px}
.calc-bar .cb-book{flex-shrink:0;padding:12px 24px}
@media(max-width:560px){
  .calc-bar{display:flex}
  body.calc-inview .calc-bar{transform:none}
  body.calc-inview .mobile-bar{transform:translateY(120%)}
}

/* ══════════════════════════════════════════════════════════
   AUDIT FIXES v4, a11y (contrast, focus, motion), glare clip,
   tap targets, anchor offset, trust badges
   ══════════════════════════════════════════════════════════ */
:root{
  --ink-3:#6b6b72;          /* was #86868b, now AA on white for small text */
  --accent-ink:#155a91;     /* darker teal for SMALL text/links (AA on white) */
  --accent-btn:#155f9c;     /* darker teal for solid button fills (stronger white contrast) */
}
/* anchor jumps clear the sticky header */
html{scroll-padding-top:72px}
@media(max-width:560px){html{scroll-padding-top:62px}}

/* glare overlay must clip to each tilt card's rounded corners */
.pillar,.review,.pkg,.card,.card-soft{position:relative;overflow:hidden}

/* small teal text/links → AA-compliant darker teal */
.kicker,.tlink,.tlink .chev{color:var(--accent-ink)}
.tile .price{color:var(--accent-ink)}
.tile.feat .price{color:#fff}
.quote-perk a,.info-row .v a,.faq summary .plus{color:var(--accent-ink)}
.foot-col a:hover,.news-it a:hover,.nav-links a:hover{color:var(--accent-ink)}
/* solid buttons → darker teal + heavier text for legibility on the fill */
.btn{font-weight:600}
.btn-fill,.nav-mini,.cp-cta,.calc-bar .btn-fill{background:var(--accent-btn)}
.btn-fill:hover,.nav-mini:hover,.cp-cta:hover,.calc-bar .btn-fill:hover{background:#124f82}
.presets button.on,.addons button.on,.chips span:hover{background:var(--accent-btn);border-color:var(--accent-btn)}

/* visible keyboard focus everywhere (inputs/slider/buttons/links) */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,
summary:focus-visible,[tabindex]:focus-visible,.seg button:focus-visible,.freq button:focus-visible,
.presets button:focus-visible,.addons button:focus-visible{outline:2.5px solid var(--accent-ink);outline-offset:2px;border-radius:8px}
.slider:focus-visible{outline:2.5px solid var(--accent-ink);outline-offset:4px}

/* mobile tap targets ≥ ~44px */
@media(max-width:560px){
  .presets button,.addons button{padding:12px 16px}
  .seg button{padding:14px 6px}
  .chips span{padding:12px 18px}
  .faq summary{padding:22px 4px}
}

/* reusable trust-badge strip (near hero CTA + above form submit) */
.trust-row{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin-top:24px}
.trust{font-size:13px;font-weight:600;color:var(--ink);background:var(--bg-2);border-radius:980px;padding:8px 15px;letter-spacing:-.01em;box-shadow:var(--sh-1)}
.form .trust-row{margin:0 0 18px}
.form .trust{font-size:12px;padding:7px 12px}

/* placeholder Google buttons shouldn't act like real links until the profile is live */
.gbp[href="#"]{pointer-events:none;opacity:.85}

/* complete prefers-reduced-motion coverage */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal,.stagger>*{opacity:1!important;transform:none!important;transition:none!important}
  .calc-bar,.mobile-bar,header{transition:none}
  *{animation-duration:.001ms!important;animation-iteration-count:1!important}
}

/* 5-up pillar grid (services "what's included"), no orphaned card */
.pillars.five{grid-template-columns:repeat(5,1fr)}
@media(max-width:1000px){.pillars.five{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.pillars.five{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.pillars.five{grid-template-columns:1fr}}


/* ══════════════════════════════════════════════════════════
   FIRE + ICE BRAND  (matches the Besties logo: blue snowflake + red flame)
   Blue stays primary; red/orange is the heat accent.
   ══════════════════════════════════════════════════════════ */
:root{
  --heat:#d8431f; --heat-2:#ff7e3a; --heat-deep:#b0330f; --ice:#22b6ea;
}

/* ── LIGHT fire+ice hero (real logo featured; ice glow left, ember glow right) ── */
.hero-fi{position:relative;overflow:hidden;isolation:isolate;text-align:center;
  padding:clamp(40px,6vw,76px) 0 clamp(56px,8vw,96px);
  background:
    radial-gradient(115% 80% at 12% 8%, rgba(96,168,232,.20), transparent 55%),
    radial-gradient(115% 80% at 88% 6%, rgba(226,84,58,.16), transparent 55%),
    radial-gradient(120% 90% at 50% 120%, rgba(96,168,232,.10), transparent 60%),
    linear-gradient(180deg,#fbfdff,#ffffff 60%)}
.hero-fi::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg, rgba(120,180,235,.10), transparent 34%, transparent 66%, rgba(232,96,66,.09))}
.hero-fi-inner{position:relative;z-index:2;max-width:860px}
.hero-fi .hero-logo{width:min(320px,72%);height:auto;margin:0 auto clamp(18px,3vw,30px);
  filter:drop-shadow(0 18px 40px rgba(20,60,110,.16))}
.hero-fi .kicker{margin-bottom:12px}
.hero-fi .display{margin-bottom:20px}
.hero-fi .grad{background:linear-gradient(100deg,var(--accent) 4%,#4aa3e6 34%,#ff8a44 74%,var(--heat));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero-fi .sub{max-width:620px;margin:0 auto 30px}
.hero-fi .cta-row{justify-content:center}
.hero-fi .trust-row{justify-content:center;margin-top:26px}
/* drifting snow (left) + rising embers (right) */
.fi-particles{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.fi-particles span{position:absolute;top:-6%;font-size:15px;line-height:1;will-change:transform,opacity}
.fi-particles .flake{color:#5fa8e8;animation:fiFall linear infinite;filter:drop-shadow(0 0 9px rgba(95,168,232,.6))}
.fi-particles .ember{width:6px;height:6px;border-radius:50%;bottom:-6%;top:auto;
  background:radial-gradient(circle,#ffcf8a,#ff6a2c 70%);box-shadow:0 0 8px rgba(255,120,50,.7);animation:fiRise linear infinite}
@keyframes fiFall{0%{transform:translateY(-10vh) rotate(0);opacity:0}10%{opacity:1}90%{opacity:.9}100%{transform:translateY(105vh) rotate(220deg);opacity:0}}
@keyframes fiRise{0%{transform:translateY(0) scale(.85);opacity:0}14%{opacity:1}76%{opacity:1}100%{transform:translateY(-86vh) scale(.6);opacity:0}}
@media(prefers-reduced-motion:reduce){.fi-particles{display:none}}

/* ── heat-accented "Furnace & heating" bento tile → fire counterpart to the blue install tile ── */
.tile.t-c{background:linear-gradient(165deg,#8f240f,#c9381b 56%,#ff8a44);color:#fff}
.tile.t-c p{color:rgba(255,255,255,.92)}
.tile.t-c .price{color:#fff;opacity:.95}
.tile.t-c:hover{background:linear-gradient(165deg,#8f240f,#c9381b 56%,#ff8a44);filter:brightness(1.05);transform:translateY(-3px)}

/* ── heat accent utilities (emergency / heating contexts) ── */
.btn-heat{background:linear-gradient(120deg,var(--heat),var(--heat-2));color:#fff}
.btn-heat:hover{background:linear-gradient(120deg,var(--heat-deep),var(--heat))}
.heat-ink{color:var(--heat)}

/* real logo icon used as the nav/footer brand mark (icon.png is ~2:1) */
.brand img.mark{width:auto;height:44px;object-fit:contain}
.foot-brand .brand img.mark{height:30px}

/* fire accent for the 24/7 emergency stat (fire+ice duality) */
.stat.heat .n{background:linear-gradient(120deg,var(--heat),var(--heat-2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* ══════════════════════════════════════════════════════════
   PREMIUM PASS, brand lockup + button depth (fire/ice)
   ══════════════════════════════════════════════════════════ */
/* logo + wordmark: aligned, balanced lockup */
.brand{gap:11px}
.brand img.mark{height:42px}
.wordmark{font-family:var(--font);font-size:23px;font-weight:800;letter-spacing:-.035em;line-height:1;color:var(--ink);white-space:nowrap}
.wordmark .wm-accent{background:linear-gradient(118deg,var(--accent),#41a5e6 46%,#ff8442);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:800}
.foot-brand .brand img.mark{height:30px}
.foot-brand .wordmark{font-size:19px}
@media(max-width:560px){.wordmark{font-size:21px}.brand img.mark{height:38px}}

/* buttons: gradient + soft depth + hover lift (looks less flat/blah) */
.btn-fill,.nav-mini,.cp-cta,.calc-bar .btn-fill{
  background:linear-gradient(135deg,#2f88d4,var(--accent) 52%,#17588f);
  box-shadow:0 10px 26px -10px rgba(30,111,184,.55)}
.btn-fill:hover,.nav-mini:hover,.cp-cta:hover,.calc-bar .btn-fill:hover{
  background:linear-gradient(135deg,#358fdd,#1e6fb8 52%,#134e80);
  box-shadow:0 16px 34px -12px rgba(30,111,184,.68);transform:translateY(-1px)}
.btn-heat{box-shadow:0 10px 26px -10px rgba(216,67,31,.5)}
.btn-heat:hover{box-shadow:0 16px 34px -12px rgba(216,67,31,.62);transform:translateY(-1px)}
.btn-dark{box-shadow:0 12px 30px -12px rgba(20,30,50,.5)}
@media(prefers-reduced-motion:reduce){.btn-fill:hover,.nav-mini:hover,.cp-cta:hover,.btn-heat:hover{transform:none}}


/* fire emoji rising on the right (mirrors the falling snowflakes on the left) */
.fi-particles .flame{top:auto;bottom:-6%;animation:fiRise linear infinite;filter:drop-shadow(0 0 9px rgba(255,110,40,.6))}

/* Comfort Credit line in the calculator breakdown (green positive) */
.cp-row.credit{color:#0f8a4d;font-weight:600}
.cp-row.credit .v{color:#0f8a4d}
