:root{--green:#319244;--deep:#0c3b20;--ink:#101311;--ivory:#f3f0e8;--warm:#faf9f5;--stone:#d9d5ca;--white:#fff;--brown:#76583e;--header:82px;--pad:clamp(1.25rem,4vw,5rem)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--warm);color:var(--ink);font-family:"Avenir Next",Montserrat,"Helvetica Neue",Arial,sans-serif;font-weight:400;line-height:1.6;overflow-x:hidden}img{display:block;max-width:100%;object-fit:cover}a{color:inherit;text-decoration:none}button,select{font:inherit}button{color:inherit}.skip{position:fixed;top:-100px;left:1rem;z-index:1000;background:var(--ink);color:#fff;padding:.8rem 1rem}.skip:focus{top:1rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.progress{position:fixed;z-index:110;top:0;left:0;height:2px;width:0;background:var(--green)}.site-header{height:var(--header);position:fixed;z-index:100;top:0;width:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--pad);transition:.35s}.site-header.scrolled{height:66px;background:rgba(250,249,245,.92);border-bottom:1px solid rgba(16,19,17,.12);backdrop-filter:blur(12px)}.brand{width:128px}.brand img{width:100%;height:auto}.site-header nav{display:flex;gap:clamp(1.1rem,2.2vw,2.5rem);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.site-header nav a{position:relative;padding:.6rem 0}.site-header nav a::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:.3s}.site-header nav a:hover::after,.site-header nav a.active::after{transform:scaleX(1)}.header-cta{justify-self:end;border:1px solid var(--ink);padding:.65rem 1.1rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.menu-toggle{display:none;background:none;border:0;width:44px;height:44px}.menu-toggle span:not(.sr-only){display:block;width:22px;height:1px;background:currentColor;margin:6px auto}.route-section{scroll-margin-top:70px}.hero{min-height:100vh;padding:calc(var(--header) + 5vh) var(--pad) 0;display:grid;grid-template-columns:43% 57%;grid-template-rows:1fr auto;align-items:center;background:var(--ivory);position:relative}.hero::before{content:"";position:absolute;width:42vw;height:42vw;border:1px solid rgba(49,146,68,.14);border-radius:50%;left:-17vw;top:12vh}.hero-copy{position:relative;z-index:2;max-width:690px}.eyebrow,.kinetic{font-size:.69rem;letter-spacing:.22em;text-transform:uppercase}.eyebrow{color:var(--green);font-weight:600}.kinetic{margin:1.6rem 0 1rem;color:#626660}.hero h1{font-weight:300;font-size:clamp(3.2rem,5.9vw,7.6rem);line-height:.91;letter-spacing:-.055em;margin:.5rem 0 1.5rem}.hero h1 span{display:block;overflow:hidden}.lede{max-width:610px;font-size:clamp(1rem,1.2vw,1.22rem);color:#555a55}.actions{display:flex;align-items:center;gap:1.5rem;margin-top:2rem}.button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:.75rem 1.25rem;border:1px solid currentColor;font-size:.8rem;letter-spacing:.07em;text-transform:uppercase}.button.primary{background:var(--green);color:#fff;border-color:var(--green)}.text-link{border:0;padding-inline:.3rem}.place-line{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;margin-top:2rem;color:#666}.place-line i{display:inline-block;width:28px;height:1px;background:var(--green);margin:0 .8rem;vertical-align:middle}.hero-visual{height:min(67vh,700px);position:relative;perspective:1300px;transform-style:preserve-3d}.photo-plane{position:absolute;margin:0;background:#ddd;box-shadow:0 28px 70px rgba(20,28,21,.17);transition:transform .25s ease-out;overflow:hidden}.photo-plane img{width:100%;height:100%}.photo-plane figcaption{position:absolute;left:0;bottom:0;background:rgba(250,249,245,.94);padding:.65rem .8rem;font-size:.59rem;letter-spacing:.16em;text-transform:uppercase}.photo-plane figcaption b{display:block;color:var(--green);font-weight:500}.plane-main{width:71%;height:76%;right:8%;top:10%;transform:translateZ(0) rotateY(-2deg)}.plane-a{width:27%;height:42%;left:1%;top:4%;transform:translateZ(70px) rotateY(3deg)}.plane-b{width:31%;height:39%;right:0;bottom:0;transform:translateZ(110px) rotateY(-3deg)}.stats{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(16,19,17,.18);height:112px}.stats div{display:flex;align-items:center;gap:1rem;padding:0 3vw;border-right:1px solid rgba(16,19,17,.18)}.stats div:last-child{border:0}.stats strong{font-weight:300;font-size:2.25rem;color:var(--green)}.stats span{text-transform:uppercase;font-size:.65rem;letter-spacing:.12em}.section-intro,.solutions-head,.location-head{padding:clamp(6rem,11vw,10rem) var(--pad) clamp(3rem,6vw,6rem)}h2{font-size:clamp(2.6rem,5vw,5.7rem);line-height:1;letter-spacing:-.045em;font-weight:300;margin:.7rem 0}.service-story{padding:0 var(--pad) 9rem}.service{min-height:72vh;display:grid;grid-template-columns:42% 58%;align-items:center;border-top:1px solid var(--stone);padding:5rem 0;gap:6vw}.service-copy{max-width:610px}.service-copy>span,.solution-list span{color:var(--green);font-size:.67rem;letter-spacing:.15em;text-transform:uppercase}.service h3{font-size:clamp(2rem,3.5vw,4.2rem);line-height:1.05;font-weight:300;margin:1rem 0}.service p{color:#5a5e5a}.service ul{list-style:none;padding:0;margin:2rem 0}.service li{padding:.65rem 0;border-bottom:1px solid currentColor;font-size:.88rem}.service img{width:100%;height:min(64vh,680px)}.service-dark{background:var(--deep);color:#fff;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad);grid-template-columns:42% 58%}.service-dark p{color:#ccd8cf}.arrow-link{display:inline-block;margin-top:1rem;color:#8bd49a;border-bottom:1px solid}.solutions{background:var(--ink);color:#fff;padding-bottom:8rem}.solutions-head{max-width:920px}.solutions-head>p:last-child{max-width:630px;color:#aeb3af}.solution-list{margin:0 var(--pad);border-top:1px solid #3c403d}.solution-list article{display:grid;grid-template-columns:8% 35% 1fr;padding:2.1rem 0;border-bottom:1px solid #3c403d;align-items:baseline}.solution-list h3{font-size:clamp(1.4rem,2.4vw,2.6rem);font-weight:300;margin:0}.solution-list p{color:#aeb3af;margin:0;max-width:600px}.why{display:grid;grid-template-columns:1fr 1fr;min-height:850px}.why-image img{width:100%;height:100%}.why-copy{padding:8rem var(--pad);align-self:center}.why-copy>p:not(.eyebrow){max-width:610px}.why dl{margin-top:3rem}.why dl div{display:grid;grid-template-columns:28% 1fr;border-top:1px solid var(--stone);padding:1rem 0}.why dt{text-transform:uppercase;font-size:.72rem;letter-spacing:.12em}.why dd{margin:0;color:#626660}.community{position:relative;min-height:80vh;color:#fff}.community img{position:absolute;width:100%;height:100%;filter:brightness(.52)}.community div{position:absolute;z-index:1;left:var(--pad);bottom:10%;max-width:740px}.outdoor{height:60vh;position:relative}.outdoor img{width:100%;height:100%}.outdoor::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.55),transparent)}.outdoor p{position:absolute;z-index:1;left:var(--pad);top:45%;margin:0;color:#fff;font-size:clamp(2rem,4vw,4.7rem);font-weight:300}.outdoor p span{display:block;font-size:.8rem;letter-spacing:.08em;margin-top:.5rem}.locations{padding-bottom:10rem;background:var(--ivory)}.location-head{max-width:950px}.city-tabs{margin:0 var(--pad) 2rem;border-bottom:1px solid #aaa;display:flex;gap:2rem}.city-tabs button,.branch-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:1rem 0;cursor:pointer}.city-tabs button[aria-selected=true],.branch-tabs button.active{border-color:var(--green);color:var(--green)}.location-board{margin:0 var(--pad);display:grid;grid-template-columns:38% 62%;min-height:620px;background:#fff;box-shadow:0 25px 70px rgba(31,42,33,.1)}.location-info{padding:clamp(2rem,4vw,5rem);align-self:center}.location-kicker{font-size:.64rem;letter-spacing:.17em;color:var(--green)}.branch-tabs{display:flex;gap:1.5rem}.location-info h3{font-size:clamp(2rem,3vw,3.4rem);line-height:1.06;font-weight:300}.location-info address{font-style:normal;color:#525852;margin-bottom:1rem}.location-note{font-size:.85rem;color:#777}.maps-link{margin-top:1.4rem}.location-photo{position:relative;perspective:1000px;overflow:hidden;background:var(--deep)}.location-photo img{width:100%;height:100%;transition:.55s cubic-bezier(.2,.8,.2,1)}.location-photo.changing img{transform:scale(.96) rotateY(-4deg);opacity:.2}.location-photo span{position:absolute;right:1rem;bottom:1rem;color:#fff;font-size:.61rem;letter-spacing:.12em}.faq{display:grid;grid-template-columns:38% 62%;padding:9rem var(--pad);gap:5vw}.faq h2{font-size:clamp(2.5rem,4vw,4.5rem)}details{border-top:1px solid var(--stone)}details:last-child{border-bottom:1px solid var(--stone)}summary{list-style:none;cursor:pointer;padding:1.5rem 3rem 1.5rem 0;position:relative;font-size:1.05rem}summary::-webkit-details-marker{display:none}summary::after{content:"+";position:absolute;right:.5rem;font-size:1.5rem;font-weight:300}details[open] summary::after{content:"−"}details p{max-width:670px;color:#5d625e;margin:0 0 1.5rem}.final-cta{padding:clamp(5rem,10vw,10rem) var(--pad);background:var(--green);color:#fff;text-align:center}.final-cta .eyebrow{color:#d7f1dc}.enquiry{display:flex;align-items:center;justify-content:center;gap:1rem;margin:3rem auto;flex-wrap:wrap}.enquiry select{background:transparent;color:#fff;border:0;border-bottom:1px solid #fff;padding:.7rem 2rem .7rem .5rem}.enquiry select option{color:#111}.button.light{background:#fff;color:var(--deep)}.phone{border-bottom:1px solid}footer{padding:4rem var(--pad) 2rem;background:var(--ink);color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:2rem}footer>p{font-size:1.5rem;font-weight:300;text-align:right}footer>div{grid-column:1/-1;display:flex;gap:2rem;border-top:1px solid #3d413e;padding-top:2rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}footer small{grid-column:1/-1;color:#8e948f}.floating-contact{position:fixed;z-index:80;right:1.25rem;bottom:1.25rem;width:52px;height:52px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:.68rem;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.2)}.reveal{opacity:0;transform:translateY(24px);transition:.8s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}:focus-visible{outline:2px solid var(--green);outline-offset:4px}
@media(max-width:900px){:root{--header:68px}.site-header{grid-template-columns:1fr auto}.menu-toggle{display:block;justify-self:end}.header-cta{display:none}.site-header nav{display:flex;position:fixed;inset:0;background:var(--deep);color:#fff;flex-direction:column;justify-content:center;padding:10vw;gap:1rem;transform:translateX(100%);transition:.4s;z-index:-1;font-size:1.5rem}.site-header nav.open{transform:none}.hero{grid-template-columns:1fr;padding-top:calc(var(--header) + 3rem)}.hero-copy{padding-bottom:2rem}.hero h1{font-size:clamp(3.4rem,14vw,6.2rem)}.hero-visual{height:62vw;min-height:390px}.stats{height:auto}.stats div{display:block;padding:1.2rem}.stats strong,.stats span{display:block}.stats strong{font-size:1.7rem}.service,.service-dark{grid-template-columns:1fr;min-height:0;gap:2rem;margin-inline:0;padding:4rem 0}.service-dark{margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad)}.service img{height:58vw;grid-row:1}.service-copy{grid-row:2}.why{grid-template-columns:1fr;min-height:0}.why-image{height:70vw}.why-copy{padding-block:5rem}.location-board{grid-template-columns:1fr}.location-photo{height:60vw;grid-row:1}.location-info{grid-row:2}.faq{grid-template-columns:1fr;padding-block:6rem}.solution-list article{grid-template-columns:10% 1fr}.solution-list p{grid-column:2;margin-top:.5rem}}
@media(max-width:560px){.hero{padding-inline:1.15rem}.hero h1{font-size:3.55rem}.actions{align-items:stretch;flex-direction:column;gap:.5rem}.button{width:100%}.hero-visual{height:110vw}.plane-main{width:82%;height:72%;right:1%;top:9%}.plane-a{width:34%;height:40%;left:0}.plane-b{width:38%;height:36%}.stats{grid-template-columns:repeat(3,1fr);margin-inline:-1.15rem}.stats span{font-size:.52rem;line-height:1.3}.stats div{padding:1rem .65rem}.section-intro{padding-top:5rem}.service-story{padding-bottom:5rem}.solution-list article{grid-template-columns:15% 1fr;padding:1.4rem 0}.community{min-height:620px}.outdoor{height:480px}.city-tabs{gap:1rem}.city-tabs button{flex:1}.location-board{margin-inline:1rem}.branch-tabs{gap:.8rem}.faq{padding-block:5rem}.enquiry{display:block}.enquiry>*{margin:.5rem 0;width:100%}footer{grid-template-columns:1fr}footer>p{text-align:left}footer>div{flex-wrap:wrap;gap:1rem 1.5rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}.photo-plane{transform:none!important}}

/* Motion-led editorial pass */
html,body{max-width:100%;overflow-x:clip}.companies{padding:clamp(5rem,9vw,9rem) 0;background:#fff;border-top:1px solid var(--stone);overflow:hidden}.companies-copy{padding:0 var(--pad) 3.5rem;display:grid;grid-template-columns:1fr 1.5fr;column-gap:5vw;align-items:end}.companies-copy .eyebrow{grid-column:1}.companies-copy h2{grid-column:1/2;font-size:clamp(2.5rem,4.4vw,5rem)}.companies-copy>p:last-child{grid-column:2;grid-row:2;max-width:540px;color:#626660}.logo-rail{width:100%;overflow:hidden;border-block:1px solid var(--stone);background:var(--warm);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.logo-track,.logo-copy{display:flex;flex:none;align-items:stretch}.logo-track{width:max-content;animation:logo-marquee 30s linear infinite}.logo-track:hover{animation-play-state:paused}.logo-track figure{width:clamp(170px,16vw,250px);height:170px;margin:0;border-right:1px solid var(--stone);display:grid;place-items:center;align-content:center;gap:.7rem;transition:.35s}.logo-track figure:hover{background:#fff;transform:translateY(-7px)}.logo-track img{width:118px;height:70px;object-fit:contain;filter:grayscale(1);opacity:.68;transition:.35s}.logo-track figure:hover img{filter:none;opacity:1;transform:scale(1.08)}.logo-track figcaption{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:#737873}@keyframes logo-marquee{to{transform:translateX(-50%)}}
.service-story{padding-bottom:28vh;perspective:1600px}.service{position:sticky;top:78px;min-height:calc(100vh - 96px);background:var(--warm);padding:clamp(2.5rem,5vh,5rem) clamp(1rem,2vw,2rem);border:1px solid var(--stone);box-shadow:0 -20px 60px rgba(17,28,20,.09);border-radius:6px;transform-origin:center top;overflow:hidden}.service:nth-child(2){top:90px}.service:nth-child(3){top:102px}.service-dark{margin-inline:0;padding-inline:clamp(1rem,3vw,4rem);background:var(--deep);border-color:#31543c}.service img{transform:perspective(1200px) rotateY(-6deg) rotateX(1deg) scale(.94);transform-origin:right center;box-shadow:-25px 30px 60px rgba(10,20,13,.2);transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .8s}.service:nth-child(even) img{transform:perspective(1200px) rotateY(6deg) rotateX(1deg) scale(.94);transform-origin:left center}.service.in-view img{transform:perspective(1200px) rotateY(-2deg) rotateX(0) scale(1)}.service:nth-child(even).in-view img{transform:perspective(1200px) rotateY(2deg) rotateX(0) scale(1)}
.solution-list article{opacity:.18;transform:translate3d(0,55px,0);transition:opacity .7s,transform .7s,background .4s;padding-inline:1rem}.solution-list article.step-visible{opacity:1;transform:none}.solution-list article:hover{background:#151a16}.why{height:100svh;min-height:680px;max-height:1000px;overflow:hidden}.why-image{height:100%}.why-image img{height:112%;width:100%;transform:translateY(var(--image-shift,0)) scale(1.02)}.why-copy{padding-block:clamp(3.5rem,7vh,6rem)}.why-copy h2{font-size:clamp(2.8rem,4.8vw,5.4rem)}.why dl{margin-top:2rem}.community,.outdoor{height:100svh;min-height:620px;max-height:1100px;overflow:hidden}.community img,.outdoor img{height:112%;top:-6%;transform:translateY(var(--image-shift,0)) scale(1.02)}
.hero{--mx:0;--my:0}.hero-visual{transform:perspective(1300px) rotateX(calc(var(--my) * -2deg)) rotateY(calc(var(--mx) * 2deg));transition:transform .16s ease-out}.hero.motion-cycle .plane-main{animation:hero-main 9s ease-in-out infinite}.hero.motion-cycle .plane-a{animation:hero-a 9s 3s ease-in-out infinite}.hero.motion-cycle .plane-b{animation:hero-b 9s 6s ease-in-out infinite}@keyframes hero-main{0%,35%,100%{z-index:1;transform:translateZ(0) rotateY(-2deg) scale(1)}12%,24%{z-index:8;transform:translateZ(125px) rotateY(0) scale(1.045)}}@keyframes hero-a{0%,35%,100%{z-index:2;transform:translateZ(70px) rotateY(3deg) scale(1)}12%,24%{z-index:9;transform:translateZ(190px) rotateY(0) scale(1.09)}}@keyframes hero-b{0%,35%,100%{z-index:3;transform:translateZ(110px) rotateY(-3deg) scale(1)}12%,24%{z-index:10;transform:translateZ(230px) rotateY(0) scale(1.09)}}.stats div{position:relative;overflow:hidden}.stats div::before{content:"";position:absolute;inset:0;background:var(--green);transform:translateY(101%);opacity:.07;transition:transform .8s}.stats div.stat-live::before{transform:translateY(0)}.stats strong{display:inline-block;transform:translateY(120%);opacity:0;transition:transform .75s cubic-bezier(.15,.8,.2,1),opacity .4s}.stats div.stat-live strong{transform:none;opacity:1}
@media(max-width:900px){.companies-copy{display:block}.companies-copy>p:last-child{margin-top:1.5rem}.service-story{padding-bottom:6rem;perspective:none}.service,.service:nth-child(2),.service:nth-child(3){position:relative;top:auto;min-height:0;border-inline:0;border-radius:0;box-shadow:none}.service img,.service:nth-child(even) img,.service.in-view img,.service:nth-child(even).in-view img{transform:none}.why{height:auto;max-height:none;min-height:0}.why-image{height:55svh}.why-image img{height:100%;transform:none}.community,.outdoor{height:100svh;max-height:none}.community img,.outdoor img{height:100%;top:0;transform:none}}
@media(prefers-reduced-motion:reduce){.logo-track{animation:none}.logo-copy{display:none}.solution-list article,.stats strong{opacity:1;transform:none}.hero-visual{transform:none}.community img,.outdoor img,.why-image img{transform:none}}

/* Precision fixes: anchored hero planes, layered services and compact sections */
.plane-a{transform-origin:top left}.plane-b{transform-origin:bottom right}.service{--card-scale:1;--card-y:35px;--card-fade:1;transform:translate3d(0,var(--card-y),0) scale(var(--card-scale));opacity:var(--card-fade);transition:box-shadow .45s ease,filter .45s ease;will-change:transform}.service img{transform:perspective(1100px) rotateY(-12deg) rotateX(2deg) scale(.92);transform-origin:left center}.service:nth-child(even) img{transform:perspective(1100px) rotateY(12deg) rotateX(2deg) scale(.92);transform-origin:right center}.service.in-view img{transform:perspective(1100px) rotateY(-7deg) rotateX(1deg) scale(.98)}.service:nth-child(even).in-view img{transform:perspective(1100px) rotateY(7deg) rotateX(1deg) scale(.98)}
.why{position:relative;height:100svh;max-height:none;min-height:640px;background:var(--deep);display:block;padding:clamp(1rem,2.5vw,2.5rem);overflow:hidden}.why::before{content:"";position:absolute;inset:8% 4%;border:1px solid rgba(255,255,255,.18);pointer-events:none}.why-image{height:100%;width:100%;display:grid;place-items:center}.why-image img{width:100%;height:100%;object-fit:contain;transform:none;filter:drop-shadow(0 30px 55px rgba(0,0,0,.28))}.why-stamp{position:absolute;z-index:2;right:clamp(1.5rem,5vw,6rem);bottom:clamp(1.5rem,5vh,4rem);width:min(340px,calc(100% - 3rem));background:rgba(12,59,32,.9);color:#fff;border-top:1px solid rgba(255,255,255,.7);padding:1.25rem 0;backdrop-filter:blur(8px)}.why-stamp .eyebrow{color:#9cdda8}.why-stamp p{margin:.25rem 0 1rem}.why-stamp a{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid}
.outdoor{height:155svh;max-height:none;min-height:900px;background:var(--ink);overflow:visible}.outdoor img{position:sticky;top:0;width:100%;height:100svh;transform:none}.outdoor::after{position:sticky;display:block;inset:auto;margin-top:-100svh;top:0;height:100svh;background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.04));pointer-events:none}.outdoor p{top:auto;bottom:15vh;position:absolute;max-width:850px}.outdoor p span{font-size:.9rem}
.locations{height:90svh;min-height:680px;padding:0 0 clamp(1rem,2vh,2rem);display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.location-head{padding:clamp(3.5rem,7vh,5.5rem) var(--pad) clamp(.75rem,1.5vh,1.25rem);display:grid;grid-template-columns:1.1fr .9fr;gap:0 4vw;max-width:none}.location-head .eyebrow{grid-column:1/-1}.location-head h2{font-size:clamp(2.5rem,4vw,4.7rem);margin:.3rem 0}.location-head>p:last-child{align-self:end;margin:0 0 .45rem;max-width:500px}.city-tabs{margin-bottom:clamp(.5rem,1vh,1rem)}.location-board{min-height:0;height:100%;overflow:hidden}.location-info{padding:clamp(1.5rem,2.7vw,3.2rem)}.location-info h3{margin:.7rem 0}.location-info address{line-height:1.45}.location-note{margin:.5rem 0}.maps-link{margin-top:.75rem}.location-photo img{height:100%}
.faq{grid-template-columns:minmax(300px,36%) minmax(0,1fr);padding-right:max(var(--pad),5.5rem);overflow:hidden}.accordion{min-width:0;width:100%}.accordion details{opacity:0;transform:translateY(24px);transition:opacity .55s ease,transform .55s ease}.accordion details.faq-visible{opacity:1;transform:none}.accordion summary{padding-right:3.75rem}.accordion summary::before,.accordion summary::after{content:"";position:absolute;right:1rem;top:50%;width:16px;height:1px;background:currentColor;transform:translateY(-50%);transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .3s}.accordion summary::before{transform:translateY(-50%) rotate(90deg)}.accordion details[open] summary::before{transform:translateY(-50%) rotate(180deg);opacity:0}.accordion details[open] summary::after{transform:translateY(-50%) rotate(180deg)}.accordion details p{overflow:hidden;opacity:0;transform:translateY(-8px);max-height:0;margin-bottom:0;transition:max-height .5s cubic-bezier(.2,.8,.2,1),opacity .35s ease,transform .45s ease,margin .45s}.accordion details[open] p{max-height:260px;opacity:1;transform:none;margin-bottom:1.5rem}
@media(max-width:900px){.service{--card-y:0!important;--card-scale:1!important;--card-fade:1!important;transform:none}.service img,.service:nth-child(even) img,.service.in-view img,.service:nth-child(even).in-view img{transform:perspective(900px) rotateY(-3deg) scale(.98)}.why{height:100svh;min-height:620px;padding:1rem}.why-image{height:100%}.why-image img{object-fit:contain}.outdoor{height:140svh;min-height:800px}.locations{height:auto;min-height:0;overflow:visible;padding-bottom:5rem;display:block}.location-head{display:block;padding-top:5rem}.location-board{height:auto;overflow:visible}.faq{padding-right:var(--pad);grid-template-columns:1fr}.accordion summary{padding-right:3rem}}
@media(prefers-reduced-motion:reduce){.service{transform:none!important;opacity:1!important}.accordion details{opacity:1;transform:none}.accordion details p{transition:none}.outdoor{height:100svh}.outdoor img{position:absolute}}
.outdoor::after{position:absolute;inset:0;height:auto;margin:0;background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.04));pointer-events:none}
.accordion{interpolate-size:allow-keywords}.accordion details::details-content{block-size:0;overflow:clip;transition:block-size .5s cubic-bezier(.2,.8,.2,1),content-visibility .5s allow-discrete}.accordion details[open]::details-content{block-size:auto}

/* Final motion geometry */
.plane-a{transform-origin:0 0!important}.plane-b{transform-origin:100% 100%!important}.hero.motion-cycle .plane-main{animation:hero-main-fixed 9s ease-in-out infinite}.hero.motion-cycle .plane-a{animation:hero-top-left 9s 3s ease-in-out infinite}.hero.motion-cycle .plane-b{animation:hero-bottom-right 9s 6s ease-in-out infinite}@keyframes hero-main-fixed{0%,35%,100%{z-index:1;transform:rotateY(-2deg) scale(1)}12%,24%{z-index:8;transform:rotateY(0) scale(1.035)}}@keyframes hero-top-left{0%,35%,100%{z-index:2;transform:rotateY(3deg) scale(1)}12%,24%{z-index:9;transform:rotateY(0) scale(1.10)}}@keyframes hero-bottom-right{0%,35%,100%{z-index:3;transform:rotateY(-3deg) scale(1)}12%,24%{z-index:10;transform:rotateY(0) scale(1.10)}}
.service img,.service:nth-child(even) img{transform:perspective(1050px) rotateY(0deg) rotateX(1deg) scale(.93);transform-origin:left center}.service.in-view img,.service:nth-child(even).in-view img{transform:perspective(1050px) rotateY(-11deg) rotateX(1deg) scale(.98);box-shadow:-36px 30px 70px rgba(10,20,13,.24)}.service{transform-origin:center top}
.why{height:auto;min-height:0;padding:0;background:#fff;border-inline:18px solid var(--deep)}.why::before,.why-stamp{display:none}.why-image{height:auto;min-height:0}.why-image img{width:100%;height:auto;max-height:none;object-fit:contain;filter:none}
.outdoor{height:132svh;min-height:760px}.outdoor img{top:9svh;height:82svh}.outdoor p{left:50%;right:auto;top:88svh;bottom:auto;width:min(1100px,calc(100% - 3rem));transform:translateX(-50%);text-align:center;font-size:clamp(3rem,6vw,7rem);line-height:.95}.outdoor p span{font-size:clamp(.8rem,1.1vw,1.05rem);margin-top:1.25rem}.outdoor::after{background:rgba(0,0,0,.34)}
.locations{height:110svh;min-height:820px;overflow:visible;padding-bottom:clamp(2rem,4vh,4rem)}.location-board{min-height:520px;overflow:visible}.location-info{overflow:visible}.maps-link{position:relative;z-index:2}
@media(max-width:900px){.hero.motion-cycle .plane-main,.hero.motion-cycle .plane-a,.hero.motion-cycle .plane-b{animation:none}.why{border-inline-width:7px}.outdoor{height:125svh;min-height:720px}.outdoor img{top:7svh;height:86svh}.outdoor p{top:78svh;font-size:clamp(2.8rem,13vw,5rem)}.locations{height:auto;min-height:0}.location-board{min-height:0}.service img,.service:nth-child(even) img,.service.in-view img,.service:nth-child(even).in-view img{transform:perspective(800px) rotateY(-4deg) scale(.98)}}
@media(prefers-reduced-motion:reduce){.hero.motion-cycle .plane-main,.hero.motion-cycle .plane-a,.hero.motion-cycle .plane-b{animation:none}.outdoor{height:90svh}.outdoor img{top:0;height:100%;position:absolute}.outdoor p{top:50%;transform:translate(-50%,-50%)}}

/* Outdoor fixed-background parallax — no exposed strip */
.outdoor{position:relative;height:82svh;min-height:600px;max-height:none;overflow:hidden;background:linear-gradient(rgba(5,18,9,.42),rgba(5,18,9,.42)),url("/assets/images/outdoor.webp") center 56%/cover fixed no-repeat}.outdoor img{display:none}.outdoor::after{display:none}.outdoor p{position:absolute;z-index:2;left:50%;top:50%;bottom:auto;width:min(1150px,calc(100% - 3rem));margin:0;transform:translate(-50%,-50%);text-align:center;color:#fff;font-size:clamp(3.2rem,6vw,7rem);line-height:.92;text-wrap:balance}.outdoor p span{display:block;margin-top:1.3rem;font-size:clamp(.8rem,1.1vw,1.05rem);line-height:1.5;letter-spacing:.1em}
@media(max-width:900px){.outdoor{height:72svh;min-height:540px;background-attachment:scroll;background-position:center}.outdoor p{top:50%;font-size:clamp(2.9rem,13vw,5.2rem)}}
@media(prefers-reduced-motion:reduce){.outdoor{height:72svh;background-attachment:scroll}.outdoor p{top:50%;transform:translate(-50%,-50%)}}
.hero.motion-cycle .plane-b{animation:hero-bottom-right-rise 9s 6s cubic-bezier(.22,.78,.22,1) infinite}@keyframes hero-bottom-right-rise{0%,35%,100%{z-index:3;transform:translate(0,0) rotateY(-3deg) scale(1)}10%{z-index:10;transform:translate(-2vw,-9vh) rotateY(-1deg) scale(1.07)}17%,24%{z-index:10;transform:translate(-5vw,-14vh) rotateY(0) scale(1.12)}30%{z-index:6;transform:translate(-2vw,-6vh) rotateY(-2deg) scale(1.04)}}
@media(max-width:900px){.hero.motion-cycle .plane-b{animation:none}}@media(prefers-reduced-motion:reduce){.hero.motion-cycle .plane-b{animation:none}}
.footer-meta{display:flex;align-items:center;justify-content:space-between;gap:2rem;width:100%}.developer-credit{white-space:nowrap;color:#8e948f}.developer-credit a{position:relative;color:inherit;padding-bottom:.18rem}.developer-credit a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .3s ease}.developer-credit a:hover::after,.developer-credit a:focus-visible::after{transform:scaleX(1);transform-origin:left}@media(max-width:560px){.footer-meta{align-items:flex-start;flex-direction:column;gap:.65rem}.developer-credit{align-self:flex-end}}
.developer-credit{margin-right:5.5rem}.floating-contact{width:58px;height:58px;background:#25d366;transition:transform .3s ease,box-shadow .3s ease}.floating-contact svg{display:block;width:30px;height:30px;fill:#fff}.floating-contact:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 14px 34px rgba(37,211,102,.3)}@media(max-width:560px){.developer-credit{margin-right:4.5rem}.floating-contact{width:54px;height:54px;right:1rem;bottom:1rem}.floating-contact svg{width:28px;height:28px}}
.developer-credit{margin-right:0}
@media(max-width:900px){.site-header nav{z-index:10;height:100dvh;inset:0;padding-top:calc(var(--header) + 3rem)}.site-header .brand,.menu-toggle{position:relative;z-index:12}.menu-toggle[aria-expanded=true]{color:#fff}.service-story{padding-bottom:24vh}.service,.service:nth-child(2),.service:nth-child(3){position:sticky;top:68px;min-height:calc(100svh - 82px);padding:1.35rem 1rem;box-shadow:0 -14px 40px rgba(17,28,20,.14);transform-origin:50% 6%;overflow:hidden}.service:nth-child(2){top:76px}.service:nth-child(3){top:84px}.service img{height:32svh;min-height:220px}.service h3{font-size:clamp(2rem,7vw,3rem);margin:.55rem 0}.service p{margin:.5rem 0;font-size:.9rem}.service ul{margin:.75rem 0}.service li{padding:.35rem 0;font-size:.78rem}.hero.motion-cycle .plane-main{animation:hero-mobile-main 9s ease-in-out infinite}.hero.motion-cycle .plane-a{animation:hero-mobile-a 9s 3s ease-in-out infinite}.hero.motion-cycle .plane-b{animation:hero-mobile-b 9s 6s ease-in-out infinite}@keyframes hero-mobile-main{0%,34%,100%{z-index:1;transform:scale(1)}14%,24%{z-index:20;transform:scale(1.045)}}@keyframes hero-mobile-a{0%,34%,100%{z-index:2;transform:scale(1)}14%,24%{z-index:21;transform:scale(1.065)}}@keyframes hero-mobile-b{0%,34%,100%{z-index:3;transform:scale(1)}14%,24%{z-index:22;transform:scale(1.07)}}.outdoor{background-attachment:scroll;background-size:auto 118%;will-change:background-position}.footer-meta{align-items:center;justify-content:center;text-align:center}.developer-credit{align-self:center!important;margin:0!important}}
@media(max-width:560px){footer small.footer-meta{align-items:center}.footer-meta>span,.developer-credit{width:100%;text-align:center}}
@media(prefers-reduced-motion:reduce){.hero.motion-cycle .plane-main,.hero.motion-cycle .plane-a,.hero.motion-cycle .plane-b{animation:none}}
.contact-action{display:inline-flex;align-items:center;justify-content:center;gap:.7rem}.contact-action img{flex:none;display:block;object-fit:contain}.button.light.contact-action img{width:20px;height:20px}.call-action{padding:.45rem .25rem}.call-action img{width:18px;height:18px;filter:brightness(0) invert(1);opacity:.9;transition:transform .3s ease}.call-action:hover img,.button.light.contact-action:hover img{transform:translateY(-2px) scale(1.06)}
.hero.motion-cycle .plane-b{animation:hero-bottom-smooth-depth 9s 6s cubic-bezier(.42,0,.18,1) infinite;transform-style:preserve-3d;will-change:transform,z-index}@keyframes hero-bottom-smooth-depth{0%,5%,38%,100%{z-index:0;transform:translateZ(0) rotateY(-3deg) scale(1)}18%,25%{z-index:30;transform:translateZ(55px) rotateY(0) scale(1.085)}}.contact-action img{image-rendering:auto;backface-visibility:hidden;transform:translateZ(0);transition:transform .35s cubic-bezier(.2,.8,.2,1)}.button.light.contact-action img{width:22px;height:22px}.call-action img{width:20px;height:20px}
@media(max-width:900px){.hero.motion-cycle .plane-b{animation:hero-mobile-bottom-smooth-depth 9s 6s cubic-bezier(.42,0,.18,1) infinite}@keyframes hero-mobile-bottom-smooth-depth{0%,5%,38%,100%{z-index:0;transform:translateZ(0) scale(1)}18%,25%{z-index:30;transform:translateZ(28px) scale(1.055)}}}
@media(prefers-reduced-motion:reduce){.hero.motion-cycle .plane-b{animation:none}}
@media(pointer:fine){.button,.header-cta,.arrow-link,.phone,.city-tabs button,.branch-tabs button,summary,footer a,.brand{transition:color .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .35s ease,translate .35s cubic-bezier(.2,.8,.2,1),letter-spacing .35s ease}.button:hover,.header-cta:hover{translate:0 -3px}.button.primary:hover{background:var(--green-dark,#17662d);border-color:var(--green-dark,#17662d);box-shadow:0 14px 30px rgba(49,146,68,.24);letter-spacing:.095em}.header-cta:hover{background:var(--ink);color:#fff;box-shadow:0 10px 25px rgba(16,19,17,.14)}.text-link{position:relative}.text-link::after{content:"";position:absolute;left:.3rem;right:.3rem;bottom:.45rem;height:1px;background:var(--green);transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.2,.8,.2,1)}.text-link:hover::after{transform:scaleX(1);transform-origin:left}.text-link span,.arrow-link{transition:transform .35s cubic-bezier(.2,.8,.2,1),color .3s ease}.text-link:hover span{transform:translate(4px,3px)}.arrow-link:hover{color:#fff;translate:5px 0}.city-tabs button:hover,.branch-tabs button:hover{color:var(--green);translate:0 -2px}summary:hover{color:var(--green);translate:5px 0}footer>div a:hover{color:#8bd49a;translate:0 -2px}.brand:hover{translate:0 -2px}.brand:hover img{transform:scale(1.035)}.brand img{transition:transform .35s cubic-bezier(.2,.8,.2,1)}.phone:hover{translate:0 -2px}.maps-link:hover{box-shadow:0 12px 28px rgba(49,146,68,.22)}.contact-action:hover img{transform:translateY(-2px) scale(1.08)}}
@media(prefers-reduced-motion:reduce){.button,.header-cta,.arrow-link,.phone,.city-tabs button,.branch-tabs button,summary,footer a,.brand{transition:none!important;translate:none!important}}
.text-link span{display:inline-block}
.hero.motion-cycle .plane-b{animation:hero-bottom-continuous 9s 6s cubic-bezier(.45,.02,.2,1) infinite both}@keyframes hero-bottom-continuous{0%,5%,38%,100%{z-index:0;transform:translateZ(110px) rotateY(-3deg) scale(1)}20%,25%{z-index:30;transform:translateZ(170px) rotateY(0) scale(1.045)}}@media(max-width:900px){.hero.motion-cycle .plane-b{animation:hero-mobile-bottom-continuous 9s 6s cubic-bezier(.45,.02,.2,1) infinite both}@keyframes hero-mobile-bottom-continuous{0%,5%,38%,100%{z-index:0;transform:translateZ(110px) scale(1)}20%,25%{z-index:30;transform:translateZ(155px) scale(1.04)}}}@media(prefers-reduced-motion:reduce){.hero.motion-cycle .plane-b{animation:none}}
.plane-main{--rest-z:0px;--rest-rotate:-2deg;--rest-layer:1;--active-scale:1.055}.plane-a{--rest-z:70px;--rest-rotate:3deg;--rest-layer:2;--active-scale:1.08}.plane-b{--rest-z:110px;--rest-rotate:-3deg;--rest-layer:3;--active-scale:1.08}.hero.motion-cycle .plane-main,.hero.motion-cycle .plane-a,.hero.motion-cycle .plane-b{animation-name:hero-plane-unified;animation-duration:9s;animation-timing-function:cubic-bezier(.45,.02,.2,1);animation-iteration-count:infinite;animation-fill-mode:both}.hero.motion-cycle .plane-main{animation-delay:0s}.hero.motion-cycle .plane-a{animation-delay:3s}.hero.motion-cycle .plane-b{animation-delay:6s}@keyframes hero-plane-unified{0%,5%,38%,100%{z-index:var(--rest-layer);transform:translateZ(var(--rest-z)) rotateY(var(--rest-rotate)) scale(1)}20%,25%{z-index:30;transform:translateZ(calc(var(--rest-z) + 65px)) rotateY(0) scale(var(--active-scale))}}.button.primary:hover{letter-spacing:.07em}
@media(max-width:900px){.plane-main,.plane-a,.plane-b{--active-scale:1.06}.hero.motion-cycle .plane-main,.hero.motion-cycle .plane-a,.hero.motion-cycle .plane-b{animation-name:hero-plane-unified;animation-duration:9s;animation-timing-function:cubic-bezier(.45,.02,.2,1);animation-iteration-count:infinite;animation-fill-mode:both}.hero.motion-cycle .plane-main{animation-delay:0s}.hero.motion-cycle .plane-a{animation-delay:3s}.hero.motion-cycle .plane-b{animation-delay:6s}}
@media(prefers-reduced-motion:reduce){.hero.motion-cycle .plane-main,.hero.motion-cycle .plane-a,.hero.motion-cycle .plane-b{animation:none}}
.hero-visual{isolation:isolate}.hero.motion-cycle .plane-b{animation:hero-bottom-right-layer 9s 6s cubic-bezier(.22,.78,.22,1) infinite;will-change:transform,z-index}@keyframes hero-bottom-right-layer{0%,8%,34%,100%{z-index:3;transform:rotateY(-3deg) scale(1)}10%{z-index:30;transform:rotateY(-2deg) scale(1.035)}16%,25%{z-index:30;transform:rotateY(0) scale(1.10)}31%{z-index:30;transform:rotateY(-2deg) scale(1.035)}}
@media(max-width:900px){.hero.motion-cycle .plane-b{animation:none}}@media(prefers-reduced-motion:reduce){.hero.motion-cycle .plane-b{animation:none}}
.city-tabs button{display:flex;align-items:baseline;gap:.65rem}.city-tabs small{font-size:.56rem;letter-spacing:.1em;text-transform:uppercase;color:#7a7f7a}.city-tabs button[aria-selected=true] small{color:var(--green)}.branch-tabs [hidden]{display:none!important}.accordion summary::before,.accordion summary::after,.accordion details[open] summary::after{content:""!important}
.service:nth-child(1){z-index:1}.service:nth-child(2){z-index:2}.service:nth-child(3){z-index:3}.service{transform-origin:50% 8%;box-shadow:0 -18px 55px rgba(17,28,20,.11),0 16px 45px rgba(17,28,20,.08)}
.service{transition:box-shadow .3s ease,opacity .18s linear;will-change:transform,opacity}.service:nth-child(1){--stack-accent:rgba(49,146,68,.18)}.service:nth-child(2){--stack-accent:rgba(255,255,255,.12)}.service:nth-child(3){--stack-accent:rgba(49,146,68,.18)}
.service{transition:box-shadow .3s ease!important}

/* Smooth layer crossing for the lower hero image. z-index is discrete, so an
   identical front copy fades in while both copies share one continuous zoom. */
.hero.motion-cycle .plane-b:not(.plane-b-front){z-index:3;animation:hero-plane-b-crossing 9s 6s cubic-bezier(.45,.02,.2,1) infinite both;will-change:transform}
.hero.motion-cycle .plane-b-front{z-index:30;opacity:0;pointer-events:none;animation:hero-plane-b-crossing 9s 6s cubic-bezier(.45,.02,.2,1) infinite both,hero-plane-b-front-fade 9s 6s ease-in-out infinite both;will-change:transform,opacity}
@keyframes hero-plane-b-crossing{0%,5%,38%,100%{transform:translateZ(110px) rotateY(-3deg) scale(1)}20%,25%{transform:translateZ(175px) rotateY(0) scale(1.10)}}
@keyframes hero-plane-b-front-fade{0%,7%,36%,100%{opacity:0}16%,28%{opacity:1}}
@media(max-width:900px){.hero-visual{transform-style:preserve-3d}.hero.motion-cycle .plane-b:not(.plane-b-front){animation:hero-plane-b-crossing-mobile 9s 6s cubic-bezier(.45,.02,.2,1) infinite both}.hero.motion-cycle .plane-b-front{animation:hero-plane-b-crossing-mobile 9s 6s cubic-bezier(.45,.02,.2,1) infinite both,hero-plane-b-front-fade-mobile 9s 6s ease-in-out infinite both}@keyframes hero-plane-b-crossing-mobile{0%,5%,38%,100%{transform:translate3d(0,0,80px) rotateY(-3deg) scale(1)}16%,27%{transform:translate3d(0,0,145px) rotateY(0) scale(1.16)}}@keyframes hero-plane-b-front-fade-mobile{0%,7%,36%,100%{opacity:0}13%,30%{opacity:1}}}
@media(prefers-reduced-motion:reduce){.hero.motion-cycle .plane-b:not(.plane-b-front){animation:none}.hero.motion-cycle .plane-b-front{display:none}}

/* Mobile parallax uses a sticky image because fixed backgrounds are unreliable
   on touch browsers. The copy remains in the document and rises over it. */
@media(max-width:900px){.outdoor{height:180svh;min-height:0;overflow:visible;background:var(--ink);isolation:isolate}.outdoor img{display:block;position:sticky;z-index:0;top:0;width:100%;height:100svh;object-fit:cover;object-position:center 56%;filter:brightness(.5);transform:none}.outdoor p{position:absolute;z-index:2;top:128svh;bottom:auto;left:50%;width:min(92%,700px);margin:0;transform:translate(-50%,-50%);font-size:clamp(3rem,13vw,5.5rem);line-height:.92;text-align:center;color:#fff}.outdoor p span{display:block;margin-top:1.2rem;font-size:clamp(.78rem,3.3vw,1rem);line-height:1.5;letter-spacing:.08em}.outdoor::after{display:none}}
