*{margin:0;padding:0;box-sizing:border-box}
:root{
  --canopy:#3A5A44;
  --canopy-light:#5B7A5E;
  --dapple:#F7F5EE;
  --panel:#FCFBF4;
  --taupe:#8A7A62;
  --silt:#6E93A6;
  --humus:#2E3230;
  --humus-soft:#3B403C;
  --hairline:#E1DFCF;
  --warm-grey:#B9B4A8;
}
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  font-size:16px;
  font-family:georgia,'Times New Roman',serif;
  background-color:var(--dapple);
  color:var(--humus);
  line-height:1.7;
  overflow-x:hidden;
}
a{color:var(--canopy);text-decoration:none}
a:hover{color:var(--canopy-light)}
img{max-width:100%;display:block}
.home-page{overflow-x:hidden}
.fade-up{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.fade-up.visible{opacity:1;transform:none}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}

/* ============ AERIAL-ROOT NAV ============ */
.aerial-root-nav{position:sticky;top:0;z-index:50;background-color:var(--panel)}
.canopy-band{position:relative;height:22px;background-color:var(--canopy)}
.leaf-cluster{position:absolute;bottom:0;height:20px;width:64px}
.leaf-cluster .dome{position:absolute;bottom:0;width:40px;height:20px;border-radius:60% 60% 0 0}
.leaf-cluster .dome.d1{left:0;background-color:var(--canopy)}
.leaf-cluster .dome.d2{left:20px;background-color:var(--canopy-light)}
.leaf-cluster.lc1{left:8%}
.leaf-cluster.lc2{left:44%}
.leaf-cluster.lc3{right:6%}
.aerial-root{position:absolute;top:16px;width:2px;background-color:var(--taupe)}
.aerial-root::after{content:'';position:absolute;bottom:0;left:-2px;width:6px;height:6px;border-radius:50%;background-color:var(--taupe)}
.ar1{left:20%;height:46px}
.ar2{left:38%;height:30px}
.ar3{right:32%;height:40px}
.ar4{right:16%;height:26px}
.nav-row{display:flex;align-items:center;justify-content:space-between;padding:14px 24px}
.brand{display:flex;align-items:center;gap:10px}
.marker-glyph{width:20px}
.brand-text{font-family:arial,sans-serif;font-size:21px;letter-spacing:2px;color:var(--canopy);text-transform:uppercase;font-weight:700}
.nav-links{display:flex;align-items:center;gap:0;font-family:arial,sans-serif;font-size:12px;letter-spacing:1px;text-transform:uppercase;font-weight:600}
.nav-links a{padding:6px 10px;color:var(--humus)}
.nav-links a:hover{color:var(--canopy)}
.nav-dot{width:4px;height:4px;border-radius:50%;background-color:var(--silt)}
.menu-toggle{display:none;background:none;border:1px solid var(--hairline);color:var(--humus);font-size:14px;padding:8px 12px;border-radius:4px;cursor:pointer;font-family:arial,sans-serif}

/* ============ HERO ============ */
.site-section-hero{background-color:var(--dapple);padding:70px 0 80px}
.hero-grid{display:grid;grid-template-columns:58fr 42fr;gap:48px;align-items:center}
.hero-copy h1{font-size:46px;line-height:1.15;color:var(--humus);margin:18px 0 20px;font-weight:700}
.hero-copy h1 .accent{color:var(--canopy)}
.hero-sub{font-size:17px;color:var(--humus-soft);max-width:34em;margin-bottom:30px}
.eyebrow{display:inline-block;background-color:var(--canopy);color:var(--panel);font-family:arial,sans-serif;font-size:11px;letter-spacing:2px;text-transform:uppercase;padding:6px 12px;border-radius:3px;font-weight:600}
.cta-row{display:flex;gap:14px;flex-wrap:wrap}
.btn{display:inline-block;padding:13px 24px;border-radius:4px;font-family:arial,sans-serif;font-weight:700;font-size:14px}
.btn-primary{background-color:var(--canopy);color:var(--panel)}
.btn-primary:hover{background-color:var(--canopy-light);color:var(--panel)}
.btn-outline{border:2px solid var(--silt);color:var(--humus)}
.btn-outline:hover{background-color:var(--silt);color:var(--panel)}

.section-panel{background-color:var(--panel);border:1px solid var(--hairline);border-radius:10px;padding:24px;position:relative;overflow:hidden}
.panel-title{font-family:arial,sans-serif;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--silt);font-weight:600;margin-bottom:16px}
.cross-section{position:relative;height:340px;border-radius:8px;overflow:hidden;border:1px solid var(--hairline)}
.strata{position:absolute;inset:0;display:flex;flex-direction:column}
.stratum{width:100%}
.st-top{height:70px;background-color:#5A4632}
.st-clay{height:90px;background-color:var(--taupe)}
.st-gravel{height:80px;background-color:#CDCDBD}
.st-bed{flex:1;background-color:#A9AEB6}
.soil-tree{position:absolute;top:24px;left:24%;width:10px;height:50px;background-color:var(--taupe);border-radius:4px}
.soil-tree::before{content:'';position:absolute;top:-26px;left:-26px;width:64px;height:30px;border-radius:60% 60% 0 0;background-color:var(--canopy-light)}
.root-line{position:absolute;width:3px;background-color:var(--taupe);border-radius:2px}
.rl1{left:26%;top:72px;height:60px;transform:rotate(12deg)}
.rl1::after{content:'';position:absolute;left:26%;bottom:0;height:40px;width:2px;background-color:var(--taupe);transform:rotate(25deg)}
.rl2{left:24%;top:120px;height:70px;transform:rotate(-8deg)}
.water-table{position:absolute;left:0;top:196px;width:100%;border-top:2px dashed var(--silt)}
.water-table::after{content:'';position:absolute;left:76%;top:-6px;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:10px solid var(--silt)}
.water-label{position:absolute;left:8%;top:202px;font-family:arial,sans-serif;font-size:10px;color:var(--silt);letter-spacing:1px}
.contour-swale{position:absolute;top:40px;right:10%;border-top:2px dashed var(--silt);width:120px}
.contour-swale::before{content:'';position:absolute;top:-8px;left:40%;border-left:7px solid transparent;border-right:7px solid transparent;border-top:9px solid var(--canopy)}
.section-flag{position:absolute;bottom:6px;left:6px;width:3px;height:40px;background-color:var(--taupe)}
.section-flag::before{content:'';position:absolute;top:-10px;left:3px;border-style:solid;border-width:0 22px 14px 0;border-color:var(--canopy) transparent transparent transparent}
.flag-label{position:absolute;bottom:44px;left:4px;font-family:arial,sans-serif;font-size:10px;color:var(--humus)}

/* ============ SWALE-CONTOUR ROWS ============ */
.swale-contour-rows{background-color:var(--dapple);padding:80px 0}
.sec-head{max-width:760px;margin-bottom:44px}
.sec-kicker{font-family:arial,sans-serif;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--silt);font-weight:600}
.sec-title{font-size:34px;color:var(--humus);margin:10px 0 14px;font-weight:700}
.sec-title .acc{color:var(--canopy)}
.sec-lede{color:var(--humus-soft);font-size:17px}
.service-row{display:grid;grid-template-columns:58px 1fr 120px;gap:26px;align-items:center;background-color:var(--panel);border:1px solid var(--hairline);border-radius:10px;padding:26px 28px;margin-bottom:12px}
.contour-spool{width:58px;height:88px;border-radius:6px;background-color:var(--dapple);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;border:1px solid var(--hairline);position:relative}
.spool-line{width:36px;height:12px;border:2px solid var(--silt);border-top:none;border-radius:0 0 14px 14px}
.spool-line.s2{width:44px}
.spool-line.s3{width:30px}
.spool-arrow{position:absolute;left:6px;top:40px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid var(--canopy)}
.service-body h3{font-size:22px;color:var(--canopy);margin-bottom:10px;font-weight:700}
.service-body p{color:var(--humus-soft);font-size:15.5px}
.station-col{text-align:right;display:flex;flex-direction:column;align-items:center;gap:12px}
.station-label{font-family:consolas,monospace;font-size:12px;color:var(--panel);background-color:var(--taupe);padding:5px 12px;border-radius:4px;letter-spacing:1px}
.grass-tuft{display:flex;gap:4px;margin-top:2px}
.tu{width:4px;height:22px;background-color:var(--canopy);border-radius:2px;transform-origin:bottom}
.tu:nth-child(1){transform:rotate(-12deg)}
.tu:nth-child(2){transform:rotate(0deg);background-color:var(--canopy-light)}
.tu:nth-child(3){transform:rotate(12deg)}

/* ============ METRIC BAND ============ */
.metric-band{background-color:var(--canopy);padding:64px 0}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);}
.metric-item{text-align:center;padding:0 20px;position:relative}
.metric-item + .metric-item::before{content:'';position:absolute;left:0;top:12%;bottom:12%;width:1px;background-color:var(--canopy-light)}
.metric-num{font-family:arial,sans-serif;font-size:46px;font-weight:800;color:var(--panel);line-height:1}
.metric-label{margin-top:10px;font-family:arial,sans-serif;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--silt);font-weight:600}

/* ============ STATEMENT BAND ============ */
.statement-band{background-color:var(--panel);padding:80px 0;border-top:1px solid var(--hairline)}
.statement-block{max-width:900px;margin:0 auto;padding-left:34px;border-left:4px solid var(--silt)}
.statement-block p{font-size:26px;line-height:1.5;color:var(--humus);font-weight:400;margin-bottom:20px}
.statement-attr{font-family:arial,sans-serif;font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--taupe);font-weight:600}

/* ============ CTA BAND ============ */
.cta-band{background-color:var(--dapple);padding:80px 0;text-align:center}
.cta-inner h2{font-size:36px;color:var(--canopy);margin-bottom:16px;font-weight:700}
.cta-inner p{color:var(--humus-soft);font-size:17px;max-width:42em;margin:0 auto 30px}
.cta-inner .btn-primary{font-size:16px;padding:16px 34px}

/* ============ WATER-TABLE FOOTER ============ */
.water-table-footer{background-color:var(--humus);color:var(--warm-grey);margin-top:0}
.strata-strip{height:16px;display:flex;border-bottom:1px solid rgba(255,255,255,.05)}
.strata-strip span{flex:1;height:100%}
.footer-body{display:grid;grid-template-columns:1.6fr 1fr 1.6fr;gap:40px;padding:54px 0 40px;position:relative;z-index:1}
.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.banyan-glyph{width:26px;height:40px}
.footer-brand-text{font-family:arial,sans-serif;font-size:20px;letter-spacing:2px;color:var(--panel);font-weight:700;text-transform:uppercase}
.footer-desc{color:var(--warm-grey);font-size:14px;max-width:26em;line-height:1.7}
.footer-zone-title{font-family:arial,sans-serif;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--silt);font-weight:600;margin-bottom:16px}
.footer-links-col{display:flex;gap:40px}
.link-group h4{font-family:arial,sans-serif;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--silt);font-weight:600;margin-bottom:12px}
.link-group a{display:block;color:var(--panel);font-size:14px;padding:4px 0}
.link-group a:hover{color:var(--canopy-light)}
.contact-stack{font-size:14px;line-height:1.9;color:var(--warm-grey)}
.contact-stack span{color:var(--panel)}
.footer-legal{border-top:1px solid var(--taupe);padding:20px 24px;text-align:center;font-size:13px;color:var(--warm-grey);position:relative;z-index:1}
.footer-legal a{color:var(--panel)}

/* ============ CONTACT FORM ============ */
.contact-form{margin-top:8px}
.contact-form label{display:block;font-family:arial,sans-serif;font-size:12px;letter-spacing:1px;text-transform:uppercase;font-weight:600;color:#8A7A62;margin:14px 0 6px}
.contact-form label:first-of-type{margin-top:0}
.contact-form input,.contact-form textarea{width:100%;padding:11px 13px;border:1px solid #E1DFCF;border-radius:5px;background-color:#F7F5EE;color:#2E3230;font-family:georgia,serif;font-size:16px}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:#3A5A44}
.submit-btn{margin-top:18px;border:none;cursor:pointer;width:100%;text-align:center}
.form-status{font-size:14px;color:#3A5A44;margin-top:12px;font-weight:600}

/* ============ FAQ ============ */
.faq{max-width:820px;margin:0 auto}
.faq-item{background-color:#FCFBF4;border:1px solid #E1DFCF;border-radius:8px;margin-bottom:12px;overflow:hidden}
.faq-q{width:100%;text-align:left;background:none;border:none;padding:18px 22px;font-family:arial,sans-serif;font-size:16px;font-weight:700;color:#2E3230;cursor:pointer;border-left:4px solid #6E93A6}
.faq-q:hover{color:#3A5A44}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.faq-a p{padding:0 22px 20px;color:#3B403C;font-size:15.5px}
.faq-item.open .faq-a{max-height:400px}

/* ============ RESPONSIVE ============ */
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:40px}
  .hero-copy h1{font-size:36px}
  .metric-grid{grid-template-columns:1fr 1fr;gap:30px 0}
  .metric-item + .metric-item::before{display:none}
  .footer-body{grid-template-columns:1fr;gap:34px}
  .service-row{grid-template-columns:58px 1fr;grid-template-areas:"spool body""spool station"}
  .station-col{grid-area:station;flex-direction:row;justify-content:flex-start;align-items:center}
  .contour-spool{grid-area:spool}
}
@media (max-width:640px){
  .nav-links{display:none;flex-direction:column;align-items:flex-start;width:100%;padding:10px 0;border-top:1px solid var(--hairline)}
  .nav-links.open{display:flex}
  .nav-links a{padding:10px 4px}
  .nav-dot{display:none}
  .menu-toggle{display:block}
  .nav-row{flex-wrap:wrap;padding:12px 16px}
  .metric-grid{grid-template-columns:1fr 1fr}
  .hero-copy h1{font-size:30px}
  .section-panel{height:auto}
  .service-row{grid-template-columns:1fr;grid-template-areas:"spool""body""station";gap:16px}
}
