
:root{--navy:#071d2b;--navy2:#0b2d40;--teal:#0d9bb5;--teal2:#43c5d8;--gold:#f3b72f;--ink:#122632;--muted:#64727c;--line:#dfe8ec;--bg:#f7fafb;--white:#fff;--green:#3da46c;--shadow:0 20px 60px rgba(7,29,43,.14);--r:20px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{text-decoration:none;color:inherit}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}.wrap{width:min(1180px,92vw);margin:auto}.narrow{width:min(900px,92vw);margin:auto}
.topbar{background:var(--navy);color:#dceaf0;font-size:13px}.topbar .wrap{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:18px}.topbar a{color:#fff;font-weight:800}.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(7,29,43,.08)}.navin{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;min-width:280px}.brand .logo{width:64px;height:64px;object-fit:contain;flex:0 0 64px;filter:drop-shadow(0 5px 12px rgba(7,29,43,.12))}.brand strong{display:block;font-size:16px;letter-spacing:.65px;color:var(--navy)}.brand small{display:block;font-size:9px;letter-spacing:1.7px;color:#6f7c84;margin-top:2px}.links{display:flex;gap:20px;align-items:center;font-size:13px;font-weight:800;color:#253b49}.links a:hover{color:var(--teal)}.quote{background:var(--gold);color:#102836;padding:13px 17px;border-radius:8px;font-weight:950;box-shadow:0 8px 20px rgba(243,183,47,.25)}
.hero{padding:0;background:var(--navy);color:#fff}.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;min-height:600px}.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:72px max(4vw,38px) 72px max(4vw,calc((100vw - 1180px)/2));background:linear-gradient(135deg,#071d2b 0%,#0b3e50 100%)}.hero-photo{min-height:600px;background-image:linear-gradient(90deg,rgba(7,29,43,.1),rgba(7,29,43,.05)),url('assets/island-pv-hawaii-hero-banner.png');background-size:cover;background-position:74% 55%}.eyebrow{color:#9de8f2;text-transform:uppercase;letter-spacing:1.9px;font-size:12px;font-weight:900}.hero h1{font-size:clamp(46px,5.7vw,78px);line-height:.98;letter-spacing:-3px;margin:14px 0 20px;max-width:760px}.hero h1 span{color:#8fe1ea}.hero p{font-size:19px;line-height:1.65;color:#d4e5ea;max-width:650px;margin:0}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 18px;border-radius:8px;font-weight:900;border:1px solid transparent;cursor:pointer}.btn.gold{background:var(--gold);color:#102836}.btn.white{background:#fff;color:var(--navy)}.btn.outline{border-color:rgba(255,255,255,.45);color:#fff;background:rgba(255,255,255,.06)}.btn.teal{background:var(--teal);color:#fff}
.trustbar{margin-top:-36px;position:relative;z-index:3}.trustgrid{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.trustitem{padding:24px;border-right:1px solid var(--line)}.trustitem:last-child{border-right:0}.trustitem b{display:block;color:var(--navy);font-size:18px;margin-bottom:4px}.trustitem span{font-size:13px;color:var(--muted);line-height:1.55}
section{padding:88px 0}.kicker{color:var(--teal);text-transform:uppercase;font-weight:900;letter-spacing:1.8px;font-size:12px}.title{font-size:clamp(36px,4.5vw,56px);line-height:1.05;letter-spacing:-2px;color:var(--navy);margin:10px 0 16px}.lede{font-size:18px;line-height:1.72;color:var(--muted);max-width:820px}.center{text-align:center}.center .lede{margin-inline:auto}
.services{background:var(--bg)}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:34px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 10px 28px rgba(7,29,43,.07)}.card-image{height:170px;background-size:cover;background-position:center}.card-image.residential{background-image:url('https://images.unsplash.com/photo-1655300283246-1ef0317a565d?auto=format&fit=crop&fm=jpg&q=90&w=1600')}.card-image.battery{background-image:url('https://images.unsplash.com/photo-1780445392417-68b9dccc45f2?auto=format&fit=crop&fm=jpg&q=90&w=1600')}.card-image.commercial{background-image:linear-gradient(145deg,#0d8ca5,#093a52)}.card-image.offgrid{background-image:linear-gradient(145deg,#152f3f,#0c99b0)}.cardbody{padding:22px}.card h3{margin:0 0 9px;font-size:21px;color:var(--navy)}.card p{color:var(--muted);line-height:1.6;margin:0}.card a{display:inline-block;margin-top:14px;font-weight:850;color:var(--teal)}
.why-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center}.why-photo{min-height:480px;border-radius:16px;background:url('https://images.unsplash.com/photo-1682832920180-307bc4f853a5?auto=format&fit=crop&fm=jpg&q=90&w=2400') center/cover no-repeat;box-shadow:var(--shadow)}.checks{display:grid;gap:14px;margin-top:24px}.check{display:grid;grid-template-columns:34px 1fr;gap:12px}.check i{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e5f7fa;color:var(--teal);font-style:normal;font-weight:950}.check b{display:block;color:var(--navy);margin-bottom:3px}.check span{color:var(--muted);line-height:1.55}
.proof{background:#071d2b;color:#fff}.proof .title{color:#fff}.proof .lede{color:#c5d7de}.projectgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}.project{border:1px solid rgba(255,255,255,.14);border-radius:14px;overflow:hidden;background:rgba(255,255,255,.05)}.projecthead{height:150px;position:relative;background:linear-gradient(135deg,#0b5366,#0d96ad);display:flex;align-items:flex-end;padding:20px}.projecthead:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 75% 20%,rgba(243,183,47,.36),transparent 28%),linear-gradient(120deg,transparent 45%,rgba(255,255,255,.08) 45% 47%,transparent 47%)}.projecthead strong{position:relative;font-size:21px}.projectbody{padding:22px}.projectbody b{color:#fff}.projectbody p{color:#c5d7de;line-height:1.6;margin:7px 0}.projectbody small{color:#91acb7}.proof-note{font-size:12px;color:#91acb7;margin-top:16px;line-height:1.6}
.testimonial{background:#eef8fa}.review{max-width:920px;margin:30px auto 0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px;box-shadow:0 12px 35px rgba(7,29,43,.08)}.review blockquote{font-size:22px;line-height:1.6;color:#243a46;margin:0}.review cite{display:block;margin-top:18px;color:var(--teal);font-style:normal;font-weight:900}.stars{letter-spacing:3px;color:#e6a514;font-size:20px}
.solar-teaser{background:#fff}.teasergrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:32px}.teaser{border:1px solid var(--line);border-radius:14px;padding:24px;background:linear-gradient(180deg,#fff,#f7fbfc)}.teaser .num{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:950}.teaser h3{color:var(--navy);font-size:20px}.teaser p{color:var(--muted);line-height:1.6}.teaser a{font-weight:900;color:var(--teal)}
.process{background:var(--navy);color:#fff}.process .title{color:#fff}.process .lede{color:#bfd0d8}.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:34px}.step{padding:22px 18px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(255,255,255,.04)}.stepnum{width:38px;height:38px;border-radius:50%;background:var(--gold);color:#0a2332;display:grid;place-items:center;font-weight:950;margin-bottom:15px}.step h3{font-size:17px;margin:0 0 8px}.step p{font-size:13px;line-height:1.6;color:#bcd0d9;margin:0}
.quote-section{background:#f4fafb}.quotegrid{display:grid;grid-template-columns:.85fr 1.15fr;gap:34px;align-items:start}.quote-copy{position:sticky;top:120px}.formcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:0 14px 40px rgba(7,29,43,.08)}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:13px;font-weight:850;color:#29414f}.field input,.field select,.field textarea{width:100%;border:1px solid #cddce2;border-radius:9px;padding:13px 14px;background:#fff;color:var(--ink);min-height:46px}.field textarea{min-height:110px;resize:vertical}.field-help{font-size:11px;color:var(--muted);line-height:1.4}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(13,155,181,.16);border-color:var(--teal)}.field input:user-invalid,.field select:user-invalid,.field textarea:user-invalid{border-color:#b74b4b}.form-note{font-size:12px;color:var(--muted);line-height:1.55;margin-top:12px}.form-status{font-size:13px;color:var(--teal);font-weight:850;margin-top:10px;min-height:20px}
.location-links{background:#fff}.locgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:26px}.locgrid a{border:1px solid var(--line);border-radius:10px;padding:15px;font-weight:850;color:var(--navy);background:#fff}.locgrid a:hover{border-color:var(--teal);color:var(--teal)}
.faqgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:32px}.faqitem{border:1px solid var(--line);border-radius:12px;background:#fff}.faqitem button{width:100%;padding:19px 20px;background:none;border:0;text-align:left;font-weight:850;color:var(--navy);display:flex;justify-content:space-between;cursor:pointer}.answer{display:none;padding:0 20px 20px;color:var(--muted);line-height:1.65}.faqitem.open .answer{display:block}
.cta{background:linear-gradient(110deg,#071d2b,#0b5064);color:#fff;padding:66px 0}.ctagrid{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center}.cta h2{font-size:clamp(34px,4vw,50px);line-height:1.05;letter-spacing:-2px;margin:0 0 12px}.cta p{color:#c9dce2;font-size:18px;line-height:1.6;max-width:700px}
footer{background:#04141d;color:#b7c8d0;padding:52px 0 28px}.foot{display:grid;grid-template-columns:1.5fr .8fr .9fr;gap:32px}.foot .brand .logo{width:86px;height:86px;flex-basis:86px}.foot h4{color:#fff;margin:0 0 14px}.foot a{display:block;margin:8px 0;color:#b7c8d0}.legal{border-top:1px solid rgba(255,255,255,.12);margin-top:30px;padding-top:18px;font-size:12px;color:#829aa5;line-height:1.6}.mobilebar{display:none}
/* Solar 101 */
.solar101-page{background:linear-gradient(180deg,#f5fafb,#fff)}.solar101-intro{padding-bottom:45px}.system-section{padding-top:48px}.solar101-head{display:grid;grid-template-columns:1fr .9fr;gap:38px;align-items:end;margin-bottom:28px}.solar101-note{padding:17px 19px;border-left:4px solid var(--gold);background:#fff;border-radius:0 12px 12px 0;box-shadow:0 10px 28px rgba(7,29,43,.06);color:var(--muted);line-height:1.65}.gridviz{position:relative;background:linear-gradient(180deg,#041722 0%,#0a2c3d 54%,#0d4d5c 100%);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.14);image-rendering:optimizeQuality}.gridviz-toolbar{display:flex;flex-wrap:wrap;gap:9px;padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.12);background:rgba(4,20,29,.78)}.sourcebtn{appearance:none;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#dbeaf0;padding:10px 14px;border-radius:999px;font-size:12px;font-weight:850;cursor:pointer}.sourcebtn:hover,.sourcebtn.active{background:var(--gold);color:#102836;border-color:var(--gold)}.gridviz-canvas{padding:8px}.gridviz svg{display:block;width:100%;height:auto;min-width:1120px;shape-rendering:geometricPrecision;text-rendering:geometricPrecision}.gridviz svg *{vector-effect:non-scaling-stroke}.gridviz text{paint-order:stroke;stroke:rgba(4,20,31,.55);stroke-width:1.15px;stroke-linejoin:round}.gridviz-scroll{overflow-x:auto}.gridline{fill:none;stroke:#9ccad4;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;opacity:.55}.powerflow{fill:none;stroke:#ffd45e;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:14 14;animation:lineDash 1.6s linear infinite}.powerflow.blue{stroke:#88ecf6}.powerflow.green{stroke:#93f3b2}.energydot{fill:#fff9cf;filter:url(#glow)}.mode-layer{opacity:.16;transition:opacity .2s ease}.mode-layer.active{opacity:1}.systemtext{font-size:15px;font-weight:800;fill:#fff}.systemsub{font-size:11px;fill:#c3d7de}.softlabel{font-size:12px;font-weight:800;fill:#9cedf7}.gridviz-info{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:18px 22px;background:#061a25;color:#fff;border-top:1px solid rgba(255,255,255,.1)}.gridviz-info b{display:block;font-size:18px;margin-bottom:5px}.gridviz-info p{margin:0;color:#c7d9e0;line-height:1.6;font-size:14px}.playtoggle{border:1px solid rgba(255,255,255,.22);background:#fff;color:#102836;padding:10px 14px;border-radius:8px;font-weight:900;cursor:pointer}.gridviz.paused *{animation-play-state:paused!important}.solar101-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px}.solar101-step{padding:18px;border:1px solid var(--line);border-radius:12px;background:#fff}.solar101-step span{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e5f7fa;color:var(--teal);font-weight:950;margin-bottom:10px}.solar101-step b{display:block;color:var(--navy);margin-bottom:6px}.solar101-step p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.learn-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:30px}.learn-card{border:1px solid var(--line);border-radius:13px;padding:22px;background:#fff}.learn-card h3{color:var(--navy);margin:0 0 8px}.learn-card p{color:var(--muted);line-height:1.65;margin:0}
@keyframes lineDash{to{stroke-dashoffset:-56}}@keyframes pulse{0%,100%{opacity:.75;transform:scale(.98)}50%{opacity:1;transform:scale(1.06)}}@keyframes spin{to{transform:rotate(360deg)}}.sunray{animation:pulse 2.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
/* Location pages */
.location-hero{padding:84px 0;background:linear-gradient(135deg,#071d2b,#0b5366);color:#fff}.location-hero h1{font-size:clamp(42px,5vw,68px);letter-spacing:-2.7px;line-height:1;margin:12px 0 18px}.location-hero p{font-size:19px;line-height:1.65;color:#d7e7eb;max-width:760px}.location-content{display:grid;grid-template-columns:1fr .65fr;gap:40px;align-items:start}.sidebar{border:1px solid var(--line);border-radius:14px;padding:22px;background:#f7fafb;position:sticky;top:112px}.sidebar h3{margin-top:0;color:var(--navy)}.sidebar a{display:block;margin:10px 0;color:var(--teal);font-weight:850}.content-block h2{color:var(--navy);font-size:34px;letter-spacing:-1px}.content-block h3{color:var(--navy);font-size:23px;margin-top:28px}.content-block p,.content-block li{color:var(--muted);line-height:1.75}.content-block ul{padding-left:20px}
@media(max-width:1020px){.links{display:none}.hero-grid{grid-template-columns:1fr}.hero-photo{min-height:360px;background-position:70% 55%}.trustgrid,.cards{grid-template-columns:repeat(2,1fr)}.why-grid,.quotegrid,.solar101-head,.location-content{grid-template-columns:1fr}.projectgrid,.teasergrid{grid-template-columns:1fr 1fr}.steps{grid-template-columns:repeat(2,1fr)}.locgrid{grid-template-columns:repeat(2,1fr)}.faqgrid{grid-template-columns:1fr}.quote-copy,.sidebar{position:static}.ctagrid{grid-template-columns:1fr}.foot{grid-template-columns:1fr 1fr}.mobilebar{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;z-index:90;bottom:0;left:0;right:0;background:#fff;box-shadow:0 -12px 28px rgba(7,29,43,.16)}.mobilebar a{padding:14px 6px;text-align:center;font-size:12px;font-weight:950;border-right:1px solid var(--line)}body{padding-bottom:54px}}
@media(max-width:640px){.topbar .wrap{justify-content:center}.topbar span{display:none}.navin{min-height:70px}.brand{min-width:0;gap:8px}.brand .logo{width:48px;height:48px;flex-basis:48px}.brand strong{font-size:12px}.brand small{font-size:7px}.quote{padding:10px 11px;font-size:11px}.hero-copy{padding:62px 5vw}.hero h1{font-size:45px;letter-spacing:-2px}.hero p{font-size:17px}.trustbar{margin-top:-16px}.trustgrid,.cards,.projectgrid,.teasergrid,.steps,.locgrid,.solar101-steps,.learn-grid,.formgrid{grid-template-columns:1fr}.trustitem{border-right:0;border-bottom:1px solid var(--line)}section{padding:68px 0}.title{font-size:38px}.why-photo{min-height:320px}.review blockquote{font-size:18px}.foot{grid-template-columns:1fr}.field.full{grid-column:auto}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.gridviz *{animation:none!important}}

@media(max-width:640px){.btn,.quote,.sourcebtn,.playtoggle,.mobilebar a{min-height:44px}.formcard{padding:22px}.field input,.field select,.field textarea{font-size:16px}}
.hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.consent label{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.55;color:var(--muted)}.consent input{width:auto;min-height:0;margin-top:3px}.consent a,.policy a{color:var(--teal);font-weight:800}.submit-btn:disabled{opacity:.65;cursor:wait}.thankyou{padding:120px 0;background:linear-gradient(180deg,#f4fafb,#fff);min-height:62vh;display:grid;align-items:center}.success-icon{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;margin:0 auto 24px;background:#e9f7ef;color:var(--green);font-size:42px;font-weight:950}.call-dark{border:1px solid var(--line)}.policy h2{color:var(--navy);margin-top:32px}.policy p{color:var(--muted);line-height:1.75}
