:root{--green:#48e500;--green-dark:#2caf00;--black:#070b08;--charcoal:#111713;--white:#fff;--muted:#d8ded9;--yellow:#ffd400;--max:1180px}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--black);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.55}
a{color:inherit}
h1,h2,h3,p{margin-top:0}
.site-header{height:106px;display:flex;align-items:center;gap:24px;padding:0 max(24px,calc((100vw - var(--max))/2));background:var(--black);color:#fff;position:sticky;top:0;z-index:20;border-bottom:3px solid var(--green)}
.brand{text-decoration:none;display:flex;flex-direction:column;line-height:.9;margin-right:auto}
.brand-main{font-size:25px;font-weight:1000;font-style:italic;letter-spacing:-1px}
.brand-sub{font-size:12px;color:var(--green);font-weight:900;letter-spacing:1.8px;margin-top:7px}
.main-nav{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:28px}
.main-nav a{font-size:14px;font-weight:900;letter-spacing:.8px;text-decoration:none;padding:40px 0 36px;border-bottom:3px solid transparent}
.main-nav a:hover,.main-nav a:focus{color:var(--green);border-color:var(--green)}
.header-phone{padding:13px 17px;background:var(--green);color:#071007;font-size:15px;font-weight:1000;text-decoration:none;transform:skew(-6deg)}
.menu-toggle{display:none;background:none;border:1px solid #526156;color:#fff;padding:9px 12px;font-weight:900}
.hero{position:relative;overflow:hidden;background:#fff}
.hero-image{display:block;width:100%;height:auto}
.estimate-cta{position:absolute;left:50%;right:auto;top:auto;bottom:0;transform:translateX(-50%);min-height:99px;margin:0;padding:17px 29px;background:var(--green);color:var(--black);display:grid;grid-template-columns:auto auto;align-items:center;gap:7px 17px;border:0;box-shadow:none;text-decoration:none;line-height:1}
.estimate-label{font-size:18px;font-weight:1000;letter-spacing:1.1px}
.estimate-action{grid-row:2;padding:9px 12px;background:var(--black);color:var(--white);font-size:17px;font-weight:1000;letter-spacing:1px;text-align:center}
.estimate-cta strong{grid-column:2;grid-row:1 / 3;color:var(--black);font-size:30px;font-weight:1000;white-space:nowrap}
.hero-overlay{display:none}
.hero-content{position:relative;z-index:2;width:min(620px,calc(100% - 48px));margin-left:max(24px,calc((100vw - var(--max))/2));margin-right:auto;padding:42px;background:rgba(255,255,255,.94);color:var(--black);border-left:8px solid var(--green);box-shadow:0 18px 46px rgba(0,0,0,.18)}
.eyebrow,.section-kicker{font-size:14px;font-weight:1000;letter-spacing:3px;color:var(--green);margin-bottom:22px}
.eyebrow:before,.section-kicker:before{content:"";display:inline-block;width:34px;height:4px;background:var(--green);margin:0 12px 3px 0}
.hero h1{font-size:clamp(48px,6vw,78px);letter-spacing:-4px;line-height:.87;font-style:italic;font-weight:1000;max-width:780px;margin-bottom:28px;text-shadow:none}
.hero h1 span{color:var(--green-dark)}
.hero-content>p:not(.eyebrow){font-size:20px;max-width:570px;color:#354039;margin-bottom:36px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.button{display:inline-flex;min-height:54px;align-items:center;justify-content:center;padding:0 24px;font-size:14px;font-weight:1000;letter-spacing:.7px;text-decoration:none}
.button.primary{background:var(--green);color:#081007}
.button.secondary{border:2px solid var(--black);color:#fff;background:var(--black)}
.button:hover{transform:translateY(-2px)}
.hero-phone{position:absolute;right:0;bottom:0;z-index:3;background:var(--yellow);padding:18px max(24px,calc((100vw - var(--max))/2)) 18px 28px;clip-path:polygon(22px 0,100% 0,100% 100%,0 100%);display:flex;flex-direction:column}
.hero-phone span{font-size:11px;letter-spacing:2px;font-weight:900}
.hero-phone a{font-size:27px;font-weight:1000;line-height:1.1;text-decoration:none}
.about,.services{padding:100px max(24px,calc((100vw - var(--max))/2))}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.about h2,.section-heading h2,.contact h2{font-size:clamp(38px,5vw,62px);line-height:.94;letter-spacing:-2px;font-weight:1000;font-style:italic;margin-bottom:0}
.about h2 span{color:var(--green-dark)}
.about-grid p{font-size:18px;color:#354039}
.text-link{display:inline-block;margin-top:8px;text-decoration:none;font-weight:1000;border-bottom:3px solid var(--green)}
.services{background:var(--charcoal);color:#fff}
.section-heading{display:grid;grid-template-columns:2fr 1fr;gap:60px;align-items:end;margin-bottom:48px}
.section-heading p{color:#bfc8c1;font-size:18px}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #344037;border-left:1px solid #344037}
.service-grid article{min-height:260px;padding:30px;border-right:1px solid #344037;border-bottom:1px solid #344037;background-image:var(--service-image);background-size:cover;background-position:center;transition:.25s ease;isolation:isolate}
.service-grid article:hover{background-image:var(--service-image);box-shadow:inset 0 5px var(--green)}
.service-grid span{color:var(--green);font-size:13px;font-weight:1000;text-shadow:0 1px 5px #000}
.service-grid h3{font-size:23px;margin:58px 0 12px;text-shadow:0 2px 10px #000}
.service-grid p{color:#f2f5f2;text-shadow:0 2px 9px #000}
.portfolio{padding:90px max(24px,calc((100vw - var(--max))/2));background:#fff}
.portfolio-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;padding-bottom:28px;border-bottom:6px solid var(--green)}
.portfolio h2{font-size:clamp(38px,5vw,62px);line-height:.94;letter-spacing:-2px;font-weight:1000;font-style:italic;margin:0}
.portfolio h2 span{color:var(--green-dark)}
.portfolio p{max-width:420px;margin:0;color:#354039;font-size:18px}
.contact{display:flex;align-items:center;justify-content:space-between;gap:60px;padding:88px max(24px,calc((100vw - var(--max))/2));background:var(--green);color:#061007}
.section-kicker.light{color:#061007}
.section-kicker.light:before{background:#061007}
.contact-copy p{font-size:18px;max-width:580px;margin:24px 0 0}
.contact-number{flex:none;min-width:360px;padding:30px 35px;background:#080c09;color:#fff;text-decoration:none;font-size:34px;font-weight:1000;display:flex;flex-direction:column}
.contact-number small{color:var(--green);font-size:12px;letter-spacing:2px;margin-bottom:5px}
footer{display:flex;align-items:center;gap:40px;padding:32px max(24px,calc((100vw - var(--max))/2));background:#050706;color:#aab4ad}
footer div{display:flex;flex-direction:column;line-height:1}
footer strong{color:#fff;font-size:19px;font-style:italic}
footer div span{color:var(--green);font-size:10px;letter-spacing:2px}
footer p{margin:0 auto 0 0}
footer>a{color:#fff;font-weight:900;text-decoration:none}

@media(max-width:1120px){.site-header{height:84px}
.menu-toggle{display:block}
.main-nav{display:none;position:absolute;top:84px;left:0;right:0;transform:none;background:#080c09;padding:12px 24px 22px;flex-direction:column;align-items:stretch;gap:0}
.main-nav.open{display:flex}
.main-nav a{padding:15px 0;border-bottom:1px solid #29322b}
.header-phone{display:none}
.hero{min-height:0}
.hero-content{margin-left:24px;padding:32px}
.estimate-cta{position:static;width:max-content;max-width:calc(100% - 32px);min-height:58px;margin:18px auto;transform:none;grid-template-columns:auto;padding:9px 12px;gap:3px;text-align:center}
.estimate-label{display:none}
.estimate-action{display:none}
.estimate-cta strong{grid-column:auto;grid-row:auto;font-size:17px}
.about-grid,.section-heading{grid-template-columns:1fr;gap:30px}
.service-grid{grid-template-columns:repeat(2,1fr)}
.contact{align-items:stretch;flex-direction:column}
.contact-number{min-width:0;width:100%}
.portfolio-intro{align-items:flex-start;flex-direction:column;gap:24px}
footer{align-items:flex-start;flex-direction:column;gap:14px}
footer p{margin:0}
}

@media(max-width:560px){.hero-content{width:calc(100% - 38px);margin-left:19px;padding:26px}
.site-header{padding:0 12px;gap:8px}
.menu-toggle{padding:7px 8px;font-size:11px}
.estimate-cta{min-height:50px;padding:8px 9px;box-shadow:none}
.estimate-cta strong{font-size:12.5px}
.hero h1{font-size:51px;letter-spacing:-2px}
.hero-content>p:not(.eyebrow){font-size:17px}
.hero-phone{display:none}
.about,.services{padding-top:70px;padding-bottom:70px}
.service-grid{grid-template-columns:1fr}
.service-grid article{min-height:190px}
.contact-number{font-size:29px;padding:24px}
.brand-main{font-size:18px}
.brand-sub{max-width:125px;font-size:8.5px;letter-spacing:.55px;line-height:1.1}
}
