/* =========================================================
   SERVICIOS ENVIROIL — Hoja de estilos del sitio
   Diseño: corporativo moderno + industrial + ambiental
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500;600;700;800&family=Inter:wght@400;500;600&display=swap');

:root{
  --verde:#1f8a54;
  --verde-osc:#12653b;
  --verde-prof:#0c4a2c;
  --verde-claro:#e9f5ee;
  --lima:#7ac943;
  --tinta:#12261c;
  --gris:#54615a;
  --gris-claro:#f4f7f5;
  --linea:#e4ebe6;
  --blanco:#ffffff;
  --sombra:0 10px 30px rgba(12,74,44,.10);
  --sombra-fuerte:0 22px 48px rgba(12,74,44,.18);
  --radio:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;color:var(--tinta);line-height:1.65;background:var(--blanco);overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:'Poppins',sans-serif;line-height:1.2}
.contenedor{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}
.centro{text-align:center}

/* ---------- Barra superior fina ---------- */
.topbar{background:var(--verde-prof);color:#cfe8da;font-size:.82rem}
.topbar .contenedor{display:flex;justify-content:space-between;align-items:center;height:38px;gap:16px}
.topbar a{color:#cfe8da}
.topbar a:hover{color:#fff}
.topbar .tb-r{display:flex;gap:18px;align-items:center}
@media(max-width:720px){.topbar .tb-hide{display:none}}

/* ---------- Header / navegación ---------- */
header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-bottom:1px solid var(--linea);transition:box-shadow .3s}
header.scrolled{box-shadow:0 6px 20px rgba(0,0,0,.06)}
.nav{display:flex;align-items:center;justify-content:space-between;height:78px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:56px;width:auto}
.brand .bt{font-family:'Poppins';font-weight:800;font-size:1.05rem;color:var(--verde-osc);letter-spacing:.4px;line-height:1.05}
.brand .bt small{display:block;font-weight:500;font-size:.68rem;color:var(--gris);letter-spacing:.3px}
nav ul{display:flex;gap:6px;list-style:none;align-items:center}
nav ul a{display:block;padding:10px 14px;font-size:.9rem;font-weight:600;border-radius:9px;transition:.2s;color:var(--tinta)}
nav ul a:hover,nav ul a.activo{background:var(--verde-claro);color:var(--verde-osc)}
.nav-cta{background:var(--verde)!important;color:#fff!important;padding:11px 20px!important;border-radius:9px}
.nav-cta:hover{background:var(--verde-osc)!important}
.menu-btn{display:none;background:none;border:0;cursor:pointer;width:44px;height:44px}
.menu-btn span{display:block;width:24px;height:2.5px;background:var(--verde-osc);margin:5px auto;border-radius:2px;transition:.3s}
@media(max-width:1000px){
  nav ul{position:fixed;top:0;right:-100%;height:100vh;width:280px;flex-direction:column;background:#fff;padding:90px 22px 22px;gap:6px;box-shadow:-10px 0 40px rgba(0,0,0,.12);transition:right .35s;align-items:stretch}
  nav ul.abierto{right:0}
  nav ul a{padding:14px 16px;font-size:1rem}
  .menu-btn{display:block;z-index:120}
  .menu-btn.x span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  .menu-btn.x span:nth-child(2){opacity:0}
  .menu-btn.x span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:10px;font-weight:600;font-size:.95rem;font-family:'Poppins';transition:.25s;cursor:pointer;border:2px solid transparent}
.btn-primario{background:var(--verde);color:#fff;box-shadow:0 8px 20px rgba(31,138,84,.3)}
.btn-primario:hover{background:var(--verde-osc);transform:translateY(-2px);box-shadow:0 12px 26px rgba(31,138,84,.4)}
.btn-claro{background:#fff;color:var(--verde-osc);border-color:#fff}
.btn-claro:hover{background:var(--verde-claro);transform:translateY(-2px)}
.btn-linea{border-color:#fff;color:#fff}
.btn-linea:hover{background:rgba(255,255,255,.14)}
.btn-outline{border-color:var(--verde);color:var(--verde-osc)}
.btn-outline:hover{background:var(--verde);color:#fff}

/* ---------- Hero ---------- */
.hero{position:relative;background:linear-gradient(125deg,var(--verde-prof) 0%,var(--verde-osc) 55%,var(--verde) 100%);color:#fff;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:
   radial-gradient(circle at 82% 15%,rgba(122,201,67,.22),transparent 42%),
   radial-gradient(circle at 10% 90%,rgba(255,255,255,.08),transparent 40%)}
.hero-grid-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:44px 44px;opacity:.6}
.hero .contenedor{position:relative;z-index:3;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;padding:84px 24px}
.hero .pill{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);padding:7px 16px;border-radius:40px;font-size:.8rem;font-weight:600;letter-spacing:.5px;margin-bottom:22px}
.hero .pill b{color:var(--lima)}
.hero h1{font-size:2.9rem;font-weight:800;margin-bottom:20px;letter-spacing:-.5px}
.hero h1 span{color:var(--lima)}
.hero p{font-size:1.12rem;opacity:.94;max-width:540px;margin-bottom:30px}
.hero .btns{display:flex;gap:14px;flex-wrap:wrap}
.hero-visual{position:relative}
.hero-visual .foto{border-radius:20px;overflow:hidden;box-shadow:var(--sombra-fuerte);aspect-ratio:4/3.4}
.hero-visual .foto img{width:100%;height:100%;object-fit:cover}
.hero-badge{position:absolute;bottom:-24px;left:-24px;background:#fff;color:var(--tinta);border-radius:14px;padding:16px 20px;box-shadow:var(--sombra-fuerte);display:flex;align-items:center;gap:12px}
.hero-badge .n{font-family:'Poppins';font-weight:800;font-size:1.8rem;color:var(--verde);line-height:1}
.hero-badge small{font-size:.78rem;color:var(--gris);display:block;max-width:120px}
@media(max-width:1000px){.hero .contenedor{grid-template-columns:1fr;text-align:center;padding:64px 24px}.hero h1{font-size:2.2rem}.hero p{margin:0 auto 30px}.hero .btns{justify-content:center}.hero-visual{max-width:440px;margin:20px auto 0}.hero-badge{left:0}}

/* ---------- Franja logos / cinta ---------- */
.cinta{background:var(--verde-prof);color:#bfe0cf;padding:14px 0;font-size:.9rem}
.cinta .contenedor{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 40px;align-items:center;text-align:center}
.cinta b{color:#fff}

/* ---------- Secciones ---------- */
section{padding:82px 0}
.encab{max-width:720px;margin:0 auto 54px}
.encab.izq{margin-left:0}
.eyebrow{color:var(--verde);font-family:'Poppins';font-weight:700;letter-spacing:1.5px;text-transform:uppercase;font-size:.78rem;display:inline-block;margin-bottom:12px}
.eyebrow::before{content:"";display:inline-block;width:26px;height:2px;background:var(--verde);vertical-align:middle;margin-right:10px}
h2.titulo{font-size:2.1rem;font-weight:700;letter-spacing:-.3px}
.encab p{color:var(--gris);margin-top:14px;font-size:1.05rem}
.bg-gris{background:var(--gris-claro)}
.bg-verde{background:var(--verde-claro)}

/* ---------- Quiénes / dos columnas ---------- */
.dos-col{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.dos-col p{color:var(--gris);margin-bottom:16px}
.dos-col .media{border-radius:var(--radio);overflow:hidden;box-shadow:var(--sombra)}
.dos-col .media img{width:100%;height:100%;object-fit:cover;min-height:360px}
@media(max-width:900px){.dos-col{grid-template-columns:1fr;gap:34px}.dos-col .media img{min-height:auto}}

/* ---------- Estadísticas ---------- */
.stats{background:linear-gradient(120deg,var(--verde-osc),var(--verde-prof));color:#fff;position:relative;overflow:hidden}
.stats::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 30%,rgba(122,201,67,.18),transparent 45%)}
.stats-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:26px;text-align:center}
.stat .n{font-family:'Poppins';font-weight:800;font-size:2.9rem;color:#fff;line-height:1}
.stat .n span{color:var(--lima)}
.stat p{opacity:.9;margin-top:8px;font-size:.95rem}
@media(max-width:820px){.stats-grid{grid-template-columns:repeat(2,1fr);gap:38px 20px}.stat .n{font-size:2.3rem}}

/* ---------- Servicios (tarjetas con icono) ---------- */
.serv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.serv-card{background:#fff;border:1px solid var(--linea);border-radius:var(--radio);overflow:hidden;transition:.28s;position:relative}
.serv-card:hover{transform:translateY(-8px);box-shadow:var(--sombra-fuerte);border-color:transparent}
.serv-card .thumb{position:relative;aspect-ratio:16/11;overflow:hidden}
.serv-card .thumb img{width:100%;height:100%;object-fit:cover;transition:.45s}
.serv-card:hover .thumb img{transform:scale(1.08)}
.serv-card .thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(12,74,44,.55),transparent 55%)}
.serv-ico{position:absolute;bottom:12px;left:12px;z-index:2;width:46px;height:46px;background:#fff;border-radius:12px;display:grid;place-items:center;box-shadow:var(--sombra)}
.serv-ico svg{width:26px;height:26px;stroke:var(--verde);fill:none;stroke-width:1.8}
.serv-card .body{padding:18px 20px 22px}
.serv-card h3{font-size:1.08rem;color:var(--verde-osc);margin-bottom:8px}
.serv-card p{font-size:.86rem;color:var(--gris);line-height:1.5}
@media(max-width:1000px){.serv-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.serv-grid{grid-template-columns:1fr}}

/* ---------- Bloques ventajas ---------- */
.vent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.vcard{background:#fff;border-radius:var(--radio);padding:32px 28px;box-shadow:var(--sombra);border-top:4px solid var(--verde)}
.vcard .vico{width:54px;height:54px;border-radius:14px;background:var(--verde-claro);display:grid;place-items:center;margin-bottom:18px}
.vcard .vico svg{width:28px;height:28px;stroke:var(--verde-osc);fill:none;stroke-width:1.8}
.vcard h3{color:var(--verde-osc);font-size:1.18rem;margin-bottom:14px}
.vcard ul{list-style:none}
.vcard li{position:relative;padding-left:26px;margin-bottom:10px;color:var(--gris);font-size:.92rem}
.vcard li::before{content:"";position:absolute;left:0;top:7px;width:14px;height:14px;background:var(--lima);border-radius:50%;box-shadow:0 0 0 4px rgba(122,201,67,.18)}
@media(max-width:900px){.vent-grid{grid-template-columns:1fr}}

/* ---------- CTA franja ---------- */
.cta-band{background:linear-gradient(120deg,var(--verde),var(--verde-osc));color:#fff;border-radius:24px;padding:52px;display:flex;justify-content:space-between;align-items:center;gap:30px;box-shadow:var(--sombra-fuerte);position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;right:-40px;top:-40px;width:220px;height:220px;background:radial-gradient(circle,rgba(122,201,67,.3),transparent 70%)}
.cta-band h2{font-size:1.9rem;margin-bottom:8px;position:relative}
.cta-band p{opacity:.92;position:relative}
.cta-band .btns{position:relative;flex-shrink:0}
@media(max-width:820px){.cta-band{flex-direction:column;text-align:center;padding:40px 26px}}

/* ---------- Page hero (sub páginas) ---------- */
.page-hero{background:linear-gradient(125deg,var(--verde-prof),var(--verde-osc));color:#fff;padding:70px 0 66px;position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 20%,rgba(122,201,67,.2),transparent 45%)}
.page-hero .contenedor{position:relative;z-index:2}
.page-hero .eyebrow{color:var(--lima)}
.page-hero .eyebrow::before{background:var(--lima)}
.page-hero h1{font-size:2.6rem;font-weight:800;letter-spacing:-.5px}
.page-hero p{opacity:.92;max-width:640px;margin-top:14px;font-size:1.08rem}
.breadcrumb{font-size:.85rem;opacity:.8;margin-bottom:16px}
.breadcrumb a:hover{color:var(--lima)}
@media(max-width:700px){.page-hero h1{font-size:2rem}}

/* ---------- Detalle de análisis (servicios) ---------- */
.analisis{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}
.an-item{display:grid;grid-template-columns:200px 1fr;background:#fff;border:1px solid var(--linea);border-radius:var(--radio);overflow:hidden;box-shadow:var(--sombra);transition:.25s}
.an-item:hover{box-shadow:var(--sombra-fuerte);transform:translateY(-4px)}
.an-item .im{overflow:hidden}
.an-item .im img{width:100%;height:100%;object-fit:cover;min-height:180px}
.an-item .tx{padding:22px}
.an-item h3{color:var(--verde-osc);font-size:1.15rem;margin-bottom:8px;display:flex;align-items:center;gap:10px}
.an-item h3 svg{width:22px;height:22px;stroke:var(--verde);fill:none;stroke-width:1.8;flex-shrink:0}
.an-item p{font-size:.88rem;color:var(--gris)}
@media(max-width:1000px){.analisis{grid-template-columns:1fr}}
@media(max-width:520px){.an-item{grid-template-columns:1fr}.an-item .im img{min-height:200px}}

/* ---------- Timeline (historia) ---------- */
.timeline{position:relative;max-width:820px;margin:0 auto;padding-left:34px}
.timeline::before{content:"";position:absolute;left:8px;top:6px;bottom:6px;width:3px;background:linear-gradient(var(--verde),var(--verde-claro))}
.tl-item{position:relative;margin-bottom:34px}
.tl-item::before{content:"";position:absolute;left:-34px;top:4px;width:19px;height:19px;border-radius:50%;background:#fff;border:4px solid var(--verde)}
.tl-item .yr{font-family:'Poppins';font-weight:700;color:var(--verde-osc);font-size:1.1rem;margin-bottom:6px}
.tl-item p{color:var(--gris);font-size:.95rem}

/* ---------- Fundadores ---------- */
.team{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;max-width:820px;margin:0 auto}
.member{background:#fff;border-radius:var(--radio);overflow:hidden;box-shadow:var(--sombra);text-align:center;padding-bottom:24px;transition:.25s}
.member:hover{transform:translateY(-6px);box-shadow:var(--sombra-fuerte)}
.member .ph{aspect-ratio:1/1;overflow:hidden;background:var(--verde-claro)}
.member .ph img{width:100%;height:100%;object-fit:cover}
.member h3{margin-top:20px;color:var(--verde-osc);font-size:1.25rem}
.member .rol{color:var(--verde);font-weight:600;font-size:.9rem;margin-top:4px}
.member .desc{color:var(--gris);font-size:.86rem;margin-top:6px}
@media(max-width:640px){.team{grid-template-columns:1fr}}

/* ---------- Misión / visión / valores ---------- */
.mv-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.mv-card{padding:36px;border-radius:var(--radio);color:#fff;position:relative;overflow:hidden;box-shadow:var(--sombra)}
.mv-card.mis{background:linear-gradient(135deg,var(--verde),var(--verde-osc))}
.mv-card.vis{background:linear-gradient(135deg,var(--verde-osc),var(--verde-prof))}
.mv-card .vico{width:56px;height:56px;border-radius:14px;background:rgba(255,255,255,.16);display:grid;place-items:center;margin-bottom:18px}
.mv-card .vico svg{width:30px;height:30px;stroke:#fff;fill:none;stroke-width:1.7}
.mv-card h3{font-size:1.5rem;margin-bottom:12px}
.mv-card p{opacity:.95;font-size:.98rem}
@media(max-width:820px){.mv-grid{grid-template-columns:1fr}}
.valores-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:14px}
.val{background:#fff;border-radius:14px;padding:24px;text-align:center;box-shadow:var(--sombra);border-bottom:3px solid var(--lima)}
.val .vico{width:52px;height:52px;margin:0 auto 14px;border-radius:50%;background:var(--verde-claro);display:grid;place-items:center}
.val .vico svg{width:26px;height:26px;stroke:var(--verde-osc);fill:none;stroke-width:1.8}
.val h4{color:var(--verde-osc);margin-bottom:6px}
.val p{font-size:.85rem;color:var(--gris)}
@media(max-width:820px){.valores-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.valores-grid{grid-template-columns:1fr}}

/* ---------- Publicaciones I+D ---------- */
.pubs{display:grid;gap:26px}
.pub{display:grid;grid-template-columns:340px 1fr;gap:0;background:#fff;border:1px solid var(--linea);border-radius:var(--radio);overflow:hidden;box-shadow:var(--sombra);transition:.25s}
.pub:hover{box-shadow:var(--sombra-fuerte)}
.pub:nth-child(even){grid-template-columns:1fr 340px}
.pub:nth-child(even) .pim{order:2}
.pub .pim{overflow:hidden}
.pub .pim img{width:100%;height:100%;object-fit:cover;min-height:250px}
.pub .ptx{padding:30px}
.pub .tag{display:inline-block;background:var(--verde-claro);color:var(--verde-osc);font-size:.74rem;font-weight:700;padding:5px 12px;border-radius:30px;margin-bottom:12px;letter-spacing:.3px}
.pub h3{color:var(--tinta);font-size:1.25rem;margin-bottom:10px;line-height:1.3}
.pub p{color:var(--gris);font-size:.92rem;margin-bottom:16px}
.pub a.link{color:var(--verde);font-weight:600;font-size:.9rem;display:inline-flex;align-items:center;gap:6px}
.pub a.link:hover{color:var(--verde-osc);gap:10px}
@media(max-width:900px){.pub,.pub:nth-child(even){grid-template-columns:1fr}.pub:nth-child(even) .pim{order:0}.pub .pim img{min-height:210px}}

/* ---------- Contacto ---------- */
.cont-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:44px}
.info-card{background:var(--verde-claro);border-radius:var(--radio);padding:34px}
.info-item{display:flex;gap:16px;margin-bottom:24px}
.info-item .ii{width:46px;height:46px;flex-shrink:0;border-radius:12px;background:#fff;display:grid;place-items:center;box-shadow:var(--sombra)}
.info-item .ii svg{width:22px;height:22px;stroke:var(--verde);fill:none;stroke-width:1.8}
.info-item h4{color:var(--verde-osc);margin-bottom:2px;font-size:1.02rem}
.info-item p{color:var(--gris);font-size:.92rem}
form{display:flex;flex-direction:column;gap:16px}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label{font-size:.85rem;font-weight:600;color:var(--tinta);margin-bottom:6px;display:block}
input,textarea{width:100%;padding:13px 15px;border:1px solid #d7ded9;border-radius:10px;font-family:inherit;font-size:.95rem;background:#fff;transition:.2s}
input:focus,textarea:focus{outline:none;border-color:var(--verde);box-shadow:0 0 0 3px rgba(31,138,84,.14)}
@media(max-width:900px){.cont-grid{grid-template-columns:1fr}.f-row{grid-template-columns:1fr}}
.map-wrap{border-radius:var(--radio);overflow:hidden;box-shadow:var(--sombra);margin-top:40px;height:340px}
.map-wrap iframe{width:100%;height:100%;border:0}

/* ---------- Cursos / formación ---------- */
.cursos-hero{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.cursos-hero .media{border-radius:var(--radio);overflow:hidden;box-shadow:var(--sombra-fuerte)}
@media(max-width:900px){.cursos-hero{grid-template-columns:1fr}}
.beneficios{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:10px}
.ben{background:#fff;border-radius:var(--radio);padding:28px;box-shadow:var(--sombra);text-align:center}
.ben .vico{width:56px;height:56px;margin:0 auto 16px;border-radius:16px;background:var(--verde-claro);display:grid;place-items:center}
.ben .vico svg{width:28px;height:28px;stroke:var(--verde-osc);fill:none;stroke-width:1.8}
.ben h4{color:var(--verde-osc);margin-bottom:8px}
.ben p{color:var(--gris);font-size:.9rem}
@media(max-width:820px){.beneficios{grid-template-columns:1fr}}

/* ---------- Footer ---------- */
footer{background:var(--tinta);color:#a9c1b3;padding:60px 0 26px;font-size:.92rem}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:36px;margin-bottom:40px}
.foot-brand img{height:56px;margin-bottom:16px}
.foot-brand p{color:#8fa89a;font-size:.88rem;max-width:280px}
footer h5{color:#fff;font-family:'Poppins';font-size:1rem;margin-bottom:16px}
footer ul{list-style:none}
footer ul li{margin-bottom:10px}
footer ul a{color:#a9c1b3;font-size:.9rem;transition:.2s}
footer ul a:hover{color:var(--lima);padding-left:4px}
.foot-contact p{margin-bottom:10px;display:flex;gap:10px;align-items:flex-start;color:#a9c1b3;font-size:.9rem}
.foot-contact svg{width:18px;height:18px;stroke:var(--lima);fill:none;stroke-width:1.8;flex-shrink:0;margin-top:2px}
.redes{display:flex;gap:12px;margin-top:16px}
.redes a{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.08);display:grid;place-items:center;transition:.25s}
.redes a:hover{background:var(--verde);transform:translateY(-3px)}
.redes svg{width:18px;height:18px;fill:#fff}
.copy{border-top:1px solid rgba(255,255,255,.1);padding-top:22px;text-align:center;color:#7d968a;font-size:.82rem}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr;gap:30px}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr}}

/* ---------- WhatsApp flotante ---------- */
.wa-float{position:fixed;bottom:24px;right:24px;z-index:200;width:58px;height:58px;border-radius:50%;background:#25d366;display:grid;place-items:center;box-shadow:0 8px 24px rgba(37,211,102,.45);transition:.25s;animation:waPulse 2.4s infinite}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:32px;height:32px;fill:#fff}
@keyframes waPulse{0%{box-shadow:0 8px 24px rgba(37,211,102,.45),0 0 0 0 rgba(37,211,102,.5)}70%{box-shadow:0 8px 24px rgba(37,211,102,.45),0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 8px 24px rgba(37,211,102,.45),0 0 0 0 rgba(37,211,102,0)}}

/* ---------- Animaciones scroll ---------- */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .7s cubic-bezier(.2,.7,.3,1),transform .7s cubic-bezier(.2,.7,.3,1)}
.reveal.visible{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

.aviso{background:#fff8e1;border-bottom:1px solid #ffe08a;color:#7a5b00;font-size:.82rem;text-align:center;padding:8px 16px}

/* =========================================================
   MEJORAS PREMIUM
   ========================================================= */

/* --- Barra de progreso de scroll --- */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:100%;transform:scaleX(0);transform-origin:0 50%;background:linear-gradient(90deg,var(--verde),var(--lima));z-index:300;transition:transform .05s linear}

/* --- Canvas de partículas del hero --- */
#hero-canvas{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none}
.hero .contenedor{z-index:3}
.hero-grid-lines{z-index:1}

/* --- Hero: gradiente animado + halo pulsante --- */
.hero{background:linear-gradient(125deg,var(--verde-prof) 0%,var(--verde-osc) 45%,var(--verde) 100%);background-size:180% 180%;animation:gradShift 16s ease infinite}
@keyframes gradShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
.hero .pill{backdrop-filter:blur(4px);animation:floatY 5s ease-in-out infinite}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.hero-visual .foto{position:relative}
.hero-visual .foto::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);border-radius:20px}
.hero-visual::before{content:"";position:absolute;inset:-30px;background:radial-gradient(circle,rgba(122,201,67,.28),transparent 65%);z-index:-1;animation:pulseGlow 4s ease-in-out infinite}
@keyframes pulseGlow{0%,100%{opacity:.5;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}}
.hero-badge{animation:floatY 4.5s ease-in-out infinite}

/* --- Botones: brillo al pasar --- */
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .6s}
.btn:hover::after{left:140%}

/* --- Marquee de sectores --- */
.marquee{background:var(--tinta);padding:20px 0;overflow:hidden;position:relative}
.marquee::before,.marquee::after{content:"";position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none}
.marquee::before{left:0;background:linear-gradient(90deg,var(--tinta),transparent)}
.marquee::after{right:0;background:linear-gradient(270deg,var(--tinta),transparent)}
.marquee-track{display:flex;gap:52px;width:max-content;animation:scrollX 26s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{color:#cfe0d6;font-family:'Poppins';font-weight:600;font-size:1.05rem;display:flex;align-items:center;gap:12px;white-space:nowrap;opacity:.85}
.marquee-track span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--lima)}
@keyframes scrollX{to{transform:translateX(-50%)}}

/* --- Estadísticas PRO con anillo de progreso --- */
.stats-pro{background:radial-gradient(circle at 50% 0%,var(--verde-osc),var(--verde-prof) 70%);position:relative;overflow:hidden}
.stats-pro::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:40px 40px}
.stats-pro .contenedor{position:relative;z-index:2}
.stats-pro-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.stat-pro{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:34px 24px;text-align:center;backdrop-filter:blur(8px);transition:.3s;position:relative;overflow:hidden}
.stat-pro:hover{transform:translateY(-8px);background:rgba(255,255,255,.1);box-shadow:0 20px 40px rgba(0,0,0,.25)}
.stat-pro .ring{position:relative;width:120px;height:120px;margin:0 auto 16px}
.stat-pro svg{transform:rotate(-90deg)}
.ring-bg{fill:none;stroke:rgba(255,255,255,.12);stroke-width:9}
.ring-fg{fill:none;stroke:url(#gradRing);stroke-width:9;stroke-linecap:round;stroke-dasharray:314;stroke-dashoffset:314;transition:stroke-dashoffset .1s}
.ring-ico{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:34px;height:34px}
.ring-ico svg{transform:none;width:34px;height:34px;stroke:var(--lima);fill:none;stroke-width:1.8}
.stat-pro .num{font-family:'Poppins';font-weight:800;font-size:2.4rem;color:#fff;line-height:1}
.stat-pro .num .suf{color:var(--lima)}
.stat-pro p{color:#bfe0cf;margin-top:8px;font-size:.9rem}
@media(max-width:900px){.stats-pro-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.stats-pro-grid{grid-template-columns:1fr}}

/* --- Tarjetas de servicio: tilt + glow --- */
.serv-card[data-tilt]{transition:transform .2s ease,box-shadow .28s}
.serv-card[data-tilt]:hover{box-shadow:0 26px 50px rgba(12,74,44,.22)}
.serv-card .serv-ico{transition:.3s}
.serv-card:hover .serv-ico{transform:scale(1.1) rotate(-4deg)}

/* --- Realce de encabezados de sección con línea --- */
h2.titulo{position:relative;display:inline-block}
.encab.centro h2.titulo::after{content:"";display:block;width:56px;height:3px;background:linear-gradient(90deg,var(--verde),var(--lima));border-radius:3px;margin:16px auto 0}

/* --- Franja cinta con hover --- */
.cinta .contenedor span{transition:.2s}
.cinta .contenedor span:hover{color:#fff;transform:translateY(-2px)}

/* --- Carrusel del hero --- */
.hero-slider{position:relative}
.hs-track{display:flex;width:100%;height:100%;transition:transform .6s cubic-bezier(.4,0,.2,1)}
.hs-slide{min-width:100%;width:100%;height:100%;object-fit:cover;display:block}
.hs-dots{position:absolute;bottom:14px;left:0;right:0;display:flex;gap:8px;justify-content:center;z-index:4}
.hs-dots button{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.55);cursor:pointer;transition:.25s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.hs-dots button.active{background:#fff;width:24px;border-radius:5px}
.hs-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:38px;height:38px;border:0;border-radius:50%;background:rgba(18,38,28,.45);color:#fff;font-size:1.3rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:.2s;backdrop-filter:blur(3px)}
.hs-arrow:hover{background:rgba(18,38,28,.75)}
.hs-prev{left:10px}.hs-next{right:10px}
@media(max-width:520px){.hs-arrow{display:none}}

/* --- Galería de instalaciones --- */
.galeria{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:16px}
.g-item{position:relative;overflow:hidden;border-radius:14px;cursor:pointer;box-shadow:var(--sombra)}
.g-item img{width:100%;height:100%;object-fit:cover;transition:.5s}
.g-item::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(12,74,44,.5),transparent 55%);opacity:0;transition:.3s}
.g-item::before{content:"⤢";position:absolute;z-index:2;top:50%;left:50%;transform:translate(-50%,-50%) scale(.6);color:#fff;font-size:1.8rem;opacity:0;transition:.3s}
.g-item:hover img{transform:scale(1.08)}
.g-item:hover::after{opacity:1}
.g-item:hover::before{opacity:1;transform:translate(-50%,-50%) scale(1)}
.g-item .cap{position:absolute;z-index:2;bottom:12px;left:14px;right:14px;color:#fff;font-family:'Poppins';font-weight:600;font-size:.9rem;opacity:0;transform:translateY(8px);transition:.3s}
.g-item:hover .cap{opacity:1;transform:none}
.g-big{grid-column:span 2;grid-row:span 2}
.g-tall{grid-row:span 2}
.g-wide{grid-column:span 2}
@media(max-width:900px){.galeria{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px}.g-big{grid-column:span 2}}
@media(max-width:560px){.galeria{grid-template-columns:1fr;grid-auto-rows:220px}.g-big,.g-tall,.g-wide{grid-column:auto;grid-row:auto}}

/* --- Lig
/* Fallback: si el JS no corre, el contenido siempre es visible */
html:not(.js) .reveal{opacity:1 !important;transform:none !important}

/* --- Seccion de video (re-agregado) --- */
.badge-play{display:inline-flex;align-items:center;gap:10px;background:var(--verde-claro);color:var(--verde-osc);font-weight:600;font-size:.85rem;padding:8px 16px;border-radius:30px;margin-bottom:18px}
.badge-play svg{width:16px !important;height:16px !important;fill:var(--verde);flex:0 0 auto}
.video-sec{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.video-frame{position:relative;width:100%;max-width:330px;margin:0 auto;border-radius:26px;overflow:hidden;box-shadow:var(--sombra-fuerte);background:#000;aspect-ratio:9/16;border:6px solid #12261c}
.video-frame video{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:900px){.video-sec{grid-template-columns:1fr;gap:32px}.video-frame{max-width:300px}}

/* --- Lightbox (re-agregado) --- */
.lightbox{position:fixed;inset:0;z-index:400;background:rgba(8,30,20,.92);display:none;align-items:center;justify-content:center;backdrop-filter:blur(4px)}
.lightbox.open{display:flex}
.lightbox img{max-width:88vw;max-height:86vh;border-radius:12px}
.lb-close{position:absolute;top:22px;right:30px;color:#fff;font-size:2.4rem;cursor:pointer;line-height:1}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:3rem;cursor:pointer;padding:0 22px;user-select:none;opacity:.7}
.lb-nav:hover{opacity:1}
.lb-prev{left:6px}.lb-next{right:6px}

/* --- Seguridad: cualquier SVG suelto no se agranda --- */
svg{max-width:100%}

/* --- Carrusel Nuestros Servicios --- */
.sv-carousel{position:relative;overflow:hidden;background:var(--verde-prof)}
.sv-carousel .hs-track{display:flex;height:auto}
.sv-carousel .hs-slide{min-width:100%;width:100%;height:auto;min-height:500px;display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center;position:relative;padding:90px 24px;object-fit:unset}
.sv-carousel .hs-slide::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(18,101,59,.80),rgba(12,74,44,.88))}
.sv-inner{position:relative;z-index:2;max-width:720px;text-align:center;color:#fff}
.sv-eyebrow{display:inline-block;background:var(--lima);color:#0c4a2c;font-family:'Poppins';font-weight:700;letter-spacing:1px;text-transform:uppercase;font-size:.72rem;padding:5px 14px;border-radius:20px;margin-bottom:16px}
.sv-inner h2{font-size:2.6rem;color:#fff;margin-bottom:14px;letter-spacing:-.5px}
.sv-inner p{font-size:1.08rem;opacity:.96;margin-bottom:26px;line-height:1.6}
.sv-carousel .hs-dots{bottom:22px}
.sv-carousel .hs-arrow{width:46px;height:46px;font-size:1.7rem;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.35)}
.sv-carousel .hs-arrow:hover{background:rgba(255,255,255,.3)}
@media(max-width:700px){.sv-inner h2{font-size:1.9rem}.sv-carousel .hs-slide{min-height:540px}}
