
/* Layout: a set of drafting sheets on a gridded table; each section is its own framed sheet with a DWG label,
   generous air between sheets, photo frames drawn as "image placeholders" in drawing convention.
   Accent: premium deep green. One committed light look with ink-dark sheets. No header/footer (added later). */
:root{
  --paper:#f4f5f2; --paper-2:#eaece7; --ink:#121614; --ink-2:#4a524e; --rule:#c9cec8; --rule-soft:#e0e4de;
  --green:#1d4a38; --green-2:#2f6b52; --green-hi:#8fc4a8; --green-wash:#dfe9e3;
  --dark:#17372b; --dark-line:rgba(233,241,236,.14); --on-dark:#f2f5f2; --on-dark-2:#a8bfb2;
  --display:"Archivo Narrow","Arial Narrow",Arial,sans-serif; --body:"Archivo",Arial,sans-serif; --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --space:clamp(72px,9vw,128px);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper-2);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.55;
  background-image:linear-gradient(var(--rule-soft) 1px,transparent 1px),linear-gradient(90deg,var(--rule-soft) 1px,transparent 1px);
  background-size:32px 32px;background-position:-1px -1px;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:40px 80px}
.wrap{max-width:1280px;margin:0 auto;display:flex;flex-direction:column;gap:clamp(40px,6vw,72px)}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.01em;line-height:.98;margin:0;text-wrap:balance}
h1{font-size:clamp(42px,6.6vw,96px)}
h2{font-size:clamp(34px,4.8vw,64px)}
h3{font-size:clamp(22px,2vw,28px)}
.lede{font-size:clamp(17px,1.4vw,19px);color:var(--ink-2);max-width:54ch;margin:0}
.eyebrow{color:var(--green);display:block;margin-bottom:16px}
.dark .eyebrow{color:var(--green-hi)}
/* sheet */
.sheet{position:relative;border:1px solid var(--ink);background:var(--paper)}
.sheet::before,.sheet::after{content:"";position:absolute;width:13px;height:13px;border:0 solid var(--ink)}
.sheet::before{top:-7px;left:-7px;border-right-width:1px;border-bottom-width:1px}
.sheet::after{bottom:-7px;right:-7px;border-left-width:1px;border-top-width:1px}
.sheet-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--rule);padding:12px 24px;color:var(--ink-2)}
.sheet-body{padding:var(--space) clamp(20px,5vw,72px)}
.dark{background:var(--dark);color:var(--on-dark);border-color:var(--ink)}
.dark .sheet-head{border-color:var(--dark-line);color:var(--on-dark-2)}
.dark .lede{color:var(--on-dark-2)}
.head-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;align-items:end;margin-bottom:clamp(40px,5vw,64px)}
@media (max-width:860px){.head-row{grid-template-columns:1fr;gap:20px}}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--green);color:var(--paper);text-decoration:none;font-family:var(--mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding:14px 20px;border:1px solid var(--green);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.btn:hover{background:var(--ink);border-color:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.dark .btn.ghost{color:var(--on-dark);border-color:var(--on-dark)}
.dark .btn.ghost:hover{background:var(--on-dark);color:var(--dark)}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
:focus-visible{outline:2px solid var(--green);outline-offset:3px}
/* photo placeholder in drawing convention */
.ph{position:relative;overflow:hidden;background:var(--paper-2);border:1px solid var(--ink);min-height:120px}
/* a frame with the real photo: the photo fills it, labels stay on top */
.ph>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}.ph.has-img::before{display:none}.ph .tagp,.ph .hover{z-index:2}
.ph::before{content:"";position:absolute;inset:0;background:
  linear-gradient(to top right,transparent calc(50% - .5px),var(--rule) calc(50% - .5px),var(--rule) calc(50% + .5px),transparent calc(50% + .5px)),
  linear-gradient(to bottom right,transparent calc(50% - .5px),var(--rule) calc(50% - .5px),var(--rule) calc(50% + .5px),transparent calc(50% + .5px))}
.ph .cap{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;gap:10px;padding:10px 12px;background:color-mix(in srgb,var(--paper) 92%,transparent);border-top:1px solid var(--rule);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2)}
.ph .tagp{position:absolute;top:10px;left:10px;font-family:var(--mono);font-size:11px;text-transform:uppercase;background:var(--paper);border:1px solid var(--ink);padding:3px 7px}
.ph.tone-1{background:#dfe5df}.ph.tone-2{background:#e6e3dc}.ph.tone-3{background:#d9e2dd}.ph.tone-4{background:#e3e6e1}
.dark .ph{background:#1a211e;border-color:var(--dark-line)}.dark .ph::before{opacity:.35}
.dark .ph .cap{background:rgba(15,20,18,.9);border-color:var(--dark-line);color:var(--on-dark-2)}
/* HERO */
.hero-top{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:stretch}
.hero-copy{display:flex;flex-direction:column;justify-content:space-between;gap:36px}
.hero-photo{min-height:560px;width:100%}
@media (max-width:900px){.hero-top{grid-template-columns:1fr}.hero-photo{aspect-ratio:4/3;min-height:0}}
.points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.points div{padding:18px 18px 0 0;display:flex;flex-direction:column;gap:6px}
.points div+div{padding-left:18px;border-left:1px solid var(--rule)}
.points b{font-family:var(--display);font-size:20px;text-transform:uppercase}
.points span{font-size:14px;color:var(--ink-2)}
@media (max-width:560px){.points{grid-template-columns:1fr}.points div+div{border-left:0;padding-left:0;border-top:1px solid var(--rule);padding-top:14px}}
/* configurator */
.config{margin-top:clamp(56px,7vw,96px);display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:0;border:1px solid var(--ink)}
@media (max-width:900px){.config{grid-template-columns:1fr}}
.drawing{position:relative;background:var(--paper);user-select:none;touch-action:pan-y;cursor:ew-resize;border-right:1px solid var(--ink)}
@media (max-width:900px){.drawing{border-right:0;border-bottom:1px solid var(--ink)}}
.drawing svg{display:block;width:100%;height:auto}
.drawing .t1,.drawing .t2{position:absolute;top:12px;color:var(--ink-2)}.drawing .t1{left:14px}.drawing .t2{right:14px}
.handle{position:absolute;top:0;bottom:0;width:0;border-left:1px solid var(--green);pointer-events:none}
.handle span{position:absolute;top:50%;left:-48px;transform:translateY(-50%);width:96px;text-align:center;background:var(--green);color:var(--paper);padding:6px 0}
.panel{padding:24px;display:flex;flex-direction:column;gap:22px;background:var(--paper)}
.panel h4{margin:0 0 10px;font-family:var(--mono);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
.sw{display:flex;flex-wrap:wrap;gap:8px}
.sw button{width:44px;height:44px;border:1px solid var(--ink);cursor:pointer;padding:0;position:relative}
.sw button[aria-pressed="true"]::after{content:"";position:absolute;inset:-5px;border:1px solid var(--green)}
.sw-name{margin-top:8px;font-family:var(--display);font-size:20px;text-transform:uppercase}
.panel .spec{font-size:14px;color:var(--ink-2);display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--rule);padding-top:14px}
.panel .spec div{display:flex;justify-content:space-between;gap:10px}
.panel .spec b{font-weight:500;color:var(--ink)}
/* trust */
.trust{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--dark-line)}
.trust div{padding:28px 20px 0 0;display:flex;flex-direction:column;gap:8px}
.trust div+div{padding-left:24px;border-left:1px solid var(--dark-line)}
.trust b{font-family:var(--display);font-size:clamp(48px,6vw,84px);line-height:.9;color:var(--green-hi);font-variant-numeric:tabular-nums;font-weight:700}
.trust span{color:var(--on-dark-2);font-size:15px;max-width:22ch}
@media (max-width:860px){.trust{grid-template-columns:1fr 1fr;row-gap:28px}.trust div:nth-child(3){border-left:0;padding-left:0}}
.brands{display:flex;flex-wrap:wrap;justify-content:space-between;gap:18px 32px;margin-top:clamp(48px,6vw,80px);padding-top:28px;border-top:1px solid var(--dark-line)}
.brands span{font-family:var(--display);font-weight:700;font-size:clamp(20px,2.4vw,30px);letter-spacing:.14em;color:var(--on-dark-2)}
/* projects gallery */
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filters button{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.05em;background:transparent;border:1px solid var(--ink);padding:9px 14px;cursor:pointer;color:var(--ink)}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.gal{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(90px,9vw,120px);gap:16px;margin-top:28px}
.gal .item{grid-column:span 4;grid-row:span 3;cursor:zoom-in;transition:opacity .3s,transform .3s;text-align:left;padding:0;font:inherit;color:inherit}
.gal .item.w8{grid-column:span 8}.gal .item.w6{grid-column:span 6}.gal .item.h4{grid-row:span 4}.gal .item.h2{grid-row:span 2}
.gal .item[hidden]{display:none}
.gal .item:hover .ph{border-color:var(--green)}
.gal .item .ph{height:100%;min-height:0}
.gal .item .hover{position:absolute;inset:auto 0 0 0;padding:14px;background:var(--ink);color:var(--paper);transform:translateY(100%);transition:transform .3s;display:flex;flex-direction:column;gap:4px;z-index:2}
.gal .item:hover .hover,.gal .item:focus-visible .hover{transform:none}
.gal .hover b{font-family:var(--display);font-size:20px;text-transform:uppercase}
.gal .hover span{font-family:var(--mono);font-size:11px;text-transform:uppercase;color:var(--green-hi)}
@media (max-width:760px){.gal{grid-template-columns:1fr 1fr;grid-auto-rows:110px}.gal .item,.gal .item.w8,.gal .item.w6{grid-column:span 2;grid-row:span 2}}
/* lightbox */
[hidden]{display:none!important}
.lb{position:fixed;inset:0;z-index:50;background:rgba(15,20,18,.94);display:grid;grid-template-rows:auto 1fr auto;padding:calc(16px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));gap:14px;color:var(--on-dark)}
.lb .bar{display:flex;justify-content:space-between;align-items:center;gap:12px}
.lb button{background:transparent;border:1px solid var(--on-dark-2);color:var(--on-dark);font-family:var(--mono);font-size:12px;text-transform:uppercase;padding:10px 14px;cursor:pointer}
.lb .stage{min-height:0;display:grid;place-items:center}
.lb .stage .ph{width:min(100%,1100px);aspect-ratio:3/2;max-height:100%}
.lb .meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;max-width:1100px;width:100%;margin:0 auto}
.lb .meta b{font-family:var(--display);font-size:26px;text-transform:uppercase}
.lb .meta dl{display:flex;gap:24px;margin:0;flex-wrap:wrap}
.lb .meta dt{font-family:var(--mono);font-size:11px;text-transform:uppercase;color:var(--on-dark-2)}
.lb .meta dd{margin:2px 0 0}
/* before/after */
.ba{position:relative;aspect-ratio:16/9;border:1px solid var(--ink);overflow:hidden;cursor:ew-resize;user-select:none;touch-action:pan-y}
.ba .ph{position:absolute;inset:0;border:0}
.ba .after{clip-path:inset(0 0 0 50%)}
.ba .line{position:absolute;top:0;bottom:0;left:50%;border-left:2px solid var(--green);pointer-events:none}
.ba .line span{position:absolute;top:50%;left:-24px;width:48px;height:48px;border-radius:50%;background:var(--green);color:var(--paper);display:grid;place-items:center;transform:translateY(-50%);font-family:var(--mono)}
.ba-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--ink);border-top:0}
.ba-meta div{padding:16px 18px;display:flex;flex-direction:column;gap:2px}
.ba-meta div+div{border-left:1px solid var(--rule)}
.ba-meta b{font-family:var(--display);font-size:22px;text-transform:uppercase}
@media (max-width:700px){.ba{aspect-ratio:4/3}.ba-meta{grid-template-columns:1fr 1fr}.ba-meta div:nth-child(3){border-left:0}}
/* problems */
.cards4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--dark-line);border-left:1px solid var(--dark-line)}
.cards4 article{border-right:1px solid var(--dark-line);border-bottom:1px solid var(--dark-line);padding:24px;display:flex;flex-direction:column;gap:16px;min-height:300px;transition:background .25s}
.cards4 article:hover{background:#16201c}
.cards4 .k{display:flex;justify-content:space-between;color:var(--on-dark-2)}
.cards4 .k b{color:var(--green-hi);font-weight:500}
.cards4 p{margin:auto 0 0;color:var(--on-dark-2);font-size:15px}
.cards4 .fix{color:var(--on-dark);border-top:1px solid var(--dark-line);padding-top:12px;font-size:15px}
.cards4 .fix::before{content:"Boreal: ";font-family:var(--mono);font-size:11px;text-transform:uppercase;color:var(--green-hi)}
@media (max-width:1000px){.cards4{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.cards4{grid-template-columns:1fr}.cards4 article{min-height:0}}
/* services */
.svc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.svc a.card{text-decoration:none;display:flex;flex-direction:column;gap:18px;border:1px solid var(--ink);background:var(--paper);padding:14px 14px 22px;transition:transform .25s,box-shadow .25s}
.svc a.card:hover{transform:translateY(-4px);box-shadow:6px 6px 0 var(--green)}
.svc .ph{aspect-ratio:4/5}
.svc .row{display:flex;justify-content:space-between;align-items:baseline;padding:0 6px}
.svc .row .go{color:var(--green)}
.svc h3,.svc ul{padding:0 6px}
.svc ul{margin:0;list-style:none;font-size:15px;color:var(--ink-2);display:flex;flex-direction:column;gap:6px}
.svc ul li{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--rule);padding-top:6px}
.svc ul li i{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--ink-2)}
@media (max-width:900px){.svc{grid-template-columns:1fr}.svc .ph{aspect-ratio:16/10}}
.more{display:flex;flex-wrap:wrap;gap:8px;margin-top:36px}
.more a{font-family:var(--mono);font-size:12px;text-transform:uppercase;text-decoration:none;border:1px solid var(--rule);padding:9px 12px;background:var(--paper);transition:border-color .2s,color .2s}
.more a:hover{border-color:var(--green);color:var(--green)}
/* details */
.details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--ink)}
.details figure{margin:0;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:20px;display:flex;flex-direction:column;gap:14px;background:var(--paper)}
.details svg{width:100%;height:auto;display:block}
.details figcaption{display:flex;flex-direction:column;gap:6px}
.details figcaption b{font-family:var(--display);text-transform:uppercase;font-size:21px}
.details figcaption span{font-size:14px;color:var(--ink-2)}
@media (max-width:1000px){.details{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.details{grid-template-columns:1fr}}
/* materials carousel */
.car-wrap{position:relative}
.car{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(220px,24vw,300px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:16px;scrollbar-width:thin}
.car article{scroll-snap-align:start;border:1px solid var(--ink);background:var(--paper);display:flex;flex-direction:column}
.car .chip{aspect-ratio:1/1;border-bottom:1px solid var(--ink)}
.car .info{padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.car .info b{font-family:var(--display);font-size:20px;text-transform:uppercase}
.car .info span{font-size:14px;color:var(--ink-2)}
.car-nav{display:flex;gap:8px}
.car-nav button{width:46px;height:46px;border:1px solid var(--ink);background:var(--paper);cursor:pointer;font-family:var(--mono);font-size:16px;color:var(--ink)}
.car-nav button:hover{background:var(--ink);color:var(--paper)}
/* process stepper */
.stepper{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(28px,4vw,56px);align-items:start}
@media (max-width:900px){.stepper{grid-template-columns:1fr}}
.steps{display:flex;flex-direction:column;border-top:1px solid var(--ink)}
.steps button{all:unset;cursor:pointer;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:center;padding:20px 0;border-bottom:1px solid var(--ink)}
.steps button:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.steps .n{width:32px;height:32px;border:1px solid var(--ink);display:grid;place-items:center;font-family:var(--mono);font-size:12px}
.steps h3{font-size:clamp(24px,2.6vw,34px)}
.steps .pay{color:var(--ink-2)}
.steps button[aria-selected="true"] .n{background:var(--green);border-color:var(--green);color:var(--paper)}
.steps button[aria-selected="true"] h3{color:var(--green)}
.step-panel{border:1px solid var(--ink);background:var(--paper)}
.step-panel .ph{aspect-ratio:16/10;border:0;border-bottom:1px solid var(--ink)}
.step-panel .txt{padding:22px 24px;display:flex;flex-direction:column;gap:10px}
.step-panel ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;color:var(--ink-2);font-size:15px}
.step-panel ul li::before{content:"→ ";color:var(--green)}
/* workshop strip */
.shop{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(80px,8vw,110px);gap:16px}
.shop .v{grid-column:span 7;grid-row:span 4}
.shop .a{grid-column:span 5;grid-row:span 2}
.shop .b{grid-column:span 5;grid-row:span 2}
.shop .play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;background:var(--green);display:grid;place-items:center;z-index:2;color:var(--paper);font-size:22px;border:0;cursor:pointer}
@media (max-width:760px){.shop{grid-template-columns:1fr 1fr;grid-auto-rows:100px}.shop .v{grid-column:span 2;grid-row:span 3}.shop .a,.shop .b{grid-column:span 1;grid-row:span 2}}
/* warranty */
.spec5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--dark-line);border-left:1px solid var(--dark-line)}
.spec5 div{border-right:1px solid var(--dark-line);border-bottom:1px solid var(--dark-line);padding:24px;display:flex;flex-direction:column;gap:8px}
.spec5 b{font-family:var(--display);font-size:clamp(40px,4.4vw,60px);line-height:1;color:var(--green-hi);font-variant-numeric:tabular-nums}
.spec5 span{color:var(--on-dark-2);font-size:14px}
@media (max-width:1000px){.spec5{grid-template-columns:1fr 1fr}}
/* audience + map */
.aud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.aud article{border:1px solid var(--ink);background:var(--paper);display:flex;flex-direction:column}
.aud .ph{aspect-ratio:3/2;border:0;border-bottom:1px solid var(--ink)}
.aud .txt{padding:20px;display:flex;flex-direction:column;gap:8px}
.aud p{margin:0;color:var(--ink-2);font-size:15px}
@media (max-width:860px){.aud{grid-template-columns:1fr}}
.map{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;margin-top:clamp(56px,7vw,96px);align-items:center}
.map svg{width:100%;height:auto;max-height:520px}
.map .city{cursor:pointer}
.map .city circle{fill:var(--paper);stroke:var(--ink);stroke-width:1.2;transition:r .2s,fill .2s}
.map .city.hq circle{fill:var(--green);stroke:var(--green)}
.map .city:hover circle,.map .city.on circle{fill:var(--green);stroke:var(--green)}
.map .city text{font-family:var(--mono);font-size:11px;fill:var(--ink-2);text-transform:uppercase}
.map .readout{border:1px solid var(--ink);padding:22px;background:var(--paper);display:flex;flex-direction:column;gap:10px}
.map .readout b{font-family:var(--display);font-size:clamp(32px,4vw,48px);text-transform:uppercase;line-height:1}
.map .readout dl{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:0;font-size:15px}
.map .readout dt{font-family:var(--mono);font-size:11px;text-transform:uppercase;color:var(--ink-2);padding-top:3px}
.map .readout dd{margin:0}
.map .readout .btn{margin-top:18px}
@media (max-width:860px){.map{grid-template-columns:1fr}}
/* faq */
.faq{border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--ink)}
.faq summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:48px minmax(0,1fr) 28px;gap:12px;align-items:center;padding:22px 0;font-family:var(--display);font-size:clamp(20px,2vw,26px);text-transform:uppercase;font-weight:600}
.faq summary::-webkit-details-marker{display:none}
.faq summary .i{font-family:var(--mono);font-size:12px;color:var(--ink-2);font-weight:400}
.faq summary .pm{width:28px;height:28px;border:1px solid var(--ink);display:grid;place-items:center;font-family:var(--mono);font-size:14px;transition:transform .2s}
.faq details[open] summary .pm{transform:rotate(45deg);background:var(--green);border-color:var(--green);color:var(--paper)}
.faq details p{margin:0 0 24px 60px;max-width:68ch;color:var(--ink-2)}
@media (max-width:560px){.faq details p{margin-left:0}}
/* mini quiz */
.quiz{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:start}
@media (max-width:900px){.quiz{grid-template-columns:1fr}}
.qbox{border:1px solid var(--on-dark-2);padding:clamp(20px,3vw,32px);display:flex;flex-direction:column;gap:18px}
.qbox .prog{display:flex;gap:6px}
.qbox .prog i{flex:1;height:3px;background:var(--dark-line)}
.qbox .prog i.on{background:var(--green-hi)}
.qbox .opts{display:flex;flex-wrap:wrap;gap:8px}
.qbox .opts button{background:transparent;color:var(--on-dark);border:1px solid var(--on-dark-2);padding:12px 16px;font:inherit;font-size:15px;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.qbox .opts button:hover{border-color:var(--green-hi)}
.qbox .opts button[aria-pressed="true"]{background:var(--green-hi);border-color:var(--green-hi);color:var(--dark)}
.qbox .q{font-family:var(--display);font-size:clamp(24px,2.6vw,32px);text-transform:uppercase;font-weight:600;line-height:1.05}
.qbox .foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;color:var(--on-dark-2)}
.person{display:flex;gap:14px;align-items:center;margin-top:32px}
.person .ph{width:64px;height:64px;min-height:0;border-radius:50%}
.person b{display:block;font-family:var(--display);font-size:20px;text-transform:uppercase}
.person span{color:var(--on-dark-2);font-size:14px}
/* svg drawing */
.ln{fill:none;stroke:var(--ink);stroke-width:1.2}
.ln-th{fill:none;stroke:var(--ink);stroke-width:.6}
.dim{fill:none;stroke:var(--green);stroke-width:.8}
.dimt{fill:var(--green);font-family:var(--mono);font-size:11px}
.lbl{fill:var(--ink-2);font-family:var(--mono);font-size:10.5px;text-transform:uppercase}
.call{fill:var(--paper);stroke:var(--ink);stroke-width:1}
.callt{fill:var(--ink);font-family:var(--mono);font-size:11px}
/* reveal: visible at rest, subtle lift when JS adds .in */
.rv{transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.rv.pre{transform:translateY(18px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}.rv.pre{transform:none}}
/* estimator */
.calc{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);border:1px solid var(--ink)}
@media (max-width:1000px){.calc{grid-template-columns:1fr}}
.calc-vis{border-right:1px solid var(--ink);display:flex;flex-direction:column;min-width:0}
@media (min-width:1001px){.calc-vis{position:sticky;top:12px;align-self:start}}
@media (max-width:1000px){.calc-vis{border-right:0;border-bottom:1px solid var(--ink)}}
.vis-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
@media (max-width:560px){.vis-row{grid-template-columns:1fr}}
.plan{position:relative;border-right:1px solid var(--ink);padding:10px}
@media (max-width:560px){.plan{border-right:0;border-bottom:1px solid var(--ink)}}
.plan svg{width:100%;height:auto;display:block}
.plan-t{color:var(--ink-2)}
.result{padding:18px 20px;display:flex;flex-direction:column;gap:4px;background:var(--dark);color:var(--on-dark)}
.result .mono{color:var(--on-dark-2)}
.price{font-family:var(--display);font-weight:700;font-size:clamp(34px,4vw,52px);line-height:1;color:var(--green-hi);font-variant-numeric:tabular-nums}
.sched{margin-top:14px;display:flex;flex-direction:column;gap:7px}
.sched .row{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13px}
.sched .row span:first-child{font-family:var(--mono);font-size:11px;text-transform:uppercase;color:var(--on-dark-2)}
.sched .track{height:10px;background:var(--dark-line);position:relative}
.sched .bar{position:absolute;top:0;bottom:0;background:var(--green-hi);transition:left .35s,width .35s}
.sched .bar.ct{background:#c9b37e}
.sched .total{border-top:1px solid var(--dark-line);padding-top:8px;margin-top:2px;display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px;text-transform:uppercase}
.sched .total b{color:var(--on-dark);font-weight:500}
.calc-ctl{display:flex;flex-direction:column;min-width:0;background:var(--paper)}
.tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-bottom:1px solid var(--ink)}
.tabs button{all:unset;cursor:pointer;padding:12px 6px;text-align:center;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.03em;border-right:1px solid var(--rule);color:var(--ink-2);display:flex;flex-direction:column;gap:2px}
.tabs button:last-child{border-right:0}
.tabs button b{font-weight:500;color:var(--ink);font-size:12px}
.tabs button[aria-selected="true"]{background:var(--green);color:var(--green-wash)}
.tabs button[aria-selected="true"] b{color:var(--paper)}
.tabs button:focus-visible{outline:2px solid var(--green);outline-offset:-3px}
.tabpanes{padding:22px 24px;flex:1}
.pane h4{margin:22px 0 10px;font-family:var(--mono);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
.pane h4:first-child{margin-top:0}
.opt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.opt-grid button{all:unset;cursor:pointer;border:1px solid var(--rule);padding:10px 8px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13px;background:var(--paper)}
.opt-grid button svg{width:52px;height:40px}
.opt-grid button svg path{fill:none;stroke:var(--ink);stroke-width:3}
.opt-grid button[aria-pressed="true"]{border-color:var(--green);background:var(--green-wash)}
.opt-grid button[aria-pressed="true"] svg path{stroke:var(--green)}
.opt-grid button:focus-visible{outline:2px solid var(--green)}
.slider{display:grid;grid-template-columns:28px minmax(0,1fr) 96px;gap:12px;align-items:center;padding:6px 0}
.slider .wl{font-family:var(--mono);font-size:12px;width:24px;height:24px;border:1px solid var(--ink);display:grid;place-items:center}
.slider input{width:100%;accent-color:var(--green)}
.slider output{font-variant-numeric:tabular-nums;text-align:right;font-size:14px}
.slider output small{display:block;font-family:var(--mono);font-size:10.5px;color:var(--ink-2)}
.seg{display:flex;flex-wrap:wrap;border:1px solid var(--ink);width:fit-content;max-width:100%}
.seg button{all:unset;cursor:pointer;padding:9px 14px;font-size:14px;border-right:1px solid var(--rule)}
.seg button:last-child{border-right:0}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.seg button:focus-visible{outline:2px solid var(--green);outline-offset:-3px}
.stepper-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--rule)}
.stepper-row b{display:block;font-weight:600;font-size:15px}
.stepper-row span{font-size:13px;color:var(--ink-2)}
.num{display:flex;align-items:center;border:1px solid var(--ink);flex-shrink:0}
.num button{all:unset;cursor:pointer;width:36px;height:36px;display:grid;place-items:center;font-size:18px}
.num button:hover{background:var(--green-wash)}
.num button:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
.num output{width:34px;text-align:center;font-family:var(--mono);border-left:1px solid var(--rule);border-right:1px solid var(--rule);line-height:36px}
.mat-list{display:flex;flex-direction:column;border-top:1px solid var(--rule)}
.mat-list button{all:unset;cursor:pointer;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 6px;border-bottom:1px solid var(--rule)}
.mat-list button i{width:28px;height:28px;border:1px solid var(--ink)}
.mat-list button b{font-weight:600;font-size:15px;display:block}
.mat-list button small{font-size:12.5px;color:var(--ink-2)}
.mat-list button em{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--ink-2)}
.mat-list button[aria-pressed="true"]{background:var(--green-wash)}
.mat-list button[aria-pressed="true"] b{color:var(--green)}
.mat-list button:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
.checks{display:flex;flex-direction:column;border-top:1px solid var(--rule)}
.checks label{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--rule);cursor:pointer;font-size:15px}
.checks input{accent-color:var(--green);width:18px;height:18px}
.checks em{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--ink-2)}
.summary{display:flex;flex-direction:column;border-top:1px solid var(--rule);font-size:14px}
.summary div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--rule)}
.summary div span:first-child{color:var(--ink-2)}
.summary div.tot{font-weight:600;font-size:16px}
.lead{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.lead label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--ink-2);min-width:0}
.lead input[type=text],.lead input[type=tel],.lead input[type=email],.lead textarea{font:inherit;font-size:15px;color:var(--ink);background:var(--paper-2);border:1px solid var(--ink);border-radius:0;padding:10px 12px;width:100%}
.lead .f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:520px){.lead .f2{grid-template-columns:1fr}}
.lead .consent{flex-direction:row;align-items:flex-start;gap:10px}
.lead .consent input{accent-color:var(--green);margin-top:3px}
.lead .err{margin:0;color:#9b2c1f;font-size:14px}
.sent{margin-top:20px;border:1px solid var(--green);background:var(--green-wash);padding:18px;display:flex;flex-direction:column;gap:6px}
.sent b{font-family:var(--display);font-size:24px;text-transform:uppercase;color:var(--green)}
.ctl-foot{display:flex;justify-content:space-between;gap:10px;padding:14px 24px;border-top:1px solid var(--ink)}
.ctl-foot .btn{padding:11px 16px}
.ctl-foot .btn[disabled]{opacity:.35;pointer-events:none}
.disclaimer{color:var(--ink-2);margin:16px 0 0}

/* v5: refined dark sheets (deep green), hero drawing on top, full-width mobile CTAs */
.dark,.result{--green-hi:#a6dcbf}
.dark{border-color:#17372b}
.dark .ph{background:#1d4335;border-color:var(--dark-line)}.dark .ph .cap{background:rgba(23,55,43,.92)}
.result{background:var(--dark)}
.sched .track{background:rgba(233,241,236,.1)}
.sched .bar.ct{background:#d8c08a}
.lb{--on-dark:#e9ede9;--on-dark-2:#9aa59f}
.hero-draw{border:1px solid var(--ink);margin-bottom:clamp(36px,5vw,64px)}
.hero-draw .drawing{border:0}
.calc-vis .ba{border:0;border-bottom:1px solid var(--ink)}
.vis-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-bottom:1px solid var(--ink)}
.vis-row .plan+.plan{border-right:0}
@media (max-width:560px){.vis-row{grid-template-columns:1fr}.vis-row .plan{border-right:0}.vis-row .plan+.plan{border-top:1px solid var(--ink)}}
.front-v{display:flex;flex-direction:column}.front-v svg{flex:1;max-height:260px}
#front .dimt{font-size:30px}#front .ln{stroke-width:2.4}#front .ln-th{stroke-width:1.3}#front .dim{stroke-width:1.5}
@media (max-width:560px){.cta-row .btn{flex:1 1 100%;justify-content:center}}
/* tight leading for all display-font titles */
.points b,.sw-name,.brands span,.gal .hover b,.lb .meta b,.ba-meta b,.details figcaption b,.car .info b,.faq summary,.person b,.sent b,.cards4 h3,.svc h3,.stepper-row b,.mat-list button b{line-height:1.05}

/* segmented choices: wrap into an even grid, lines drawn by the 1px gaps */
.seg{display:flex;flex-wrap:wrap;gap:1px;background:var(--rule);border:1px solid var(--ink);width:auto;max-width:100%}
.seg button{all:unset;box-sizing:border-box;cursor:pointer;flex:1 1 auto;text-align:center;padding:10px 14px;font-size:14px;line-height:1.25;background:var(--paper)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.seg button:focus-visible{outline:2px solid var(--green);outline-offset:-3px}

/* phones: photo captions stay on one line, estimator tabs fit five across */
.ph .cap span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ph .cap span:last-child{flex-shrink:0;white-space:nowrap}
@media (max-width:480px){.ph .cap{font-size:10px;padding:8px 10px}.tabs button{padding:10px 2px;font-size:9.5px;letter-spacing:0}.tabs button b{font-size:10.5px}}
