:root{--ink:#22243C;--ink2:#191B2E;--sun:#F5BC37;--blue:#0C6CB4;--sand:#FBF3E4;--line:#E4DCCD;--slate:#5B6577;--suntext:#8A5A00}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:"Source Sans 3",system-ui,sans-serif;font-size:19px;line-height:1.6;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}
h1,h2,h3,.disp{font-family:Oswald,"Arial Narrow",sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.015em;margin:0}
p{margin:0 0 18px}a{color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.strip{background:#0f1020;color:#aeb2d0;font-size:13px;text-align:center;padding:7px 12px}.strip a{color:var(--sun);margin:0 5px}
/* header */
.top{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:32px;height:76px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none}.brand img{width:44px;height:44px}
.brand b{font-family:Oswald,sans-serif;font-size:19px;line-height:1.05;letter-spacing:.06em}
nav.m{display:none;margin-left:auto;gap:30px}
nav.m a{text-decoration:none;font-size:14px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;padding:6px 0;background:linear-gradient(var(--ink),var(--ink)) 0 100%/0 2px no-repeat;transition:background-size .25s}
nav.m a:hover,nav.m a.on{background-size:100% 2px}
.bar .tel{margin-left:auto;font-weight:700;text-decoration:none;font-size:16px;letter-spacing:.02em}
.btn{display:inline-block;background:var(--sun);color:var(--ink);font-weight:700;font-size:15px;letter-spacing:.09em;text-transform:uppercase;text-decoration:none;padding:16px 28px;border:2px solid var(--sun);border-radius:2px;transition:background .2s,color .2s;cursor:pointer;font-family:inherit}
.btn:hover{background:transparent;color:var(--sun)}
.btn.sm{padding:11px 18px;font-size:13px}
.btn.line{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}.btn.line:hover{background:#fff;color:var(--ink);border-color:#fff}
.on-light .btn:hover,.top .btn:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.menu{margin-left:auto;position:relative}.menu summary{list-style:none;cursor:pointer;font-weight:700;font-size:14px;letter-spacing:.09em;text-transform:uppercase;padding:10px 0}
.menu summary::-webkit-details-marker{display:none}
.menu div{position:absolute;right:0;top:44px;background:#fff;border:1px solid var(--line);padding:8px 22px;min-width:230px;box-shadow:0 18px 40px rgba(34,36,60,.14)}
.menu div a{display:block;padding:12px 0;text-decoration:none;border-bottom:1px solid var(--line);font-weight:600}.menu div a:last-child{border:0}
/* hero */
.hero{position:relative;color:#fff;background:var(--ink2) url(/solar-hero.jpg) 70% 35%/cover;min-height:min(86vh,780px);display:flex;align-items:flex-end;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(95deg,rgba(25,27,46,.94) 0%,rgba(25,27,46,.78) 38%,rgba(25,27,46,.15) 75%),linear-gradient(0deg,rgba(25,27,46,.7),transparent 40%)}
.hero .wrap{position:relative;width:100%;padding-bottom:84px;padding-top:120px}
.hero h1{font-size:clamp(22px,5.8vw,48px);line-height:1.05;letter-spacing:.005em;max-width:none}.hero h1,.hero h1 em{white-space:nowrap}
.hero h1 em{font-style:normal;color:var(--sun);display:block}
.hero .lede{font-size:clamp(19px,2vw,23px);max-width:520px;margin:28px 0 36px;color:#e6e8f5;font-weight:300}
.hero .acts{display:flex;gap:14px;flex-wrap:wrap}
.kicker{font-family:Oswald,sans-serif;font-weight:500;font-size:14px;letter-spacing:.28em;text-transform:uppercase;color:var(--sun);margin:0 0 22px;display:flex;align-items:center;gap:14px}
.kicker::before{content:"";width:44px;height:2px;background:var(--sun)}
.sunmark{position:absolute;right:-120px;bottom:-190px;width:620px;height:620px;opacity:.16;pointer-events:none}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.hero .wrap>*{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}.hero .wrap>*:nth-child(2){animation-delay:.08s}.hero .wrap>*:nth-child(3){animation-delay:.16s}.hero .wrap>*:nth-child(4){animation-delay:.24s}
@media(prefers-reduced-motion:reduce){.hero .wrap>*{animation:none}html{scroll-behavior:auto}}
/* sections */
section{padding:112px 0}.sand{background:var(--sand)}.dark{background:var(--ink);color:#fff}
.lead{font-size:clamp(26px,3.6vw,44px);line-height:1.22;font-weight:300;max-width:980px;letter-spacing:-.005em}
.lead b{font-weight:700;background:linear-gradient(transparent 62%,rgba(245,188,55,.55) 62%)}
.label{font-family:Oswald,sans-serif;font-weight:500;font-size:13px;letter-spacing:.28em;text-transform:uppercase;color:var(--suntext);margin:0 0 20px}
.dark .label{color:var(--sun)}
h2{font-size:clamp(34px,5vw,60px);line-height:1.02}
.steps3{display:grid;gap:0;margin-top:72px}
.steps3 a{display:grid;grid-template-columns:1fr;gap:4px 24px;padding:30px 0;border-top:2px solid var(--ink);text-decoration:none;align-items:baseline}
.steps3 a:last-child{border-bottom:2px solid var(--ink)}
.num{font-family:Oswald,sans-serif;font-size:56px;line-height:1;color:var(--sun);-webkit-text-stroke:0;font-weight:600}
.steps3 h3{font-size:28px;margin-bottom:4px}.steps3 p{margin:0;color:#3f4260;max-width:560px}
.split{display:grid;gap:0}
.split .pic{min-height:360px;background:var(--ink2) url(/solar-hero.jpg) 60% 62%/175% auto}
.split .txt{padding:72px 28px;background:var(--sand)}
.split .txt>div{max-width:520px}
.split p{font-size:20px}
.cta{position:relative;overflow:hidden;text-align:left}.cta h2{max-width:820px;font-size:clamp(36px,6vw,76px);line-height:1}
.cta h2 em{font-style:normal;color:var(--sun)}
.cta p.tel{margin-top:26px;color:#c9cce6;font-size:17px}.cta .sunmark{right:-140px;top:-120px;bottom:auto;opacity:.12}
/* inner pages */
.phead{position:relative;color:#fff;background:var(--ink2) url(/solar-hero.jpg) 50% 30%/cover;padding:96px 0 72px}
.phead::before{content:"";position:absolute;inset:0;background:linear-gradient(95deg,rgba(25,27,46,.95),rgba(25,27,46,.7))}
.phead .wrap{position:relative}.phead h1{font-size:clamp(40px,6.6vw,84px);line-height:.98}
.rows .row{display:grid;grid-template-columns:1fr;gap:10px 40px;padding:38px 0;border-top:1px solid var(--ink)}.rows .row:last-child{border-bottom:1px solid var(--ink)}
.rows h3{font-size:clamp(26px,3vw,36px)}.rows p{margin:0;max-width:600px;color:#3f4260}
.area{display:grid;gap:0;margin-top:8px}
.area>div{padding:44px 0;border-top:2px solid var(--ink)}
.area h2{font-size:clamp(44px,7vw,92px);line-height:.95;margin-bottom:18px}
.lic5{font-size:14px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--slate)}
.promise li{list-style:none;padding:22px 0;border-top:1px solid var(--line);font-size:22px;font-weight:300;display:flex;gap:18px}
.promise li::before{content:"";flex:none;width:12px;height:12px;margin-top:11px;background:var(--sun);border-radius:50%}
.promise{padding:0;margin:0}.promise li:last-child{border-bottom:1px solid var(--line)}
details{border-top:1px solid var(--ink);padding:0}details:last-of-type{border-bottom:1px solid var(--ink)}
summary{list-style:none;cursor:pointer;font-family:Oswald,sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(20px,2.4vw,28px);padding:28px 48px 28px 0;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-52%);font-size:34px;font-weight:400;color:var(--suntext)}
details[open] summary::after{content:"\2212"}details p{max-width:640px;padding:0 0 30px;margin:0;color:#3f4260}
/* form */
form label{display:block;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--slate);margin:0 0 2px}
form .f{margin-bottom:26px}
input,select{width:100%;font:inherit;font-size:21px;padding:10px 0;border:0;border-bottom:2px solid var(--ink);background:transparent;border-radius:0;color:var(--ink);outline:none}
input:focus,select:focus{border-bottom-color:var(--blue)}
/* footer */
footer{background:var(--ink2);color:#c9cce6;padding:72px 0 40px;font-size:16px}
footer .fg{display:grid;gap:36px}footer b.disp{display:block;color:#fff;font-size:22px;letter-spacing:.08em;margin-bottom:8px}
footer a{text-decoration:none}footer a:hover{color:var(--sun)}
footer .lic{display:block;font-size:13px;letter-spacing:.08em;text-transform:uppercase;margin-top:6px;color:#9ea2c6}
footer .fine{margin-top:48px;padding-top:22px;border-top:1px solid #34375a;font-size:13px;color:#8085ab}
.callbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex}
.callbar a{flex:1;text-align:center;padding:15px 8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:14px;text-decoration:none}
.callbar a:first-child{background:var(--ink);color:#fff}.callbar a:last-child{background:var(--sun);color:var(--ink)}
body{padding-bottom:52px}
@media(min-width:900px){
 body{padding-bottom:0}.callbar{display:none}.menu{display:none}nav.m{display:flex}.bar .tel{margin-left:0}
 section{padding:136px 0}
 .steps3 a{grid-template-columns:130px 340px 1fr;padding:38px 0}.steps3 .num{font-size:78px}
 .split{grid-template-columns:1fr 1fr}.split .pic{min-height:560px}.split .txt{padding:96px 64px;display:flex;align-items:center}
 .rows .row{grid-template-columns:130px 1fr 1.2fr;align-items:baseline}
 .area{grid-template-columns:1fr 1fr;gap:0 64px}
 footer .fg{grid-template-columns:1.4fr 1fr 1fr}
 .two{display:grid;grid-template-columns:1fr 1.1fr;gap:96px}
}

.menu summary::after{content:none!important}
@media(max-width:899px){.hero::before{background:linear-gradient(0deg,rgba(25,27,46,.96) 0%,rgba(25,27,46,.8) 55%,rgba(25,27,46,.45) 100%)}.hero{min-height:640px}}
@media(min-width:900px){.hero{background-size:136% auto;background-position:0 30%}}

.split.owner .pic{background:var(--ink2);display:grid;grid-template-columns:1fr .88fr;gap:18px;align-items:center;align-content:center;padding:40px 24px;min-height:0}
.split.owner .pic figure{margin:0}
.split.owner .pic img{display:block;width:100%;height:auto;object-fit:cover;object-position:50% 25%;aspect-ratio:4/5;border-top:4px solid var(--sun);border-radius:2px;box-shadow:0 14px 34px rgba(0,0,0,.4)}
.split.owner .pic figure.hs img{aspect-ratio:.704;object-position:50% 20%}
.split.owner .pic figcaption{margin-top:14px;color:#fff;font-family:Oswald,sans-serif;font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:16px}
.split.owner .pic figcaption span{display:block;font-family:"Source Sans 3",sans-serif;font-weight:400;letter-spacing:0;text-transform:none;font-size:15px;color:#c9cce6}
@media(min-width:900px){.split.owner .pic{order:2;padding:56px 48px}}

.revs h2{color:#fff}
.reviews{display:grid;gap:24px}
.reviews figure{position:relative;margin:0;padding:44px 32px 28px;background:#fff;color:var(--ink);border-top:6px solid var(--sun);border-radius:2px;box-shadow:0 18px 40px rgba(0,0,0,.35);transition:transform .25s}
.reviews figure:hover{transform:translateY(-4px)}
.reviews figure::before{content:"\201C";position:absolute;top:2px;left:24px;font-family:Oswald,sans-serif;font-size:84px;line-height:1;color:var(--sun)}
.reviews blockquote{margin:0 0 20px;font-size:19px;line-height:1.55}
.reviews figcaption{font-family:Oswald,sans-serif;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:16px}
.reviews figcaption span{display:block;font-family:"Source Sans 3",sans-serif;font-weight:600;letter-spacing:.02em;text-transform:none;font-size:14px;color:var(--suntext)}
@media(min-width:900px){.reviews{grid-template-columns:1fr 1fr;gap:32px}.reviews figure:first-child{grid-column:1/-1}.reviews figure:first-child blockquote{font-size:24px}}
.revs{background:var(--ink2)}

nav.m a{white-space:nowrap}
@media(min-width:900px) and (max-width:1250px){.bar .tel{display:none!important}nav.m{gap:18px}}

.reviews figure:last-child:nth-child(even){grid-column:1/-1}

.post{max-width:760px}.post h2{font-size:clamp(24px,3vw,32px);margin:44px 0 14px}.post p,.post li{font-size:20px}.post ul{padding-left:22px;margin:0}.post li{margin:8px 0}
.cards{display:grid;gap:0}.card{display:block;text-decoration:none;color:var(--ink);padding:34px 0;border-top:2px solid var(--ink)}.card:last-child{border-bottom:2px solid var(--ink)}
.card h3{font-size:clamp(24px,3vw,34px);margin-bottom:10px}.card p{margin:0 0 14px;color:var(--slate)}.card span{font-family:Oswald,sans-serif;letter-spacing:.14em;text-transform:uppercase;font-size:14px;border-bottom:2px solid var(--sun)}
.card:hover h3{color:var(--suntext)}
/* owner captions: align tops, name on one line */
.split.owner .pic{align-items:start}
.split.owner .pic figcaption{white-space:nowrap}
.split.owner .pic figcaption{font-size:15px;letter-spacing:.04em;font-weight:700}.split.owner .pic figcaption span{font-weight:400}

.split.owner .pic .ph{position:relative}
.split.owner .pic .arr{position:absolute;right:-27px;top:50%;width:36px;height:36px;margin-top:-18px;border-radius:50%;background:var(--sun);color:var(--ink);display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:700;font-size:20px;box-shadow:0 4px 12px rgba(0,0,0,.4);z-index:2}
.split.owner .pic figcaption em{display:block;font-style:normal;color:var(--sun);letter-spacing:.28em;text-transform:uppercase;font-size:13px;font-weight:500;margin-bottom:4px}
.split.owner .pic figcaption span{white-space:normal}
.split.owner .pic .tagl{grid-column:1/-1;margin:18px 0 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.25);color:#fff;font-family:Oswald,sans-serif;font-weight:500;font-size:clamp(20px,2.2vw,26px);line-height:1.25;letter-spacing:.01em}
.split.owner h2{font-size:clamp(26px,2.8vw,36px);line-height:1.1}
/* color + mobile fixes 2026-10-20 */
.lead{font-weight:400}
section:not(.hero):not(.dark){background:var(--sand)}
section:not(.hero):not(.dark)+.split,.split+section:not(.dark){border-top:1px solid var(--line)}
@media(max-width:899px){
 .split.owner .pic{grid-template-columns:minmax(0,1fr) minmax(0,.88fr);padding:32px 22px;gap:22px}
 .split.owner .pic figcaption{white-space:normal;font-size:14px;letter-spacing:.02em}
 .split.owner .pic .arr{right:-20px}
 .split.owner .txt .label{white-space:normal!important}
}

/* services dropdown 2026-10-21 */
nav.m .dd{position:relative;display:inline-block}
nav.m .ddm{display:none;position:absolute;left:-18px;top:100%;padding-top:12px;min-width:230px;z-index:50}
nav.m .ddm{background:transparent}
nav.m .dd:hover .ddm,nav.m .dd:focus-within .ddm{display:block}
nav.m .ddm a{display:block;background:#fff;color:var(--ink);padding:12px 18px;border:1px solid var(--line);border-top:0;text-transform:none;letter-spacing:0;font-size:16px;font-weight:600;white-space:nowrap;box-shadow:0 14px 30px rgba(34,36,60,.12)}
nav.m .ddm a:first-child{border-top:1px solid var(--line)}
nav.m .ddm a:hover{background:var(--sand)}
@media(min-width:1100px){.bar .tel{white-space:nowrap}.bar .btn.sm{white-space:nowrap}}
@media(min-width:900px) and (max-width:1399px){nav.m{gap:20px}nav.m a{font-size:13px;letter-spacing:.06em}}
@media(min-width:900px) and (max-width:1099px){nav.m{gap:14px}nav.m a{font-size:12px;letter-spacing:.04em}.bar{gap:14px}.bar .tel{display:none!important}.bar .btn.sm{padding:10px 14px;font-size:12px}}
@media(min-width:900px){.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.split.owner .pic{grid-template-columns:minmax(0,1fr) minmax(0,.88fr)}.split.owner .pic figcaption{white-space:normal}}
@media(min-width:900px){.split .txt>*{min-width:0}.split.owner .txt .label{white-space:normal!important}}
@media(min-width:900px) and (max-width:1099px){.split .txt{padding:64px 36px}}

/* one color sentence per line 2026-10-21 */
h1 em,h2 em{display:block}
.phead h1 em{font-style:normal;color:var(--sun)}
