:root{--navy:#0B1C3A;--navy-mid:#152B5A;--navy-light:#1E3A7A;--orange:#E8591A;--orange-l:#FF7A3D;--orange-d:#C44A12;--white:#FFFFFF;--off:#F5F7FA;--black:#111111;--gray:#64748B;--gray-l:#E2E8F0;--gray-m:#94A3B8;--fd:'Montserrat',sans-serif;--fb:'Inter',sans-serif;--r:12px;--rs:8px;--rl:20px;--sh:0 4px 20px rgba(11,28,58,.12);--shl:0 8px 40px rgba(11,28,58,.2);--sho:0 4px 20px rgba(232,89,26,.3);--tr:all .3s ease}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--black)}
body{font-family:var(--fb);background:var(--black);color:var(--black);line-height:1.6;overflow-x:hidden}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
ul{list-style:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}
.container{max-width:1200px;margin:0 auto;padding:0 24px}
.slabel{display:inline-block;font-family:var(--fd);font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--orange);margin-bottom:12px}
.stitle{font-family:var(--fd);font-size:clamp(28px,4vw,44px);font-weight:800;color:var(--navy);line-height:1.15;margin-bottom:16px}
.sdesc{font-size:17px;color:var(--gray);max-width:560px;line-height:1.7}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:var(--r);font-family:var(--fd);font-weight:700;font-size:15px;transition:var(--tr);cursor:pointer;border:none;text-align:center}
.btn-p{background:var(--orange);color:var(--white);box-shadow:var(--sho)}
.btn-p:hover{background:var(--orange-d);transform:translateY(-2px);box-shadow:0 8px 30px rgba(232,89,26,.4)}
.btn-o{background:transparent;color:var(--white);border:2px solid rgba(255,255,255,.5)}
.btn-o:hover{background:rgba(255,255,255,.1);border-color:var(--white)}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.revealed{opacity:1;transform:translateY(0)}
.rd1{transition-delay:.1s}.rd2{transition-delay:.2s}.rd3{transition-delay:.3s}.rd4{transition-delay:.4s}.rd5{transition-delay:.5s}

/* ---------- PRELOADER ---------- */
#preloader{position:fixed;inset:0;z-index:100000;background:var(--navy);display:flex;align-items:center;justify-content:center;transition:opacity .6s ease,visibility .6s ease}
#preloader::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,rgba(232,89,26,.14) 0%,transparent 60%)}
#preloader::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:48px 48px}
#preloader.hidden{opacity:0;visibility:hidden;pointer-events:none}
.pl-inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:22px}
.pl-badge{position:relative;width:84px;height:84px;display:flex;align-items:center;justify-content:center}
.pl-ring{position:absolute;inset:0;border-radius:50%;border:2.5px solid rgba(255,255,255,.1);border-top-color:var(--orange);border-right-color:var(--orange-l);animation:pl-spin 1.1s linear infinite}
.pl-mark{width:52px;height:52px;position:relative;animation:pl-pulse 1.8s ease-in-out infinite}
.pl-mark svg{width:100%;height:100%;display:block}
@keyframes pl-spin{to{transform:rotate(360deg)}}
@keyframes pl-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.pl-word{text-align:center}
.pl-word-main{font-family:var(--fd);font-weight:900;font-size:22px;letter-spacing:-.5px;color:#fff;line-height:1}
.pl-word-main span{color:var(--orange)}
.pl-word-sub{font-family:var(--fd);font-size:9.5px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:6px}
.pl-bar-track{width:160px;height:3px;background:rgba(255,255,255,.1);border-radius:3px;overflow:hidden;position:relative}
.pl-bar-fill{position:absolute;top:0;left:0;height:100%;width:0%;background:linear-gradient(90deg,var(--orange),var(--orange-l));border-radius:3px;transition:width .25s ease}
.pl-bar-fill::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);animation:pl-shimmer 1.3s linear infinite}
@keyframes pl-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
@media(prefers-reduced-motion:reduce){.pl-ring,.pl-mark,.pl-bar-fill::after{animation:none}}

.cookie{position:fixed;bottom:0;left:0;right:0;background:var(--navy);color:var(--white);padding:18px 0;z-index:9999;border-top:3px solid var(--orange);transform:translateY(100%);transition:transform .5s ease}
.cookie.vis{transform:translateY(0)}
.cookie-in{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.cookie-txt{flex:1;min-width:240px;font-size:13.5px;opacity:.85}
.cookie-txt a{color:var(--orange-l);text-decoration:underline;cursor:pointer}
.cookie-btns{display:flex;gap:10px}
.c-acc{background:var(--orange);color:#fff;padding:9px 22px;border-radius:var(--rs);font-weight:700;font-size:14px;font-family:var(--fd);transition:var(--tr);cursor:pointer;border:none}
.c-acc:hover{background:var(--orange-d)}
.c-dec{background:transparent;color:var(--gray-m);padding:9px 14px;border-radius:var(--rs);font-size:14px;font-family:var(--fd);transition:var(--tr);cursor:pointer;border:none}
.c-dec:hover{color:#fff}

.topbar{background:var(--navy-mid);border-bottom:1px solid rgba(255,255,255,.08)}
.topbar-in{display:flex;align-items:center;justify-content:space-between;height:38px;gap:20px}
.topbar-left{display:flex;align-items:center;gap:24px}
.topbar-right{display:flex;align-items:center}
.topbar-item{display:inline-flex;align-items:center;gap:7px;font-family:var(--fb);font-size:12.5px;font-weight:500;color:rgba(255,255,255,.68);transition:color .2s ease;white-space:nowrap}
a.topbar-item:hover{color:var(--orange-l)}
.topbar-item .icon{width:14px;height:14px;flex-shrink:0;opacity:.85}
.topbar-area{color:rgba(255,255,255,.5)}
.header{position:fixed;top:38px;left:0;right:0;z-index:1000;transition:var(--tr);padding:0}
.header.scrolled{top:0;background:rgba(11,28,58,.97);backdrop-filter:blur(10px);box-shadow:0 2px 20px rgba(0,0,0,.3)}
/* Pages without a dark hero need the header solid from the top, or the white
   nav text renders invisible against the white page background. */
.header.solid{top:0;background:rgba(11,28,58,.97);backdrop-filter:blur(10px);box-shadow:0 2px 20px rgba(0,0,0,.3)}
.header-in{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:20px}
.logo-wrap{display:flex;flex-direction:column;line-height:1;min-width:0;flex-shrink:1;overflow:hidden}
.hdr-seai{display:flex;align-items:center;gap:7px;background:rgba(76,175,80,.14);border:1px solid rgba(76,175,80,.35);border-radius:20px;padding:6px 14px;margin-left:18px;flex-shrink:0}
.hdr-seai .icon{width:15px;height:15px;color:#4CAF50;flex-shrink:0}
.hdr-seai span{font-family:var(--fd);font-size:12px;font-weight:700;color:#8FD89A;white-space:nowrap}
.logo-m{font-family:var(--fd);font-weight:900;font-size:22px;color:var(--white);letter-spacing:-.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.logo-m span{color:var(--orange)}
.logo-s{font-family:var(--fd);font-size:8px;font-weight:600;letter-spacing:2.5px;color:rgba(255,255,255,.4);text-transform:uppercase;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav{display:flex;align-items:center;gap:4px}
.nav a{font-family:var(--fd);font-size:13px;font-weight:600;color:rgba(255,255,255,.8);padding:8px 11px;border-radius:var(--rs);transition:var(--tr);letter-spacing:.2px}
.nav a:hover{color:var(--white);background:rgba(255,255,255,.1)}
.hdr-right{display:flex;align-items:center;gap:12px;flex-shrink:0}
.lang-sw{display:flex;align-items:center;background:rgba(255,255,255,.1);border-radius:7px;padding:3px;gap:2px}
.lbtn{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:5px 10px;border-radius:5px;font-family:var(--fd);font-size:12px;font-weight:700;color:rgba(255,255,255,.55);transition:var(--tr);cursor:pointer;border:none;background:none;letter-spacing:.5px}
.lbtn .flag{width:16px;height:12px;border-radius:2px;flex-shrink:0;display:block;box-shadow:0 0 0 1px rgba(255,255,255,.25)}
.lbtn.active,.lbtn:hover{background:var(--orange);color:var(--white)}
.menu-tog{display:none;flex-direction:column;gap:5px;padding:8px;cursor:pointer;background:none;border:none}
.menu-tog span{display:block;width:24px;height:2px;background:var(--white);border-radius:2px;transition:var(--tr)}

.mob-nav{position:fixed;top:0;right:-100%;width:300px;height:100vh;background:var(--navy);z-index:10001;transition:right .4s ease;padding:75px 30px 40px;box-shadow:-10px 0 40px rgba(0,0,0,.4)}
.mob-nav.open{right:0}
.mob-close{position:absolute;top:18px;right:18px;width:38px;height:38px;background:rgba(255,255,255,.1);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;cursor:pointer;border:none}
.mob-seai{display:flex;align-items:center;gap:8px;background:rgba(76,175,80,.14);border:1px solid rgba(76,175,80,.35);border-radius:20px;padding:8px 16px;margin-bottom:20px;width:fit-content}
.mob-seai .icon{width:16px;height:16px;color:#4CAF50;flex-shrink:0}
.mob-seai span{font-family:var(--fd);font-size:12.5px;font-weight:700;color:#8FD89A}
.mob-links{display:flex;flex-direction:column;gap:2px;margin-bottom:28px}
.mob-links a{font-family:var(--fd);font-size:17px;font-weight:700;color:rgba(255,255,255,.8);padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1);transition:var(--tr);display:block}
.mob-links a:hover{color:var(--orange)}
.mob-contact{display:flex;flex-direction:column;gap:2px;padding-top:6px;margin-bottom:8px;border-top:1px solid rgba(255,255,255,.1)}
.mob-contact-item{display:flex;align-items:center;gap:11px;padding:11px 0;font-family:var(--fb);font-size:14.5px;font-weight:500;color:rgba(255,255,255,.75);transition:color .2s ease}
a.mob-contact-item:hover{color:var(--orange-l)}
.mob-contact-item .icon{width:17px;height:17px;flex-shrink:0;color:var(--orange-l);opacity:.9}
.mob-contact-area{color:rgba(255,255,255,.5);font-size:13px}
.mob-lang{display:flex;gap:8px;margin-top:20px;width:100%}
.mob-lang .lbtn{flex:1;padding:11px 8px;font-size:13px}
.mob-lang .lbtn .flag{width:19px;height:14px}
.mob-ov{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:10000;display:none}
.mob-ov.vis{display:block}

.hero{min-height:100vh;background:var(--navy);color:var(--white);display:flex;align-items:center;position:relative;overflow:hidden;padding:148px 0 70px}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 72% 50%,rgba(232,89,26,.13) 0%,transparent 60%),radial-gradient(ellipse at 15% 85%,rgba(21,43,90,.8) 0%,transparent 50%)}
.hero::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:55px 55px}
.hero-in{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.seai-badge{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:40px;padding:7px 18px 7px 7px;margin-bottom:28px;backdrop-filter:blur(10px)}
.seai-chip{background:var(--white);color:var(--navy);border-radius:30px;padding:4px 11px;font-family:var(--fd);font-weight:900;font-size:13px;letter-spacing:-.5px}
.seai-chip span{color:#00A651}
.seai-info{font-size:12px;color:rgba(255,255,255,.75);line-height:1.3}
.seai-num{font-family:var(--fd);font-weight:800;color:var(--orange-l);font-size:13px}
.hero-title{font-family:var(--fd);font-size:clamp(34px,5vw,60px);font-weight:900;line-height:1.06;margin-bottom:18px;letter-spacing:-1.5px}
.hero-title em{font-style:normal;color:var(--orange)}
.hero-sub{font-size:16.5px;color:rgba(255,255,255,.68);margin-bottom:32px;max-width:470px;line-height:1.72}
.hero-acts{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:40px}
.hero-counties{display:flex;gap:10px;flex-wrap:wrap}
.ctag{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13);border-radius:6px;padding:5px 13px;font-family:var(--fd);font-size:12px;font-weight:600;color:rgba(255,255,255,.75);display:flex;align-items:center;gap:5px}
.hero-right{display:flex;flex-direction:column;gap:16px}
.h-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);border-radius:var(--r);padding:22px;backdrop-filter:blur(10px);transition:var(--tr);position:relative}
.h-card:hover{background:rgba(255,255,255,.1);border-color:rgba(232,89,26,.35)}
.h-card-link{cursor:pointer;text-align:left;font:inherit;color:inherit;display:block;width:100%}
.h-card-link:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(0,0,0,.3)}
.h-card-go{position:absolute;top:16px;right:14px;display:inline-flex;color:var(--orange);opacity:0;transform:translateX(-6px);transition:opacity .25s ease,transform .25s ease}
.h-card-go svg{width:17px;height:17px}
.h-card-link:hover .h-card-go{opacity:1;transform:translateX(0)}
.h-card-ico{font-size:28px;margin-bottom:10px}
.h-card-val{font-family:var(--fd);font-size:32px;font-weight:900;color:var(--orange);line-height:1;margin-bottom:3px}
.h-card-lbl{font-size:13px;color:rgba(255,255,255,.55)}
.h-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.h-promo{background:var(--orange);border-radius:var(--r);padding:18px 22px;display:flex;align-items:center;gap:14px}
.h-promo-ico{font-size:26px}
.h-promo-val{font-family:var(--fd);font-weight:800;font-size:15px;color:#fff;margin-bottom:1px}
.h-promo-sub{font-size:12px;color:rgba(255,255,255,.8)}

.services{padding:96px 0;background:var(--off)}

/* ---------- HEAT LOSS SECTION ---------- */
.heatloss{padding:90px 0;background:var(--off)}

/* ---------- ECONOMIC BENEFIT SECTION ---------- */
.econ-hidden{display:none!important}
.econ{padding:90px 0;background:var(--off)}
.econ-hdr{text-align:center;max-width:660px;margin:0 auto 44px}
.econ-hdr .sdesc{margin:0 auto}
.econ-card{max-width:860px;margin:0 auto;background:var(--white);border:1px solid var(--gray-l);border-radius:var(--rl);padding:38px;box-shadow:var(--sh)}
.econ-slider-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.econ-slider-lbl{font-family:var(--fd);font-size:14px;font-weight:700;color:var(--navy)}
.econ-slider-val{font-family:var(--fd);font-size:26px;font-weight:900;color:var(--orange)}
.econ-slider{width:100%;-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;background:var(--gray-l);outline:none;margin:4px 0}
.econ-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:var(--orange);cursor:pointer;border:3px solid #fff;box-shadow:0 2px 8px rgba(232,89,26,.4)}
.econ-slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--orange);cursor:pointer;border:3px solid #fff;box-shadow:0 2px 8px rgba(232,89,26,.4)}
.econ-slider-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--gray-m);margin-top:4px;margin-bottom:30px}
.econ-rows{display:flex;flex-direction:column;gap:14px;margin-bottom:30px}
.econ-row{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:16px;align-items:center;padding:16px 20px;background:var(--off);border-radius:14px}
.econ-row-name{display:flex;align-items:center;gap:12px;font-family:var(--fd);font-size:15px;font-weight:700;color:var(--navy)}
.econ-row-ico{display:inline-flex;color:var(--orange);flex-shrink:0}
.econ-row-ico svg{width:22px;height:22px}
.econ-row-stat{display:flex;flex-direction:column;gap:3px}
.econ-row-cap{font-size:11px;color:var(--gray-m);text-transform:uppercase;letter-spacing:.4px;font-weight:600}
.econ-row-num{font-family:var(--fd);font-size:16px;font-weight:800;color:var(--navy)}
.econ-up{color:#16A34A!important}
.econ-cost{color:#DC2626!important}
.econ-grant{color:var(--orange)!important}
.econ-summary{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:26px}
.econ-sum-block{text-align:center;padding:20px 16px;border-radius:14px;background:var(--off)}
.econ-sum-hero{background:linear-gradient(135deg,rgba(22,163,74,.1),rgba(22,163,74,.03));border:1px solid rgba(22,163,74,.25)}
.econ-sum-cap{font-size:12px;color:var(--gray);margin-bottom:6px;font-weight:600}
.econ-sum-val{font-family:var(--fd);font-size:26px;font-weight:900;color:var(--navy);line-height:1.1}
.econ-sum-sub{font-size:10.5px;color:var(--gray-m);margin-top:5px}
.econ-mortgage{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#16A34A,#15803D);border-radius:16px;padding:20px 24px;margin-bottom:22px;opacity:0;max-height:0;overflow:hidden;padding-top:0;padding-bottom:0;transition:opacity .4s ease,max-height .4s ease,padding .4s ease}
.econ-mortgage.vis{opacity:1;max-height:200px;padding-top:20px;padding-bottom:20px}
.econ-mort-ico{display:inline-flex;color:#fff;flex-shrink:0;background:rgba(255,255,255,.18);border-radius:12px;padding:10px}
.econ-mort-ico svg{width:26px;height:26px}
.econ-mort-title{font-family:var(--fd);font-size:18px;font-weight:800;color:#fff;margin-bottom:3px}
.econ-mort-sub{font-size:13px;color:rgba(255,255,255,.9);line-height:1.5}
.econ-disclaimer{font-size:11.5px;color:var(--gray-m);line-height:1.6;text-align:center;margin:0}
.econ-cta{text-align:center;margin:4px 0 24px}
.econ-cta-btn{display:inline-flex;align-items:center;gap:9px;font-size:16px;padding:15px 34px}
.econ-cta-btn svg{width:18px;height:18px;transition:transform .25s ease}
.econ-cta-btn:hover svg{transform:translateX(3px)}
.econ-cta-sub{font-size:12.5px;color:var(--gray);margin:14px 0 0}

/* ---------- COVERAGE MAP SECTION ---------- */
.cov-counties{max-width:900px;margin:44px auto 0;text-align:center}
.cov-counties-h{font-family:var(--fd);font-size:22px;font-weight:800;color:var(--navy);margin:0 0 14px}
.cov-counties-intro,.cov-counties-foot{font-size:14.5px;color:var(--gray);line-height:1.7;max-width:760px;margin:0 auto}
.cov-counties-list{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 10px;padding:0;margin:22px auto}
.cov-counties-list li{font-family:var(--fd);font-size:13px;font-weight:600;color:var(--navy);background:var(--off);border:1px solid var(--gray-l);border-radius:20px;padding:6px 14px}
.cov-counties-foot{margin-top:20px}.coverage{padding:90px 0;background:var(--white)}
.cov-hdr{text-align:center;max-width:640px;margin:0 auto 40px}
.cov-hdr .sdesc{margin:0 auto}
.cov-wrap{display:flex;align-items:center;justify-content:center;gap:56px;flex-wrap:wrap;max-width:820px;margin:0 auto}
.cov-map{width:260px;height:auto;flex-shrink:0;filter:drop-shadow(0 12px 28px rgba(11,28,58,.14))}
.cov-map-holder{position:relative;width:260px;flex-shrink:0}
.cov-map-holder .cov-map{width:100%}
.cov-served{fill:var(--orange)}
.cov-map-lbl{position:absolute;font-family:var(--fd);font-size:10.5px;font-weight:700;color:var(--navy);background:rgba(255,255,255,.9);padding:2px 7px;border-radius:8px;white-space:nowrap;box-shadow:0 2px 6px rgba(11,28,58,.15)}
.cov-map-lbl-ni{left:74%;top:12%;color:var(--gray-m)}
.cov-legend{display:flex;flex-direction:column;gap:14px;min-width:240px}
.cov-leg-item{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--gray);line-height:1.4}
.cov-swatch{width:16px;height:16px;border-radius:4px;flex-shrink:0}
.cov-swatch-served{background:var(--orange)}
.cov-swatch-ni{background:var(--gray-m);opacity:.55}
.hl-hdr{text-align:center;max-width:640px;margin:0 auto 48px}
.hl-hdr .sdesc{margin:0 auto}
.hl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;max-width:1000px;margin:0 auto}
.hl-card{background:var(--white);border:1px solid var(--gray-l);border-radius:var(--rl);padding:28px 22px;text-align:center;transition:var(--tr)}
.hl-card:hover{transform:translateY(-4px);box-shadow:var(--sh);border-color:var(--orange)}
.hl-card-ico{width:52px;height:52px;margin:0 auto 18px;background:rgba(232,89,26,.08);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--orange)}
.hl-card-ico .icon{width:26px;height:26px}
.hl-card-pct{font-family:var(--fd);font-size:34px;font-weight:900;color:var(--navy);line-height:1}
.hl-card-lbl{font-family:var(--fd);font-size:13.5px;font-weight:700;color:var(--gray);margin:6px 0 16px}
.hl-bar{height:6px;background:var(--gray-l);border-radius:3px;overflow:hidden}
.hl-bar-fill{height:100%;background:linear-gradient(90deg,var(--orange-d),var(--orange-l));border-radius:3px}
.hl-note{text-align:center;font-size:12.5px;color:var(--gray);max-width:520px;margin:36px auto 0;line-height:1.6}
.services-hdr{text-align:center;margin-bottom:56px}
.services-hdr .sdesc{margin:0 auto}
.srv-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-bottom:50px}
.srv-soon{margin-top:44px;text-align:center}
.srv-soon-head{display:inline-block;font-family:var(--fd);font-size:12px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--gray-m);margin-bottom:20px;position:relative;padding:0 18px}
.srv-soon-head::before,.srv-soon-head::after{content:'';position:absolute;top:50%;width:40px;height:1px;background:var(--gray-l)}
.srv-soon-head::before{right:100%}
.srv-soon-head::after{left:100%}
.srv-soon-tabs{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.srv-soon-tab{display:inline-flex;align-items:center;gap:12px;background:var(--off);border:1.5px dashed var(--gray-l);border-radius:14px;padding:14px 22px;transition:var(--tr)}
.srv-soon-tab:hover{border-color:var(--orange);background:rgba(232,89,26,.04)}
.sst-ico{display:inline-flex;color:var(--orange)}
.sst-ico svg{width:24px;height:24px}
.sst-txt{font-family:var(--fd);font-size:15px;font-weight:700;color:var(--navy)}
.sst-badge{font-family:var(--fd);font-size:9.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--orange);background:rgba(232,89,26,.12);padding:3px 8px;border-radius:20px}
.srv-soon-note{font-size:13.5px;color:var(--gray);max-width:440px;margin:20px auto 0;line-height:1.6}
.sc{background:var(--navy);border-radius:var(--rl);transition:var(--tr);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;text-decoration:none;color:inherit;cursor:pointer;min-height:420px;box-shadow:0 1px 3px rgba(11,28,58,.12)}
.sc:hover{transform:translateY(-6px);box-shadow:var(--shl)}
.sc-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease;transform:scale(1.001)}
.sc:hover .sc-bg{transform:scale(1.07)}
.sc-scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(6,16,34,.96) 0%,rgba(6,16,34,.86) 24%,rgba(6,16,34,.5) 46%,rgba(6,16,34,.08) 68%,rgba(6,16,34,0) 80%)}
.sc-link{position:absolute;inset:0;z-index:1}
.sc-content{position:relative;padding:26px;z-index:2;display:flex;flex-direction:column;pointer-events:none}
.sc-badge{position:absolute;top:16px;right:16px;width:76px;height:auto;z-index:3;pointer-events:none;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25))}
.pg-inline-fig{position:relative}
.pg-inline-fig img.fig-badge{position:absolute;top:14px;right:14px;width:64px;height:auto;border:none;border-radius:10px;z-index:2;pointer-events:none;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25))}
.sc-title{font-family:var(--fd);font-size:21px;font-weight:800;color:#fff;margin-bottom:8px}
.sc-desc{font-size:14px;color:rgba(255,255,255,.82);line-height:1.62;margin-bottom:18px}
.sc-actions{display:flex;flex-direction:column;gap:10px;pointer-events:auto}
.sc-actions .btn{justify-content:center;font-size:14.5px;padding:13px 20px}
.sc-actions .btn-o{border-color:rgba(255,255,255,.55)}
.sc-actions .btn-o:hover{background:rgba(255,255,255,.14);border-color:#fff}
@media(min-width:481px){
  .sc-actions{flex-direction:row}
  .sc-actions .btn{flex:1}
}
.pnote{margin-top:10px;font-size:11.5px;color:var(--gray);line-height:1.55;padding:10px 12px;background:var(--off);border-radius:var(--rs);border-left:3px solid var(--orange)}
.ins-feats{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}
.if{display:flex;align-items:center;gap:10px;padding:9px 12px;background:rgba(255,255,255,.12);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.18);border-radius:var(--rs)}
.if-ico{width:30px;height:30px;background:rgba(255,255,255,.16);border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.if-ico svg{color:#fff}
.if-txt{font-size:13px;color:#fff;font-weight:500}

.thermal-wrap{height:480vh;position:relative}
.thermal-stick{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center}
.t-sky{position:absolute;inset:0;background:#0B1C3A}
.t-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:50px 50px;pointer-events:none}
.t-content{position:relative;z-index:2;display:grid;grid-template-columns:230px 1fr 320px;gap:30px;align-items:center;width:100%;max-width:1420px;padding:0 32px}
.stage-visual{position:relative;width:100%;aspect-ratio:16/11;border-radius:var(--rl);overflow:hidden}
.stage-visual::before{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(ellipse at center, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 45%, rgba(5,10,20,.28) 82%, rgba(5,10,20,.4) 100%);z-index:0;pointer-events:none}
.stage-visual::after{content:'';position:absolute;inset:0;border-radius:var(--rl);background:rgba(6,12,24,.58);box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);z-index:0;pointer-events:none}
.house-col{position:relative}
.stage-item{position:absolute;inset:0;opacity:0;transition:opacity .6s ease;z-index:1}
.stage-item.active{opacity:1}
.stage-img{width:100%;height:100%;object-fit:contain;padding:6%;box-sizing:border-box;transition:filter .3s linear,opacity .6s ease}
#stageImgBefore{filter:grayscale(0.85) saturate(0.35) brightness(0.82) contrast(1.02)}
#stageImgAfter{filter:saturate(1.08) brightness(1.04)}
.stage-illus{width:100%;height:100%;display:block}

/* ---------- BER SCALE CHART ---------- */
.ber-chart{display:flex;flex-direction:column;gap:2px;width:100%}
.ber-chart-lbl{font-family:var(--fd);font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.5)}
.ber-chart-top{margin-bottom:6px}
.ber-chart-bottom{margin-top:6px}
.ber-band{position:relative;height:19px;display:flex;align-items:center;justify-content:space-between;padding:0 9px;border-radius:0 4px 4px 0;opacity:.26;transform:scaleX(1);transform-origin:left;transition:opacity .35s ease,box-shadow .35s ease;box-sizing:border-box}
.ber-band-soon{background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.25) 0 6px,transparent 6px 12px)!important;opacity:.22}
.ber-soon-tag{position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:8px;pointer-events:none;background:rgba(255,255,255,.12);color:rgba(255,255,255,.65);font-family:var(--fd);font-size:8.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:2px 7px;border-radius:8px;white-space:nowrap;border:1px solid rgba(255,255,255,.18)}
.ber-band.active{opacity:1}
.ber-band.active-current{box-shadow:0 0 0 2px #fff,0 0 16px rgba(255,255,255,.7);z-index:1;transform:scaleX(1.02)}
.ber-band-soon.active{opacity:.85}
.ber-band-soon.active-current{opacity:.9;box-shadow:0 0 0 2px rgba(255,255,255,.55),0 0 12px rgba(255,255,255,.35)}
.ber-band-kwh{font-family:var(--fd);font-size:9.5px;font-weight:700;color:rgba(0,0,0,.55)}
.ber-band-grade{font-family:var(--fd);font-size:11px;font-weight:900;color:rgba(0,0,0,.75)}

/* ---------- INFO PANEL (right) ---------- */
.t-info{display:flex;flex-direction:column;align-items:flex-start}
.t-stage-lbl{font-family:var(--fd);font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:7px;transition:color .5s}
.t-main{font-family:var(--fd);font-size:clamp(18px,2.2vw,25px);font-weight:900;color:#fff;line-height:1.25;margin-bottom:10px;transition:opacity .3s}
.t-sub{font-size:13.5px;color:rgba(255,255,255,.55);line-height:1.7;max-width:300px;transition:opacity .3s}

/* ---------- MOBILE-ONLY: grant table + total banner (hidden on desktop) ---------- */
.mob-grant-table,.mob-total-banner{display:none}
.mob-grant-table{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:14px;overflow:hidden}
.mob-grant-table td{padding:11px 16px;font-family:var(--fb);font-size:12.5px;color:rgba(255,255,255,.6);border-top:1px solid rgba(255,255,255,.07)}
.mob-grant-table tr:first-child td{border-top:none}
.mob-grant-table td:first-child{text-align:left}
.mob-grant-table .mgt-val{text-align:right;font-family:var(--fd);font-weight:800;color:#fff;font-size:14px}
.mob-grant-table .mgt-orange{color:var(--orange-l)}
.mob-grant-table .mgt-total-row td{background:rgba(232,89,26,.08);font-weight:700;color:rgba(255,255,255,.85)}
.mob-grant-table .mgt-total-row .mgt-val{font-size:16px}
.mob-total-banner{align-items:center;gap:14px;background:linear-gradient(135deg,rgba(232,89,26,.22),rgba(232,89,26,.08));border:1px solid rgba(232,89,26,.4);border-radius:16px;padding:16px 18px}
.mob-total-banner svg{width:26px;height:26px;flex-shrink:0;color:var(--orange-l)}
.mob-total-banner .mtb-val{display:block;font-family:var(--fd);font-size:26px;font-weight:900;color:var(--orange-l);line-height:1.15}
.mob-total-banner .mtb-lbl{display:block;font-size:12px;color:rgba(255,255,255,.65);margin-top:1px}
.t-benefits{margin:14px 0 16px;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}
.t-benefits li{position:relative;padding-left:20px;font-size:13px;color:rgba(255,255,255,.68);line-height:1.5}
.t-benefits li::before{content:'';position:absolute;left:0;top:6px;width:7px;height:7px;border-radius:50%;background:var(--orange);box-shadow:0 0 6px rgba(232,89,26,.7)}
.t-grant-box{display:flex;align-items:center;gap:12px;background:rgba(232,89,26,.1);border:1px solid rgba(232,89,26,.3);border-radius:14px;padding:12px 16px}
.ber-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}
.ber-nav-btn{display:inline-flex;align-items:center;gap:7px;font-family:var(--fd);font-size:14px;font-weight:700;color:#fff;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:30px;padding:10px 20px;cursor:pointer;transition:var(--tr)}
.ber-nav-btn:hover:not(:disabled){background:var(--orange);border-color:var(--orange)}
.ber-nav-btn:disabled{opacity:.35;cursor:not-allowed}
.ber-nav-btn svg{width:16px;height:16px}
.ber-nav-next{background:var(--orange);border-color:var(--orange)}
.ber-nav-next:hover:not(:disabled){background:var(--orange-d);border-color:var(--orange-d)}
.ber-nav-step{font-family:var(--fd);font-size:13px;font-weight:700;color:rgba(255,255,255,.6);letter-spacing:.5px}
.t-grant-box svg{width:20px;height:20px;flex-shrink:0;color:var(--orange-l)}
.t-grant-amount{display:block;font-family:var(--fd);font-size:22px;font-weight:900;color:var(--orange-l);line-height:1.15;transition:color .4s}
.t-grant-lbl{display:block;font-size:11px;color:rgba(255,255,255,.55);margin-top:1px}

/* ---------- SUMMARY BAR (3 items) ---------- */
.t-summary-bar{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:26px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:10px 22px;backdrop-filter:blur(6px)}
.t-sum-item{display:flex;flex-direction:column;align-items:flex-start;min-width:70px}
.t-sum-right{align-items:flex-end}
.t-sum-lbl{font-family:var(--fd);font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.42)}
.t-sum-val{font-family:var(--fd);font-size:16px;font-weight:900;color:#fff}
.t-sum-money{color:var(--orange-l)}
.t-sum-orange{color:var(--orange-l)}

.particles-wrap{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .6s}
.particles-wrap.active{opacity:1}
@keyframes rise{0%{transform:translateY(0) scale(1);opacity:.7}100%{transform:translateY(-180px) scale(0);opacity:0}}
#hlRoof,#hlWindows,#hlWalls,#hlBase{transition:opacity .5s ease;animation:hl-pulse 1.6s ease-in-out infinite}
@keyframes hl-pulse{0%,100%{stroke-opacity:.55;stroke-width:3}50%{stroke-opacity:1;stroke-width:4.5}}
.particle{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--orange);animation:rise 2.5s ease-in infinite}
.scroll-hint{position:absolute;left:50%;bottom:-38px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:7px;opacity:1;transition:opacity .5s ease;pointer-events:none;z-index:4;width:max-content}
.scroll-hint.hidden{opacity:0}
.sh-icon{width:24px;height:36px;border:2px solid rgba(255,255,255,.45);border-radius:13px;display:flex;justify-content:center;padding-top:6px;box-sizing:border-box}
.sh-wheel{width:3.5px;height:7px;background:var(--orange);border-radius:2px;animation:sh-scroll 1.6s ease-in-out infinite}
@keyframes sh-scroll{0%{transform:translateY(0);opacity:1}70%{opacity:1}100%{transform:translateY(12px);opacity:0}}
.sh-text{font-family:var(--fd);font-size:10.5px;font-weight:700;letter-spacing:.6px;color:rgba(255,255,255,.62);text-transform:uppercase;text-align:center;max-width:170px;line-height:1.35}
.sh-chevrons{display:flex;flex-direction:column;gap:1px;align-items:center}
.sh-chevrons span{width:9px;height:9px;border-right:2px solid rgba(255,255,255,.4);border-bottom:2px solid rgba(255,255,255,.4);transform:rotate(45deg);animation:sh-chev 1.6s ease-in-out infinite}
.sh-chevrons span:nth-child(2){animation-delay:.18s}
@keyframes sh-chev{0%,100%{opacity:.15;transform:rotate(45deg) translate(0,0)}50%{opacity:1;transform:rotate(45deg) translate(2.5px,2.5px)}}


.advantages{padding:96px 0;background:var(--white)}
.adv-hdr{text-align:center;margin-bottom:56px}
.adv-hdr .sdesc{margin:0 auto}
.adv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ac{padding:30px;border-radius:var(--r);border:1px solid var(--gray-l);transition:var(--tr);position:relative;overflow:hidden}
.ac:hover{box-shadow:var(--shl);border-color:var(--orange);transform:translateY(-4px)}
.ac-num{font-family:var(--fd);font-size:56px;font-weight:900;color:rgba(11,28,58,.04);position:absolute;top:10px;right:14px;line-height:1}
.ac-ico{font-size:34px;margin-bottom:14px}
.ac-title{font-family:var(--fd);font-size:17px;font-weight:800;color:var(--navy);margin-bottom:7px}
.ac-desc{font-size:13.5px;color:var(--gray);line-height:1.68}

.about{padding:96px 0;background:var(--navy);color:var(--white);position:relative;overflow:hidden}
.about::before{content:'';position:absolute;top:-80px;right:-80px;width:450px;height:450px;border-radius:50%;background:radial-gradient(circle,rgba(232,89,26,.1),transparent 70%);pointer-events:none}
.about-in{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.about .stitle{color:#fff}
.about .sdesc{color:rgba(255,255,255,.62);max-width:480px;margin-bottom:28px}
.ab-highs{display:flex;flex-direction:column;gap:14px}
.ab-h{display:flex;align-items:flex-start;gap:12px}
.ab-ck{width:26px;height:26px;background:var(--orange);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;margin-top:1px}
.ab-tx{font-size:14.5px;color:rgba(255,255,255,.77);line-height:1.6}
.ab-stats{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ab-stat{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.1);border-radius:var(--r);padding:26px;text-align:center;transition:var(--tr)}
.ab-stat:hover{background:rgba(255,255,255,.1);border-color:var(--orange)}
.ab-sv{font-family:var(--fd);font-size:36px;font-weight:900;color:var(--orange);line-height:1;margin-bottom:5px}
.ab-sl{font-size:12.5px;color:rgba(255,255,255,.5);line-height:1.5}

.request{padding:96px 0;background:var(--off)}
.req-in{display:grid;grid-template-columns:380px 1fr;gap:56px;align-items:start}
.req-info .sdesc{margin-bottom:28px}
.clist{display:flex;flex-direction:column;gap:14px}
.ci{display:flex;align-items:center;gap:12px}
.ci-ico{width:42px;height:42px;background:var(--navy);border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.ci-label{font-size:11px;color:var(--gray);font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.ci-val{font-family:var(--fd);font-size:15px;font-weight:700;color:var(--navy)}
.ci-val a{color:var(--navy);transition:var(--tr)}
.ci-val a:hover{color:var(--orange)}
.rform{background:var(--white);border-radius:var(--rl);padding:38px;box-shadow:var(--sh)}
.fsect{font-family:var(--fd);font-size:11.5px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--orange);margin-bottom:14px;margin-top:22px;padding-bottom:10px;border-bottom:1px solid var(--gray-l)}
.fsect:first-child{margin-top:0}
.fg{margin-bottom:18px}
.fg label{display:block;font-family:var(--fd);font-size:12.5px;font-weight:600;color:var(--navy);margin-bottom:5px}
.fg input,.fg select,.fg textarea{width:100%;padding:11px 14px;border:1.5px solid var(--gray-l);border-radius:var(--rs);font-family:var(--fb);font-size:14.5px;color:var(--black);background:var(--white);transition:var(--tr);outline:none;appearance:none}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(232,89,26,.1)}
.fg textarea{resize:vertical;min-height:90px}
.fg select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.svc-chks{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:20px}
.scc{display:flex;align-items:center;gap:9px;padding:11px 14px;border:1.5px solid var(--gray-l);border-radius:var(--rs);cursor:pointer;transition:var(--tr);user-select:none;position:relative}
.scc:hover{border-color:var(--orange);background:rgba(232,89,26,.04)}
.scc.checked{border-color:var(--orange);background:rgba(232,89,26,.07)}
.scc input[type="checkbox"]{width:16px;height:16px;accent-color:var(--orange);cursor:pointer;flex-shrink:0;pointer-events:none}
.scc-lbl{font-family:var(--fd);font-size:12.5px;font-weight:600;color:var(--navy);cursor:pointer}
.dyn-sec{display:none;background:var(--off);border-radius:var(--rs);padding:18px;margin-bottom:14px;border-left:3px solid var(--orange)}
.dyn-sec.vis{display:block}
.dyn-title{font-family:var(--fd);font-size:11px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}
.rgrp{display:flex;flex-direction:column;gap:7px}
.ri{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--gray);cursor:pointer}
.ri input{accent-color:var(--orange)}
.prv-row{display:flex;align-items:flex-start;gap:9px;margin-bottom:18px}
.prv-row input{width:16px;height:16px;accent-color:var(--orange);margin-top:2px;flex-shrink:0;cursor:pointer}
.prv-txt{font-size:13px;color:var(--gray);line-height:1.5}
.prv-txt a{color:var(--orange);text-decoration:underline;cursor:pointer}
.btn-sub{width:100%;padding:15px;background:var(--orange);color:#fff;border:none;border-radius:var(--r);font-family:var(--fd);font-size:15.5px;font-weight:800;cursor:pointer;transition:var(--tr);box-shadow:var(--sho)}
.btn-sub:hover{background:var(--orange-d);transform:translateY(-2px);box-shadow:0 8px 30px rgba(232,89,26,.4)}
.form-ok{display:none;text-align:center;padding:36px 20px}
.form-ok.vis{display:block}
.form-ok-ico{font-size:58px;margin-bottom:14px}
.form-ok-t{font-family:var(--fd);font-size:22px;font-weight:800;color:var(--navy);margin-bottom:7px}
.form-ok-d{color:var(--gray);font-size:14.5px}

.cta{padding:96px 0;background:linear-gradient(135deg,var(--orange-d) 0%,var(--orange) 55%,var(--orange-l) 100%);position:relative;overflow:hidden}
.cta::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:38px 38px}
.cta::after{content:'';position:absolute;top:-70px;left:-70px;width:380px;height:380px;border-radius:50%;background:rgba(255,255,255,.07);pointer-events:none}
.cta-in{position:relative;z-index:1;text-align:center;max-width:680px;margin:0 auto}
.cta-lbl{font-family:var(--fd);font-size:10.5px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.65);margin-bottom:14px}
.cta-t{font-family:var(--fd);font-size:clamp(30px,4.5vw,50px);font-weight:900;color:#fff;margin-bottom:14px;line-height:1.1}
.cta-d{font-size:17px;color:rgba(255,255,255,.85);margin-bottom:36px;line-height:1.7}
.cta-acts{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.btn-cta1{background:#fff;color:var(--orange);padding:15px 34px;border-radius:var(--r);font-family:var(--fd);font-weight:800;font-size:15.5px;transition:var(--tr);box-shadow:0 4px 20px rgba(0,0,0,.15);border:none;cursor:pointer}
.btn-cta1:hover{background:var(--navy);color:#fff;transform:translateY(-3px)}
.btn-cta2{background:rgba(255,255,255,.14);color:#fff;padding:15px 34px;border-radius:var(--r);font-family:var(--fd);font-weight:700;font-size:15.5px;border:2px solid rgba(255,255,255,.38);transition:var(--tr);cursor:pointer}
.btn-cta2:hover{background:rgba(255,255,255,.25);border-color:#fff;transform:translateY(-3px)}

.faq{padding:96px 0;background:var(--off)}
.faq-hdr{text-align:center;margin-bottom:52px}
.faq-hdr .sdesc{margin:0 auto}
.faq-list{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.fi{background:var(--white);border-radius:var(--r);border:1px solid var(--gray-l);overflow:hidden;transition:var(--tr)}
.fi.open{border-color:var(--orange);box-shadow:var(--sh)}
.fq{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;cursor:pointer;gap:14px}
.fq-txt{font-family:var(--fd);font-size:14.5px;font-weight:700;color:var(--navy);line-height:1.4}
.ftog{width:26px;height:26px;border-radius:50%;background:var(--off);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px;color:var(--navy);transition:var(--tr);font-weight:300;line-height:1}
.fi.open .ftog{background:var(--orange);color:#fff;transform:rotate(45deg)}
.fa{max-height:0;overflow:hidden;transition:max-height .4s ease}
.fa-in{padding:0 22px 18px;font-size:14.5px;color:var(--gray);line-height:1.72}
.fi.open .fa{max-height:280px}

.footer{background:var(--black);color:#fff;padding:56px 0 0}
.footer-main{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:44px;margin-bottom:44px}
.f-logo{font-family:var(--fd);font-size:21px;font-weight:900;color:#fff;margin-bottom:3px}
.f-logo span{color:var(--orange)}
.f-tag{font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:14px}
.f-desc{font-size:13.5px;color:rgba(255,255,255,.48);line-height:1.7;margin-bottom:18px}
.f-seai{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.09);border-radius:7px;padding:7px 13px}
.f-seai-t{font-size:11.5px;color:rgba(255,255,255,.55)}
.f-seai-id{font-family:var(--fd);font-weight:700;color:var(--orange);font-size:12px}
.f-ct{font-family:var(--fd);font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:14px}
.f-links{display:flex;flex-direction:column;gap:9px}
.f-links a{font-size:13.5px;color:rgba(255,255,255,.55);transition:var(--tr);cursor:pointer}
.f-links a:hover{color:var(--orange)}
.f-clist{display:flex;flex-direction:column;gap:12px}
.f-ci{display:flex;gap:9px}
.f-ci-ico{font-size:15px;flex-shrink:0;margin-top:1px}
.f-ci-txt{font-size:13.5px;color:rgba(255,255,255,.55);line-height:1.5}
.f-ci-txt a{color:rgba(255,255,255,.55);transition:var(--tr)}
.f-ci-txt a:hover{color:var(--orange)}
.footer-bot{border-top:1px solid rgba(255,255,255,.07);padding:22px 0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px}
.f-copy{font-size:12.5px;color:rgba(255,255,255,.3)}
.f-leg{display:flex;gap:18px;flex-wrap:wrap}
.f-leg a{font-size:12.5px;color:rgba(255,255,255,.35);transition:var(--tr);cursor:pointer}
.f-leg a:hover{color:var(--orange)}

.mclose:hover{background:var(--gray-l);color:var(--black)}
.m-title{font-family:var(--fd);font-size:24px;font-weight:800;color:var(--navy);margin-bottom:6px}
.m-date{font-size:12.5px;color:var(--gray);margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid var(--gray-l)}
.mbody h3{font-family:var(--fd);font-size:15px;font-weight:700;color:var(--navy);margin:22px 0 7px}
.mbody p{font-size:13.5px;color:var(--gray);line-height:1.72;margin-bottom:10px}
.mbody ul{padding-left:18px;margin-bottom:10px;list-style:disc}
.mbody ul li{font-size:13.5px;color:var(--gray);line-height:1.7;margin-bottom:3px}

/* ---------- PROFESSIONAL ICON SYSTEM ---------- */
.icon{display:block;flex-shrink:0}
.h-card-ico svg{width:26px;height:26px;color:inherit}
.sc-ico{color:#fff}
.sc-ico svg{width:27px;height:27px}
.if-ico{color:#fff}
.if-ico svg{width:17px;height:17px}
.ac-ico{color:var(--navy)}
.ac-ico svg{width:32px;height:32px}
.h-promo-ico{color:#fff}
.h-promo-ico svg{width:24px;height:24px}
.ci-ico{color:#fff}
.ci-ico svg{width:19px;height:19px}
.f-ci-ico svg{width:15px;height:15px;margin-top:1px}
.f-seai svg{width:19px;height:19px}
.ab-ck svg{width:13px;height:13px;color:#fff}
.ctag{gap:6px}
.ctag svg{width:11px;height:11px;flex-shrink:0}
.mclose svg{width:15px;height:15px}
.mob-close svg{width:16px;height:16px}
.form-ok-ico svg{width:64px;height:64px}
.scc-ico{display:inline-flex;color:var(--navy)}
.scc-ico svg{width:16px;height:16px}
.scc-lbl{display:inline-flex;align-items:center;gap:7px}
.cta-btn2-ico{display:inline-flex;color:currentColor}
.cta-btn2-ico svg{width:16px;height:16px}

@media(max-width:1024px){
.heatloss{padding:64px 0}
.coverage{padding:60px 0}
.cov-hdr{margin-bottom:32px}
.cov-wrap{flex-direction:column;gap:32px}
.cov-map-holder{width:200px}
.hl-hdr{margin-bottom:40px}
.hl-grid{grid-template-columns:1fr 1fr;gap:16px}
.hl-card{padding:22px 16px}
.topbar{display:none}
.header{top:0}
.hero{padding-top:110px}
.nav,.hdr-right .btn{display:none}
.menu-tog{display:flex}
.hero-in{grid-template-columns:1fr}
.hero-right{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.h-promo{grid-column:span 3}
.about-in{grid-template-columns:1fr;gap:44px}
.footer-main{grid-template-columns:1fr 1fr}
.t-content{display:flex;flex-direction:column;align-items:center;padding:0 20px;gap:14px}
.thermal-stick{flex-direction:column;gap:0}
.house-col{display:none}
.ber-chart{order:3;width:100%;max-width:340px}
.t-info{order:1;text-align:center;width:100%;max-width:380px;align-items:center;margin-top:16px}
.t-grant-box{margin:0 auto}
.t-sub{display:none}
.t-benefits{text-align:left;max-width:320px;margin:0 auto}
.t-summary-bar{display:none}
.mob-grant-table{order:2;display:table;width:100%;max-width:360px;margin:2px auto 0;border-collapse:collapse}
.mob-total-banner{order:4;display:flex;width:100%;max-width:380px;margin:4px auto 0}
.req-in{grid-template-columns:340px 1fr}
}
@media(max-width:768px){
.header-in{gap:10px}
.hdr-seai{display:none}
.econ{padding:60px 0}
.econ-card{padding:24px 18px;border-radius:16px}
.econ-slider-val{font-size:22px}
.econ-row{grid-template-columns:1fr 1fr;gap:12px 16px;padding:16px}
.econ-row-name{grid-column:1/3;margin-bottom:2px}
.econ-summary{grid-template-columns:1fr;gap:12px}
.econ-sum-val{font-size:24px}
.econ-mortgage{flex-direction:column;text-align:center;gap:12px}
.econ-mort-sub{font-size:12.5px}
.srv-grid{grid-template-columns:1fr}
.adv-grid{grid-template-columns:1fr 1fr}
.req-in{grid-template-columns:1fr}
.rform{padding:28px 22px}
.frow{grid-template-columns:1fr}
.svc-chks{grid-template-columns:1fr}
.footer-main{grid-template-columns:1fr}
.footer-bot{flex-direction:column;text-align:center}
.hero-right{grid-template-columns:1fr 1fr}
.h-promo{grid-column:span 2}
.t-main{font-size:15px!important;margin-bottom:4px}
.t-content{gap:8px}
.ber-chart{gap:1px}
.ber-chart-top{margin-bottom:3px}
.ber-chart-bottom{margin-top:3px}
.ber-band{height:12px}
.ber-soon-tag{font-size:7px;padding:1px 5px;margin-left:5px}
.ber-band-kwh,.ber-band-grade{font-size:8px}
.t-benefits{margin:8px 0 10px;gap:6px}
.t-benefits li{font-size:11.5px;line-height:1.4}
.mob-grant-table td{padding:9px 14px;font-size:11.5px}
.mob-grant-table .mgt-val{font-size:13px}
.mob-grant-table .mgt-total-row .mgt-val{font-size:14.5px}
.mob-total-banner{padding:14px 16px;gap:12px}
.mob-total-banner .mtb-val{font-size:22px}
.mob-total-banner .mtb-lbl{font-size:11px}
.about,.request,.advantages,.services,.faq{padding:64px 0}
.cta{padding:72px 0}
}
@media(max-width:480px){
.adv-grid{grid-template-columns:1fr}
.heatloss{padding:52px 0}
.hl-grid{grid-template-columns:1fr 1fr;gap:10px}
.hl-card{padding:18px 12px;border-radius:14px}
.hl-card-ico{width:42px;height:42px;margin-bottom:12px}
.hl-card-ico .icon{width:21px;height:21px}
.hl-card-pct{font-size:24px}
.hl-card-lbl{font-size:11px;margin:4px 0 12px}
.hero-acts{flex-direction:column}
.cta-acts{flex-direction:column;align-items:center}
.f-leg{justify-content:center}
.hero-right{grid-template-columns:1fr}
.h-promo{grid-column:span 1}
.header-in{gap:8px}
.logo-s{display:none}
.logo-m{font-size:18px}
.lang-sw{padding:2px}
.lbtn{padding:4px 7px;font-size:11px}
.t-main{font-size:13.5px!important;line-height:1.2;margin-bottom:2px}
.t-stage-lbl{font-size:8px}
.t-benefits li{font-size:10.5px;line-height:1.35}
.t-benefits{margin:6px 0 8px;gap:5px}
.t-grant-box{padding:8px 10px}
.t-grant-amount{font-size:16px}
.t-content{padding:0 14px;gap:4px}
.ber-chart{gap:1px}
.ber-chart-top{margin-bottom:2px}
.ber-chart-bottom{margin-top:2px}
.ber-band{height:10px}
/* Stay absolutely positioned at every width. Going static here made the
   tag flow inline after the band labels, rendering ">25A2Coming Soon". */
.ber-soon-tag{font-size:6.5px;padding:1px 4px;margin-left:4px}
.ber-band-kwh,.ber-band-grade{font-size:6.8px}
.ber-chart-lbl{font-size:7.5px}
.mob-grant-table td{padding:8px 12px;font-size:10.5px}
.mob-grant-table .mgt-val{font-size:12px}
.mob-grant-table .mgt-total-row .mgt-val{font-size:13.5px}
.mob-total-banner{padding:12px 14px;gap:10px}
.mob-total-banner svg{width:22px;height:22px}
.mob-total-banner .mtb-val{font-size:19px}
.mob-total-banner .mtb-lbl{font-size:10px}
.sh-text{font-size:9.3px;white-space:normal;max-width:150px;line-height:1.3}
.sh-icon{width:20px;height:30px}
.pl-word-main{font-size:19px}
.pl-badge{width:70px;height:70px}
.h-card{padding:16px}
.rform{padding:22px 16px}
.hero{padding:100px 0 56px}
.seai-badge{padding:6px 14px 6px 6px;gap:8px}
}
@media(prefers-reduced-motion:reduce){.reveal{transition:none}.particle{animation:none}}

/* ---------- STANDALONE LEGAL PAGE ---------- */
.legal-hero{background:var(--navy);color:#fff;padding:150px 0 52px;position:relative;overflow:hidden}
.legal-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 75% 30%,rgba(232,89,26,.12) 0%,transparent 55%)}
.legal-hero::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:48px 48px}
.legal-crumb{position:relative;z-index:1;display:flex;align-items:center;gap:8px;font-family:var(--fd);font-size:12.5px;font-weight:600;color:rgba(255,255,255,.5);margin-bottom:18px;flex-wrap:wrap}
.legal-crumb a{color:rgba(255,255,255,.7);transition:var(--tr)}
.legal-crumb a:hover{color:var(--orange-l)}
.legal-crumb svg{width:12px;height:12px;flex-shrink:0;opacity:.5}
.legal-hero-title{position:relative;z-index:1;font-family:var(--fd);font-size:clamp(30px,4.5vw,46px);font-weight:900;color:#fff;line-height:1.1;margin-bottom:10px}
.legal-hero-date{position:relative;z-index:1;font-size:13.5px;color:rgba(255,255,255,.5)}
.legal-body-section{padding:64px 0 100px;background:var(--off)}
.legal-card{background:#fff;border-radius:var(--rl);padding:48px;box-shadow:var(--sh);max-width:820px;margin:0 auto}
.legal-content h3{font-family:var(--fd);font-size:17px;font-weight:800;color:var(--navy);margin:28px 0 10px}
.legal-content h3:first-child{margin-top:0}
.legal-content p{font-size:15px;color:var(--gray);line-height:1.8;margin-bottom:13px}
.legal-content ul{padding-left:20px;margin-bottom:13px;list-style:disc}
.legal-content ul li{font-size:15px;color:var(--gray);line-height:1.75;margin-bottom:6px}
.legal-content strong{color:var(--navy)}
.legal-nav{max-width:820px;margin:0 auto 28px;display:flex;flex-wrap:wrap;gap:8px}
.legal-nav a{font-family:var(--fd);font-size:12.5px;font-weight:600;color:var(--gray);background:#fff;border:1px solid var(--gray-l);border-radius:20px;padding:7px 16px;transition:var(--tr)}
.legal-nav a:hover{border-color:var(--orange);color:var(--orange)}
.legal-nav a.active{background:var(--navy);border-color:var(--navy);color:#fff}
.legal-back{max-width:820px;margin:0 auto 20px}
.legal-back a{display:inline-flex;align-items:center;gap:7px;font-family:var(--fd);font-size:13px;font-weight:700;color:var(--gray);transition:var(--tr)}
.legal-back a:hover{color:var(--orange)}
.legal-back svg{width:15px;height:15px}
@media(max-width:768px){
.legal-hero{padding:126px 0 40px}
.legal-card{padding:28px 22px;border-radius:16px}
}
@media(max-width:480px){
.legal-hero{padding:112px 0 34px}
.legal-card{padding:22px 16px}
.legal-content h3{font-size:15.5px}
.legal-content p,.legal-content ul li{font-size:14px}
}

/* ---------- SERVICES POPUP MODAL ---------- */
.svc-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}
.svc-modal[hidden]{display:none}
.svc-modal-backdrop{position:absolute;inset:0;background:rgba(6,12,24,.72);backdrop-filter:blur(4px);animation:svcFadeIn .25s ease}
.svc-modal-card{position:relative;background:var(--white);border-radius:var(--rl);padding:34px 30px 30px;max-width:440px;width:100%;max-height:86vh;overflow-y:auto;box-shadow:0 30px 80px rgba(0,0,0,.4);animation:svcPopIn .3s cubic-bezier(.34,1.4,.64,1)}
@keyframes svcFadeIn{from{opacity:0}to{opacity:1}}
@keyframes svcPopIn{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.svc-modal-x{position:absolute;top:14px;right:14px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--off);border:none;border-radius:50%;color:var(--gray);cursor:pointer;transition:var(--tr)}
.svc-modal-x:hover{background:var(--gray-l);color:var(--navy)}
.svc-modal-x svg{width:17px;height:17px}
.svc-modal-title{font-family:var(--fd);font-size:23px;font-weight:800;color:var(--navy);margin:0 0 6px}
.svc-modal-sub{font-size:13.5px;color:var(--gray);margin:0 0 20px;line-height:1.55}
.svc-modal-list{list-style:none;padding:0;margin:0 0 22px;display:flex;flex-direction:column;gap:9px}
.svc-modal-item{display:block;background:var(--off);border:1px solid var(--gray-l);border-radius:12px;padding:13px 16px;transition:var(--tr)}
.svc-modal-item:hover{border-color:var(--orange);background:rgba(232,89,26,.05);transform:translateX(4px)}
.smi-name{display:block;font-family:var(--fd);font-size:15px;font-weight:700;color:var(--navy)}
.smi-desc{display:block;font-size:12.5px;color:var(--gray);margin-top:2px}
.svc-modal-soon>span{display:flex;align-items:center;justify-content:space-between;background:var(--off);border:1.5px dashed var(--gray-l);border-radius:12px;padding:13px 16px;opacity:.75}
.smi-badge{font-family:var(--fd);font-size:9.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--orange);background:rgba(232,89,26,.12);padding:3px 8px;border-radius:20px}
.svc-modal-cta{width:100%;justify-content:center;display:inline-flex}
body.svc-modal-open{overflow:hidden}

/* ---------- MICRO-ANIMATIONS ---------- */
@keyframes sstFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.srv-soon-tab .sst-ico{animation:sstFloat 3s ease-in-out infinite}
.srv-soon-tab:nth-child(2) .sst-ico{animation-delay:1.5s}
@keyframes covPulse{0%,100%{opacity:1}50%{opacity:.75}}
.cov-swatch-served{animation:covPulse 2.8s ease-in-out infinite}

/* ---------- EIRCODE FIELD ---------- */
.eir-hint{font-size:11.5px;color:var(--gray-m);margin-top:5px;transition:color .2s ease}
.eir-hint.eir-ok{color:#16A34A;font-weight:600}
.eir-hint.eir-bad{color:#DC2626;font-weight:600}
#eircodeInput{text-transform:uppercase;letter-spacing:1.5px;font-weight:600}

/* ---------- HEAT-LOSS LEARN MORE ---------- */
.hl-card-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin-top:16px;width:100%;font-family:var(--fd);font-size:13px;font-weight:700;color:var(--orange);background:transparent;border:1.5px solid rgba(232,89,26,.4);border-radius:30px;padding:9px 14px;cursor:pointer;transition:var(--tr)}
.hl-card-btn svg{width:14px;height:14px;transition:transform .25s ease}
.hl-card:hover .hl-card-btn{background:var(--orange);color:#fff;border-color:var(--orange);box-shadow:var(--sho)}
.hl-card:hover .hl-card-btn svg{transform:translateX(3px)}
.hl-modal-card{max-width:560px}
.hlm-lead{font-size:14.5px;color:var(--navy);line-height:1.65;margin-bottom:6px}
.hlm-h{font-family:var(--fd);font-size:14.5px;font-weight:800;color:var(--navy);margin:18px 0 5px}
.hlm-p{font-size:13.5px;color:var(--gray);line-height:1.65;margin:0}
.hlm-list{margin:18px 0;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.hlm-list li{font-size:13px;color:var(--gray);line-height:1.55}
.hlm-foot{font-size:13px;color:var(--navy);line-height:1.6;margin-bottom:18px;padding:12px 14px;background:var(--off);border-radius:12px;border-left:3px solid var(--orange)}

/* ---------- THERMAL PANEL: keep long lists readable on short screens ---------- */
.t-info{max-height:88vh;overflow-y:auto;scrollbar-width:thin}
.t-info::-webkit-scrollbar{width:4px}
.t-info::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:4px}
@media(max-height:820px){
  .t-benefits{gap:6px;margin:10px 0 12px}
  .t-benefits li{font-size:12px;line-height:1.42}
}
@media(max-height:680px){
  .t-benefits{gap:4px;margin:8px 0 10px}
  .t-benefits li{font-size:11px;line-height:1.35;padding-left:17px}
}

/* ---------- FIXED WIDTH: no horizontal shift ----------
   NOTE: overflow-x:hidden must NOT be set on html or body — it creates a
   scroll container and silently breaks position:sticky, which the BER
   scroll animation depends on. scrollbar-gutter alone stops the sideways
   jump between pages; overflow is prevented at source instead. */
html{scrollbar-gutter:stable}
img,svg,video,table,pre{max-width:100%}
.container{width:100%;box-sizing:border-box}
/* known wide children clip themselves rather than the page */
.wrap-x{max-width:100%;overflow-x:auto}

/* ---------- GRANT VERIFICATION NOTE ---------- */
.grant-verify{background:var(--off);padding:26px 0;border-top:1px solid var(--gray-l)}
.gv-line{font-size:12.5px;color:var(--gray);line-height:1.65;max-width:840px;margin:0 auto;text-align:center}
.gv-sub{margin-top:8px;color:var(--gray-m);font-size:12px}
@media(max-width:640px){.grant-verify{padding:20px 0}.gv-line{font-size:11.5px;text-align:left}}

/* Coming Soon badge sits beside its band, not inside its text flow */
/* The A2 "Coming Soon" tag now sits inside its own band and is positioned
   against it. Previously it was anchored to a full-width wrapper row, so
   left:100% put it at the far edge of the chart instead of beside A2. */
.ber-band{position:relative;overflow:visible}

/* ================= SERVICE / INFO PAGES ================= */
.pg{padding:120px 0 80px;background:var(--white)}
.crumb{font-size:12.5px;color:var(--gray-m);margin-bottom:18px}
.crumb a{color:var(--gray);text-decoration:none}
.crumb a:hover{color:var(--orange)}
.crumb span{margin:0 6px}
.pg-h1{font-family:var(--fd);font-size:42px;font-weight:900;color:var(--navy);line-height:1.15;margin:10px 0 18px;max-width:820px}
.pg-h1 em{font-style:normal;color:var(--orange)}
.pg-lede{font-size:17.5px;line-height:1.7;color:var(--gray);max-width:760px;margin-bottom:22px}
.pg-grant{display:inline-block;background:rgba(232,89,26,.08);border:1px solid rgba(232,89,26,.3);border-radius:14px;padding:14px 20px;font-size:14.5px;color:var(--navy);line-height:1.6;max-width:760px}
.pg-cta-top{display:flex;gap:12px;flex-wrap:wrap;margin:26px 0 8px}
.btn-o-dark{background:transparent;color:var(--navy);border:2px solid var(--gray-l)}
.btn-o-dark:hover{border-color:var(--navy);background:var(--off)}
.pg-body{max-width:820px;margin-top:44px}
.pg-h2{font-family:var(--fd);font-size:25px;font-weight:800;color:var(--navy);margin:38px 0 14px}
.pg-body p{font-size:15.5px;line-height:1.78;color:var(--gray);margin-bottom:14px}
.pg-body a:not(.btn):not(.pg-rel){color:var(--orange);font-weight:600}
.pg-list{margin:0 0 16px;padding-left:22px;display:flex;flex-direction:column;gap:9px}
.pg-list li{font-size:15.5px;line-height:1.65;color:var(--gray)}
.pg-table{width:100%;border-collapse:collapse;margin:6px 0 14px}
.pg-table th{text-align:left;font-family:var(--fd);font-size:11.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--gray-m);padding:10px 12px;border-bottom:2px solid var(--gray-l)}
.pg-table td{padding:12px;border-bottom:1px solid var(--off);font-size:15px;color:var(--gray)}
.pg-note{font-size:12.5px!important;color:var(--gray-m)!important}
.pg-warn{background:rgba(232,89,26,.07);border-left:3px solid var(--orange);border-radius:0 10px 10px 0;padding:13px 16px;font-size:14.5px!important;color:var(--navy)!important}
.pg-faqs{display:flex;flex-direction:column;gap:10px}
.pg-faq{background:var(--off);border:1px solid var(--gray-l);border-radius:14px;padding:16px 20px}
.pg-faq summary{font-family:var(--fd);font-size:16px;font-weight:700;color:var(--navy);cursor:pointer;list-style:none}
.pg-faq summary::-webkit-details-marker{display:none}
.pg-faq summary::after{content:'+';float:right;color:var(--orange);font-size:20px;line-height:1}
.pg-faq[open] summary::after{content:'\2212'}
.pg-faq p{margin:12px 0 0;font-size:15px}
.pg-related{margin-top:46px}
.pg-rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.pg-rel{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--off);border:1px solid var(--gray-l);border-radius:14px;padding:16px 18px;font-family:var(--fd);font-size:14.5px;font-weight:700;color:var(--navy)!important;transition:var(--tr)}
.pg-rel:hover{border-color:var(--orange);background:rgba(232,89,26,.05);transform:translateY(-2px)}
.pg-rel svg{width:16px;height:16px;color:var(--orange);flex-shrink:0}
.pg-final{margin-top:50px;background:var(--navy);border-radius:var(--rl);padding:34px;text-align:center}
.pg-final h2{font-family:var(--fd);font-size:24px;font-weight:800;color:#fff;margin-bottom:10px}
.pg-final p{color:rgba(255,255,255,.72)!important;max-width:520px;margin:0 auto 20px!important}
@media(max-width:768px){
  .pg{padding:96px 0 60px}
  .pg-h1{font-size:29px}
  .pg-lede{font-size:16px}
  .pg-h2{font-size:21px}
  .pg-rel-grid{grid-template-columns:1fr}
  .pg-final{padding:24px 20px}
  .pg-cta-top .btn{width:100%;justify-content:center}
}
.f-h{font-family:var(--fd);font-size:13px;font-weight:800;color:#fff;text-transform:uppercase;letter-spacing:.8px;margin-bottom:14px}
.f-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}
.f-links a{font-size:13.5px;color:rgba(255,255,255,.62);transition:var(--tr)}
.f-links a:hover{color:var(--orange-l)}


/* ---------- SERVICE PAGE MEDIA & MOTION ---------- */
.pg-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:38px;align-items:center;margin-bottom:12px}
.pg-fig{margin:0}
.pg-fig img{width:100%;height:auto;display:block;border:1px solid var(--gray-l);border-radius:var(--rl);background:var(--off)}
.pg-fig figcaption{font-size:12px;color:var(--gray-m);margin-top:9px;text-align:center}
.pg-inline-fig{margin:22px 0 8px}
.pg-inline-fig img{width:100%;height:auto;display:block;border:1px solid var(--gray-l);border-radius:var(--rl)}
.pg-h2{position:relative;padding-left:16px}
.pg-h2::before{content:"";position:absolute;left:0;top:.18em;bottom:.18em;width:4px;border-radius:3px;background:var(--orange)}
.pg-faq{transition:border-color .25s ease,background .25s ease}
.pg-faq:hover{border-color:var(--orange)}
.pg-faq summary::after{transition:transform .25s ease}
.pg-faq[open] summary::after{transform:rotate(180deg)}
.pg-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:26px 0 6px}
.pg-stat{background:var(--off);border:1px solid var(--gray-l);border-radius:14px;padding:16px 18px;text-align:center}
.pg-stat-v{font-family:var(--fd);font-size:24px;font-weight:900;color:var(--orange);line-height:1.1}
.pg-stat-l{font-size:12px;color:var(--gray);margin-top:4px;line-height:1.45}
@media(max-width:900px){.pg-hero{grid-template-columns:1fr;gap:26px}}
@media(max-width:640px){.pg-stats{grid-template-columns:1fr}.pg-h2{padding-left:13px}}
@media(prefers-reduced-motion:reduce){.reveal{transition:none!important;opacity:1!important;transform:none!important}}

/* ================= BER BLOCK — MOBILE LAYOUT =================
   Rebuilt so the whole stage fits one phone screen and stays interactive.
   Key fix: 100vh on mobile Safari includes the URL bar that later collapses,
   so the bottom of the panel was being cut off. 100dvh tracks the real
   visible viewport. The vh line stays first as a fallback. */
@media(max-width:768px){
  .thermal-stick{height:100vh;height:100dvh}

  /* vertical stack: chart fixed on top, info flexes, nav pinned at the base */
  .t-content{display:flex;flex-direction:column;height:100%;
             padding:68px 14px 10px;gap:8px;justify-content:flex-start}

  .ber-chart{flex:0 0 auto;width:100%;max-width:100%}
  .ber-band{height:11px}
  .ber-band-kwh,.ber-band-grade{font-size:8px}
  .ber-chart-lbl{font-size:8.5px;letter-spacing:1px}
  .ber-soon-tag{font-size:6.5px;padding:1px 4px;margin-left:5px}

  /* the panel takes the remaining height and scrolls inside itself */
  .t-info{flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;
          -webkit-overflow-scrolling:touch;width:100%;max-width:100%;
          margin-top:4px;padding-right:2px;position:relative}
  .t-stage-lbl{font-size:9.5px;letter-spacing:1.4px}
  .t-main{font-size:19px;line-height:1.25}
  .t-sub{font-size:12.5px;line-height:1.5}
  .t-benefits{margin:9px 0 10px;gap:6px;max-width:100%}
  .t-benefits li{font-size:11.8px;line-height:1.42;padding-left:16px}
  .t-grant-box{padding:9px 12px;gap:9px}
  .t-grant-amount{font-size:15px}
  .t-grant-lbl{font-size:10px}

  /* navigation must stay reachable while the text above scrolls */
  /* Was sticky with a navy gradient, which read as an odd blue rectangle
       around Back/Next. The buttons carry their own contrast, so they now
       sit in normal flow. */
    .ber-nav{margin-top:14px;padding:0}
  .ber-nav-btn{padding:9px 16px;font-size:13px}
  .ber-nav-step{font-size:12px}
}

/* Short phones: tighten further so the nav never falls off the screen */
@media(max-width:768px) and (max-height:740px){
  .t-content{padding:60px 12px 8px;gap:6px}
  .ber-band{height:9px}
  .t-main{font-size:17px}
  .t-sub{font-size:11.8px}
  .t-benefits li{font-size:11px;line-height:1.36;padding-left:15px}
  .t-benefits{gap:5px;margin:7px 0 8px}
}
@media(max-width:768px) and (max-height:640px){
  .ber-chart{max-height:34vh;overflow:hidden}
  .ber-band{height:8px}
  .t-main{font-size:15.5px}
  .t-sub{display:none}
  .t-benefits li{font-size:10.5px}
}

/* ---------- SERVICE PAGE CTA ROW + BOOKING ---------- */
.pg-cta-note{font-size:13px;color:var(--gray);margin-top:12px}
.pg-cta-note a{color:var(--orange);font-weight:700}
.bk-wrap{display:grid;grid-template-columns:1.35fr .65fr;gap:26px;align-items:start;margin-top:34px}
.bk-form{padding:28px}
.bk-form .pg-h2:first-of-type{margin-top:0}
.bk-check{display:flex;align-items:flex-start;gap:10px;margin:18px 0 4px;text-transform:none;letter-spacing:0;font-size:13.5px;font-weight:400;color:var(--gray);line-height:1.55}
.bk-check input{width:auto;margin-top:3px;flex-shrink:0}
.bk-check a{color:var(--orange);font-weight:600}
.bk-err{color:#DC2626;font-size:13.5px;font-weight:600;margin:10px 0;min-height:1px}
.bk-submit{width:100%;justify-content:center;margin-top:6px;font-size:16px;padding:15px}
.bk-aside .card{padding:22px}
.bk-aside .pg-h2{font-size:16px;margin-top:0}
.bk-aside p,.bk-aside li{font-size:14px;color:var(--gray);line-height:1.65}
.bk-done{max-width:620px;margin:34px auto;text-align:center;padding:38px 30px}
.bk-done h2{font-family:var(--fd);font-size:26px;font-weight:800;color:var(--navy);margin-bottom:12px}
.bk-done p{font-size:15.5px;color:var(--gray);line-height:1.7;margin-bottom:22px}
.bk-done a.btn{display:inline-flex}
@media(max-width:900px){.bk-wrap{grid-template-columns:1fr}}
@media(max-width:640px){.bk-form{padding:18px}.pg-cta-top{flex-direction:column}.pg-cta-top .btn{width:100%}}

/* ================= PUBLIC FORM CONTROLS =================
   The booking form used class names that only existed in the admin
   stylesheet, so it rendered as unstyled browser defaults. */
.pg .grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pg .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pg .grid2>*,.pg .grid3>*{min-width:0}
.bk-form label{display:block;font-family:var(--fd);font-size:11.5px;font-weight:800;letter-spacing:.6px;
  text-transform:uppercase;color:var(--gray);margin:16px 0 6px}
.bk-form input[type=text],.bk-form input[type=email],.bk-form input[type=date],
.bk-form input[type=tel],.bk-form select,.bk-form textarea{
  width:100%;max-width:100%;min-width:0;box-sizing:border-box;
  padding:13px 15px;border:1.5px solid var(--gray-l);border-radius:12px;
  font-family:var(--fb);font-size:16px;color:var(--navy);background:#fff;
  -webkit-appearance:none;appearance:none;transition:border-color .2s ease,box-shadow .2s ease}
.bk-form select{padding-right:40px;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%2364748B%22 stroke-width=%222.5%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M6 9l6 6 6-6%22/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:14px}
.bk-form input:focus,.bk-form select:focus,.bk-form textarea:focus{
  outline:none;border-color:var(--orange);box-shadow:0 0 0 4px rgba(232,89,26,.12)}
.bk-form input[type=date]{min-height:50px}
.bk-form textarea{min-height:104px;resize:vertical;line-height:1.6}
.bk-form .pg-h2{font-size:19px;margin:30px 0 4px;padding-left:14px}
.bk-form .pg-h2:first-of-type{margin-top:0}
@media(max-width:640px){.pg .grid2,.pg .grid3{grid-template-columns:1fr;gap:0}}

/* ================= DESIGN POLISH ================= */
.pg{background:linear-gradient(180deg,#FBFCFE 0%,var(--white) 340px)}
.pg-h1{letter-spacing:-.8px}
.pg-lede{color:#475569}
.crumb{display:inline-flex;align-items:center;gap:2px;background:var(--off);
  border:1px solid var(--gray-l);border-radius:30px;padding:7px 16px;font-size:12.5px}
.crumb a{font-weight:600}
.slabel{display:inline-block;background:rgba(232,89,26,.1);color:var(--orange);
  border-radius:30px;padding:6px 14px;font-size:11.5px;font-weight:800;letter-spacing:1.4px}
.pg-grant{background:linear-gradient(135deg,rgba(232,89,26,.09),rgba(232,89,26,.03));
  border-left:4px solid var(--orange);border-radius:0 16px 16px 0}
.pg-stat{transition:var(--tr)}
.pg-stat:hover{transform:translateY(-3px);border-color:rgba(232,89,26,.35);box-shadow:0 10px 26px rgba(11,28,58,.08)}
.pg-fig img{box-shadow:0 14px 40px rgba(11,28,58,.09)}
.pg-final{background:linear-gradient(140deg,var(--navy) 0%,var(--navy-mid) 100%);position:relative;overflow:hidden}
.pg-final::after{content:"";position:absolute;top:-70px;right:-70px;width:220px;height:220px;
  border-radius:50%;background:rgba(232,89,26,.16)}
.pg-final>*{position:relative;z-index:1}
.card{transition:var(--tr)}
.bk-aside .card:hover{border-color:rgba(232,89,26,.3)}

/* ================= SERVICE HUB & CARDS ================= */
.svc-group-h{font-family:var(--fd);font-size:15px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--gray-m);margin:46px 0 18px;display:flex;align-items:center;gap:14px}
.svc-group-h::after{content:"";flex:1;height:1px;background:var(--gray-l)}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.svc-card{position:relative;display:flex;flex-direction:column;gap:9px;background:var(--white);
  border:1px solid var(--gray-l);border-radius:var(--rl);padding:26px 24px;overflow:hidden;
  color:var(--navy)!important;transition:var(--tr)}
.svc-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--orange);
  transform:scaleY(0);transform-origin:top;transition:transform .35s ease}
.svc-card:hover{border-color:rgba(232,89,26,.4);transform:translateY(-5px);box-shadow:0 16px 40px rgba(11,28,58,.11)}
.svc-card:hover::before{transform:scaleY(1)}
.svc-ico{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:14px;
  background:rgba(232,89,26,.1);color:var(--orange);transition:var(--tr)}
.svc-ico svg{width:26px;height:26px}
.svc-card:hover .svc-ico{background:var(--orange);color:#fff;transform:rotate(-6deg) scale(1.06)}
.svc-name{font-family:var(--fd);font-size:17px;font-weight:800;line-height:1.3}
.svc-blurb{font-size:13.5px;color:var(--gray);line-height:1.6}
.svc-go{position:absolute;top:26px;right:22px;color:var(--orange);opacity:0;transform:translateX(-6px);
  transition:opacity .3s ease,transform .3s ease}
.svc-go svg{width:18px;height:18px}
.svc-card:hover .svc-go{opacity:1;transform:translateX(0)}
.svc-hero-ico{display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,var(--navy),var(--navy-mid));
  border-radius:var(--rl);min-height:260px;border:none}
.svc-ico-xl{display:inline-flex;color:var(--orange-l)}
.svc-ico-xl svg{width:118px;height:118px;stroke-width:1.1}
@media(max-width:900px){.svc-grid{grid-template-columns:1fr 1fr}.svc-hero-ico{min-height:180px}.svc-ico-xl svg{width:84px;height:84px}}
@media(max-width:600px){.svc-grid{grid-template-columns:1fr}.svc-group-h{margin:34px 0 14px}}

/* homepage full-service band */
.home-svc{padding:90px 0;background:var(--off)}
.home-svc-hdr{text-align:center;max-width:680px;margin:0 auto 38px}
@media(max-width:768px){.home-svc{padding:60px 0}}

/* ============================================================
   2026 REFINEMENT LAYER
   Appended deliberately: the 898 rules above keep working, this
   layer only lifts the execution. Same navy, same orange, same
   Montserrat/Inter — better spacing, depth, type scale and motion.
   ============================================================ */

:root{
  /* Neutrals tinted toward the brand navy rather than pure grey.
     Pure #64748B next to #0B1C3A reads slightly dirty; tinting
     makes the whole palette feel deliberate. */
  --ink:#0B1C3A;
  --ink-70:#41506B;
  --ink-45:#75819A;
  --ink-25:#AEB7C7;
  --line:#E6EAF1;
  --line-soft:#F0F3F8;
  --canvas:#FFFFFF;
  --canvas-alt:#F7F9FC;

  /* Layered shadows. One flat shadow reads 2018; stacking a tight
     contact shadow under a soft ambient one is what gives depth. */
  --sh-xs:0 1px 2px rgba(11,28,58,.06);
  --sh-sm:0 1px 2px rgba(11,28,58,.06), 0 2px 6px rgba(11,28,58,.05);
  --sh-md:0 2px 4px rgba(11,28,58,.05), 0 8px 20px rgba(11,28,58,.08);
  --sh-lg:0 4px 8px rgba(11,28,58,.05), 0 16px 40px rgba(11,28,58,.11);
  --sh-xl:0 8px 16px rgba(11,28,58,.06), 0 28px 70px rgba(11,28,58,.14);
  --sh-orange:0 2px 6px rgba(232,89,26,.18), 0 10px 28px rgba(232,89,26,.22);

  /* Easing with a touch of overshoot — motion feels responsive
     rather than gluey. Never transition `all`. */
  --ease:cubic-bezier(.16,1,.3,1);
  --ease-out:cubic-bezier(.22,.61,.36,1);
  --t-fast:.16s var(--ease-out);
  --t-med:.28s var(--ease);

  --rs:10px;
  --r:14px;
  --rl:22px;
  --rxl:28px;
}

/* ---------- fluid type scale ---------- */
h1,.h1{font-size:clamp(2rem,1.1rem + 3.6vw,3.9rem);line-height:1.04;
  letter-spacing:-.032em;font-weight:800}
h2,.h2{font-size:clamp(1.5rem,1.1rem + 1.7vw,2.5rem);line-height:1.12;
  letter-spacing:-.024em;font-weight:800}
h3{font-size:clamp(1.12rem,1rem + .5vw,1.4rem);line-height:1.24;
  letter-spacing:-.014em;font-weight:700}
p{line-height:1.68}
.lede,.hero p,.sec-sub{font-size:clamp(1.02rem,.96rem + .34vw,1.22rem);
  line-height:1.62;color:var(--ink-70)}
/* Long prose capped for readability — 75+ characters a line is tiring */
.sec-sub,.faq-a,.pg-body p{max-width:68ch}

/* ---------- buttons ---------- */
.btn{border-radius:100px;font-weight:700;letter-spacing:-.01em;
  transition:transform var(--t-fast),box-shadow var(--t-med),background-color var(--t-fast),color var(--t-fast);
  will-change:transform}
.btn-p,.btn-primary{background:var(--orange);box-shadow:var(--sh-orange)}
.btn-p:hover,.btn-primary:hover{background:var(--orange-l);
  transform:translateY(-2px);box-shadow:0 4px 10px rgba(232,89,26,.22),0 16px 38px rgba(232,89,26,.28)}
.btn-p:active,.btn-primary:active{transform:translateY(0) scale(.985)}
.btn-s,.btn-secondary{border:1.5px solid var(--line);background:var(--canvas);
  box-shadow:var(--sh-xs)}
.btn-s:hover,.btn-secondary:hover{border-color:var(--ink);
  transform:translateY(-2px);box-shadow:var(--sh-md)}
.btn:focus-visible{outline:3px solid var(--orange);outline-offset:3px}

/* ---------- cards ---------- */
.card,.svc-card,.sc-card,.feat-card,.grant-card,.step-card{
  border-radius:var(--rl);border:1px solid var(--line);
  box-shadow:var(--sh-sm);
  transition:transform var(--t-med),box-shadow var(--t-med),border-color var(--t-med)}
.svc-card:hover,.sc-card:hover,.feat-card:hover,.grant-card:hover{
  transform:translateY(-4px);box-shadow:var(--sh-lg);border-color:#D8DFEA}

/* A hairline of brand colour that draws in on hover — cheap, and it
   makes a grid of cards feel considered rather than templated. */
.svc-card,.sc-card{position:relative;overflow:hidden}
.svc-card::after,.sc-card::after{content:"";position:absolute;left:0;right:100%;
  top:0;height:3px;background:linear-gradient(90deg,var(--orange),var(--orange-l));
  transition:right var(--t-med)}
.svc-card:hover::after,.sc-card:hover::after{right:0}

/* ---------- section rhythm ---------- */
/* Generous, consistent vertical space is most of what separates a
   premium site from a busy one. */
/* Sections that already set their own padding must be excluded, or this
   stacks on top of it — .hero has padding:148px 0 70px and was opening
   with roughly 250px of empty space above the content. */
section:not(.hero):not(.thermal):not(.ber):not([class*="hero"]){padding-block:clamp(56px,7vw,110px)}
.sec-head{margin-bottom:clamp(30px,4vw,54px)}
.sec-tag,.eyebrow{display:inline-flex;align-items:center;gap:8px;
  font-family:var(--fd);font-size:12px;font-weight:800;letter-spacing:.14em;
  text-transform:uppercase;color:var(--orange);margin-bottom:14px}
.sec-tag::before,.eyebrow::before{content:"";width:22px;height:2px;
  background:var(--orange);border-radius:2px}

/* ---------- header ---------- */
/* backdrop-filter belongs on the header BAR only. Applying it to .nav —
   which is just the <nav> holding the links — painted a visible tinted
   rectangle behind them. */
.header{transition:background-color var(--t-med),box-shadow var(--t-med)}
.nav.scrolled,.site-header.scrolled{box-shadow:0 1px 0 var(--line),var(--sh-md)}
.nav a,.site-header nav a{position:relative;transition:color var(--t-fast)}
.nav a::after,.site-header nav a::after{content:"";position:absolute;left:0;right:100%;
  bottom:-4px;height:2px;background:var(--orange);border-radius:2px;
  transition:right var(--t-med)}
.nav a:hover::after,.site-header nav a:hover::after{right:0}

/* ---------- hero ---------- */
.hero{position:relative;isolation:isolate}
/* Soft brand glow behind the hero instead of a flat block — adds depth
   without another image to load. */
.hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(58% 46% at 78% 8%,rgba(232,89,26,.16),transparent 62%),
    radial-gradient(50% 42% at 8% 92%,rgba(30,58,122,.30),transparent 60%)}
.hero h1{text-wrap:balance}
.hero-badges,.trust-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.hero-badge,.trust-chip{display:inline-flex;align-items:center;gap:8px;
  padding:9px 15px;border-radius:100px;font-size:13px;font-weight:600;
  background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);
  color:#fff;backdrop-filter:blur(8px)}

/* ---------- forms ---------- */
input,select,textarea{border-radius:var(--rs);border:1.5px solid var(--line);
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
  font-size:16px}  /* 16px stops iOS zooming on focus */
input:hover,select:hover,textarea:hover{border-color:var(--ink-25)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--orange);
  box-shadow:0 0 0 4px rgba(232,89,26,.12)}
label{font-weight:600;letter-spacing:.01em}

/* ---------- FAQ ---------- */
.fi,.faq-item{border-radius:var(--r);border:1px solid var(--line);
  transition:border-color var(--t-fast),box-shadow var(--t-med),background-color var(--t-fast)}
.fi:hover,.faq-item:hover{border-color:var(--ink-25);box-shadow:var(--sh-sm)}

/* ---------- footer ---------- */
.footer,footer{border-top:1px solid rgba(255,255,255,.08)}
.footer a,footer a{transition:color var(--t-fast),opacity var(--t-fast)}

/* ---------- images ---------- */
img{max-width:100%;height:auto}
.svc-card img,.ba-img img,figure img{border-radius:var(--r)}

/* ---------- scroll reveal ---------- */
.rv,[data-rv]{opacity:0;transform:translateY(20px);
  transition:opacity .62s var(--ease),transform .62s var(--ease)}
.rv.in,[data-rv].in{opacity:1;transform:none}

/* ---------- accessibility ---------- */
:focus-visible{outline:3px solid var(--orange);outline-offset:2px;border-radius:4px}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;
    animation-iteration-count:1!important;transition-duration:.01ms!important;
    scroll-behavior:auto!important}
  .rv,[data-rv]{opacity:1!important;transform:none!important}
}
::selection{background:rgba(232,89,26,.22);color:var(--ink)}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}


/* ---------- header layout corrections ---------- */
/* Logo must never truncate to "AGI Construc..." */
.logo-wrap{flex-shrink:0;overflow:visible}
.logo-m{overflow:visible;text-overflow:clip;white-space:nowrap}

/* Nav labels must never wrap ("Why Us" was breaking onto two lines) */
.nav{flex-wrap:nowrap}
.nav a{white-space:nowrap}

/* The bar carries logo + badge + 5 links + language toggle + CTA. That
   stops fitting long before 768px, so the badge now steps aside sooner
   and spacing tightens progressively rather than all at one breakpoint. */
@media(max-width:1280px){
  .hdr-seai{display:none}
  .header-in{gap:14px}
  .nav a{padding:8px 9px}
}
@media(max-width:1080px){
  .nav{gap:0}
  .nav a{padding:8px 7px;font-size:12.5px}
  .logo-s{display:none}
}

/* Below tablet the bar cannot hold logo + 5 links + language + CTA on one
   line. Service pages have no drawer to fall back on, so rather than let
   the links crush or wrap, the nav becomes a horizontal scroll strip.
   Every link stays reachable, no extra markup, no JavaScript. */
@media(max-width:900px){
  .header-in{flex-wrap:wrap;row-gap:8px;padding:10px 0}
  .logo-wrap{order:1}
  .header-in > .btn,.header-in .lang-wrap,.header-in .lang{order:2;margin-left:auto}
  .nav{order:3;flex-basis:100%;overflow-x:auto;overflow-y:hidden;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;
    padding-bottom:2px;justify-content:flex-start}
  .nav::-webkit-scrollbar{display:none}
  .nav a{flex:0 0 auto;font-size:13px;padding:7px 10px}
}
@media(max-width:560px){
  .logo-m{font-size:18px}
  .nav a{font-size:12.5px;padding:7px 8px}
}

/* skip link — visible only when focused by keyboard */
.skip-link{position:absolute;left:-9999px;top:0;z-index:2000;padding:12px 20px;
  background:var(--orange);color:#fff;font-family:var(--fd);font-weight:700;
  border-radius:0 0 10px 0;text-decoration:none}
.skip-link:focus{left:0}

/* Lighthouse flags text under 4.5:1. --gray-m on white is 2.9:1, so the
   muted greys step down to values that pass while still reading as muted. */
:root{--gray:#586074;--gray-m:#6B7488}
.muted,.sec-sub,.f-links a{color:var(--gray)}

/* Brand orange is 3.57:1 on white — fine for large text and for white-on-
   orange buttons, but it fails 4.5:1 as small text. Small orange labels use
   a darker tone; the buttons and headings keep the brand colour. */
.sec-tag,.eyebrow,.hero-eyebrow,.pg-eyebrow{color:#A5390A}


/* The BER step buttons sit on the section background — no container fill. */
.ber-nav{background:none!important;box-shadow:none!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  border:0!important;position:static!important}


/* ---------- areas we cover ---------- */
.area-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));margin:20px 0 8px}
.area-card{display:block;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r);
  background:var(--canvas);box-shadow:var(--sh-sm);text-decoration:none;
  transition:transform var(--t-med),box-shadow var(--t-med),border-color var(--t-med)}
.area-card:hover{transform:translateY(-3px);box-shadow:var(--sh-lg);border-color:#D8DFEA}
.area-card strong{display:block;font-family:var(--fd);font-size:17px;color:var(--ink);letter-spacing:-.015em}
.area-card small{display:block;margin-top:7px;font-size:12.5px;line-height:1.5;color:var(--ink-45)}
.area-ex{display:inline-block;margin-top:6px;padding:2px 9px;border-radius:20px;
  font-size:11px;font-weight:700;letter-spacing:.03em}
.area-severe{background:#FEF2F2;color:#B91C1C}
.area-moderate{background:#FFF7ED;color:#9A3412}
.area-sheltered{background:#F0FDF4;color:#166534}
.pg-steps{margin:14px 0 8px;padding-left:20px}
.pg-steps li{margin-bottom:10px;line-height:1.65}
.pg-list{margin:12px 0;padding-left:20px}
.pg-list li{margin-bottom:7px}


/* ---------- knowledge hub ---------- */
.kb-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin:22px 0 8px}
.kb-card{display:flex;flex-direction:column;gap:8px;padding:20px;border:1px solid var(--line);
  border-radius:var(--rl);background:var(--canvas);box-shadow:var(--sh-sm);text-decoration:none;
  transition:transform var(--t-med),box-shadow var(--t-med),border-color var(--t-med)}
.kb-card:hover{transform:translateY(-3px);box-shadow:var(--sh-lg);border-color:#D8DFEA}
.kb-card strong{font-family:var(--fd);font-size:16.5px;line-height:1.3;color:var(--ink);letter-spacing:-.015em}
.kb-card small{font-size:13px;line-height:1.55;color:var(--ink-45)}
.kb-go{margin-top:auto;font-family:var(--fd);font-weight:700;font-size:13.5px;color:var(--orange)}
.kb{max-width:74ch}
.kb h2{margin-top:32px}
.kb p{margin-bottom:14px}
.pg-table{width:100%;border-collapse:collapse;margin:16px 0;font-size:14px}
.pg-table th{text-align:left;padding:10px 12px;background:var(--canvas-alt);
  font-family:var(--fd);font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-45)}
.pg-table td{padding:10px 12px;border-top:1px solid var(--line)}
