:root{color-scheme:light dark;--charcoal:#202221;--charcoal-2:#151716;--green:#16c63b;--green-dark:#0b8f2a;--paper:#f4f6f3;--surface:#fbfcfa;--ink:#17201a;--muted:#56635a;--line:rgba(23,32,26,.15);--white:#f7faf7;--soft:#e6eee7;--radius:14px;--content:1180px;--ease:cubic-bezier(.16,1,.3,1);--shadow:0 24px 70px rgba(18,28,21,.16)}
@media(prefers-color-scheme:dark){:root{--paper:#101512;--surface:#172019;--ink:#edf4ee;--muted:#b7c4b9;--line:rgba(232,244,234,.15);--soft:#1e2d22;--shadow:0 24px 70px rgba(0,0,0,.34)}}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Avenir Next",Avenir,"Segoe UI",Helvetica,Arial,sans-serif;font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}body.nav-open{overflow:hidden}a{color:inherit}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}.shell{width:min(calc(100% - 48px),var(--content));margin-inline:auto}.skip-link{position:fixed;top:-80px;left:16px;z-index:100;padding:10px 16px;color:var(--white);background:var(--charcoal);border-radius:10px}.skip-link:focus{top:16px}.preview-bar{padding:7px 18px;color:rgba(247,250,247,.78);background:var(--charcoal-2);font-size:11px;letter-spacing:.09em;text-align:center;text-transform:uppercase}.site-header{position:sticky;top:0;z-index:40;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--charcoal) 95%,transparent);backdrop-filter:blur(18px)}.nav-shell{width:min(calc(100% - 40px),var(--content));min-height:74px;margin:auto;display:grid;grid-template-columns:190px 1fr auto;align-items:center;gap:25px}.brand{display:flex;align-items:center}.brand img{width:142px;height:64px;object-fit:contain;object-position:left center}.nav-links{display:flex;justify-content:center;gap:25px}.nav-links a{position:relative;padding:25px 0 22px;color:#d6ddd7;font-size:13px;font-weight:800;text-decoration:none;white-space:nowrap}.nav-links a:after{content:"";position:absolute;right:0;bottom:17px;left:0;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform 220ms var(--ease)}.nav-links a:hover:after,.nav-links a:focus-visible:after,.nav-links a[aria-current=page]:after{transform:scaleX(1)}.nav-toggle{display:none}.header-call,.button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;padding:12px 19px;border:1px solid transparent;border-radius:999px;font-size:14px;font-weight:850;line-height:1;text-decoration:none;white-space:nowrap;transition:transform 250ms var(--ease),background-color 180ms ease,box-shadow 250ms var(--ease)}.header-call,.button-primary{color:#102014;background:var(--green)}.header-call:hover,.button-primary:hover{background:#2adb50;box-shadow:0 12px 28px rgba(22,198,59,.24);transform:translateY(-2px)}.button:active,.header-call:active{transform:translateY(1px) scale(.98)}.button-ghost{color:var(--white);background:rgba(18,22,19,.35);border-color:rgba(247,250,247,.5);backdrop-filter:blur(8px)}.button-light{color:var(--charcoal);background:var(--white)}
.hero{position:relative;min-height:min(690px,calc(100dvh - 105px));display:flex;align-items:center;overflow:hidden;background:var(--charcoal)}.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-image{object-fit:cover}.hero-shade{background:linear-gradient(90deg,rgba(16,20,17,.88) 0%,rgba(16,20,17,.68) 38%,rgba(16,20,17,.12) 73%)}.hero-copy{position:relative;z-index:2;padding-block:72px;color:var(--white)}.eyebrow{margin:0 0 15px;color:var(--green);font-size:12px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}h1,h2,h3,p{text-wrap:pretty}h1{max-width:720px;margin:0;font-size:clamp(3.2rem,7vw,6.2rem);line-height:.91;letter-spacing:-.06em}.hero-lede{max-width:540px;margin:24px 0 0;color:rgba(247,250,247,.78);font-size:clamp(18px,2vw,22px);line-height:1.45}.hero-actions,.button-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.service-rail{position:relative;z-index:3;margin-top:-1px}.service-rail-inner{display:grid;grid-template-columns:1.2fr repeat(3,1fr);overflow:hidden;border-radius:0 0 var(--radius) var(--radius);background:var(--surface);box-shadow:var(--shadow)}.service-rail a{min-height:92px;display:flex;flex-direction:column;justify-content:center;padding:18px 24px;border-right:1px solid var(--line);text-decoration:none;transition:background 200ms ease,color 200ms ease}.service-rail a:last-child{border:0}.service-rail a:hover{color:var(--green-dark);background:var(--soft)}.service-rail strong{font-size:17px;line-height:1.2}.service-rail span{margin-top:4px;color:var(--muted);font-size:12px}.service-rail .rail-phone{color:var(--white);background:var(--charcoal)}.service-rail .rail-phone span{color:var(--green)}
.section{padding:92px 0}.section-compact{padding:58px 0}.surface{background:var(--surface)}.section-head{max-width:730px;margin-bottom:40px}.section-head h2,.project-copy h2,.process-lead h2,.cta-band h2,.page-hero h1{margin:0;font-size:clamp(2.3rem,4.5vw,4.2rem);line-height:1;letter-spacing:-.048em}.section-head p,.project-copy>p,.process-lead p,.page-hero p{max-width:650px;margin:17px 0 0;color:var(--muted)}.service-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.service-feature{min-height:450px;padding:38px;display:flex;align-items:flex-end;color:var(--white);background:linear-gradient(155deg,rgba(22,198,59,.12),transparent 55%),var(--charcoal);border-radius:var(--radius);text-decoration:none}.service-feature h3{margin:0;font-size:clamp(2.6rem,5vw,4.8rem);line-height:.95;letter-spacing:-.05em}.service-feature p{max-width:520px;margin:15px 0 0;color:rgba(247,250,247,.7)}.service-stack{display:grid;gap:18px}.service-stack a{padding:25px 28px;background:var(--soft);border-radius:var(--radius);text-decoration:none;transition:transform 220ms var(--ease)}.service-stack a:hover{transform:translateX(5px)}.service-stack h3{margin:0;font-size:20px}.service-stack p{margin:5px 0 0;color:var(--muted);font-size:15px}.project-split{display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:68px}.project-collage{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;align-items:end}.project-collage img{width:100%;height:100%;min-height:380px;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow)}.project-collage img:last-child{min-height:300px;transform:translateY(38px)}.check-list{margin:27px 0 0;padding:0;list-style:none}.check-list li{position:relative;padding:11px 0 11px 28px;border-bottom:1px solid var(--line);color:var(--muted)}.check-list li:before{content:"";position:absolute;top:21px;left:0;width:13px;height:3px;background:var(--green)}.warranty{margin-top:28px;padding:24px;color:var(--white);background:var(--charcoal);border-radius:var(--radius)}.warranty strong,.warranty span{display:block}.warranty strong{font-size:22px}.warranty span{margin-top:4px;color:rgba(247,250,247,.7);font-size:14px}.process{display:grid;grid-template-columns:1.1fr .9fr;gap:72px}.process-list{margin:0;padding:0;list-style:none;counter-reset:steps}.process-list li{position:relative;padding:22px 0 22px 52px;border-bottom:1px solid var(--line);counter-increment:steps}.process-list li:before{content:counter(steps);position:absolute;top:22px;left:0;color:var(--green-dark);font-size:13px;font-weight:900}.process-list strong,.process-list span{display:block}.process-list strong{font-size:19px}.process-list span{color:var(--muted);font-size:15px}.cta-band{padding:43px 46px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:40px;color:var(--white);background:var(--charcoal);border-radius:var(--radius)}.cta-band p{margin:10px 0 0;color:rgba(247,250,247,.68)}.cta-band .button-row{margin:0}.site-footer{padding:64px 0 88px;color:var(--white);background:var(--charcoal-2)}.footer-grid{display:grid;grid-template-columns:1.35fr .8fr .6fr;gap:56px}.footer-grid img{width:150px}.footer-grid p{max-width:500px;color:rgba(247,250,247,.64)}.footer-heading{margin:0 0 14px!important;color:var(--white)!important;font-size:13px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.footer-grid ul{margin:0;padding:0;list-style:none;color:rgba(247,250,247,.72)}.footer-grid li{margin-bottom:9px}.footer-grid a{text-underline-offset:4px}.footer-bottom{margin-top:48px;padding-top:22px;border-top:1px solid rgba(247,250,247,.14);display:flex;justify-content:space-between;gap:20px;color:rgba(247,250,247,.46);font-size:12px}.mobile-actions{display:none}
.page-hero{padding:72px 0 58px}.page-hero .eyebrow{color:var(--green-dark)}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.detail-card{padding:31px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.detail-card:nth-child(2),.detail-card:nth-child(3){background:var(--soft);border-color:transparent}.detail-card h2,.detail-card h3{margin:0;font-size:27px;line-height:1.13}.detail-card p{margin:10px 0 0;color:var(--muted)}.wide-image{width:100%;max-height:440px;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow)}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:20px}.contact-card,.estimate-form{padding:32px;border-radius:var(--radius)}.contact-card{background:var(--soft)}.contact-card h2{margin:0;font-size:28px}.contact-card p{color:var(--muted)}.contact-list{margin:24px 0 0;padding:0;list-style:none}.contact-list li{margin-bottom:14px}.contact-list a{color:var(--green-dark);font-weight:850}.estimate-form{background:var(--surface);border:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.field{display:grid;gap:7px}.field-wide{grid-column:1/-1}.field label{font-size:14px;font-weight:850}.field input,.field select,.field textarea{width:100%;min-height:49px;padding:12px 14px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:10px;outline:none}.field textarea{min-height:130px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green-dark);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 18%,transparent)}.form-note,.form-status{color:var(--muted);font-size:13px}.form-status{min-height:22px;margin-top:10px}
[data-reveal]{opacity:1;transform:none}@media(prefers-reduced-motion:no-preference){.motion-ready .hero-copy>*,.motion-ready .page-hero>*{animation:entrance 700ms var(--ease) both}.motion-ready .hero-copy>*:nth-child(2),.motion-ready .page-hero>*:nth-child(2){animation-delay:80ms}.motion-ready .hero-copy>*:nth-child(3),.motion-ready .page-hero>*:nth-child(3){animation-delay:150ms}.motion-ready .hero-copy>*:nth-child(4){animation-delay:220ms}.motion-ready [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity 650ms var(--ease) var(--reveal-delay,0ms),transform 650ms var(--ease) var(--reveal-delay,0ms)}.motion-ready [data-reveal].is-visible{opacity:1;transform:none}}@keyframes entrance{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(max-width:980px){.nav-shell{grid-template-columns:1fr auto auto}.nav-links{position:fixed;inset:102px 0 auto;z-index:45;display:none;padding:20px 24px 28px;background:var(--charcoal);border-bottom:1px solid rgba(247,250,247,.15);box-shadow:var(--shadow)}.nav-links.open{display:grid}.nav-links a{padding:13px 0;font-size:17px}.nav-toggle{position:relative;width:46px;height:46px;display:block;padding:0;border:1px solid rgba(247,250,247,.26);border-radius:999px;color:var(--white);background:var(--charcoal)}.nav-toggle:before,.nav-toggle:after,.nav-toggle span{content:"";position:absolute;inset:0;display:block;width:18px;height:2px;margin:auto;border-radius:2px;background:currentColor;transform-origin:center;transition:transform 220ms var(--ease),opacity 180ms}.nav-toggle:before{transform:translateY(-6px)}.nav-toggle:after{transform:translateY(6px)}.nav-toggle[aria-expanded=true] span{opacity:0}.nav-toggle[aria-expanded=true]:before{transform:rotate(45deg)}.nav-toggle[aria-expanded=true]:after{transform:rotate(-45deg)}.service-grid,.project-split,.process{grid-template-columns:1fr;gap:42px}.project-copy{max-width:700px}.cta-band{grid-template-columns:1fr}.cta-band .button-row{justify-content:flex-start}}
@media(max-width:700px){body{padding-bottom:66px;font-size:16px}.preview-bar{padding:6px 12px;font-size:9px;line-height:1.35}.nav-shell{width:calc(100% - 28px);min-height:69px;grid-template-columns:1fr auto;gap:9px}.brand img{width:118px;height:53px}.header-call{display:none}.nav-links{top:91px}.shell{width:calc(100% - 32px)}.hero{min-height:650px;align-items:flex-end}.hero-image{object-position:62% center}.hero-shade{background:linear-gradient(0deg,rgba(16,20,17,.93),rgba(16,20,17,.3) 74%)}.hero-copy{padding:54px 0}.hero-copy h1{font-size:clamp(3.15rem,15vw,4.6rem)}.hero-lede{font-size:18px}.hero-actions{width:100%}.button{width:100%}.service-rail{margin:0}.service-rail-inner{grid-template-columns:1fr 1fr;border-radius:0}.service-rail a{min-height:82px;padding:15px 17px;border-bottom:1px solid var(--line)}.service-rail a:nth-child(2),.service-rail a:nth-child(4){border-right:0}.section{padding:64px 0}.section-compact{padding:44px 0}.section-head h2,.project-copy h2,.process-lead h2,.cta-band h2,.page-hero h1{font-size:clamp(2.2rem,11vw,3.25rem)}.service-feature{min-height:340px;padding:28px}.project-collage{grid-template-columns:1fr 1fr}.project-collage img{min-height:260px}.project-collage img:last-child{min-height:220px;transform:translateY(18px)}.cta-band{padding:29px}.cta-band .button-row{width:100%}.detail-grid,.contact-grid,.form-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.detail-card,.contact-card,.estimate-form{padding:25px}.footer-grid{grid-template-columns:1fr;gap:30px}.footer-bottom{display:grid}.mobile-actions{position:fixed;right:0;bottom:0;left:0;z-index:60;height:66px;display:grid;grid-template-columns:1fr 1fr;box-shadow:0 -12px 30px rgba(0,0,0,.25)}.mobile-actions a{display:grid;place-items:center;color:var(--white);background:var(--charcoal);font-size:14px;font-weight:850;text-decoration:none}.mobile-actions a:last-child{color:#102014;background:var(--green)}}
.contact-card,.estimate-form{min-width:0}.contact-card{overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
