:root{
  --brand:#1a8314;
  --brand-dark:#0f5b0c;
  --brand-soft:#eef8ed;
  --gold:#d6bf53;
  --gold-soft:#efe4aa;
  --ink:#18211b;
  --muted:#5d675f;
  --white:#ffffff;
  --line:#d8e8d4;
  --shadow:0 18px 50px rgba(14,55,11,.12);
  --radius:28px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Arial, Helvetica, sans-serif;
  color:var(--ink);
  background:linear-gradient(180deg,#f7fbf6 0%,#ffffff 45%,#f7fbf6 100%);
}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
.container{width:min(1200px, calc(100% - 32px));margin:0 auto}

.topbar{
  background:var(--brand-dark);
  color:#ecf7eb;
  font-size:14px;
}
.topbar-inner{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:10px 0;
}
.topbar-left,.topbar-right{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.sep{
  width:5px;
  height:5px;
  border-radius:999px;
  background:rgba(255,255,255,.65);
}

.social-icons{
  display:flex;
  align-items:center;
  gap:8px;
}
.social-icon{
  width:32px;
  height:32px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.28);
  color:#fff;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  background:rgba(255,255,255,.08);
}
.social-icon:hover{
  background:rgba(255,255,255,.18);
}

.site-header{
  position:sticky;
  top:0;
  z-index:70;
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(26,131,20,.08);
}
.nav-wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:14px 0;
}
.brand img{
  width:260px;
  max-width:100%;
}

.nav{
  display:flex;
  align-items:center;
  gap:10px;
}
.nav > a,
.nav-drop-trigger{
  border:none;
  background:none;
  padding:12px 14px;
  border-radius:999px;
  color:#244023;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
}
.nav > a:hover,
.nav > a.is-active,
.nav-dropdown.is-active .nav-drop-trigger,
.nav-drop-trigger:hover{
  background:var(--brand-soft);
  color:var(--brand-dark);
}
.nav-dropdown{
  position:relative;
  padding-bottom:14px;
  margin-bottom:-14px;
}
.nav-drop-trigger{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.caret{font-size:12px}
.nav-drop-menu{
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  min-width:240px;
  background:#fff;
  border:1px solid #e2efe0;
  border-radius:18px;
  box-shadow:var(--shadow);
  padding:10px;
  display:none;
}
.nav-dropdown:hover .nav-drop-menu,
.nav-dropdown:focus-within .nav-drop-menu,
.nav-dropdown.open .nav-drop-menu{
  display:block;
}
.nav-drop-menu a{
  display:block;
  padding:12px 14px;
  border-radius:14px;
  font-weight:600;
  color:#29422a;
}
.nav-drop-menu a:hover,
.nav-drop-menu a.is-active{
  background:var(--brand-soft);
}
.menu-toggle{
  display:none;
  border:none;
  background:none;
  font-size:30px;
  color:var(--brand-dark);
}
.nav-cta{margin-left:6px}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 24px;
  border-radius:999px;
  border:1px solid transparent;
  font-weight:700;
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{
  background:linear-gradient(135deg,var(--brand),#28a120);
  color:#fff;
  box-shadow:0 15px 35px rgba(26,131,20,.2);
}
.btn-secondary{
  background:#eef7ed;
  color:var(--brand-dark);
  border-color:#dbead7;
}
.btn-outline-light{
  border-color:rgba(255,255,255,.55);
  color:#fff;
  background:rgba(255,255,255,.08);
}
.btn-outline-dark{
  border-color:#d8e8d4;
  color:var(--brand-dark);
  background:#fff;
}

.flash{
  margin-top:18px;
  padding:16px 20px;
  border-radius:18px;
  font-weight:700;
}
.flash.success{background:#ebf9e9;color:#126c0e;border:1px solid #cdeac9}
.flash.error{background:#fff3f2;color:#b6372e;border:1px solid #f0c5c1}

.hero-slider{
  position:relative;
  min-height:calc(100vh - 118px);
  overflow:hidden;
  background:#1c1c1c;
}
.hero-slide{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transition:opacity .8s ease;
}
.hero-slide.is-active{opacity:1}
.hero-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(8,17,8,.78) 0%,rgba(8,17,8,.52) 42%,rgba(8,17,8,.26) 100%),
    linear-gradient(180deg,rgba(10,15,10,.1) 0%,rgba(10,15,10,.48) 100%);
}
.hero-content{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  min-height:calc(100vh - 118px);
}
.hero-copy{
  max-width:690px;
  color:#fff;
  padding:70px 0;
}
.eyebrow,
.section-tag,
.mini-label{
  display:inline-flex;
  align-items:center;
  gap:10px;
  border-radius:999px;
  font-size:12px;
  letter-spacing:.15em;
  text-transform:uppercase;
  font-weight:800;
}
.eyebrow{
  padding:10px 14px;
  background:rgba(255,255,255,.14);
  color:#fff;
}
.hero-copy h1{
  font-size:62px;
  line-height:1.02;
  margin:18px 0 18px;
}
.hero-copy p{
  font-size:18px;
  line-height:1.8;
  max-width:620px;
  color:rgba(255,255,255,.88);
}
.hero-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:26px;
}
.hero-dots{
  position:absolute;
  left:50%;
  bottom:28px;
  transform:translateX(-50%);
  z-index:3;
  display:flex;
  gap:10px;
}
.hero-dots button{
  width:12px;
  height:12px;
  border-radius:50%;
  border:none;
  background:rgba(255,255,255,.45);
  cursor:pointer;
}
.hero-dots button.active{background:#fff}

.section{padding:88px 0}
.section-soft{background:linear-gradient(180deg,#f5fbf4 0%,#ffffff 100%)}
.section-head{
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:flex-end;
  margin-bottom:30px;
}
.section-head h2{
  margin:14px 0 0;
  font-size:42px;
  line-height:1.08;
}
.section-head p{
  max-width:620px;
  line-height:1.8;
  color:var(--muted);
}
.section-tag{
  padding:9px 14px;
  background:var(--brand-soft);
  color:var(--brand-dark);
}
.section-tag.light{
  background:rgba(255,255,255,.14);
  color:#fff;
}
.mini-label{
  padding:8px 12px;
  background:var(--brand-soft);
  color:var(--brand-dark);
}

.intro-strip{padding-top:34px}
.intro-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.intro-card{
  background:#fff;
  border:1px solid #e4efe1;
  border-radius:24px;
  box-shadow:var(--shadow);
  padding:28px;
}
.intro-card h2{
  font-size:27px;
  line-height:1.14;
  margin:16px 0 12px;
}
.intro-card p{
  margin:0;
  color:var(--muted);
  line-height:1.75;
}

.feature-split{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:28px;
  align-items:center;
}
.feature-split.reverse{
  grid-template-columns:.98fr 1.02fr;
}
.feature-split.reverse .feature-media{order:2}
.feature-split.reverse .feature-copy{order:1}
.feature-media{
  border-radius:30px;
  overflow:hidden;
  box-shadow:var(--shadow);
  min-height:100%;
}
.feature-media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.feature-copy h2{
  font-size:44px;
  line-height:1.06;
  margin:14px 0 16px;
}
.feature-copy p{
  margin:0 0 22px;
  color:var(--muted);
  line-height:1.85;
}
.service-chip-wrap{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:0 0 26px;
}
.service-chip{
  padding:12px 16px;
  border-radius:999px;
  background:#f2f8f0;
  border:1px solid #deecd9;
  color:var(--brand-dark);
  font-weight:700;
  font-size:14px;
}

.card-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.card-grid.two{
  grid-template-columns:repeat(2,1fr);
}
.card-grid.three{
  grid-template-columns:repeat(3,1fr);
}
.service-card,
.info-card-clean{
  background:#fff;
  border:1px solid #e2eee0;
  border-radius:28px;
  box-shadow:var(--shadow);
}
.service-card-body,
.info-card-clean{
  padding:28px;
}
.service-card h3,
.info-card-clean h3{
  margin:0 0 12px;
  font-size:24px;
}
.service-card p,
.info-card-clean p{
  margin:0;
  color:var(--muted);
  line-height:1.8;
}
.service-card ul{
  list-style:none;
  margin:18px 0 0;
  padding:0;
  display:grid;
  gap:12px;
}
.service-card li{
  position:relative;
  padding-left:18px;
  color:#2e3b2f;
  line-height:1.65;
}
.service-card li:before{
  content:"";
  position:absolute;
  left:0;
  top:10px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--brand);
}
.text-link{
  display:inline-block;
  margin-top:18px;
  color:var(--brand);
  font-weight:700;
}

.gallery-grid{
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  grid-template-rows:260px 260px;
  gap:18px;
}
.gallery-item{
  overflow:hidden;
  border-radius:26px;
  box-shadow:var(--shadow);
}
.gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.gallery-item.tall{grid-row:1 / span 2}
.gallery-item.wide{grid-column:2 / span 2}

.cta-band{
  padding:36px;
  border-radius:32px;
  background:linear-gradient(135deg,#135f10,#1a8314,#2b9f25);
  color:#fff;
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:center;
  box-shadow:var(--shadow);
}
.cta-band h2{
  font-size:38px;
  line-height:1.08;
  margin:14px 0 10px;
}
.cta-band p{
  margin:0;
  max-width:650px;
  line-height:1.8;
  color:rgba(255,255,255,.88);
}
.cta-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.page-hero{
  position:relative;
  min-height:440px;
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:center;
}
.page-hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(8,17,8,.78) 0%,rgba(8,17,8,.48) 50%,rgba(8,17,8,.22) 100%);
}
.page-hero-content{
  position:relative;
  z-index:2;
  color:#fff;
  padding:90px 0;
  max-width:780px;
}
.page-hero-content h1{
  font-size:56px;
  line-height:1.03;
  margin:18px 0;
}
.page-hero-content p{
  font-size:18px;
  line-height:1.8;
  color:rgba(255,255,255,.88);
}

.two-col-grid,
.quote-layout,
.contact-grid,
.image-band{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  align-items:center;
}

.content-panel,
.contact-card,
.quote-card{
  background:#fff;
  border:1px solid #e2eee0;
  border-radius:28px;
  box-shadow:var(--shadow);
  padding:28px;
}
.content-panel h2,
.contact-card h2,
.form-card h2,
.quote-side h3,
.image-band-copy h2{
  font-size:38px;
  line-height:1.08;
  margin:14px 0 16px;
}
.content-panel p,
.contact-card p,
.image-band-copy p{
  color:var(--muted);
  line-height:1.85;
}
.image-panel,
.image-card-simple,
.image-band-media{
  border-radius:28px;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.image-panel img,
.image-card-simple img,
.image-band-media img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.form-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
  margin-top:22px;
}
.field{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.field.full{grid-column:1 / -1}
.field label{
  font-size:14px;
  font-weight:700;
  color:#29422a;
}
.field input,
.field select,
.field textarea{
  width:100%;
  padding:15px 16px;
  border-radius:18px;
  border:1px solid #d5e7d1;
  background:#fff;
  color:#233024;
  font:inherit;
  outline:none;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.field textarea{
  min-height:140px;
  resize:vertical;
}
.field input:focus,
.field select:focus,
.field textarea:focus{
  border-color:var(--brand);
  box-shadow:0 0 0 4px rgba(26,131,20,.12);
}
.field.is-hidden{display:none}
.muted{color:var(--muted)}

.quote-side{
  overflow:hidden;
  padding:0;
}
.quote-side img{
  width:100%;
  height:290px;
  object-fit:cover;
}
.quote-side-copy{
  padding:28px;
}
.quote-side-copy ul{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:12px;
}
.quote-side-copy li{
  position:relative;
  padding-left:18px;
  color:#314032;
  line-height:1.7;
}
.quote-side-copy li:before{
  content:"";
  position:absolute;
  left:0;
  top:10px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--brand);
}
.quote-contact{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:24px;
}

.contact-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:16px;
}
.contact-list li{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:18px;
  padding-bottom:16px;
  border-bottom:1px solid #ebf2e9;
}
.contact-list strong{color:var(--brand-dark)}

.image-band{
  background:#fff;
  border:1px solid #e2eee0;
  border-radius:30px;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.image-band-copy{
  padding:34px;
}

.site-footer{
  margin-top:90px;
  background:#0d2e0b;
  color:#fff;
  padding-top:56px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr .85fr 1.1fr;
  gap:24px;
}
.footer-logo{
  width:240px;
  max-width:100%;
  margin-bottom:14px;
}
.site-footer h4{
  margin:0 0 12px;
}
.site-footer p,
.site-footer li,
.site-footer a{
  color:rgba(255,255,255,.8);
  line-height:1.8;
}
.site-footer ul{
  list-style:none;
  margin:0;
  padding:0;
}
.footer-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:16px;
}
.footer-bottom{
  margin-top:30px;
  padding:18px 0;
  border-top:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.65);
  font-size:14px;
}

.floating-whatsapp{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:80;
  background:#25d366;
  color:#fff;
  padding:14px 18px;
  border-radius:999px;
  font-weight:800;
  box-shadow:0 16px 35px rgba(37,211,102,.28);
}

@media (max-width: 1100px){
  .hero-copy h1{font-size:50px}
  .page-hero-content h1{font-size:46px}
  .intro-grid,
  .feature-split,
  .quote-layout,
  .contact-grid,
  .image-band,
  .two-col-grid,
  .footer-grid,
  .card-grid,
  .card-grid.two,
  .card-grid.three{
    grid-template-columns:1fr;
  }
  .gallery-grid{
    grid-template-columns:1fr 1fr;
    grid-template-rows:240px 240px 240px;
  }
  .gallery-item.tall{grid-row:auto}
  .gallery-item.wide{grid-column:auto}
}

@media (max-width: 920px){
  .menu-toggle{display:block}
  .nav{
    display:none;
    position:absolute;
    top:100%;
    left:16px;
    right:16px;
    background:#fff;
    border:1px solid #e2eee0;
    box-shadow:var(--shadow);
    border-radius:24px;
    padding:16px;
    flex-direction:column;
    align-items:stretch;
  }
  .nav.open{display:flex}
  .nav > a,
  .nav-drop-trigger{width:100%;justify-content:space-between}
  .nav-drop-menu{
    position:static;
    box-shadow:none;
    border:none;
    padding:8px 0 0 12px;
    display:block;
  }
  .nav-dropdown:not(.open) .nav-drop-menu{
    display:none;
  }
  .topbar-right{display:none}
  .hero-slider,
  .hero-content{min-height:78vh}
}

@media (max-width: 720px){
  .container{width:min(1200px, calc(100% - 22px))}
  .brand img{width:220px}
  .hero-copy{padding:48px 0}
  .hero-copy h1{font-size:38px}
  .hero-copy p,
  .page-hero-content p{font-size:16px}
  .page-hero-content{padding:72px 0}
  .page-hero-content h1,
  .feature-copy h2,
  .section-head h2,
  .content-panel h2,
  .contact-card h2,
  .form-card h2,
  .image-band-copy h2,
  .cta-band h2{
    font-size:32px;
  }
  .form-grid{grid-template-columns:1fr}
  .contact-list li{grid-template-columns:1fr}
  .hero-actions,
  .cta-actions,
  .quote-contact,
  .footer-actions{flex-direction:column;align-items:stretch}
  .gallery-grid{grid-template-columns:1fr;grid-template-rows:auto}
  .gallery-item{height:240px}
  .cta-band{padding:28px;align-items:flex-start}
}


.reveal-on-scroll{
  opacity:0;
  transform:translateY(36px);
  transition:opacity .7s ease, transform .7s ease;
}
.reveal-on-scroll.revealed{
  opacity:1;
  transform:translateY(0);
}

.wa-popup{
  position:fixed;
  right:20px;
  bottom:86px;
  z-index:85;
  width:min(290px, calc(100% - 32px));
  background:#fff;
  border:1px solid #d7ead5;
  border-radius:20px;
  box-shadow:var(--shadow);
  padding:18px 18px 16px;
}
.wa-popup.is-hidden{display:none}
.wa-popup-close{
  position:absolute;
  top:8px;
  right:10px;
  width:28px;
  height:28px;
  border:none;
  border-radius:999px;
  background:#f1f7ef;
  color:var(--brand-dark);
  cursor:pointer;
  font-size:18px;
}
.wa-popup-label{
  font-size:14px;
  font-weight:700;
  color:var(--muted);
  margin-bottom:10px;
}
.wa-popup-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:48px;
  padding:12px 16px;
  border-radius:999px;
  background:var(--brand);
  color:#fff;
  font-weight:800;
}
.wa-popup-link:hover{background:var(--brand-dark)}

.floating-whatsapp{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:84;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:150px;
  min-height:52px;
  padding:12px 18px;
  border-radius:999px;
  background:var(--brand);
  color:#fff;
  font-weight:800;
  box-shadow:0 15px 35px rgba(26,131,20,.24);
}
.floating-whatsapp:hover{background:var(--brand-dark)}

@media (max-width: 920px){
  .topbar-inner{flex-direction:column;align-items:flex-start}
  .topbar-right{justify-content:space-between;width:100%}
  .social-icons{margin-left:0}
}
@media (max-width: 640px){
  .wa-popup{right:16px;left:16px;bottom:84px;width:auto}
  .floating-whatsapp{right:16px;left:16px;min-width:0}
}


.footer-grid {
    grid-template-columns: repeat(4, 1fr);
}
