/* Layout: clean white and cool-grey bands on a 1320px wrap; red bolt cuts the hero left of center; services alternate photo/text. Single deliberate light look; --ink tokens name surfaces (white = page). */
:root{
  color-scheme:light;
  --ink:#FFFFFF; --ink-2:#F3F4F6; --ink-3:#E6E8EC; --glass:rgba(255,255,255,.94);
  --line:rgba(22,28,38,.12); --line-2:rgba(22,28,38,.24);
  --fg:#161C26; --muted:#4A5262; --navy:#1B2433; --on-red:#FFFFFF; --on-navy:#F3F4F6; --muted-navy:#B4BBC7;
  --red:#D0232A; --red-hi:#B31B21; --red-dark:#A9181E; --red-deep:#FBE9EA; --bolt-end:#8E1218;
  --f-display:"Archivo","Arial Narrow","Helvetica Neue",Arial,sans-serif;
  --f-body:"Barlow","Helvetica Neue",Arial,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --wrap:1320px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--fg);font:400 1.0625rem/1.62 var(--f-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--ink)}
img{max-width:100%;display:block}
a{color:inherit;text-underline-offset:3px}
p{margin:0}
:focus-visible{outline:2px solid var(--red-hi);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:16px;top:calc(16px + env(safe-area-inset-top,0px));z-index:100;background:var(--red);color:var(--fg);padding:10px 14px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.mono{font-family:var(--f-mono);letter-spacing:.02em}
.small{font-size:.8rem;color:var(--muted)}
.red{color:var(--red)}

/* type */
.eyebrow{font:500 .74rem/1.3 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 18px}
.eyebrow b{color:var(--red);font-weight:500}
.display{font-family:var(--f-display);font-weight:900;font-stretch:115%;font-variation-settings:"wdth" 115;text-transform:uppercase;line-height:.9;letter-spacing:-.012em;text-wrap:balance;margin:0}
h2.display{font-size:clamp(2.5rem,6.4vw,5.9rem)}
.lede{font-size:clamp(1.08rem,1.35vw,1.25rem);line-height:1.55;color:var(--muted);max-width:54ch}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.65em;font:600 .86rem/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding:1.15em 1.6em;border:1px solid transparent;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}
.btn-red{background:var(--red);color:var(--fg)}
.btn-red:hover{background:var(--red-dark)}
.btn-ghost{border-color:var(--line-2);color:var(--fg);background:transparent}
.btn-ghost:hover{border-color:var(--fg)}
.btn-sm{padding:.9em 1.15em;font-size:.74rem}
.btn .arr{transition:transform .2s}
.btn:hover .arr{transform:translateX(4px)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px}

/* header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.hdr{display:flex;align-items:center;gap:28px;min-height:74px}
.brand{display:block;flex:none;width:196px;text-decoration:none}
.brand svg{display:block;width:100%;height:auto;overflow:visible}
.lg-m,.lg-j{font:900 44px var(--f-display);font-stretch:100%}
.lg-m{fill:var(--fg)} .lg-j{fill:var(--red)}
.lg-bolt{fill:var(--red)}
.lg-w{font:800 15.5px var(--f-display);letter-spacing:.06em;fill:var(--fg)}
.lg-s{font:800 13px var(--f-display);letter-spacing:.14em;fill:var(--red)}
.lg-rule{stroke:var(--red);stroke-width:1.6}
.primary{margin-left:auto}
.nav{display:flex;gap:24px;list-style:none;margin:0;padding:0}
.nav a{font:500 .74rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--muted);padding:8px 0;border-bottom:1px solid transparent;transition:color .2s,border-color .2s;white-space:nowrap}
.nav a:hover,.nav a[aria-current="page"]{color:var(--fg);border-bottom-color:var(--red)}
.hdr-phone{font:500 .84rem var(--f-mono);text-decoration:none;color:var(--fg);white-space:nowrap}
.menu-btn{display:none;width:46px;height:46px;border:1px solid var(--line-2);background:transparent;color:var(--fg);cursor:pointer;align-items:center;justify-content:center}
.bars,.bars::before,.bars::after{display:block;width:18px;height:2px;background:var(--fg);position:relative;transition:transform .2s}
.bars::before,.bars::after{content:"";position:absolute;left:0}
.bars::before{top:-6px}.bars::after{top:6px}
.menu-btn[aria-expanded="true"] .bars{background:transparent}
.menu-btn[aria-expanded="true"] .bars::before{transform:translateY(6px) rotate(45deg)}
.menu-btn[aria-expanded="true"] .bars::after{transform:translateY(-6px) rotate(-45deg)}
@media (max-width:1180px){
  .hdr-phone{display:none}
  .menu-btn{display:inline-flex}
  .hdr-cta{margin-left:auto}
  .primary{position:absolute;left:0;right:0;top:100%;background:var(--ink-2);border-bottom:1px solid var(--line);display:none;margin:0}
  .primary.open{display:block}
  .nav{flex-direction:column;gap:0;padding:8px max(20px,env(safe-area-inset-right,0px)) 20px max(20px,env(safe-area-inset-left,0px))}
  .nav a{display:block;padding:16px 0;border-bottom:1px solid var(--line);font-size:.85rem}
}
@media (max-width:520px){ .brand{width:156px} .hdr-cta{display:none} .menu-btn{margin-left:auto} }

/* hero */
.hero{position:relative;overflow:hidden;isolation:isolate;border-bottom:1px solid var(--line);background:var(--ink)}
.hero-media{position:absolute;inset:0;z-index:-3;background:var(--ink)}
.hero-media img{width:100%;height:100%;object-fit:cover;opacity:.34;filter:grayscale(1) contrast(1.2) brightness(.9);transform-origin:50% 40%}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 0%,transparent 45%,transparent 70%,var(--ink) 100%),linear-gradient(0deg,var(--ink) 2%,transparent 45%,transparent 80%,var(--ink) 100%)}
.hero-grid{position:absolute;inset:0;z-index:-2;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:96px 96px;-webkit-mask-image:radial-gradient(ellipse 70% 80% at 32% 45%,#000 0%,transparent 75%);mask-image:radial-gradient(ellipse 70% 80% at 32% 45%,#000 0%,transparent 75%);opacity:.55}
.hero-bolt{position:absolute;z-index:-1;top:-2%;bottom:-2%;left:30%;width:clamp(150px,18vw,290px);pointer-events:none}
.hero-bolt svg{width:100%;height:100%;overflow:visible}
.st-a{stop-color:var(--red-hi)} .st-b{stop-color:var(--red)} .st-c{stop-color:var(--red-deep)}
.bolt-fill{fill:url(#bg-bolt);opacity:.92}
.bolt-glow{fill:var(--red);opacity:.45}
.bolt-core{fill:none;stroke:var(--fg);stroke-width:1.2;opacity:.55}
.bolt-stroke{fill:none;stroke:var(--red-hi);stroke-width:1.5}
.motion .bolt-glow{animation:flicker 7s steps(1,end) infinite}
.motion .bolt-core{animation:core 3.2s ease-in-out infinite}
@keyframes flicker{0%,100%{opacity:.45}41%{opacity:.45}42%{opacity:.15}43%{opacity:.6}44%{opacity:.3}45%{opacity:.5}78%{opacity:.5}79%{opacity:.2}80%{opacity:.48}}
@keyframes core{0%,100%{opacity:.25}50%{opacity:.7}}
.hero-inner{position:relative;padding-block:clamp(84px,13vh,150px) clamp(56px,8vh,96px);min-height:min(88vh,900px);display:grid;align-content:end;gap:34px}
.hero h1{font-size:clamp(3.3rem,11.6vw,11rem);text-shadow:0 2px 40px rgba(10,10,11,.5)}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.02em}
.hero h1 .ln>span{display:block}
.hero h1 .dot{color:var(--red);font-style:normal}
.hero-foot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px 48px;align-items:end}
.hero-foot .lede{color:var(--fg);opacity:.86}
.hero-sub .hero-inner{min-height:0;padding-block:clamp(72px,12vh,130px) clamp(48px,7vh,80px)}
.hero-sub h1{font-size:clamp(3rem,9.4vw,8.6rem)}
.hero-sub .hero-bolt{left:auto;right:16%;opacity:.85;width:clamp(120px,13vw,210px)}
.crumb{font-size:.74rem;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}
.crumb a{text-decoration:none;color:var(--muted)} .crumb a:hover{color:var(--fg)}
.crumb span:last-child{color:var(--fg)}
@media (max-width:820px){
  .hero-foot{grid-template-columns:minmax(0,1fr)}
  .hero-bolt{left:56%;opacity:.8}
  .hero-sub .hero-bolt{right:4%}
  .hero-inner{min-height:0;padding-block:96px 56px}
}

/* credibility strip */
.cred{background:var(--ink);border-bottom:1px solid var(--line);position:relative}
.cred ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line)}
.cred li{background:var(--ink);padding:30px 26px;display:grid;gap:8px;align-content:start}
.cred li:first-child{padding-left:0}
.cred .k{font:900 clamp(1.7rem,2.7vw,2.5rem)/1 var(--f-display);font-stretch:115%;font-variation-settings:"wdth" 115;text-transform:uppercase;font-variant-numeric:tabular-nums}
.cred .k em{color:var(--red);font-style:normal}
.cred .v{font-size:.93rem;color:var(--muted);line-height:1.4}
.cred .v a{color:var(--fg)}
@media (max-width:900px){.cred ul{grid-template-columns:repeat(2,minmax(0,1fr))}.cred li,.cred li:first-child{padding:24px 16px}.cred li:nth-child(odd){padding-left:0}}

/* wire separator */
.wire{position:relative;height:1px;background:var(--line);overflow:hidden}
.motion .wire::after{content:"";position:absolute;top:0;left:-25%;width:25%;height:1px;background:linear-gradient(90deg,transparent,var(--red-hi),transparent);animation:wire 5s linear infinite}
@keyframes wire{to{left:100%}}

/* sections */
.section{padding-block:clamp(84px,11vw,150px)}
.section-tight{padding-block:clamp(84px,10vw,130px) clamp(48px,6vw,72px)}
.section-dark{background:var(--ink-2);border-block:1px solid var(--line)}
.sec-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:28px 56px;align-items:end;margin-bottom:clamp(40px,5vw,64px)}
.sec-head>*{min-width:0}
@media (max-width:820px){.sec-head{grid-template-columns:minmax(0,1fr)}}

/* service circuits */
.svc{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);border-top:1px solid var(--line);min-height:700px;background:var(--ink)}
.svc.flip .svc-media{order:2}
.ph{position:relative;overflow:hidden;background:var(--ink-3);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:40px 40px;margin:0}
.ph::before{content:"MJ / FIELD PHOTO";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:500 .7rem var(--f-mono);letter-spacing:.2em;color:var(--muted)}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.svc-media{position:relative;min-height:420px}
.svc-media img{filter:grayscale(.5) contrast(1.12) brightness(.8);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.svc:hover .svc-media img{transform:scale(1.03)}
.svc-media::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,transparent 55%,var(--ink) 100%)}
.svc-media::before{z-index:0}
.svc-tag{position:absolute;left:24px;bottom:22px;z-index:3;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;padding:8px 12px;background:var(--red);color:var(--fg)}
.svc-body{min-width:0;display:flex;flex-direction:column;justify-content:center;padding-block:clamp(56px,7vw,110px);padding-left:max(clamp(24px,5vw,92px),env(safe-area-inset-left,0px));padding-right:max(clamp(24px,5vw,92px),env(safe-area-inset-right,0px))}
.svc-body h2{font-size:clamp(2.6rem,5.6vw,5.6rem);margin-bottom:24px}
.svc-body>p:not(.eyebrow){color:var(--muted);max-width:52ch;font-size:1.1rem}
.svc-list{columns:2;column-gap:32px;list-style:none;padding:0;margin:32px 0 40px;max-width:640px}
.svc-list li{break-inside:avoid;padding:11px 0;border-bottom:1px solid var(--line);font-weight:500;display:flex;gap:12px;align-items:baseline}
.svc-list li::before{content:"";width:7px;height:7px;background:var(--red);flex:none;transform:translateY(-1px) rotate(45deg)}
.svc.industrial{background:var(--ink-2)}
.diagram{display:grid;place-items:center;padding:56px 32px;background:var(--ink-2);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:32px 32px;border-right:1px solid var(--line)}
.diagram::after{display:none}
.sld{width:100%;max-width:600px;height:auto}
.sld-base path,.sld-base circle,.sld-base rect{fill:none;stroke:var(--line-2);stroke-width:2}
.sld-base .bus{stroke:var(--fg);stroke-width:4}
.sld-base .brk{stroke:var(--fg)}
.sld-base .load{stroke:var(--muted)}
.sld-flow path{fill:none;stroke:var(--red-hi);stroke-width:2.5;stroke-dasharray:6 18;stroke-linecap:round}
.motion .sld-flow path{animation:flow 1.6s linear infinite}
@keyframes flow{to{stroke-dashoffset:-24}}
.sld-txt text{font:500 11px var(--f-mono);letter-spacing:.14em;fill:var(--muted)}
@media (max-width:900px){
  .svc{grid-template-columns:minmax(0,1fr);min-height:0}
  .svc.flip .svc-media{order:0}
  .svc-media{min-height:0;aspect-ratio:4/3}
  .diagram{aspect-ratio:auto;border-right:0;border-bottom:1px solid var(--line)}
}
@media (max-width:560px){.svc-list{columns:1}}

/* EV feature */
.ev{position:relative;isolation:isolate;overflow:hidden;background:var(--ink-2);border-block:1px solid var(--line);padding-block:clamp(84px,11vw,150px)}
.ev-slab{position:absolute;z-index:-1;top:0;bottom:0;right:-8%;width:46%;background:linear-gradient(160deg,var(--red-deep) 0%,var(--ink-2) 70%);clip-path:polygon(38% 0,100% 0,100% 100%,0 100%)}
.ev-top{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:48px clamp(40px,6vw,96px);align-items:center;margin-bottom:clamp(56px,7vw,88px)}
.ev-top>*{min-width:0}
.ev-copy h2{margin-bottom:28px}
.ev-copy .lede{margin-bottom:34px}
.badge{display:inline-flex;align-items:center;gap:10px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--red);color:var(--fg);padding:9px 14px;margin-bottom:26px}
.pip{width:8px;height:8px;border-radius:50%;background:var(--red-hi);box-shadow:0 0 0 0 var(--red)}
.motion .pip{animation:pip 2.2s ease-out infinite}
@keyframes pip{0%{box-shadow:0 0 0 0 var(--red)}100%{box-shadow:0 0 0 10px transparent}}
.incent{background:var(--ink);border:1px solid var(--line-2);border-top:3px solid var(--red);padding:30px 30px 26px;display:grid;gap:22px}
.incent-h{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.tier{display:grid;gap:6px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.amt{font:900 clamp(2.8rem,5vw,4.4rem)/.95 var(--f-display);font-stretch:115%;font-variation-settings:"wdth" 115;font-variant-numeric:tabular-nums;color:var(--fg)}
.t-l{color:var(--muted);font-size:.98rem;line-height:1.45}
.t-l b{color:var(--red-hi);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.82rem}
.src{font-size:.76rem;color:var(--fg);text-decoration:none;border-bottom:1px solid var(--red);justify-self:start;padding-bottom:3px;line-height:1.5}
.fine{font-size:.82rem;line-height:1.6;color:var(--muted);max-width:92ch;margin-top:48px;padding-top:24px;border-top:1px solid var(--line)}
@media (max-width:900px){.ev-top{grid-template-columns:minmax(0,1fr)}.ev-slab{width:80%;opacity:.6}}

/* steps */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.steps.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.steps.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.steps li{background:var(--ink);padding:30px 28px 34px;display:grid;gap:12px;align-content:start;position:relative}
.ev .steps li,.section-dark .steps li{background:var(--ink-2)}
.steps .n{font:500 .78rem var(--f-mono);color:var(--red-hi);letter-spacing:.12em}
.steps h3{font:800 1.35rem/1.1 var(--f-display);font-stretch:110%;text-transform:uppercase;margin:0}
.steps p{color:var(--muted);font-size:.98rem}
@media (max-width:980px){.steps.c4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.steps.c3,.steps.c4{grid-template-columns:minmax(0,1fr)}}

/* work grid */
.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.w{position:relative;aspect-ratio:3/4;margin:0;max-width:100%}
.w-wide{grid-column:span 2;aspect-ratio:auto;min-height:100%}
.w img{filter:grayscale(.3) contrast(1.08);transition:filter .5s,transform 1s cubic-bezier(.2,.7,.2,1)}
.w:hover img{filter:none;transform:scale(1.04)}
.w figcaption{position:absolute;left:0;bottom:0;z-index:2;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;background:var(--ink);padding:8px 12px;border-top:2px solid var(--red)}
.w-ig{display:flex;flex-direction:column;justify-content:space-between;padding:28px;background:var(--red);color:var(--fg);text-decoration:none;aspect-ratio:auto;transition:background-color .25s}
.w-ig:hover{background:var(--red-dark)}
.w-ig .display{font-size:clamp(1.8rem,3vw,2.8rem)}
.w-ig .mono{font-size:.8rem;letter-spacing:.1em}
@media (max-width:760px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.w-wide{grid-column:span 2;aspect-ratio:16/10}.w-tall{grid-column:span 1}.w-ig{grid-column:span 2;min-height:180px}}

/* coverage map */
.cov{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:48px clamp(40px,5vw,80px);align-items:center}
.cov>*{min-width:0}
.map{margin:0;border:1px solid var(--line);background:var(--ink-2);aspect-ratio:920/760;max-width:100%;position:relative;overflow:hidden}
.map svg{display:block;width:100%;height:100%}
.cov-copy h2{margin-bottom:24px}
.cov-copy .lede{margin-bottom:28px}
.city-list{list-style:none;margin:0 0 20px;padding:0;columns:2;column-gap:24px}
.city-list li{padding:8px 0;border-bottom:1px solid var(--line);font-weight:500;break-inside:avoid}
.m-ocean{fill:url(#m-dots)}
.m-coast{fill:none;stroke:var(--line-2);stroke-width:1.5}
.m-mtn{fill:url(#m-hatch);stroke:none}
.m-ridge{fill:none;stroke:var(--line-2);stroke-width:1}
.m-fwy{fill:none;stroke:var(--line-2);stroke-width:2}
.m-fwy-l{font:500 10px var(--f-mono);fill:var(--muted);letter-spacing:.1em}
.m-dot{fill:var(--muted)}
.m-city{font:500 11px var(--f-mono);fill:var(--fg);letter-spacing:.04em}
.m-region{font:500 10px var(--f-mono);fill:var(--muted);letter-spacing:.24em}
.m-ring{fill:none;stroke:var(--red);stroke-width:1.2;stroke-dasharray:3 6}
.m-ring-l{font:500 10px var(--f-mono);fill:var(--red-hi);letter-spacing:.1em}
.m-core{fill:url(#m-glow)}
.m-pulse{fill:none;stroke:var(--red-hi);stroke-width:1.5}
.m-center-l{font:800 13px var(--f-display);fill:var(--fg);letter-spacing:.14em}
.m-hatch-line{stroke:var(--line-2);stroke-width:1}
.m-dots-dot{fill:var(--line-2)}
.m-glow-a{stop-color:var(--red);stop-opacity:.55}.m-glow-b{stop-color:var(--red);stop-opacity:0}
@media (max-width:900px){.cov{grid-template-columns:minmax(0,1fr)}}

/* about + estimate */
.est-band{background:var(--ink)}
.est{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:56px clamp(40px,6vw,104px);align-items:start}
.est>*{min-width:0}
.est-side h2{margin-bottom:28px}
.est-side>p:not(.eyebrow){color:var(--muted);max-width:54ch;margin-bottom:18px}
.contact-dl{margin:36px 0 0;display:grid;gap:0;border-top:1px solid var(--line)}
.contact-dl>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.contact-dl dt{font:500 .72rem/1.8 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.contact-dl dd{margin:0;font-weight:600;font-size:1.1rem;overflow-wrap:anywhere}
.contact-dl a{text-decoration:none}
.contact-dl a:hover{color:var(--red-hi)}
.estimate{background:var(--ink-2);border:1px solid var(--line);border-top:3px solid var(--red);padding:clamp(24px,3.5vw,44px);display:grid;gap:18px}
.form-head{display:grid;gap:10px;margin-bottom:6px}
.form-head h3{font-size:clamp(1.8rem,3vw,2.6rem)}
.form-head p{color:var(--muted)}
.f-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.field{display:grid;gap:8px;min-width:0}
.field label{font:500 .7rem var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;font:500 1rem/1.4 var(--f-body);color:var(--fg);background:var(--ink);border:1px solid var(--line-2);border-radius:0;padding:14px 14px;transition:border-color .2s;-webkit-appearance:none;appearance:none}
.field textarea{resize:vertical;min-height:110px}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23E1262C' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}
.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:.6}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--red)}
.field input:user-invalid,.field select:user-invalid{border-color:var(--red-hi)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.f-foot{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:6px}
.form-status{font-size:.95rem;color:var(--muted)}
.form-status[data-state="ok"]{color:var(--fg)}
.form-status[data-state="err"]{color:var(--red-hi)}
.f-alt{font-size:.9rem;color:var(--muted)}
.f-alt a{color:var(--fg)}
@media (max-width:900px){.est{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.f-row{grid-template-columns:minmax(0,1fr)}}

/* subpage blocks */
.detail-grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.detail-grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.detail{background:var(--ink);padding:32px 30px 36px;display:grid;gap:12px;align-content:start;transition:background-color .25s}
.detail:hover{background:var(--ink-2)}
.detail h3{font:800 1.3rem/1.1 var(--f-display);font-stretch:110%;text-transform:uppercase;margin:0;display:flex;gap:12px;align-items:baseline}
.detail h3::before{content:"";width:8px;height:8px;background:var(--red);flex:none;transform:translateY(-2px) rotate(45deg)}
.detail p{color:var(--muted);font-size:.98rem}
@media (max-width:980px){.detail-grid.c3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.detail-grid.c3{grid-template-columns:minmax(0,1fr)}}
.split-photo{border-block:1px solid var(--line);background:var(--ink-2);padding-block:clamp(64px,8vw,110px)}
.split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px clamp(40px,6vw,96px);align-items:center}
.split>*{min-width:0}
.split figure{aspect-ratio:4/5;max-width:100%}
.split figure img{filter:grayscale(.4) contrast(1.1)}
.split h2{margin-bottom:24px}
.split .lede{margin-bottom:28px}
@media (max-width:820px){.split{grid-template-columns:minmax(0,1fr)}.split figure{aspect-ratio:4/3}}
.note{margin-top:32px;border-left:3px solid var(--red);background:var(--ink-2);padding:22px 26px;display:grid;gap:8px;max-width:820px}
.note .mono{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--red-hi)}
.ind-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:32px 56px;display:grid}
.ind-grid>div:first-child{display:grid;gap:26px}
.ind-grid .eyebrow{margin:0}
.ind-diagram{border:1px solid var(--line);background:var(--ink-2);padding:28px;min-width:0}
@media (max-width:900px){.ind-grid{grid-template-columns:minmax(0,1fr)}}
.ev-page{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px clamp(40px,6vw,96px);align-items:start}
.ev-page>*{min-width:0}
.ev-explain h2{margin-bottom:28px}
.ev-explain p:not(.eyebrow){color:var(--muted);font-size:1.12rem;max-width:56ch;margin-bottom:18px}
.portal-url{font-size:clamp(2.2rem,4.4vw,3.6rem);line-height:.95;overflow-wrap:anywhere}
.portal-card .btn{justify-self:start}
@media (max-width:900px){.ev-page{grid-template-columns:minmax(0,1fr)}}
.faq-wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:40px clamp(40px,6vw,96px);align-items:start}
.faq-wrap>*{min-width:0}
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:22px 40px 22px 0;font:700 1.15rem/1.3 var(--f-body);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:18px;font:400 1.6rem var(--f-mono);color:var(--red)}
.faq details[open] summary::after{content:"\2013"}
.faq details p{color:var(--muted);padding:0 0 24px;max-width:62ch}
@media (max-width:820px){.faq-wrap{grid-template-columns:minmax(0,1fr)}}

/* footer */
.site-footer{border-top:1px solid var(--line);background:var(--ink-2);padding-block:72px 40px}
.ft-grid{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:40px}
.ft-grid>*{min-width:0}
.ft-brand{display:grid;gap:16px;align-content:start}
.ft-brand p{color:var(--muted);max-width:38ch;font-size:.95rem}
.ft-brand .mono{font-size:.78rem}
.ft-brand .mono a{color:var(--fg)}
.ft-h{font:500 .72rem var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 16px}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.site-footer ul a{text-decoration:none;overflow-wrap:anywhere}
.site-footer ul a:hover{color:var(--red-hi)}
.site-footer .big{font:800 1.4rem var(--f-display);font-stretch:110%}
.ft-legal{margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:.8rem;color:var(--muted);max-width:100ch}
.ft-legal+.ft-legal{margin-top:12px;padding-top:0;border:0}
@media (max-width:860px){.ft-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-brand{grid-column:1/-1}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .w:hover img,.svc:hover .svc-media img{transform:none}
}

/* ===== Light, conventional treatment (overrides) ===== */
body{font-size:1.125rem}
.mono{font-family:var(--f-body);letter-spacing:0}
.display{font-weight:800;font-stretch:100%;font-variation-settings:"wdth" 100;text-transform:none;line-height:1.04;letter-spacing:-.022em}
h2.display{font-size:clamp(2.1rem,4.4vw,3.8rem)}
.hero h1{font-size:clamp(2.9rem,8vw,7rem);text-transform:uppercase;line-height:.98;text-shadow:none}
.hero-sub h1{font-size:clamp(2.6rem,6.4vw,5.4rem);text-transform:none}
.svc-body h2{font-size:clamp(2.3rem,4.4vw,4rem)}
.eyebrow{font:700 .84rem/1.3 var(--f-body);letter-spacing:.1em;color:var(--red-hi)}
.crumb{font:600 .9rem var(--f-body);letter-spacing:0;text-transform:none}
.lede{color:var(--muted)}
.btn{font:700 1rem/1 var(--f-body);letter-spacing:.01em;text-transform:none}
.btn-sm{font-size:.92rem}
.btn-red,.svc-tag,.w-ig,.skip:focus{color:var(--on-red)}
.nav a{font:600 .98rem/1 var(--f-body);letter-spacing:0;text-transform:none;color:var(--fg)}
.nav a:hover,.nav a[aria-current="page"]{color:var(--red-hi)}
.hdr-phone{font:700 1.05rem var(--f-body)}
@media (max-width:1180px){.nav a{font-size:1.05rem}}

/* hero: white ground, bolt, colour photo panel on the right */
.st-a,.st-b{stop-color:var(--red)} .st-c{stop-color:var(--bolt-end)}
.bolt-glow{opacity:.16} .motion .bolt-glow{animation:none}
.bolt-core{stroke:var(--on-red);opacity:.5}
.hero-home .hero-media{left:auto;width:42%;background:var(--ink-3);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:40px 40px;clip-path:polygon(16% 0,100% 0,100% 100%,0 100%)}
.hero-media img{opacity:1;filter:none}
.hero-media::after{display:none}
.hero-sub .hero-media{display:none}
.hero-home .hero-inner{min-height:min(80vh,820px)}
.hero-home h1,.hero-home .hero-foot{max-width:62%}
.hero-home .hero-foot{grid-template-columns:minmax(0,1fr);align-items:start}
.hero-foot .lede{color:var(--muted);opacity:1}
@media (max-width:900px){.hero-home .hero-media{display:none}.hero-home h1,.hero-home .hero-foot{max-width:none}}

.cred .k,.amt{font-stretch:100%;font-variation-settings:"wdth" 100}
.cred{background:var(--ink-2)} .cred li{background:var(--ink-2)}
.svc-media img{filter:none} .svc-media::after{display:none}
.svc-tag,.badge,.incent-h,.note .mono,.ft-h,.w figcaption,.field label,.contact-dl dt,.steps .n{font-family:var(--f-body);letter-spacing:.04em;text-transform:none;font-weight:700}
.svc-tag{font-size:.9rem}
.badge{font-size:.9rem;border-color:var(--red);background:var(--red-deep)}
.field label,.contact-dl dt{color:var(--fg);font-size:.92rem}
.steps h3,.detail h3{font:700 1.3rem/1.2 var(--f-body);text-transform:none}
.steps .n{font-size:.95rem}
.ev-slab{background:linear-gradient(160deg,var(--red-deep) 0%,var(--ink-2) 70%)}
.w img,.split figure img{filter:none}
.w figcaption{font-size:.85rem}
.w-ig .mono{font-weight:600}
.m-glow-a{stop-opacity:.14}
.m-city,.m-fwy-l,.m-region,.m-ring-l{font-family:var(--f-body);font-weight:600}
.m-city{font-size:12px}
.src{font-size:.92rem;font-weight:600}
.fine{font-size:.9rem}
.faq summary::after{font-family:var(--f-body)}

/* footer: one navy band to anchor the page */
.site-footer{background:var(--navy);color:var(--on-navy);border-top:0}
.site-footer .lg-m,.site-footer .lg-w{fill:var(--on-navy)}
.ft-brand p,.ft-h,.ft-legal{color:var(--muted-navy)}
.ft-legal{border-top-color:rgba(243,244,246,.16)}
.site-footer ul a:hover{color:var(--on-navy);text-decoration:underline}
.ft-brand .mono a{color:var(--on-navy)}

/* hero: coverage map as the ground, bolt striking it */
.hero-map{position:absolute;inset:0;z-index:-3;background:var(--ink)}
.hero-map svg{display:block;width:100%;height:100%}
.hero-map::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 18%,transparent 62%),linear-gradient(0deg,var(--ink) 0%,transparent 22%)}
.hero-home .hero-grid{display:none}
.hero-home .hero-bolt{width:clamp(210px,23vw,380px);left:calc(64.4% - 10.1vw);opacity:.95}
.hero-home h1{font-size:clamp(2.7rem,6.6vw,6.2rem)}
.hero-home h1,.hero-home .hero-foot{max-width:58%}
@media (max-width:900px){
  .hero-home h1,.hero-home .hero-foot{max-width:none}
  .hero-map{opacity:.55}
  .hero-map::after{background:linear-gradient(0deg,var(--ink) 8%,transparent 60%)}
  .hero-home .hero-bolt{left:auto;right:-4%;width:clamp(160px,38vw,240px);opacity:.85}
}
.cov-nomap{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start}
.cov-nomap .city-list{columns:3}
@media (max-width:900px){.cov-nomap{grid-template-columns:minmax(0,1fr)}.cov-nomap .city-list{columns:2}}
.cov-nomap{grid-template-columns:minmax(0,1fr)}
.cov-nomap .cov-copy{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:8px 64px;align-items:start}
.cov-nomap .cov-copy>.eyebrow,.cov-nomap .cov-copy>h2,.cov-nomap .cov-copy>.lede{grid-column:1}
.cov-nomap .city-list,.cov-nomap .cov-copy>.small{grid-column:2}
.cov-nomap .city-list{grid-row:1/4}
@media (max-width:900px){.cov-nomap .cov-copy{grid-template-columns:minmax(0,1fr)}.cov-nomap .city-list,.cov-nomap .cov-copy>.small{grid-column:1;grid-row:auto}.cov-nomap .city-list{columns:2}}
.hero-map::after{background:linear-gradient(90deg,var(--ink) 32%,transparent 60%),linear-gradient(0deg,var(--ink) 0%,transparent 22%)}
.hero-map .m-city{font-size:8.5px;fill:var(--muted);font-weight:600}
.hero-map .m-region,.hero-map .m-center-l,.hero-map .m-fwy-l{display:none}
.hero-map .m-ring-l{font-size:8px}
.hero-map .m-dot{r:2.2px}
@media (max-width:900px){
  .hero-map::after{background:linear-gradient(0deg,var(--ink) 8%,transparent 60%)}
  .hero-map .m-city,.hero-map .m-ring-l{display:none}
}

/* real logo + local photos */
.brand{width:auto}
.brand .logo{display:block;height:56px;width:auto}
.ft-brand .brand .logo{height:72px}
@media (max-width:520px){.brand .logo{height:46px}}
.w-ig-full{grid-column:1/-1;flex-direction:row;align-items:center;gap:24px;flex-wrap:wrap;min-height:0;padding:30px 32px}
.ph img{object-position:center}
@media (max-width:760px){.w-ig-full{grid-column:span 2}}

/* credentials strip: even columns, real dividers */
.cred ul{gap:0;background:none}
.cred li,.cred li:first-child{padding:30px 28px;border-left:1px solid var(--line-2)}
.cred li:first-child{border-left:0;padding-left:0}
.cred li:last-child{padding-right:0}
.cred .k small{font:700 .95rem/1 var(--f-body);letter-spacing:.02em;text-transform:none;color:var(--muted);margin-left:.35em;vertical-align:middle}
@media (max-width:900px){
  .cred li,.cred li:first-child{padding:22px 16px;border-left:1px solid var(--line-2)}
  .cred li:nth-child(odd){border-left:0;padding-left:0}
  .cred li:nth-child(n+3){border-top:1px solid var(--line-2)}
}
.cred .k small{white-space:nowrap}
@media (max-width:520px){.cred .k small{display:block;margin:6px 0 0}}
.nav{gap:20px}
#coverage{scroll-margin-top:calc(80px + env(safe-area-inset-top,0px))}
#work,#about,#estimate,#ev{scroll-margin-top:calc(80px + env(safe-area-inset-top,0px))}
@media (max-width:1360px){
  .hdr-phone{display:none}
  .menu-btn{display:inline-flex}
  .hdr-cta{margin-left:auto}
  .primary{position:absolute;left:0;right:0;top:100%;background:var(--ink-2);border-bottom:1px solid var(--line);display:none;margin:0}
  .primary.open{display:block}
  .nav{flex-direction:column;gap:0;padding:8px max(20px,env(safe-area-inset-right,0px)) 20px max(20px,env(safe-area-inset-left,0px))}
  .nav a{display:block;padding:16px 0;border-bottom:1px solid var(--line);font-size:1.05rem}
}
@media (max-width:520px){.hdr-cta{display:none}.menu-btn{margin-left:auto}}
.btn{white-space:nowrap}
@media (min-width:1361px){.hdr{gap:22px}.nav{gap:18px}}

/* mobile hero: map as a top band with city names, headline below */
@media (max-width:900px){
  .hero-home .hero-map{bottom:auto;height:340px;opacity:1}
  .hero-home .hero-map::after{background:linear-gradient(0deg,var(--ink) 0%,transparent 28%)}
  .hero-map .m-city,.hero-map .m-ring-l{display:block}
  .hero-map .m-city{font-size:11px;fill:var(--fg)}
  .hero-map .m-ring-l{font-size:10px}
  .hero-map .m-dot{r:3px}
  .hero-home .hero-inner{padding-top:330px}
  .hero-home .hero-bolt{top:0;bottom:auto;height:340px;width:150px;left:calc(48% - 66px);right:auto;opacity:.95}
}

/* hero kicker: license line + separate service tags */
.hero-kicker{display:grid;gap:14px;justify-items:start}
.hero-kicker .eyebrow{margin:0}
.hero-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.hero-tags a{display:inline-block;font:700 .82rem/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--fg);background:var(--ink);border:1px solid var(--line-2);padding:10px 14px;transition:border-color .2s,color .2s}
.hero-tags a:hover{border-color:var(--red);color:var(--red-hi)}
@media (max-width:900px){.hero-kicker{gap:16px}.hero-home .hero-inner{gap:28px}}
@media (max-width:600px){
  .hero-kicker{justify-items:stretch}
  .hero-tags{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .hero-tags a{display:block;text-align:center;padding:11px 4px;font-size:.72rem;letter-spacing:.04em}
}
@media (max-width:900px){.hero-home .hero-bolt{height:300px}.hero-home .hero-inner{padding-top:340px}}
.ft-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin-top:12px}
.ft-bottom .ft-legal{margin:0;padding:0;border:0}
.ft-credit{font-size:.8rem;color:var(--muted-navy);margin:0}
.ft-credit a{color:var(--on-navy);font-weight:600;text-decoration:none;border-bottom:1px solid var(--red)}
.ft-credit a:hover{color:var(--on-navy);border-bottom-color:var(--on-navy)}

/* mobile polish: readable labels, larger tap targets */
.ft-h,.incent-h,.note .mono{font-size:.82rem}
.contact-dl dd a{display:inline-block;padding-block:8px}
.src{display:inline-block;padding-block:10px 6px}
.site-footer ul{gap:4px}
.site-footer ul a{display:inline-block;padding-block:6px}
@media (max-width:600px){.hero-tags a{font-size:.78rem}}
@media (max-width:380px){.hero-tags a{font-size:.7rem;letter-spacing:.02em}}
@media (max-width:760px){
  .work-grid > figure:last-of-type:nth-of-type(odd){grid-column:span 2;aspect-ratio:16/10}
}
@media (max-width:600px){
  .contact-dl>div{grid-template-columns:76px minmax(0,1fr)}
  .contact-dl dd{font-size:1rem;overflow-wrap:normal;word-break:normal}
  .ft-grid>div:last-child{grid-column:1/-1}
  .site-footer .big{white-space:nowrap}
}
@media (min-width:1361px){.hdr{gap:18px}.nav{gap:16px}.nav a{font-size:.93rem}.hdr-phone{font-size:1rem}}
.site-footer ul a{overflow-wrap:normal;word-break:normal}
@media (max-width:600px){.site-footer ul a[href^="mailto:"]{font-size:1rem}}

/* SCE Charge Ready Home feature: green + yellow program palette (homepage .ev only) */
:root{--sce-green:#126C50;--sce-green-deep:#0C5640;--sce-green-line:rgba(255,255,255,.18);--sce-yellow:#F9C846;--sce-yellow-hi:#FFD966;--sce-on-yellow:#0B3B2C;--sce-text:#FFFFFF;--sce-text-2:rgba(255,255,255,.84)}
.ev{background:var(--sce-green);color:var(--sce-text);border-block:0}
.ev-slab{background:linear-gradient(160deg,var(--sce-green-deep) 0%,var(--sce-green) 75%);opacity:1}
.ev .display,.ev h3{color:var(--sce-text)}
.ev .red{color:var(--sce-yellow)}
.ev .lede,.ev .steps p,.ev .t-l{color:var(--sce-text-2)}
.ev .badge{background:transparent;border-color:var(--sce-yellow);color:var(--sce-text)}
.ev .pip{background:var(--sce-yellow)}
@keyframes pip-y{0%{box-shadow:0 0 0 0 var(--sce-yellow)}100%{box-shadow:0 0 0 10px transparent}}
.motion .ev .pip{animation:pip-y 2.2s ease-out infinite}
.ev .btn-red{background:var(--sce-yellow);color:var(--sce-on-yellow)}
.ev .btn-red:hover{background:var(--sce-yellow-hi)}
.ev .btn-ghost{border-color:rgba(255,255,255,.55);color:var(--sce-text)}
.ev .btn-ghost:hover{border-color:var(--sce-text)}
.ev .incent{background:var(--sce-green-deep);border-color:var(--sce-green-line);border-top-color:var(--sce-yellow)}
.ev .incent-h{color:var(--sce-text-2)}
.ev .amt{color:var(--sce-text)}
.ev .t-l b{color:var(--sce-yellow)}
.ev .tier{border-bottom-color:var(--sce-green-line)}
.ev .src{color:var(--sce-text);border-bottom-color:var(--sce-yellow)}
.ev .steps{background:var(--sce-green-line);border-color:var(--sce-green-line)}
.ev .steps li{background:var(--sce-green-deep)}
.ev .steps .n{color:var(--sce-yellow)}
.ev .fine{color:var(--sce-text-2);border-top-color:var(--sce-green-line)}
.ev .fine a{color:var(--sce-text)}
.ev :focus-visible{outline-color:var(--sce-yellow)}

/* credentials strip: SCE cell in the program palette, links to the SCE section */
.cred li.cred-sce{padding:0;border-left:0;background:var(--sce-green)}
.cred-sce a{display:grid;gap:8px;align-content:start;height:100%;padding:30px 28px;color:var(--sce-text);text-decoration:none;position:relative;background:linear-gradient(160deg,var(--sce-green) 55%,var(--sce-green-deep) 100%);border-top:3px solid var(--sce-yellow);transition:background-color .2s}
.cred-sce .k{color:var(--sce-text)}
.cred-sce .k small{color:var(--sce-yellow)}
.cred-sce .v{color:var(--sce-text-2)}
.cred-sce .go{font:700 .85rem/1 var(--f-body);color:var(--sce-yellow);margin-top:4px}
.cred-sce .go span{display:inline-block;transition:transform .2s}
.cred-sce a:hover .go span{transform:translateX(4px)}
.cred-sce a:focus-visible{outline:2px solid var(--sce-yellow);outline-offset:-4px}
@media (max-width:900px){.cred li.cred-sce{padding:0;border-left:0;border-top:0}.cred-sce a{padding:22px 16px}}
