:root { --green:#143923; --green-2:#255836; --lime:#90ac4d; --cream:#f6f1e8; --paper:#fffdf9; --ink:#173424; --gold:#bd842c; --line:#d8decf; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:"DM Sans",Arial,sans-serif; font-size:16px; line-height:1.5; }
a { color:inherit; text-decoration:none; }
.skip-link { left:12px; position:absolute; top:-80px; z-index:10; padding:9px 14px; color:#fff; background:var(--green); border-radius:4px; }.skip-link:focus { top:12px; }
.site-header { height:86px; max-width:1280px; margin:auto; padding:12px 5.5vw; display:flex; align-items:center; justify-content:space-between; }
.brand { width:62px; height:62px; display:block; overflow:hidden; border-radius:50%; }.brand img { width:100%; height:100%; object-fit:cover; }
.site-nav { display:flex; align-items:center; gap:30px; font-size:14px; font-weight:600; }.site-nav > a:not(.nav-call) { padding:8px 0; position:relative; }.site-nav > a:not(.nav-call)::after { position:absolute; content:""; height:1px; width:0; left:0; bottom:3px; background:var(--green); transition:width .2s; }.site-nav > a:hover::after { width:100%; }.nav-call { background:var(--green); color:#fff; border-radius:100px; padding:12px 18px; }
.menu-toggle { display:none; border:0; background:transparent; }.menu-toggle span { display:block; width:25px; height:2px; margin:5px; background:var(--green); }
.hero { min-height:620px; max-width:1440px; margin:0 auto; display:grid; grid-template-columns:1.08fr .92fr; overflow:hidden; background:var(--paper); }
.hero-copy { padding:105px 5vw 64px 10vw; }.eyebrow { margin:0 0 17px; text-transform:uppercase; font-size:11px; font-weight:700; letter-spacing:.18em; color:#62803d; }.eyebrow span { display:inline-block; width:25px; height:1px; vertical-align:middle; margin:0 9px 0 0; background:currentColor; }.eyebrow.light { color:#bed38c; }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { font-family:"Playfair Display",Georgia,serif; line-height:1.06; }.hero h1 { font-size:clamp(52px,5.6vw,82px); letter-spacing:-.055em; margin-bottom:24px; }.hero h1 em,h2 em { color:#638434; font-style:italic; }.hero-text { max-width:475px; margin-bottom:30px; color:#4d5c50; font-size:18px; }.hero-actions { display:flex; gap:27px; align-items:center; }.button { border:0; display:inline-flex; align-items:center; justify-content:center; gap:18px; cursor:pointer; padding:14px 19px; border-radius:2px; font:700 13px "DM Sans",sans-serif; text-transform:uppercase; letter-spacing:.08em; transition:transform .2s, background .2s; }.button:hover { transform:translateY(-2px); }.button-primary { background:var(--green); color:#fff; }.button-primary span,.large-phone span { font-size:19px; }.text-link { font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; border-bottom:1px solid var(--green); padding-bottom:3px; }.text-link span { padding-left:8px; }
.trust-row { display:flex; gap:12px; align-items:center; margin-top:52px; color:#536557; font-size:13px; }.trust-row p { margin:0; }.trust-row strong { color:var(--ink); }.trust-mark { width:32px; height:32px; display:grid; place-items:center; flex:none; color:#fff; font-weight:bold; background:#83a345; border-radius:50%; }
.hero-art { min-height:620px; position:relative; overflow:hidden; isolation:isolate; background:linear-gradient(150deg,#d5e3b3 0%,#bdd796 48%,#95bc68 100%); }.sun { position:absolute; top:84px; right:17%; width:110px; height:110px; border-radius:50%; background:#f5efcf; opacity:.8; }.hill { position:absolute; bottom:-78px; border-radius:50% 50% 0 0; }.hill-back { width:120%; height:61%; left:-11%; background:#4d7b43; transform:rotate(-4deg); }.hill-front { width:130%; height:44%; left:-12%; background:#2e6038; transform:rotate(4deg); }.house { position:absolute; right:22%; bottom:173px; width:178px; height:144px; background:#f4f0e4; box-shadow:14px 17px 0 rgba(17,51,31,.08); }.house::before { content:""; position:absolute; top:-71px; left:-13px; border-left:102px solid transparent; border-right:102px solid transparent; border-bottom:74px solid #254e32; }.house i { position:absolute; width:35px; height:63px; bottom:0; left:70px; background:#375d42; }.house b { position:absolute; width:35px; height:37px; top:24px; left:22px; border:5px solid #a4bf6e; }.house span { position:absolute; width:35px; height:37px; top:24px; right:22px; border:5px solid #a4bf6e; }.plant { position:absolute; bottom:123px; width:90px; height:120px; transform-origin:bottom center; }.plant-one { left:11%; }.plant-two { right:6%; transform:scale(.8); }.plant i { display:block; position:absolute; bottom:0; left:43px; width:13px; height:118px; background:#153d25; border-radius:100% 0; transform-origin:bottom; }.plant i:nth-child(1) { transform:rotate(-55deg) scaleY(.8); }.plant i:nth-child(2) { transform:rotate(-23deg); }.plant i:nth-child(3) { transform:rotate(20deg) scaleY(.85); }.plant i:nth-child(4) { transform:rotate(52deg) scaleY(.65); }.hero-badge { position:absolute; top:55px; left:40px; width:119px; height:119px; border:1px solid rgba(20,57,35,.75); color:var(--green); border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; transform:rotate(-8deg); }.hero-badge span { font:600 45px "Playfair Display",serif; line-height:.8; }.hero-badge small { margin-top:12px; font-size:8px; font-weight:bold; letter-spacing:.18em; }.art-caption { position:absolute; right:7%; top:52px; margin:0; font:600 19px/1.2 "Playfair Display",serif; color:#254d31; }.art-caption em { color:#5c7e35; }
.section { padding:110px max(5.5vw,30px); }.services { max-width:1280px; margin:auto; }.section-heading { max-width:655px; margin-bottom:46px; }.section-heading h2,.promise h2,.contact h2 { font-size:clamp(36px,4vw,57px); letter-spacing:-.045em; margin-bottom:17px; }.section-heading > p:last-child { max-width:555px; color:#5b695d; }.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }.service-card { min-height:357px; padding:31px; background:#ecefe4; position:relative; overflow:hidden; }.service-card:nth-child(3) { background:#e4ebd4; }.feature-card { color:#fff; background:var(--green); }.card-icon { width:43px; height:43px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font-size:19px; }.card-number { position:absolute; top:28px; right:31px; margin:0; font-family:"Playfair Display",serif; font-size:22px; opacity:.55; }.service-card h3 { margin:57px 0 11px; font-size:25px; }.service-card > p:not(.card-number) { font-size:14px; min-height:64px; color:#516153; }.feature-card > p:not(.card-number) { color:#d9e5d8; }.service-card ul { list-style:none; margin:23px 0 0; padding:18px 0 0; border-top:1px solid rgba(21,57,35,.18); font-size:12px; line-height:1.9; }.feature-card ul { border-color:rgba(255,255,255,.25); }.service-card li::before { content:"•"; padding-right:7px; color:#7e9d48; }
.promise { display:grid; grid-template-columns:.8fr 1.2fr; gap:9vw; align-items:center; background:var(--green); color:#f7f5ec; overflow:hidden; }.promise-copy { max-width:630px; }.promise-copy h2 { color:#fff; }.promise-copy h2 em { color:#b6cf78; }.promise-copy > p:not(.eyebrow) { max-width:570px; color:#d1ddca; font-size:17px; }.promise-visual { width:min(320px,100%); aspect-ratio:1; position:relative; margin:auto; border:1px solid rgba(230,239,213,.32); border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; overflow:hidden; }.promise-visual span { font:600 88px/1 "Playfair Display",serif; position:relative; z-index:2; }.promise-visual small { position:relative; z-index:2; margin-top:10px; font-size:9px; font-weight:bold; letter-spacing:.2em; }.circle-line { position:absolute; width:80%; aspect-ratio:1; border:1px solid rgba(230,239,213,.35); border-radius:50%; }.leaf { position:absolute; width:50px; height:160px; background:#719946; border-radius:100% 0; transform-origin:bottom; bottom:-10px; left:48%; }.leaf-a { transform:rotate(-49deg) scale(.7); }.leaf-b { transform:rotate(-13deg); }.leaf-c { transform:rotate(36deg) scale(.8); }.promise-points { display:grid; grid-template-columns:repeat(3,1fr); gap:11px; margin-top:37px; }.promise-points div { padding-right:15px; border-right:1px solid rgba(255,255,255,.22); }.promise-points div:last-child { border:0; }.promise-points strong { display:block; margin-bottom:5px; color:#b8d280; font:600 21px "Playfair Display",serif; }.promise-points span { font-size:13px; color:#e4eadf; }
.how-it-works { max-width:1280px; margin:auto; }.section-heading.compact { margin-bottom:38px; }.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:34px; }.steps > div { position:relative; padding-top:24px; border-top:1px solid var(--line); }.steps b { font:600 17px "Playfair Display",serif; color:#769443; }.steps h3 { margin:17px 0 8px; font-size:25px; }.steps p { max-width:260px; margin:0; font-size:14px; color:#5a675b; }
.contact { display:grid; grid-template-columns:1fr 1fr; gap:10vw; align-items:center; background:#1e4a2c; color:#fff; }.contact h2 { margin-bottom:15px; }.contact h2 em { color:#b7cf7b; }.contact-copy > p:not(.eyebrow):not(.call-note) { color:#d6e2d3; font-size:17px; }.large-phone { display:inline-flex; align-items:center; gap:17px; margin-top:20px; font:600 clamp(28px,3.8vw,48px) "Playfair Display",serif; letter-spacing:-.04em; border-bottom:1px solid #b9d283; }.call-note { margin:10px 0 0; color:#b9d283; font-weight:bold; letter-spacing:.12em; font-size:10px; }.contact-form { display:grid; gap:17px; padding:33px; background:#f7f5ed; color:var(--ink); }.contact-form label { display:grid; gap:6px; font-size:11px; font-weight:bold; text-transform:uppercase; letter-spacing:.08em; }.contact-form input,.contact-form textarea { border:0; border-bottom:1px solid #b5c5ab; background:transparent; color:var(--ink); padding:8px 0; font:15px "DM Sans",sans-serif; resize:vertical; outline:none; }.contact-form input:focus,.contact-form textarea:focus { border-color:var(--green); }.contact-form .button { justify-self:start; margin-top:6px; }.form-note { margin:0; font-size:12px; color:#586757; }.form-note a { text-decoration:underline; }
.site-footer { min-height:125px; padding:25px 5.5vw; background:#102f1e; color:#dfe8d7; display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:12px; }.site-footer img { width:67px; height:67px; border-radius:50%; object-fit:cover; }.site-footer p { margin:0; }.site-footer a { color:#c2d888; font-weight:700; }
@media (max-width:760px) { .site-header { height:73px; padding:8px 22px; }.brand { width:74px; height:54px; }.menu-toggle { display:block; z-index:3; }.site-nav { display:none; position:absolute; z-index:2; inset:72px 0 auto; padding:22px; gap:18px; flex-direction:column; align-items:flex-start; background:var(--cream); box-shadow:0 12px 18px rgba(0,0,0,.09); }.site-nav.open { display:flex; }.hero { display:block; }.hero-copy { padding:68px 28px 58px; }.hero h1 { font-size:54px; }.hero-text { font-size:16px; }.hero-art { min-height:400px; }.art-caption { top:35px; }.hero-badge { top:30px; left:25px; transform:scale(.8) rotate(-8deg); transform-origin:top left; }.sun { top:120px; right:13%; }.house { right:23%; bottom:112px; transform:scale(.75); transform-origin:bottom right; }.plant { bottom:72px; }.trust-row { margin-top:38px; }.section { padding:76px 28px; }.service-grid,.steps { grid-template-columns:1fr; gap:14px; }.service-card { min-height:0; }.service-card h3 { margin-top:36px; }.service-card > p:not(.card-number) { min-height:0; }.promise,.contact { grid-template-columns:1fr; gap:46px; }.promise-visual { margin:0; width:245px; }.promise-points { gap:12px; }.promise-points span { font-size:11px; }.contact-form { padding:25px; }.site-footer { flex-wrap:wrap; justify-content:flex-start; }.site-footer p { flex-basis:calc(100% - 90px); } }
@media (max-width:400px) { .hero-actions { align-items:flex-start; flex-direction:column; gap:20px; }.promise-points { grid-template-columns:1fr; }.promise-points div { border-right:0; border-bottom:1px solid rgba(255,255,255,.22); padding-bottom:11px; }.site-footer p { flex-basis:100%; } }
