/* Fuentes alojadas en la propia web (sin Google): más rápidas y sin enviar datos a terceros */
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/inter-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/poppins-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/poppins-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--verde:#17702f;--verde-2:#1f8a3b;--verde-osc:#0d4a1f;--claro:#9af29a;--vivo:#3ddc34;--navy:#02072f;--txt:#14201a;--f-h:"Poppins","Segoe UI",system-ui,sans-serif;--f-b:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--f-b);font-size:1.0625rem;line-height:1.6;color:var(--txt);background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"kern","liga","calt";-webkit-text-size-adjust:100%}
img{max-width:100%;display:block}a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--f-h);font-weight:600;margin:0;line-height:1.18;letter-spacing:-.015em;text-wrap:balance;text-transform:capitalize}
p{text-wrap:pretty}
:focus-visible{outline:3px solid var(--vivo);outline-offset:3px}
::selection{background:var(--claro);color:var(--verde-osc)}
.wrap{width:min(1140px,92%);margin-inline:auto}
.eyebrow{font:600 0.875rem var(--f-h);letter-spacing:.15em;text-transform:uppercase;margin:0 0 18px 15px}
.eyebrow--w{color:#fff}
.btn{display:inline-block;background:linear-gradient(135deg,var(--verde-2),var(--verde));color:#fff;font:600 1.0625rem/1.2 var(--f-b);letter-spacing:.01em;padding:17px 32px;border:0;border-radius:6px;cursor:pointer;box-shadow:0 6px 16px rgba(23,112,47,.28);transition:filter .2s,transform .2s,box-shadow .2s}
.btn:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 10px 22px rgba(23,112,47,.35)}
/* Header */
.header{position:fixed;inset:0 0 auto;z-index:50;background:rgba(0,0,0,.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .3s,box-shadow .3s}
.header.is-scrolled{background:linear-gradient(135deg,var(--verde-osc),var(--verde));box-shadow:0 2px 14px rgba(0,0,0,.22)}
.header__in{width:min(1716px,90%);margin-inline:auto;height:78px;display:grid;grid-template-columns:1fr auto 1.2fr;align-items:center}
.logo img{height:58px;width:auto}
.nav{display:flex;gap:40px;align-items:center}
.nav__a{display:block;color:#fff;font-weight:600;padding:26px 0 22px;border-bottom:3px solid transparent}
.nav__a.is-active{color:var(--claro);border-color:var(--claro)}
.caret{display:inline-block;margin-left:8px;border:5px solid transparent;border-top:6px solid currentColor;border-bottom:0;vertical-align:middle}
.nav__item{position:relative}
.sub{position:absolute;top:100%;left:0;min-width:270px;background:var(--verde);display:none}
.sub a{display:block;color:#fff;padding:12px 20px;font-size:1rem}.sub a:hover{background:rgba(255,255,255,.12)}
.nav__item:hover .sub,.nav__item:focus-within .sub{display:block}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer;justify-self:end}
.burger span{display:block;width:28px;height:3px;background:#fff;margin:6px 0;border-radius:2px}
/* Hero */
.hero{position:relative;min-height:80vh;display:flex;align-items:center;background:#1b2a1b;overflow:hidden}
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.35)}
.hero__in{position:relative;z-index:1;padding:120px 0 80px 8.6vw;color:#fff}
.hero h1{font-size:clamp(2.125rem,4vw,3.5rem);text-transform:none;margin-bottom:26px;max-width:720px}
.hero__p{margin:0 0 40px;font-size:1.125rem}
.hero__pause{display:flex;align-items:center;gap:10px;margin-top:20px;padding:19px 32px}
.hero .btn{display:inline-flex}.hero__in>.btn{display:flex;width:max-content}
/* Logos */
.logos{display:flex;align-items:center;gap:20px;padding:30px 0 60px;width:min(1140px,92%)}
.logos__track{display:flex;gap:40px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;flex:1}
.logos__track::-webkit-scrollbar{display:none}
.logos__track img{flex:0 0 calc((100% - 160px)/5);height:70px;object-fit:contain;scroll-snap-align:start}
.logos__b{background:none;border:0;font-size:1.375rem;cursor:pointer;padding:8px}
/* Empresa */
.empresa{display:grid;grid-template-columns:540px 1fr;gap:70px;align-items:center;padding:40px 0 90px}
/* Collage igual que la .com: imagen grande + pequena superpuesta abajo a la izquierda con marco blanco */
.collage{position:relative;width:100%;aspect-ratio:7/8}
.collage__main{width:100%;height:100%;object-fit:cover;border-radius:20px}
.collage__small{position:absolute;left:0;bottom:0;width:46%;height:50.6%;padding:2.7% 2.7% 0 0;background:#fff;border-radius:0 20px 0 20px}
.collage__small img{width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:0 0 0 20px}
.empresa h2{font-size:clamp(1.75rem,3vw,2.25rem);margin-bottom:22px}
.empresa p:not(.eyebrow){margin:0 0 30px}
/* Oficina */
.oficina{background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),var(--bg) center/cover #555;color:#fff;text-align:center;padding:60px 5% 70px}
.oficina h2{font-size:clamp(1.875rem,3vw,2.375rem);margin-bottom:14px}
.oficina p{max-width:700px;margin:0 auto 28px}
/* Particulares / Negocios */
.seccion{padding:30px 0 70px}
.cab{display:grid;grid-template-columns:1fr 1fr auto;gap:40px;align-items:center;margin-bottom:50px}
.cab h2{font-size:clamp(1.75rem,3vw,2.25rem)}.cab p:not(.eyebrow){margin:0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-inline:20px}
.card{background:#fff;border-radius:12px;box-shadow:0 4px 18px rgba(14,60,28,.12);overflow:hidden}
.card>img{width:100%;height:255px;object-fit:cover}
.card__b{padding:16px 40px 52px}
.ico{width:40px;height:40px;color:var(--verde-2);margin-bottom:14px}.ico--png{width:56px;height:auto}
.card h3{font-size:1.25rem;margin-bottom:10px}.card p{margin:0 0 20px}
.mas{color:var(--verde);font-weight:500}
.neg{display:flex;flex-wrap:wrap;justify-content:center;gap:30px}
.nc{position:relative;flex:0 0 calc((100% - 60px)/3);height:444px;border-radius:12px;overflow:hidden;isolation:isolate;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;padding:0 20px 38px}
.nc:nth-child(n+4){flex-basis:calc((100% - 60px)/3 + 16px)}
.nc h3{font-size:1.75rem;margin-bottom:12px}.nc p{margin:0;font-size:0.9375rem}
/* Carbono */
.carbono{background:linear-gradient(rgba(18,92,44,.9),rgba(18,92,44,.9)),var(--bg) center/cover #125c2c;color:#fff;padding:90px 0}
.carbono__in{display:grid;grid-template-columns:1.05fr 1fr;gap:70px;align-items:center}
.carbono h2{font-size:clamp(1.75rem,3.2vw,2.5rem);margin-bottom:22px}.carbono p:not(.eyebrow){margin:0}
.barra{position:relative;margin-bottom:26px}
.barra span{display:block;font-weight:500;font-size:1.125rem;margin-bottom:8px}
.barra em{position:absolute;top:0;font-style:normal;right:100%}
.barra i{display:block;height:9px;background:#fff;border-radius:5px;overflow:hidden}
.barra b{display:block;height:100%;width:0;background:var(--verde);transition:width 1.4s ease}
/* Footer */
.footer{background:var(--navy);color:#fff;padding:60px 0 30px}
.footer__grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:50px;padding-inline:20px}
.footer__logo{height:70px;width:auto;margin-bottom:24px}.footer p{margin:0}
.footer h4{font-size:1.3125rem;margin-bottom:26px;text-transform:none}
.flist,.fcon{list-style:none;margin:0;padding:0}
.flist li{padding-left:28px;margin-bottom:14px;position:relative}
.flist li::before{content:"›";position:absolute;left:4px;color:#3ddc34;font-weight:700}
.fcon li{display:flex;align-items:center;gap:14px;margin-bottom:16px}.fcon svg{color:#3ddc34}
.in{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:4px;background:#3ddc34;color:var(--navy);font-weight:700;margin-top:8px}
.ue{text-align:center;margin:60px 0 18px!important}
.ue__logos{display:flex;justify-content:center;align-items:center;gap:20px;margin-bottom:34px;flex-wrap:wrap}.ue__logos img{height:52px;width:auto}
.legal{display:flex;flex-wrap:wrap;justify-content:center;gap:0 14px;padding:0 4%}
.legal a+a::before{content:"";display:inline-block;width:2px;height:12px;background:#fff;margin-right:14px;vertical-align:middle}
.copy{text-align:center;margin-top:16px!important}
/* Flotantes */
.wa{position:fixed;right:40px;bottom:40px;z-index:60;width:60px;height:60px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 2px 10px rgba(0,0,0,.3)}.wa svg{width:34px}
.a11y{position:fixed;right:0;top:110px;z-index:60}
.a11y__t{width:52px;height:52px;background:var(--verde);color:#fff;border:0;cursor:pointer;padding:10px}
.a11y__p{position:absolute;right:0;top:52px;width:230px;list-style:none;margin:0;padding:8px;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.25)}
.a11y__p button{width:100%;text-align:left;background:none;border:0;padding:10px;font:inherit;cursor:pointer}.a11y__p button:hover{background:#eee}
.gris{filter:grayscale(1)}.contraste{filter:contrast(1.6)}.negativo{filter:invert(1) hue-rotate(180deg)}
.claro body,.claro .footer{background:#fff!important}.enlaces a{text-decoration:underline!important}.fuente *{font-family:Arial,sans-serif!important}
/* Móvil */
@media (max-width:1023px){
 .header__in{display:flex;justify-content:space-between;height:68px}.logo img{height:50px}
 .burger{display:block}
 .nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--verde);flex-direction:column;align-items:stretch;gap:0;padding-bottom:6px}
 .nav.is-open{display:flex}
 .nav__a{padding:14px 40px;font-size:1.375rem;border:0}.nav__a.is-active{background:#fff;color:var(--verde)}
 .sub{position:static;display:none;background:rgba(0,0,0,.15)}.nav__item.is-open .sub{display:block}
 .nav__item:hover .sub{display:none}.nav__item.is-open:hover .sub{display:block}
 .sub a{padding:12px 56px}
 .hero{min-height:88vh}.hero__in{padding:100px 8% 60px}
 .empresa{grid-template-columns:1fr;gap:34px;padding:30px 0 50px}
 .cab{grid-template-columns:1fr;text-align:center;justify-items:center;gap:18px}.cab .eyebrow{margin-left:0}
 .cards{grid-template-columns:1fr;gap:20px;padding:0}.card>img{height:auto;aspect-ratio:10/7}
 .neg{gap:20px}.nc,.nc:nth-child(n+4){flex-basis:100%;height:440px}
 .carbono__in,.footer__grid{grid-template-columns:1fr}.carbono{padding:60px 0}
 .footer__grid{text-align:left}.footer__logo{margin-inline:auto}
 .logos__track img{flex-basis:calc((100% - 40px)/2)}.logos{padding-bottom:30px}
 .wa{right:20px;bottom:20px;width:60px;height:60px}
}

/* Contacto */
.banner{height:277px;padding-top:78px;display:flex;align-items:center;justify-content:center;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),var(--bg) center/cover #444;color:#fff}
.banner h1{font-size:clamp(2rem,3vw,2.375rem);text-transform:none}
.contacto{display:grid;grid-template-columns:467px 1fr;gap:144px;align-items:center;padding:70px 0 50px;margin-left:max(4%,calc((100% - 1140px)/2 + 27px))}
.form label{display:block;font-size:1rem;margin:0 0 8px}.form label b{color:#e00;margin-left:6px;font-weight:400}
.form input[type=text],.form input[type=email],.form input[type=tel],.form textarea{width:100%;height:42px;border:1px solid #666;border-radius:4px;padding:8px 10px;font:inherit;margin-bottom:12px}
.form textarea{height:85px;resize:vertical;margin-bottom:4px}
.form input:invalid.tocado,.form textarea:invalid.tocado{border-color:#e00}
.form__nota{margin:0 0 10px;font-size:1rem}.form__sub{margin-top:8px}
.form input[type=file]{width:100%;border:1px solid #666;border-radius:4px;padding:0;font:inherit;margin-bottom:12px}
.form__ok{display:flex;gap:6px;align-items:flex-start;margin-bottom:14px;font-size:1rem;line-height:2.2}.form__ok label{margin:0}.form__ok input{margin-top:14px}
.form__ok a{color:var(--verde)}
.form .btn{width:100%;height:60px;padding:0}
.form__aviso{margin:12px 0 0;color:var(--verde);font-weight:500}
.cinfo h2{font-size:clamp(1.75rem,3vw,2.25rem);text-transform:none;margin-bottom:20px}.cinfo p:not(.eyebrow){margin:0 0 30px}
.cinfo__it{display:flex;gap:22px;align-items:center;margin-bottom:26px}
.cinfo__ic{width:72px;height:72px;background:var(--verde);border-radius:4px;display:grid;place-items:center;flex:none}.cinfo__ic svg{width:40px}
.cinfo__it h3{font-size:1.25rem;text-transform:none}
@media (max-width:1023px){
 .banner{height:246px;padding-top:68px}
 .contacto{grid-template-columns:1fr;gap:40px;margin:0 auto;padding:60px 0 50px}
 .cinfo{order:-1}.cinfo .eyebrow{margin-left:30px}.cinfo h2,.cinfo p,.cinfo__it{margin-left:0}
 .cinfo__ic{width:70px;height:70px}.contacto .form{padding:0 0}
}
/* Animaciones de entrada al hacer scroll */
.js [data-anim]{opacity:0;transition:opacity .8s ease,transform .8s cubic-bezier(.22,.61,.36,1);transition-delay:var(--d,0ms)}
.js [data-anim=fade-up]{transform:translateY(40px)}
.js [data-anim=fade-left]{transform:translateX(50px)}
.js [data-anim=fade-right]{transform:translateX(-50px)}
.js [data-anim=zoom-in]{transform:scale(.88)}
.js [data-anim].is-in{opacity:1;transform:none}
.btn[data-anim].is-in{transition:filter .2s}
@media (prefers-reduced-motion:reduce){.js [data-anim]{opacity:1;transform:none;transition:none}}
/* Ventana de WhatsApp */
.wa-pop{position:fixed;right:40px;bottom:115px;z-index:60;width:290px;background:#fff;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,.28);overflow:hidden;animation:popIn .3s ease}
.wa-pop[hidden]{display:none}
.wa-pop__h{background:#25d366;color:#fff;display:flex;justify-content:space-between;align-items:center;padding:12px 16px}
.wa-pop__x{background:none;border:0;color:#fff;font-size:1.625rem;line-height:1;cursor:pointer}
.wa-pop p{margin:0;padding:18px 16px 6px}.wa-pop .btn{display:block;margin:10px 16px 16px;text-align:center;background:#25d366;padding:12px}
@keyframes popIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (max-width:1023px){.wa-pop{right:20px;bottom:95px;width:min(290px,calc(100% - 40px))}}

/* Zoom de la imagen en las tarjetas de Negocios */
.nc__bg{position:absolute;inset:0;z-index:-1;background:#667 center/cover no-repeat;transition:transform 1.4s cubic-bezier(.25,.46,.45,.94)}
.nc__bg::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.45)}
.nc:hover .nc__bg,.nc:focus-visible .nc__bg,.nc.is-hover .nc__bg{transform:scale(1.15)}
@media (prefers-reduced-motion:reduce){.nc__bg{transition:none}}

/* Evita el desplazamiento lateral en móvil */
html,body{overflow-x:hidden;overflow-x:clip;max-width:100%}

/* Recorta el desborde de las animaciones laterales (evita el zoom-out en iOS) */
main{overflow-x:hidden;overflow-x:clip}

/* Aviso del formulario (enviado / error) */
.form__aviso{padding:14px 16px;border-radius:4px;border:1px solid}
.form__aviso.is-ok{color:var(--verde);background:#e8f6e8;border-color:var(--verde)}
.form__aviso.is-error{color:#b00020;background:#fdeaea;border-color:#b00020}

/* ===== Mejoras de tipografía, detalles y navegación ===== */
html{-webkit-tap-highlight-color:transparent}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.seccion,#contacto{scroll-margin-top:90px}
.eyebrow{color:var(--verde)}.eyebrow--w{color:#fff}
.hero h1{letter-spacing:-.025em;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.hero__p{max-width:560px;font-weight:500;text-shadow:0 1px 12px rgba(0,0,0,.35)}
.empresa__txt p:not(.eyebrow),.card p,.cab p:not(.eyebrow),.cinfo p:not(.eyebrow){color:#3b4a41}
.empresa__txt p:not(.eyebrow){max-width:62ch}
.barra em{font-variant-numeric:tabular-nums;font-weight:600}
.btn:active{transform:translateY(0)}
.card{transition:transform .3s,box-shadow .3s}
@media (hover:hover){.card:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgba(14,60,28,.18)}}
.form input:focus,.form textarea:focus{outline:0;border-color:var(--verde);box-shadow:0 0 0 3px rgba(23,112,47,.18)}
/* Menú: la línea verde sigue al ratón y la página actual conserva la suya */
.nav__a{transition:color .2s,border-color .2s}
@media (min-width:1024px){
 .nav__a:hover,.nav__item:hover>.nav__a,.nav__item:focus-within>.nav__a{color:var(--claro);border-color:var(--claro)}
}
