:root{
  --green-900:#0c2e22;
  --green-800:#124d36;
  --green-700:#1c7a4f;
  --green-600:#2a9d5f;
  --green-100:#e8f3ec;
  --leaf:#7cba3f;
  --gold:#e0a13a;
  --ink:#13201a;
  --muted:#5c6b62;
  --bg:#ffffff;
  --bg-alt:#f3f8f4;
  --line:#e2ebe4;
  --shadow-sm:0 4px 14px rgba(12,46,34,.06);
  --shadow:0 16px 40px rgba(12,46,34,.10);
  --shadow-lg:0 30px 70px rgba(12,46,34,.16);
  --radius:18px;
  --maxw:1160px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',system-ui,sans-serif;color:var(--ink);
  background:var(--bg);line-height:1.65;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}
h1,h2,h3{font-family:'Fraunces',Georgia,serif;line-height:1.12;color:var(--green-900);letter-spacing:-.01em}
h1{font-size:clamp(2.2rem,4.8vw,3.7rem);font-weight:700}
h2{font-size:clamp(1.7rem,3.2vw,2.6rem);font-weight:600}
h3{font-size:1.15rem;font-weight:600}
p{color:var(--muted)}
a{color:var(--green-700);text-decoration:none}
.hl{color:var(--green-600);font-style:italic}

/* Top bar */
.topbar{background:var(--green-900);color:#cfe5d6;font-size:.82rem}
.topbar-inner{display:flex;justify-content:space-between;align-items:center;height:38px;flex-wrap:wrap;gap:8px}
.topbar a{color:#cfe5d6}
.topbar a:hover{color:#fff}
.topbar-contact{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.topbar-social{display:flex;gap:16px;align-items:center}
.wa-mini{background:#25d366;color:#0a241b !important;font-weight:700;padding:4px 12px;border-radius:999px}
.wa-mini:hover{background:#1ebe5a}

/* WhatsApp button variant */
.btn-wa{background:#25d366;border-color:#25d366;color:#0a241b;box-shadow:0 8px 20px rgba(37,211,102,.32)}
.btn-wa:hover{background:#1ebe5a;border-color:#1ebe5a;color:#0a241b}
.btn-block{display:block;text-align:center;margin-top:4px}

/* Buttons */
.btn{
  display:inline-block;background:var(--green-700);color:#fff;
  padding:14px 28px;border-radius:999px;font-weight:600;font-size:.95rem;
  border:2px solid var(--green-700);cursor:pointer;transition:.22s;
  box-shadow:0 8px 20px rgba(28,122,79,.25);
}
.btn:hover{background:var(--green-800);border-color:var(--green-800);transform:translateY(-2px);box-shadow:0 12px 26px rgba(28,122,79,.32)}
.btn-outline{background:transparent;color:var(--green-800);box-shadow:none}
.btn-outline:hover{background:var(--green-700);color:#fff}
.btn-sm{padding:9px 20px;font-size:.85rem;box-shadow:none}
.btn-light{background:#fff;color:var(--green-800);border-color:#fff}
.btn-light:hover{background:var(--green-100);border-color:var(--green-100);color:var(--green-900)}

/* Header */
.site-header{
  position:sticky;top:0;z-index:50;background:rgba(255,255,255,.85);
  backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:.3s;
}
.site-header.scrolled{border-color:var(--line);box-shadow:var(--shadow-sm);background:rgba(255,255,255,.95)}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;height:88px}
.brand-logo{height:62px;width:auto;display:block}
.nav{display:flex;align-items:center;gap:26px}
.nav a{color:var(--ink);font-weight:500;font-size:.93rem}
.nav a:hover{color:var(--green-700)}
.nav a.btn{color:#fff}
.nav-toggle{display:none;background:none;border:none;font-size:1.6rem;color:var(--green-800);cursor:pointer}

/* Hero */
.hero{position:relative;padding:84px 0 0;overflow:hidden}
.hero-bg{
  position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(900px 520px at 88% -8%,#d6f0e0,transparent 60%),
    radial-gradient(680px 420px at -5% 105%,#e4f4e9,transparent 60%),
    linear-gradient(180deg,#fbfdfb,#f3f8f4);
}
/* figuras decorativas */
.deco{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.deco-leaf{position:absolute;width:120px;height:120px}
.deco-leaf.l1{top:12%;left:4%;animation:float 9s ease-in-out infinite}
.deco-leaf.l2{bottom:18%;right:6%;width:90px;height:90px;animation:float 11s ease-in-out infinite reverse}
.deco-ring{position:absolute;border-radius:50%;border:2px dashed rgba(42,157,95,.25)}
.deco-ring.r1{width:160px;height:160px;top:8%;right:14%;animation:spin 26s linear infinite}
.deco-ring.r2{width:90px;height:90px;bottom:24%;left:10%;animation:spin 18s linear infinite reverse}
.deco-dot{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--leaf);opacity:.5}
.deco-dot.d1{top:22%;right:32%;animation:float 7s ease-in-out infinite}
.deco-dot.d2{bottom:30%;left:28%;width:10px;height:10px;background:var(--green-600);animation:float 8s ease-in-out infinite reverse}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-18px)}}

/* ondas separadoras */
.wave-sep{line-height:0;background:linear-gradient(180deg,transparent,transparent);margin-top:-1px}
.wave-sep svg{width:100%;height:60px;display:block}
.wave-top{position:absolute;top:0;left:0;width:100%;line-height:0;transform:translateY(-1px)}
.wave-top svg{width:100%;height:60px;display:block}

.hero-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center;position:relative;z-index:1}
.eyebrow{
  display:inline-block;background:#fff;color:var(--green-800);border:1px solid var(--line);
  padding:7px 16px;border-radius:999px;font-size:.78rem;font-weight:600;
  letter-spacing:.03em;margin-bottom:22px;box-shadow:var(--shadow-sm);
}
.hero h1{max-width:16ch}
.lead{font-size:1.15rem;max-width:56ch;margin:22px 0 30px}
.lead strong{color:var(--green-800)}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero-trust{margin-top:34px}
.hero-trust>span{font-size:.82rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.trust-chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:.85rem;font-weight:500;color:var(--ink);box-shadow:var(--shadow-sm)}

/* franja de impacto */
.impact-bar{
  display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:64px 0 -42px;
  background:var(--green-900);border-radius:var(--radius);padding:30px 24px;
  box-shadow:var(--shadow-lg);position:relative;z-index:2;
}
.impact-bar>div{text-align:center;color:#fff;border-right:1px solid rgba(255,255,255,.12)}
.impact-bar>div:last-child{border:none}
.impact-bar .num{display:block;font-family:'Fraunces',serif;font-size:2.2rem;font-weight:700;color:var(--leaf)}
.impact-bar .lbl{font-size:.82rem;color:#bcd9c5}

/* ===== Escena interactiva del hero ===== */
.hero-visual{display:flex;flex-direction:column;align-items:center;gap:16px}
.scene-stage{position:relative;width:100%;max-width:380px;aspect-ratio:1;filter:drop-shadow(0 24px 50px rgba(12,46,34,.22))}
.scene{position:absolute;inset:0;margin:0;opacity:0;transform:scale(.96);transition:opacity .6s,transform .6s;pointer-events:none}
.scene.is-active{opacity:1;transform:scale(1);pointer-events:auto}
.scene-svg{width:100%;height:auto;display:block;border-radius:22px}
.scene-img{width:100%;height:100%;object-fit:cover;display:block;border-radius:22px}
.scene figcaption{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);background:rgba(12,46,34,.88);color:#fff;font-size:.85rem;font-weight:600;padding:8px 18px;border-radius:999px;white-space:nowrap;display:flex;align-items:center;gap:7px;backdrop-filter:blur(4px)}
.dot-ic{font-size:1rem}
.scene-dots{display:flex;gap:10px}
.s-dot{width:11px;height:11px;border-radius:50%;border:none;background:#bcd9c5;cursor:pointer;padding:0;transition:.25s}
.s-dot.is-active{background:var(--green-700);transform:scale(1.3)}
.s-dot:hover{background:var(--green-600)}
.sun{animation:sunPulse 4s ease-in-out infinite;transform-origin:248px 74px}
@keyframes sunPulse{0%,100%{transform:scale(1);opacity:.95}50%{transform:scale(1.08);opacity:1}}
.crop{transform-origin:bottom center;animation:sway 3s ease-in-out infinite;animation-delay:calc(var(--i)*.4s)}
@keyframes sway{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
.cloud{animation:drift 16s linear infinite;animation-delay:calc(var(--d)*-1s)}
@keyframes drift{0%{transform:translateX(-40px)}100%{transform:translateX(360px)}}
.fish{animation:swim 7s ease-in-out infinite;animation-delay:calc(var(--i)*-2s)}
.fish.slow{animation-duration:10s}
@keyframes swim{0%{transform:translateX(-30px)}50%{transform:translateX(220px) scaleX(1)}50.01%{transform:translateX(220px) scaleX(-1)}100%{transform:translateX(-30px) scaleX(-1)}}
.bub{animation:rise 5s ease-in infinite;animation-delay:calc(var(--i)*1.1s)}
@keyframes rise{0%{transform:translateY(0);opacity:.5}100%{transform:translateY(-280px);opacity:0}}
.seaweed{transform-origin:bottom center;animation:wave 4s ease-in-out infinite}
.seaweed[style*="--d:1"]{animation-delay:-2s}
@keyframes wave{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
.atom{animation:spin 14s linear infinite;transform-box:fill-box;transform-origin:center}
@keyframes spin{to{transform:rotate(360deg)}}
.e{animation:orbit 3.4s linear infinite}
.e[style*="--a:120"]{animation-delay:-1.13s}
.e[style*="--a:240"]{animation-delay:-2.26s}
@keyframes orbit{from{transform:rotate(0) translateX(70px) rotate(0)}to{transform:rotate(360deg) translateX(70px) rotate(-360deg)}}
.lab-bub{animation:labRise 2.6s ease-in infinite}
.lab-bub[style*="--i:1"]{animation-delay:-1.3s}
@keyframes labRise{0%{transform:translateY(0);opacity:.9}100%{transform:translateY(-46px);opacity:0}}
.liquid{animation:liquidPulse 3s ease-in-out infinite}
@keyframes liquidPulse{0%,100%{opacity:.85}50%{opacity:1}}

/* Prueba social */
.proof{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:34px 0}
.proof-text{text-align:center;color:var(--muted);font-size:.95rem;margin-bottom:18px}
.proof-text strong{color:var(--green-800)}
.proof-logos{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px}
.proof-logos span{color:var(--green-800);font-weight:600;font-size:.92rem;opacity:.8;display:flex;align-items:center;gap:6px}

/* Métricas */
.metrics{background:linear-gradient(120deg,var(--green-800),var(--green-600));padding:46px 0}
.metrics-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.metrics-inner>div{text-align:center;color:#fff;border-right:1px solid rgba(255,255,255,.16)}
.metrics-inner>div:last-child{border:none}
.metrics-inner .num{display:block;font-family:'Fraunces',serif;font-size:2.4rem;font-weight:700;color:#fff}
.metrics-inner .lbl{font-size:.85rem;color:#dff0e5}

/* Servicios en categorías */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.svc-cat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow-sm);transition:.25s;display:flex;flex-direction:column}
.svc-cat:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.svc-head{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.svc-ic{font-size:1.6rem;width:54px;height:54px;display:grid;place-items:center;background:var(--green-100);border-radius:14px;flex-shrink:0}
.svc-cat ul{list-style:none;display:grid;gap:11px;margin-bottom:22px}
.svc-cat li{position:relative;padding-left:26px;font-size:.93rem;color:var(--ink)}
.svc-cat li::before{content:"✓";position:absolute;left:0;color:var(--green-600);font-weight:800}
.svc-link{margin-top:auto;font-weight:700;font-size:.9rem;color:var(--green-700)}
.svc-link:hover{color:var(--green-800)}

/* FAQ */
.faq-wrap{max-width:820px}
.faq{display:grid;gap:12px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:4px 22px;box-shadow:var(--shadow-sm);transition:.2s}
.faq details[open]{border-color:var(--green-600);box-shadow:var(--shadow)}
.faq summary{cursor:pointer;font-weight:600;color:var(--green-900);padding:16px 0;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:1.02rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.5rem;color:var(--green-600);font-weight:400;transition:.25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 18px;font-size:.95rem}

/* CTA + form band */
.cta-form-band{background:linear-gradient(160deg,var(--green-900),#0a241b);color:#fff;padding:84px 0;position:relative;overflow:hidden}
.cta-form-band::before{content:"";position:absolute;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(124,186,63,.18),transparent 70%);bottom:-160px;left:-120px}
.cta-form-inner{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;position:relative;z-index:1}
.cta-form-inner h2{color:#fff}
.cta-form-inner>div p{color:#bcd9c5;margin-top:8px;max-width:48ch}
.cta-contact{list-style:none;margin-top:22px;display:grid;gap:10px}
.cta-contact a,.cta-contact li{color:#dff0e5;font-size:.95rem}
.cta-contact a:hover{color:#fff}
.cta-form-band .contact-form h3{margin-bottom:6px}

/* Sections */
.section{padding:90px 0}
.section-alt{background:var(--bg-alt)}
.section-head{text-align:center;max-width:64ch;margin:0 auto 54px}
.kicker{display:inline-block;color:var(--green-600);font-weight:700;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px}
.kicker.light{color:var(--leaf)}
.kicker::before{content:"";display:inline-block;width:24px;height:2px;background:var(--green-600);vertical-align:middle;margin-right:10px;border-radius:2px}
.kicker.light::before{background:var(--leaf)}
.section-sub{margin-top:10px}
.grid-2{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}

/* Sectores público/privado */
.sector-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.sector-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:0 0 30px;overflow:hidden;box-shadow:var(--shadow-sm);transition:.25s}
.sector-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.sector-top{display:flex;align-items:center;gap:14px;padding:26px 30px;color:#fff}
.sector-top.public{background:linear-gradient(120deg,var(--green-800),var(--green-600))}
.sector-top.private{background:linear-gradient(120deg,#0c2e22,#1f7a4f)}
.sector-top h3{color:#fff;font-size:1.35rem}
.sector-ic{font-size:1.8rem;background:rgba(255,255,255,.18);width:54px;height:54px;display:grid;place-items:center;border-radius:14px}
.sector-card>p{padding:22px 30px 6px}
.sector-card ul{list-style:none;padding:0 30px;display:grid;gap:10px}
.sector-card li{position:relative;padding-left:26px;font-size:.95rem;color:var(--ink)}
.sector-card li::before{content:"✓";position:absolute;left:0;top:0;color:var(--green-600);font-weight:800}

/* Nosotros */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px}
.pillar{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow-sm)}
.pillar h3{color:var(--green-700);margin-bottom:6px;font-size:1rem}
.pillar p{font-size:.9rem}
/* bloque de figuras Nosotros */
.figure-stack{position:relative;padding-bottom:30px}
.fig-main{width:100%;border-radius:var(--radius);box-shadow:var(--shadow-lg);display:block;aspect-ratio:4/3;object-fit:cover}
.fig-small{position:absolute;right:-14px;bottom:8px;width:42%;border-radius:14px;border:5px solid #fff;box-shadow:var(--shadow);object-fit:cover;aspect-ratio:1/1}
.fig-badge{position:absolute;left:-14px;top:-14px;background:linear-gradient(135deg,var(--green-700),var(--leaf));color:#fff;border-radius:16px;padding:14px 18px;box-shadow:var(--shadow);text-align:center;line-height:1.1}
.fig-badge span{display:block;font-family:'Fraunces',serif;font-size:1.7rem;font-weight:700}
.fig-badge small{font-size:.72rem;opacity:.92}

/* Galería */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:16px}
.g-item{position:relative;margin:0;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm)}
.g-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.g-item:hover img{transform:scale(1.08)}
.g-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,36,27,.82))}
.g-item figcaption{position:absolute;left:0;bottom:0;padding:16px 18px;color:#fff;z-index:1}
.g-item figcaption span{display:block;font-weight:700;font-size:1rem}
.g-item figcaption small{font-size:.82rem;color:#dff0e5}
.g-tall{grid-row:span 2}
.g-wide{grid-column:span 2}

/* Cards (servicios) */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px 28px;transition:.25s;box-shadow:var(--shadow-sm);overflow:hidden}
.card::after{content:"";position:absolute;left:0;top:0;height:4px;width:0;background:linear-gradient(90deg,var(--green-600),var(--leaf));transition:width .35s}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.card:hover::after{width:100%}
.card-no{position:absolute;top:22px;right:26px;font-family:'Fraunces',serif;font-size:1.2rem;font-weight:700;color:var(--green-100)}
.card-ico{font-size:1.7rem;width:56px;height:56px;display:grid;place-items:center;background:var(--green-100);border-radius:14px;margin-bottom:18px}
.card h3{margin-bottom:8px}
.card p{font-size:.93rem}

/* Áreas */
.areas-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.area{border:1px solid var(--line);border-radius:16px;padding:26px;background:#fff;transition:.22s;box-shadow:var(--shadow-sm)}
.area:hover{background:linear-gradient(150deg,#fff,var(--green-100));border-color:var(--green-600);transform:translateY(-4px)}
.area-ico{font-size:1.8rem}
.area h3{margin:12px 0 6px}
.area p{font-size:.88rem}

/* Por qué (dark) */
.section-dark{background:linear-gradient(160deg,var(--green-900),#0a241b);color:#fff;position:relative;overflow:hidden}
.section-dark::before{content:"";position:absolute;width:480px;height:480px;border-radius:50%;background:radial-gradient(circle,rgba(124,186,63,.18),transparent 70%);top:-160px;right:-120px}
.section-dark h2{color:#fff}
.section-dark .section-sub{color:#bcd9c5}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.why{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:30px 24px;transition:.25s}
.why:hover{background:rgba(255,255,255,.09);transform:translateY(-5px)}
.why-ic{font-size:1.9rem}
.why h3{color:#fff;margin:14px 0 8px}
.why p{color:#bcd9c5;font-size:.9rem}

/* Proceso / timeline */
.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.t-item{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:var(--shadow-sm);transition:.22s}
.t-item:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.t-step{font-family:'Fraunces',serif;font-size:1.3rem;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--green-700),var(--leaf));border-radius:12px;min-width:48px;height:48px;display:grid;place-items:center}
.t-item h3{margin-bottom:4px}
.t-item p{font-size:.9rem}

/* Consejo */
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.member{text-align:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px 18px;transition:.22s;box-shadow:var(--shadow-sm)}
.member:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.avatar{width:74px;height:74px;border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;font-family:'Fraunces',serif;font-weight:700;font-size:1.4rem;color:#fff;background:linear-gradient(135deg,var(--green-700),var(--leaf))}
.member h3{font-size:1.02rem}
.role{color:var(--green-600);font-weight:600;font-size:.9rem;margin-top:4px}

/* CTA band */
.cta-band{background:linear-gradient(120deg,var(--green-800),var(--green-600));padding:60px 0}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.cta-inner h2{color:#fff}
.cta-inner p{color:#dff0e5;margin-top:8px;max-width:52ch}

/* Contacto */
.contact-grid{align-items:start}
.contact-list{list-style:none;margin-top:22px;display:grid;gap:12px}
.contact-list li{padding-left:18px;position:relative;font-size:.95rem;color:var(--ink)}
.contact-list li::before{content:"";position:absolute;left:0;top:10px;width:8px;height:8px;border-radius:50%;background:var(--green-600)}
.contact-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px;box-shadow:var(--shadow);display:grid;gap:16px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.contact-form label{display:grid;gap:6px;font-size:.86rem;font-weight:600;color:var(--ink)}
.contact-form input,.contact-form textarea,.contact-form select{
  font:inherit;padding:12px 14px;border:1px solid var(--line);border-radius:10px;
  background:var(--bg-alt);color:var(--ink);resize:vertical;
}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{outline:2px solid var(--green-600);border-color:transparent;background:#fff}
.form-msg{font-weight:600;color:var(--green-700);font-size:.9rem}

/* Footer */
.site-footer{background:var(--green-900);color:#cfe5d6;padding:56px 0 28px}
.footer-inner{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:30px;border-bottom:1px solid rgba(255,255,255,.12)}
.footer-logo{height:58px;background:#fff;border-radius:10px;padding:8px 14px;margin-bottom:14px}
.footer-inner p{color:#a9cdb4;max-width:42ch;font-size:.92rem}
.footer-nav{display:flex;flex-wrap:wrap;gap:14px 26px;align-items:flex-start}
.footer-nav a{color:#cfe5d6;font-size:.92rem}
.footer-nav a:hover{color:#fff}
.footer-bottom{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-top:22px;font-size:.82rem;color:#90b89c}

/* Footer columnas */
.footer-col{display:flex;flex-direction:column;gap:8px}
.footer-col h4{color:#fff;font-family:'Inter',sans-serif;font-size:.95rem;margin-bottom:6px}
.footer-col a,.footer-col span{color:#cfe5d6;font-size:.9rem}
.footer-col a:hover{color:#fff}

/* WhatsApp flotante */
.wa-float{position:fixed;right:20px;bottom:20px;z-index:80;background:#25d366;color:#0a241b;display:flex;align-items:center;gap:8px;padding:12px 18px;border-radius:999px;font-weight:700;box-shadow:0 12px 30px rgba(37,211,102,.45);transition:.25s;animation:waPulse 2.6s ease-in-out infinite}
.wa-float:hover{background:#1ebe5a;color:#0a241b;transform:translateY(-3px)}
.wa-ic{font-size:1.3rem}
@keyframes waPulse{0%,100%{box-shadow:0 12px 30px rgba(37,211,102,.45)}50%{box-shadow:0 12px 40px rgba(37,211,102,.7)}}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* Responsive */
@media(max-width:980px){
  .cards,.areas-grid,.why-grid,.timeline,.team{grid-template-columns:repeat(2,1fr)}
  .svc-grid{grid-template-columns:1fr}
  .metrics-inner{grid-template-columns:repeat(2,1fr);gap:24px}
  .metrics-inner>div:nth-child(2){border-right:none}
  .cta-form-inner{grid-template-columns:1fr;gap:32px}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .g-wide,.g-tall{grid-column:span 1;grid-row:span 1}
}
@media(max-width:900px){
  .hero-inner{grid-template-columns:1fr;gap:40px}
  .hero-visual{order:-1}
  .scene-stage{max-width:320px}
  .grid-2,.contact-grid{grid-template-columns:1fr;gap:36px}
  .sector-grid{grid-template-columns:1fr}
  .impact-bar{grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:-36px}
  .impact-bar>div:nth-child(2){border-right:none}
  .pillars{grid-template-columns:1fr}
  .card-figure{order:-1}
}
@media(max-width:640px){
  .nav{position:fixed;inset:74px 0 auto 0;flex-direction:column;background:#fff;padding:18px 24px;border-bottom:1px solid var(--line);gap:16px;transform:translateY(-160%);transition:.3s;align-items:flex-start;box-shadow:var(--shadow)}
  .nav.open{transform:translateY(0)}
  .nav-toggle{display:block}
  .cards,.areas-grid,.why-grid,.timeline,.team,.form-row{grid-template-columns:1fr}
  .section{padding:64px 0}
  .topbar-contact{gap:12px;font-size:.78rem}
  .topbar-loc{display:none}
  .metrics-inner{grid-template-columns:1fr 1fr}
  .wa-float .wa-txt{display:none}
  .wa-float{padding:14px}
  .gallery{grid-template-columns:1fr;grid-auto-rows:180px}
  .brand-logo{height:50px}
}
@media(prefers-reduced-motion:reduce){
  .sun,.crop,.cloud,.fish,.bub,.seaweed,.atom,.e,.lab-bub,.liquid{animation:none}
  .reveal{opacity:1;transform:none;transition:none}
}
