/* ---------- 3D bulb ---------- */
.bulb-stage{position:relative;height:clamp(420px,72vh,660px);--lit:0;--bx:50%;--by:50%;}
.bulb-canvas{position:absolute;left:-8%;right:-8%;top:-320px;bottom:-320px;pointer-events:none;z-index:1;}
.bulb-halo{position:absolute;left:var(--bx);top:var(--by);width:560px;height:560px;transform:translate(-50%,-50%);
  border-radius:50%;pointer-events:none;z-index:0;opacity:calc(var(--lit) * .9);
  background:radial-gradient(closest-side,var(--orange-glow),transparent 72%);filter:blur(6px);}
.bulb-floor{position:absolute;left:50%;bottom:2%;width:70%;height:60px;transform:translateX(-50%);pointer-events:none;
  border-radius:50%;opacity:calc(var(--lit) * .55);background:radial-gradient(closest-side,var(--orange-glow),transparent);}
.bulb-hit{position:absolute;left:var(--bx);top:var(--by);width:220px;height:300px;transform:translate(-50%,-50%);
  z-index:2;background:none;border:0;border-radius:50%;cursor:pointer;}
.bulb-hit:focus-visible{outline:2px dashed var(--orange);outline-offset:6px;}
.bulb-hint{position:absolute;right:0;bottom:0;z-index:2;font-family:var(--mono);font-size:11.5px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);display:flex;align-items:center;gap:8px;}
.bulb-hint::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--orange);box-shadow:0 0 8px var(--orange);}
.bulb-stage.off .bulb-hint::before{background:var(--text-3);box-shadow:none;}
@media (max-width:980px){.bulb-stage{height:clamp(360px,60vh,480px);overflow:hidden;} .bulb-canvas{top:0;bottom:0;} .hero-side.has-bulb{max-width:none;}}
.hero-copy{position:relative;z-index:3;}

/* ---------- header logo: live bolt + hanging bulb ---------- */
.brand-wrap{position:relative;display:flex;flex:none;--mark:46px;}
.brand-mark{position:relative;transition:box-shadow .3s,border-color .3s;}
.brand-mark.live{animation:mark-hum 2.8s ease-in-out infinite;}
.bolt-live{overflow:visible;animation:bolt-pulse 2.8s ease-in-out infinite;}
.bolt-spark{fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:12 88;animation:bolt-run 1.7s linear infinite;filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 4px var(--orange));}
.bolt-spark.s2{stroke-dasharray:5 95;animation-duration:1.1s;animation-direction:reverse;opacity:.7;}
.bolt-live.zap{animation:bolt-zap .5s steps(4) 1;}
.bolt-live.zap .bolt-spark{stroke-dasharray:100 0;}
@keyframes bolt-run{from{stroke-dashoffset:100;}to{stroke-dashoffset:0;}}
@keyframes bolt-pulse{0%,100%{filter:drop-shadow(0 0 2px var(--orange-glow));}50%{filter:drop-shadow(0 0 7px var(--orange));}}
@keyframes bolt-zap{0%{filter:drop-shadow(0 0 14px #fff);}50%{filter:drop-shadow(0 0 2px var(--orange));}75%{filter:drop-shadow(0 0 12px var(--orange));}100%{filter:drop-shadow(0 0 4px var(--orange-glow));}}
@keyframes mark-hum{0%,100%{box-shadow:0 0 0 0 transparent;border-color:var(--line-strong);}50%{box-shadow:0 0 18px -4px var(--orange-glow);border-color:color-mix(in srgb,var(--orange) 45%,var(--line-strong));}}
.bulb-stage.mini{overflow:visible !important;position:absolute;left:calc(var(--mark) / 2 - 36px);top:var(--mark);width:72px;height:112px;z-index:1;}
.bulb-stage.mini .bulb-canvas{left:0;right:0;top:0;bottom:0;}
.bulb-stage.mini::before{content:"";position:absolute;left:calc(50% - 4px);top:-2px;width:8px;height:4px;border-radius:0 0 3px 3px;background:var(--line-strong);z-index:2;}
.bulb-stage.mini .bulb-halo{width:170px;height:170px;filter:blur(4px);background:radial-gradient(closest-side,var(--orange-glow),transparent 100%);}
.bulb-stage.mini .bulb-hit{width:44px;height:64px;}
body:has(.bulb-stage.mini) .hero-inner{padding-top:192px;}
@media (max-width:600px){.brand-wrap{--mark:40px;} body:has(.bulb-stage.mini) .hero-inner{padding-top:172px;}}
@media (prefers-reduced-motion:reduce){.bolt-live,.bolt-spark,.brand-mark.live{animation:none;}}

/* ---------- circuit trace ---------- */
.trace-stack{position:relative;}
.trace-host{position:absolute;inset:0;pointer-events:none;z-index:6;}
.trace{position:absolute;top:0;left:0;overflow:visible;}
.trace path{fill:none;stroke-linejoin:round;stroke-linecap:round;}
.trace-base{stroke:var(--line-strong);stroke-width:1.5;}
.trace-lit{stroke:var(--orange);stroke-width:2.2;filter:drop-shadow(0 0 4px var(--orange-glow));}
.trace-pad{fill:var(--bg);stroke:var(--line-strong);stroke-width:1.5;transition:fill .3s,stroke .3s;}
.trace-ring{fill:none;stroke:var(--orange);stroke-width:1.2;opacity:0;transition:opacity .4s;}
.trace-stub{stroke:var(--line);stroke-width:1.5;stroke-dasharray:2 4;transition:stroke .4s;}
.trace-num{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.08em;fill:var(--text-3);transition:fill .3s;}
.trace-node.on .trace-pad{fill:var(--orange);stroke:var(--orange);}
.trace-node.on .trace-ring{opacity:.55;animation:trace-ping 1.6s ease-out 1;}
.trace-node.on .trace-stub{stroke:var(--orange);stroke-dasharray:none;opacity:.6;}
.trace-node.on .trace-num{fill:var(--orange);}
.trace-gnd line{stroke:var(--line-strong);stroke-width:1.5;stroke-linecap:round;}
.trace-head{transition:opacity .2s;}
.trace-head-core{fill:#fff;stroke:var(--orange);stroke-width:2;}
.trace-head-glow{fill:var(--orange);opacity:.32;animation:trace-crackle .18s steps(2) infinite;}
@keyframes trace-ping{from{transform:scale(.4);opacity:.9;}to{transform:scale(1.6);opacity:0;}}
@keyframes trace-crackle{0%{transform:scale(.8);opacity:.25;}100%{transform:scale(1.15);opacity:.45;}}
@media (prefers-reduced-motion:reduce){.trace-head-glow,.trace-node.on .trace-ring{animation:none;}}

/* sections the current has reached */
.eyebrow::before{transition:width .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s;}
section.live .eyebrow::before{width:40px;box-shadow:0 0 10px var(--orange);}

/* ---------- mobile polish ---------- */
.quotes.two{grid-template-columns:repeat(2,1fr);}
.hdr.open .bulb-stage.mini{visibility:hidden;}
@media (max-width:980px){
  .hdr-cta{margin-left:auto;}
  .menu-btn{margin-left:0;}
  .hero-side{width:100%;}
  .kohler-card{padding:28px;}
}
@media (max-width:600px){
  .hero h1{font-size:clamp(38px,10.4vw,46px);line-height:1;text-wrap:balance;}
  .hero h1 br{display:none;}
  .hero .lede{font-size:17px;}
  .hero-actions{display:grid;grid-template-columns:1fr;gap:12px;}
  .hero-actions .btn{width:100%;}
  .hero-side{max-width:none;}
  .hero-badge{padding:11px 14px;}
  .hero-badge.b1{left:10px;bottom:14px;}
  .hero-badge.b2{right:10px;top:14px;}
  .trust-inner{display:grid;grid-template-columns:1fr 1fr;gap:18px 14px;}
  .trust-item{align-items:flex-start;}
  .quotes.two{grid-template-columns:1fr;}
  .sec-head{margin-bottom:36px;}
  .sec-head .lede{font-size:17px;}
  .svc-card{min-height:0;padding:24px;}
  .kohler-card{padding:22px;}
  .map-stage{padding:16px;}
  .about-grid,.kohler-grid,.area-grid,.contact-grid{gap:28px;}
  .stats{margin-top:40px;}
  .g-band-actions .btn{flex:1 1 100%;}
  .cta-contacts a{font-size:17px;}
  .cta-contacts a span,.cta-contacts a{overflow-wrap:anywhere;}
  .hero-actions .btn,.btn{white-space:normal;text-align:center;}
  .trace-pad{transform:scale(.8);}
  .trace-ring{r:9px;}
}