:root{--bg:#ffffff;--panel:#f3f7f9;--line:#d4e0e6;--ink:#152b38;--muted:#536b78;--ice:#187b9b;--green:#32834b}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea,summary{ -webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--ice);outline-offset:5px}header{height:90px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;position:sticky;top:0;z-index:20;background:#fffffff5;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:1.3px;font-size:19px}.brand-icon{background:var(--ice);color:#fff;width:39px;height:43px;display:grid;place-items:center;font-size:30px;clip-path:polygon(0 0,100% 0,100% 75%,75% 100%,0 100%)}.brand-sub{display:block;font-size:9px;letter-spacing:2.5px;margin-top:5px;color:var(--muted)}nav{display:flex;align-items:center;gap:30px;font-size:13px}nav a:hover{color:var(--ice)}.nav-contact{border:1px solid #b4c8d2;padding:13px 18px}.menu{display:none;background:transparent;border:1px solid var(--line);padding:8px 12px}.hero{position:relative;min-height:650px;overflow:hidden;display:flex;align-items:center}.hero-photo{position:absolute;right:0;top:0;height:100%;width:72%;object-fit:cover;object-position:60% 45%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#101b21 5%,#101b21f0 28%,#101b2144 70%,#101b2110),linear-gradient(0deg,#101b2199,transparent 50%)}.hero-content{position:relative;z-index:2;padding:70px 6%;width:100%}.eyebrow{font-size:11px;font-weight:600;letter-spacing:2.3px;color:var(--ice);margin-bottom:25px}.status{display:inline-block;width:6px;height:6px;background:var(--ice);border-radius:50%;margin-right:8px;box-shadow:0 0 12px #a1d9e680}h1{font-size:clamp(54px,6.4vw,100px);letter-spacing:-5px;line-height:1.02;font-weight:600;margin:0 0 28px}em{font-style:normal;color:var(--ice)}.hero p{font-size:17px;line-height:1.7;color:#3f5c6d}.actions{display:flex;align-items:center;gap:26px;margin:35px 0 50px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:17px 23px;border:0;font-weight:600;font-size:13px;transition:background .2s,transform .2s}.green{background:var(--green);color:#ffffff}.green:hover{background:#286e3e;transform:translateY(-2px)}.textlink{font-size:12px;border-bottom:1px solid #73858d;padding:8px 0}.hero-bottom{display:flex;gap:35px;font-size:10px;letter-spacing:2px;color:var(--muted)}.image-label{position:absolute;right:5%;top:35px;font-size:10px;letter-spacing:2px}.cross{font-size:25px;vertical-align:middle;margin-right:8px}.hero-card{position:absolute;right:5%;bottom:65px;background:#101b21d9;backdrop-filter:blur(10px);padding:24px;width:280px;border:1px solid #b9d6dd44}.hero-card div{font-size:9px;letter-spacing:1.4px}.hero-card p{font-size:25px;color:white;line-height:1.25;margin:18px 0}.hero-card>span{font-size:10px;color:var(--muted)}.rail{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line);padding:0 6%;background:#edf4f7}.rail span{font-size:10px;letter-spacing:1.4px;padding:24px 0;color:#3b596b}.section{padding:95px 6%}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:45px}h2{font-size:clamp(32px,3.4vw,52px);font-weight:500;line-height:1.1;letter-spacing:-1.8px;margin:0}p{color:var(--muted);line-height:1.7;font-size:14px}.section-head>p{max-width:370px;margin:0 0 4px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.service{text-align:left;padding:0;border:1px solid var(--line);background:var(--panel);transition:transform .25s,border .25s}.service:hover{transform:translateY(-6px);border-color:var(--ice)}.service-image{height:210px;position:relative;overflow:hidden}.service-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.service:hover img{transform:scale(1.06)}.service-image>span{position:absolute;left:15px;top:15px;background:#ffffffed;padding:8px 10px;font-size:11px}.service-image>i{position:absolute;right:15px;bottom:15px;background:var(--ice);color:#fff;font-style:normal;padding:8px 12px;font-size:20px}.service-copy{padding:25px 20px}.service-copy small{font-size:8px;letter-spacing:1.7px;color:var(--ice)}h3{font-size:21px;font-weight:500;letter-spacing:-.3px;margin:15px 0 12px}.service-copy p{font-size:12px;min-height:65px}.more{font-size:10px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.more b{font-size:16px}.system{background:#edf4f7;display:grid;grid-template-columns:1fr 1.05fr;gap:8%;border-block:1px solid var(--line)}.system-intro>p{max-width:430px}.system-intro>p:first-of-type{margin-top:25px}.muted{font-size:12px}.switch{display:flex;gap:5px;background:#dce9ef;padding:5px;max-width:275px;margin-top:22px}.switch button{flex:1;padding:12px;background:transparent;border:0;font-size:12px}.switch .active{background:var(--ice);color:#fff}.mode-copy{min-height:130px;margin-top:23px;max-width:410px}.mode-copy h3{font-size:17px}.mode-copy p{font-size:13px}.energy-map{align-self:center;background-color:#ffffff;background-image:linear-gradient(#29404a30 1px,transparent 1px),linear-gradient(90deg,#29404a30 1px,transparent 1px);background-size:26px 26px;border:1px solid #3c5662;padding:25px;position:relative}.map-top{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.2px;color:var(--muted);margin-bottom:30px}.map-top span:last-child{color:var(--ice)}.node{padding:19px 10px;background:#f0f6f9;border:1px solid #adc5d0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;font-size:9px;letter-spacing:.7px}.node small,.center-node small{display:block;font-size:9px;color:var(--muted);letter-spacing:0;margin-top:8px;line-height:1.4}.node-icon{font-size:27px;color:var(--ice)}.solar-node{width:60%;margin:auto;flex-direction:row;justify-content:center;text-align:left}.flow{width:1px;height:30px;background:var(--ice);margin:auto;position:relative}.flow:after{content:'';position:absolute;left:-3px;width:7px;height:7px;background:var(--ice);border-radius:50%;animation:flow 2s infinite}@keyframes flow{from{top:0;opacity:0}30%{opacity:1}to{top:25px;opacity:0}}.center-node{background:var(--ice);color:#10232b;margin:auto;width:70%;display:flex;justify-content:center;gap:18px;padding:20px;font-size:11px;letter-spacing:1px}.center-node>span{font-size:32px}.center-node small{color:#354e56}.branch-lines{display:flex;justify-content:space-around;position:relative;height:42px;margin:0 16%}.branch-lines:before{content:'';position:absolute;top:20px;width:100%;height:1px;background:#718e9a}.branch-lines i{height:22px;width:1px;background:#718e9a;position:relative;top:20px}.branch-lines i:nth-child(2){height:42px;top:0}.node-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.node-grid .node{padding:14px 3px}.map-note{font-size:9px;margin:24px 0 0;line-height:1.6}.night .solar-node{opacity:.4}.night .battery-icon{color:var(--green)}.support{padding-block:65px;background:#e4eef3;color:var(--bg)}.support .eyebrow{color:#526a76}.support-row{display:grid;grid-template-columns:1fr 1.1fr;gap:9%}.support-row p{color:#455c65;margin-top:0}.tags{display:flex;gap:9px;flex-wrap:wrap;margin-top:24px}.tags span{font-size:10px;border:1px solid #a1b4bc;padding:11px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.steps article{border-top:1px solid #b4cbd6;padding-top:24px}.steps article>span{font-size:36px;color:#3287a0;font-weight:300}.steps p{font-size:12px}.faq{padding-top:20px;display:grid;grid-template-columns:1fr 1.1fr;gap:9%}.faq details{border-bottom:1px solid var(--line);padding:21px 0}.faq details:first-child{padding-top:0}summary{font-size:14px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;line-height:1.4}summary:after{content:'+';font-size:20px;color:var(--ice)}details[open] summary:after{content:'−'}details p{font-size:12px;max-width:520px}.contact{border-top:1px solid var(--line);background:#edf4f7;display:grid;grid-template-columns:1fr 1fr;gap:8%}.contact>div>p{margin:25px 0}.phone{display:block;font-size:25px;letter-spacing:-.5px;margin-top:30px}.email{display:inline-block;margin-top:14px;color:var(--ice);font-size:14px}.address{font-size:11px;line-height:1.8;color:var(--muted);margin-top:30px}form{background:var(--bg);border:1px solid var(--line);padding:30px}form h3{margin-top:0}.form-note{font-size:10px;line-height:1.5}.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 28px}.choices label{padding:12px;border:1px solid var(--line);font-size:11px}.choices label:has(input:checked){border-color:var(--ice);background:#e1f1f6}input[type=checkbox]{accent-color:var(--ice);margin:0 5px 0 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}form label{display:block;font-size:11px;color:#334f60}input:not([type=checkbox]),textarea{width:100%;background:#f6f9fb;border:1px solid #b8cbd4;color:#152b38;padding:12px;margin:8px 0 18px;border-radius:0;font-size:12px}textarea{resize:vertical}input:focus,textarea:focus{outline:1px solid var(--ice)}form .button{width:100%}footer{padding:45px 6%;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:25px}footer>p{font-size:12px;text-align:right}footer>div{display:flex;gap:25px;font-size:10px}footer small{font-size:9px;color:var(--muted);text-align:right}dialog{padding:0;background:var(--panel);color:var(--ink);border:1px solid var(--line);max-width:700px;width:calc(100% - 32px);max-height:90vh;overflow:auto}dialog::backdrop{background:#203e57a8;backdrop-filter:blur(8px)}dialog>img{width:100%;height:250px;object-fit:cover}.dialog-copy{padding:35px}.dialog-copy p{margin-top:20px}.dialog-copy li{font-size:13px;color:var(--muted);margin:12px 0}.dialog-copy ul{padding-left:18px;margin-bottom:30px}.close{position:absolute;right:14px;top:14px;border:0;background:var(--bg);width:40px;height:40px;font-size:27px}.dialog-copy .eyebrow{margin-bottom:15px}
@media(min-width:1600px){.section,header,.hero-content,footer{padding-left:max(6%,calc((100vw - 1450px)/2));padding-right:max(6%,calc((100vw - 1450px)/2))}.hero-card{right:8%}}@media(max-width:1050px){nav{gap:18px}h1{font-size:76px}.hero-card{width:230px;right:4%}.cards{grid-template-columns:repeat(2,1fr)}.service-image{height:250px}.service-copy p{min-height:40px}.system{gap:5%;grid-template-columns:1fr 1fr}.section{padding-block:70px}.node-grid .node{font-size:8px}.energy-map{padding:18px}.hero-photo{width:85%}}@media(max-width:700px){header{height:72px;padding-inline:6%}.brand{font-size:16px}.brand-sub{font-size:8px}.brand-icon{width:32px;height:36px;font-size:25px}.menu{display:block}nav{display:none;position:absolute;top:72px;left:0;right:0;padding:24px 6%;background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:24px}nav.open{display:flex}.hero{min-height:720px;align-items:flex-start}.hero-photo{width:100%;height:100%;object-position:65%}.hero-shade{background:linear-gradient(90deg,#101b21ed,#101b2166),linear-gradient(0deg,#101b21eb,transparent)}.hero-content{padding:65px 6% 185px}.eyebrow{font-size:9px;letter-spacing:1.6px;margin-bottom:22px}h1{font-size:clamp(52px,12vw,76px);letter-spacing:-3px}.hero p{font-size:14px}.actions{align-items:flex-start;flex-direction:column;gap:15px;margin-bottom:30px}.button{padding:16px 19px;font-size:12px}.hero-bottom{gap:15px;font-size:8px;letter-spacing:1px;flex-wrap:wrap}.image-label{display:none}.hero-card{width:88%;bottom:25px;right:6%;padding:18px}.hero-card p{font-size:20px;margin:12px 0}.hero-card p br{display:none}.hero-card div{font-size:8px}.rail{grid-template-columns:1fr 1fr;gap:0 10px}.rail span{padding:15px 0;font-size:8px;letter-spacing:1px}.section{padding:60px 6%}.section-head{display:block;margin-bottom:30px}.section-head>p{margin-top:24px;font-size:13px}h2{font-size:35px}.cards{gap:15px;grid-template-columns:1fr}.service-image{height:240px}.service-copy{padding:24px}.service-copy p{min-height:0;font-size:13px}.service-copy small{font-size:9px}.service-copy h3{font-size:25px}.more{font-size:12px}.system,.support-row,.contact,.faq{grid-template-columns:1fr;gap:35px}.system-intro>p{max-width:none}.mode-copy{min-height:0}.energy-map{padding:20px 14px}.map-top{font-size:7px;letter-spacing:.6px}.node-grid .node{font-size:8px}.node small{font-size:8px}.solar-node{width:72%}.center-node{width:80%}.steps{grid-template-columns:1fr 1fr;gap:30px 20px}.steps h3{font-size:20px}.faq{padding-top:5px}.phone{font-size:23px}form{padding:22px}.form-grid{grid-template-columns:1fr;gap:0}.choices{gap:8px}.choices label{padding:11px 8px;font-size:10px}footer{grid-template-columns:1fr;gap:20px;padding:35px 6%}footer>p,footer small{text-align:left;margin:0}footer>div{flex-wrap:wrap;gap:20px}.dialog-copy{padding:25px}dialog>img{height:200px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Light energy design */
.hero-shade{background:linear-gradient(90deg,#ffffff 3%,#fffffff5 25%,#ffffffbb 43%,#ffffff18 73%),linear-gradient(0deg,#ffffff33,transparent 55%)}
.hero-card{background:#fffffff0;border-color:#d4e0e6;box-shadow:0 14px 45px #142d3e18}.hero-card p{color:var(--ink)}.image-label{background:#ffffffdf;color:#264959;padding:10px 14px}.hero-bottom{color:#456273}.hero-photo{filter:saturate(.85)}
.brand-icon,.service-image>i,.switch .active{color:#fff}.center-node{background:#d3edf5;color:#163b4c}.center-node small{color:#476875}.node-icon{color:#187b9b}.flow,.flow:after{background:#187b9b}.map-top span:last-child{color:#187b9b}.branch-lines:before,.branch-lines i{background:#88adbd}.energy-map{border-color:#b4cbd6;background-image:linear-gradient(#adc9d52b 1px,transparent 1px),linear-gradient(90deg,#adc9d52b 1px,transparent 1px)}
.service{box-shadow:0 4px 18px #163b4c06}.service-image>span{color:var(--ink)}.service:hover{box-shadow:0 12px 28px #163b4c15}.textlink{border-color:#829eac}.phone:hover,.email:hover{color:#12617b}input::placeholder,textarea::placeholder{color:#718793}.close{background:#fff;color:var(--ink);box-shadow:0 2px 12px #152b3833}
@media(max-width:700px){.hero-shade{background:linear-gradient(90deg,#ffffffed,#ffffffa8),linear-gradient(0deg,#fffffff5,#ffffff20)}.hero-card{background:#fffffff0}.hero-photo{object-position:65%}.hero p{color:#3f5c6d}}

.references{background:#f6f9fb;border-block:1px solid var(--line)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.gallery-item{background:#fff;border:1px solid var(--line);padding:0;text-align:left;transition:transform .2s,box-shadow .2s}.gallery-item:hover{transform:translateY(-4px);box-shadow:0 10px 25px #163b4c12}.gallery-image{aspect-ratio:4/3;position:relative;overflow:hidden}.gallery-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.gallery-item:hover img{transform:scale(1.04)}.gallery-zoom{position:absolute;right:15px;bottom:15px;background:var(--green);color:white;display:grid;place-items:center;width:36px;height:36px;font-size:22px}.gallery-caption{padding:18px;display:block;font-size:12px;line-height:1.5}.gallery-caption small{color:var(--ice);margin-right:8px;font-size:10px}#photoDialog{width:min(1200px,95vw);max-width:1200px;background:#fff;padding:0 18px 18px;overflow:auto}.photo-toolbar{display:flex;justify-content:space-between;align-items:center;height:54px;font-size:12px;color:var(--muted)}.photo-toolbar button{border:0;background:transparent;color:var(--ink);font-size:30px;padding:5px 12px}.photo-stage{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;gap:12px;align-items:center}.photo-stage img{width:100%;height:min(68vh,800px);object-fit:contain;background:#edf4f7}.photo-stage button{height:50px;background:var(--green);color:white;border:0;font-size:32px}#photoCaption{text-align:center;color:var(--ink);font-size:13px;margin:18px 0 0}@media(max-width:1050px){nav{gap:15px;font-size:12px}.gallery-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.gallery-grid{grid-template-columns:1fr;gap:18px}.photo-stage{grid-template-columns:30px minmax(0,1fr) 30px;gap:5px}.photo-stage img{height:60vh}#photoDialog{padding-inline:8px}.gallery-caption{font-size:12px}}
/* Compact reference thumbnails; full view remains in the dialog. */
.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px}.gallery-image{aspect-ratio:auto;height:110px}.gallery-caption{font-size:10px;padding:10px;min-height:48px;line-height:1.35}.gallery-caption small{font-size:9px;margin-right:3px}.gallery-zoom{width:25px;height:25px;right:8px;bottom:8px;font-size:17px}.gallery-item{min-width:0}.gallery-item:hover{transform:translateY(-2px)}
@media(min-width:1500px){.gallery-grid{grid-template-columns:repeat(7,minmax(0,1fr))}}
@media(max-width:700px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.gallery-image{height:85px}.gallery-caption{padding:8px;font-size:9px;min-height:52px}.gallery-caption small{display:block;margin-bottom:3px}.gallery-zoom{width:21px;height:21px;right:5px;bottom:5px;font-size:15px}}
@media(max-width:380px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-image{height:90px}}

/* Uploaded original logo */
.logo-brand{display:inline-flex;flex-shrink:0;line-height:0}.brand-logo{display:block;width:auto;height:94px;object-fit:contain}header{height:114px}html{scroll-padding-top:125px}footer .brand-logo{height:110px}@media(max-width:700px){header{height:94px}header .brand-logo{height:78px}nav{top:94px}html{scroll-padding-top:105px}footer .brand-logo{height:100px}}

/* Horizontal logo on white */
header{height:90px}.brand-logo,footer .brand-logo{width:285px;height:auto;max-width:100%;object-fit:contain}.logo-brand{max-width:34%;flex-shrink:1}html{scroll-padding-top:100px}@media(max-width:1050px){header .brand-logo{width:245px}nav{gap:12px;font-size:11px}}@media(max-width:700px){header{height:72px}header .brand-logo{width:245px;height:auto}.logo-brand{max-width:calc(100% - 65px)}nav{top:72px}html{scroll-padding-top:85px}footer .brand-logo{width:265px;height:auto}}

.legal-page{max-width:1050px;margin:auto;min-height:65vh}.legal-page h1{font-size:clamp(38px,6vw,65px);letter-spacing:-2px}.legal-page section{margin:35px 0;border-top:1px solid var(--line);padding-top:25px}.legal-page h2{font-size:24px;letter-spacing:-.5px}.legal-page a:not(.button){color:var(--ice);text-decoration:underline}.legal-page p{font-size:15px}

.service-area{background:#f6f9fb;border-top:1px solid var(--line)}.town-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 20px;list-style:none;padding:0;margin:28px 0}.town-list li{font-size:12px;color:var(--ink);padding:10px 0;border-bottom:1px solid var(--line)}.area-note{font-size:12px;margin:25px 0}@media(max-width:900px){.town-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.town-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 15px}.town-list li{font-size:11px}}

/* Fifth service tile */
@media(min-width:1051px){.cards{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.service-copy{padding:23px 16px}.service-copy h3{font-size:20px;line-height:1.25;min-height:50px}.service-copy p{min-height:86px}}.choices label:last-child{grid-column:1/-1}
