:root{
  --bg:#080808;
  --panel:#111;
  --panel2:#171717;
  --text:#f5f5f5;
  --muted:#b8b8b8;
  --gold:#f0b51d;
  --gold2:#d79a00;
  --line:#2b2b2b;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Arial,sans-serif;background:#0b0b0b;color:var(--text);line-height:1.5}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* Header */
.site-header{
  position:sticky;top:0;z-index:50;
  min-height:156px;
  display:grid;
  grid-template-columns:310px 1fr auto;
  align-items:center;
  gap:28px;
  padding:0 3vw 0 1.2vw;
  background:#050505;
  border-bottom:1px solid #171717;
}
.brand{height:156px;display:flex;align-items:center;overflow:visible}
.brand img{height:164px;width:auto;max-width:300px;object-fit:contain}
.nav{display:flex;justify-content:center;align-items:center;gap:34px;font-size:12px;font-weight:800;text-transform:uppercase;white-space:nowrap}
.nav a{padding:58px 0 10px;position:relative}
.nav a:hover,.nav a.active{color:var(--gold)}
.nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--gold)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:14px 25px;font-weight:800;text-transform:uppercase;font-size:13px;letter-spacing:.02em;border:1px solid transparent;cursor:pointer}
.btn-gold{background:var(--gold);color:#080808}
.btn-gold:hover{background:#ffc83f}
.btn-outline{border-color:var(--gold);color:var(--gold)}
.btn-outline:hover{background:var(--gold);color:#080808}
.btn-dark{background:#0c0c0c;border-color:#707070}
.header-cta{margin-right:1vw;padding:14px 27px}
.menu-toggle{display:none;background:none;border:0;color:white;font-size:28px}

/* Hero — intentionally split into copy + image so the installer can never sit behind the text */
.hero{
  height:448px;
  min-height:448px;
  display:grid;
  grid-template-columns:36% 64%;
  position:relative;
  overflow:hidden;
  background:#080808;
  border-bottom:1px solid #171717;
}
.hero-copy{
  position:relative;
  z-index:3;
  padding:52px 2.4vw 34px 3vw;
  background:linear-gradient(90deg,#080808 0%,#0b0b0b 78%,rgba(11,11,11,.93) 100%);
}
.hero-copy:after{
  content:"";
  position:absolute;
  z-index:-1;
  top:0;right:-92px;bottom:0;
  width:94px;
  background:linear-gradient(90deg,rgba(11,11,11,.96),rgba(11,11,11,0));
  pointer-events:none;
}
.hero-media{
  display:block;
  position:relative;
  background:url('assets/residential.png') center center/cover no-repeat;
}
.hero-media:after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.08),rgba(0,0,0,0) 30%);
  pointer-events:none;
}
.eyebrow{display:block;color:var(--gold);font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:14px;margin-bottom:9px}
.hero h1,.service-card h2,.about-panel h2,.section-heading h2,.contact-section h2{font-family:Anton,Impact,sans-serif;text-transform:uppercase;letter-spacing:.015em}
.hero h1{font-size:clamp(48px,4.1vw,63px);line-height:.98;margin:0 0 18px;max-width:530px}
.hero h1 span{color:var(--gold)}
.hero p{max-width:455px;color:#e2e2e2;font-size:15px;line-height:1.55;margin:0}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:22px}
.hero-actions .btn{padding:13px 28px}

/* Benefits */
.benefits{display:grid;grid-template-columns:repeat(4,1fr);background:#080808;border-top:1px solid #161616;border-bottom:1px solid #242424;min-height:106px}
.benefit{display:flex;align-items:center;gap:18px;padding:21px 3.1vw;border-right:1px solid var(--line)}
.benefit:last-child{border-right:0}
.benefit .icon{color:var(--gold);font-size:38px;line-height:1}
.benefit h3{margin:0 0 6px;text-transform:uppercase;font-size:13px}
.benefit p{margin:0;color:var(--muted);font-size:13px}

/* Services / about */
.services-wrap{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:30px;padding:20px 3vw 18px;background:linear-gradient(#171717,#0e0e0e)}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.service-card{background:#070707;border:1px solid #2a2a2a}
.service-card img{width:100%;aspect-ratio:1.9/1;object-fit:cover}
.service-card:nth-child(1) img{object-position:center 42%}
.service-card:nth-child(2) img{object-position:center 43%}
.service-card:nth-child(3) img{object-position:center center}
.service-body{padding:18px 20px 20px}
.service-card h2{font-size:28px;margin:0}
.short-line{width:42px;height:3px;background:var(--gold);margin:8px 0 14px}
.service-card p,.about-panel p{color:#c8c8c8;font-size:14px}
.service-card a{display:inline-block;color:var(--gold);font-weight:800;text-transform:uppercase;font-size:13px;margin-top:9px}
.about-panel{padding:6px 2px}
.about-panel h2{font-size:36px;line-height:1.06;margin:8px 0 0}
.about-panel ul{list-style:none;padding:0;margin:18px 0}
.about-panel li{margin:10px 0;color:#eee;font-size:14px}
.about-panel li:before{content:"✓";display:inline-grid;place-items:center;width:22px;height:22px;margin-right:10px;border:1px solid var(--gold);border-radius:50%;color:var(--gold);font-size:12px}
.phone-card{display:flex;gap:14px;align-items:center;border:2px solid var(--gold);padding:13px 16px;font-size:23px}

/* Lower page */
.gallery-section{padding:66px 4vw;background:#0a0a0a}
.section-heading{text-align:center;max-width:760px;margin:0 auto 30px}
.section-heading h2{font-size:44px;margin:0 0 10px}
.section-heading p{color:var(--muted)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.gallery-grid img{width:100%;aspect-ratio:16/9;object-fit:cover;border:1px solid #292929}
.contact-section{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start;padding:68px 6vw;background:#151515;border-top:1px solid #2a2a2a}
.contact-section h2{font-size:48px;margin:0 0 10px}
.contact-section p{color:var(--muted);max-width:540px}
.quote-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.quote-form input,.quote-form select,.quote-form textarea{width:100%;background:#090909;border:1px solid #3b3b3b;color:#fff;padding:14px;font:inherit}
.quote-form textarea,.quote-form button{grid-column:1/-1}
.footer-strip{background:var(--gold);color:#080808;text-align:center;padding:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.footer-main{display:grid;grid-template-columns:220px 1fr 1fr;gap:30px;align-items:center;padding:30px 4vw;background:#050505;color:#aaa}
.footer-main img{width:180px}
.footer-main a:hover{color:var(--gold)}

@media(max-width:1180px){
  .site-header{grid-template-columns:260px 1fr auto;min-height:132px;gap:18px}.brand{height:132px}.brand img{height:142px;max-width:250px}.nav{gap:18px;font-size:11px}.nav a{padding-top:49px}
  .hero{grid-template-columns:39% 61%;height:430px;min-height:430px}.hero h1{font-size:51px}.hero-copy{padding-left:3.4vw}.services-wrap{grid-template-columns:1fr}.about-panel{padding:20px 4px 10px}.benefits{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:820px){
  .site-header{grid-template-columns:1fr auto;min-height:94px;gap:10px;padding:0 4vw}.brand{height:94px}.brand img{height:102px;max-width:210px}.menu-toggle{display:block}.header-cta{display:none}.nav{display:none;position:absolute;top:94px;left:0;right:0;flex-direction:column;gap:0;background:#050505;border-top:1px solid #222;padding:12px 5vw}.nav.open{display:flex}.nav a{padding:13px 0}
  .hero{grid-template-columns:1fr;height:auto;min-height:0}.hero-copy{padding:45px 7vw 36px}.hero-copy:after{display:none}.hero h1{font-size:50px}.hero-media{min-height:360px;background-position:center center}.benefits{grid-template-columns:1fr}.benefit{border-right:0;border-bottom:1px solid var(--line)}.service-grid,.gallery-grid,.contact-section,.footer-main{grid-template-columns:1fr}.services-wrap{padding:24px 5vw}.quote-form{grid-template-columns:1fr}.quote-form textarea,.quote-form button{grid-column:1}.footer-main{text-align:center}.footer-main img{margin:auto}.footer-strip{font-size:12px}.contact-section{padding:52px 6vw}
}
@media(max-width:520px){
  .hero-copy{padding:38px 6vw 30px}.hero h1{font-size:43px}.hero p{font-size:14px}.hero-media{min-height:300px;background-position:44% center}.service-card h2{font-size:25px}.phone-card{font-size:20px}
}

/* Quote wizard */
.quote-wizard-section{grid-template-columns:minmax(280px,.72fr) minmax(520px,1.28fr);gap:58px;align-items:start}
.quote-intro{position:sticky;top:184px}
.quote-assurance{display:grid;grid-template-columns:1fr;gap:12px;margin-top:28px;max-width:430px}
.quote-assurance div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #303030}
.quote-assurance strong{color:#fff;font-size:13px;text-transform:uppercase}.quote-assurance span{color:#929292;font-size:13px;text-align:right}
.quote-wizard{background:#090909;border:1px solid #343434;padding:28px;box-shadow:0 24px 60px rgba(0,0,0,.26)}
.wizard-progress{display:flex;align-items:flex-start;margin:0 0 30px}.progress-step{display:flex;flex-direction:column;align-items:center;gap:6px;color:#747474;min-width:56px}.progress-step span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:1px solid #555;background:#101010;font-size:12px;font-weight:800}.progress-step small{text-transform:uppercase;font-size:9px;font-weight:800;letter-spacing:.05em}.progress-step.active,.progress-step.complete{color:var(--gold)}.progress-step.active span,.progress-step.complete span{border-color:var(--gold);color:#050505;background:var(--gold)}.progress-line{height:1px;background:#444;flex:1;margin-top:16px}.progress-line.complete{background:var(--gold)}
.wizard-step{display:none}.wizard-step.active{display:block}.step-heading{margin-bottom:22px}.step-kicker{color:var(--gold);font-weight:800;text-transform:uppercase;font-size:11px;letter-spacing:.06em}.step-heading h3,.wizard-success h3{font-family:Anton,Impact,sans-serif;text-transform:uppercase;font-size:35px;line-height:1.05;margin:6px 0 8px}.step-heading p{color:#aaa;margin:0;font-size:14px}.optional-tag,.field-optional{font-family:Inter,Arial,sans-serif;font-size:10px;color:#999;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.service-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.service-choice{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;padding:22px 10px;border:1px solid #3a3a3a;background:#111;cursor:pointer;transition:.2s}.service-choice:hover{border-color:#777;transform:translateY(-2px)}.service-choice input{position:absolute;opacity:0;pointer-events:none}.service-choice:has(input:checked){border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold);background:#17130a}.choice-icon{display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--gold);border-radius:50%;font-size:22px;color:var(--gold)}.service-choice strong{text-transform:uppercase;font-size:13px}.service-choice small{color:#919191;font-size:11px;line-height:1.35}
.quote-wizard label{display:block;color:#e9e9e9;font-size:12px;font-weight:700;margin-bottom:14px}.quote-wizard input[type="text"],.quote-wizard input[type="tel"],.quote-wizard input[type="email"],.quote-wizard select,.quote-wizard textarea{width:100%;margin-top:7px;background:#111;border:1px solid #3b3b3b;color:#fff;padding:13px 14px;font:inherit;font-size:14px;outline:none}.quote-wizard input:focus,.quote-wizard select:focus,.quote-wizard textarea:focus{border-color:var(--gold)}.quote-wizard select{appearance:auto}.form-grid-2,.form-grid-3{display:grid;gap:13px}.form-grid-2{grid-template-columns:repeat(2,1fr)}.form-grid-3{grid-template-columns:repeat(3,1fr)}.conditional-fields{display:none}.conditional-fields.active{display:block}
.option-group{border:0;padding:0;margin:4px 0 18px}.option-group legend{font-size:12px;font-weight:800;color:#eee;margin-bottom:9px}.option-group label{display:inline-flex;align-items:center;gap:7px;margin:0 14px 9px 0;font-weight:500;color:#bdbdbd}.option-group input{accent-color:var(--gold)}
.wizard-actions{display:flex;justify-content:space-between;gap:12px;margin-top:22px;padding-top:19px;border-top:1px solid #292929}.wizard-actions-right{justify-content:flex-end}.wizard-actions .btn{min-width:135px}
.upload-box{display:grid!important;place-items:center;text-align:center;min-height:180px;border:1px dashed #666!important;background:#101010;padding:24px!important;cursor:pointer}.upload-box:hover{border-color:var(--gold)!important;background:#14120b}.upload-box input{display:none}.upload-icon{display:grid;place-items:center;width:50px;height:50px;border:1px solid var(--gold);border-radius:50%;color:var(--gold);font-size:28px;margin-bottom:6px}.upload-box strong{font-size:15px}.upload-box small{color:#8d8d8d}.file-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.file-chip{background:#181818;border:1px solid #3c3c3c;padding:8px 10px;font-size:11px;color:#bbb}.upload-note{font-size:11px;color:#777;line-height:1.45;margin-top:14px}.contact-preference label{padding:9px 14px;border:1px solid #383838;background:#111}.contact-preference label:has(input:checked){border-color:var(--gold);color:#fff}.consent-row{display:flex!important;align-items:flex-start;gap:9px;color:#999!important;font-weight:500!important;font-size:11px!important}.consent-row input{margin-top:2px;accent-color:var(--gold)}
.wizard-success{text-align:center;padding:30px 12px}.success-icon{display:grid;place-items:center;width:64px;height:64px;border:2px solid var(--gold);border-radius:50%;margin:0 auto 16px;color:var(--gold);font-size:30px}.wizard-success p{color:#aaa;max-width:480px;margin:0 auto 22px}.wizard-error{color:#ffb5b5;font-size:12px;margin:8px 0 0}.field-error{border-color:#c85a5a!important}
@media(max-width:980px){.quote-wizard-section{grid-template-columns:1fr}.quote-intro{position:static}.quote-assurance{max-width:none}.service-choice-grid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:680px){.quote-wizard{padding:20px 16px}.wizard-progress{margin-bottom:24px}.progress-step small{display:none}.service-choice-grid,.form-grid-2,.form-grid-3{grid-template-columns:1fr}.service-choice{align-items:flex-start;text-align:left;padding:16px 16px 16px 72px;min-height:76px;justify-content:center}.choice-icon{position:absolute;left:15px;top:14px}.step-heading h3{font-size:30px}.wizard-actions .btn{min-width:0;padding-left:17px;padding-right:17px}.quote-assurance div{flex-direction:column;gap:2px}.quote-assurance span{text-align:left}}
