:root{--green:#2a6b43;--green-dark:#1d4d31;--bg:#f5f7f2;--ink:#1f2a22;--muted:#5a6a5f}
*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;color:var(--ink);background:var(--bg)}
.container{width:min(1120px,92%);margin:auto}a{text-decoration:none;color:inherit}
header{background:#fff;border-bottom:1px solid #e1e7e0;position:sticky;top:0;z-index:9}.nav{display:flex;justify-content:space-between;align-items:center;padding:.9rem 0}
.logo{font-weight:800;color:var(--green-dark)}nav{display:flex;gap:1rem}nav a{font-weight:600;color:#425547}nav a.active,nav a:hover{color:var(--green)}.toggle{display:none;border:0;background:none;font-size:1.3rem}
.hero{padding:4.8rem 0;background:linear-gradient(rgba(234,245,235,.84),rgba(248,251,248,.78)),url('../images/hero.jpg') center/cover no-repeat}h1{font-size:clamp(2rem,4.5vw,3.1rem);margin:.3rem 0}.lead{max-width:660px;color:#3b4d41}
.btn{display:inline-block;background:var(--green);color:#fff;padding:.75rem 1rem;border-radius:10px;font-weight:700;margin-top:1rem;transition:transform .25s ease,box-shadow .25s ease}
.section{padding:3.2rem 0}.section h2{margin-top:0;font-size:2rem}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.card{background:#fff;border:1px solid #dce5dc;border-radius:12px;padding:1rem;transition:transform .25s ease,box-shadow .25s ease}.split{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.beforeafter{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.beforeafter div{background:#fff;border:1px dashed #c9d8c8;border-radius:10px;padding:1rem}
.form input,.form textarea,.form select{width:100%;padding:.7rem;border:1px solid #c8d6c7;border-radius:8px;margin:.3rem 0 .7rem;background:#fff}
.badge{display:inline-block;background:#e5f2e8;color:#245c39;font-weight:700;padding:.3rem .6rem;border-radius:999px;font-size:.78rem}
footer{padding:1.8rem 0;border-top:1px solid #d5dfd4;color:#526155;background:#fff}
.visual-strip{padding-top:0}.media-band{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem}.media-band img{width:100%;display:block;border-radius:12px;border:1px solid #d3e0d2}.media-photo{min-height:280px;object-fit:cover;box-shadow:0 14px 30px rgba(28,78,49,.16)}.media-gif{min-height:280px;object-fit:cover}
.card{position:relative;overflow:hidden}.card::after{content:"";position:absolute;top:-120%;left:-35%;width:55%;height:240%;background:linear-gradient(110deg,transparent,rgba(42,107,67,.14),transparent);transform:translateX(-20%) rotate(18deg);opacity:0;transition:transform .7s ease,opacity .7s ease;pointer-events:none}.card:hover::after{opacity:1;transform:translateX(220%) rotate(18deg)}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.hero h1,.hero .lead,.hero .btn{animation:fadeUp .8s ease both}.hero .lead{animation-delay:.1s}.hero .btn{animation-delay:.2s}
@keyframes sproutIn{from{opacity:0;transform:translateY(20px) scale(.97);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:translateY(0) scale(1);clip-path:inset(0 0 0 0)}}
.reveal-grow{opacity:0;transform:translateY(20px) scale(.97);clip-path:inset(0 0 100% 0);transition:opacity .75s ease,transform .75s ease,clip-path .75s ease;will-change:opacity,transform,clip-path}.reveal-grow.is-visible{opacity:1;transform:translateY(0) scale(1);clip-path:inset(0 0 0 0)}.reveal-delay-1{transition-delay:.06s}.reveal-delay-2{transition-delay:.12s}.reveal-delay-3{transition-delay:.18s}
.media-gif{animation:floatY 6s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}.reveal-grow{opacity:1;transform:none;clip-path:none}}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(29,77,49,.24)}.card:hover{transform:translateY(-4px);box-shadow:0 16px 28px rgba(20,56,35,.16)}
@media (max-width:780px){.toggle{display:block}nav{display:none;position:absolute;right:4%;top:58px;background:#fff;border:1px solid #d9e4d8;border-radius:10px;padding:.7rem;flex-direction:column}nav.open{display:flex}.split{grid-template-columns:1fr}}

/* Premium differentiation: organic depth + airy service feel */
body{background:radial-gradient(circle at 10% -20%,#ffffff,var(--bg) 40%)}
.hero{position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset:-10% -5%;background:radial-gradient(circle at 80% 20%,rgba(106,168,122,.18),transparent 38%),radial-gradient(circle at 16% 78%,rgba(42,107,67,.12),transparent 40%);pointer-events:none;animation:canopyShift 13s ease-in-out infinite alternate}
.hero > .container{position:relative;z-index:1}
.section:nth-of-type(odd){padding-block:3.6rem}
.section:nth-of-type(even){padding-block:2.7rem}
.card.is-hovered{transform:translateY(-6px) rotate(-.3deg);box-shadow:0 18px 30px rgba(20,56,35,.18)}
.media-band img.parallax{transition:transform .3s ease}
@keyframes canopyShift{0%{transform:translate3d(-1%,0,0)}100%{transform:translate3d(1%,1.2%,0)}}
@media (prefers-reduced-motion: reduce){.hero::after{display:none}.card.is-hovered{transform:none;box-shadow:none}.media-band img.parallax{transition:none}}

/* Feature add-ons: seasonal hero line + rotating project focus */
.badge{transition:opacity .3s ease,transform .3s ease}
.badge.is-swapping{opacity:.35;transform:translateY(-2px)}
.beforeafter div.focus{border-color:#6aa87a;border-style:solid;box-shadow:0 0 0 1px rgba(106,168,122,.35),0 14px 24px rgba(20,56,35,.16);transform:translateY(-2px)}
.beforeafter div{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
@media (prefers-reduced-motion: reduce){.badge{transition:none}}