/* Victory Spray Foam — v2 "job site" design.
   Ben's brand: red, black and white. Black carries the structure (header, bands, footer), red is the action
   (quote buttons, highlights), white and poured-concrete gray are the grounds. Foam cream is a small accent on dark.
   Type: Big Shoulders (condensed display, Chicago industrial signage) for headlines, its stencil cut for labels
   (crate and equipment markings, a nod to veteran-owned), Libre Franklin (American gothic) for reading.
   Every text color passes WCAG AA on the ground it sits on. */

@font-face{font-family:"Big Shoulders";src:url(/assets/fonts/big-shoulders-500-900.woff2) format("woff2");font-weight:500 900;font-style:normal;font-display:swap}
@font-face{font-family:"Big Shoulders Stencil";src:url(/assets/fonts/big-shoulders-stencil-700-900.woff2) format("woff2");font-weight:700 900;font-style:normal;font-display:swap}
@font-face{font-family:"Libre Franklin";src:url(/assets/fonts/libre-franklin-400-800.woff2) format("woff2");font-weight:400 800;font-style:normal;font-display:swap}
@font-face{font-family:"Libre Franklin";src:url(/assets/fonts/libre-franklin-italic-400.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}

:root{
  --paper:#FFFFFF;
  --concrete:#EFEEEB;   /* light alternate ground */
  --ink:#0D0D0D;        /* header, bands, footer, text */
  --char:#161616;       /* dark cards on ink */
  --ink-2:#3B3B3B;
  --ink-3:#5E5E5E;
  --rule:#DEDCD7;
  --red:#B31217;
  --red-2:#8F0E12;
  --red-light:#FF6B6F;  /* red text on black only */
  --foam:#EFE3C2;       /* cured-foam cream, accents on black */
  --on-dark:#ECECEC;
  --on-dark-2:#A6A6A6;
  --dark-rule:#2B2B2B;
  --d:"Big Shoulders","Arial Narrow","Helvetica Neue",Arial,sans-serif;
  --s:"Big Shoulders Stencil","Big Shoulders","Arial Narrow",Arial,sans-serif;
  --f:"Libre Franklin",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --max:1320px; --gut:clamp(20px,4vw,56px); --head:76px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.62 var(--f);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{margin:0;font-family:var(--d);font-weight:800;text-transform:uppercase;letter-spacing:.005em;line-height:.92;text-wrap:balance}
p{margin:0}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:16px;top:12px;z-index:100;background:var(--paper);padding:10px 14px}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.label{display:inline-flex;align-items:center;gap:10px;font:800 15px/1.2 var(--s);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.label::before{content:"";width:22px;height:3px;background:currentColor}
.lede{margin-top:22px;font-size:clamp(18px,1.5vw,21px);line-height:1.55;color:var(--ink-2);max-width:48ch}
.sec{padding-block:clamp(72px,9vw,128px)}
.nowrap{white-space:nowrap}
.flush{margin-top:0}
.more{margin-top:24px}
.dark{background:var(--ink);color:var(--on-dark)}
.dark .label{color:var(--foam)}
.dark h2,.dark h3{color:#fff}
.dark .lede,.dark p{color:var(--on-dark)}
.alt{background:var(--concrete)}

/* header */
.site-head{position:sticky;top:0;z-index:50;background:var(--ink);border-bottom:1px solid var(--dark-rule)}
.site-head .wrap{display:flex;align-items:center;gap:26px;height:var(--head)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;white-space:nowrap;color:#fff}
.brand img{width:54px;height:54px;flex:none}
.brand b{font:900 28px/1 var(--d);letter-spacing:.02em;color:#fff}
.brand-txt{display:grid;gap:3px}
.brand-sub{font:700 13px/1 var(--s);letter-spacing:.16em;text-transform:uppercase;color:var(--foam)}
.nav{display:flex;gap:24px;margin-left:auto}
.nav a{text-decoration:none;font-weight:600;font-size:14.5px;color:var(--on-dark);letter-spacing:.01em}
.nav a:hover,.nav a[aria-current="page"]{color:var(--red-light)}
.head-cta{display:flex;align-items:center;gap:18px}
.head-phone{text-decoration:none;font:800 19px/1 var(--d);letter-spacing:.03em;color:#fff;white-space:nowrap}
.menu-btn{display:none;margin-left:auto;font:800 17px/1 var(--d);letter-spacing:.08em;text-transform:uppercase;color:#fff;background:none;border:2px solid #fff;border-radius:0;min-height:42px;padding:0 16px;cursor:pointer}

/* buttons + links */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border:2px solid var(--ink);border-radius:0;font:800 18px/1 var(--d);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:transparent;text-decoration:none;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,transform .2s}
.btn:hover{background:var(--ink);color:#fff}
.btn-solid{background:var(--red);border-color:var(--red);color:#fff}
.btn-solid:hover{background:var(--red-2);border-color:var(--red-2);color:#fff}
.btn-light{border-color:#fff;color:#fff}
.btn-light:hover{background:#fff;color:var(--ink)}
.head-cta .btn{min-height:46px;padding:0 20px;font-size:17px}
.link{font-weight:700;color:var(--red);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px}
.link:hover{color:var(--red-2)}
.link::after{content:"\00a0\2192"}
.link.plain::after{content:none}
.dark .link,.on-img .link,.band .link,.strip-band .link,.hero .link,.page-hero .link,.estimate .link{color:#fff}
.dark .link:hover,.on-img .link:hover,.band .link:hover,.strip-band .link:hover,.hero .link:hover,.page-hero .link:hover,.estimate .link:hover{color:var(--foam)}

/* home hero: video */
.hero{position:relative;background:var(--ink);color:#fff;overflow:hidden;isolation:isolate}
.hero-media{position:absolute;inset:0;z-index:-2}
.hero-media img,.hero-media video{width:100%;height:100%;object-fit:cover}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(13,13,13,.92) 0%,rgba(13,13,13,.72) 42%,rgba(13,13,13,.18) 100%),linear-gradient(0deg,rgba(13,13,13,.85) 0%,rgba(13,13,13,0) 38%)}
.hero .wrap{min-height:clamp(560px,82vh,860px);display:grid;align-content:end;padding-block:clamp(96px,12vw,150px) 40px}
.hero .label{color:var(--foam)}
.hero h1{margin-top:18px;font-size:clamp(52px,8.4vw,128px);line-height:.88;letter-spacing:-.005em;max-width:15ch;color:#fff}
.hero h1 .hl{display:inline-block;background:var(--red);color:#fff;padding:0 .12em;margin:0 -.04em;line-height:.98}
.hero .lede{color:var(--on-dark);max-width:44ch}
.actions{margin-top:34px;display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center}
.vid-toggle{position:absolute;right:var(--gut);top:24px;min-width:44px;height:44px;padding:0 10px;border:2px solid rgba(255,255,255,.7);background:rgba(13,13,13,.4);color:#fff;font:800 13px/1 var(--d);letter-spacing:.08em;cursor:pointer}
.vid-toggle:hover{border-color:#fff}
.proof{list-style:none;margin:56px 0 0;padding:22px 0 0;border-top:1px solid rgba(255,255,255,.25);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px 28px}
.proof li{display:grid;gap:4px;font-size:14px;line-height:1.35;color:var(--on-dark)}
.proof b{font:800 26px/1 var(--d);letter-spacing:.02em;text-transform:uppercase;color:#fff}
.proof .stars{color:var(--foam);letter-spacing:.08em}
.proof a{display:grid;gap:4px;text-decoration:none;color:inherit}
.proof a:hover b{color:var(--foam)}
@media (prefers-reduced-motion:no-preference){
  .hero .label,.hero h1,.hero .lede,.hero .actions,.proof{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
  .hero h1{animation-delay:.08s}.hero .lede{animation-delay:.18s}.hero .actions{animation-delay:.26s}.proof{animation-delay:.36s}
}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}

/* ticker */
.ticker{background:var(--red);color:#fff;overflow:hidden;border-block:1px solid var(--red-2)}
.ticker-track{display:flex;width:max-content}
.ticker ul{display:flex;list-style:none;margin:0;padding:0}
.ticker li{display:flex;align-items:center;gap:26px;padding:16px 0 16px 26px;font:800 22px/1 var(--s);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.ticker li::after{content:"";width:9px;height:9px;background:#fff;transform:rotate(45deg)}
@media (prefers-reduced-motion:no-preference){.ticker-track{animation:tick 48s linear infinite}.ticker:hover .ticker-track{animation-play-state:paused}}
@keyframes tick{to{transform:translateX(-50%)}}

/* section heads */
.head-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:18px 40px}
.head-row h2,.sec-title{margin-top:14px;font-size:clamp(42px,6vw,92px)}
.head-row p{max-width:44ch;color:var(--ink-2)}
.dark .head-row p{color:var(--on-dark)}

/* service tiles */
.tabs{display:flex;flex-wrap:wrap;gap:10px;margin-top:36px}
.tab{font:800 18px/1 var(--d);letter-spacing:.08em;text-transform:uppercase;padding:14px 20px;border:2px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer}
.tab[aria-selected="true"]{background:var(--ink);color:#fff}
.tiles{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.tile a{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:var(--ink);color:#fff;text-decoration:none;isolation:isolate}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.tile a::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(13,13,13,.9) 0%,rgba(13,13,13,.35) 45%,rgba(13,13,13,.05) 100%)}
.tile .tile-body{position:absolute;left:0;right:0;bottom:0;padding:20px 20px 22px;display:grid;gap:6px;background:transparent}
.tile b{font:800 clamp(28px,2.4vw,36px)/.95 var(--d);text-transform:uppercase;letter-spacing:.01em;color:#fff}
.tile small{font-size:14px;line-height:1.4;color:var(--on-dark)}
.tile .go{position:absolute;right:16px;top:16px;width:40px;height:40px;display:grid;place-items:center;background:var(--red);color:#fff;font-weight:700;transform:translateY(-6px);opacity:0;transition:opacity .25s,transform .25s}
.tile a:hover img,.tile a:focus-visible img{transform:scale(1.06)}
.tile a:hover .go,.tile a:focus-visible .go{opacity:1;transform:none}
.tiles .tile-wide{grid-column:span 2}
.tile-wide a{aspect-ratio:8/5}
.tiles-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tiles-rel{margin-top:0}
.tiles-rel .tile a{aspect-ratio:1/1}
.tiles-rel b{font-size:26px}

/* foam finder */
.finder{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(28px,5vw,80px);margin-top:44px;align-items:start}
.finder-list{display:grid;gap:8px}
.finder-btn{display:flex;justify-content:space-between;align-items:center;gap:14px;text-align:left;width:100%;padding:16px 18px;border:1px solid var(--dark-rule);background:var(--char);color:var(--on-dark);font:800 22px/1 var(--d);letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
.finder-btn::after{content:"\2192";font-family:var(--f);font-weight:600;font-size:17px;color:var(--on-dark-2)}
.finder-btn:hover{border-color:var(--on-dark-2)}
.finder-btn[aria-selected="true"]{background:var(--red);border-color:var(--red);color:#fff}
.finder-btn[aria-selected="true"]::after{color:#fff}
.finder-panel{border:1px solid var(--dark-rule);background:var(--char);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100%}
.finder-panel figure{margin:0;position:relative;min-height:320px;background:var(--ink)}
.finder-panel figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.finder-data{padding:clamp(24px,3vw,40px);display:grid;gap:22px;align-content:start}
.finder-data h3{font-size:clamp(34px,3.2vw,48px);color:#fff}
.finder-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0}
.finder-stats div{border-top:2px solid var(--red);padding-top:12px}
.finder-stats dt{font:800 13px/1.2 var(--s);letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-2)}
.finder-stats dd{margin:6px 0 0;font:800 clamp(28px,2.6vw,38px)/1 var(--d);color:#fff}
.finder-stats dd.r{margin-top:8px;font:600 14px/1.35 var(--f);color:var(--on-dark-2)}
.finder-data p{color:var(--on-dark);font-size:16px}
.finder-data .note{color:var(--on-dark-2)}

/* standards */
.standards{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:2px solid var(--ink)}
.standards li{padding:26px 22px 8px 0;display:grid;gap:12px;align-content:start}
.standards li+li{padding-left:22px;border-left:1px solid var(--rule)}
.standards .n{font:800 64px/.8 var(--s);color:var(--red)}
.standards b{font:800 26px/1 var(--d);text-transform:uppercase;letter-spacing:.01em}
.standards span:not(.n){color:var(--ink-2);font-size:15.5px;line-height:1.55}

/* image band with copy (warranty, builders) */
.band{position:relative;background:var(--ink);color:#fff;overflow:hidden;isolation:isolate}
.band-img{position:absolute;inset:0;z-index:-2}
.band-img img{width:100%;height:100%;object-fit:cover}
.band::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(13,13,13,.94) 0%,rgba(13,13,13,.8) 50%,rgba(13,13,13,.45) 100%)}
.band .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);align-items:center}
.band .label{color:var(--foam)}
.band h2{margin-top:16px;font-size:clamp(46px,8vw,124px);line-height:.88;color:#fff}
.band h2 em{font-style:normal;display:inline-block;background:var(--red);color:#fff;padding:0 .1em;line-height:.98}
.band p{color:var(--on-dark);font-size:18px;max-width:44ch}
.band .link{display:inline-block;margin-top:22px}
.band-seal{width:clamp(130px,15vw,200px);height:auto;margin-bottom:26px}
.band-hero{padding-block:clamp(64px,9vw,128px)}
.band-hero h1{margin-top:16px;font-size:clamp(46px,8vw,124px);line-height:.88;color:#fff}
.band-hero p{margin-top:22px}
.band-seal-lg{width:clamp(160px,22vw,280px);margin:0 auto}

/* process */
.steps{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;counter-reset:s}
.steps li{padding:24px 20px 0 0;border-top:2px solid var(--dark-rule);position:relative}
.steps li::before{content:"";position:absolute;left:0;top:-2px;width:36px;height:2px;background:var(--red)}
.steps .n{display:block;font:800 44px/.9 var(--s);color:var(--foam)}
.steps b{display:block;margin-top:14px;font:800 24px/1 var(--d);text-transform:uppercase;color:#fff}
.steps span:not(.n){display:block;margin-top:8px;color:var(--on-dark-2);font-size:15px;line-height:1.5}

/* credentials */
.creds{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-block:2px solid var(--ink)}
.creds li{padding:26px 20px 26px 0;font:800 24px/1 var(--d);text-transform:uppercase;letter-spacing:.01em}
.creds li+li{padding-left:20px;border-left:1px solid var(--rule)}
.creds small{display:block;margin-top:8px;font:400 14px/1.4 var(--f);text-transform:none;color:var(--ink-3)}

/* service area map */
.area{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,80px);align-items:center}
.area-map{background:var(--char);border:1px solid var(--dark-rule);padding:clamp(10px,2vw,24px)}
.area-map svg{width:100%;height:auto}
.area .city-list{columns:2 150px;column-gap:24px;margin:26px 0 0;padding:0;list-style:none;color:var(--on-dark);font-size:15.5px;line-height:1.95}
.area .city-list li::before{content:"";display:inline-block;width:6px;height:6px;margin-right:10px;background:var(--red-light);vertical-align:2px}

/* builder strip */
.strip-band{position:relative;background:var(--ink);isolation:isolate;overflow:hidden}
.strip-band .band-img{position:absolute;inset:0;z-index:-2}
.strip-band::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(13,13,13,.8)}
.strip{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 40px;padding-block:clamp(48px,6vw,80px)}
.strip p{font:800 clamp(30px,3.4vw,52px)/.98 var(--d);text-transform:uppercase;color:#fff;max-width:26ch}

/* quote + forms */
.quote{background:var(--concrete);border-top:1px solid var(--rule)}
.two{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px)}
.two h2{margin-top:14px;font-size:clamp(48px,5.6vw,84px)}
.two .intro p{margin-top:18px;color:var(--ink-2);max-width:40ch}
.quote-points{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:12px}
.quote-points li{display:flex;gap:12px;align-items:baseline;font-weight:600;color:var(--ink)}
.quote-points li::before{content:"";flex:none;width:10px;height:10px;background:var(--red);transform:translateY(1px)}
.form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px 22px;background:var(--paper);border:1px solid var(--rule);padding:clamp(20px,3vw,36px)}
.field{display:grid;gap:8px;align-content:start}
.field.full{grid-column:1/-1}
.field label,.field legend{font-size:14px;font-weight:700;padding:0;color:var(--ink)}
fieldset.field{border:0;margin:0;padding:0;min-width:0}
.field input,.field select,.field textarea{width:100%;font:400 16px/1.4 var(--f);color:var(--ink);background:var(--paper);border:1px solid #BDBBB6;border-radius:0;padding:13px 14px}
.field input::placeholder,.field textarea::placeholder{color:#767676}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink);outline:2px solid var(--ink);outline-offset:0}
.field textarea{min-height:120px;resize:vertical}
.field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23B31217' stroke-width='1.8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
.hint{font-size:13px;color:var(--ink-3)}
.label-plain{font-size:14px;font-weight:700;color:var(--ink)}
.drop{position:relative;display:grid;place-items:center;gap:6px;text-align:center;padding:26px 18px;border:2px dashed #BDBBB6;background:var(--concrete);cursor:pointer;transition:border-color .2s,background-color .2s}
.drop:hover,.drop.over{border-color:var(--red);background:#FFFFFF}
.drop input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;padding:0;border:0}
.drop b{font:800 22px/1 var(--d);text-transform:uppercase;letter-spacing:.04em;color:var(--ink)}
.drop span{font-size:14px;color:var(--ink-3)}
.drop .file-names{font-size:14px;font-weight:600;color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip span{display:inline-block;padding:11px 15px;border:1px solid #BDBBB6;background:var(--paper);font-size:15px;font-weight:600;color:var(--ink);cursor:pointer}
.chip input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}
.chip input:focus-visible+span{outline:3px solid var(--red);outline-offset:2px}
.chip input[type=checkbox]+span::before{content:"";display:inline-block;width:13px;height:13px;margin-right:8px;vertical-align:-2px;border:1.5px solid currentColor;background:transparent}
.chip input[type=checkbox]:checked+span::before{background:#fff;box-shadow:inset 0 0 0 2px var(--ink)}
.hp{position:absolute;left:-9999px}
.consent-set legend{margin-bottom:4px}
.check{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;line-height:1.5;cursor:pointer}
.field .check{font-weight:400;font-size:12.5px;color:var(--ink-3)}
.check input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--red)}
.check+.check{margin-top:10px}
.consent{grid-column:1/-1;font-size:13px;line-height:1.5;color:var(--ink-3)}
.consent a{color:var(--red);font-weight:700}
.form-status{grid-column:1/-1;min-height:1.6em;font-weight:700;color:var(--ink)}
.form-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center}
.form-foot .btn{min-width:200px}

/* inner page hero */
.page-hero{position:relative;background:var(--ink);color:#fff;isolation:isolate;overflow:hidden;padding-block:clamp(72px,10vw,150px) clamp(48px,6vw,84px)}
.page-hero .band-img{position:absolute;inset:0;z-index:-2}
.page-hero .band-img img{width:100%;height:100%;object-fit:cover}
.page-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(13,13,13,.93) 0%,rgba(13,13,13,.76) 50%,rgba(13,13,13,.4) 100%)}
.page-hero .label{color:var(--foam)}
.page-hero h1{margin-top:16px;font-size:clamp(42px,7.4vw,112px);line-height:.9;max-width:16ch;color:#fff;hyphens:auto}
.page-hero .lede{color:var(--on-dark)}
.page-hero .link{color:#fff}
.page-hero.nf{min-height:60vh}
.crumbs{margin-top:28px;font-size:13px;color:var(--on-dark-2)}
.crumbs a{color:var(--on-dark);text-decoration:none}

.split{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(24px,6vw,96px)}
.split h2{font-size:clamp(40px,4vw,60px)}
.split .copy p+p{margin-top:16px}
.split .copy p{color:var(--ink-2);max-width:62ch}
.stack{display:grid;gap:clamp(64px,8vw,112px)}
.prose p{color:var(--ink-2);max-width:66ch}
.prose p+p{margin-top:14px}
.prose .link{font-weight:700}
.rows{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.rows li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:6px 28px;padding:22px 0;border-bottom:1px solid var(--rule)}
.rows b{font:800 25px/1.02 var(--d);text-transform:uppercase;letter-spacing:.01em}
.rows span{color:var(--ink-2)}
.dark .rows{border-top-color:#fff}
.dark .rows li{border-bottom-color:var(--dark-rule)}
.dark .rows b{color:#fff}
.dark .rows span{color:var(--on-dark)}
.figure-wide{margin:0;background:var(--paper);border:1px solid var(--rule);padding:clamp(14px,1.8vw,24px);max-width:640px}
.figure-wide figcaption{margin-top:14px;font-size:13px;line-height:1.5;color:var(--ink-3)}

/* spec table */
.table-wrap{overflow-x:auto}
.spec{width:100%;min-width:560px;border-collapse:collapse;font-size:16px}
.spec th{font:800 13px/1.3 var(--s);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);text-align:left;padding:0 18px 12px 0;border-bottom:2px solid var(--ink)}
.spec td{padding:16px 18px 16px 0;border-bottom:1px solid var(--rule);vertical-align:top;color:var(--ink)}
.spec td.num{font:800 22px/1.1 var(--d);color:var(--ink);white-space:nowrap}
.spec td:first-child{white-space:nowrap;font-weight:700}
.spec a{font-weight:700}
.note{margin-top:14px;font-size:13px;line-height:1.55;color:var(--ink-3);max-width:72ch}

/* questions */
.faq{border-top:2px solid var(--ink)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{position:relative;list-style:none;cursor:pointer;padding:22px 48px 22px 0;font-weight:700;font-size:19px;line-height:1.35}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:14px;width:34px;height:34px;display:grid;place-items:center;font:800 26px/1 var(--d);color:#fff;background:var(--ink)}
.faq details[open] summary::after{content:"\2013";background:var(--red)}
.faq .a{padding:0 0 24px;color:var(--ink-2);max-width:66ch}

/* service area page */
.county-list{columns:3 170px;column-gap:28px;margin:0;padding:0;list-style:none;color:var(--ink-2);font-size:16px;line-height:1.9}

/* energy estimate */
.estimate{margin-top:28px;padding:24px 26px;background:var(--ink);color:#fff;border-left:6px solid var(--red);display:grid;gap:10px}
.estimate .label{color:var(--foam)}
.estimate-num{font:800 clamp(44px,5vw,68px)/.95 var(--d);text-transform:uppercase;color:#fff}
.estimate p:not(.estimate-num){color:var(--on-dark)}
.estimate .link{color:#fff}
.method{margin-top:10px}
.method summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--red)}

/* our work */
.work-grid{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}
.work-grid.feature{margin-top:0}
.work-grid-2{margin-top:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 22px}
.work-card a{display:grid;gap:4px;text-decoration:none;color:var(--ink)}
.work-card .ph{position:relative;overflow:hidden;background:var(--ink)}
.work-card img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.work-card .ph::after{content:"Real job";position:absolute;left:0;top:0;background:var(--red);color:#fff;font:800 12px/1 var(--s);letter-spacing:.14em;text-transform:uppercase;padding:8px 10px}
.work-card b{margin-top:14px;font:800 28px/1 var(--d);text-transform:uppercase;letter-spacing:.01em}
.work-card span{font:800 14px/1.3 var(--s);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.work-card a:hover b{color:var(--red)}
.work-card a:hover img{transform:scale(1.04)}
.dark .work-card a{color:#fff}
.dark .work-card span{color:var(--on-dark-2)}
.dark .work-card a:hover b{color:var(--foam)}
.feature .work-card:first-child{grid-column:span 2}
.feature .work-card:first-child img{aspect-ratio:8/3}
.pfacts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));border-block:2px solid var(--ink)}
.pfacts li{padding:22px 20px 22px 0;font:800 30px/1 var(--d);text-transform:uppercase}
.pfacts li+li{padding-left:20px;border-left:1px solid var(--rule)}
.pfacts .label{display:flex;margin-bottom:10px;font-size:13px}
.pfacts .label::before{width:14px}
.gallery{columns:2 300px;column-gap:20px}
.gallery figure{margin:0 0 24px;break-inside:avoid}
.gallery img{width:100%;height:auto;background:var(--concrete)}
.gallery figcaption{margin-top:10px;font-size:14px;line-height:1.5;color:var(--ink-3)}

/* team */
.portrait{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--concrete)}
.portrait-empty{display:grid;place-items:center}
.portrait-empty span{font:800 clamp(40px,4vw,64px)/1 var(--d);color:var(--ink-3)}
.crew{list-style:none;margin:44px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.crew a{display:grid;gap:4px;text-decoration:none;color:var(--ink)}
.crew .ph{overflow:hidden;background:var(--ink)}
.crew img{transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.crew a:hover img{transform:scale(1.04)}
.crew b{margin-top:14px;font:800 28px/1 var(--d);text-transform:uppercase}
.crew a > span{font:800 14px/1.3 var(--s);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.crew a:hover b{color:var(--red)}
.team{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(40px,5vw,72px) clamp(28px,4vw,56px)}
.member{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,2.4vw,32px);align-items:start;scroll-margin-top:calc(var(--head) + 24px)}
.member h2{font-size:clamp(34px,3vw,44px)}
.member .label{margin-top:12px}
.member p{margin-top:14px;color:var(--ink-2);font-size:16px}

/* documents */
.doc-links a{font-weight:700;color:var(--red)}

/* footer */
.site-foot{background:var(--ink);color:var(--on-dark);padding-block:72px 64px;border-top:6px solid var(--red)}
.site-foot .wrap{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:40px}
.site-foot .brand img{width:84px;height:84px}
.site-foot .brand b{font-size:40px}
.site-foot p{margin-top:16px;max-width:38ch;font-size:15px}
.site-foot a{text-decoration:none}
.site-foot a:hover{color:var(--red-light)}
.site-foot .label{color:var(--foam)}
.site-foot .label::before{display:none}
.foot-big{display:block;margin-top:22px;font:800 40px/1 var(--d);letter-spacing:.02em;color:#fff}
.foot-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px;font-size:15px}
.foot-base{grid-column:1/-1;border-top:1px solid var(--dark-rule);padding-top:22px;font-size:13px;color:var(--on-dark-2)}
.foot-base a{color:var(--on-dark)}
.foot-group summary{list-style:none;margin-bottom:0}
.foot-group summary::-webkit-details-marker{display:none}
@media (min-width:601px){.foot-group summary{pointer-events:none}}

/* mobile call bar */
.mbar{display:none}

@media (max-width:1320px){.head-phone{display:none}.nav{gap:18px}}
@media (max-width:1180px){.standards{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:12px}.standards li:nth-child(4){padding-left:0;border-left:0}}
@media (max-width:1120px){
  .nav,.head-cta{display:none}
  .menu-btn{display:inline-flex;align-items:center}
  .nav-open .nav{display:flex;flex-direction:column;gap:0;position:absolute;top:var(--head);left:0;right:0;background:var(--ink);border-bottom:1px solid var(--dark-rule);padding:8px var(--gut) 20px}
  .nav-open .nav a{padding:15px 0;border-bottom:1px solid var(--dark-rule);font:800 24px/1 var(--d);text-transform:uppercase;letter-spacing:.04em;color:#fff}
  .mbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--ink);padding-bottom:env(safe-area-inset-bottom)}
  .mbar a{display:flex;align-items:center;justify-content:center;min-height:58px;color:#fff;text-decoration:none;font:800 20px/1 var(--d);letter-spacing:.08em;text-transform:uppercase}
  .mbar a+a{border-left:1px solid var(--dark-rule)}
  .mbar .q{background:var(--red);color:#fff}
  .site-foot{padding-bottom:calc(64px + 58px + env(safe-area-inset-bottom))}
  .tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
  .proof{grid-template-columns:repeat(3,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:32px}
  .creds{grid-template-columns:repeat(3,minmax(0,1fr))}
  .creds li:nth-child(4){padding-left:0;border-left:0}
  .site-foot .wrap{grid-template-columns:repeat(3,minmax(0,1fr))}
  .foot-brand{grid-column:1/-1}
  .finder{grid-template-columns:minmax(0,1fr)}
  .finder-list{grid-template-columns:repeat(3,minmax(0,1fr))}
  .finder-btn{font-size:19px;padding:14px}
}
@media (max-width:860px){
  .hero-grid,.two,.band .wrap,.split,.area{grid-template-columns:minmax(0,1fr)}
  .work-grid{grid-template-columns:minmax(0,1fr)}
  .work-grid-2,.work-grid.feature{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tiles,.tiles-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tiles-3 .tile:last-child:nth-child(odd){grid-column:span 2}
  .tiles-3 .tile:last-child:nth-child(odd) a{aspect-ratio:8/5}
  .finder-panel{grid-template-columns:minmax(0,1fr)}
  .finder-panel figure{min-height:240px}
  .crew{grid-template-columns:repeat(2,minmax(0,1fr))}
  .team{grid-template-columns:minmax(0,1fr)}
  .standards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .standards li:nth-child(n){padding-left:0;border-left:0}
  .standards li:nth-child(even){padding-left:22px;border-left:1px solid var(--rule)}
}
@media (max-width:600px){
  :root{--head:68px}
  .brand img{width:44px;height:44px}
  .brand b{font-size:24px}
  .brand-sub{font-size:11px}
  .hero .wrap{min-height:0;padding-block:80px 32px}
  .proof{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:40px}
  .proof b{font-size:22px}
  .ticker li{font-size:18px;padding-block:13px}
  .tiles,.tiles-3{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .tile a,.tiles-rel .tile a{aspect-ratio:1/1}
  .tile-wide a,.tiles-3 .tile:last-child:nth-child(odd) a{aspect-ratio:2/1}
  .tile .tile-body{padding:12px 12px 14px}
  .tile b,.tiles-rel b{font-size:21px}
  .finder-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .finder-btn{font-size:17px;padding:13px 12px}
  .finder-stats{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .steps,.creds,.standards{grid-template-columns:minmax(0,1fr)}
  .steps li{padding:20px 0}
  .standards li,.standards li:nth-child(even){padding:22px 0 12px;border-left:0}
  .creds li,.creds li+li{padding:18px 0;border-left:0;border-bottom:1px solid var(--rule)}
  .creds li:last-child{border-bottom:0}
  .rows li,.form{grid-template-columns:minmax(0,1fr)}
  .work-grid-2,.work-grid.feature{grid-template-columns:minmax(0,1fr)}
  .feature .work-card:first-child{grid-column:auto}
  .feature .work-card:first-child img{aspect-ratio:4/3}
  .pfacts{grid-template-columns:minmax(0,1fr)}
  .pfacts li,.pfacts li+li{padding:16px 0;border-left:0;border-bottom:1px solid var(--rule)}
  .pfacts li:last-child{border-bottom:0}
  .site-foot .wrap{grid-template-columns:minmax(0,1fr);gap:0}
  .foot-brand{padding-bottom:24px}
  .foot-group{border-top:1px solid var(--dark-rule)}
  .foot-group summary{display:flex;justify-content:space-between;padding:16px 0;cursor:pointer}
  .foot-group summary::after{content:"+";font-size:18px;line-height:1;color:var(--on-dark)}
  .foot-group[open] summary::after{content:"\2013"}
  .foot-group .foot-list{margin:0 0 16px}
  .member{grid-template-columns:minmax(0,1fr)}
  .member .portrait{max-width:320px}
  .spec{min-width:0}
  .spec thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .spec tr{display:block;padding:14px 0;border-bottom:2px solid var(--ink)}
  .spec td{display:grid;grid-template-columns:118px minmax(0,1fr);gap:12px;padding:6px 0;border:0}
  .spec td::before{content:attr(data-label);font:800 12px/1.5 var(--s);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
  .spec td.num{white-space:normal}
  .vid-toggle{top:14px}
  .form-foot .btn{width:100%}
}
@media (max-width:420px){
  /* long single words (BARNDOMINIUM) must never push the page sideways on a small phone */
  h1,h2,h3,.tile b,.work-card b,.crew b{overflow-wrap:break-word}
  .page-hero h1{font-size:34px}
  .hero h1{font-size:40px}
  .two h2,.head-row h2,.sec-title,.band h2,.band-hero h1{font-size:32px}
  .split h2,.member h2,.finder-data h3{font-size:30px}
  .tile b,.tiles-rel b{font-size:19px}
  .work-card b,.crew b{font-size:22px}
  /* phones: full-width stacked buttons, so a long phone number can never push the page sideways */
  .actions{flex-direction:column;align-items:stretch;gap:10px}
  .actions .btn{width:100%;font-size:17px;padding:0 14px;min-height:50px}
  .actions .link{text-align:center}
}
@media (max-width:380px){
  .site-head .wrap{gap:10px}
  .brand{gap:8px}
  .brand img{width:36px;height:36px}
  .brand-sub{display:none}
  .menu-btn{padding:0 12px}
  .finder-list{grid-template-columns:minmax(0,1fr)}
}
.nav a,.btn,.head-phone{white-space:nowrap}
/* related tiles: column count follows the number of tiles, so none sit alone */
.tiles.rel-1{grid-template-columns:minmax(0,1fr)}
.tiles.rel-1 .tile a{aspect-ratio:2/1}
.tiles.rel-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.tiles.rel-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tiles.rel-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:860px){.tiles.rel-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){
  .tiles.rel-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tiles.rel-3 .tile:last-child{grid-column:span 2}
  .tiles.rel-3 .tile:last-child a{aspect-ratio:2/1}
}

/* ---------------------------------------------------------------- locations
   County and town pages. The stat grid and the locator map carry the facts that
   make one town page different from the next, so they read as content, not chrome. */
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:32px 0 0;background:var(--dark-rule);border:1px solid var(--dark-rule)}
.stat{background:var(--ink);padding:18px 16px}
.stat b{display:block;font:700 clamp(26px,3.4vw,36px)/1 var(--d);color:var(--foam);letter-spacing:.01em}
.stat span{display:block;margin-top:8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--on-dark-2);line-height:1.4}
.src{margin-top:22px;font-size:13px;line-height:1.65;color:var(--on-dark-2);max-width:62ch}
.sec:not(.dark) .src{color:var(--ink-3)}
.lede-sm{font-size:16px;line-height:1.7;color:var(--ink-2);max-width:62ch;margin:0 0 20px}

/* Locator map: real gazetteer coordinates, drawn to scale against distance rings. */
.locmap{width:100%;height:auto;display:block}
.locbg{fill:var(--char)}
.ring{fill:none;stroke:var(--dark-rule);stroke-width:1}
.locline{stroke:var(--red-light);stroke-width:1.5;stroke-dasharray:4 4}
.locbase{fill:var(--on-dark-2)}
.loctown{fill:var(--red-light)}
.loclabel{fill:var(--on-dark-2);font:600 11px/1 var(--f);letter-spacing:.06em;text-transform:uppercase;text-anchor:middle}
.loctownlabel{fill:var(--foam)}
.loccap{margin:14px 0 0;font-size:13px;color:var(--on-dark-2);text-align:center}

/* Town index inside a county page. */
.town-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.town-list a{display:block;background:var(--paper);padding:16px 18px;text-decoration:none;color:var(--ink)}
.town-list a:hover{background:var(--concrete)}
.town-list b{display:block;font:700 19px/1.2 var(--d);letter-spacing:.01em}
.tl-meta{display:block;margin-top:6px;font-size:12.5px;color:var(--ink-3);line-height:1.5}

@media (max-width:860px){
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:420px){
  .stat b{font-size:24px}
  .stat span{font-size:11px}
  .town-list{grid-template-columns:1fr}
}
.city-list-light{columns:3 140px;column-gap:24px;margin:0;padding:0;list-style:none;font-size:15.5px;line-height:1.95}
.city-list-light li::before{content:"";display:inline-block;width:6px;height:6px;margin-right:10px;background:var(--red);vertical-align:2px}
@media (max-width:600px){.city-list-light{columns:2 120px}}
