:root{
  --yellow:#F5A800; --yellow-dk:#D99500; --black:#161513; --ink:#1E1C19; --panel:#22201C;
  --off:#F4F3F0; --white:#fff; --gray:#5d5a55; --line:#e3e1db;
  --head:'Oswald',sans-serif; --body:'Inter',system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3{font-family:var(--head);text-transform:uppercase;line-height:1.08;letter-spacing:.01em;font-weight:600}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:1200px;margin:0 auto;padding:0 26px}
.ey{font-family:var(--head);font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow);font-weight:500}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--head);font-weight:500;letter-spacing:.08em;text-transform:uppercase;font-size:15px;padding:14px 26px;background:var(--yellow);color:var(--black);transition:transform .2s,background .2s}
.btn:hover{background:var(--yellow-dk);transform:translateY(-2px)}
.btn.ghost{background:transparent;border:2px solid var(--white);color:var(--white)}
.btn.ghost:hover{background:var(--white);color:var(--black)}
.pre{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.pre.in{opacity:1;transform:none}

/* nav */
header.site{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 26px;max-width:1280px;margin:0 auto}
.logo{display:flex;flex-direction:column;line-height:1;align-items:center}
.logo .lockup{height:86px;width:auto;display:block}
@media(max-width:860px){.logo .lockup{height:64px}}
@media(max-width:560px){.logo .lockup{height:54px}.logo .tag{display:none}}
.logo .mark{display:flex;align-items:flex-end;gap:8px}
.logo .aag{font-family:var(--head);font-weight:700;font-size:34px;letter-spacing:.02em;color:var(--black)}
.logo .assoc{font-family:var(--head);font-weight:500;font-size:13px;letter-spacing:.34em;color:var(--yellow-dk)}
.logo .tag{font-family:var(--body);font-weight:600;font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray);margin-top:4px}
.nav ul{display:flex;gap:30px;list-style:none;font-family:var(--head);font-size:14px;letter-spacing:.1em;text-transform:uppercase;font-weight:500}
.nav ul a{padding:6px 2px;border-bottom:2px solid transparent}
.nav ul a:hover,.nav ul a.on{border-color:var(--yellow)}
.nav .call{display:flex;align-items:center;gap:8px;font-family:var(--head);font-weight:600;font-size:17px;color:var(--black)}
.nav .call svg{color:var(--yellow)}

/* hero split */
.hero{position:relative;background:var(--off);overflow:hidden}
.hero .grid-bg{position:absolute;inset:0;opacity:.5;background:
 linear-gradient(90deg,rgba(0,0,0,.03) 1px,transparent 1px),
 linear-gradient(rgba(0,0,0,.03) 1px,transparent 1px);background-size:44px 44px}
.hero .inner{position:relative;display:grid;grid-template-columns:1fr 1.15fr;min-height:560px}
.hero .copy{background:var(--black);color:var(--white);padding:74px 60px 74px max(26px,calc((100vw - 1200px)/2 + 26px));clip-path:polygon(0 0,100% 0,88% 100%,0 100%);position:relative;z-index:2}
/* yellow edge accent: drawn in the panel's own coordinate space so it hugs the
   diagonal cut at EVERY viewport size (the old skewX stripe drifted on wide screens) */
.hero .copy:after{content:"";position:absolute;inset:0;background:var(--yellow);clip-path:polygon(98.6% 0,100% 0,88% 100%,86.6% 100%);pointer-events:none}
.contact-hero .copy:after{display:none}
/* light heroes (residential/contact) disable the panel clip inline — no clip, no accent */
.hero .copy[style*="clip-path:none"]:after{display:none}
.hero h1{color:var(--white);font-size:clamp(34px,4.6vw,56px);margin:14px 0 22px;max-width:14ch}
.hero p{color:#cfccc6;max-width:46ch;font-size:15.5px}
.hero .btn{margin-top:30px}
.hero .ph{position:relative;margin-left:-11%;z-index:1}
@media(max-width:980px){.hero .ph{margin-left:0}}
.hero .ph img{width:100%;height:100%;object-fit:cover}
.slot{background:linear-gradient(150deg,#2b2925,#191713);display:grid;place-items:center;color:#8c877e;font-family:var(--head);letter-spacing:.14em;text-transform:uppercase;font-size:13px;min-height:200px}

/* section heads */
.sec{padding:84px 0}
.sec-h{text-align:center;margin-bottom:50px}
.sec-h h2{font-size:clamp(26px,3.4vw,38px)}
.sec-h .bar{width:52px;height:4px;background:var(--yellow);margin:16px auto 0}
.sec-h.left{text-align:left}
.sec-h.left .bar{margin-left:0}

/* services grid */
.svc{display:grid;grid-template-columns:repeat(6,1fr);gap:0}
.svc .s{padding:10px 18px;text-align:center;border-left:1px solid var(--line)}
.svc .s:first-child{border-left:none}
.svc .ic{color:var(--black);margin-bottom:14px}
.svc h3{font-size:15.5px;letter-spacing:.06em;margin-bottom:8px}
.svc p{font-size:13px;color:var(--gray)}

/* projects band */
.projects{background:var(--black);color:var(--white)}
.projects .head-row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:34px;flex-wrap:wrap}
.projects h2{color:var(--white);font-size:clamp(24px,3vw,32px)}
.projects .view{font-family:var(--head);font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--yellow)}
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.pcard .ph{aspect-ratio:4/3;overflow:hidden}
.pcard .ph img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.pcard:hover .ph img{transform:scale(1.05)}
.pcard h3{font-size:15px;letter-spacing:.05em;margin-top:14px}
.pcard .loc{color:var(--yellow);font-size:13px;font-weight:600}
.pcard .meta{color:#b5b1a9;font-size:12.5px;margin-top:2px}

/* why band */
.why{background:var(--off)}
.why .row{display:grid;grid-template-columns:.9fr repeat(4,1fr);gap:26px;align-items:start}
.why h2{font-size:clamp(22px,2.6vw,30px)}
.why .w{text-align:center;padding:0 6px}
.why .w .ic{color:var(--yellow-dk);margin-bottom:12px}
.why .w h3{font-size:15px;margin-bottom:8px}
.why .w p{font-size:13px;color:var(--gray)}

/* CTA footer band */
.cta{background:var(--black);color:var(--white);position:relative;overflow:hidden}
.cta .skyline{position:absolute;inset:0;opacity:.14;background:linear-gradient(0deg,#000 0%,transparent 60%)}
.cta .inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;padding:56px 0}
.cta h2{color:var(--white);font-size:clamp(24px,3vw,34px);max-width:12ch}
.cta p{color:#cfccc6;max-width:34ch;font-size:15px}
.cta .contacts{display:grid;gap:10px;font-size:15px}
.cta .contacts a{display:flex;align-items:center;gap:10px}
.cta .contacts svg{color:var(--yellow)}
footer.legal{background:#0e0d0b;color:#8c877e;font-size:12.5px;padding:16px 0}
footer.legal .wrap{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}

/* chips row (residential hero) */
.chips{background:var(--black);color:var(--white);clip-path:polygon(4% 0,100% 0,100% 100%,0 100%);padding:26px 30px;display:grid;grid-template-columns:repeat(4,1fr);gap:22px;position:relative}
.chips:before{content:"";position:absolute;top:0;left:0;width:100%;height:5px;background:var(--yellow)}
.chip{text-align:center}
.chip .ic{color:var(--yellow);margin-bottom:8px}
.chip h3{font-size:13.5px;letter-spacing:.06em}
.chip p{font-size:11.5px;color:#b5b1a9;margin-top:4px}

/* what we build */
.build{display:grid;grid-template-columns:repeat(5,1fr);gap:0}
.build .b{border-left:1px solid var(--line);padding:0 16px;text-align:center}
.build .b:first-child{border-left:none}
.build h3{font-size:14.5px;margin-bottom:8px}
.build p{font-size:12.5px;color:var(--gray)}
.build .ph{margin-top:18px;aspect-ratio:1/1;overflow:hidden}
.build .ph img{width:100%;height:100%;object-fit:cover}
.build .ic{color:var(--black);margin-bottom:12px}

/* testimonials */
.tsti{background:var(--off)}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.t{background:var(--white);border:1px solid var(--line);padding:26px}
.t .q{color:var(--yellow);font-family:var(--head);font-size:40px;line-height:.6;margin-bottom:14px}
.t p{font-size:14px;color:var(--ink)}
.t .who{margin-top:16px;font-family:var(--head);font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.t .who span{display:block;color:var(--gray);font-family:var(--body);font-size:12px;text-transform:none;letter-spacing:0}

/* contact page */
.contact-hero{display:grid;grid-template-columns:1fr 1.05fr;min-height:520px}
.contact-hero .copy{padding:64px max(26px,calc((100vw - 1200px)/2 + 26px)) 64px 0;color:var(--ink)}
.contact-hero h1{font-size:clamp(30px,4vw,46px);color:var(--ink)}
.contact-hero h1 em{color:var(--yellow-dk);font-style:normal}
.contact-hero .lead{margin-top:16px;color:var(--gray);max-width:48ch}
.form-panel{background:var(--black);color:var(--white);padding:34px;margin-top:30px;clip-path:polygon(0 0,100% 0,100% 100%,3% 100%)}
.form-panel h2{color:var(--white);font-size:20px;margin-bottom:20px}
.form-panel h2:after{content:"";display:block;width:40px;height:3px;background:var(--yellow);margin-top:8px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-grid .full{grid-column:1/-1}
.form-panel input,.form-panel select,.form-panel textarea{width:100%;background:#26241f;border:1px solid #3a3731;color:var(--white);font-family:var(--body);font-size:14px;padding:12px 14px}
.form-panel textarea{min-height:90px;resize:vertical}
.form-panel .btn{margin-top:16px}
.form-panel .fine{font-size:12px;color:#b5b1a9;margin-top:10px}
.getin{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;text-align:center}
.getin.five{grid-template-columns:repeat(5,1fr)}
.getin .g .ic{color:var(--yellow-dk);margin-bottom:10px}
.getin h3{font-size:15px;margin-bottom:8px}
.getin p{font-size:13.5px;color:var(--gray)}
.map-band{display:grid;grid-template-columns:1.4fr 1fr}
.map-band .map{min-height:360px}
.map-band .map iframe{width:100%;height:100%;border:0;filter:grayscale(.35)}
.serving{background:var(--black);color:var(--white);padding:40px 44px}
.serving .ey{display:block;margin-bottom:4px}
.serving h2{color:var(--white);font-size:24px;margin-bottom:20px}
.serving ul{list-style:none;display:grid;gap:10px;font-size:15px}
.serving li{display:flex;gap:10px;align-items:center}
.serving li svg{color:var(--yellow)}

@media(max-width:980px){
  .getin.five{grid-template-columns:1fr 1fr}
  .hero .inner{grid-template-columns:1fr}
  .hero .copy{clip-path:none;padding:56px 26px}
  .hero .copy:after{display:none}
  .svc{grid-template-columns:repeat(2,1fr);gap:26px 0}
  .svc .s{border-left:none}
  .pgrid{grid-template-columns:repeat(2,1fr)}
  .why .row{grid-template-columns:1fr 1fr}
  .build{grid-template-columns:repeat(2,1fr);gap:26px 0}
  .build .b{border-left:none}
  .tgrid{grid-template-columns:1fr}
  .chips{grid-template-columns:repeat(2,1fr);clip-path:none}
  .contact-hero{grid-template-columns:1fr}
  .contact-hero .copy{padding:44px 26px}
  .getin{grid-template-columns:1fr 1fr}
  .map-band{grid-template-columns:1fr}
  .nav ul{display:none}
}
@media(max-width:560px){
  .getin.five{grid-template-columns:1fr}
  .pgrid{grid-template-columns:1fr}
  .svc,.build,.getin,.chips{grid-template-columns:1fr}
  .why .row{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .nav .call{font-size:0;gap:0}
  .nav .call svg{width:22px;height:22px}
}

/* contact page right column — stretch to mirror the form column: photo grows,
   schedule card pins to the bottom so both columns end on the same line */
.side-col{padding:44px 0 44px 30px;display:flex;flex-direction:column}
.side-col img{flex:1;min-height:280px;object-fit:cover;object-position:30% center}
@media(max-width:980px){.side-col{padding:0 0 44px}.side-col img{flex:none;min-height:0}}

/* sticky mobile call bar */
.callbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:120;gap:10px;background:rgba(14,13,11,.97);backdrop-filter:blur(8px);padding:10px 14px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -8px 24px rgba(0,0,0,.35)}
.callbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--head);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:14px;padding:13px 8px}
.callbar a svg{flex:none}
.callbar .c1{background:var(--yellow);color:var(--black)}
.callbar .c2{border:1.5px solid rgba(255,255,255,.35);color:#fff}
@media(max-width:700px){
  .callbar{display:flex}
  footer.legal{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
}

/* mobile hamburger nav */
.hamb{display:none;background:none;border:0;cursor:pointer;padding:10px;z-index:150}
.hamb svg{display:block}
@media(max-width:980px){.hamb{display:block}}
.mnav{position:fixed;inset:0;background:rgba(16,15,13,.98);z-index:300;display:none;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.mnav.open{display:flex}
.mnav a{font-family:var(--head);font-weight:600;font-size:26px;letter-spacing:.08em;text-transform:uppercase;color:#fff;padding:12px}
.mnav a.on{color:var(--yellow)}
.mnav a.est{background:var(--yellow);color:var(--black);padding:14px 28px;margin-top:16px;font-size:17px}
.mnav .tel{color:var(--yellow);font-size:17px;letter-spacing:.12em}
.mnav .closex{position:absolute;top:16px;right:16px;background:none;border:0;cursor:pointer;padding:12px}

/* residential hero: desktop split, clean mobile stack */
.res-inner{grid-template-columns:1fr 1.2fr;min-height:500px}
@media(max-width:980px){
  .res-inner{grid-template-columns:1fr;min-height:0}
  .res-inner .ph img{min-height:260px;max-height:400px;object-fit:cover}
}
