@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#142b2b;--ink2:#263d3a;--lime:#d9eb55;--paper:#f4f5ef;--white:#fff;--line:#d3dbd2;--muted:#5e6d68;--max:1280px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.65}img{max-width:100%;display:block}a{color:inherit}button{font:inherit}.skip{position:absolute;left:1rem;top:-4rem;z-index:1000;background:var(--lime);padding:.5rem 1rem}.skip:focus{top:1rem}#site-header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--line);transition:background .28s,color .28s,border-color .28s;color:var(--ink)}#site-header.scrolled{background:var(--ink);color:var(--paper);border-color:var(--ink)}.nav-wrap{max-width:1600px;margin:auto;min-height:88px;padding:0 clamp(1.1rem,4vw,4.5rem);display:flex;align-items:center;gap:2rem}.brand{display:block;flex:none;width:clamp(215px,23vw,300px)}.brand img,footer img{width:100%;height:auto}.desktop-nav{display:flex;gap:clamp(.8rem,1.7vw,2rem);align-items:center;margin-left:auto}.desktop-nav a{text-decoration:none;font-size:.88rem;font-weight:700;white-space:nowrap;position:relative}.desktop-nav a:after{content:'';position:absolute;left:0;right:100%;bottom:-7px;height:2px;background:var(--lime);transition:right .2s}.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after{right:0}.nav-cta{display:inline-flex;gap:1rem;align-items:center;background:var(--lime);color:var(--ink);text-decoration:none;padding:.78rem 1rem;font-weight:800;font-size:.78rem;letter-spacing:.08em;white-space:nowrap}.nav-cta span{font-size:1.1rem}.menu-toggle{display:none}.mobile-nav[hidden]{display:none}.breadcrumbs{max-width:var(--max);margin:auto;padding:1rem clamp(1.1rem,4vw,3rem);font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.breadcrumbs a{text-decoration:none}.breadcrumbs span[aria-current]{color:var(--ink);font-weight:700}.hero{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1fr;min-height:580px;max-width:1600px;margin:auto;overflow:hidden;background:var(--ink);color:var(--white)}.hero-copy{position:relative;z-index:2;padding:clamp(3rem,7vw,7rem) clamp(1.4rem,5vw,6rem);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.eyebrow{font-family:Manrope,Arial,sans-serif;font-size:.74rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#547064;margin:0 0 1.2rem}.hero .eyebrow,.cta .eyebrow{color:var(--lime)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,Arial,sans-serif;line-height:1.13;letter-spacing:-.045em}h1{font-size:clamp(3.2rem,6vw,6.3rem);font-weight:800;margin-bottom:1.5rem;max-width:9em}h2{font-size:clamp(2.25rem,4.2vw,4.6rem);font-weight:800;margin-bottom:1.4rem}h3{font-size:1.4rem;font-weight:800;margin-bottom:.7rem}.hero-lead{font-size:clamp(1.05rem,1.5vw,1.25rem);max-width:35rem;color:#dce5df;line-height:1.65}.button{display:inline-flex;gap:2rem;align-items:center;justify-content:space-between;background:var(--lime);color:var(--ink);text-decoration:none;padding:1rem 1.3rem;margin-top:1.5rem;font-weight:800;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;min-width:210px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px);background:#e9f88b}.button span{font-size:1.25rem}.hero-media{height:100%;min-height:500px}.hero-media img{width:100%;height:100%;object-fit:cover}.hero-mark{position:absolute;bottom:-.3em;left:-.12em;font-family:Manrope,sans-serif;font-size:32rem;font-weight:800;line-height:1;color:#ffffff08;z-index:0;pointer-events:none}.section,.split,.contact-layout{max-width:var(--max);margin:auto;padding:clamp(4rem,8vw,8rem) clamp(1.1rem,4vw,3rem)}.section-head{max-width:850px;margin-bottom:2.5rem}.section-head h2{max-width:13em}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.card{background:#fff;min-width:0;overflow:hidden}.card>img{width:100%;aspect-ratio:1.4;object-fit:cover}.card-body{padding:1.5rem}.card-number{font:800 .73rem Manrope,sans-serif;color:#7b8a83;letter-spacing:.1em}.card h3{margin-top:.8rem}.card p{color:var(--muted);font-size:.95rem}.text-link{display:inline-flex;gap:1rem;align-items:center;text-decoration:none;font-weight:800;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;border-bottom:2px solid var(--lime);padding-bottom:.25rem}.text-link:hover{gap:1.5rem}.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,7rem);align-items:center}.split.reverse .split-media{order:-1}.split-copy>p:not(.eyebrow){font-size:1.13rem;color:var(--muted);max-width:34rem}.split-media img{width:100%;aspect-ratio:1.12;object-fit:cover}.split .text-link{margin-top:1.4rem}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.steps>div{border-top:2px solid var(--ink);padding:1.5rem 0}.steps b{font:800 .8rem Manrope,sans-serif;color:#77897f}.steps h3{margin-top:2rem}.steps p{color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.project-grid figure{margin:0;background:#fff}.project-grid img{width:100%;aspect-ratio:1.25;object-fit:cover}.project-grid figcaption{padding:1rem 1.2rem;font-family:Manrope,sans-serif;font-weight:800}.cta{background:var(--ink);color:#fff;text-align:center;padding:clamp(4rem,7vw,7rem) 1.2rem}.cta h2{margin-left:auto;margin-right:auto;max-width:12em}.cta>p:not(.eyebrow){color:#cddbd4}.button-light{margin:1.7rem auto 0}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:5rem}.contact-layout>div>p:not(.eyebrow){color:var(--muted);font-size:1.1rem}.contact-details{background:#fff;padding:clamp(1.5rem,4vw,3rem);display:flex;flex-direction:column;gap:2rem}.contact-details>*{font-size:1.3rem;font-family:Manrope,sans-serif;font-weight:700;text-decoration:none}.contact-details small{display:block;font-size:.7rem;letter-spacing:.15em;color:#6f8179;margin-bottom:.4rem}.insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.insight-card{background:#fff}.insight-card>img{width:100%;aspect-ratio:1.5;object-fit:cover}.insight-card>div{padding:1.5rem}.insight-card h2{font-size:1.5rem;line-height:1.25}.insight-card h2 a{text-decoration:none}.insight-card p:not(.eyebrow){color:var(--muted)}.pagination{display:flex;justify-content:center;gap:.5rem;margin-top:2rem}.pagination>*{border:1px solid var(--ink);padding:.5rem 1rem;text-decoration:none}.pagination [aria-current]{background:var(--ink);color:#fff}.article-body{max-width:800px;margin:auto;padding:clamp(3rem,7vw,7rem) 1.2rem}.article-intro{font-size:1.4rem;color:var(--ink)}.article-body section{margin-top:3rem}.article-body h2{font-size:2rem}.article-body p{color:var(--muted);font-size:1.1rem}.article-end{border-top:1px solid var(--line);padding-top:2rem;margin-top:4rem}.legal{max-width:850px;margin:auto;padding:clamp(3rem,7vw,7rem) 1.2rem}.legal h1{font-size:clamp(3rem,6vw,5rem)}.legal h2{font-size:1.8rem;margin:2.5rem 0 1rem}.legal p{color:var(--muted)}footer{background:#0b1d1c;color:#d6e1d9;padding:4rem clamp(1.1rem,4vw,4rem) 1.5rem}.footer-top,.footer-bottom{max-width:var(--max);margin:auto;display:flex;justify-content:space-between;gap:3rem}.footer-top>div:first-child{max-width:370px}.footer-top img{max-width:270px}.footer-top h3{color:#fff;font-size:1rem;letter-spacing:.1em;text-transform:uppercase}.footer-top a{display:block;text-decoration:none;margin:.35rem 0}.footer-top a:hover,.footer-bottom a:hover{color:var(--lime)}.footer-bottom{border-top:1px solid #36514c;padding-top:1.5rem;margin-top:4rem;font-size:.8rem;flex-wrap:wrap}.footer-bottom div{display:flex;gap:1.5rem}.footer-bottom a{text-decoration:none}:focus-visible{outline:3px solid #a0c621;outline-offset:3px}
@media(max-width:1100px){.nav-wrap{gap:1rem}.desktop-nav{gap:.7rem}.desktop-nav a{font-size:.78rem}.nav-cta{display:none}.card-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.nav-wrap{min-height:74px}.brand{width:230px}.desktop-nav{display:none}.menu-toggle{margin-left:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;width:46px;height:46px;background:none;border:0;cursor:pointer;gap:5px;color:inherit}.menu-toggle span{display:block;width:25px;height:2px;background:currentColor;transition:transform .3s,opacity .2s}.menu-toggle.active span:first-child{transform:translateY(7px) rotate(45deg)}.menu-toggle.active span:nth-child(2){opacity:0;transform:scaleX(0)}.menu-toggle.active span:last-child{transform:translateY(-7px) rotate(-45deg)}.mobile-nav:not([hidden]){display:flex;flex-direction:column;padding:1.1rem 1.3rem 1.6rem;background:var(--ink);color:#fff;box-shadow:0 20px 30px #0003;animation:menuIn .3s ease both}.mobile-nav a{font:800 1.35rem Manrope,sans-serif;text-decoration:none;padding:.7rem .3rem;border-bottom:1px solid #ffffff35}.mobile-nav .mobile-contact{font-size:.85rem;color:var(--lime);letter-spacing:.08em;margin-top:.7rem;border:0}@keyframes menuIn{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.hero{grid-template-columns:1fr}.hero-copy{padding:4rem 1.3rem 3rem}.hero-media{min-height:350px;height:350px}.hero-mark{font-size:19rem}.split,.contact-layout{grid-template-columns:1fr}.split.reverse .split-media{order:0}.steps,.project-grid,.insight-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){h1{font-size:clamp(2.8rem,13vw,4rem)}h2{font-size:2.3rem}.hero-media{height:270px;min-height:270px}.hero-copy{padding:3.2rem 1.2rem}.card-grid,.steps,.project-grid,.insight-grid{grid-template-columns:1fr}.section,.split,.contact-layout{padding-top:4rem;padding-bottom:4rem}.card>img{aspect-ratio:1.7}.footer-top{flex-direction:column}.footer-bottom{flex-direction:column;gap:1rem}.footer-bottom div{flex-wrap:wrap;gap:.7rem 1rem}.contact-details>*{font-size:1rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.faq{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}.faq>div{background:#fff;padding:1.5rem;border-top:3px solid var(--lime)}.faq p,.support-note{color:var(--muted)}.support-note{margin-top:2rem;max-width:45rem}@media(max-width:560px){.faq{grid-template-columns:1fr}}
/* Homepage feature slider */
.hero-slider{position:relative;background:var(--ink);max-width:1600px;margin:auto}.hero-slider .hero{min-height:580px}.hero-slide[hidden]{display:none}.hero-slide.active .hero-copy{animation:slideCopy .55s ease both}.hero-slide.active .hero-media img{animation:slideImage .65s ease both}@keyframes slideCopy{from{opacity:.35;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes slideImage{from{opacity:.45;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}.slider-controls{position:absolute;z-index:5;bottom:1.2rem;right:clamp(1.2rem,4vw,4rem);display:flex;align-items:center;gap:.55rem;color:#fff;background:#142b2bd9;padding:.35rem .6rem}.hero-slider:not(.ready) .slider-controls{display:none}.slide-arrow,.slide-dot{background:transparent;color:inherit;border:0;cursor:pointer;min-width:38px;min-height:38px}.slide-arrow{font-size:1.4rem}.slide-arrow:hover{color:var(--lime)}.slide-dots{display:flex;align-items:center;gap:.1rem}.slide-dot span{display:block;width:22px;height:3px;background:#ffffff75;transition:background .2s,width .2s}.slide-dot.active span{background:var(--lime);width:34px}.slide-count{font:700 .72rem Manrope,sans-serif;letter-spacing:.1em;padding:0 .4rem;white-space:nowrap}.slide-count b{color:var(--lime)}.concept-note{position:absolute;bottom:1.1rem;left:1.2rem;background:#142b2bcc;color:#fff;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;padding:.3rem .55rem}.hero-media{position:relative}.visual-disclosure{font-size:.78rem;color:var(--muted);max-width:var(--max);padding:.8rem clamp(1.1rem,4vw,3rem);margin:auto}.hero-slider+.section{padding-top:5rem}@media(max-width:800px){.slider-controls{bottom:.7rem;right:.7rem}.hero-slider .hero{min-height:0}.hero-slider .hero-copy{min-height:540px}.hero-slider .hero-media{height:270px;min-height:270px}.hero-slider .concept-note{bottom:.7rem;left:.7rem}}@media(max-width:560px){.hero-slider .hero-copy{min-height:510px}.slider-controls{gap:0}.slide-count{display:none}.slide-arrow{min-width:32px}.slide-dot{min-width:32px}}
.slide-toggle{background:transparent;color:#fff;border:0;cursor:pointer;min-width:35px;min-height:38px;font-size:1rem}.slide-toggle:hover{color:var(--lime)}
/* Let every hero span the viewport, including narrower desktop windows. */
.hero,.hero-slider{width:100%;max-width:none;margin-inline:0}

/* Preserve the official trademark artwork and its original aspect ratio. */
.brand{width:clamp(190px,20vw,255px)}
.brand img{aspect-ratio:1087/475;object-fit:contain}
@media(max-width:800px){.brand{width:190px}}

/* Home section rhythm and alternating full-width color. */
#site-header{background:#0b1d1c;color:var(--paper);border-color:#0b1d1c}
#site-header.scrolled{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.home .home-band{position:relative;isolation:isolate;padding-top:clamp(2.75rem,5vw,5rem);padding-bottom:clamp(2.75rem,5vw,5rem)}
.home .home-band::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);background:var(--band-color)}
.home-band-services{--band-color:#ffffff}
.home-band-residential{--band-color:#e7eeeb}
.home-band-commercial{--band-color:#fffdf6}
.home-band-projects{--band-color:#e9f0ef}
.home-band-support{--band-color:#f7f8ed}
.home .hero-slider+.section{padding-top:clamp(2.75rem,5vw,5rem)}
.home .cta{padding-top:clamp(3rem,5vw,5.5rem);padding-bottom:clamp(3rem,5vw,5.5rem)}
@media(max-width:800px){.home .home-band{padding-top:3rem;padding-bottom:3rem}}

.seo-details{max-width:var(--max);margin:auto;padding:clamp(2.5rem,4vw,4rem) clamp(1.1rem,4vw,3rem);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,4vw,4rem);border-top:1px solid var(--line)}.seo-details .article-extension{max-width:760px}.seo-details h2{font-size:clamp(1.6rem,2.4vw,2.5rem);margin-bottom:1rem}.seo-details p{color:var(--muted);font-size:1.05rem}.seo-details p+p{margin-top:1rem}@media(max-width:800px){.seo-details{grid-template-columns:1fr}}

.article-date{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--muted);margin-bottom:1.5rem}

.hero-slide .hero-heading{font-size:clamp(3.2rem,6vw,6.3rem);font-weight:800;margin-bottom:1.5rem;max-width:9em}@media(max-width:560px){.hero-slide .hero-heading{font-size:clamp(2.8rem,13vw,4rem)}}
.contact-form-section{max-width:var(--max);margin:auto;padding:clamp(3rem,6vw,6rem) clamp(1.1rem,4vw,3rem);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,6vw,6rem)}.contact-form-intro p:not(.eyebrow){font-size:1.1rem;color:var(--muted)}#contact-form{background:#fff;padding:clamp(1.25rem,3vw,2.5rem);display:grid;gap:1.2rem}#contact-form .form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}#contact-form label{display:grid;gap:.4rem;font-weight:700;font-size:.92rem}#contact-form label span{color:#9d3c28}#contact-form input,#contact-form select,#contact-form textarea{width:100%;border:1px solid #aebdb4;border-radius:0;background:#fff;color:var(--ink);font:inherit;padding:.78rem .9rem}#contact-form textarea{resize:vertical;min-height:9rem}#contact-form input:focus,#contact-form select:focus,#contact-form textarea:focus{outline:3px solid var(--lime);outline-offset:1px}#contact-form .form-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}#contact-form .form-privacy{font-size:.8rem;color:var(--muted);line-height:1.5;margin:0}#contact-form .button{border:0;cursor:pointer;max-width:max-content;margin:0}#contact-form .button:disabled{opacity:.65;cursor:wait}.form-status{min-height:1.5em;margin:0;font-weight:700}.form-status.error{color:#9d3c28}.form-status.success{color:#176042}@media(max-width:800px){.contact-form-section{grid-template-columns:1fr}#contact-form .form-row{grid-template-columns:1fr}}@media(max-width:380px){.g-recaptcha{transform:scale(.85);transform-origin:left center}}
#contact-form label{display:block}#contact-form label input,#contact-form label select,#contact-form label textarea{display:block;margin-top:.4rem}.contact-layout{padding-bottom:3rem}.contact-form-section{padding-top:2rem;padding-bottom:4rem}
.contact-form-section{padding-bottom:2rem}.contact-form-section+.section{padding-top:clamp(1.5rem,3vw,3rem)}
.contact-guidance{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line)}.contact-guidance h3{font-size:1.35rem;letter-spacing:-.025em;margin-bottom:1rem}.contact-guidance p{font-size:1rem!important;line-height:1.65;margin-bottom:1rem}
