:root {
  --green:#5f9d38;
  --green-dark:#1a3825;
  --green-deep:#0f2518;
  --ink:#1d2520;
  --muted:#68736b;
  --soft:#f4f6f1;
  --line:#dde3d9;
  --cream:#fbfcf8;
  --white:#fff;
  --shadow:0 14px 40px rgba(16,39,25,.09);
  --radius:18px;
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  font-family:"Manrope",system-ui,-apple-system,Segoe UI,sans-serif;
  color:var(--ink);
  background:#fff;
  line-height:1.65
}

a {
  color:inherit;
  text-decoration:none
}

a:hover {
  color:var(--green)
}

img {
  max-width:100%;
  height:auto
}

.topbar {
  background:#10251a;
  color:#eaf1eb;
  font-size:.82rem;
  padding:.45rem 0
}

.topbar a {
  color:#eaf1eb
}

.topbar .sep {
  opacity:.35;
  margin:0 .8rem
}

.site-header {
  background:rgba(255,255,255,.97);
  border-bottom:1px solid rgba(18,43,28,.08);
  position:sticky;
  top:0;
  z-index:1030;
  backdrop-filter:blur(10px)
}

.navbar-brand img {
  height:52px;
  width:auto
}

.navbar .nav-link {
  font-weight:700;
  font-size:.92rem;
  color:#263329!important;
  padding:.8rem .85rem!important
}

.navbar .nav-link.active,.navbar .nav-link:hover {
  color:var(--green)!important
}

.navbar .dropdown-menu {
  border:0;
  box-shadow:var(--shadow);
  border-radius:14px;
  padding:.6rem
}

.navbar .dropdown-item {
  border-radius:10px;
  padding:.65rem .8rem;
  font-size:.9rem
}

.navbar .dropdown-item:hover {
  background:#f3f7ef;
  color:var(--green-dark)
}

.btn-brand {
  background:var(--green);
  border:1px solid var(--green);
  color:white;
  font-weight:800;
  border-radius:10px;
  padding:.78rem 1.05rem
}

.btn-brand:hover {
  background:#4e882d;
  border-color:#4e882d;
  color:white
}

.btn-outline-brand {
  border:1px solid #6a7b6e;
  color:#203126;
  font-weight:800;
  border-radius:10px;
  padding:.75rem 1.05rem
}

.btn-outline-brand:hover {
  background:#173622;
  color:#fff;
  border-color:#173622
}

.hero .carousel-item {
  min-height:610px;
  background-size:cover;
  background-position:center;
  position:relative
}

.hero .carousel-item:before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(6,22,14,.86) 0%,rgba(8,28,18,.66) 42%,rgba(8,28,18,.15) 76%,rgba(8,28,18,.12) 100%)
}

.hero-content {
  position:relative;
  z-index:2;
  color:#fff;
  padding:9rem 0 8rem;
  max-width:720px
}

.hero-kicker {
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  font-weight:800;
  font-size:.82rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#cde6bc;
  margin-bottom:1rem
}

.hero h1,.hero h2 {
  font-size:clamp(2.4rem,5vw,4.4rem);
  line-height:1.03;
  font-weight:800;
  letter-spacing:-.04em
}

.hero p {
  font-size:1.05rem;
  color:#edf3ee;
  max-width:620px
}

.hero .carousel-indicators {
  bottom:28px
}

.hero .carousel-indicators [data-bs-target] {
  width:36px;
  height:4px;
  border:0;
  border-radius:4px
}

.trust-strip {
  border-bottom:1px solid var(--line);
  background:#fff
}

.trust-item {
  display:flex;
  gap:.85rem;
  align-items:flex-start;
  padding:1.25rem 0
}

.trust-icon {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  background:#eff6eb;
  color:var(--green);
  border-radius:12px;
  font-size:1.15rem
}

.trust-item strong {
  display:block;
  font-size:.9rem
}

.trust-item span {
  font-size:.78rem;
  color:var(--muted)
}

.section {
  padding:82px 0
}

.section-soft {
  background:var(--soft)
}

.section-dark {
  background:linear-gradient(120deg,#10261a,#173c27);
  color:white
}

.eyebrow {
  text-transform:uppercase;
  color:var(--green);
  font-weight:800;
  letter-spacing:.08em;
  font-size:.78rem
}

.section-title {
  font-size:clamp(1.9rem,3vw,2.75rem);
  line-height:1.15;
  font-weight:800;
  letter-spacing:-.035em;
  margin:.35rem 0 .8rem
}

.section-lead {
  max-width:760px;
  color:var(--muted)
}

.section-dark .section-lead {
  color:#d7e3d9
}

.service-card,.blog-card,.region-card,.info-card {
  background:#fff;
  border:1px solid #e4e8e1;
  border-radius:var(--radius);
  overflow:hidden;
  height:100%;
  box-shadow:0 8px 24px rgba(18,44,29,.04);
  transition:.25s ease
}

.service-card:hover,.blog-card:hover,.region-card:hover {
  transform:translateY(-5px);
  box-shadow:var(--shadow)
}

.service-card img,.blog-card img {
  width:100%;
  height:205px;
  object-fit:cover
}

.service-card-body,.blog-card-body {
  padding:1.35rem
}

.service-card h3,.blog-card h3 {
  font-size:1.05rem;
  font-weight:800;
  line-height:1.35
}

.service-card p,.blog-card p {
  font-size:.88rem;
  color:var(--muted)
}

.mini-link {
  display:inline-flex;
  gap:.45rem;
  align-items:center;
  color:var(--green-dark);
  font-weight:800;
  font-size:.86rem
}

.mini-link i {
  transition:.2s
}

.mini-link:hover i {
  transform:translateX(4px)
}

.h-scroll-wrap {
  position:relative
}

.h-scroll {
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(270px,31%);
  gap:1rem;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  padding:1rem .1rem 1.6rem
}

.h-scroll::-webkit-scrollbar {
  display:none
}

.h-scroll>* {
  scroll-snap-align:start
}

.scroll-controls {
  display:flex;
  gap:.55rem
}

.scroll-btn {
  width:42px;
  height:42px;
  border-radius:50%;
  border:1px solid #cfd8cc;
  background:#fff;
  color:#2f4937;
  display:grid;
  place-items:center
}

.scroll-btn:hover {
  background:var(--green-dark);
  color:#fff
}

.stat {
  padding:1rem
}

.stat strong {
  display:block;
  font-size:2.2rem;
  line-height:1;
  color:#81bf56
}

.stat span {
  font-size:.84rem;
  color:#d9e6dc
}

.feature-list {
  list-style:none;
  margin:1.5rem 0 0;
  padding:0
}

.feature-list li {
  display:flex;
  gap:.7rem;
  margin:.7rem 0
}

.feature-list i {
  color:#8bcc5f
}

.about-image {
  border-radius:20px;
  overflow:hidden;
  box-shadow:var(--shadow)
}

.about-image img {
  width:100%;
  min-height:390px;
  object-fit:cover
}

.brand-box {
  background:#102619;
  color:#fff;
  border-radius:18px;
  padding:1.25rem 1.4rem
}

.brand-box a {
  color:#c9e8b8;
  font-weight:800
}

.region-card {
  padding:1.5rem;
  min-height:180px
}

.region-card .pin {
  width:44px;
  height:44px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:#eef5e9;
  color:var(--green);
  margin-bottom:1rem
}

.region-card h3 {
  font-size:1.05rem;
  font-weight:800
}

.region-card p {
  font-size:.86rem;
  color:var(--muted);
  margin-bottom:0
}

.cta-band {
  background:linear-gradient(100deg,rgba(10,35,22,.96),rgba(18,62,37,.93)),url('../images/hero-1.svg') center/cover;
  border-radius:22px;
  color:#fff;
  padding:2.2rem
}

.cta-band h2 {
  font-weight:800;
  letter-spacing:-.03em
}

.cta-contact {
  display:flex;
  flex-wrap:wrap;
  gap:.8rem 1.3rem
}

.cta-contact a {
  color:#fff;
  font-weight:700
}

.footer {
  background:#111816;
  color:#cbd5ce;
  padding:60px 0 24px
}

.footer-logo {
  height:65px;
  width:auto
}

.footer h3 {
  font-size:.9rem;
  color:#fff;
  font-weight:800;
  margin-bottom:1rem
}

.footer ul {
  list-style:none;
  padding:0;
  margin:0
}

.footer li {
  margin:.42rem 0
}

.footer a {
  color:#cbd5ce;
  font-size:.86rem
}

.footer a:hover {
  color:#9bd476
}

.footer .small-note {
  font-size:.78rem;
  color:#8f9b93;
  border-top:1px solid rgba(255,255,255,.08);
  margin-top:2.2rem;
  padding-top:1.25rem
}

.page-hero {
  background:linear-gradient(105deg,rgba(10,32,21,.93),rgba(18,55,34,.82)),url('../images/banner.jpg') center/cover;
  color:#fff;
  padding:90px 0 78px
}

.page-hero h1 {
  font-weight:800;
  letter-spacing:-.04em;
  font-size:clamp(2.2rem,4vw,3.6rem)
}

.page-hero p {
  max-width:760px;
  color:#e3ede6
}

.breadcrumb {
  font-size:.82rem
}

.breadcrumb-item+.breadcrumb-item::before {
  color:#9eaea3
}

.breadcrumb-item a {
  color:#d7e6db
}

.breadcrumb-item.active {
  color:#9bc880
}

.content-main h2 {
  font-weight:800;
  letter-spacing:-.025em;
  margin-top:2.1rem
}

.content-main h3 {
  font-weight:800;
  margin-top:1.55rem;
  font-size:1.2rem
}

.content-main p,.content-main li {
  color:#4f5c53
}

.content-main .answer {
  font-size:1.05rem;
  color:#24352a
}

.fact-card {
  border-left:4px solid var(--green);
  background:#f5f8f2;
  padding:1.2rem 1.3rem;
  border-radius:0 14px 14px 0
}

.sticky-aside {
  position:sticky;
  top:115px
}

.side-card {
  border:1px solid var(--line);
  border-radius:16px;
  padding:1.25rem;
  background:#fff
}

.side-card h3 {
  font-size:1rem;
  font-weight:800
}

.side-links a {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:.7rem 0;
  border-bottom:1px solid #edf0eb;
  font-size:.87rem;
  font-weight:700
}

.side-links a:last-child {
  border-bottom:0
}

.faq .accordion-item {
  border:1px solid var(--line);
  border-radius:14px!important;
  overflow:hidden;
  margin-bottom:.75rem
}

.faq .accordion-button {
  font-weight:800;
  color:#27362d
}

.faq .accordion-button:not(.collapsed) {
  background:#eff6eb;
  color:#315d2c;
  box-shadow:none
}

.faq .accordion-button:focus {
  box-shadow:none
}

.contact-card {
  border:1px solid var(--line);
  border-radius:18px;
  padding:1.4rem;
  height:100%
}

.contact-card i {
  font-size:1.5rem;
  color:var(--green)
}

.map-placeholder {
  background:linear-gradient(135deg,#e6ece2,#c8d7c2);
  min-height:380px;
  border-radius:18px;
  display:grid;
  place-items:center;
  text-align:center;
  padding:2rem
}

.map-placeholder i {
  font-size:3rem;
  color:#557d47
}

.update-box {
  min-height:390px;
  border:1px dashed #b9c8b3;
  background:#f7f9f4;
  border-radius:20px;
  display:grid;
  place-items:center;
  text-align:center;
  padding:2rem
}

.update-box i {
  font-size:3rem;
  color:#6a9a4a
}

.blog-card .badge {
  background:#edf5e8;
  color:#4e7e35
}

.blog-meta {
  font-size:.78rem;
  color:#8a948d
}

.seo-links {
  background:#f6f8f4;
  border-radius:16px;
  padding:1.2rem
}

.seo-links a {
  font-weight:800;
  color:#3f7032
}

.mobile-quick {
  display:none
}

@media (max-width: 991.98px) {
  .topbar {
    display:none
  }

  .navbar-brand img {
    height:45px
  }

  .hero .carousel-item {
    min-height:540px
  }

  .hero-content {
    padding:7rem 0 6rem
  }

  .h-scroll {
    grid-auto-columns:minmax(280px,72%)
  }

  .sticky-aside {
    position:static
  }

  .section {
    padding:64px 0
  }

  .mobile-quick {
    display:grid;
    grid-template-columns:1fr 1fr;
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    z-index:1040;
    background:#fff;
    border-top:1px solid var(--line);
    box-shadow:0 -8px 24px rgba(0,0,0,.08)
  }

  .mobile-quick a {
    padding:.8rem;
    text-align:center;
    font-weight:800;
    font-size:.86rem
  }

  .mobile-quick a:last-child {
    background:#2f8a3e;
    color:#fff
  }

  .footer {
    padding-bottom:82px
  }

}

@media (max-width: 575.98px) {
  .hero .carousel-item {
    min-height:580px
  }

  .hero-content {
    padding:6.5rem 0 5rem
  }

  .hero h1,.hero h2 {
    font-size:2.55rem
  }

  .h-scroll {
    grid-auto-columns:86%
  }

  .service-card img,.blog-card img {
    height:180px
  }

  .page-hero {
    padding:72px 0 62px
  }

  .cta-band {
    padding:1.5rem
  }

  .section {
    padding:54px 0
  }

}

/* Desktop services dropdown opens on hover and keyboard focus. */
@media (min-width: 992px) {
  .navbar .dropdown:hover > .dropdown-menu,
  .navbar .dropdown:focus-within > .dropdown-menu {
    display: block;
    margin-top: 0;
  }
}

/* Fixed back-to-top button used on every page. */
.back-to-top {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 1050;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: var(--green-dark);
  color: #fff;
  box-shadow: 0 10px 28px rgba(10, 32, 21, 0.24);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition:
    opacity 0.2s ease,
    visibility 0.2s ease,
    transform 0.2s ease,
    background 0.2s ease;
}

.back-to-top:hover {
  background: var(--green);
}

.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

@media (max-width: 991.98px) {
  .back-to-top {
    right: 16px;
    bottom: 74px;
  }
}
