:root{
  --green-dark:#0e3d1c;
  --green:#1f7a2e;
  --green-mid:#2c9a3f;
  --green-soft:#e9f5ea;
  --gold:#f2b632;
  --gold-dark:#d99e1c;
  --ink:#16241a;
  --ink-soft:#5b6b60;
  --bg:#ffffff;
  --bg-alt:#f6f9f4;
  --border:#e4ebe2;
  --shadow: 0 10px 30px rgba(14,61,28,0.08);
  --maxw:1180px;
  --radius:16px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit;}
ul{list-style:none;}
h1,h2,h3,h4{font-family:'Poppins', sans-serif; font-weight:700; line-height:1.15; color:var(--ink);}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:3px solid var(--green); outline-offset:2px;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}

/* ---------- nav ---------- */
header{position:sticky; top:0; z-index:50; background:rgba(255,255,255,0.96); backdrop-filter:blur(6px); border-bottom:1px solid var(--border);}
.navbar{display:flex; align-items:center; justify-content:space-between; padding:14px 24px; max-width:var(--maxw); margin:0 auto;}
.logo{display:flex; align-items:center; gap:10px; text-decoration:none;}
.logo img{width:44px; height:44px; object-fit:contain; flex:none;}
.logo .word{font-family:'Poppins'; font-weight:800; font-size:20px; color:var(--green-dark);}
.logo .word b{color:var(--gold-dark);}
nav.links{display:flex; align-items:center; gap:28px;}
nav.links > a{font-size:14.5px; font-weight:600; text-decoration:none; color:var(--ink-soft); transition:color 0.15s ease;}
nav.links > a:hover, nav.links > a.active{color:var(--green);}

/* dropdown */
.nav-dropdown{position:relative;}
.nav-dropdown > .drop-trigger{
  font-size:14.5px; font-weight:600; color:var(--ink-soft); background:none; border:none; cursor:pointer;
  display:flex; align-items:center; gap:5px; font-family:'Inter'; padding:0;
}
.nav-dropdown > .drop-trigger:hover, .nav-dropdown.active > .drop-trigger{color:var(--green);}
.nav-dropdown .chev{width:11px; height:11px; transition:transform 0.15s ease;}
.nav-dropdown:hover .chev, .nav-dropdown:focus-within .chev{transform:rotate(180deg);}
.dropdown-menu{
  position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%);
  background:#fff; border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow);
  padding:10px; min-width:210px;
  opacity:0; visibility:hidden; transform:translateX(-50%) translateY(6px);
  transition:opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
  z-index:60;
}
.nav-dropdown:hover .dropdown-menu, .nav-dropdown:focus-within .dropdown-menu{
  opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);
}
.dropdown-menu a{
  display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:9px;
  font-size:14px; font-weight:600; color:var(--ink); text-decoration:none;
}
.dropdown-menu a:hover{background:var(--green-soft); color:var(--green-dark);}
.dropdown-menu a svg{width:17px; height:17px; color:var(--green); flex:none;}

.navbar .cta-group{display:flex; align-items:center; gap:16px;}
.phone-link{font-size:14.5px; font-weight:600; color:var(--green-dark); text-decoration:none; display:flex; align-items:center; gap:6px;}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:'Inter'; font-size:14.5px; font-weight:600;
  padding:13px 24px; border-radius:999px; text-decoration:none; cursor:pointer; border:none;
  transition:transform 0.12s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.btn-primary{background:var(--green); color:#fff; box-shadow:0 8px 20px rgba(31,122,46,0.28);}
.btn-primary:hover{transform:translateY(-2px); background:var(--green-dark);}
.btn-gold{background:var(--gold); color:#241703; box-shadow:0 8px 20px rgba(242,182,50,0.35);}
.btn-gold:hover{transform:translateY(-2px); background:var(--gold-dark);}
.btn-ghost{background:#fff; color:var(--green-dark); border:1.5px solid var(--border);}
.btn-ghost:hover{border-color:var(--green); color:var(--green);}
.menu-toggle{display:none; background:none; border:none; color:var(--green-dark); font-size:22px; cursor:pointer;}

/* ---------- hero ---------- */
.hero{position:relative; padding:64px 0 60px; background:linear-gradient(180deg, var(--bg-alt), #fff 70%);}
.hero-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:50px; align-items:center;}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px; background:var(--green-soft); color:var(--green-dark);
  font-size:13px; font-weight:700; padding:7px 14px; border-radius:999px; margin-bottom:18px;
}
.hero h1{font-size:clamp(34px, 4.6vw, 54px); letter-spacing:-0.01em;}
.hero h1 .accent{color:var(--green);}
.hero p.lede{margin-top:18px; font-size:17px; max-width:48ch; color:var(--ink-soft);}
.hero-ctas{display:flex; gap:14px; margin-top:28px; flex-wrap:wrap;}
.trust-strip{display:flex; gap:26px; margin-top:32px; flex-wrap:wrap;}
.trust-strip .item{display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--ink-soft);}
.trust-strip svg{width:18px; height:18px; color:var(--green); flex:none;}

.hero-visual{display:flex; align-items:center; justify-content:center; gap:18px;}
.badge-card{background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:22px; box-shadow:var(--shadow);}
.badge-card img{width:180px; height:auto;}

/* ---------- page banner (subpages) ---------- */
.page-banner{
  background:linear-gradient(180deg, var(--bg-alt), #fff 85%);
  padding:52px 0 44px;
}
.page-banner .crumb{font-size:13px; font-weight:600; color:var(--ink-soft); margin-bottom:14px;}
.page-banner .crumb a{color:var(--green); text-decoration:none;}
.page-banner-grid{display:flex; align-items:center; gap:28px; flex-wrap:wrap;}
.page-banner-grid img{width:88px; height:88px; object-fit:contain; background:#fff; border:1px solid var(--border); border-radius:16px; padding:12px; box-shadow:var(--shadow); flex:none;}
.page-banner h1{font-size:clamp(30px,4vw,44px);}
.page-banner p{color:var(--ink-soft); font-size:15.5px; margin-top:8px; max-width:60ch;}

/* ---------- info bar ---------- */
.info-bar{background:var(--green-dark); color:#fff;}
.info-bar .wrap{display:flex; flex-wrap:wrap; gap:22px; justify-content:space-between; padding:16px 24px; font-size:13.5px; font-weight:600;}
.info-bar .item{display:flex; align-items:center; gap:8px;}
.info-bar svg{width:16px; height:16px; color:var(--gold); flex:none;}

/* ---------- sections ---------- */
.section{padding:76px 0;}
.section-alt{background:var(--bg-alt);}
.section-head{text-align:center; max-width:640px; margin:0 auto 46px;}
.section-head h2{font-size:clamp(28px, 3.6vw, 40px);}
.section-head p{color:var(--ink-soft); font-size:15.5px; margin-top:12px;}
.kicker{
  display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--green); background:var(--green-soft); padding:6px 14px; border-radius:999px; margin-bottom:14px;
}

/* ---------- three pillars (service cards) ---------- */
.pillars-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.pillar-card{
  background:#fff; border:1px solid var(--border); border-radius:var(--radius);
  padding:32px 26px; box-shadow:var(--shadow);
  transition:transform 0.18s ease, box-shadow 0.18s ease;
}
.pillar-card:hover{transform:translateY(-6px); box-shadow:0 20px 40px rgba(14,61,28,0.14);}
.pillar-card .icon-wrap{
  width:56px; height:56px; display:flex; align-items:center; justify-content:center;
  background:var(--green-soft); border-radius:14px; margin-bottom:20px;
}
.pillar-card .icon-wrap svg{width:28px; height:28px; color:var(--green);}
.pillar-card h3{font-size:21px; margin-bottom:10px;}
.pillar-card p{color:var(--ink-soft); font-size:14.5px; margin-bottom:18px;}
.pillar-card a.jump{font-size:13.5px; font-weight:700; color:var(--green); text-decoration:none; display:inline-flex; align-items:center; gap:6px;}
.pillar-card a.jump:hover{color:var(--green-dark);}

/* ---------- service directory ---------- */
.directory{
  background:#fff; border:1px solid var(--border); border-radius:20px;
  padding:38px 36px; margin-bottom:26px; box-shadow:var(--shadow);
}
.directory-head{display:flex; align-items:center; gap:22px; margin-bottom:28px; flex-wrap:wrap;}
.directory-head img{width:78px; height:78px; object-fit:contain; flex:none;}
.directory-head .txt h3{font-size:24px; margin-bottom:6px;}
.directory-head .txt p{color:var(--ink-soft); font-size:14.5px; max-width:58ch;}
.checklist{display:grid; grid-template-columns:repeat(2, 1fr); gap:8px 28px;}
.checklist li{
  display:flex; align-items:flex-start; gap:10px; font-size:14.5px; color:var(--ink-soft);
  padding:9px 0; border-bottom:1px solid var(--border);
}
.checklist li svg{width:16px; height:16px; color:var(--green); flex:none; margin-top:3px;}

/* ---------- cross-links ---------- */
.crosslinks{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
.crosslink-card{
  display:flex; align-items:center; gap:16px; background:#fff; border:1px solid var(--border);
  border-radius:14px; padding:20px 22px; text-decoration:none; box-shadow:var(--shadow);
  transition:transform 0.15s ease;
}
.crosslink-card:hover{transform:translateY(-4px);}
.crosslink-card img{width:52px; height:52px; object-fit:contain; flex:none;}
.crosslink-card .t{font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; color:var(--ink-soft);}
.crosslink-card .v{font-size:16px; font-weight:700; color:var(--green-dark);}

/* ---------- process ---------- */
.process-rail{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.process-step{background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:30px 26px; box-shadow:var(--shadow); text-align:center;}
.process-step .num{
  width:52px; height:52px; border-radius:50%; background:var(--green); color:#fff;
  display:flex; align-items:center; justify-content:center; font-family:'Poppins'; font-weight:800; font-size:19px;
  margin:0 auto 18px;
}
.process-step h3{font-size:19px; margin-bottom:8px;}
.process-step p{color:var(--ink-soft); font-size:14.5px;}

/* ---------- stats ---------- */
.stats-bar{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; background:var(--green-dark); border-radius:20px; padding:38px 30px;}
.stat{text-align:center; border-right:1px solid rgba(255,255,255,0.18);}
.stat:last-child{border-right:none;}
.stat .num{font-family:'Poppins'; font-weight:800; font-size:clamp(30px, 3.6vw, 42px); color:var(--gold);}
.stat .lbl{font-size:13px; font-weight:600; color:rgba(255,255,255,0.85); margin-top:6px;}

/* ---------- values grid (about page) ---------- */
.values-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px;}
.value-card{background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:26px; box-shadow:var(--shadow); display:flex; gap:16px; align-items:flex-start;}
.value-card .icon-wrap{width:46px; height:46px; display:flex; align-items:center; justify-content:center; background:var(--green-soft); border-radius:12px; flex:none;}
.value-card .icon-wrap svg{width:24px; height:24px; color:var(--green);}
.value-card h3{font-size:17px; margin-bottom:6px;}
.value-card p{color:var(--ink-soft); font-size:14px;}

/* ---------- testimonials ---------- */
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.testi-card{background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:26px; box-shadow:var(--shadow);}
.testi-card .stars{color:var(--gold); font-size:15px; margin-bottom:12px;}
.testi-card p{color:var(--ink-soft); font-size:14.5px; margin-bottom:18px;}
.testi-card .who{font-size:13.5px; font-weight:700; color:var(--ink); display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--border); padding-top:14px;}
.testi-card .who span{color:var(--ink-soft); font-weight:500;}

/* ---------- area ---------- */
.area-wrap{display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center;}
.area-list{display:flex; flex-wrap:wrap; gap:10px; margin-top:22px;}
.area-chip{font-size:13px; font-weight:600; padding:9px 16px; background:var(--green-soft); border-radius:999px; color:var(--green-dark);}
.area-card{background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:30px; box-shadow:var(--shadow);}
.area-card .row{display:flex; gap:14px; align-items:flex-start; padding:14px 0; border-bottom:1px solid var(--border);}
.area-card .row:last-child{border-bottom:none;}
.area-card svg{width:22px; height:22px; color:var(--green); flex:none; margin-top:2px;}
.area-card .t{font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; color:var(--ink-soft);}
.area-card .v{font-size:15px; font-weight:600;}

/* ---------- contact ---------- */
.contact-section{background:var(--bg-alt);}
.contact-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px;}
.contact-info h2{font-size:clamp(28px,3.6vw,40px); margin-bottom:16px;}
.contact-info p{color:var(--ink-soft); font-size:15px; margin-bottom:26px; max-width:42ch;}
.contact-detail{display:flex; gap:12px; align-items:flex-start; margin-bottom:18px;}
.contact-detail svg{width:20px; height:20px; color:var(--green); flex:none; margin-top:2px;}
.contact-detail .lbl{font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; color:var(--ink-soft);}
.contact-detail .val{font-size:15.5px; font-weight:600;}
form.quote-form{background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:32px; box-shadow:var(--shadow);}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px;}
.field{display:flex; flex-direction:column; gap:6px;}
.field.full{grid-column:1/-1;}
.field label{font-size:12.5px; font-weight:700; color:var(--ink-soft);}
.field input, .field textarea, .field select{
  background:#fff; border:1.5px solid var(--border); border-radius:10px; padding:12px 14px; color:var(--ink); font-family:'Inter'; font-size:14.5px;
}
.field input::placeholder, .field textarea::placeholder{color:#a7b3a4;}
.field input:focus, .field textarea:focus, .field select:focus{outline:none; border-color:var(--green);}
.checkbox-group{display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px;}
.checkbox-item{display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--ink-soft); background:var(--bg-alt); border:1.5px solid var(--border); border-radius:10px; padding:11px 12px; cursor:pointer;}
.checkbox-item input{accent-color:var(--green); width:15px; height:15px;}
.form-note{font-size:12.5px; color:var(--ink-soft); margin-top:14px; text-align:center;}
.form-success{display:none; text-align:center; padding:30px 10px;}
.form-success.show{display:block;}
.form-success .stamp-big{display:inline-block; background:var(--green-soft); color:var(--green-dark); font-weight:700; padding:12px 22px; border-radius:999px; margin-bottom:16px; font-size:14.5px;}
.form-success p{color:var(--ink-soft); font-size:14px;}

/* ---------- CTA banner ---------- */
.cta-banner{background:linear-gradient(120deg, var(--green-dark), var(--green)); border-radius:24px; padding:52px 44px; text-align:center; color:#fff;}
.cta-banner h2{color:#fff; font-size:clamp(26px, 3.4vw, 36px); margin-bottom:12px;}
.cta-banner p{color:rgba(255,255,255,0.88); font-size:15.5px; margin-bottom:26px;}
.cta-banner .hero-ctas{justify-content:center;}

/* ---------- footer ---------- */
footer{padding:50px 0 28px; background:#fff; border-top:1px solid var(--border);}
.footer-top{display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:30px; padding-bottom:32px;}
.footer-logos{display:flex; gap:14px; margin-top:14px;}
.footer-logos img{width:52px; height:52px; object-fit:contain;}
.footer-cols{display:flex; gap:56px; flex-wrap:wrap;}
.footer-col h4{font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; color:var(--green-dark); margin-bottom:14px;}
.footer-col ul li{margin-bottom:9px;}
.footer-col a{color:var(--ink-soft); text-decoration:none; font-size:14px;}
.footer-col a:hover{color:var(--green);}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; padding-top:22px; border-top:1px solid var(--border); font-size:12.5px; color:var(--ink-soft);}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .pillars-grid{grid-template-columns:1fr 1fr;}
  .hero-grid{grid-template-columns:1fr;}
  .hero-visual{order:-1;}
  .checklist{grid-template-columns:1fr;}
  .stats-bar{grid-template-columns:repeat(2,1fr);}
  .stat{border-right:none; border-bottom:1px solid rgba(255,255,255,0.18); padding-bottom:18px;}
  .testi-grid{grid-template-columns:1fr 1fr;}
  .area-wrap{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .process-rail{grid-template-columns:1fr;}
  .values-grid{grid-template-columns:1fr;}
  .crosslinks{grid-template-columns:1fr;}
}
@media (max-width:720px){
  nav.links{display:none;}
  .menu-toggle{display:block;}
  .pillars-grid{grid-template-columns:1fr;}
  .testi-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .checkbox-group{grid-template-columns:1fr 1fr;}
  .navbar .cta-group .btn-ghost{display:none;}
  .footer-top{flex-direction:column;}
  .directory-head img{width:56px; height:56px;}
  .badge-card img{width:130px;}
  .info-bar .wrap{justify-content:flex-start;}
  .cta-banner{padding:40px 24px;}
  .page-banner-grid img{width:64px; height:64px;}
}

/* mobile nav open state (JS toggled) */
nav.links.open{
  display:flex !important; flex-direction:column; position:absolute; top:60px; right:20px;
  background:#fff; border:1px solid var(--border); border-radius:12px; padding:16px 22px; gap:14px;
  box-shadow:var(--shadow); align-items:flex-start;
}
nav.links.open .dropdown-menu{
  position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:none; padding:6px 0 0 12px; min-width:0;
  display:none;
}
nav.links.open .nav-dropdown.mobile-open .dropdown-menu{display:block;}
