:root{--green:#0d2f1e;--lime:#65a906;--lime-dark:#528a00;--paper:#f5f8f2;--ink:#11261b;--muted:#536659;--line:#dce7d6;--white:#fff;--radius:28px;--shadow:0 18px 45px rgba(13,47,30,.08);--spring:cubic-bezier(.2,1.32,.38,1);--smooth:cubic-bezier(.19,1,.22,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Montserrat,Arial,sans-serif;line-height:1.6;overflow-x:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit}svg{display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.13;letter-spacing:-.045em}h1{font-size:clamp(2.7rem,5.4vw,5rem);font-weight:800}h2{font-size:clamp(2rem,3.4vw,3.45rem);font-weight:800}h3{font-size:1.22rem;font-weight:700;letter-spacing:-.025em}p{font-size:1rem}.shell{width:min(1180px,calc(100% - 40px));margin-inline:auto}.section{padding:56px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:28px}.section-heading>div:first-child{max-width:720px}.section-heading h2{margin-bottom:14px}.section-heading p:last-child{color:var(--muted);margin-bottom:0}.eyebrow{color:var(--lime-dark);font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px}.eyebrow--light{color:#c8f48b}.lead{font-size:1.13rem;font-weight:600}.icon{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;overflow:visible}.skip-link{position:absolute;left:16px;top:-100px;z-index:50;background:var(--green);color:#fff;padding:12px 16px;border-radius:12px}.skip-link:focus{top:12px}:focus-visible{outline:3px solid var(--lime);outline-offset:4px}[hidden]{display:none!important}
.site-header{position:sticky;top:0;z-index:40;background:rgba(245,248,242,.91);backdrop-filter:blur(20px);border-bottom:1px solid rgba(13,47,30,.08)}.header-inner{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative}.brand img{width:190px;height:auto}.site-nav{display:flex;align-items:center;gap:6px;padding:5px;background:#fff;border:1px solid var(--line);border-radius:999px;box-shadow:0 6px 20px rgba(13,47,30,.04)}.nav-link{padding:9px 16px;border-radius:999px;font-size:.88rem;font-weight:700;color:#415748;transition:background .35s var(--smooth),color .35s var(--smooth),transform .45s var(--spring)}.nav-link:hover,.nav-link:focus-visible{background:#eaf5de;color:var(--green);transform:translateY(-2px)}.nav-link.is-active{background:var(--green);color:#fff}.header-actions{display:flex;align-items:center;gap:10px}.menu-button{display:none;border:1px solid var(--line);background:#fff;color:var(--green);border-radius:14px;width:46px;height:46px;align-items:center;justify-content:center;cursor:pointer}.menu-button .icon{width:23px;height:23px}
.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1.5px solid transparent;border-radius:999px;padding:13px 22px;font-size:.88rem;font-weight:800;line-height:1.2;cursor:pointer;white-space:normal;text-align:center;transition:transform .48s var(--spring),box-shadow .4s var(--smooth),background .4s var(--smooth),color .4s var(--smooth),border-color .4s var(--smooth)}.button .icon{width:19px;height:19px;transition:transform .48s var(--spring)}.button:hover{transform:translateY(-3px) scale(1.035);box-shadow:0 12px 24px rgba(13,47,30,.14)}.button:hover .icon{transform:translate(3px,-2px)}.button:active{transform:scale(.94);box-shadow:0 2px 8px rgba(13,47,30,.1)}.button--primary{background:var(--lime);color:var(--green)}.button--primary:hover{background:#77bf13}.button--outline{border-color:var(--green);background:transparent;color:var(--green)}.button--outline:hover{background:#e8f1e3}.button--small{min-height:43px;padding:9px 16px;background:var(--green);color:#fff;font-size:.8rem}.button--light{background:#fff;color:var(--green)}.button--ghost{background:#e7f0df;color:var(--green);border:0}.button--text{background:transparent;color:var(--green);padding-inline:4px;min-height:45px}.button--text:hover{box-shadow:none;background:transparent}.inline-actions,.hero-actions,.section-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.section-actions{justify-content:center;margin-top:28px}.text-link{display:inline-flex;align-items:center;gap:6px;color:var(--green);font-size:.82rem;font-weight:800;transition:gap .35s var(--spring),color .35s var(--smooth)}.text-link:hover{gap:11px;color:var(--lime-dark)}.text-link .icon{width:17px;height:17px}
.reactive-card{position:relative;isolation:isolate;overflow:hidden;border:1px solid rgba(13,47,30,.08);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .6s var(--smooth),box-shadow .6s var(--smooth),border-color .4s var(--smooth)}.reactive-card::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%),rgba(101,169,6,.11),transparent 62%);transition:opacity .45s var(--smooth)}.reactive-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(13,47,30,.13);border-color:rgba(101,169,6,.32)}.reactive-card:hover::after{opacity:1}
.hero{padding-top:34px}.hero-grid{display:grid;grid-template-columns:1.17fr .83fr;gap:18px}.hero-copy{background:#fff;padding:clamp(28px,4vw,60px);display:flex;flex-direction:column;justify-content:center;min-height:570px}.hero-copy h1{margin:20px 0 22px}.hero-copy h1 em,.page-heading h1 em,.page-hero-copy h1 em{font-style:normal;color:var(--lime-dark)}.hero-copy>p{font-size:1.05rem;color:var(--muted);max-width:590px;margin-bottom:28px}.eyebrow-pill{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;border:1px solid #d7e8c8;background:#f1f8ea;color:var(--green);border-radius:999px;padding:8px 13px;font-weight:800;font-size:.74rem;letter-spacing:.03em}.eyebrow-pill .icon{width:16px;height:16px;color:var(--lime-dark)}.hero-visual{min-height:570px;background:linear-gradient(145deg,#dcebcf 0%,#8dc853 52%,#0d2f1e 100%)}.hero-visual>img{width:100%;height:100%;object-fit:cover;object-position:center 32%;transition:transform 1s var(--smooth)}.hero-visual:hover>img,.about-image:hover img,.about-hero-photo:hover img,.detail-photo:hover img,.client-card:hover img{transform:scale(1.055)}.hero-visual-caption{position:absolute;left:18px;right:18px;bottom:18px;display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);color:var(--green);padding:14px 17px;border-radius:18px;font-size:.83rem;font-weight:800;z-index:2}.caption-spark{display:grid;place-items:center;width:35px;height:35px;flex:none;border-radius:12px;background:var(--lime);color:var(--green)}
.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.trust-card{background:#fff;padding:30px;min-height:265px}.small-icon,.large-icon{display:grid;place-items:center;border-radius:17px;background:#eaf5dd;color:var(--green);width:50px;height:50px;margin-bottom:22px;transition:transform .55s var(--spring),background .4s var(--smooth)}.small-icon .icon{width:25px;height:25px}.large-icon{width:64px;height:64px;border-radius:20px}.large-icon .icon{width:32px;height:32px}.trust-card:hover .small-icon,.contact-detail:hover .small-icon,.contact-main:hover .large-icon{transform:rotate(-8deg) scale(1.12);background:#d5edba}.trust-card h3{margin-bottom:12px}.trust-card p{color:var(--muted);font-size:.91rem;margin:0}
.about-grid{display:grid;grid-template-columns:.83fr 1.17fr;gap:18px}.about-image{min-height:520px;background:#dce7d5}.about-image img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform 1s var(--smooth)}.about-content{background:#fff;padding:clamp(28px,4vw,56px);display:flex;flex-direction:column;justify-content:center}.about-content h2{margin-bottom:18px}.about-content p:not(.eyebrow){color:var(--muted);margin-bottom:15px}.about-content .lead{color:var(--green)!important}.about-content .inline-actions{margin-top:12px}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service-card{display:flex;flex-direction:column;min-height:330px;padding:26px;background:var(--green);color:#fff}.service-card:nth-child(2),.service-card:nth-child(5){background:linear-gradient(145deg,#194a30,#0d2f1e)}.service-top{display:flex;justify-content:space-between;align-items:center;color:#b7d3b9;font-size:.76rem;font-weight:800;letter-spacing:.1em}.service-top .icon{width:20px;height:20px}.service-art{display:grid;place-items:center;width:82px;height:82px;border-radius:20px;background:rgba(255,255,255,.1);margin:22px 0 25px;transition:transform .55s var(--spring),background .35s var(--smooth)}.service-art img{width:62px;height:62px;object-fit:contain;transition:transform .55s var(--spring)}.service-card:hover .service-art{transform:rotate(-5deg) scale(1.08);background:rgba(101,169,6,.27)}.service-card:hover .service-art img{transform:rotate(8deg) scale(1.08)}.service-card h3{font-size:1.17rem;margin-bottom:10px}.service-card p{font-size:.88rem;color:#d7e7da;margin:0}
.location-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.location-copy{background:#fff;padding:clamp(28px,4vw,52px)}.location-copy h2{max-width:540px}.location-copy p:not(.eyebrow){color:var(--muted);max-width:540px;margin-bottom:24px}.location-art{display:flex;align-items:center;justify-content:center;gap:25px;min-height:280px;background:linear-gradient(130deg,#d9f1c7,#b2da91);color:var(--green)}.location-orbit{display:grid;place-items:center;width:125px;height:125px;border-radius:50%;border:2px solid rgba(13,47,30,.35);box-shadow:0 0 0 15px rgba(255,255,255,.2),0 0 0 40px rgba(255,255,255,.15)}.location-orbit .icon{width:54px;height:54px}.location-art>span{font-size:1.55rem;font-weight:800;line-height:1.3}.location-art strong{font-size:1rem}
.reviews-section{background:#edf4e9;margin-top:34px;padding-block:70px}.review-header-actions{flex:none}.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start}.review-card{background:#fff;padding:25px}.review-top{display:flex;align-items:center;gap:12px}.review-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:none;background:#edf2e8}.review-top h3{font-size:.88rem;letter-spacing:-.015em;margin-bottom:1px;line-height:1.3}.review-top span{font-size:.72rem;color:var(--muted)}.quote-icon{width:26px;height:26px;margin-left:auto;color:#b8d69d}.stars{margin:18px 0 9px;color:#d69209;letter-spacing:.12em;font-size:1rem}.review-card p{font-size:.88rem;color:#334b39;line-height:1.7;margin-bottom:18px}.review-card .text-link{margin-top:auto}.faq-layout{display:grid;grid-template-columns:.36fr .64fr;gap:45px}.faq-layout>div:first-child p:last-child{color:var(--muted)}.faq-list{display:grid;gap:10px}.faq-item{border-radius:18px;border:1px solid var(--line);background:#fff;padding:0 20px;transition:box-shadow .4s var(--smooth),border-color .4s var(--smooth)}.faq-item:hover,.faq-item[open]{border-color:#b7d699;box-shadow:0 10px 25px rgba(13,47,30,.05)}.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;font-size:.91rem;font-weight:800;line-height:1.45}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary .icon{transition:transform .45s var(--spring);flex:none}.faq-item[open] summary .icon{transform:rotate(45deg)}.faq-item p{color:var(--muted);font-size:.89rem;margin:0 0 20px}.cta-panel,.about-cta-panel{display:flex;align-items:center;justify-content:space-between;gap:32px;background:var(--green);color:#fff;padding:clamp(28px,5vw,60px)}.cta-panel h2,.about-cta-panel h2{max-width:720px;margin-bottom:13px}.cta-panel p:not(.eyebrow),.about-cta-panel p:not(.eyebrow){color:#d7e9d7;max-width:720px;margin-bottom:0}.cta-panel .button,.about-cta-panel .button{flex:none}
.page-hero{padding-top:40px}.page-heading{max-width:830px;margin-bottom:35px}.page-heading h1{margin-bottom:19px}.page-heading>p:last-child{color:var(--muted);font-size:1.02rem;max-width:760px}.about-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.page-hero-copy{background:#fff;padding:clamp(28px,4vw,55px);min-height:540px;display:flex;flex-direction:column;justify-content:center}.page-hero-copy h1{font-size:clamp(2.5rem,4.6vw,4.55rem)}.page-hero-copy p:not(.eyebrow){color:var(--muted);font-size:.98rem}.about-hero-photo{min-height:540px;background:#dce7d5}.about-hero-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--smooth)}.story-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}.story-quote{background:var(--green);color:#fff;padding:clamp(30px,4vw,55px);margin:0}.story-quote .icon{color:#a9d879;width:36px;height:36px;margin-bottom:20px}.story-quote p{font-size:clamp(1.2rem,2vw,1.7rem);font-weight:700;line-height:1.5;margin:0}.story-copy{background:#e6f0df;padding:clamp(30px,4vw,50px);display:flex;align-items:center}.story-copy p{font-size:1.02rem;margin:0}.detail-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:18px}.detail-photo{min-height:500px;background:#dce7d5}.detail-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--smooth)}.detail-copy{display:flex;flex-direction:column;justify-content:center;background:#fff;padding:clamp(30px,4vw,55px)}.detail-copy p:not(.eyebrow){color:var(--muted)}.about-cta-panel{align-items:end}
.clients-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.client-card{display:block;background:#fff;min-width:0}.client-card--wide{grid-column:span 2}.client-media{height:190px;overflow:hidden;background:linear-gradient(135deg,#dcebd2,#bdd9a7);border-radius:27px 27px 0 0}.client-card--wide .client-media{height:240px}.client-media img{width:100%;height:100%;object-fit:cover;transition:transform .95s var(--smooth)}.client-content{padding:22px}.client-label{display:flex;justify-content:space-between;align-items:center;color:var(--lime-dark);font-weight:800;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;margin-bottom:13px}.client-label .icon{width:18px;height:18px;transition:transform .5s var(--spring)}.client-card:hover .client-label .icon{transform:translate(3px,-3px)}.client-content h2{font-size:1.12rem;letter-spacing:-.025em;margin-bottom:9px}.client-content p{font-size:.81rem;color:var(--muted);margin:0}.center-action{display:flex;justify-content:center;margin-top:30px}
.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.contact-main{background:#fff;padding:clamp(30px,4vw,50px);min-height:345px;display:flex;flex-direction:column;align-items:flex-start}.contact-main h2{margin-bottom:12px}.contact-main p{color:var(--muted);margin-bottom:25px}.contact-main .button{margin-top:auto}.contact-side{display:grid;gap:18px}.contact-detail{background:#fff;padding:25px;min-height:160px}.contact-detail .small-icon{width:42px;height:42px;margin-bottom:15px}.contact-detail .small-icon .icon{width:21px;height:21px}.contact-detail h2{font-size:1.13rem;margin-bottom:5px}.contact-detail a{color:var(--lime-dark);font-size:.92rem;font-weight:800}.contact-detail p{color:var(--muted);font-size:.85rem;margin:0}.social-card{grid-column:1/-1;background:#e6f0df;padding:30px}.social-card h2{font-size:1.35rem}.social-links{display:flex;gap:12px;flex-wrap:wrap}.social-links a{display:inline-flex;align-items:center;gap:9px;border-radius:999px;background:#fff;padding:11px 17px;font-size:.86rem;font-weight:800;transition:transform .45s var(--spring),box-shadow .35s var(--smooth)}.social-links a:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.social-links .icon{width:17px;height:17px}.map-card{background:#fff;padding:12px}.map-card iframe{width:100%;height:430px;display:block;border:0;border-radius:18px}.terms-list{display:grid;gap:14px;max-width:950px}.term-card{display:grid;grid-template-columns:60px 1fr;gap:20px;background:#fff;padding:30px}.term-index{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#e5f1d8;color:var(--lime-dark);font-size:.8rem;font-weight:800}.term-card h2{font-size:1.27rem;margin-bottom:10px}.term-card p{color:var(--muted);font-size:.94rem;margin:0}.error-page{min-height:65vh;display:grid;align-items:center}.error-card{padding:clamp(30px,5vw,60px);background:#fff;max-width:800px}.error-card p:not(.eyebrow){color:var(--muted)}
.about-image img,.about-hero-photo img{object-position:left center}.client-media{position:relative;display:grid;place-items:center}.client-card--wide .client-media{height:310px}.client-card--wide .client-media img{object-fit:contain}.client-media-fallback{position:relative;z-index:0;color:var(--green);font-size:clamp(1.2rem,2vw,1.8rem);font-weight:800;text-align:center;padding:16px;line-height:1.2}.client-media img{position:absolute;inset:0;z-index:1;opacity:0;transition:opacity .5s var(--smooth),transform .95s var(--smooth)}.client-media img.is-loaded{opacity:1}.map-action{display:flex;justify-content:flex-end;margin-top:16px}
.site-footer{margin-top:50px;background:#0b291b;color:#fff;padding-top:60px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:35px;padding-bottom:50px}.footer-brand img{width:225px;height:auto;margin-bottom:18px}.footer-brand p{color:#b9cfbf;max-width:340px;font-size:.84rem}.footer-grid h2{font-size:.89rem;letter-spacing:0;margin-bottom:18px}.footer-grid>div:not(.footer-brand)>a{display:flex;align-items:center;gap:4px;color:#c9dacb;font-size:.82rem;padding:5px 0;transition:color .3s var(--smooth),transform .4s var(--spring)}.footer-grid>div:not(.footer-brand)>a:hover{color:#c5fa88;transform:translateX(3px)}.footer-grid .icon{width:15px;height:15px}.footer-bottom{border-top:1px solid rgba(255,255,255,.15);padding:20px 0 28px;display:flex;justify-content:space-between;gap:15px;color:#a9c2ae;font-size:.73rem}
@media(max-width:1050px){.header-actions .button{display:none}.services-grid{grid-template-columns:repeat(2,1fr)}.clients-grid{grid-template-columns:repeat(3,1fr)}.client-card--wide{grid-column:span 1}.client-card--wide .client-media{height:190px}.reviews-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1.6fr 1fr 1fr;gap:25px}.footer-grid>div:last-child{grid-column:2/-1}}
@media(max-width:820px){.site-nav{display:none;position:absolute;top:calc(100% + 8px);right:0;left:0;flex-direction:column;align-items:stretch;border-radius:20px;padding:12px;box-shadow:0 22px 35px rgba(13,47,30,.16)}.site-nav.is-open{display:flex}.nav-link{border-radius:12px}.menu-button{display:flex}.hero-grid,.about-grid,.location-grid,.about-hero-grid,.story-grid,.detail-grid,.faq-layout,.contact-grid{grid-template-columns:1fr}.hero-copy,.hero-visual{min-height:auto}.hero-visual{height:460px}.about-image,.about-hero-photo,.detail-photo{min-height:430px}.location-art{min-height:230px}.contact-side{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:repeat(2,1fr)}.footer-grid>div:last-child{grid-column:auto}}
@media(max-width:600px){.shell{width:min(100% - 28px,1180px)}.section{padding:38px 0}.header-inner{min-height:70px}.brand img{width:155px}.hero{padding-top:16px}.hero-copy{padding:28px;min-height:490px}.hero-copy h1{font-size:clamp(2.45rem,11vw,3.4rem)}.hero-visual{height:430px}.hero-actions .button,.inline-actions .button{width:100%}.section-heading{display:block}.section-heading .button{margin-top:20px}.trust-grid,.services-grid,.reviews-grid,.clients-grid{grid-template-columns:1fr}.trust-card{min-height:auto}.service-card{min-height:300px}.about-image,.about-hero-photo,.detail-photo{min-height:330px}.about-content,.detail-copy,.page-hero-copy{padding:28px}.location-art{min-height:220px}.location-orbit{width:85px;height:85px;box-shadow:0 0 0 10px rgba(255,255,255,.2),0 0 0 25px rgba(255,255,255,.15)}.location-orbit .icon{width:37px;height:37px}.location-art>span{font-size:1.25rem}.reviews-section{padding-block:48px}.review-card{padding:23px}.faq-layout{gap:15px}.cta-panel,.about-cta-panel{display:block;padding:30px}.cta-panel .button,.about-cta-panel .button{margin-top:22px;width:100%}.page-hero{padding-top:25px}.page-heading h1{font-size:clamp(2.6rem,10vw,3.7rem)}.contact-side{grid-template-columns:1fr}.social-card{grid-column:auto}.map-card iframe{height:330px}.term-card{grid-template-columns:1fr;gap:10px;padding:24px}.footer-grid{grid-template-columns:1fr 1fr;gap:28px 20px}.footer-brand{grid-column:1/-1}.footer-grid>div:last-child{grid-column:1/-1}.footer-bottom{display:block}.footer-bottom span{display:block;margin-bottom:5px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reactive-card:hover,.button:hover,.button:active,.nav-link:hover,.social-links a:hover{transform:none!important}.client-card:hover img,.hero-visual:hover>img,.about-image:hover img,.about-hero-photo:hover img,.detail-photo:hover img{transform:none!important}}


/* Refined motion and spacing, preserving the approved JD Resolve palette. */
:root{--anchor-offset:108px;--shadow:0 10px 30px rgba(13,47,30,.055),0 2px 5px rgba(13,47,30,.025);--spring:cubic-bezier(.22,1.18,.36,1);--smooth:cubic-bezier(.22,1,.36,1)}
:where(section[id],main[id],div[id],h1[id],h2[id]){scroll-margin-top:var(--anchor-offset)}
h1,h2{text-wrap:balance}p{overflow-wrap:break-word}.icon{flex-shrink:0}
.site-header{backdrop-filter:blur(16px);background:rgba(245,248,242,.94)}
.button{transition:transform .28s var(--spring),box-shadow .28s var(--smooth),background .22s var(--smooth),color .22s var(--smooth),border-color .22s var(--smooth)}
.button:hover{transform:translateY(-2px) scale(1.012);box-shadow:0 8px 20px rgba(13,47,30,.11)}
.button:active{transform:scale(.97);box-shadow:0 2px 5px rgba(13,47,30,.08)}
.button .icon{transition:transform .3s var(--spring)}.button:hover .icon{transform:translate(2px,-1px)}
.button--text:hover{box-shadow:none}.button--outline{border-color:#a8bba8;background:rgba(255,255,255,.32)}
.reactive-card{transition:transform .38s var(--smooth),box-shadow .38s var(--smooth),border-color .25s var(--smooth)}
.reactive-card:hover{transform:none;box-shadow:0 16px 34px rgba(13,47,30,.09);border-color:rgba(101,169,6,.25)}
.reactive-card::after{background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(101,169,6,.08),transparent 65%);transition:opacity .3s var(--smooth)}
.hero-copy::after,.about-content::after,.review-card::after,.trust-card::after,.location-art::after{display:none}
.client-card:hover{transform:translateY(-4px)}
.hero-visual:hover>img,.about-hero-photo:hover img,.detail-photo:hover img,.client-card:hover img{transform:scale(1.035)}
.trust-card:hover .small-icon,.contact-detail:hover .small-icon,.contact-main:hover .large-icon{transform:translateY(-2px) scale(1.05)}

/* A navigation indicator moves only during an explicit page change. */
.site-nav{position:relative;isolation:isolate;--pill-x:5px;--pill-y:5px;--pill-width:86px;--pill-height:42px;--nav-duration:360ms}
.site-nav::before{content:"";position:absolute;left:0;top:0;z-index:0;width:var(--pill-width);height:var(--pill-height);border-radius:999px;background:var(--green);opacity:0;transform:translate(var(--pill-x),var(--pill-y));transition:none;pointer-events:none}
.site-nav[data-pill-ready]::before{opacity:1}
.site-nav[data-nav-animating]::before{transition:transform var(--nav-duration) var(--smooth),width var(--nav-duration) var(--smooth),height var(--nav-duration) var(--smooth)}
.nav-link{position:relative;z-index:1;transition:color .16s var(--smooth),background .2s var(--smooth)}
.nav-link:hover,.nav-link:focus-visible{transform:none}
.site-nav[data-pill-ready] .nav-link.is-active{background:transparent;color:#fff}
.site-nav[data-pill-ready] .nav-link:hover{background:transparent}
.site-nav[data-pill-ready] .nav-link:not(.is-active):hover{color:#2e590d}
.site-nav[data-pill-ready] .nav-link.is-active:hover{color:#fff}
.menu-button{transition:transform .28s var(--spring),background .22s var(--smooth),box-shadow .22s var(--smooth)}
.menu-button:hover{background:#eaf5dd;box-shadow:0 6px 14px rgba(13,47,30,.08)}.menu-button:active{transform:scale(.94)}
.menu-button[aria-expanded="true"]{background:#eaf5dd;border-color:#c6dda9}

/* A balanced story card with paired desktop actions. */
.about-grid{align-items:stretch}.about-image{background:#fff}
.about-image img{object-position:left 32%;transform:scale(1.12);transform-origin:left 30%}
.about-image:hover img{transform:scale(1.15)}
.about-content{min-height:0;padding:clamp(28px,3.4vw,46px);justify-content:center}
.about-content .inline-actions{display:grid;grid-template-columns:1.16fr 1fr;gap:12px;align-items:stretch;margin-top:18px}
.about-content .inline-actions .button{width:100%;height:100%;min-height:56px;padding:12px;font-size:.78rem;line-height:1.35;gap:9px}
.about-content .inline-actions .button .icon{width:18px;height:18px}

/* Compact services: the removed numbering leaves no empty row. */
.service-card{display:grid;grid-template-columns:64px minmax(0,1fr);gap:18px 16px;align-content:start;align-items:center;min-height:0;padding:24px}
.service-art{width:64px;height:64px;margin:0;border-radius:18px;background:rgba(255,255,255,.1)}
.service-art img{width:46px;height:46px}.service-card h3{margin:0;font-size:1.08rem;line-height:1.24}
.service-card p{grid-column:1/-1;margin:0;font-size:.89rem;line-height:1.65;color:#e0eade}
.service-card:hover .service-art{transform:translateY(-2px) rotate(-3deg) scale(1.04);background:rgba(101,169,6,.24)}
.service-card:hover .service-art img{transform:none}

/* Temporary photograph, ready to replace with the supplied headquarters photo. */
.location-art{display:block;position:relative;min-height:320px;background:var(--green);color:#fff}
.location-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;transition:transform .7s var(--smooth)}
.location-art:hover .location-photo{transform:scale(1.035)}
.location-photo-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,47,30,.18),rgba(13,47,30,.05) 28%,rgba(13,47,30,.89));pointer-events:none}
.location-photo-note{position:absolute;top:22px;left:22px;padding:7px 11px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:rgba(13,47,30,.65);font-size:.68rem!important;font-weight:600!important;line-height:1.2!important}
.location-art-arrow-wrap{position:absolute;top:20px;right:20px;width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.48);border-radius:50%;background:rgba(13,47,30,.28);transition:background .25s var(--smooth),transform .3s var(--spring)}
.location-art:hover .location-art-arrow-wrap{background:var(--green);transform:translate(2px,-2px)}
.location-photo-caption{position:absolute;bottom:28px;left:28px;right:28px;display:flex;align-items:center;gap:15px}
.location-photo-pin{display:grid;place-items:center;flex:none;width:50px;height:50px;border-radius:16px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28)}
.location-photo-pin .icon{width:27px;height:27px}
.location-photo-caption strong{display:block;font-size:1.5rem;letter-spacing:-.03em;line-height:1.2}
.location-photo-caption>span:last-child>span{display:block;font-size:.85rem;font-weight:600;line-height:1.4;margin-top:5px;color:#e0ecd9}

/* Natural-height review columns, without gaps between cards. */
.reviews-grid{display:block;columns:3;column-gap:18px}
.review-card{display:flex;flex-direction:column;width:100%;margin:0 0 18px;break-inside:avoid;page-break-inside:avoid}
.review-top>div{min-width:0}.review-top h3{overflow-wrap:anywhere}.quote-icon{fill:currentColor;color:#adc794;flex:none}
.review-card .text-link{align-self:flex-start;min-height:28px}
.section-actions .button[aria-expanded="true"] .icon{transform:rotate(180deg)}
.footer-social>a .icon:first-child{width:18px;height:18px;margin-right:6px;color:#bbeb89}
.footer-social>a .icon:last-child{margin-left:2px}.footer-social>a span{min-width:0}
.footer-grid>div:not(.footer-brand)>a{min-height:32px}

/* A purposeful visual cue above the about-page CTA. */
.about-cta-action{display:flex;flex-direction:column;align-items:center;gap:24px;flex:none}
.cta-emblem{display:grid;place-items:center;width:112px;height:112px;border-radius:32px;background:radial-gradient(circle at 35% 20%,rgba(195,247,139,.24),rgba(101,169,6,.08));border:1px solid rgba(195,247,139,.24);box-shadow:0 0 0 8px rgba(195,247,139,.045);transition:transform .4s var(--spring),box-shadow .35s var(--smooth)}
.cta-emblem .icon{width:54px;height:54px;color:#d7ffb0;stroke-width:1.5}
.about-cta-panel:hover .cta-emblem{transform:translateY(-3px) scale(1.035);box-shadow:0 0 0 12px rgba(195,247,139,.07)}

/* Regular portfolio grid, with reserved image space. */
.client-card{display:flex;flex-direction:column}.client-card--wide{grid-column:auto}
.client-card-link{display:flex;flex-direction:column;min-height:100%;flex:1}
.client-card-link:focus-visible{outline:3px solid var(--lime);outline-offset:-5px;border-radius:var(--radius)}
.client-media,.client-card--wide .client-media{height:188px;border-radius:27px 27px 0 0}
.client-media img{object-fit:contain}.client-content{flex:1}
.client-media--empty{background:linear-gradient(145deg,#e9f5df,#c9e8ac)}
.client-media--empty::before{content:"";position:absolute;inset:16px;border:1px solid rgba(13,47,30,.1);border-radius:20px}
.client-media--empty .client-media-fallback{font-size:clamp(1rem,1.5vw,1.35rem);max-width:90%;letter-spacing:-.035em}
.recovery-wrap{position:absolute;z-index:5;top:13px;right:13px}
.recovery-badge{display:inline-flex;align-items:center;gap:5px;border:1px solid #b7d998;background:#fff;color:var(--green);border-radius:999px;padding:8px 10px;min-height:32px;font-size:.66rem;font-weight:800;line-height:1.2;cursor:pointer;box-shadow:0 5px 12px rgba(13,47,30,.1);transition:transform .28s var(--spring),box-shadow .25s var(--smooth)}
.recovery-badge:hover{transform:scale(1.03)}.recovery-badge:active{transform:scale(.96)}.recovery-badge .icon{width:16px;height:16px;color:var(--lime-dark)}
.recovery-popover{position:absolute;right:0;top:calc(100% + 9px);width:min(228px,calc(100vw - 56px));padding:18px 36px 18px 18px;border-radius:18px;background:#fff;color:var(--green);border:1px solid #d9e8d0;box-shadow:0 15px 32px rgba(13,47,30,.16)}
.recovery-popover strong{display:block;font-size:.78rem;line-height:1.35;margin-bottom:6px}.recovery-popover p{font-size:.74rem;line-height:1.55;color:var(--muted);margin:0}
.recovery-close{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:10px;background:#edf4e9;color:var(--green);cursor:pointer}.recovery-close .icon{width:16px;height:16px}

@media(max-width:1050px){.reviews-grid{columns:2}.client-card--wide{grid-column:auto}}
@media(max-width:820px){
  :root{--anchor-offset:94px}
  .site-nav{position:absolute;top:calc(100% + 8px);left:0;right:0;display:none;flex-direction:column;align-items:stretch;width:100%;padding:10px;border-radius:20px;background:#fff;box-shadow:0 18px 32px rgba(13,47,30,.13)}
  .site-nav.is-open{display:flex;animation:menu-appear .22s var(--smooth) both}
  .site-nav::before{border-radius:12px}.site-nav .nav-link{width:100%;padding:12px 16px;text-align:left}
  .about-content{min-height:auto}.about-content .inline-actions{grid-template-columns:1fr}.about-content .inline-actions .button{font-size:.88rem}
  .location-art{min-height:340px}
}
@keyframes menu-appear{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){
  .reviews-grid{columns:1}.service-card{min-height:0;padding:23px;gap:17px 15px}.service-card h3{font-size:1.12rem}
  .about-image img{transform:scale(1.06);transform-origin:left 28%}.about-image:hover img{transform:scale(1.08)}.about-content{padding:28px}
  .location-art{min-height:300px}.location-photo-caption{bottom:24px;left:24px;right:24px}
  .cta-emblem{width:84px;height:84px;border-radius:26px}.cta-emblem .icon{width:42px;height:42px}.about-cta-action{gap:0;margin-top:28px}.about-cta-action .button{margin-top:24px}
  .recovery-badge{min-height:38px;animation:recovery-pulse 2.8s var(--smooth) infinite}.recovery-popover{width:min(290px,calc(100vw - 56px));padding-right:42px}.recovery-close{width:34px;height:34px}
  .footer-grid>div:not(.footer-brand)>a{min-height:38px}
}
@keyframes recovery-pulse{0%,100%{box-shadow:0 5px 12px rgba(13,47,30,.1),0 0 0 0 rgba(101,169,6,.16)}55%{box-shadow:0 5px 12px rgba(13,47,30,.1),0 0 0 7px rgba(101,169,6,0)}}
@media(hover:none){.reactive-card:hover,.button:hover,.nav-link:hover,.menu-button:hover{transform:none}.reactive-card::after{display:none}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}
  .reactive-card:hover,.button:hover,.button:active,.menu-button:active,.cta-emblem,.about-cta-panel:hover .cta-emblem,.service-art,.service-card:hover .service-art,.location-art:hover .location-photo{transform:none!important}
}

/* Customer artwork is displayed at its native ratio, without crops or empty bands. */
.client-label{justify-content:flex-end;margin-bottom:8px}
.clients-grid:focus,.contact-grid:focus{outline:none}
.client-media,.client-card--wide .client-media{aspect-ratio:25/17;height:auto!important;background:#f2f6ed}
.client-media img,.client-card--wide .client-media img{object-fit:cover;object-position:center}
.client-media:has(img) .client-media-fallback{visibility:hidden}
.client-card:hover .client-media img{transform:scale(1.018)}

/* The supplied portraits are 4:5; each photo gets exactly that surface. */
.hero-grid,.about-grid,.about-hero-grid,.detail-grid{align-items:start}
.hero-visual,.about-image,.about-hero-photo,.detail-photo{aspect-ratio:4/5;min-height:0!important;height:auto!important;align-self:start;background:#fff}
.hero-visual>img,.about-image img,.about-hero-photo img,.detail-photo img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;transform:none!important}
.hero-visual:hover>img,.about-image:hover img,.about-hero-photo:hover img,.detail-photo:hover img{transform:none!important}
.hero-visual-caption{position:relative;left:auto;right:auto;bottom:auto;margin:0;border-radius:0 0 24px 24px}
.hero-visual{aspect-ratio:auto}
.hero-visual>img{aspect-ratio:4/5;height:auto}
.location-art{aspect-ratio:1;min-height:0;align-self:center}
.location-photo{object-fit:cover;object-position:center}

.expert-link{color:var(--lime-dark);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;border-radius:3px}
.expert-link:hover{color:var(--green)}
.expert-link:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
.term-card .expert-link{color:var(--green)}
.term-card{display:block}
.footer-social .brand-icon{display:block;width:18px;height:18px;flex:none;margin-right:6px;filter:invert(84%) sepia(36%) saturate(542%) hue-rotate(38deg) brightness(100%) contrast(92%)}
.footer-social>a:hover .brand-icon{filter:invert(91%) sepia(22%) saturate(850%) hue-rotate(36deg) brightness(108%)}

@media(max-width:820px){
  .hero-grid>.hero-visual,.about-hero-grid>.about-hero-photo{order:-1}
  .hero-visual,.about-image,.about-hero-photo,.detail-photo{width:100%}
}
@media(max-width:600px){
  .client-media,.client-card--wide .client-media{aspect-ratio:25/17;height:auto!important}
  .hero-copy{min-height:0}
  .hero-visual-caption{font-size:.74rem;padding:12px 15px}
  .location-art{aspect-ratio:1;min-height:0}
}
