/* VARIABLES */

:root{

    --verde:#2E7D32;
    --verde-dark:#1B5E20;
    --verde-light:#81C784;
    --blanco:#fff;

}


/* GENERAL */

body{

    font-family:'Open Sans',sans-serif;

}


h1,h2,h3{

    font-family:'Poppins',sans-serif;

}



/* NAVBAR */


#mainNavbar{

    transition:.4s;

}


#mainNavbar.scrolled{

    background:white;

    box-shadow:0 3px 15px rgba(0,0,0,.15);

}


#mainNavbar.scrolled .nav-link,
#mainNavbar.scrolled .navbar-brand{

    color:var(--verde-dark);

}




/* HERO */


.hero{


height:100vh;

background-image:url("../img/hero/vivero.jpg");

background-size:cover;

background-position:center;

position:relative;

display:flex;

align-items:center;


}



.hero-overlay{


position:absolute;

width:100%;

height:100%;

background:

linear-gradient(

90deg,

rgba(0,0,0,.75),

rgba(0,0,0,.35)

);


}



.hero .container{

position:relative;

z-index:2;

}



.hero h1{


font-size:3.5rem;

font-weight:700;

line-height:1.2;


}



.hero p{


font-size:1.2rem;

margin:25px 0;

max-width:600px;


}



.hero-buttons .btn{


padding:14px 30px;

border-radius:30px;

margin-right:10px;


}



.scroll-down{


position:absolute;

bottom:30px;

left:50%;

color:white;

font-size:30px;

animation:bounce 2s infinite;


}



@keyframes bounce{


0%,100%{

transform:translateY(0);

}


50%{

transform:translateY(15px);

}


}



/* =========================
   SOBRE NOSOTROS
========================= */


.section-padding{

padding:90px 0;

}



.section-subtitle{


color:var(--verde);

font-weight:600;

text-transform:uppercase;

letter-spacing:2px;


}



.about h2{


font-size:2.5rem;

font-weight:700;

margin:15px 0;


}



.about-image{


position:relative;


}



.about-image img{


width:100%;

height:450px;

object-fit:cover;


}



.experience-box{


position:absolute;

bottom:20px;

left:20px;

background:var(--verde);

color:white;

padding:25px;

border-radius:15px;

text-align:center;


}



.experience-box h3{


font-size:40px;

margin:0;


}



.about-item{


padding:20px;

border-radius:15px;

background:#f8f8f8;

height:100%;

transition:.3s;


}



.about-item:hover{


transform:translateY(-10px);

box-shadow:0 10px 25px rgba(0,0,0,.1);


}



.about-item i{


font-size:35px;

color:var(--verde);

margin-bottom:15px;


}

/*====================================
    CATEGORÍAS
====================================*/

.categories{
    background:#f8faf8;
}

.category-card{

    position:relative;
    overflow:hidden;

    border-radius:18px;

    height:430px;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:all .4s ease;

    cursor:pointer;

    background:#fff;

}


/* Contenedor de la imagen */

.category-card .image-container{

    width:100%;
    height:100%;
    overflow:hidden;

}


/* Imagen */

.category-card img{

    width:100%;
    height:100%;

    object-fit:cover;
    object-position:center center;

    transition:transform .7s ease;

    display:block;

}


/* Oscurece ligeramente la imagen */

.category-card::before{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(
        to top,
        rgba(0,0,0,.78),
        rgba(0,0,0,.05)
    );

    z-index:1;

}


/* Contenido */

.category-content{

    position:absolute;

    bottom:0;

    left:0;

    width:100%;

    padding:25px;

    color:#fff;

    z-index:2;

}


.category-content h4{

    font-weight:700;

    margin-bottom:10px;

}


.category-content p{

    margin-bottom:18px;

    font-size:.95rem;

    line-height:1.5;

}


.category-content a{

    color:#fff;

    text-decoration:none;

    font-weight:600;

    transition:.3s;

}


.category-content a:hover{

    color:#81C784;

}


/* Hover */

.category-card:hover{

    transform:translateY(-8px);

    box-shadow:0 20px 40px rgba(0,0,0,.18);

}


.category-card:hover img{

    transform:scale(1.12);

}

/* =========================
 ESTADISTICAS
========================= */


.statistics{


background:var(--verde-dark);

padding:60px 0;

color:white;


}



.statistics h2{


font-size:3rem;

font-weight:700;


}



.statistics p{


font-size:18px;


}


/*====================================
        SERVICIOS
====================================*/

.services{

    background:linear-gradient(
        rgba(245,250,245,.96),
        rgba(240,248,240,.96)
    );

}


.service-card{

    background:#fff;

    border-radius:20px;

    padding:40px 30px;

    text-align:center;

    height:100%;

    transition:.4s;

    box-shadow:0 15px 35px rgba(0,0,0,.08);

    border:1px solid rgba(46,125,50,.08);

    position:relative;

    overflow:hidden;

}


/* Línea superior animada */

.service-card::before{

    content:"";

    position:absolute;

    top:0;
    left:-100%;

    width:100%;
    height:5px;

    background:#2E7D32;

    transition:.5s;

}


.service-card:hover::before{

    left:0;

}


.service-card:hover{

    transform:translateY(-12px);

    box-shadow:0 20px 40px rgba(0,0,0,.15);

}


.service-icon{

    width:90px;

    height:90px;

    margin:auto;

    margin-bottom:25px;

    border-radius:50%;

    background:#E8F5E9;

    display:flex;

    align-items:center;

    justify-content:center;

    transition:.4s;

}


.service-icon i{

    font-size:40px;

    color:#2E7D32;

}


.service-card:hover .service-icon{

    background:#2E7D32;

    transform:rotate(10deg) scale(1.08);

}


.service-card:hover .service-icon i{

    color:#fff;

}


.service-card h4{

    font-weight:700;

    margin-bottom:15px;

}


.service-card p{

    color:#666;

    line-height:1.7;

}
.cta-services{

    margin-top:70px;

    padding:60px;

    border-radius:25px;

    color:#fff;

    background:linear-gradient(135deg,#1B5E20,#43A047);

    box-shadow:0 20px 40px rgba(0,0,0,.15);

}

.cta-services h3{

    font-weight:700;

    margin-bottom:20px;

}

.cta-services p{

    max-width:700px;

    margin:0 auto 30px;

    opacity:.95;

}
/*====================================
      UBICACIÓN Y MAPA
====================================*/

.location-section{
    background:#f8faf8;
}

.location-info{
    display:flex;
    flex-direction:column;
    gap:22px;
}

.info-item{
    display:flex;
    align-items:flex-start;
    gap:18px;
    padding:18px 20px;
    background:#fff;
    border-radius:16px;
    box-shadow:0 8px 25px rgba(0,0,0,.06);
    transition:.3s;
}

.info-item:hover{
    transform:translateX(8px);
    box-shadow:0 12px 30px rgba(0,0,0,.12);
}

.info-item i{
    width:52px;
    height:52px;
    border-radius:50%;
    background:#E8F5E9;
    color:#2E7D32;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
    flex-shrink:0;
}

.info-item h6{
    margin:0 0 5px;
    font-weight:700;
    color:#1B5E20;
}

.info-item p{
    margin:0;
    color:#666;
    line-height:1.6;
}

.location-buttons .btn{
    border-radius:30px;
    padding:12px 26px;
    font-weight:600;
}

.map-card{
    background:#fff;
    padding:12px;
    border-radius:24px;
    box-shadow:0 15px 40px rgba(0,0,0,.12);
    overflow:hidden;
    position:relative;
}

.map-card iframe{
    border-radius:18px;
    display:block;
}

/* Responsive */
@media (max-width:768px){

    .location-buttons{
        display:flex;
        flex-direction:column;
        gap:15px;
    }

    .location-buttons .btn{
        width:100%;
    }

    .map-card iframe{
        height:350px;
    }
}
.map-badge{
    position:absolute;
    top:20px;
    left:20px;
    background:#2E7D32;
    color:#fff;
    padding:10px 16px;
    border-radius:30px;
    font-weight:600;
    z-index:5;
    box-shadow:0 8px 20px rgba(0,0,0,.2);
}

/*==============================
        GALERÍA
===============================*/

.gallery{

    background:#F7FAF7;

}

.gallery-container{

    position:relative;

    width:100%;

    max-width:900px;

    margin:auto;

}

.main-image{

    width:100%;

    height:550px;

    object-fit:cover;

    border-radius:20px;

    box-shadow:0 15px 40px rgba(0,0,0,.15);

}

.gallery-btn{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:55px;

    height:55px;

    border:none;

    border-radius:50%;

    background:rgba(255,255,255,.9);

    font-size:20px;

    cursor:pointer;

    transition:.3s;

    z-index:5;

}

.gallery-btn:hover{

    background:#2E7D32;

    color:white;

}

.prev{

    left:20px;

}

.next{

    right:20px;

}

.thumbnails{

    display:flex;

    justify-content:center;

    gap:15px;

    flex-wrap:wrap;

}

.thumb{

    width:120px;

    height:80px;

    object-fit:cover;

    border-radius:10px;

    cursor:pointer;

    transition:.3s;

    opacity:.6;

    border:3px solid transparent;

}

.thumb:hover{

    transform:scale(1.08);

}

.thumb.active{

    opacity:1;

    border-color:#2E7D32;

}