:root {
  --bp-green: #009444;
  --bp-dark-green: #006b34;
  --bp-light-green: #39b54a;
  --bp-yellow: #ffd200;
  --bp-bg: #f5f9f6;
  --bp-text: #163323;
}

body {
  font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  color: var(--bp-text);
  background: #fff;
  scroll-behavior: smooth;
}

.navbar {
  background: #ffffffee;
  backdrop-filter: blur(8px);
  border-bottom: 1px solid #e8efe9;
}

.navbar-brand img {
  width: 44px;
  height: 44px;
  object-fit: contain;
}

.nav-link {
  font-weight: 600;
  color: #224535;
}

.nav-link.active,
.nav-link:hover {
  color: var(--bp-green);
}

.hero {
  position: relative;
  min-height: 78vh;
  display: flex;
  align-items: center;
  color: #fff;
  background: linear-gradient(90deg, rgba(0, 38, 16, 0.78), rgba(0, 90, 44, 0.55)), url('../img/Frente.png') center/cover no-repeat;
}

.hero .badge-custom {
  background: var(--bp-yellow);
  color: #1f2a21;
  font-weight: 700;
  font-size: 0.86rem;
  letter-spacing: .02em;
}

.hero h1 {
  font-size: clamp(2rem, 3.2vw, 3.5rem);
  font-weight: 800;
  line-height: 1.15;
}

.hero .lead {
  max-width: 780px;
  color: #f3fff7;
}

.btn-bp {
  background: var(--bp-green);
  color: #fff;
  border: none;
  font-weight: 600;
  padding: 0.72rem 1.25rem;
}

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

.btn-outline-bp {
  border: 2px solid var(--bp-yellow);
  color: #fff;
  font-weight: 600;
  padding: 0.6rem 1.15rem;
}

.btn-outline-bp:hover {
  background: var(--bp-yellow);
  color: #243126;
}

.section-title {
  font-weight: 800;
  color: #173726;
  margin-bottom: 0.4rem;
}

.section-subtitle {
  color: #456655;
  max-width: 750px;
  margin-inline: auto;
}

.section-light {
  background: var(--bp-bg);
}

.service-card {
  border: 0;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(12, 53, 28, 0.10);
  transition: transform .25s ease, box-shadow .25s ease;
  height: 100%;
}

.service-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 34px rgba(7, 47, 23, 0.16);
}

.service-card img {
  height: 210px;
  object-fit: cover;
  object-position: center;
  width: 100%;
}

.service-icon {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #e8f7ec;
  color: var(--bp-green);
  font-weight: 700;
  font-size: .95rem;
}

.quick-info {
  border: 0;
  border-radius: 1rem;
  box-shadow: 0 8px 24px rgba(17, 43, 26, 0.08);
  height: 100%;
}

.gallery-item {
  border-radius: 0.9rem;
  overflow: hidden;
  height: 230px;
  box-shadow: 0 8px 18px rgba(13, 54, 30, .1);
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}

.gallery-item:hover img {
  transform: scale(1.05);
}

.contact-card {
  border: 0;
  border-radius: 1rem;
  box-shadow: 0 10px 25px rgba(10, 47, 23, .09);
}

.contact-list li {
  padding: 0.4rem 0;
  color: #2f4f3c;
}

.contact-list a {
  text-decoration: none;
  color: var(--bp-green);
  font-weight: 600;
}

.map-wrap iframe {
  width: 100%;
  min-height: 360px;
  border: 0;
  border-radius: 1rem;
  box-shadow: 0 10px 24px rgba(15, 49, 26, .11);
}

footer {
  background: #0d2d1e;
  color: #d7efe0;
}

.floating-call {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1100;
  border-radius: 999px;
  padding: .75rem 1rem;
  font-weight: 700;
  box-shadow: 0 10px 24px rgba(4, 34, 17, .25);
}

#backToTop {
  position: fixed;
  right: 20px;
  bottom: 82px;
  z-index: 1100;
  display: none;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: none;
  background: #163d28;
  color: #fff;
  box-shadow: 0 8px 20px rgba(5, 22, 13, .25);
}

@media (max-width: 991px) {
  .hero {
    min-height: 70vh;
  }

  .service-card img {
    height: 190px;
  }
}
