:root {
  --brand: #15803d;       /* verde principal */
  --brand-600: #16a34a;   /* verde mais claro para hover */
  --muted: #6b7280;       /* cinza para textos secundários */
}

/* Body & Font */
body {
  font-family: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  background-color: #f9fafb;
  color: #1f2937;
  line-height: 1.6;
}

/* Preloader */
#preloader {
  background: white;
  display: flex;
  justify-content: center;
  align-items: center;
}
.loader {
  width: 48px;
  height: 48px;
  border: 4px solid rgba(21,128,61,0.2);
  border-top-color: var(--brand);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* Buttons */
.btn-primary {
  background: var(--brand);
  color: white;
  padding: .75rem 1.25rem;
  border-radius: .75rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(21,128,61,0.2);
  background: var(--brand-600);
}

.btn-secondary {
  background: transparent;
  color: var(--brand);
  border: 2px solid rgba(21,128,61,0.2);
  padding: .65rem 1.1rem;
  border-radius: .75rem;
  font-weight: 600;
  transition: background .15s ease, color .15s ease, transform .15s ease;
}
.btn-secondary:hover {
  background: rgba(21,128,61,0.06);
  transform: translateY(-2px);
}

/* Hero */
.hero-gradient {
  background: linear-gradient(180deg, rgba(0, 255, 94, 0.08) 0%, rgba(255,255,255,0) 60%);
}

/* Cards */
.card-access, .service-card, .plan-card {
  border-radius: .75rem;
  background: white;
  padding: 1.5rem;
  box-shadow: 0 6px 18px rgba(15,23,42,0.06);
  transition: transform .15s ease, box-shadow .15s ease;
}
.card-access:hover, .service-card:hover, .plan-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 24px rgba(15,23,42,0.12);
}

/* Inputs */
.input {
  width: 100%;
  padding: .75rem;
  border-radius: .75rem;
  border: 1px solid rgba(15,23,42,0.1);
  background: white;
  transition: outline .15s ease;
}
.input:focus { outline: 2px solid rgba(21,128,61,0.2); }

/* Navigation Links */
.nav-link {
  color: #1f2937;
  font-weight: 600;
  transition: transform .12s ease, color .12s ease;
}
.nav-link:hover {
  color: var(--brand-600);
  transform: translateY(-2px);
}
.mobile-link {
  color: var(--brand);
  font-weight: 600;
}

/* Floating WhatsApp */
.whatsapp-floating {
  background: var(--brand);
  color: white;
  width: 56px;
  height: 56px;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(21,128,61,0.18);
  font-size: 22px;
  transition: transform .15s ease, box-shadow .15s ease;
}
.whatsapp-floating:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(21,128,61,0.3);
}

/* Footer */
footer a { transition: color .12s ease; }
footer a:hover { color: #f0fdfa; }

/* Responsive tweaks */
@media (max-width: 767px){
  .hero { padding-top: 1.5rem; padding-bottom: 2rem; }
  .loader { width: 36px; height: 36px; border-width: 4px; }
}

/* Fade-in */
.fade-in {
  animation: fadeIn .7s ease both;
}
@keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

/* Localização - mapa */
.map-container {
  width: 100%;
  height: 320px;
  border-radius: .75rem;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(15,23,42,0.06);
  margin-top: 1.5rem;
}
