
:root{
  --green:#1B5E42;
  --green-dark:#0F3D2B;
  --navy:#0D1B2A;
  --white:#FFFFFF;
  --light:#F4F6F5;
  --text:#2B2F2C;
  --muted:#6b706c;
  --edge: clamp(20px, 5vw, 80px);
  --radius:10px;
  --shadow:0 2px 10px rgba(13,27,26,0.07);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}}
body{margin:0; font-family:'Inter',sans-serif; color:var(--text); background:var(--white); line-height:1.65; text-wrap:pretty; -webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:'Montserrat',sans-serif; font-weight:700; margin:0; line-height:1.2; letter-spacing:-0.01em; color:var(--navy);}
p{margin:0;}
a{color:var(--green); text-decoration:none;}
a:hover{color:var(--green-dark);}
::selection{background:var(--green); color:#fff;}
:focus-visible{outline:2px solid var(--green); outline-offset:3px;}
img{max-width:100%; display:block;}
.wrap{max-width:1200px; margin:0 auto; padding:0 var(--edge);}
section{padding:64px 0;}
@media (min-width:768px){section{padding:96px 0;}}
.kicker{display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--green-dark); background:rgba(27,94,66,0.08); padding:7px 14px; border-radius:999px; margin-bottom:16px;}
.kicker.on-dark{color:#d7e6de; background:rgba(255,255,255,0.12);}
h2{font-size:clamp(26px,3.2vw,36px);}
.section-sub{margin-top:14px; font-size:16px; color:#4a4f4b; max-width:64ch;}

/* nav */
.nav{position:sticky; top:0; z-index:40; background:rgba(255,255,255,0.92); backdrop-filter:blur(10px); border-bottom:1px solid rgba(13,27,26,0.08);}
.nav-inner{max-width:1200px; margin:0 auto; padding:14px var(--edge); display:flex; align-items:center; justify-content:space-between; gap:24px;}
.nav-logo{height:38px; flex:none;}
.nav-links{display:flex; gap:26px; align-items:center;}
.nav-links a{font-size:14px; font-weight:600; color:var(--text);}
.nav-links a.active, .nav-links a:hover{color:var(--green);}
.nav-links a.nav-cta{color:#fff;}
.nav-toggle{display:none; background:none; border:0; cursor:pointer; padding:8px; color:var(--navy); flex:none;}
.nav-toggle svg{width:24px; height:24px; display:block;}
@media (max-width:900px){
  .nav-toggle{display:flex; align-items:center; justify-content:center;}
  .nav-links{position:absolute; top:100%; left:0; right:0; background:var(--navy); flex-direction:column; align-items:stretch; gap:0; padding:8px 0; display:none; box-shadow:0 16px 30px -10px rgba(13,27,26,0.3);}
  .nav-links.open{display:flex;}
  .nav-links a{display:block; padding:14px var(--edge); color:#fff; border-bottom:1px solid rgba(255,255,255,0.1);}
  .nav-links a.active, .nav-links a:hover{color:#7fd9c0;}
  .nav-links a.nav-cta{margin:10px var(--edge) 6px; text-align:center; border-bottom:none;}
}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; font-weight:700; font-size:14.5px; letter-spacing:0.01em; border-radius:6px; padding:14px 26px; border:2px solid transparent; cursor:pointer; transition:background .15s ease, transform .15s ease, color .15s ease;}
.btn-primary{background:var(--green); color:#fff;}
.btn-primary:hover{background:var(--green-dark); color:#fff; transform:translateY(-1px);}
.btn-secondary{background:#fff; color:var(--green); border-color:var(--green); border-width:2px;}
.btn-secondary:hover{background:var(--green); color:#fff;}
.btn-ondark{background:#fff; color:var(--navy); border-color:#fff;}
.btn-ondark:hover{background:transparent; color:#fff; border-color:#fff;}
a.btn.btn-primary:hover{color:#fff;}
a.btn.btn-secondary:hover{color:#fff;}
a.btn.btn-ondark:hover{color:#fff;}
.btn-sm{padding:10px 18px; font-size:13.5px;}

/* banner */
.banner{position:relative; background:var(--navy); color:#fff; overflow:hidden; min-height:46vh; display:flex; align-items:center;}
.banner-bg{position:absolute; inset:0; z-index:0;}
.banner-scrim{position:absolute; inset:0; z-index:1; background:linear-gradient(120deg, rgba(13,27,26,0.92) 0%, rgba(15,61,43,0.82) 60%, rgba(15,61,43,0.6) 100%);}
.banner .wrap{position:relative; z-index:2; padding:72px var(--edge);}
.banner h1{color:#fff; font-size:clamp(30px,4.4vw,50px); max-width:820px;}
.banner .sub{margin-top:18px; font-size:17px; color:rgba(255,255,255,0.85); max-width:60ch;}
.banner .cta-row{margin-top:32px; display:flex; gap:14px; flex-wrap:wrap;}

/* cards */
.card{background:#fff; border-radius:var(--radius); padding:28px; box-shadow:var(--shadow); border:1px solid rgba(13,27,26,0.05);}
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
@media (max-width:900px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}
@media (min-width:600px) and (max-width:900px){.grid-4{grid-template-columns:repeat(2,1fr);}}

.icon-badge{width:44px; height:44px; border-radius:10px; background:rgba(27,94,66,0.08); display:flex; align-items:center; justify-content:center; margin-bottom:14px; flex:none;}
.icon-badge svg{width:22px; height:22px; color:var(--green);}
.card h3{font-size:18px; margin-bottom:8px;}
.card p{font-size:15px; color:#4a4f4b;}

.section-alt{background:var(--light);}
.section-dark{background:var(--navy); color:#fff;}
.section-dark h2{color:#fff;}
.section-dark .section-sub{color:#a9b6b0;}

/* footer */
footer{background:var(--navy); color:#a9b6b0; padding:56px 0 24px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px;}
@media (max-width:820px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}
.footer-logo{height:34px; margin-bottom:14px;}
footer h4{color:#fff; font-size:13px; text-transform:uppercase; letter-spacing:0.07em; margin-bottom:14px;}
footer ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
footer a{color:#a9b6b0; font-size:14px;}
footer a:hover{color:#fff;}
.footer-bottom{margin-top:44px; padding-top:24px; border-top:1px solid rgba(255,255,255,0.1); font-size:13px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;}
.footer-tag{font-size:13px; color:#7c8a83; max-width:60ch;}

/* wa float */
.wa-float{position:fixed; right:20px; bottom:20px; z-index:50; background:var(--green); color:#fff; width:58px; height:58px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 10px 30px -6px rgba(15,61,43,0.5); transition:transform .18s ease;}
.wa-float:hover{transform:scale(1.08); background:var(--green-dark); color:#fff;}
.wa-float svg{width:28px; height:28px;}

/* faq */
.faq-list{margin-top:36px; display:flex; flex-direction:column; gap:10px;}
.faq-item{background:var(--light); border-radius:8px; overflow:hidden;}
.faq-item summary{list-style:none; cursor:pointer; padding:18px 20px; font-family:'Montserrat',sans-serif; font-weight:700; font-size:15.5px; color:var(--navy); display:flex; justify-content:space-between; align-items:center; gap:16px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary .plus{flex:none; width:18px; height:18px; color:var(--green); transition:transform .18s ease;}
.faq-item[open] summary .plus{transform:rotate(45deg);}
.faq-item p{padding:0 20px 20px; font-size:15px; color:#4a4f4b;}

/* form */
.form-card{background:#fff; border-radius:var(--radius); padding:32px; box-shadow:var(--shadow); border:1px solid rgba(13,27,26,0.05);}
.field{display:flex; flex-direction:column; gap:6px; margin-bottom:16px;}
.field label{font-size:13px; font-weight:700; color:var(--navy);}
.field input, .field select, .field textarea{font-family:'Inter',sans-serif; font-size:15px; padding:12px 14px; border:1px solid #e0e3e1; border-radius:8px; color:var(--text); background:var(--light);}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--green); background:#fff; box-shadow:0 0 0 3px rgba(27,94,66,0.13);}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:0 16px;}
@media (max-width:600px){.form-row{grid-template-columns:1fr;}}

/* gallery / testimonials */
.gallery{margin-top:44px; display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
@media (max-width:860px){.gallery{grid-template-columns:repeat(2,1fr);}}
.gallery image-slot{width:100%; aspect-ratio:4/3; border-radius:8px; overflow:hidden;}
.testi-grid{margin-top:44px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
@media (max-width:900px){.testi-grid{grid-template-columns:1fr;}}
.testi-card{background:var(--light); border-radius:10px; padding:26px; display:flex; flex-direction:column; gap:14px;}
.testi-quote{font-size:15px; color:#4a4f4b;}
.testi-person{display:flex; align-items:center; gap:12px;}
.testi-person image-slot{width:44px; height:44px; border-radius:50%; flex:none;}
.testi-person .name{font-weight:700; font-size:14px; color:var(--navy);}
.testi-person .role{font-size:13px; color:var(--muted);}

.value-list{list-style:none; margin:24px 0 0; padding:0; display:flex; flex-direction:column; gap:14px;}
.value-list li{display:flex; gap:12px; align-items:flex-start; font-size:16px;}
.value-list svg{flex:none; width:20px; height:20px; color:var(--green); margin-top:2px;}

.split{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
@media (max-width:900px){.split{grid-template-columns:1fr;}}
.split image-slot{aspect-ratio:4/3; border-radius:var(--radius); overflow:hidden;}
.card image-slot{height:auto;}
