/* ==========================================
   RESET
========================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    font-family:'Montserrat',sans-serif;

    background:#0f1113;

    color:#ffffff;

    overflow-x:hidden;

    position:relative;

}

/* ==========================================
   VARIABLES
========================================== */

:root{

    --bg:#0f1113;
    --bg-dark:#090b0d;

    --white:#ffffff;

    --green:#6da85f;
    --green-hover:#7fbe70;

    --gray:#b8b8b8;

    --max-width:1200px;

}

/* ==========================================
   CONTAINER
========================================== */

.container{
    width:90%;
    max-width:var(--max-width);
    margin:auto;
}

/* ==========================================
   HEADER
========================================== */

header{

    position:fixed !important;

    top:0;

    left:0;

    width:100%;

    z-index:999999 !important;

    background:#000000 !important;

    height:130px;

    border-bottom:1px solid rgba(109,168,95,.20);
}

nav,
nav ul,
nav li,
nav a,
.logo{

    position:relative;

    z-index:9999999;

}

header *{

    position:relative;

    z-index:9999999;

}

header *{

    position:relative;

    z-index:9999999;

}

header.scrolled{

    background:rgba(0,0,0,.98);

    box-shadow:
    0 10px 30px rgba(0,0,0,.35);

}

header .container{
    position:relative;

    z-index:9999999;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:18px 0;

}

/* LOGO */

.logo{

    display:flex;

    align-items:center;

}

.logo img{

    height:auto;

    max-width:390px;

    display:block;

    transition:.3s;

}

.logo:hover img{

    transform:scale(1.03);

}

/* MENU */

nav ul{

    display:flex;

    list-style:none;

    gap:40px;

}

nav a{

    text-decoration:none;

    color:white;

    font-weight:600;

    transition:.3s;

}

nav a:hover{

    color:var(--green);

}

/* ==========================================
   HERO
========================================== */

#inicio{

    margin-top:130px;

    min-height:100vh;

    display:flex;

    align-items:center;

    position:relative;

    overflow:hidden;

}

#inicio::before{

    content:'';

    position:absolute;

    inset:0;

    background:
    linear-gradient(
        rgba(0,0,0,.08),
        rgba(0,0,0,.78)
    );

    z-index:-1;

}

.hero-picture{

    position:absolute;

    inset:0;

    z-index:-2;

    overflow:hidden;

}

.hero-picture img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    animation:heroZoom 12s ease-in-out infinite alternate;

}

@keyframes heroZoom{

    0%{

        transform:
        scale(1)
        translateX(0px)
        translateY(0px);

    }

    100%{

        transform:
        scale(1.15)
        translateX(-40px)
        translateY(-15px);

    }

}

#inicio .container{

    padding-top:30px;

}

#inicio span{

    color:var(--green);

    font-weight:600;

    text-transform:uppercase;

    letter-spacing:2px;

    font-size:1.9rem;

}

#inicio h1{

    font-size:clamp(3rem,6vw,4.2rem);

    line-height:1.05;

    max-width:950px;

    margin:25px 0;

    font-weight:800;

}

#inicio p{

    max-width:750px;

    color:#f0f0f0;

    font-size:1.3rem;

    line-height:1.8;

}

.hero-buttons{

    display:flex;

    gap:20px;

    margin-top:50px;

}

.hero-buttons a{

    text-decoration:none;

    padding:18px 35px;

    border-radius:10px;

    font-weight:600;

    transition:.3s;

}

.hero-buttons a:first-child{

    background:var(--green);

    color:white;

}

.hero-buttons a:first-child:hover{

    background:var(--green-hover);

    transform:translateY(-3px);

}

.hero-buttons a:last-child{

    border:1px solid rgba(255,255,255,.4);

    color:white;

}

.hero-buttons a:last-child:hover{

    background:white;

    color:black;

}
/* ==========================================
   SECCIONES GENERALES
========================================== */

section{

    padding:100px 0;

}

section h2{

    font-size:3rem;

    margin-bottom:25px;

}

section p{

    color:var(--gray);

    line-height:1.8;

}

/* ==========================================
   SERVICIOS
========================================== */

#servicios{

    background:#121519;
    padding-top: 135px;

}

#servicios .section-tag{

    display:block;

    text-align:center;

    margin-bottom:15px;

}

#servicios h2{

    text-align:center;

    max-width:900px;

    margin:0 auto 25px;

}

#servicios > .container > p{

    max-width:850px;

    margin:0 auto;

    text-align:center;

    color:var(--gray);

}

/* GRID */

.services-grid{

    margin-top:45px;

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(350px,1fr));

    gap:35px;

}

/* CARD */

.service-card{

    background:#151b22;

    border:1px solid rgba(255,255,255,.05);

    border-radius:25px;

    overflow:hidden;

    transition:.4s ease;

    position:relative;

}

.service-card:hover{

    transform:translateY(-10px);

    border-color:rgba(109,168,95,.35);

    box-shadow:
    0 20px 50px rgba(0,0,0,.35);

}

/* IMAGEN */

.service-image{

    height:240px;

    overflow:hidden;

}

.service-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:.6s ease;

}

.service-card:hover .service-image img{

    transform:scale(1.08);

}

/* CONTENIDO */

.service-content{

    padding:30px;

}

.service-content h3{

    color:white;

    font-size:1.5rem;

    margin-bottom:15px;

    line-height:1.2;

}

.service-content p{

    color:var(--gray);

    line-height:1.8;

    margin-bottom:25px;

}

/* CTA */

.service-content span{

    color:var(--green);

    font-weight:600;

    letter-spacing:.5px;

    transition:.3s;

}

.service-card:hover .service-content span{

    color:var(--green-hover);

}

/* EFECTO SUPERIOR */

.service-card::before{

    content:'';

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:3px;

    background:var(--green);

    transform:scaleX(0);

    transform-origin:left;

    transition:.4s;

}

.service-card:hover::before{

    transform:scaleX(1);

}

/* RESPONSIVE */

@media(max-width:900px){

    .services-grid{

        grid-template-columns:1fr;

    }

    .service-image{

        height:260px;

    }

}

@media(max-width:600px){

    .service-content{

        padding:25px;

    }

    .service-content h3{

        font-size:1.3rem;

    }

}

/* ==========================================
   METODOLOGIA
========================================== */

#metodologia{

    background:#0f1113;
    padding-top: 135px;

}

.metodologia-intro{

    max-width:850px;

    margin-top:20px;

    color:var(--gray);

    font-size:1.1rem;

}

.steps{

    margin-top:45px;

    display:grid;

    grid-template-columns:
    repeat(5,1fr);

    gap:20px;

}
.step-card{

    position:relative;

    background:#151b22;

    border:1px solid rgba(255,255,255,.05);

    border-radius:25px;

    padding:30px 25px;

    transition:.4s;

    overflow:hidden;

}

.step-card:hover{

    transform:translateY(-10px);

    border-color:rgba(109,168,95,.35);

    box-shadow:
    0 20px 50px rgba(0,0,0,.35);

}

.step-card::before{

    content:'';

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:4px;

    background:var(--green);

    transform:scaleX(0);

    transform-origin:left;

    transition:.4s;

}

.step-card:hover::before{

    transform:scaleX(1);

}

.step-number{

    font-size:3.5rem;

    font-weight:800;

    color:rgba(109,168,95,.18);

    line-height:1;

    margin-bottom:20px;

}

.step-card h3{

    color:white;

    margin-bottom:15px;

    font-size:1.4rem;

}

.step-card p{

    color:var(--gray);

    line-height:1.8;

}
/* ==========================================
   GALERIA
========================================== */

.gallery{

    margin-top:50px;

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(250px,1fr));

    gap:20px;

}

.gallery div{

    height:280px;

    background:#20252a;

    border-radius:15px;

}

/* ==========================================
   DIFERENCIADORES
========================================== */

#diferenciadores{

    background:#121519;

}

.diferenciadores-layout{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:100px;

    align-items:center;

}

/* ==========================
   MENSAJE IZQUIERDO
========================== */

.diferenciadores-message h2{

    font-size:clamp(3rem,5vw,5rem);

    line-height:1.05;

    margin:20px 0;

    color:white;

}

.diferenciadores-message h3{

    font-size:2rem;

    line-height:1.3;

    color:var(--green);

    margin-bottom:30px;

    font-weight:600;

}

.diferenciadores-message p{

    max-width:600px;

    font-size:1.1rem;

    line-height:1.9;

    color:var(--gray);

}

/* ==========================
   BENEFICIOS
========================== */

.diferenciadores-benefits{

    display:flex;

    flex-direction:column;

    gap:25px;

}

.benefit-item{

    display:flex;

    align-items:flex-start;

    gap:20px;

    padding:25px;

    border-radius:20px;

    background:#151b22;

    border:1px solid rgba(255,255,255,.05);

    transition:.35s;

}

.benefit-item:hover{

    transform:translateX(10px);

    border-color:rgba(109,168,95,.35);

    box-shadow:
    0 15px 40px rgba(0,0,0,.25);

}

.benefit-item span{

    color:var(--green);

    font-size:2rem;

    font-weight:700;

    line-height:1;

    margin-top:2px;

}

.benefit-item h4{

    color:white;

    font-size:1.2rem;

    margin-bottom:8px;

}

.benefit-item p{

    color:var(--gray);

    line-height:1.7;

}

/* ==========================
   EFECTO HOVER
========================== */

.benefit-item::before{

    content:'';

    width:4px;

    border-radius:10px;

    background:var(--green);

    position:absolute;

    left:0;

    top:0;

    bottom:0;

    opacity:0;

    transition:.35s;

}

.benefit-item{

    position:relative;

    overflow:hidden;

}

.benefit-item:hover::before{

    opacity:1;

}

/* ==========================
   RESPONSIVE
========================== */

@media(max-width:1000px){

    .diferenciadores-layout{

        grid-template-columns:1fr;

        gap:60px;

    }

    .diferenciadores-message h2{

        font-size:3rem;

    }

    .diferenciadores-message h3{

        font-size:1.5rem;

    }

}

/* ==========================================
   CTA
========================================== */

#cta{

    background:
    linear-gradient(
        rgba(0,0,0,.85),
        rgba(0,0,0,.85)
    );

    text-align:center;

}
/* ==========================================
   RESPONSIVE
========================================== */

@media(max-width:900px){

    nav{
        display:flex;
    }

    #inicio h1{
        font-size:3.5rem;
    }

    .hero-buttons{
        flex-direction:column;
        align-items:flex-start;
    }

    section h2{
        font-size:2.2rem;
    }

}

@media(max-width:600px){

    #inicio h1{
        font-size:2.8rem;
    }

    #inicio p{
        font-size:1rem;
    }

    .logo{
        font-size:1.1rem;
    }

}

/* ==========================================
   PROBLEMA
========================================== */

#problema{
     position:relative;

    overflow:hidden;

    background:#121519;
}

.problema-grid{
    display:grid;
    grid-template-columns:1.2fr 1fr;
    gap:80px;
    align-items:center;
}

.section-tag{
    color:var(--green);
    font-size:.85rem;
    font-weight:700;
    letter-spacing:2px;
}

.problema-content h2{
    margin:20px 0;
    line-height:1.2;
}

.problema-content p{
    margin-bottom:20px;
}

.problema-cards{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
}

.problema-cards article{
    background:#1a1f24;
    border-radius:20px;
    padding:30px;
    border:1px solid rgba(255,255,255,.05);
    transition:.3s;
}

.problema-cards article:hover{
    transform:translateY(-8px);
    border-color:rgba(109,168,95,.4);
}

.problema-cards h3{
    margin-bottom:10px;
}

/* ==========================================
   SOLUCION
========================================== */

#solucion{
    background:#0f1113;
     padding:90px 0;
}

.solucion-grid{

    display:grid;

    grid-template-columns:1.15fr .85fr;

    gap:80px;

    align-items:center;

}

.solucion-image{

    position:relative;

    border-radius:25px;

    overflow:hidden;

}

.solucion-image video{

    height:550px;

    width:auto;

    object-fit:contain;

    border-radius:20px;

    display:block;

    margin:0 auto;

}

.service-link{

    color:var(--green);

    text-decoration:none;

    font-weight:600;

    display:inline-block;

    transition:.3s;

}

.service-link:hover{

    transform:translateX(5px);

}

.solucion-content h2{

    font-size:clamp(2.3rem,3.5vw,3.8rem);

    line-height:1.1;

    margin:20px 0 30px;

}

.solution-list{

    margin:35px 0;

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:15px;

}

.solution-list div{

    background:#151b22;

    border:1px solid rgba(255,255,255,.05);

    padding:18px;

    border-radius:12px;

    transition:.3s;

}

.solution-list div:hover{

    transform:translateY(-3px);

    border-color:rgba(109,168,95,.35);

}

.solucion-content blockquote{

    margin-top:50px;

    padding-left:25px;

    border-left:5px solid var(--green);

    font-size:1.6rem;

    line-height:1.3;

    font-weight:700;

    color:white;

    max-width:600px;

}
/* ==========================================
   RESPONSIVE EXTRA
========================================== */

@media(max-width:900px){

    .problema-grid,
    .solucion-grid{
        grid-template-columns:1fr;
    }

    .problema-cards{
        grid-template-columns:1fr;
    }

    .solution-list{
        grid-template-columns:1fr;
    }

    .solucion-content h2{
        font-size:2.6rem;
    }

    .solucion-content blockquote{
        font-size:1.4rem;
    }

}

.solucion-content{

    padding-left:20px;

}

/* ==========================================
   QUOTE DEBAJO DE LA IMAGEN
========================================== */

.solucion-image-quote{

    margin-top:50px;

}

.solucion-image-quote blockquote{

    padding-left:25px;

    border-left:5px solid var(--green);

    font-size:1.8rem;

    line-height:1.3;

    font-weight:700;

    color:white;

}

@media(max-width:1200px){

    .steps{

        grid-template-columns:
        repeat(auto-fit,minmax(250px,1fr));

    }

}

/* ==========================================
   PROYECTOS
========================================== */

#proyectos{

    background:#121519;
    padding-top: 135px;

}

.proyectos-intro{

    max-width:850px;

    margin-top:20px;

    color:var(--gray);

}

.projects-grid{

    margin-top:45px;

    display:grid;

    grid-template-columns:
    repeat(2,1fr);

    gap:30px;

}

.project-card{

    position:relative;

    overflow:hidden;

    border-radius:30px;

    min-height:420px;

    cursor:pointer;

}

.project-card img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:.6s;

}

.project-card:hover img{

    transform:scale(1.08);

}

.project-overlay{

    position:absolute;

    inset:0;

    display:flex;

    flex-direction:column;

    justify-content:flex-end;

    padding:35px;

    background:
    linear-gradient(
        to top,
        rgba(0,0,0,.90),
        rgba(0,0,0,.10)
    );

}

.project-overlay span{

    color:var(--green);

    font-size:.9rem;

    font-weight:700;

    letter-spacing:2px;

    text-transform:uppercase;

    margin-bottom:12px;

}

.project-overlay h3{

    color:white;

    font-size:1.8rem;

    line-height:1.2;

    max-width:400px;

}

/* ==========================================
   INNOVACION
========================================== */

#innovacion{

    background:#121519;
    overflow:hidden;
    padding-top: 135px;

}

.innovacion-layout{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:60px;

    align-items:center;

}

.innovacion-content h2{

    margin:20px 0 25px;

    font-size:clamp(2.5rem,4vw,4rem);

    line-height:1.1;

}

.innovacion-content p{

    max-width:700px;

    color:var(--gray);

    line-height:1.9;

}

/* ITEMS */

.innovacion-items{

    margin-top:40px;

    display:flex;

    flex-direction:column;

    gap:20px;

}

.innovacion-item{

    background:#151b22;

    border:1px solid rgba(255,255,255,.05);

    border-radius:20px;

    padding:20px 25px;

    transition:.35s;

}

.innovacion-item:hover{

    transform:translateX(10px);

    border-color:rgba(109,168,95,.35);

}

.innovacion-item span{

    color:var(--green);

    margin-right:10px;

}

/* VISUAL */

.innovacion-visual{

    display:flex;

    justify-content:center;

    align-items:center;

    min-height:500px;

}

.innovation-core{

    position:relative;

    width:320px;

    height:320px;

}

.core-circle{

    position:absolute;

    inset:0;

    border-radius:50%;

    background:#151b22;

    border:2px solid rgba(109,168,95,.4);

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    z-index:10;

    box-shadow:
    0 0 60px rgba(109,168,95,.20);

}

.core-circle span{

    font-size:4rem;

    font-weight:800;

    color:white;

}

.core-circle small{

    margin-top:10px;

    font-size:.75rem;

    letter-spacing:2px;

    color:var(--gray);

    text-transform:uppercase;

}

.seres-visual{

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

}

.eco-manifesto{

    max-width:550px;

    margin-bottom:40px;

    text-align:center;

    font-size:1.8rem;

    line-height:1.8;

    font-weight:600;

    color:white;

}

.eco-manifesto span{

    color:var(--green);

    text-shadow:
    0 0 12px rgba(109,168,95,.35);

}

/* ANILLOS */

.pulse-ring{

    position:absolute;

    inset:-40px;

    border:2px solid rgba(109,168,95,.30);

    border-radius:50%;

    animation:pulse 4s infinite;

}

.pulse-ring.delay{

    animation-delay:2s;

}

/* ANIMACION */

@keyframes pulse{

    0%{

        transform:scale(.8);

        opacity:1;

    }

    100%{

        transform:scale(1.3);

        opacity:0;

    }

}

/* RESPONSIVE */

@media(max-width:1000px){

    .innovacion-layout{

        grid-template-columns:1fr;

        gap:70px;

    }

    .innovacion-visual{

        min-height:350px;

    }

    .innovation-core{

        width:240px;

        height:240px;

    }

    .core-circle span{

        font-size:3rem;

    }

}

.modelo-triadico{

    width:100%;

    max-width:650px;

    display:flex;

    justify-content:center;

    align-items:center;

    margin-bottom:40px;

}

.modelo-triadico img{

    width:100%;

    height:auto;

    display:block;

    border-radius:20px;

    transition:.4s;

    filter:
    drop-shadow(0 0 30px rgba(109,168,95,.15));

}

.modelo-triadico img:hover{

    transform:scale(1.02);

}

/* ==========================================
   NOSOTROS
========================================== */

#nosotros{

    background:#0f1113;
    padding-top: 135px;

}

.nosotros-layout{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:60px;

    align-items:center;

}

/* CONTENIDO */

.nosotros-content h2{

    margin:20px 0 30px;

    font-size:clamp(2.8rem,4vw,4.5rem);

    line-height:1.05;

    color:white;

}

.nosotros-content p{

    color:var(--gray);

    line-height:1.9;

    margin-bottom:20px;

}

/* VALORES */

.valores-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:25px;

}

.valor-card{

    background:#151b22;

    border:1px solid rgba(255,255,255,.05);

    border-radius:25px;

    padding:30px;

    transition:.35s;

}

.valor-card:hover{

    transform:translateY(-8px);

    border-color:rgba(109,168,95,.35);

    box-shadow:
    0 20px 40px rgba(0,0,0,.25);

}

.valor-card h3{

    color:white;

    margin-bottom:15px;

    font-size:1.3rem;

}

.valor-card p{

    color:var(--gray);

    line-height:1.7;

}

/* FRASE FINAL */

/* ==========================================
   NOSOTROS QUOTE PREMIUM
========================================== */

.nosotros-quote{

    margin-top:70px;

    text-align:center;

    padding-top:50px;

}

.nosotros-quote blockquote{

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:25px;

}

/* PALABRAS */

.nosotros-quote span{

    display:block;

    font-size:clamp(1.2rem,1.8vw,2rem);

    font-weight:700;

    letter-spacing:3px;

    color:white;

    text-transform:uppercase;

    transition:.35s;

}

.nosotros-quote span:hover{

    color:var(--green);

    transform:translateY(-3px);

}

/* LINEAS */

.nosotros-quote span::after{

    content:'';

    display:block;

    width:120px;

    height:2px;

    background:rgba(109,168,95,.5);

    margin:18px auto 0;

}

.nosotros-quote span:last-child::after{

    display:none;

}

/* ==========================================
   RESPONSIVE
========================================== */

@media(max-width:1000px){

    .nosotros-layout{

        grid-template-columns:1fr;

        gap:60px;

    }

    .valores-grid{

        grid-template-columns:1fr;

    }

    .nosotros-quote{

        margin-top:80px;

        padding-top:60px;

    }

    .nosotros-quote span{

        letter-spacing:2px;

    }

}

/* ==========================================
   CTA
========================================== */

#cta{

    background:#121519;

}

.cta-box{

    background:
    linear-gradient(
        135deg,
        #151b22,
        #101419
    );

    border:1px solid rgba(109,168,95,.20);

    border-radius:35px;

    padding:65px 60px;

    text-align:center;

    position:relative;

    overflow:hidden;

}

/* EFECTO DECORATIVO */

.cta-box::before{

    content:'';

    position:absolute;

    width:400px;

    height:400px;

    border-radius:50%;

    background:
    radial-gradient(
        circle,
        rgba(109,168,95,.12) 0%,
        rgba(109,168,95,0) 70%
    );

    top:-150px;

    right:-150px;

}

/* TITULO */

.cta-box h2{

    margin:20px auto;

    max-width:900px;

    font-size:clamp(2.5rem,4vw,4.5rem);

    line-height:1.1;

    color:white;

}

/* TEXTO */

.cta-box p{

    max-width:850px;

    margin:0 auto;

    color:var(--gray);

    line-height:1.9;

    font-size:1.1rem;

}

/* BOTON */

.cta-button{

    display:inline-block;

    margin-top:45px;

    background:var(--green);

    color:white;

    text-decoration:none;

    padding:22px 42px;

    border-radius:12px;

    font-weight:700;

    font-size:1rem;

    transition:.35s;

}

.cta-button:hover{

    background:var(--green-hover);

    transform:translateY(-4px);

    box-shadow:
    0 15px 35px rgba(109,168,95,.25);

}

/* RESPONSIVE */

@media(max-width:900px){

    .cta-box{

        padding:60px 35px;

    }

}

/* ==========================================
   CONTACTO
========================================== */

#contacto{

    background:#0f1113;
    padding-top: 135px;

}

.contact-layout{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:80px;

    align-items:start;

}

/* INFO */

.contact-info h2{

    margin:20px 0 25px;

    font-size:clamp(2.5rem,4vw,4rem);

    line-height:1.1;

}

.contact-info p{

    color:var(--gray);

    line-height:1.9;

}

.contact-items{

    margin-top:40px;

    display:flex;

    flex-direction:column;

    gap:25px;

}

.contact-item{

    padding-left:25px;

    border-left:4px solid var(--green);

}

.contact-item h3{

    color:white;

    margin-bottom:10px;

}

.contact-item p{

    color:var(--gray);

}

/* FORM */

.contact-form-box{

    background:#151b22;

    border:1px solid rgba(255,255,255,.05);

    border-radius:30px;

    padding:40px;

}

.contact-form-box form{

    display:flex;

    flex-direction:column;

    gap:20px;

}

.contact-form-box input,
.contact-form-box textarea{

    width:100%;

    background:#0f1113;

    border:1px solid rgba(255,255,255,.06);

    border-radius:12px;

    padding:18px;

    color:white;

    transition:.3s;

}

.contact-form-box input:focus,
.contact-form-box textarea:focus{

    outline:none;

    border-color:rgba(109,168,95,.5);

}

.contact-form-box textarea{

    min-height:180px;

    resize:none;

}

.contact-form-box button{

    background:var(--green);

    color:white;

    border:none;

    padding:20px;

    border-radius:12px;

    font-weight:700;

    cursor:pointer;

    transition:.3s;

}

.contact-form-box button:hover{

    background:var(--green-hover);

    transform:translateY(-3px);

}

/* RESPONSIVE */

@media(max-width:1000px){

    .contact-layout{

        grid-template-columns:1fr;

        gap:60px;

    }

}

/* ==========================================
   FOOTER
========================================== */

footer{

    background:#090b0d;

    border-top:1px solid rgba(255,255,255,.05);

    padding:90px 0 40px;

}

/* TOP */

.footer-top{

    display:grid;

    grid-template-columns:
    2fr 1fr 1fr;

    gap:60px;

}

.footer-brand h3{

    color:white;

    font-size:1.8rem;

    margin-bottom:20px;

    letter-spacing:1px;

}

.footer-brand p{

    color:var(--gray);

    line-height:1.9;

    max-width:500px;

}

/* TITULOS */

.footer-links h4,
.footer-contact h4{

    color:white;

    margin-bottom:20px;

}

/* LINKS */

.footer-links ul{

    list-style:none;

}

.footer-links li{

    margin-bottom:12px;

}

.footer-links a{

    color:var(--gray);

    text-decoration:none;

    transition:.3s;

}

.footer-links a:hover{

    color:var(--green);

}

/* CONTACT */

.footer-contact p{

    color:var(--gray);

    margin-bottom:12px;

}

/* DIVIDER */

.footer-divider{

    height:1px;

    background:rgba(255,255,255,.08);

    margin:50px 0 30px;

}

/* BOTTOM */

.footer-bottom{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:30px;

}

.footer-bottom p{

    color:#8b8b8b;

    font-size:.95rem;

}

/* RESPONSIVE */

@media(max-width:900px){

    .footer-top{

        grid-template-columns:1fr;

        gap:40px;

    }

    .footer-bottom{

        flex-direction:column;

        text-align:center;

    }

}

/* ==========================================
   FAQ SEO
========================================== */

#faq-seo{

    background:#121519;

    padding:20px 0;

}

.faq-intro{

    max-width:850px;

    margin:20px auto 60px;

    text-align:center;

    color:var(--gray);

}

.faq-container{

    max-width:1000px;

    margin:auto;

}

.faq-item{

    background:#151b22;

    border:1px solid rgba(255,255,255,.05);

    border-radius:25px;

    margin-bottom:20px;

    overflow:hidden;

    transition:.35s;

}

.faq-item:hover{

    border-color:rgba(109,168,95,.35);

    transform:translateY(-4px);

    box-shadow:
    0 20px 50px rgba(0,0,0,.25);

}

.faq-question{

    width:100%;

    background:none;

    border:none;

    color:white;

    cursor:pointer;

    padding:30px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    text-align:left;

    font-size:1.15rem;

    font-weight:600;

}

.faq-question span{

    color:var(--green);

    font-size:2rem;

    font-weight:300;

    transition:.35s;

}

.faq-answer{

    max-height:0;

    overflow:hidden;

    transition:max-height .45s ease;

}

.faq-answer p{

    padding:0 30px 30px;

    color:var(--gray);

    line-height:1.9;

}

.faq-item.active{

    border-color:rgba(109,168,95,.35);

}

.faq-item.active .faq-question span{

    transform:rotate(45deg);

}

.faq-item.active .faq-answer{

    max-height:1000px;

}

/* Línea verde superior igual que servicios */

.faq-item::before{

    content:'';

    display:block;

    height:3px;

    width:100%;

    background:var(--green);

    transform:scaleX(0);

    transform-origin:left;

    transition:.35s;

}

.faq-item:hover::before,
.faq-item.active::before{

    transform:scaleX(1);

}

/* Responsive */

@media(max-width:768px){

    .faq-question{

        font-size:1rem;

        padding:25px;

    }

    .faq-answer p{

        padding:0 25px 25px;

    }

}

@media (max-width:768px){

    .projects-grid{

        display:grid;

        grid-template-columns:1fr;

        gap:24px;

    }

}

@media (max-width:768px){

    .project-card{

        width:100%;

        max-width:none;

    }

}

/* ==========================================
   BOTON HAMBURGUESA
========================================== */

.menu-toggle{

    display:none;

    background:none;

    border:none;

    color:white;

    font-size:2.8rem;

    font-weight:300;

    cursor:pointer;

    transition:.3s;

}

/* ==========================================
   MENU MOVIL
========================================== */

.mobile-menu{

    position:fixed;

    top:0;

    left:100%;

    width:100%;

    height:100vh;

    background:#0f1113;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    gap:35px;

    transition:left .35s ease;

    z-index:9990;

}

.mobile-menu.active{

    left:0;

}

/* LINKS */

.mobile-menu a{

    color:white;

    text-decoration:none;

    font-size:2rem;

    font-weight:600;

    transition:.3s;

}

.mobile-menu a:hover{

    color:var(--green);

    transform:translateY(-2px);

}

/* ==========================================
   SOLO MOVIL
========================================== */

@media(max-width:900px){

    /* ocultar menu desktop */

    nav{

        display:none !important;

    }

    /* mostrar hamburguesa */

    .menu-toggle{

        display:block;

        position:fixed;

        top:22px;

        right:25px;

        z-index:9999;

    }

    /* logo */

    /* Logo móvil */

        .logo{

            display:flex;

            align-items:center;

        }

        .logo img{

            height:55px;

            width:300px;

            max-width:320px;

            object-fit:contain;

        }

}

/* ==========================================
   ANIMACION LINKS
========================================== */

.mobile-menu.active a{

    animation:menuFade .35s ease forwards;

}

@keyframes menuFade{

    from{

        opacity:0;

        transform:translateY(15px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

.close-menu{

    position:absolute;

    top:25px;

    right:25px;

    background:none;

    border:none;

    color:white;

    font-size:3rem;

    cursor:pointer;

}


.innovacion-highlight{

    margin-top:35px;

    padding:28px;

    background:
    linear-gradient(
        135deg,
        rgba(109,168,95,.08),
        rgba(109,168,95,.02)
    );

    border:1px solid rgba(109,168,95,.18);

    border-radius:24px;

}

.innovacion-highlight h3{

    font-size:1.5rem;

    line-height:1.3;

    margin-bottom:15px;

    color:white;

}

.innovacion-highlight p{

    color:var(--gray);

    line-height:1.8;

}


/* ==========================================
   PARTICULAS GLOBALES
========================================== */

.site-particles{

    position:fixed;

    inset:0;

    pointer-events:none;

    z-index:999;

    overflow:hidden;

}

.site-particles span{

    position:absolute;

    width:7px;

    height:7px;

    border-radius:50%;

    background:#6da85f;

    opacity:.85;

    mix-blend-mode:screen;

    box-shadow:

    0 0 8px rgba(109,168,95,.9),

    0 0 20px rgba(109,168,95,.9),

    0 0 40px rgba(109,168,95,.8),

    0 0 70px rgba(109,168,95,.6),

    0 0 100px rgba(109,168,95,.3);


    animation:
globalParticle linear infinite,
energyPulse 3s ease-in-out infinite;

}


/* ==========================================
   POSICIONES
========================================== */

.site-particles span:nth-child(1){left:2%;animation-duration:28s;animation-delay:-4s;}
.site-particles span:nth-child(2){left:4%;animation-duration:36s;animation-delay:-12s;}
.site-particles span:nth-child(3){left:6%;animation-duration:32s;animation-delay:-20s;}
.site-particles span:nth-child(4){left:8%;animation-duration:40s;animation-delay:-28s;}
.site-particles span:nth-child(5){left:10%;animation-duration:30s;animation-delay:-8s;}

.site-particles span:nth-child(6){left:12%;animation-duration:42s;animation-delay:-16s;}
.site-particles span:nth-child(7){left:14%;animation-duration:34s;animation-delay:-24s;}
.site-particles span:nth-child(8){left:16%;animation-duration:38s;animation-delay:-32s;}
.site-particles span:nth-child(9){left:18%;animation-duration:29s;animation-delay:-10s;}
.site-particles span:nth-child(10){left:20%;animation-duration:45s;animation-delay:-18s;}

.site-particles span:nth-child(11){left:22%;animation-duration:31s;animation-delay:-26s;}
.site-particles span:nth-child(12){left:24%;animation-duration:39s;animation-delay:-34s;}
.site-particles span:nth-child(13){left:26%;animation-duration:35s;animation-delay:-6s;}
.site-particles span:nth-child(14){left:28%;animation-duration:43s;animation-delay:-14s;}
.site-particles span:nth-child(15){left:30%;animation-duration:33s;animation-delay:-22s;}

.site-particles span:nth-child(16){left:32%;animation-duration:37s;animation-delay:-30s;}
.site-particles span:nth-child(17){left:34%;animation-duration:28s;animation-delay:-5s;}
.site-particles span:nth-child(18){left:36%;animation-duration:41s;animation-delay:-15s;}
.site-particles span:nth-child(19){left:38%;animation-duration:32s;animation-delay:-25s;}
.site-particles span:nth-child(20){left:40%;animation-duration:46s;animation-delay:-35s;}

.site-particles span:nth-child(21){left:42%;animation-duration:34s;animation-delay:-9s;}
.site-particles span:nth-child(22){left:44%;animation-duration:38s;animation-delay:-19s;}
.site-particles span:nth-child(23){left:46%;animation-duration:29s;animation-delay:-29s;}
.site-particles span:nth-child(24){left:48%;animation-duration:44s;animation-delay:-39s;}
.site-particles span:nth-child(25){left:50%;animation-duration:31s;animation-delay:-11s;}

.site-particles span:nth-child(26){left:52%;animation-duration:40s;animation-delay:-21s;}
.site-particles span:nth-child(27){left:54%;animation-duration:36s;animation-delay:-31s;}
.site-particles span:nth-child(28){left:56%;animation-duration:28s;animation-delay:-7s;}
.site-particles span:nth-child(29){left:58%;animation-duration:43s;animation-delay:-17s;}
.site-particles span:nth-child(30){left:60%;animation-duration:35s;animation-delay:-27s;}

.site-particles span:nth-child(31){left:62%;animation-duration:30s;animation-delay:-37s;}
.site-particles span:nth-child(32){left:64%;animation-duration:45s;animation-delay:-13s;}
.site-particles span:nth-child(33){left:66%;animation-duration:33s;animation-delay:-23s;}
.site-particles span:nth-child(34){left:68%;animation-duration:39s;animation-delay:-33s;}
.site-particles span:nth-child(35){left:70%;animation-duration:29s;animation-delay:-3s;}

.site-particles span:nth-child(36){left:72%;animation-duration:41s;animation-delay:-18s;}
.site-particles span:nth-child(37){left:74%;animation-duration:34s;animation-delay:-28s;}
.site-particles span:nth-child(38){left:76%;animation-duration:47s;animation-delay:-38s;}
.site-particles span:nth-child(39){left:78%;animation-duration:32s;animation-delay:-8s;}
.site-particles span:nth-child(40){left:80%;animation-duration:36s;animation-delay:-20s;}

.site-particles span:nth-child(41){left:82%;animation-duration:44s;animation-delay:-30s;}
.site-particles span:nth-child(42){left:84%;animation-duration:31s;animation-delay:-40s;}
.site-particles span:nth-child(43){left:86%;animation-duration:38s;animation-delay:-12s;}
.site-particles span:nth-child(44){left:88%;animation-duration:35s;animation-delay:-22s;}
.site-particles span:nth-child(45){left:90%;animation-duration:46s;animation-delay:-32s;}

.site-particles span:nth-child(46){left:92%;animation-duration:33s;animation-delay:-42s;}
.site-particles span:nth-child(47){left:94%;animation-duration:40s;animation-delay:-16s;}
.site-particles span:nth-child(48){left:95%;animation-duration:29s;animation-delay:-26s;}
.site-particles span:nth-child(49){left:96%;animation-duration:43s;animation-delay:-36s;}
.site-particles span:nth-child(50){left:97%;animation-duration:34s;animation-delay:-6s;}

.site-particles span:nth-child(51){left:98%;animation-duration:45s;animation-delay:-14s;}
.site-particles span:nth-child(52){left:99%;animation-duration:32s;animation-delay:-24s;}
.site-particles span:nth-child(53){left:15%;animation-duration:39s;animation-delay:-34s;}
.site-particles span:nth-child(54){left:35%;animation-duration:31s;animation-delay:-9s;}
.site-particles span:nth-child(55){left:55%;animation-duration:47s;animation-delay:-19s;}

.site-particles span:nth-child(56){left:75%;animation-duration:36s;animation-delay:-29s;}
.site-particles span:nth-child(57){left:85%;animation-duration:42s;animation-delay:-39s;}
.site-particles span:nth-child(58){left:45%;animation-duration:33s;animation-delay:-11s;}
.site-particles span:nth-child(59){left:65%;animation-duration:44s;animation-delay:-21s;}
.site-particles span:nth-child(60){left:25%;animation-duration:35s;animation-delay:-31s;}

/* ==========================================
   ANIMACION
========================================== */

@keyframes globalParticle{

    0%{

        transform:
        translateY(110vh)
        translateX(0px)
        scale(.8);

        opacity:0;

    }

    20%{

        opacity:.05;

    }

    50%{

        transform:
        translateY(0)
        translateX(20px)
        scale(1.4);

        opacity:.10;

    }

    100%{

        transform:
        translateY(-110vh)
        translateX(-25px)
        scale(.8);

        opacity:0;

    }

}

/* ==========================================
   CAPAS
========================================== */

header,
section,
footer{

    position:relative;

    z-index:2;

}

#inicio{

    z-index:3;

}


/* ==========================================
SERES VIVOS
========================================== */

#seres-vivos{

background:#121519;

overflow:hidden;

padding-bottom: 5px;
}

.seres-layout{

display:grid;

grid-template-columns:1.2fr 1fr;

gap:80px;

align-items:center;

}

.seres-content h2{

margin:20px 0 30px;

font-size:clamp(2.5rem,4vw,4rem);

line-height:1.1;

}

.seres-intro{

font-size:1.4rem;

color:white;

font-weight:600;

margin-bottom:25px;

}

.seres-content p{

color:var(--gray);

line-height:1.9;

margin-bottom:20px;

}

/* VISUAL */

.seres-visual{

display:flex;

justify-content:center;

align-items:center;

}

.ecosistema-core{

width:320px;

height:320px;

border-radius:50%;

display:flex;

flex-direction:column;

justify-content:center;

align-items:center;

text-align:center;

border:2px solid rgba(109,168,95,.25);

background:
radial-gradient(
    circle,
    rgba(109,168,95,.12),
    rgba(109,168,95,.02)
);

box-shadow:
0 0 40px rgba(109,168,95,.15),
inset 0 0 40px rgba(109,168,95,.08);

animation:ecosistemaPulse 6s ease-in-out infinite;

margin-bottom: 20px;

}

.ecosistema-core span{

font-size:3rem;

font-weight:800;

letter-spacing:2px;

}

.ecosistema-core small{

margin-top:15px;

color:var(--gray);

letter-spacing:2px;

font-size:.75rem;

}

@keyframes ecosistemaPulse{

0%{

    transform:scale(.95);

}

50%{

    transform:scale(1.05);

}

100%{

    transform:scale(.95);

}

}

@media(max-width:1000px){

.seres-layout{

    grid-template-columns:1fr;

    gap:60px;

}

.ecosistema-core{

    width:240px;

    height:240px;

}

}

.plant-icon{

    font-size:3rem;

    margin-bottom:15px;

    filter:
    drop-shadow(0 0 10px rgba(109,168,95,.6));

    animation:plantFloat 4s ease-in-out infinite;

}

@keyframes plantFloat{

    0%{

        transform:translateY(0px);

    }

    50%{

        transform:translateY(-8px);

    }

    100%{

        transform:translateY(0px);

    }

}

.whatsapp-float{

    position:fixed;

    right:25px;

    bottom:25px;

    width:68px;

    height:68px;

    border-radius:50%;

    background:#25D366;

    color:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    text-decoration:none;

    box-shadow:
        0 12px 30px rgba(0,0,0,.35);

    transition:.3s;

    z-index:999999;

}

.whatsapp-float i{

    font-size:2.3rem;

}

.whatsapp-float:hover{

    transform:translateY(-5px) scale(1.08);

}

/* ==========================================
   EMAIL FLOTANTE
========================================== */

.email-float{

    position:fixed;

    right:25px;

    bottom:105px;

    width:68px;

    height:68px;

    border-radius:50%;

    background:#0B3AAE;

    color:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    text-decoration:none;

    box-shadow:
        0 12px 30px rgba(0,0,0,.35);

    transition:.35s;

    z-index:999998;

}

.email-float i{

    font-size:2rem;

}

.email-float:hover{

    transform:translateY(-5px) scale(1.08);

    background:#1c5cff;

}

@media(max-width:900px){

    /* EMAIL */

    .email-float{

        width:60px;

        height:60px;

        right:18px;

        bottom:90px;

    }

    .email-float i{

        font-size:1.8rem;

    }

    /* WHATSAPP */

    .whatsapp-float{

        width:60px;

        height:60px;

        right:18px;

        bottom:18px;

    }

    .whatsapp-float i{

        font-size:1.8rem;

    }

}