/* Self-hosted Google Fonts (latin), saves two outside connections on every page. */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/bricolage-grotesque-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/bricolage-grotesque-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/figtree-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/figtree-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/ibm-plex-mono-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{
  --storm:#141e2c;
  --storm-2:#1b2940;
  --canvas:#f2f5f9;
  --panel:#fbfcfe;
  --blue:#1d4fc4;
  --blue-deep:#163d99;
  --accent:#ffc526;
  --accent-hover:#ffd65c;
  --accent-muted:rgba(255,197,38,.22);
  --text-secondary:#46566c;
  --text-primary:#101d2e;
  --line:#c9d3e0;
  --line-strong:#7d8ca3;
  --on-dark:#f4f1ea;
  --on-dark-2:#c3cbd8;
  --display:"Bricolage Grotesque",system-ui,sans-serif;
  --body:"Figtree",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --tshadow:0 1px 2px rgba(5,8,14,.95),0 3px 12px rgba(5,8,14,.78),0 10px 44px rgba(5,8,14,.8);
  --radius:18px;
  --gut:clamp(16px,4vw,48px);
}
*{box-sizing:border-box}
html{overflow-x:hidden;overflow-x:clip;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;overflow-x:hidden;overflow-x:clip;background:var(--canvas);color:var(--text-primary);font:400 17px/1.6 var(--body);animation:pageIn .8s var(--ease-out) both}
@keyframes pageIn{from{opacity:0}to{opacity:1}}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:fixed;left:12px;top:-60px;z-index:100;background:var(--accent);color:var(--storm);padding:10px 16px;border-radius:10px;font-weight:600;text-decoration:none;transition:top .3s var(--ease-out)}
.skip:focus{top:12px}
.wrap{width:min(1180px,100% - 2*var(--gut));margin-inline:auto}
.kicker{font:500 13px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
h1,h2,h3{font-family:var(--display);font-weight:800;line-height:1.02;letter-spacing:-.02em;margin:0}
h2{font-size:clamp(34px,5vw,60px);max-width:18ch}
h3{font-size:clamp(21px,2.2vw,26px);font-weight:700;letter-spacing:-.01em}
p{margin:0}
.lede{font-size:clamp(18px,1.6vw,20px);color:var(--text-secondary);max-width:58ch}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 24px;border-radius:999px;font:600 16px/1 var(--body);text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .35s var(--ease-out),background-color .35s var(--ease-out),border-color .35s var(--ease-out),box-shadow .35s var(--ease-out)}
.btn-sun{background:var(--accent);color:var(--storm);box-shadow:0 6px 22px -8px rgba(255,197,38,.7)}
.btn-sun:hover{background:var(--accent-hover);transform:translateY(-2px)}
.btn-ghost{border-color:rgba(244,241,234,.55);color:var(--on-dark);background:rgba(20,30,44,.35)}
.btn-ghost:hover{border-color:var(--on-dark);transform:translateY(-2px)}
.btn-line{border-color:var(--blue);color:var(--blue);background:transparent}
.btn-line:hover{background:var(--blue);color:#fff;transform:translateY(-2px)}
.btn svg{width:18px;height:18px;flex:none}
@media (pointer:coarse){.btn{min-height:48px}}

/* ---------- environment layer ---------- */
.env{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:linear-gradient(180deg,#e9f0f8 0%,var(--canvas) 55%,#eef2f6 100%)}
.env i{position:absolute;border-radius:50%;filter:blur(40px);opacity:.55;background:radial-gradient(closest-side,#ffffff,rgba(255,255,255,0));animation:drift 96s linear infinite}
.env i:nth-child(1){width:60vw;height:22vw;left:-10vw;top:12vh;animation-delay:-20s}
.env i:nth-child(2){width:48vw;height:18vw;left:40vw;top:52vh;animation-delay:-61s;animation-duration:120s}
.env i:nth-child(3){width:36vw;height:14vw;left:70vw;top:28vh;animation-delay:-8s;animation-duration:140s;background:radial-gradient(closest-side,rgba(255,214,120,.55),rgba(255,214,120,0))}
@keyframes drift{from{transform:translateX(-12vw)}50%{transform:translateX(12vw)}to{transform:translateX(-12vw)}}

/* ---------- nav ---------- */
.nav{position:fixed;inset:0 0 auto;z-index:50;transition:background-color .5s var(--ease-out),box-shadow .5s var(--ease-out),color .5s var(--ease-out);color:var(--on-dark)}
.nav .wrap{display:flex;align-items:center;gap:20px;height:74px}
.nav .brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;margin-right:auto}
.nav .brand img{height:54px;width:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.nav .links{display:flex;gap:22px;align-items:baseline}
.dd{position:relative}
.dd-top{display:inline-flex;align-items:center;gap:5px}
.dd-top svg{width:12px;height:12px;transition:transform .35s var(--ease-out)}
.dd-menu{position:absolute;left:50%;top:100%;margin-top:14px;width:290px;transform:translate(-50%,8px);opacity:0;visibility:hidden;pointer-events:none;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:8px;box-shadow:0 24px 50px -20px rgba(16,29,46,.45);transition:opacity .3s var(--ease-out),transform .3s var(--ease-out),visibility 0s linear .3s;z-index:60}
.dd-menu::before{content:"";position:absolute;left:0;right:0;top:-18px;height:18px}
.dd:hover .dd-menu,.dd:focus-within .dd-menu,.dd.open .dd-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0);transition:opacity .3s var(--ease-out),transform .3s var(--ease-out),visibility 0s}
.dd:hover .dd-top svg,.dd:focus-within .dd-top svg,.dd.open .dd-top svg{transform:rotate(180deg)}
.nav .links .dd-menu a{display:block;padding:11px 14px;border-radius:11px;color:var(--text-primary);opacity:1;text-decoration:none;transition:background-color .25s}
.nav .links .dd-menu a:hover,.nav .links .dd-menu a:focus-visible{background:#e7eef9;text-decoration:none}
.dd-menu b{display:block;font:700 16px/1.2 var(--display)}
.dd-menu span{display:block;margin-top:3px;font-size:13px;font-weight:400;color:var(--text-secondary)}
.nav .links a{color:inherit;text-decoration:none;font-weight:600;font-size:15px;opacity:.9;transition:opacity .3s}
.nav .links a:hover{opacity:1;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:6px;text-decoration-thickness:2px}
.nav .call{color:inherit;text-decoration:none;font:500 14px/1 var(--mono);letter-spacing:.04em;white-space:nowrap}
.nav .btn{padding:11px 18px;font-size:15px}
.burger{display:none;width:46px;height:46px;border-radius:12px;border:1.5px solid currentColor;background:transparent;color:inherit;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0}
.burger i{display:block;width:20px;height:2px;border-radius:2px;background:currentColor;transition:transform .35s var(--ease-out),opacity .25s}
.nav.menu-open .burger i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav.menu-open .burger i:nth-child(2){opacity:0}
.nav.menu-open .burger i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mnav{background:var(--panel);color:var(--text-primary);border-top:1px solid var(--line);box-shadow:0 30px 50px -30px rgba(16,29,46,.5);max-height:calc(100svh - 74px);overflow:auto;animation:drop .35s var(--ease-out)}
@keyframes drop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.mnav nav{display:flex;flex-direction:column;padding:10px var(--gut) 22px}
.mnav a{display:block;padding:14px 4px;border-bottom:1px solid var(--line);color:var(--text-primary);text-decoration:none;font:700 19px/1.2 var(--display)}
.mnav-label{margin:16px 4px 4px;font:500 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.mnav-sub a{padding:12px 4px 12px 16px;font:600 17px/1.2 var(--body)}
.mnav .btn{margin-top:18px;border-bottom:0;font:600 17px/1 var(--body);text-align:center}
.nav.menu-open{background:var(--panel);color:var(--text-primary)}
@media (max-width:1060px){.burger{display:inline-flex}}
@media (min-width:1061px){.mnav{display:none!important}}
@media (max-width:420px){.nav .wrap{gap:10px}.nav .btn-sun{padding:11px 14px;font-size:14px}}
.nav.solid{background:rgba(251,252,254,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:var(--text-primary);box-shadow:0 1px 0 var(--line)}
.nav.solid .brand img{filter:none}
@media (max-width:1060px){.nav .links{display:none}}
@media (max-width:560px){.nav .call{display:none}.nav .brand img{height:46px}}

/* ---------- hero ---------- */
.hero{position:relative;height:280vh;background:var(--storm)}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:var(--storm)}
.poster,.stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.poster{background:var(--storm) center/cover no-repeat}
.stage video{opacity:0;transition:opacity .8s var(--ease-out);will-change:transform;transform:translateZ(0)}
.stage.video-ready video{opacity:1}
.stage.video-failed video{display:none}
.poster-end{opacity:var(--pe,0);background-color:transparent}
.scrim{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 120% 90% at 50% 45%,rgba(10,14,22,0) 35%,rgba(10,14,22,.58) 100%),linear-gradient(180deg,rgba(10,14,22,.45) 0%,rgba(10,14,22,0) 22%)}
.bands{position:absolute;inset:0;pointer-events:none}
.band{position:absolute;left:var(--gut);top:50%;transform:translateY(-50%);width:min(620px,100% - 2*var(--gut));color:var(--on-dark);text-shadow:var(--tshadow);opacity:0;visibility:hidden}
.band::before{content:"";position:absolute;inset:-18% -22%;z-index:-1;pointer-events:none;opacity:calc(.25 + .75*var(--k,1));background:radial-gradient(ellipse 70% 62% at 42% 50%,rgba(6,9,16,var(--peak,.62)) 0%,rgba(6,9,16,calc(var(--peak,.62)*.66)) 46%,rgba(6,9,16,0) 76%)}
.band .kicker{color:var(--accent);display:block;margin-bottom:18px}
.band .hl{font-family:var(--display);font-weight:800;letter-spacing:-.02em;margin:0;font-size:clamp(44px,6.4vw,92px);line-height:.98;max-width:12ch}
.b2 .hl{font-size:clamp(34px,4.4vw,62px);max-width:15ch;line-height:1.06}
.b3 .hl{max-width:11ch;font-size:clamp(40px,5.2vw,78px)}
.b3{width:min(560px,44vw)}
.b3 .sub{margin-top:22px;font-size:clamp(18px,1.6vw,21px);max-width:36ch;color:var(--on-dark);opacity:var(--ks,1);transform:translateY(calc((1 - var(--ks,1))*14px))}
.b3 .ctas{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px;opacity:var(--kb,1);transform:translateY(calc((1 - var(--kb,1))*14px));pointer-events:auto}
.b3 .ctas .btn{text-shadow:none}
.b3{--ks:clamp(0,(var(--k,0) - .62)*3.2,1);--kb:clamp(0,(var(--k,0) - .78)*4.6,1);top:auto;bottom:max(9vh,72px);transform:none}
/* split text */
.w{display:inline-block;white-space:nowrap}
.fall .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*2.6,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*-34px))}
.rise .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*3,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*28px))}
.mist{display:grid}
.mist>*{grid-area:1/1}
.mist .soft{filter:blur(10px);opacity:calc(1 - var(--k,0))}
.mist .sharp{opacity:var(--k,0);transform:scale(calc(.97 + .03*var(--k,0)))}
.cue{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--on-dark-2);font:500 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;text-shadow:0 1px 3px rgba(0,0,0,.8);transition:opacity .5s}
.ring{width:40px;height:40px;color:var(--accent);transform:rotate(-90deg)}
.ring circle.track{stroke:rgba(244,241,234,.22)}
.chev{width:22px;height:22px;animation:nudge 2.4s var(--ease-io) infinite -1.2s}
@keyframes nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}
.stage.done-cue .cue{opacity:0}
@media (max-height:560px){.cue{display:none}}

/* static hero: the five gates (must match JS exactly) */
@media (max-width: 720px), (orientation: portrait) and (max-width: 1024px), (orientation: portrait) and (pointer: coarse), (orientation: landscape) and (pointer: coarse) and (max-height: 560px), (prefers-reduced-motion: reduce){
  .hero{height:auto}
  .stage{position:relative;height:auto;min-height:100svh;display:flex;align-items:flex-end;background:var(--storm) url('/assets/hero-ending-mobile.webp') 64% center/cover no-repeat}
  .stage video,.poster,.cue{display:none}
  .scrim{background:linear-gradient(180deg,rgba(10,14,22,.55) 0%,rgba(10,14,22,.05) 30%,rgba(10,14,22,.35) 55%,rgba(10,14,22,.86) 100%)}
  .bands{position:relative;inset:auto;width:100%;padding:120px 0 max(48px,6vh)}
  .band{display:none}
  .band.b3{display:block;position:relative;left:auto;bottom:auto;margin-inline:var(--gut);opacity:1!important;visibility:visible!important;--k:1!important;--ks:1!important;--kb:1!important}
  .b3{width:auto;max-width:560px}
}


/* ---------- roofline signature ---------- */
.roofline{display:block;width:100%;height:clamp(46px,7vw,90px);color:var(--blue);overflow:visible}
.roofline path{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--d,0))}
.roofline .ridge{stroke:var(--accent);stroke-width:4}
.divider{padding:clamp(40px,6vw,72px) 0 0}

section{position:relative}
.sec{padding:clamp(56px,8vw,110px) 0}

/* reveal choreography */
.rv .it{transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.rv-on .rv:not(.in) .it{opacity:0;transform:translateY(22px)}
.rv.in .it{opacity:1;transform:none}
.rv.in .it:nth-child(2){transition-delay:.09s}
.rv.in .it:nth-child(3){transition-delay:.18s}
.rv.in .it:nth-child(4){transition-delay:.27s}
.rv.in .it:nth-child(5){transition-delay:.36s}
.rv.in .it:nth-child(6){transition-delay:.45s}
.rv.settled .it,.rv.settled .it:nth-child(n){transition-delay:0s!important}

/* ---------- A. proof ---------- */
.proof{padding:clamp(48px,6vw,80px) 0 clamp(20px,3vw,40px)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,2vw,28px);align-items:baseline}
.stat b{display:block;font:800 clamp(44px,6vw,78px)/1 var(--display);letter-spacing:-.03em;color:var(--blue)}
.stat span{display:block;margin-top:8px;font:500 13px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary)}
.badges{margin-top:clamp(36px,5vw,56px);display:flex;flex-wrap:wrap;align-items:center;gap:clamp(18px,3vw,40px);padding:22px clamp(18px,3vw,32px);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}
.badges img{height:clamp(54px,6vw,74px);width:auto}
.bbb{display:flex;flex-direction:column;justify-content:center;height:clamp(54px,6vw,74px);padding:0 18px;border-left:3px solid var(--blue)}
.bbb strong{font:800 22px/1 var(--display);color:var(--text-primary)}
.bbb small{font:500 12px/1.4 var(--mono);letter-spacing:.08em;color:var(--text-secondary);text-transform:uppercase;margin-top:6px}
.badges .note{flex-basis:100%;margin:0;padding-top:14px;border-top:1px solid var(--line);font-size:15px;color:var(--text-secondary)}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,1fr);row-gap:32px}.badges .note{margin-left:0}}

/* ---------- B. fortified ---------- */
.fort .grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(28px,5vw,72px);align-items:center}
.fort h2{margin:14px 0 20px}
.fort .lede+.lede{margin-top:16px}
.grant{margin-top:26px;padding:18px 20px;border-radius:14px;background:var(--accent-muted);border:1px solid rgba(214,160,0,.5);font-size:16px;color:var(--text-primary);max-width:58ch}
.grant strong{font-weight:600}
.fort .btn{margin-top:28px}
.test{position:relative;background:linear-gradient(170deg,var(--storm-2),var(--storm));border-radius:24px;padding:clamp(20px,3vw,32px);color:var(--on-dark);overflow:hidden;box-shadow:0 30px 60px -30px rgba(16,29,46,.55)}
.test svg.xsec{width:100%;height:auto;display:block}
.test .lay{opacity:.28;transition:opacity .6s var(--ease-out)}
.test .lay.on{opacity:1}
.test .lay.on .glow{opacity:1}
.test .glow{opacity:0;transition:opacity .6s var(--ease-out)}
.hail circle{fill:#e8eef7;opacity:0}
.test.storming .hail circle{animation:hail .9s linear infinite}
@keyframes hail{0%{transform:translateY(-40px);opacity:0}12%{opacity:.95}70%{transform:translateY(118px);opacity:.95}78%{transform:translateY(106px);opacity:.8}100%{transform:translateY(122px);opacity:0}}
.hail circle:nth-child(2){animation-delay:-.2s!important}
.hail circle:nth-child(3){animation-delay:-.45s!important}
.hail circle:nth-child(4){animation-delay:-.7s!important}
.hail circle:nth-child(5){animation-delay:-.33s!important}
.hail circle:nth-child(6){animation-delay:-.58s!important}
.hail circle:nth-child(7){animation-delay:-.12s!important}
.checks{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.checks li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:rgba(244,241,234,.06);border:1px solid rgba(195,203,216,.18);font-size:15px;color:var(--on-dark-2);transition:background-color .5s var(--ease-out),color .5s var(--ease-out),border-color .5s var(--ease-out)}
.checks li i{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid rgba(195,203,216,.45);display:grid;place-items:center;transition:background-color .5s var(--ease-out),border-color .5s var(--ease-out)}
.checks li i::after{content:"";width:9px;height:5px;border:2px solid var(--storm);border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px);opacity:0;transition:opacity .4s}
.checks li.on{color:var(--on-dark);background:rgba(255,197,38,.12);border-color:rgba(255,197,38,.5)}
.checks li.on i{background:var(--accent);border-color:var(--accent)}
.checks li.on i::after{opacity:1}
.holdrow{margin-top:18px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.hold{position:relative;display:inline-flex;align-items:center;gap:12px;padding:14px 22px 14px 14px;border-radius:999px;border:2px solid var(--accent);background:transparent;color:var(--on-dark);font:600 16px/1 var(--body);cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:none;transition:background-color .35s var(--ease-out),transform .35s var(--ease-out)}
.hold:hover{background:rgba(255,197,38,.12)}
.hold:active{transform:scale(.98)}
.hold svg{width:32px;height:32px;transform:rotate(-90deg)}
.hold svg circle{fill:none;stroke-width:4}
.hold .trk{stroke:rgba(244,241,234,.2)}
.hold .bar{stroke:var(--accent);stroke-dasharray:100;stroke-dashoffset:calc(100 - 100*var(--hp,0));stroke-linecap:round}
.verdict{font:800 22px/1.1 var(--display);color:var(--accent);opacity:0;transform:translateY(8px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.test.complete .verdict{opacity:1;transform:none}
.test .hint{font:500 12px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--on-dark-2)}
@media (max-width:900px){.fort .grid{grid-template-columns:1fr}}
@media (max-width:460px){.checks{grid-template-columns:1fr}}

/* ---------- C. services ---------- */
.svc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}
.svc-head h2{margin-top:14px}
.types{margin-top:clamp(32px,4vw,52px);display:grid;grid-template-columns:1.3fr 1fr;align-items:start;gap:clamp(16px,2vw,24px)}
.type{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(22px,3vw,34px)}
.type h3{display:flex;align-items:baseline;gap:12px}
.type h3 small{font:500 12px/1 var(--mono);letter-spacing:.12em;color:var(--text-secondary);text-transform:uppercase}
.tags{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.tags li{padding:9px 15px;border-radius:999px;background:#e7eef9;color:var(--blue-deep);font-weight:600;font-size:15px}
.more{margin-top:clamp(40px,5vw,64px)}
.more h3{font-size:clamp(24px,2.6vw,32px);font-weight:800}
.ext{list-style:none;padding:0;margin:20px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:2px solid var(--text-primary)}
.ext li{padding:16px 4px 16px 0;border-bottom:1px solid var(--line);font:700 clamp(18px,1.7vw,21px)/1.2 var(--display);display:flex;align-items:baseline;gap:10px}
.ext li span{font:500 12px/1 var(--mono);color:var(--blue)}
.mosaic{margin-top:clamp(40px,5vw,64px);display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(120px,14vw,190px);gap:clamp(8px,1.2vw,14px)}
.mosaic figure{margin:0;position:relative;border-radius:14px;overflow:hidden;background:#dde4ee}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}
.mosaic figure:hover img{transform:scale(1.04)}
.mosaic figcaption{position:absolute;left:10px;bottom:10px;padding:6px 10px;border-radius:8px;background:rgba(16,29,46,.72);color:#fff;font:500 12px/1.2 var(--mono);letter-spacing:.06em;backdrop-filter:blur(6px)}
.m1{grid-column:span 3;grid-row:span 2}.m2{grid-column:span 3;grid-row:span 1}.m3{grid-column:span 2;grid-row:span 2}.m4{grid-column:span 1;grid-row:span 1}.m5{grid-column:span 4;grid-row:span 2}.m6{grid-column:span 2;grid-row:span 1}
@media (max-width:900px){.types{grid-template-columns:1fr}.ext{grid-template-columns:repeat(2,1fr)}.mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}.mosaic figure{grid-column:span 1!important;grid-row:span 1!important}.mosaic .m1,.mosaic .m5{grid-column:span 2!important;grid-row:span 2!important}}


/* ---------- exteriors ---------- */
.ext a{display:flex;align-items:baseline;gap:10px;color:inherit;text-decoration:none;transition:color .3s}
.ext a:hover{color:var(--blue)}
.ext em{display:block;font:400 14px/1.3 var(--body);font-style:normal;color:var(--text-secondary);margin-left:6px}
.ext li{flex-wrap:wrap}
.xnav{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(32px,4vw,52px)}
.xnav a{padding:10px 18px;border-radius:999px;border:1.5px solid var(--blue);color:var(--blue);font-weight:600;text-decoration:none;transition:background-color .3s,color .3s}
.xnav a:hover{background:var(--blue);color:#fff}
.gut .grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,72px);align-items:center}
.gut .ph{margin:0;border-radius:22px;overflow:hidden}
.gut .ph img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 25%}
.gut h2{margin:14px 0 18px}
.spec{margin:26px 0 28px;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.spec div{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.spec dt{font:500 12px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary)}
.spec dd{margin:6px 0 0;font:700 19px/1.2 var(--display);color:var(--text-primary)}
.paint-head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,56px);align-items:end}
.paint-head h2{margin-top:14px}
.ba{position:relative;margin-top:clamp(28px,4vw,48px);border-radius:24px;overflow:hidden;aspect-ratio:3/2;background:#dde4ee;box-shadow:0 30px 60px -36px rgba(16,29,46,.55);user-select:none;-webkit-user-select:none}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba .before{clip-path:inset(0 calc(100% - var(--x)) 0 0)}
.ba .handle{position:absolute;top:0;bottom:0;left:var(--x);width:3px;margin-left:-1.5px;background:#fff;box-shadow:0 0 12px rgba(0,0,0,.35);pointer-events:none}
.ba .handle i{position:absolute;top:50%;left:50%;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;background:var(--accent);box-shadow:0 6px 18px rgba(0,0,0,.3)}
.ba .handle i::before,.ba .handle i::after{content:"";position:absolute;top:50%;width:0;height:0;border:7px solid transparent;margin-top:-7px}
.ba .handle i::before{left:9px;border-right-color:var(--storm)}
.ba .handle i::after{right:9px;border-left-color:var(--storm)}
.ba input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y}
.ba input:focus-visible~.handle i{outline:3px solid #fff;outline-offset:3px}
.ba .tag{position:absolute;top:16px;padding:7px 12px;border-radius:9px;background:rgba(16,29,46,.75);color:#fff;font:500 12px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;pointer-events:none}
.ba .tb{left:16px}.ba .ta{right:16px}
.ba .illo{position:absolute;right:14px;bottom:12px;font:500 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.8);text-shadow:0 1px 3px rgba(0,0,0,.7);pointer-events:none}
.drag-hint{margin-top:12px;text-align:center;font:500 13px/1.3 var(--mono);letter-spacing:.08em;color:var(--text-secondary)}
.pills{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.pills li{padding:10px 18px;border-radius:999px;background:#e7eef9;color:var(--blue-deep);font-weight:600}
.center{text-align:center;margin-top:26px}
.stucco .frame{position:relative;border-radius:26px;overflow:hidden;min-height:clamp(420px,48vw,620px);display:flex;align-items:flex-end}
.stucco .frame>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.stucco .panel{position:relative;margin:clamp(16px,3vw,36px);max-width:520px;background:rgba(251,252,254,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:20px;padding:clamp(22px,3vw,34px);box-shadow:0 20px 40px -24px rgba(16,29,46,.5)}
.stucco .panel h2{font-size:clamp(28px,3.4vw,42px);margin:12px 0 14px}
.stucco .panel p{color:var(--text-secondary)}
.mini-list{list-style:none;padding:0;margin:16px 0 22px;display:flex;gap:10px;flex-wrap:wrap}
.mini-list li{padding:8px 14px;border-radius:999px;background:#e7eef9;color:var(--blue-deep);font-weight:600;font-size:15px}
.lights{background:#0e1420;color:var(--on-dark);overflow:hidden}
.lights .glow{position:absolute;inset:-20%;pointer-events:none;background:radial-gradient(40% 50% at 75% 45%,rgba(120,90,255,.28),rgba(120,90,255,0) 70%),radial-gradient(35% 45% at 60% 60%,rgba(255,80,190,.18),rgba(255,80,190,0) 70%);animation:hue 24s linear infinite -6s}
@keyframes hue{0%,100%{opacity:.7;transform:translateX(0)}50%{opacity:1;transform:translateX(-3%)}}
.lights .grid{position:relative;display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,5vw,72px);align-items:center}
.lights .kicker{color:var(--accent)}
.lights h2{color:var(--on-dark);margin:14px 0 20px}
.lights .lede{color:var(--on-dark-2)}
.occ{list-style:none;padding:0;margin:24px 0 30px;display:flex;flex-wrap:wrap;gap:10px}
.occ li{padding:9px 15px;border-radius:999px;border:1px solid rgba(195,203,216,.3);background:rgba(244,241,234,.06);font-weight:600;font-size:15px}
.lights .shot{margin:0;border-radius:22px;overflow:hidden;box-shadow:0 0 0 1px rgba(255,255,255,.06),0 30px 80px -30px rgba(120,90,255,.55)}
.lights .shot img{width:100%;aspect-ratio:3/2;object-fit:cover}

.peek{margin:18px 0 0;position:relative;border-radius:14px;overflow:hidden;aspect-ratio:16/9;background:#dde4ee}
.peek img{width:100%;height:100%;object-fit:cover;transition:opacity .45s var(--ease-out),transform 1.2s var(--ease-out)}
.peek.swap img{opacity:0;transform:scale(1.02)}
.peek figcaption{position:absolute;left:10px;bottom:10px;padding:6px 10px;border-radius:8px;background:rgba(16,29,46,.75);color:#fff;font:500 12px/1.2 var(--mono);letter-spacing:.06em}
.peek-hint{margin-top:6px;font-size:14px;color:var(--text-secondary)}
.tags.pick li{padding:0;background:none}
.tags.pick button{font:600 15px/1 var(--body);padding:10px 15px;border-radius:999px;border:1.5px solid transparent;background:#e7eef9;color:var(--blue-deep);cursor:pointer;transition:background-color .3s,color .3s,border-color .3s,transform .3s var(--ease-out)}
.tags.pick button:hover{border-color:var(--blue);transform:translateY(-1px)}
.tags.pick button[aria-pressed="true"]{background:var(--blue);color:#fff}
@media (pointer:coarse){.tags.pick button{min-height:44px}}
.occ li{padding:0;border:0;background:none}
.occ button{display:inline-flex;align-items:center;gap:9px;padding:10px 15px;border-radius:999px;border:1px solid rgba(195,203,216,.3);background:rgba(244,241,234,.06);color:var(--on-dark);font:600 15px/1 var(--body);cursor:pointer;transition:background-color .3s,border-color .3s,transform .3s var(--ease-out)}
.occ button:hover{border-color:rgba(255,197,38,.7);transform:translateY(-1px)}
.occ button[aria-pressed="true"]{background:rgba(255,197,38,.16);border-color:var(--accent)}
.occ .dots{display:inline-flex}
.occ .dots i{width:10px;height:10px;border-radius:50%;margin-left:-3px;box-shadow:0 0 0 2px #0e1420}
.occ .dots i:first-child{margin-left:0}
@media (pointer:coarse){.occ button{min-height:44px}}
.occ-hint{margin-top:22px;font:500 13px/1.3 var(--mono);letter-spacing:.08em;color:var(--on-dark-2)}
.occ-hint+.occ{margin-top:12px}
.shot{position:relative}
.shot .stack{position:relative;aspect-ratio:3/2}
.shot .stack img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s var(--ease-out)}
.shot .stack img.on{opacity:1}
.shot .now{position:absolute;left:14px;bottom:14px;padding:7px 12px;border-radius:9px;background:rgba(14,20,32,.72);color:#fff;font:500 12px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;backdrop-filter:blur(6px)}
@media (max-width:900px){.gut .grid,.lights .grid,.paint-head{grid-template-columns:1fr}.gut .ph img{aspect-ratio:4/3}.stucco .frame{min-height:0;flex-direction:column;align-items:stretch}.stucco .frame>img{position:relative;height:260px}.stucco .panel{margin:0;border-radius:0;max-width:none;background:var(--panel)}}

/* ---------- D. family ---------- */
.family{background:var(--storm);color:var(--on-dark);overflow:hidden}
.family .grid{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.family .kicker{color:var(--accent)}
.family h2{margin:14px 0 22px;color:var(--on-dark)}
.family p.lede{color:var(--on-dark-2)}
.family .main{border-radius:22px;overflow:hidden;position:relative}
.family .main img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:40% 30%}
.family .main figcaption{position:absolute;left:14px;bottom:14px;padding:8px 12px;border-radius:10px;background:rgba(20,30,44,.72);font:500 13px/1.2 var(--mono);letter-spacing:.06em;backdrop-filter:blur(6px)}
.family .pair{margin-top:22px;display:grid;grid-template-columns:1fr 1.4fr;gap:14px}
.family .pair img{border-radius:14px;width:100%;height:170px;object-fit:cover}
.family .pair img:first-child{object-position:50% 25%}
.family .sign{margin-top:26px;display:flex;gap:14px;flex-wrap:wrap}
.family .btn-line{border-color:var(--on-dark-2);color:var(--on-dark)}
.family .btn-line:hover{background:var(--on-dark);color:var(--storm)}
.family .life{margin-top:clamp(40px,5vw,72px);display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(16px,2vw,24px);align-items:stretch}
.family .whole{margin:0;position:relative;border-radius:22px;overflow:hidden}
.family .whole img{width:100%;height:100%;min-height:320px;object-fit:cover;object-position:50% 40%}
.family .whole figcaption{position:absolute;left:14px;bottom:14px;padding:8px 12px;border-radius:10px;background:rgba(20,30,44,.72);font:500 13px/1.2 var(--mono);letter-spacing:.06em;backdrop-filter:blur(6px)}
.family .race{display:flex;flex-direction:column;border-radius:22px;overflow:hidden;background:rgba(244,241,234,.05);border:1px solid rgba(195,203,216,.16)}
.family .race img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:35% 60%}
.family .race>div{padding:22px 24px 26px}
.family .race .kicker{color:var(--accent)}
.family .race h3{margin:10px 0 10px;color:var(--on-dark);font-size:clamp(22px,2.3vw,28px);font-weight:800}
.family .race p:not(.kicker){color:var(--on-dark-2)}
@media (max-width:900px){.family .life{grid-template-columns:1fr}}
.marquee{margin-top:clamp(48px,6vw,80px);border-top:1px solid rgba(195,203,216,.2);border-bottom:1px solid rgba(195,203,216,.2);padding:18px 0;overflow:hidden;white-space:nowrap}
.marquee .track{display:inline-flex;gap:48px;padding-right:48px;animation:slide 60s linear infinite;animation-play-state:paused}
.marquee.live .track{animation-play-state:running}
.marquee span{font:700 clamp(20px,2.2vw,28px)/1 var(--display);color:var(--on-dark-2)}
.marquee span b{color:var(--accent);font-weight:800;margin-right:48px}
@keyframes slide{to{transform:translateX(-50%)}}
@media (max-width:900px){.family .grid{grid-template-columns:1fr}}

/* ---------- E. steps ---------- */
.steps-head{text-align:center;display:flex;flex-direction:column;align-items:center}
.steps-head h2{margin-top:14px;max-width:16ch}
.steps{margin-top:clamp(36px,5vw,60px);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px);counter-reset:s}
.step{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out)}
.step:hover{transform:translateY(-4px);box-shadow:0 24px 40px -28px rgba(16,29,46,.45)}
.step img{width:100%;aspect-ratio:4/3;object-fit:cover}
.step .body{padding:22px 24px 26px}
.step .n{font:500 13px/1 var(--mono);letter-spacing:.12em;color:var(--blue)}
.step h3{margin:10px 0 10px}
.step p{color:var(--text-secondary);font-size:16px}
@media (max-width:860px){.steps{grid-template-columns:1fr}.step img{aspect-ratio:16/9}}

/* ---------- F. local ---------- */
.local .card{background:linear-gradient(160deg,var(--storm-2),var(--storm));border-radius:28px;color:var(--on-dark);padding:clamp(28px,5vw,64px);display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,4vw,56px);align-items:start;position:relative;overflow:hidden}
.local .card::after{content:"";position:absolute;right:-12%;top:-30%;width:60%;height:120%;background:radial-gradient(closest-side,rgba(255,197,38,.16),rgba(255,197,38,0));pointer-events:none;animation:pulse 8s var(--ease-io) infinite -3s}
@keyframes pulse{0%,100%{opacity:.55}50%{opacity:1}}
.local h2{color:var(--on-dark);font-size:clamp(30px,4vw,48px);max-width:17ch}
.local .lede{color:var(--on-dark-2);margin-top:18px}
.local ul{list-style:none;margin:0;padding:0;display:grid;gap:12px;position:relative;z-index:1}
.local li{display:flex;gap:14px;align-items:baseline;padding:14px 16px;border-radius:14px;background:rgba(244,241,234,.06);border:1px solid rgba(195,203,216,.16);font-size:16px}
.local li::before{content:"";flex:none;width:10px;height:10px;border-radius:3px;background:var(--accent);transform:rotate(45deg) translateY(-2px)}
@media (max-width:860px){.local .card{grid-template-columns:1fr}}

/* ---------- G. quotes ---------- */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px);margin-top:clamp(28px,4vw,48px)}
.quote{margin:0;padding:clamp(22px,3vw,32px);border-left:4px solid var(--accent);background:var(--panel);border-radius:0 var(--radius) var(--radius) 0}
.quote p{font:700 clamp(20px,1.9vw,24px)/1.3 var(--display);letter-spacing:-.01em}
.quote cite{display:block;margin-top:16px;font:500 13px/1 var(--mono);letter-spacing:.1em;font-style:normal;color:var(--text-secondary);text-transform:uppercase}
@media (max-width:860px){.quotes{grid-template-columns:1fr}}

.review-cta{margin-top:26px;text-align:center}
[hidden]{display:none!important}
/* ---------- H. area ---------- */
.area{text-align:center}
.area h2{margin:14px auto 0;max-width:20ch}
.ridge{display:block;width:min(900px,100%);height:auto;margin:clamp(24px,3vw,40px) auto 0;color:var(--blue)}
.ridge path{fill:none;stroke:currentColor;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--d,0))}
.towns{list-style:none;padding:0;margin:24px auto 0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:980px}
.towns li{padding:9px 16px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font-weight:600;font-size:15px;transition:background-color .3s,border-color .3s,color .3s}
.towns li:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.area .after{margin-top:26px;color:var(--text-secondary)}

/* ---------- I. faq ---------- */
.faq .grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,5vw,72px);align-items:start}
.faq h2{margin-top:14px}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:2px solid var(--text-primary)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:20px 0;font:700 clamp(18px,1.7vw,21px)/1.3 var(--display)}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:14px;height:14px;position:relative;transition:transform .45s var(--ease-out)}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:0;top:6px;width:14px;height:2px;background:var(--blue);border-radius:2px}
.faq summary i::after{transform:rotate(90deg)}
.faq details[open] summary i{transform:rotate(45deg)}
.faq details p{padding:0 0 22px;color:var(--text-secondary);max-width:60ch}
@media (max-width:860px){.faq .grid{grid-template-columns:1fr}}

/* ---------- J. inspection ---------- */
.book{padding-bottom:clamp(64px,9vw,120px)}
.book .card{display:grid;grid-template-columns:1.25fr .75fr;background:var(--panel);border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:0 40px 80px -50px rgba(16,29,46,.5)}
.book form{padding:clamp(24px,4vw,52px)}
.book h2{margin:14px 0 12px}
.book .lede{margin-bottom:26px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label{font:500 12px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary)}
.field input,.field select,.field textarea{font:400 16px/1.4 var(--body);color:var(--text-primary);background:#fff;border:1.5px solid var(--line-strong);border-radius:12px;padding:13px 14px;transition:border-color .3s,box-shadow .3s;width:100%}
.field textarea{min-height:96px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(29,79,196,.16)}
.optin{grid-column:1/-1;display:flex;gap:12px;align-items:center;font-size:15px;color:var(--text-primary);cursor:pointer}
.optin input{width:20px;height:20px;accent-color:var(--blue)}
.book .send{margin-top:22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.book .fine{font-size:14px;color:var(--text-secondary)}
.book .thanks{display:none;padding:28px 0 8px}
.book .thanks h3{font-size:clamp(26px,3vw,36px);font-weight:800}
.book .thanks p{margin-top:10px;color:var(--text-secondary);max-width:46ch}
.book form.sent .fields,.book form.sent .send,.book form.sent .optin{display:none}
.book form.sent .thanks{display:block;animation:rise .7s var(--ease-out) both}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.side{background:linear-gradient(170deg,var(--blue),var(--blue-deep));color:#fff;padding:clamp(24px,4vw,44px);display:flex;flex-direction:column;gap:22px}
.side h3{font-size:clamp(24px,2.4vw,30px);font-weight:800}
.side a.big{display:block;color:#fff;text-decoration:none;font:800 clamp(26px,2.6vw,34px)/1 var(--display);letter-spacing:-.01em}
.side a.big:hover{text-decoration:underline;text-decoration-color:var(--accent)}
.side small{display:block;font:500 12px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;opacity:.8;margin-bottom:6px}
.side .addr{font-size:15px;opacity:.92;margin-top:auto}
.side .mini{display:flex;gap:12px;align-items:center;background:rgba(255,255,255,.95);padding:12px;border-radius:14px}
.side .mini img{height:44px;width:auto}
@media (max-width:900px){.book .card{grid-template-columns:1fr}.fields{grid-template-columns:1fr}}

/* ---------- footer ---------- */
footer{background:var(--storm);color:var(--on-dark-2);padding:clamp(48px,6vw,80px) 0 36px;font-size:15px}
footer .grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:32px;align-items:start}
footer img{height:70px;width:auto}
footer h4{margin:0 0 12px;font:500 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
footer a{color:var(--on-dark);text-decoration:none}
footer a:hover{text-decoration:underline}
footer p+p{margin-top:6px}
footer .legal{margin-top:40px;padding-top:22px;border-top:1px solid rgba(195,203,216,.18);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px;color:#9aa5b6}
@media (max-width:760px){footer .grid{grid-template-columns:1fr}}

/* hidden tabs pause everything */
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;transition-delay:0s!important;scroll-behavior:auto!important}
  .rv .it{opacity:1;transform:none}
  .roofline path,.ridge path{stroke-dashoffset:0}
}

/* ================= service pages ================= */
.subpage{padding-top:74px}
footer .grid.four{grid-template-columns:1.2fr 1fr 1fr 1fr}
@media (max-width:900px){footer .grid.four{grid-template-columns:1fr 1fr}}
@media (max-width:560px){footer .grid.four{grid-template-columns:1fr}}
.phero{padding:clamp(40px,6vw,84px) 0 clamp(36px,5vw,64px)}
.phero .grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,5vw,64px);align-items:center}
.phero h1{font-size:clamp(38px,5vw,66px);line-height:1.02;letter-spacing:-.02em;margin:14px 0 18px;max-width:16ch}
.phero .ctas{margin-top:26px;display:flex;flex-wrap:wrap;gap:12px}
.phero .ph{margin:0;position:relative;border-radius:24px;overflow:hidden;box-shadow:0 30px 60px -36px rgba(16,29,46,.55)}
.phero .ph img{width:100%;aspect-ratio:4/3;object-fit:cover}
.phero .illo{position:absolute;right:12px;bottom:10px;font:500 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.85);text-shadow:0 1px 3px rgba(0,0,0,.7)}
.phero-badge{margin-top:24px;height:62px;width:auto}
.crumbs{display:flex;gap:8px;align-items:baseline;font:500 13px/1.3 var(--mono);letter-spacing:.04em;color:var(--text-secondary);margin-bottom:14px}
.crumbs a{color:var(--blue);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.block h2{margin:14px 0 16px;max-width:22ch}
.block .lede{margin-bottom:8px}
.block.alt{background:linear-gradient(180deg,rgba(29,79,196,.05),rgba(29,79,196,0))}
.mt{margin-top:14px}
.cards{margin-top:clamp(24px,3vw,40px);display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:clamp(14px,2vw,22px)}
.cards article{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out)}
.cards article:hover{transform:translateY(-3px);box-shadow:0 24px 40px -30px rgba(16,29,46,.45)}
.cards article img{width:100%;aspect-ratio:3/2;object-fit:cover}
.cards article>div{padding:18px 20px 22px}
.cards h3{font-size:clamp(19px,1.8vw,22px)}
.cards p{margin-top:8px;color:var(--text-secondary);font-size:16px}
.cards.text article{border-top:4px solid var(--accent)}
.cards.two-up{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.two{margin-top:clamp(24px,3vw,36px);display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,22px)}
.panel-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,3vw,30px)}
.panel-card p{color:var(--text-secondary);margin-top:10px}
.panel-card a{font-weight:600}
.checks-list,.sign-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:10px}
.sign-list{margin-top:clamp(20px,3vw,30px);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.checks-list li,.sign-list li{display:flex;gap:12px;align-items:baseline;padding:12px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--line);font-weight:600}
.checks-list li::before,.sign-list li::before{content:"";flex:none;width:9px;height:9px;border-radius:3px;background:var(--accent);transform:rotate(45deg) translateY(-1px)}
.steps-list{list-style:none;padding:0;margin:clamp(24px,3vw,36px) 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(14px,2vw,22px);counter-reset:none}
.steps-list li{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px 22px 24px}
.steps-list span{font:500 13px/1 var(--mono);letter-spacing:.12em;color:var(--blue)}
.steps-list h3{margin:10px 0 8px;font-size:21px}
.steps-list p{color:var(--text-secondary);font-size:16px}
.warn .card,.grants .card{background:linear-gradient(160deg,var(--storm-2),var(--storm));border-radius:28px;color:var(--on-dark);padding:clamp(28px,5vw,60px)}
.warn .card{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,4vw,56px);align-items:start}
.warn h2,.grants h2{color:var(--on-dark);font-size:clamp(28px,3.6vw,44px);margin:12px 0 14px}
.warn .kicker,.grants .kicker{color:var(--accent)}
.warn .lede{color:var(--on-dark-2)}
.warn ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.warn li{padding:14px 16px;border-radius:14px;background:rgba(244,241,234,.06);border:1px solid rgba(195,203,216,.16)}
.grants p{color:var(--on-dark-2);max-width:68ch;margin-top:12px}
.grants strong{color:var(--on-dark)}
.grants .btn{margin-top:24px}
.why{padding:clamp(40px,5vw,64px) 0}
.why-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.why-row b{display:block;font:800 clamp(34px,4vw,52px)/1 var(--display);color:var(--blue);letter-spacing:-.02em}
.why-row span{display:block;margin-top:8px;font:500 12px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary)}
.why-badges{margin-top:28px;display:flex;flex-wrap:wrap;align-items:center;gap:clamp(16px,3vw,32px);padding:18px 22px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}
.why-badges img{height:clamp(46px,5vw,57px);width:auto}
.why-badges>span{margin-left:auto;font-size:15px;color:var(--text-secondary)}
.related h2{font-size:clamp(28px,3.4vw,40px)}
.rel-grid{margin-top:24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.rel-grid a{display:block;padding:16px 18px;border-radius:14px;background:var(--panel);border:1px solid var(--line);text-decoration:none;color:var(--text-primary);transition:border-color .3s,transform .3s var(--ease-out)}
.rel-grid a:hover{border-color:var(--blue);transform:translateY(-2px)}
.rel-grid b{display:block;font:700 18px/1.2 var(--display)}
.rel-grid span{display:block;margin-top:4px;font-size:14px;color:var(--text-secondary)}
.pay-grid{list-style:none;padding:0;margin:clamp(24px,3vw,36px) 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.pay-grid li{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.pay-grid li.hl{background:var(--blue);border-color:var(--blue);color:#fff}
.pay-grid b{display:block;font:800 26px/1 var(--display)}
.pay-grid span{display:block;margin-top:8px;font-size:15px;opacity:.85}
.fine-print{margin-top:22px;font-size:14px;color:var(--text-secondary);max-width:70ch}
.subpage .lights{margin:0}
.more-link{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-weight:600;color:var(--blue);text-decoration:none}
.more-link::after{content:"\2192";transition:transform .3s var(--ease-out)}
.more-link:hover::after{transform:translateX(4px)}
.lights .more-link,.family .more-link{color:var(--accent)}
.paystrip{margin-top:clamp(20px,3vw,28px);display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:18px 22px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--line)}
.paystrip b{font:700 18px/1.2 var(--display)}
.paystrip ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.paystrip li{padding:7px 13px;border-radius:999px;background:#e7eef9;color:var(--blue-deep);font-weight:600;font-size:14px}
.paystrip a{margin-left:auto;font-weight:600}
@media (max-width:900px){.phero .grid,.two,.warn .card{grid-template-columns:1fr}.why-row,.pay-grid{grid-template-columns:1fr 1fr}.why-badges>span{margin-left:0}.paystrip a{margin-left:0}}

/* ---------- clickable credential badges ---------- */
.badge-link{display:inline-flex;flex-direction:column;align-items:center;gap:8px;text-decoration:none;color:var(--text-secondary);text-align:center;max-width:190px;padding:6px;border-radius:12px;transition:background-color .3s,transform .3s var(--ease-out)}
.badge-link:hover{background:#eef3fb;transform:translateY(-2px)}
.badge-link img{height:clamp(46px,5vw,60px);width:auto}
.badge-link .cap{font:500 11px/1.35 var(--mono);letter-spacing:.06em;text-transform:uppercase}
.bbb-mark{display:inline-flex;align-items:center;gap:6px;height:clamp(46px,5vw,60px);padding:0 14px;border-radius:10px;background:#0d5aa7;color:#fff}
.bbb-mark b{font:800 20px/1 var(--display);letter-spacing:.02em}
.bbb-mark i{font:800 18px/1 var(--display);font-style:normal;color:#ffd65c}
.why-badges{align-items:flex-start}
.why-badges .lic{flex-basis:100%;margin:0;padding-top:12px;border-top:1px solid var(--line);font-size:14px;color:var(--text-secondary)}

/* ---------- shingle color picker ---------- */
.cp-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.cp-tabs button{font:600 15px/1 var(--body);padding:12px 18px;border-radius:999px;border:1.5px solid var(--blue);background:transparent;color:var(--blue);cursor:pointer;transition:background-color .3s,color .3s}
.cp-tabs button[aria-selected="true"]{background:var(--blue);color:#fff}
.cp-card{background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:clamp(16px,3vw,32px);box-shadow:0 30px 60px -44px rgba(16,29,46,.5)}
.cp-panel{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(20px,3vw,40px);align-items:start}
.cp-panel[hidden]{display:none!important}
.cp-view{margin:0;position:relative;border-radius:16px;overflow:hidden;background:#dde4ee}
.cp-stack{position:relative;aspect-ratio:3/2}
.cp-stack img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s var(--ease-out)}
.cp-stack img.on{opacity:1}
.cp-tag{position:absolute;right:0;top:0;padding:9px 14px;background:rgba(70,86,108,.82);color:#fff;font-size:14px}
.cp-brand{font:500 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.cp-line{font-size:clamp(24px,2.8vw,34px);font-weight:800;margin:8px 0 18px;padding-bottom:14px;border-bottom:2px solid var(--text-primary)}
.cp-sel{font-size:16px;color:var(--text-secondary)}
.cp-name{font:800 clamp(28px,3.2vw,40px)/1.05 var(--display);letter-spacing:-.01em;margin-top:2px}
.cp-desc{margin-top:8px;color:var(--text-secondary);min-height:3em}
.cp-swatches{list-style:none;padding:16px 0 0;margin:16px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:10px}
.cp-swatches button{width:100%;display:flex;flex-direction:column;align-items:center;gap:6px;padding:6px;border-radius:12px;border:2px solid transparent;background:none;cursor:pointer;font:600 12px/1.2 var(--body);color:var(--text-primary);text-align:center;transition:border-color .25s,background-color .25s}
.cp-swatches button:hover{background:#eef3fb}
.cp-swatches button[aria-pressed="true"]{border-color:var(--blue);background:#eef3fb}
.cp-swatches img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}
.cp-list{margin-top:14px;font-size:14px;color:var(--text-secondary)}
.cp-note{margin-top:16px;font-size:14px;color:var(--text-secondary);max-width:80ch}
@media (max-width:900px){.cp-panel{grid-template-columns:1fr}}
.phero .solo>div{max-width:780px}
.phero .solo h1{max-width:20ch}
.subpage .cpick{padding-top:0}
.cp-group{margin-top:18px;font:500 12px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.cp-group+.cp-swatches{margin-top:8px;border-top:0;padding-top:4px}

/* ---------- sticky call bar (phones) ---------- */
.callbar{display:none}
@media (max-width:760px){
  .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(251,252,254,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);box-shadow:0 -10px 30px -18px rgba(16,29,46,.45)}
  .callbar a{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:999px;font:600 15px/1 var(--body);text-decoration:none}
  .callbar .cb-call{background:var(--blue);color:#fff}
  .callbar .cb-call svg{width:18px;height:18px}
  .callbar .cb-book{background:var(--accent);color:var(--storm)}
  body{padding-bottom:78px}
}
/* ---------- plain text pages ---------- */
.prose{max-width:70ch}
.prose h3{margin:26px 0 8px;font-size:21px}
.prose p{color:var(--text-secondary)}
.about-race .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);align-items:center}
.about-race .main img{aspect-ratio:3/2;object-position:35% 60%}
@media (max-width:900px){.about-race .grid{grid-template-columns:1fr}}
.pprbd-mark{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;height:clamp(46px,5vw,60px);padding:0 14px;border-radius:10px;border:2px solid var(--blue);color:var(--blue);background:#fff;line-height:1}
.pprbd-mark b{font:800 18px/1 var(--display);letter-spacing:.04em}
.pprbd-mark i{font:600 11px/1 var(--mono);font-style:normal;letter-spacing:.12em;text-transform:uppercase;margin-top:4px}

/* ---------- our work: map, list, gallery ---------- */
.jobmap{margin-top:clamp(20px,3vw,32px);height:clamp(320px,48vw,520px);border-radius:20px;overflow:hidden;border:1px solid var(--line);background:#dde4ee;z-index:0}
.job-list-h{margin-top:clamp(28px,4vw,44px);font-size:22px}
.job-list{list-style:none;padding:0;margin:12px 0 0;columns:2 320px;column-gap:28px}
.job-list li{break-inside:avoid;padding:8px 0;border-bottom:1px solid var(--line)}
.job-list a{color:var(--text-primary);text-decoration:none;font-weight:600}
.job-list a:hover{color:var(--blue);text-decoration:underline}
.job-grid{margin-top:clamp(24px,3vw,36px);display:grid;align-items:start;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:clamp(14px,2vw,22px)}
.job-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;scroll-margin-top:90px}
.job-card>img{width:100%;aspect-ratio:3/2;object-fit:cover}
.job-card .ba{margin:0;border-radius:0;box-shadow:none}
.job-card>div{padding:16px 18px 20px}
.job-card h3{font-size:20px}
.job-meta{margin-top:4px;font:500 12px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--blue)}
.job-card p:not(.job-meta){margin-top:8px;color:var(--text-secondary);font-size:16px}
.job-card .combo{margin:0;position:relative;background:#dde4ee}
.job-card .combo img{width:100%;height:auto;display:block}
.job-card .combo .tag{position:absolute;left:12px;top:12px;padding:7px 12px;border-radius:9px;background:rgba(16,29,46,.75);color:#fff;font:500 12px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.job-card .pair{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line)}
.job-card .pair figure{margin:0;position:relative}
.job-card .pair img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.job-card .pair .tag{position:absolute;left:8px;top:8px;padding:6px 10px;border-radius:8px;background:rgba(16,29,46,.75);color:#fff;font:500 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.job-card>.ba,.job-card>.pair{padding:0}
.map-key{margin-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;font-size:14px;color:var(--text-secondary)}
.map-key .k{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:-10px;vertical-align:-1px}
.map-key .k-job{background:#ffc526;border:2px solid #163d99}
.map-key .k-permit{background:rgba(29,79,196,.55);border:1px solid #163d99}
.towns-list{margin-top:clamp(20px,3vw,32px);display:grid;gap:10px}
.town{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:4px 18px}
.town summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 0;font:700 19px/1.2 var(--display)}
.town summary::-webkit-details-marker{display:none}
.town summary span{font:500 13px/1.3 var(--mono);letter-spacing:.04em;color:var(--blue)}
.town .streets{list-style:none;margin:0 0 14px;padding:0;columns:3 220px;column-gap:24px;font-size:14px;color:var(--text-secondary)}
.town .streets li{break-inside:avoid;padding:3px 0}
.town .streets b{color:var(--text-primary);font-weight:600}
.map-key .k-cust{background:rgba(43,179,168,.6);border:1px solid #0f6e6a}
.gal-grid{margin-top:clamp(20px,3vw,32px);columns:3 260px;column-gap:14px}
.gal-grid figure{margin:0 0 14px;break-inside:avoid;position:relative;border-radius:14px;overflow:hidden;background:#dde4ee}
.gal-grid img{width:100%;height:auto;display:block}
.gal-grid figcaption{position:absolute;left:10px;bottom:10px;padding:6px 10px;border-radius:8px;background:rgba(16,29,46,.75);color:#fff;font:500 12px/1.2 var(--mono);letter-spacing:.06em}
footer h2.fh{margin:0 0 12px;max-width:none;font:500 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.cp-line{max-width:none}
footer .social{margin-top:14px;display:flex;gap:16px;flex-wrap:wrap}
footer .social a{display:inline-flex;align-items:center;gap:6px}
footer .social svg{width:18px;height:18px}
.hail-bars{list-style:none;padding:0;margin:clamp(20px,3vw,32px) 0 0;display:grid;grid-template-columns:repeat(11,1fr);gap:8px;align-items:end;height:200px}
.hail-bars li{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}
.hail-bars .bar{width:100%;max-width:44px;height:var(--h);min-height:4px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,var(--blue),var(--blue-deep))}
.hail-bars b{font:700 13px/1 var(--display)}
.hail-bars i{font:500 11px/1 var(--mono);font-style:normal;color:var(--text-secondary)}
@media (max-width:560px){.hail-bars{gap:3px;height:160px}.hail-bars i{font-size:9px}.hail-bars b{font-size:10px}}
.article-body .prose{max-width:72ch}
.article-body .prose h2{font-size:clamp(24px,2.6vw,30px);margin:30px 0 10px;max-width:none}
.article-body .prose h2:first-child{margin-top:0}
.article-body .prose p,.article-body .prose li{color:var(--text-secondary);font-size:17px}
.article-body .prose ul{padding-left:20px;margin:8px 0}
.article-body .prose li{margin:6px 0}
.updated{display:block;margin-top:8px;font:500 13px/1.3 var(--mono);letter-spacing:.04em;color:var(--blue)}
/* ---------- estimator ---------- */
.est-card{background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:clamp(18px,3vw,36px);box-shadow:0 30px 60px -44px rgba(16,29,46,.5)}
.est-q{border:0;margin:0 0 22px;padding:0}
.est-q label[for],.est-q legend,.est-legend{display:block;font:700 19px/1.2 var(--display);margin-bottom:10px;padding:0}
.est-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.est-row input{width:150px;font:700 22px/1 var(--display);padding:12px 14px;border:1.5px solid var(--line-strong);border-radius:12px;background:#fff;color:var(--text-primary)}
.est-row input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(29,79,196,.16)}
.est-row span{color:var(--text-secondary)}
.est-pills{display:flex;flex-wrap:wrap;gap:10px}
.est-pills label{cursor:pointer}
.est-pills input{position:absolute;opacity:0;pointer-events:none}
.est-pills span{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:10px 18px;border-radius:999px;border:1.5px solid var(--line-strong);font-weight:600;transition:background-color .25s,border-color .25s,color .25s}
.est-pills input:checked+span{background:var(--blue);border-color:var(--blue);color:#fff}
.est-pills input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}
.est-pills.pitch svg{width:38px;height:20px}
.tiers{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.tier{position:relative;border:1.5px solid var(--line);border-radius:16px;padding:16px 16px 18px;background:#fff}
.tier.rec{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}
.tier.rec::before{content:"Recommended";position:absolute;top:-11px;left:14px;padding:3px 9px;border-radius:999px;background:var(--accent);color:var(--storm);font:500 11px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.t-name{font:500 12px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.tier h3{font-size:18px;margin:6px 0 6px}
.t-desc{font-size:14px;color:var(--text-secondary);min-height:3.6em}
.t-price{margin-top:10px;font:800 22px/1.15 var(--display);color:var(--text-primary)}
.est-size{margin-top:12px;font-size:14px;color:var(--text-secondary)}
.est-cta{margin-top:18px;display:flex;flex-wrap:wrap;gap:12px}
@media (max-width:900px){.tiers{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.tiers{grid-template-columns:1fr}}
.est-gutters{margin:6px 0 20px;padding-top:22px;border-top:1px solid var(--line)}
.est-h{font-size:clamp(24px,2.6vw,30px);max-width:none;margin:0 0 4px}
.est-sub{font-size:14px;color:var(--text-secondary);margin-bottom:14px}
.est-pills.shape span{flex-direction:column;align-items:flex-start;border-radius:16px;padding:12px 18px;gap:4px}
.est-pills.shape svg{width:54px;height:30px}
.est-pills.shape small{font-weight:400;font-size:13px;opacity:.85}
.g-result{display:inline-block;margin:4px 0 12px;padding:16px 20px;border:1.5px solid var(--line);border-radius:16px;background:#fff}
.g-price{font:800 24px/1.15 var(--display)}
.g-feet{margin-top:4px;font-size:14px;color:var(--text-secondary)}
.est-gate{margin:6px 0 24px;padding:20px;border:2px solid var(--accent);border-radius:18px;background:#fffaf0}
.est-gate .fields{margin-top:6px}
.est-gate .send{margin-top:14px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.est-thanks{margin:0 0 20px;padding:14px 18px;border-radius:14px;background:#eaf6ee;border:1px solid #9bd3ad;color:#1b5e33;font-weight:600}
.locked .t-price,.locked .g-price{color:var(--line-strong);letter-spacing:.04em}
.g-result{display:block;max-width:560px}
.g-lines{list-style:none;margin:0;padding:0}
.g-lines li{display:grid;grid-template-columns:1fr auto;gap:2px 16px;padding:10px 0;border-bottom:1px solid var(--line)}
.g-lines li[hidden]{display:none}
.g-lines span{font-weight:600}
.g-lines b{font:800 18px/1.2 var(--display);text-align:right}
.g-lines small{grid-column:1/-1;font-size:13px;color:var(--text-secondary)}
.g-lines .g-total{border-bottom:0;padding-top:12px}
.g-lines .g-total b{font-size:24px}
.est-pills small{font-weight:400;font-size:12px;opacity:.85;margin-left:4px}
.locked .g-lines b{color:var(--line-strong);letter-spacing:.04em}
h2.est-legend{max-width:none}
