:root {
  --verde: #2f9e5f;
  --verde-oscuro: #1f6f43;
  --verde-suave: #7fd3a0;
  --fondo: #ffffff;
  --fondo-suave: #eef9f1;
  --texto: #16301f;
  --gris: #5b6b5f;
  --borde: #d5eadc;
  --sombra: 0 8px 28px rgba(31,111,67,.14);
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Segoe UI',system-ui,sans-serif; color:var(--texto); background:var(--fondo-suave); line-height:1.7; }
img { max-width:100%; display:block; }
a { color:var(--verde); text-decoration:none; }

/* ===== Barra superior (ticker) ===== */
#ticker-bar {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  background:linear-gradient(90deg,#1f6f43,#2f9e5f,#3aa466);
  color:#fff; overflow:hidden; white-space:nowrap; height:38px;
  display:flex; align-items:center;
}
.ticker-track { display:inline-block; white-space:nowrap; will-change:transform; }
.ticker-anim { animation:tickerMove 40s linear infinite; }
@keyframes tickerMove { from{ transform:translateX(0);} to{ transform:translateX(-50%);} }
.ticker-badge { background:rgba(255,255,255,.18); border-radius:4px; padding:1px 8px; margin-right:8px; font-weight:700; }

/* ---------- Header / nav ---------- */
.header-wrap {
  position:fixed; top:38px; left:0; right:0; z-index:999;
  background:rgba(255,255,255,.97); border-bottom:1px solid var(--borde); backdrop-filter:blur(6px);
}
.nav { display:flex; align-items:center; gap:20px; padding:12px 28px; max-width:1280px; margin:0 auto; flex-wrap:wrap; }
.logo-link { display:flex; align-items:center; gap:10px; }
.logo-link img { height:44px; width:44px; }
.logo-text { font-weight:800; color:var(--verde-oscuro); }
.logo-text small { display:block; color:var(--gris); font-size:.72rem; }
.nav-links { display:flex; align-items:center; gap:14px; }
.nav-links a { color:var(--texto); text-decoration:none; font-weight:600; padding:8px 10px; border-radius:8px; transition:.2s; }
.nav-links a:hover { background:var(--fondo-suave); color:var(--verde); }
.nav-links .active { color:var(--verde-oscuro); font-weight:800; }
.nav-cta a { background:var(--verde); color:#fff; padding:10px 18px; border-radius:24px; text-decoration:none; font-weight:700; }
.nav-cta a:hover { background:var(--verde-oscuro); }
.nav-toggle { display:none; background:none; border:none; font-size:26px; cursor:pointer; color:var(--verde); }
.nav-links.responsive { display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0; background:#fff; box-shadow:var(--sombra); padding:12px; z-index:999; }

@media(max-width:900px){
  .nav { flex-wrap:wrap; }
  .nav-links { display:none; }
  .nav-toggle { display:block; }
}
body { padding-top:118px; }

/* ---------- Botones ---------- */
.btn { display:inline-block; background:var(--verde); color:#fff; padding:13px 26px; border-radius:28px; text-decoration:none; font-weight:700; box-shadow:var(--sombra); transition:.25s; }
.btn:hover { transform:translateY(-2px); background:var(--verde-oscuro); }
.btn-claro { background:#fff; color:var(--verde); border:2px solid var(--verde); }
.btn-claro:hover { background:var(--fondo-suave); }

/* ---------- Secciones ---------- */
section { padding:70px 24px; max-width:1180px; margin:0 auto; }
.h2 { font-size:1.9rem; color:var(--verde-oscuro); margin-bottom:.4rem; }
.lead { font-size:1.1rem; color:var(--gris); max-width:760px; margin:0 auto; text-align:center; }
.tarjeta { background:#fff; border:1px solid var(--borde); border-radius:16px; padding:26px; box-shadow:var(--sombra); }
.rejilla { display:grid; gap:24px; }

/* ---------- Hero ---------- */
.hero { position:relative; min-height:560px; display:flex; align-items:center; padding:40px; max-width:1280px; margin:0 auto; }
.hero-bg { position:absolute; inset:0; z-index:-1; border-radius:0; }
.hero-contenido { position:relative; z-index:1; text-align:center; }
.hero h1 { font-size:2.9rem; color:#fff; text-shadow:0 3px 18px rgba(0,0,0,.4); }
.hero p { font-size:1.25rem; color:#f2ffe9; max-width:700px; margin:10px auto; }
.hero .btn { margin-top:22px; display:inline-block; }

/* ---------- Footer ---------- */
footer { background:linear-gradient(180deg,#1f6f43,#123d24); color:#eaf6ec; padding:60px 24px; }
.footer-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:30px; max-width:1180px; margin:0 auto; }
.footer-grid h4 { font-size:1.05rem; margin-bottom:12px; }
.footer-grid a { color:#c9e9d2; text-decoration:none; }
.footer-social { display:flex; gap:14px; margin-top:14px; }
.social-link { display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.12); }
.footer-down { text-align:center; padding-top:26px; font-size:.9rem; color:#bcd9c4; }

/* ---------- Cookies ---------- */
.cookie-bar {
  position:fixed; bottom:0; left:0; right:0; z-index:1200; background:#123d24; color:#fff;
  padding:18px 24px; box-shadow:0 -8px 28px rgba(0,0,0,.3); display:flex; align-items:center; gap:14px; flex-wrap:wrap;
}
.cookie-text { font-size:.92rem; }
.cookie-text a { color:#9fd6b0; }
.cookie-btn { background:var(--verde); color:#fff; border:none; padding:11px 20px; border-radius:8px; cursor:pointer; font-weight:700; }
.cookie-btn.rechazar { background:transparent; border:1px solid #7fd3a0; color:#7fd3a0; }

/* ---------- WhatsApp flotante ---------- */
.whatsapp-float {
  position:fixed; bottom:22px; right:22px; z-index:1300; width:60px; height:60px;
  background:#25d366; border-radius:50%; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px rgba(0,0,0,.3); transition:transform .2s;
}
.whatsapp-float:hover { transform:scale(1.08); }

/* ---------- Páginas internas ---------- */
.page-header { background:linear-gradient(135deg,#1f6f43,#2f9e5f); color:#fff; padding:70px 24px; text-align:center; }
.page-header h1 { font-size:2.4rem; }
.page-header p { color:#e2f5e8; max-width:720px; margin:8px auto; }
.contenido { max-width:900px; margin:0 auto; padding:40px 24px; }
.contenido h2 { color:var(--verde-oscuro); margin:26px 0 10px; }
.contenido p, .contenido li { color:var(--texto); }
.contenido ul { margin:10px 0 10px 24px; }

/* ---------- Formulario contacto ---------- */
.form-campo { margin-bottom:16px; }
.form-campo label { display:block; font-weight:600; margin-bottom:6px; color:var(--texto); }
.form-campo input, .form-campo textarea, .form-campo select {
  width:100%; padding:13px 16px; border:1.5px solid var(--borde); border-radius:10px; font-size:1rem; background:#fff; color:var(--texto);
}
.form-campo textarea { min-height:130px; resize:vertical; }
.form-campo input:focus, .form-campo textarea:focus { outline:none; border-color:var(--verde); }

/* ---------- Mapa ---------- */
.mapa-wrap { border-radius:16px; overflow:hidden; box-shadow:var(--sombra); border:1px solid var(--borde); min-height:400px; }

/* ---------- Actualidad ---------- */
.linea-tiempo { border-left:4px solid var(--verde); padding-left:20px; }
.linea-tiempo div { background:#fff; border:1px solid var(--borde); border-radius:12px; padding:18px; margin-bottom:14px; box-shadow:var(--sombra); }

@media (max-width:700px){
  .rejilla{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}