@font-face{font-family:"Montserrat";src:url(/fonts/montserrat-medium.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Montserrat";src:url(/fonts/montserrat-semibold.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Montserrat";src:url(/fonts/montserrat-bold.woff2) format("woff2");font-weight:700;font-display:swap}
:root{
  --navy:#0B3D91;--navy-deep:#072557;--ink:#050b18;--ink-2:#0a1428;
  --steel:#64748B;--slate:#CBD5E1;--light:#C7CCD3;--white:#fff;--warm:#f2c58a;
  --glass:rgba(7,20,46,.56);--line:rgba(203,213,225,.22);
  --r:14px;--pad:clamp(20px,4vw,56px);
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto;background:#050b18;color-scheme:dark}
body{margin:0;background:var(--ink);color:var(--white);font:500 17px/1.6 "Montserrat",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2{font-weight:700;letter-spacing:-.02em;line-height:1.05;margin:0 0 .4em}
h1{font-size:clamp(40px,6.4vw,92px)}
h2{font-size:clamp(28px,3.4vw,48px)}
p{margin:0 0 1em}
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;z-index:99;background:#fff;color:#000;padding:8px 12px;border-radius:8px}
:focus-visible{outline:3px solid var(--warm);outline-offset:3px}

/* header */
.top{position:fixed;inset:0 0 auto 0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:14px var(--pad);padding-top:max(14px,env(safe-area-inset-top));background:linear-gradient(rgba(5,11,24,.75),rgba(5,11,24,0))}
.brand{display:flex;min-height:44px;min-width:44px;position:relative;z-index:2;align-items:center;gap:10px;text-decoration:none;font-weight:600;font-size:15px;letter-spacing:.02em}
.top-cta{display:flex;gap:10px}
.show-sm{display:none}
@media (max-width:560px){.brand span{display:none}.hide-sm{display:none}.show-sm{display:inline}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border-radius:999px;font-weight:600;font-size:15px;text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:inherit;transition:transform .25s var(--ease),background .25s,border-color .25s}
.btn:hover{transform:translateY(-1px)}
.btn-solid{background:var(--white);color:var(--ink)}
.btn-solid:hover{background:var(--slate)}
.btn-ghost{background:rgba(255,255,255,.06);color:var(--white);border-color:rgba(255,255,255,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.btn-ghost:hover{border-color:#fff}
.btn-lg{min-height:52px;padding:14px 24px;font-size:16px}
.btn-block{width:100%}

/* scrolly */
.scrolly{position:relative}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:#000}
.poster img,#film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#film{opacity:0;transition:opacity .4s}
#film.on{opacity:1}
.poster.gone{visibility:hidden}
.shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(3,8,20,.42) 0%,rgba(3,8,20,.18) 34%,rgba(3,8,20,0) 58%)}
.cap{position:absolute;left:var(--pad);top:50%;width:min(520px,calc(100% - 2*var(--pad)));transform:translateY(-50%);opacity:0;visibility:hidden;will-change:opacity,transform}
.cap.vis{visibility:visible}
.cap-hero{width:min(640px,calc(100% - 2*var(--pad)))}
.cap-hero,.cap-result{opacity:1;visibility:visible}
.cap:not(.cap-hero):not(.cap-result){padding:26px 28px;border-radius:28px;isolation:isolate;
  background:linear-gradient(145deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.06) 42%,rgba(255,255,255,.03) 100%);
  border:1px solid rgba(255,255,255,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -1px 0 rgba(255,255,255,.08),inset 0 0 22px rgba(255,255,255,.05),0 18px 50px rgba(0,0,0,.28);
  backdrop-filter:blur(22px) saturate(1.8) brightness(.92);-webkit-backdrop-filter:blur(22px) saturate(1.8) brightness(.92);
  text-shadow:0 1px 12px rgba(0,0,0,.35)}
.cap:not(.cap-hero):not(.cap-result)::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;
  background:radial-gradient(120% 60% at 15% 0%,rgba(255,255,255,.22),rgba(255,255,255,0) 55%)}
.cap-result{opacity:0;visibility:hidden}
.eyebrow,.kicker{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:600;color:var(--slate);margin-bottom:14px}
.kicker{color:var(--warm)}
.lede{font-size:clamp(17px,1.5vw,21px);color:#e5e9f0;max-width:34ch}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 14px}
.fine{font-size:13px;color:var(--slate);letter-spacing:.04em}
.ticks{list-style:none;padding:0;margin:0}
.ticks li{padding:9px 0 9px 26px;border-top:1px solid var(--line);position:relative}
.ticks li::before{content:"";position:absolute;left:2px;top:19px;width:10px;height:2px;background:var(--warm)}
.step-line{min-height:3.2em}
.step-dots{list-style:none;padding:0;margin:8px 0 0;display:flex;gap:6px}
.step-dots li{flex:1;height:3px;border-radius:2px;background:rgba(203,213,225,.25);transition:background .3s}
.step-dots li.on{background:var(--warm)}

/* rail */
.rail{position:absolute;right:var(--pad);top:50%;transform:translateY(-50%);z-index:5;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.rail ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.rail button[data-go]{all:unset;cursor:pointer;display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.06em;color:rgba(255,255,255,.55);padding:4px 0;min-height:24px}
.rail button[data-go]::after{content:"";width:8px;height:8px;border-radius:50%;border:1px solid rgba(255,255,255,.6);transition:all .3s}
.rail button[data-go].on{color:#fff}
.rail button[data-go].on::after{background:var(--warm);border-color:var(--warm);transform:scale(1.25)}
.rail button[data-go]:focus-visible{outline:2px solid var(--warm);outline-offset:4px;border-radius:4px}
.loadbar{position:absolute;left:0;right:0;bottom:0;height:2px;background:transparent}
.loadbar span{display:block;height:100%;width:0;background:rgba(242,197,138,.7);transition:width .3s,opacity .6s}

@media (max-width:820px),(max-aspect-ratio:4/5){
  .rail{top:auto;bottom:16px;right:50%;transform:translateX(50%)}
  .rail ol{flex-direction:row;gap:12px}
  .rail button[data-go]{font-size:0;gap:0;min-width:24px;justify-content:center}
  .stage{background:var(--ink)}
  /* Phone: picture on top, caption underneath it, never overlapping */
  .stage{--fh:min(calc(100vw * .9),calc(100vh - 64px - 300px))}
  @supports (height:100svh){.stage{--fh:min(calc(100vw * .9),calc(100svh - 64px - 300px))}}
  /* Seam fix: the picture itself fades to transparent (mask) so its bottom edge always lands on the stage's ink
     background, whatever the canvas rounds to. The shade runs 2px past the picture and ends on solid ink. */
  .poster img,#film{top:64px;bottom:auto;height:var(--fh);transform:translateZ(0);
    -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 74%,rgba(0,0,0,.55) 88%,rgba(0,0,0,0) calc(100% - 2px));
    mask-image:linear-gradient(180deg,#000 0%,#000 74%,rgba(0,0,0,.55) 88%,rgba(0,0,0,0) calc(100% - 2px))}
  .shade{top:64px;bottom:auto;height:calc(var(--fh) + 2px);transform:translateZ(0);background:linear-gradient(180deg,var(--ink) 0%,rgba(5,11,24,0) 8%,rgba(5,11,24,0) 78%,rgba(5,11,24,.6) 90%,var(--ink) calc(100% - 3px),var(--ink) 100%)}
  .cap{top:calc(64px + var(--fh) + 10px);bottom:auto;transform:none}
  .cap:not(.cap-hero):not(.cap-result){padding:16px 18px;border-radius:22px}
  .cap:not(.cap-hero):not(.cap-result) h2{font-size:22px;margin-bottom:6px}
  .cap:not(.cap-hero):not(.cap-result) p{font-size:15px;line-height:1.45}
  .cap:not(.cap-hero):not(.cap-result) .kicker{margin-bottom:8px;font-size:11px}
  .cap:not(.cap-hero):not(.cap-result) .ticks li{padding:5px 0 5px 22px;font-size:15px}
  .cap:not(.cap-hero):not(.cap-result) .ticks li::before{top:15px}
  .cap:not(.cap-hero):not(.cap-result) .btn{margin-top:10px}
  .step-line{min-height:0}
  .cap-hero{top:auto}
  .cap-result{top:calc(64px + var(--fh) + 14px);bottom:auto}
  .cap-result h2{font-size:30px;line-height:1.15}
  .cap-result .ctas{margin:16px 0 0}
  .cap-hero{bottom:calc(52px + env(safe-area-inset-bottom))}
  .cap-hero .lede{font-size:16px}
  .cap-hero .ctas{margin:16px 0 10px}
  .rail{bottom:calc(16px + env(safe-area-inset-bottom))}
  h1{font-size:clamp(38px,11vw,56px)}
}

/* static steps */
.wrap{max-width:1160px;margin:0 auto;padding:0 var(--pad)}

.step-list{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;counter-reset:s}
.step-list li{counter-increment:s;padding:20px;border:1px solid var(--line);border-radius:var(--r);background:var(--ink-2)}
.step-list li::before{content:counter(s,decimal-leading-zero);display:block;color:var(--warm);font-weight:600;font-size:13px;letter-spacing:.12em;margin-bottom:6px}
.step-list b{display:block;font-size:18px;margin-bottom:4px}
.step-list span{color:var(--light);font-size:15px}

/* quote */
.quote{padding:96px 0;background:radial-gradient(120% 80% at 80% 0%,rgba(11,61,145,.45),transparent 60%),var(--ink)}
.quote-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,5vw,72px);align-items:start}
.quote-copy p{color:var(--light);max-width:42ch}
.callout a{color:#fff;font-weight:700}
.form{padding:28px;border-radius:18px;background:rgba(10,20,40,.7);border:1px solid rgba(203,213,225,.3);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{font-size:14px;font-weight:600;color:var(--slate)}
.opt{font-weight:500;color:var(--steel)}
input,select,textarea{font:500 16px/1.4 "Montserrat",system-ui,sans-serif;color:#fff;background:rgba(255,255,255,.06);border:1.5px solid rgba(203,213,225,.45);border-radius:10px;padding:12px 14px;min-height:48px;width:100%}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#CBD5E1 50%),linear-gradient(135deg,#CBD5E1 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat}
select option{color:#000}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--warm);box-shadow:0 0 0 3px rgba(242,197,138,.25)}
[aria-invalid=true]{border-color:#f87171}
.form-note{margin:12px 0 0;font-size:14px;color:var(--slate);min-height:1.4em}
@media (max-width:820px){.quote-grid{grid-template-columns:1fr}.field-row{grid-template-columns:1fr}}

/* footer */
.foot{padding:56px 0 calc(40px + env(safe-area-inset-bottom));border-top:1px solid var(--line);text-align:center}
.foot-inner{display:flex;flex-direction:column;align-items:center;gap:4px}
.foot img{margin-bottom:16px;width:224px;height:auto}
.foot a{text-decoration:none;font-weight:600}
.foot a:hover{text-decoration:underline}

@media (prefers-reduced-motion:reduce){*{transition:none!important}.btn:hover{transform:none}}

/* walkthrough arrows + swipe hint */
.step-arrow{all:unset;box-sizing:border-box;cursor:pointer;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.28);-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);transition:transform .2s,background .2s,opacity .3s}
.step-arrow:hover{background:rgba(255,255,255,.16)}
.step-arrow:active{transform:scale(.92)}
.step-arrow:focus-visible{outline:2px solid var(--warm);outline-offset:3px}
.step-arrow[disabled]{opacity:.25;pointer-events:none}
.step-arrow.next{animation:nudge 2.4s ease-in-out infinite}
.swipe-hint{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:0;color:rgba(255,255,255,.75);pointer-events:auto;cursor:pointer;background:none;border:0;font:inherit;padding:10px 22px;min-width:120px;min-height:56px;-webkit-tap-highlight-color:transparent;transition:opacity .4s}
.swipe-hint em{font-style:normal;font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-top:6px}
.swipe-hint .chev{width:14px;height:14px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);opacity:0;animation:chev 1.8s ease-in-out infinite}
.swipe-hint .chev+.chev{margin-top:-6px;animation-delay:.25s}
.swipe-hint.off,.rail.off .step-arrow.next{opacity:0}
.swipe-hint.off{pointer-events:none}
@keyframes chev{0%{opacity:0;transform:translateY(-6px) rotate(45deg)}40%{opacity:1}80%,100%{opacity:0;transform:translateY(8px) rotate(45deg)}}
@keyframes nudge{0%,70%,100%{transform:translateY(0)}80%{transform:translateY(4px)}90%{transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){.swipe-hint .chev{animation:none;opacity:1}.step-arrow.next{animation:none}}
@media (min-width:821px) and (min-aspect-ratio:4/5){.swipe-hint em::after{content:""}.swipe-hint em{font-size:0}.swipe-hint em::before{content:"Scroll";font-size:11px}}
@media (max-width:820px),(max-aspect-ratio:4/5){
  .rail{flex-direction:row;align-items:center;gap:14px}
  .swipe-hint{bottom:calc(84px + env(safe-area-inset-bottom))}
}

/* Apple-style liquid glass for the outline buttons and the walkthrough arrows (Will, 2026-10-26). */
.btn-ghost,.step-arrow{position:relative;isolation:isolate;overflow:hidden;color:#fff;
  background:linear-gradient(160deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,.08) 45%,rgba(255,255,255,.04) 100%);
  border:1px solid rgba(255,255,255,.34);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 -1px 1px rgba(255,255,255,.12),inset 0 0 14px rgba(255,255,255,.08),0 8px 24px rgba(0,0,0,.3);
  -webkit-backdrop-filter:blur(20px) saturate(1.9) brightness(1.05);backdrop-filter:blur(20px) saturate(1.9) brightness(1.05);
  text-shadow:0 1px 8px rgba(0,0,0,.3)}
.btn-ghost::before,.step-arrow::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;
  background:radial-gradient(110% 70% at 30% -10%,rgba(255,255,255,.38),rgba(255,255,255,0) 60%)}
.btn-ghost:hover,.step-arrow:hover{background:linear-gradient(160deg,rgba(255,255,255,.3) 0%,rgba(255,255,255,.12) 45%,rgba(255,255,255,.06) 100%);border-color:rgba(255,255,255,.5)}
.step-arrow{box-sizing:border-box;border-radius:50%}
/* "What we fix" items as small glass tiles inside the caption card */
.cap .ticks{display:grid;gap:8px;margin-top:6px}
.cap .ticks li{border:1px solid rgba(255,255,255,.26);border-radius:14px;padding:9px 14px 9px 32px;
  background:linear-gradient(160deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.05) 60%,rgba(255,255,255,.03) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -1px 1px rgba(255,255,255,.08),0 4px 14px rgba(0,0,0,.18);
  -webkit-backdrop-filter:blur(14px) saturate(1.7);backdrop-filter:blur(14px) saturate(1.7)}
.cap .ticks li::before{left:14px;top:50%;margin-top:-1px}
@media (max-aspect-ratio:4/5){
  .cap:not(.cap-hero):not(.cap-result) .ticks{gap:6px}
  .cap:not(.cap-hero):not(.cap-result) .ticks li{padding:6px 12px 6px 30px;font-size:15px}
  .cap:not(.cap-hero):not(.cap-result) .ticks li::before{top:50%}
}

/* Poppier walkthrough arrows (Will, 2026-10-26): bigger, warm glow ring, springy tap pop, bouncing chevron. */
.step-arrow{width:52px;height:52px;transition:transform .35s cubic-bezier(.34,1.8,.5,1),box-shadow .3s,border-color .3s,opacity .3s}
.step-arrow svg{transition:transform .35s cubic-bezier(.34,1.8,.5,1)}
.step-arrow.next,.step-arrow.prev{animation:arrowGlow 2.2s ease-in-out infinite;border-color:rgba(244,196,120,.7)}
.step-arrow.prev{animation-delay:1.1s}
.step-arrow.next svg{animation:chevBounce 2.2s cubic-bezier(.34,1.6,.5,1) infinite}
.step-arrow.prev svg{animation:chevBounceUp 2.2s cubic-bezier(.34,1.6,.5,1) 1.1s infinite}
.step-arrow:hover{transform:scale(1.08)}
.step-arrow:active{transform:scale(.86)}
.step-arrow.pop{animation:arrowPop .45s cubic-bezier(.34,1.8,.5,1)}
.step-arrow[disabled]{animation:none;box-shadow:none}
.step-arrow[disabled] svg{animation:none}
@keyframes arrowGlow{0%,100%{box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 8px 24px rgba(0,0,0,.3),0 0 0 0 rgba(244,196,120,.55)}
  60%{box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 8px 24px rgba(0,0,0,.3),0 0 0 12px rgba(244,196,120,0)}}
@keyframes chevBounce{0%,55%,100%{transform:translateY(0)}68%{transform:translateY(5px)}80%{transform:translateY(-1px)}}
@keyframes chevBounceUp{0%,55%,100%{transform:translateY(0)}68%{transform:translateY(-5px)}80%{transform:translateY(1px)}}
@keyframes arrowPop{0%{transform:scale(1)}35%{transform:scale(.8)}70%{transform:scale(1.15)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.step-arrow,.step-arrow svg{animation:none!important}}

/* Reviews, very bottom above the footer (Will, 2026-10-26). Glass cards; grid on desktop, swipe row on phone. */
.reviews{padding:88px 0 96px;background:radial-gradient(110% 70% at 15% 0%,rgba(11,61,145,.35),transparent 60%),var(--ink)}
.reviews h2{font-size:clamp(28px,4vw,44px);margin-bottom:32px}
.rev-track{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.rev{margin:0;padding:22px 22px 20px;border-radius:22px;display:flex;flex-direction:column;gap:14px;
  border:1px solid rgba(255,255,255,.22);
  background:linear-gradient(160deg,rgba(255,255,255,.12) 0%,rgba(255,255,255,.04) 55%,rgba(255,255,255,.02) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 10px 30px rgba(0,0,0,.25);
  -webkit-backdrop-filter:blur(18px) saturate(1.6);backdrop-filter:blur(18px) saturate(1.6)}
.rev-top{display:flex;align-items:center;justify-content:space-between}
.rev-stars{display:flex;gap:2px;color:var(--warm)}
.rev-sample{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);border:1px solid rgba(255,255,255,.25);border-radius:99px;padding:3px 9px}
.rev blockquote{margin:0;color:var(--light);font-size:16px;line-height:1.55;flex:1}
.rev figcaption{display:flex;flex-direction:column;gap:2px;font-size:14px}
.rev figcaption strong{color:#fff;font-weight:600}
.rev figcaption span{color:var(--steel)}
@media (max-width:820px){
  .rev-track{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:84%;overflow-x:auto;scroll-snap-type:x mandatory;
    margin:0 calc(var(--pad) * -1);padding:4px var(--pad) 10px;scroll-padding:0 var(--pad);-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .rev-track::-webkit-scrollbar{display:none}
  .rev{scroll-snap-align:start}
}

/* Crystal clear floating glass for every card (Will, 2026-10-26): near-clear fill, bright gradient rim,
   specular sheen, soft edge glow and a deep float shadow. Shared by captions, tiles, reviews, quote and estimator cards. */
.cap:not(.cap-hero):not(.cap-result),.rev,.form,.est-glass-card{isolation:isolate;
  background:linear-gradient(150deg,rgba(255,255,255,.10) 0%,rgba(255,255,255,.025) 38%,rgba(255,255,255,0) 60%,rgba(255,255,255,.05) 100%)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75),inset 1px 0 0 rgba(255,255,255,.18),inset 0 -1px 0 rgba(255,255,255,.12),
    inset 0 0 30px rgba(255,255,255,.06),0 24px 60px -12px rgba(0,0,0,.55),0 6px 18px rgba(0,0,0,.22)!important;
  -webkit-backdrop-filter:blur(10px) saturate(1.9) brightness(1.12)!important;backdrop-filter:blur(10px) saturate(1.9) brightness(1.12)!important}
.cap:not(.cap-hero):not(.cap-result)::after,.rev::after,.form::after,.est-glass-card::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.2px;pointer-events:none;z-index:2;
  background:linear-gradient(135deg,rgba(255,255,255,.85) 0%,rgba(255,255,255,.15) 30%,rgba(255,255,255,.04) 55%,rgba(255,255,255,.35) 85%,rgba(255,255,255,.7) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.cap:not(.cap-hero):not(.cap-result)::before,.rev::before,.form::before,.est-glass-card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;
  background:radial-gradient(90% 55% at 12% -8%,rgba(255,255,255,.26),rgba(255,255,255,0) 60%),radial-gradient(70% 40% at 100% 110%,rgba(140,180,255,.10),rgba(255,255,255,0) 65%)}
.cap .ticks li{background:linear-gradient(150deg,rgba(255,255,255,.10),rgba(255,255,255,.02) 60%,rgba(255,255,255,.04))!important;border-color:rgba(255,255,255,.22)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 6px 16px -6px rgba(0,0,0,.4)!important;-webkit-backdrop-filter:blur(6px) saturate(1.8) brightness(1.1)!important;backdrop-filter:blur(6px) saturate(1.8) brightness(1.1)!important}
.rev,.form,.est-glass-card{position:relative}
.cap:not(.vis),.cap:not(.vis) *{pointer-events:none!important}
.rev-sample{font-size:9px!important;padding:2px 6px!important;opacity:.45!important;letter-spacing:.08em!important;border-color:rgba(255,255,255,.18)!important}
/* No double-tap zoom (pinch zoom still works) */
html,body,a,button,.step-arrow,.rail,.swipe-hint,.btn{touch-action:manipulation}
/* Phone: every glass card sits on one line just above the arrow bar (Will, 2026-10-26) */
@media (max-width:820px),(max-aspect-ratio:4/5){.cap:not(.cap-hero):not(.cap-result){top:auto!important;bottom:calc(80px + env(safe-area-inset-bottom))!important}}
.rev-links{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:28px auto 0}.rev-google{display:inline-flex;margin:0}.rev-google[hidden]{display:none}.rev-yelp{display:inline-flex;margin:0}

/* SEO pass (2026-10-26): crawlable content sections on home and the subpages, same glass language. */
.cap-hero h1{font-size:clamp(40px,4.9vw,70px);line-height:1.04;max-width:13ch}
@media (max-width:820px),(max-aspect-ratio:4/5){.cap-hero h1{font-size:clamp(32px,9vw,44px)}}
.sec-lede{color:var(--light);max-width:62ch;font-size:clamp(16px,1.3vw,19px)}
.sec-lede a,.prose a,.how-copy a{color:#fff;text-underline-offset:3px;text-decoration-color:rgba(242,197,138,.7)}
/* Buttons inside prose keep their own colors (the prose link color made solid CTA text white on white). */
.sec-lede a.btn,.prose a.btn,.how-copy a.btn{text-decoration:none}.sec-lede a.btn-solid,.prose a.btn-solid,.how-copy a.btn-solid,.prose button.btn-solid{color:var(--ink)}
.svc,.how,.areas,.faq,.sub-cta{padding:88px 0}
.svc{background:radial-gradient(110% 70% at 85% 0%,rgba(11,61,145,.32),transparent 60%),var(--ink)}
.how{background:linear-gradient(180deg,var(--ink),var(--ink-2))}
.areas{background:radial-gradient(100% 70% at 10% 10%,rgba(11,61,145,.3),transparent 60%),var(--ink-2)}
.faq{background:var(--ink)}
.svc-grid,.area-cards,.faq-grid{display:grid;gap:18px;margin-top:32px}
.svc-grid{grid-template-columns:repeat(4,1fr)}
.area-cards{grid-template-columns:repeat(3,1fr)}
.faq-grid{grid-template-columns:repeat(2,1fr);margin-top:10px}
.card{position:relative;isolation:isolate;display:block;padding:24px;border-radius:22px;color:#fff;text-decoration:none;
 background:linear-gradient(150deg,rgba(255,255,255,.10) 0%,rgba(255,255,255,.025) 38%,rgba(255,255,255,0) 60%,rgba(255,255,255,.05) 100%);
 border:1px solid rgba(255,255,255,.14);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.75),inset 1px 0 0 rgba(255,255,255,.18),inset 0 -1px 0 rgba(255,255,255,.12),inset 0 0 30px rgba(255,255,255,.06),0 24px 60px -12px rgba(0,0,0,.55),0 6px 18px rgba(0,0,0,.22);
 -webkit-backdrop-filter:blur(10px) saturate(1.9) brightness(1.12);backdrop-filter:blur(10px) saturate(1.9) brightness(1.12);
 transition:transform .3s var(--ease),border-color .3s}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;
 background:radial-gradient(90% 55% at 12% -8%,rgba(255,255,255,.2),rgba(255,255,255,0) 60%),radial-gradient(70% 40% at 100% 110%,rgba(140,180,255,.10),rgba(255,255,255,0) 65%)}
a.card:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.32)}
.card h3,.card h2{font-size:20px;letter-spacing:-.01em;line-height:1.25;margin:0 0 10px}
.card p{color:var(--light);font-size:15px;line-height:1.6;margin:0}
.card .kicker{display:block;margin-bottom:8px}
.svc-card .more{display:inline-block;margin-top:14px;font-size:13px;font-weight:600;color:var(--warm);letter-spacing:.04em}
.how-grid{display:grid;grid-template-columns:.9fr 1.3fr;gap:clamp(28px,5vw,72px);align-items:start}
.how-copy p{color:var(--light);max-width:64ch}
.faq-item h2{font-size:19px}
.foot-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 40px;margin:18px 0 10px}
.foot-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px}
.foot-nav a{font-weight:500;font-size:14px;color:var(--slate)}
/* Subpages */
.top-solid{background:rgba(5,11,24,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.page{padding-top:76px}
.sub-hero{padding:72px 0 56px;background:radial-gradient(110% 80% at 80% 0%,rgba(11,61,145,.45),transparent 60%),var(--ink)}
.sub-hero h1{font-size:clamp(36px,5vw,64px);max-width:18ch}
.sub-hero .lede{max-width:60ch}
.sub-hero.nf{min-height:70vh}
.crumbs{font-size:13px;color:var(--slate);margin-bottom:22px}
.crumbs a{color:var(--slate)}
.prose-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(28px,5vw,64px);padding-top:56px;padding-bottom:24px}
.prose .block{margin-bottom:40px}
.prose h2{font-size:clamp(24px,2.4vw,32px);line-height:1.2}
.prose p{color:var(--light);max-width:68ch}
.ticks.plain li{color:var(--light)}
.side{position:sticky;top:96px;align-self:start}
.see-also{margin-bottom:28px}
.see-also h3{font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:var(--warm);margin:0 0 10px}
.see-also ul{list-style:none;margin:0;padding:0}
.see-also li{border-top:1px solid var(--line)}
.see-also a{display:block;padding:10px 0;text-decoration:none;font-weight:600;font-size:15px}
.see-also a:hover{color:var(--warm)}
.see-row{display:grid;grid-template-columns:repeat(2,minmax(0,280px));gap:32px;margin-top:40px}
.cta-card{padding:clamp(24px,4vw,44px)}
.cta-card h2{font-size:clamp(26px,3vw,40px)}
.sub .quote-grid{align-items:center}
@media (max-width:980px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:820px){
 .svc,.how,.areas,.faq,.sub-cta{padding:64px 0}
 .svc-grid,.area-cards,.faq-grid,.how-grid,.prose-grid,.see-row{grid-template-columns:1fr}
 .side{position:static}
 .sub-hero{padding:48px 0 40px}
}

/* Services above the walkthrough (Will, 2026-10-26 8:34 PM): compact intro with the H1 and a single row of glass cards. */
.intro{position:relative;z-index:1;padding:calc(92px + env(safe-area-inset-top)) 0 40px;background:radial-gradient(110% 90% at 85% 0%,rgba(11,61,145,.4),transparent 60%),var(--ink)}
.intro h1{font-size:clamp(34px,4.2vw,60px);line-height:1.05;max-width:22ch;margin-bottom:12px}
.intro .sec-lede{margin-bottom:24px}
.svc-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.svc-row .card{padding:18px 20px;border-radius:20px}
.svc-row .card h2,.svc-row .card h3{font-size:17px;margin-bottom:6px}
.svc-row .card p{font-size:14px;line-height:1.5}
.svc-row .more{margin-top:10px;font-size:12px}
.cap-hero h2{font-size:clamp(34px,4.2vw,60px);line-height:1.05;max-width:14ch}
@media (max-width:820px),(max-aspect-ratio:4/5){
 .intro{padding:calc(76px + env(safe-area-inset-top)) 0 22px}
 .intro h1{font-size:clamp(28px,8vw,36px);margin-bottom:8px}
 .intro .sec-lede{font-size:14.5px;line-height:1.5;margin-bottom:14px}
 .svc-row{grid-template-columns:1fr 1fr;gap:10px}
 .svc-row .card{padding:12px 14px;border-radius:16px}
 .svc-row .card h2,.svc-row .card h3{font-size:15px;margin-bottom:3px}
 .svc-row .card p{font-size:12.5px;line-height:1.4}
 .svc-row .more{display:none}
 .cap-hero h2{font-size:clamp(28px,8vw,40px)}
}
/* Saved quote banner on /quote/ */
.saved-quote{background:var(--ink-2);border-bottom:1px solid var(--line);padding:14px 0}
.saved-quote-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px}
.saved-quote-msg{margin:0;font-size:16px}
.saved-quote-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.saved-quote-new{color:var(--slate);font-size:15px;text-decoration:underline;text-underline-offset:3px}
.quote-photos{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 18px}
.quote-thumb{display:block;min-width:44px;min-height:44px}
.quote-thumb img{width:120px;height:120px;object-fit:cover;border-radius:18px;border:1px solid var(--line);background:var(--glass)}
.quote-history{list-style:none;margin:16px 0 28px;padding:0;display:grid;gap:10px}
.quote-history-row a{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;min-height:44px;padding:14px 16px;border-radius:18px;background:var(--glass);border:1px solid var(--line);text-decoration:none}
.quote-history-meta,.quote-history-status{color:var(--steel);font-size:14px}
.quote-history-back{margin:0 0 12px}
@media (max-width:560px){.saved-quote-actions{width:100%}.saved-quote-actions .btn{flex:1}}
.post-list{display:grid;gap:18px;margin-top:10px}
/* Blog cards with a cover (blog index, topic pages, related posts) */
.area-card.has-cover{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:20px;align-items:center;padding:16px 22px 16px 16px}
.post-cover{display:block;aspect-ratio:16/10;border-radius:14px;overflow:hidden;background:#23272E}
.post-cover img{display:block;width:100%;height:100%;object-fit:cover}
.has-cover .post-text{display:block;min-width:0}
.has-cover .post-text>:last-child{margin-bottom:0}
@media (max-width:560px){.area-card.has-cover{grid-template-columns:1fr;gap:14px;padding:12px 12px 18px}.has-cover .post-text{padding:0 8px}}
.post h2{margin-top:36px}.post h3{font-size:20px;margin:28px 0 8px}
.byline{margin:14px 0 2px;color:var(--light);font-weight:600}.post-dates{margin-top:2px}
.post-cta{margin:40px 0 28px}.post-related{margin-bottom:12px}
.comment-list{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:12px}.comment{padding:16px 18px}.comment p{margin:6px 0}
.comment-meta time{color:var(--slate);font-weight:400;margin-left:6px;font-size:14px}.comment-reply{border-left:2px solid var(--warm);padding-left:10px}
.comment-form{display:grid;gap:12px;padding:18px}.comment-form label{display:grid;gap:6px;font-weight:600;font-size:14px}
.comment-form input,.comment-form textarea{font:inherit;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:inherit}
.comment-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.comment-notice{padding:12px 16px;margin-bottom:12px}
.top-link{display:inline-flex;align-items:center;min-height:44px;min-width:44px;justify-content:center;padding:0 8px;color:var(--white);font-weight:600;font-size:15px;text-decoration:underline;text-underline-offset:5px;text-decoration-color:rgba(242,197,138,.7)}.top-link:hover{color:var(--warm)}
@media (max-width:560px){.top-cta{gap:6px;align-items:center}.top-link{padding:0 6px}}
.home-blog{padding:72px 0 88px;background:var(--ink)}.home-posts{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:24px}.home-blog-cta{margin-top:24px}
