*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}


:root{

    --verde:#4a8f1d;
    --verde-claro:#5ea52b;
    --verde-oscuro:#28600d;
    --blanco:#ffffff;
    --gris:#f5f5f5;
    --texto:#333333;

}


html{
    scroll-behavior:smooth;
}


body{

    font-family:'Montserrat',sans-serif;
    background:var(--gris);
    color:var(--texto);
    line-height:1.6;

}



img{

    max-width:100%;
    display:block;

}



a{

    text-decoration:none;
    color:inherit;

}



.contenedor{

    width:90%;
    max-width:1200px;
    margin:auto;

}



/* =========================
HEADER
========================= */


.header{

    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:80px;

    background:rgba(255,255,255,0.96);

    display:flex;
    align-items:center;
    justify-content:space-between;

    padding:0 5%;

    z-index:1000;

    box-shadow:0 3px 15px rgba(0,0,0,0.12);

}
body{
    padding-top:80px;
}



.logo img{

    width:70px;
    height:70px;
    object-fit:contain;

}



.menu{

    display:flex;
    gap:25px;

}



.menu a{

    font-weight:600;
    color:var(--verde-oscuro);

    transition:.3s;

}



.menu a:hover{

    color:var(--verde-claro);

}



.menu-btn{

    display:none;

    font-size:32px;
    cursor:pointer;
    color:var(--verde);

}





/* =========================
HERO CARRUSEL
========================= */


.hero{

    height:100vh;

    position:relative;

    overflow:hidden;

}



.hero-slider{

    width:100%;
    height:100%;

}



.slide{

    position:absolute;

    width:100%;
    height:100%;

    opacity:0;

    transition:opacity 1s ease;

}



.slide.active{

    opacity:1;

}



.slide img{

    width:100%;
    height:100%;

    object-fit:cover;

}

.hero-img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.hero::after{

    content:"";

    position:absolute;

    inset:0;

    background:
    linear-gradient(
    rgba(0,0,0,.35),
    rgba(0,0,0,.55)
    );
    }
    
    .hero-texto{
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    z-index:10;
    text-align:center;
    color:#fff;
    width:90%;
}

.hero-texto h1{
    font-size:clamp(30px,5vw,55px);
    font-weight:800;
}

.hero-texto p{
    font-size:22px;
    margin-top:15px;
}



.hero-content{

    position:absolute;

    z-index:5;

    top:50%;
    left:50%;

    transform:translate(-50%,-50%);

    text-align:center;

    color:white;

    width:90%;

}



.escudo-portada{

    width:150px;

    margin:0 auto 20px;

    filter:drop-shadow(0 5px 10px rgba(0,0,0,.4));

}



.hero-content h1{

    font-size:clamp(30px,5vw,55px);

    font-weight:800;

}



.hero-content p{

    font-size:22px;

}



.hero-content h2{

    margin-top:30px;

    font-size:clamp(22px,3vw,35px);

    font-weight:700;

} 
/* =========================
HISTORIA
========================= */


.historia{

    background:white;

    padding:90px 0;

    text-align:center;

}



.historia h2{

    color:var(--verde);

    font-size:38px;

    margin-bottom:30px;

}



.historia p{

    max-width:900px;

    margin:15px auto;

    font-size:18px;

}





/* =========================
TARJETAS INICIO
========================= */


.tarjetas-inicio{

    padding:80px 0;

}



.tarjetas-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:25px;

}



.card{

    background:white;

    border-radius:20px;

    overflow:hidden;

    box-shadow:0 8px 25px rgba(0,0,0,.12);

    transition:.4s;

}



.card:hover{

    transform:translateY(-10px);

}



.card img{

    width:100%;

    height:220px;

    object-fit:cover;

}



.card-content{

    padding:25px;

    text-align:center;

}



.card h3{

    color:var(--verde);

    font-size:24px;

    margin-bottom:10px;

}



.card a{

    display:inline-block;

    margin-top:15px;

    padding:12px 25px;

    background:var(--verde);

    color:white;

    border-radius:30px;

    font-weight:600;

    transition:.3s;

}



.card a:hover{

    background:var(--verde-oscuro);

}





/* =========================
DESTACADOS ACTIVIDADES
========================= */


.destacados{

    background:white;

    padding:80px 0;

}



.destacados h2{

    text-align:center;

    color:var(--verde);

    font-size:38px;

    margin-bottom:50px;

}



.actividad-resumen{

    display:grid;

    grid-template-columns:repeat(5,1fr);

    gap:20px;

}



.actividad-mini{

    background:#fff;

    border-radius:18px;

    padding:25px 15px;

    text-align:center;

    box-shadow:0 5px 18px rgba(0,0,0,.1);

    transition:.3s;

}



.actividad-mini:hover{

    transform:translateY(-8px);

}



.actividad-mini h3{

    color:var(--verde);

    margin-bottom:15px;

    font-size:22px;

}



.actividad-mini a{

    display:inline-block;

    margin-top:15px;

    background:var(--verde);

    color:white;

    padding:8px 18px;

    border-radius:25px;

    font-size:14px;

}





/* =========================
FRASE CLUB
========================= */


.frase-club{

    background:

    linear-gradient(
    rgba(74,143,29,.9),
    rgba(40,96,13,.95)
    );

    padding:90px 0;

    text-align:center;

    color:white;

}



.frase-club h2{

    font-size:clamp(28px,4vw,50px);

    font-weight:800;

}



.frase-club p{

    font-size:22px;

    margin-top:20px;

}





/* =========================
ACCESOS
========================= */


.acceso-rapido{

    padding:80px 0;

}



.acceso-rapido .contenedor{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}



.acceso-box{

    background:white;

    padding:35px;

    border-radius:20px;

    text-align:center;

    box-shadow:0 8px 25px rgba(0,0,0,.1);

}



.acceso-box h3{

    color:var(--verde);

    font-size:25px;

    margin-bottom:15px;

}



.acceso-box a{

    margin-top:20px;

    display:inline-block;

    background:var(--verde);

    color:white;

    padding:12px 25px;

    border-radius:30px;

}
/* =========================
FOOTER
========================= */


.footer{

    background:#1f1f1f;

    color:white;

    padding-top:50px;

}



.footer-contenedor{

    width:90%;

    max-width:1200px;

    margin:auto;

    display:grid;

    grid-template-columns:120px 1fr 1fr;

    gap:40px;

    align-items:center;

}



.footer img{

    width:90px;

}



.footer h3{

    color:white;

    margin-bottom:15px;

}



.footer p{

    color:#ddd;

    margin-bottom:8px;

}



.footer-final{

    margin-top:40px;

    padding:20px;

    text-align:center;

    background:#111;

}





/* =========================
ANIMACIONES
========================= */


.card,
.actividad-mini,
.acceso-box{

    animation:aparecer .8s ease;

}



@keyframes aparecer{

    from{

        opacity:0;

        transform:translateY(30px);

    }


    to{

        opacity:1;

        transform:translateY(0);

    }

}





/* =========================
RESPONSIVE TABLET
========================= */


@media(max-width:1000px){


.menu{

    position:absolute;

    top:80px;

    left:0;

    width:100%;

    background:white;

    flex-direction:column;

    align-items:center;

    padding:25px;

    display:none;

}



.menu.activo{

    display:flex;

}



.menu-btn{

    display:block;

}



.tarjetas-grid{

    grid-template-columns:repeat(2,1fr);

}



.actividad-resumen{

    grid-template-columns:repeat(2,1fr);

}



.acceso-rapido .contenedor{

    grid-template-columns:1fr;

}



.footer-contenedor{

    grid-template-columns:1fr;

    text-align:center;

}



.footer img{

    margin:auto;

}


}





/* =========================
RESPONSIVE CELULAR
========================= */


@media(max-width:600px){


.header{

    height:70px;

}



.logo img{

    width:60px;

    height:60px;

}



.hero{

    height:90vh;

}



.hero-content h1{

    font-size:28px;

}



.hero-content p{

    font-size:17px;

}



.hero-content h2{

    font-size:22px;

}



.escudo-portada{

    width:110px;

}



.historia{

    padding:60px 0;

}



.historia h2{

    font-size:30px;

}



.tarjetas-grid{

    grid-template-columns:1fr;

}



.card img{

    height:200px;

}



.destacados h2{

    font-size:30px;

}



.actividad-resumen{

    grid-template-columns:1fr;

}



.frase-club{

    padding:60px 20px;

}



.frase-club p{

    font-size:18px;

}



.acceso-box{

    padding:25px;

}


}
/* =========================
AJUSTES GENERALES FINALES
========================= */


section{

    overflow:hidden;

}



strong{

    color:var(--verde);

}



/* botones generales */

button{

    font-family:'Montserrat',sans-serif;

    cursor:pointer;

}





/* efecto suave al pasar por enlaces */

a{

    transition:.3s ease;

}





/* separación del contenido por menú fijo */

main{

    padding-top:0;

}





/* accesibilidad visual */

::selection{

    background:var(--verde);

    color:white;

}





/* animación entrada elementos */

.fade-in{

    opacity:0;

    transform:translateY(30px);

    transition:all .8s ease;

}



.fade-in.visible{

    opacity:1;

    transform:translateY(0);

}





/* =========================
AJUSTE PARA IMÁGENES DEL CLUB
========================= */


.card img,
.actividad-mini img,
.galeria img{

    border-radius:0;

}





/* =========================
FIN ESTILOS CLUB LÍNEA D
========================= */
/* TARJETAS DE ACTIVIDADES */

.lista-actividades{
    padding:60px 0;
}

.actividades-grid{
    display:flex;
    flex-direction:column;
    gap:25px;
}

.actividad-card{
    display:flex;
    align-items:center;
    background:white;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 8px 25px rgba(0,0,0,.12);
}

.actividad-card img{
    width:280px;
    height:200px;
    object-fit:cover;
}

.actividad-info{
    padding:25px;
}

.actividad-info h2{
    color:var(--verde);
    margin-bottom:15px;
}

.actividad-info a{
    display:inline-block;
    margin-top:15px;
    padding:10px 22px;
    background:var(--verde);
    color:white;
    border-radius:30px;
}


/* CELULAR */

@media(max-width:768px){

    .actividad-card{
        flex-direction:column;
    }

    .actividad-card img{
        width:100%;
        height:220px;
    }
}
/* =========================
COMPETENCIAS
========================= */
.competencias-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
    gap:30px;
    padding:60px 0;
}

.competencia-card{
    background:#fff;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 8px 25px rgba(0,0,0,.12);
}

.competencia-card img{
    width:100%;
    height:260px;
    object-fit:cover;
    display:block;
}

.competencia-info{
    padding:25px;
}

.competencia-info h2{
    color:var(--verde);
    margin-bottom:10px;
}

/* ===== COMISIÓN DIRECTIVA ===== */

.comision-card,
.miembro{
    text-align:center;
    padding:25px 20px;
}

.comision-card h3,
.miembro h3{
    font-size:1.15rem !important;
    font-weight:600 !important;
    color:#4a8f1d !important;
    text-transform:uppercase;
}

.comision-card p,
.miembro p{
    font-size:.95rem !important;
    color:#444 !important;
    font-weight:400;
}
.comision-card{
    background:#eef8ee;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,.08);
    transition: all .3s ease;
}


.comision-card:hover{
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(0,0,0,.12);
}
/* ===== COMISIÓN DIRECTIVA ===== */

.comision{
    padding:60px 20px;
}

.comision-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:20px;
    max-width:900px;
    margin:auto;
}

.persona-card{
    background:#eef8ee;
    border-radius:12px;
    padding:25px;
    text-align:center;
    box-shadow:0 4px 12px rgba(0,0,0,.08);
}

.persona-card h2{
    font-size:18px;
    color:#2e7d32;
    margin-bottom:8px;
}

.persona-card h3{
    font-size:16px;
    font-weight:500;
    color:#333;
}

@media(max-width:768px){

    .comision-grid{
        grid-template-columns:1fr;
    }

}
    
/* ===== GALERÍA ===== */

.galeria .contenedor{
    max-width:900px;
    margin:0 auto;
}

.galeria-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
}

.foto-galeria img{
    width:100%;
    height:140px;
    object-fit:cover;
    border-radius:10px;
    display:block;
    transition:transform .3s ease;
}

.foto-galeria img:hover{
    transform:scale(1.04);
}

@media (max-width:900px){
    .galeria-grid{
        grid-template-columns:repeat(2,1fr);
    }
}

@media (max-width:600px){
    .galeria-grid{
        grid-template-columns:1fr;
    }
}
/* ===== SALÓN ===== */

.salon-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
}

.salon-imagen img{
    width:100%;
    height:280px;
    object-fit:cover;
    border-radius:12px;
    display:block;
}
.salon-imagen img{
    width:100%;
    height:280px;
    object-fit:cover;
    border-radius:12px;
    display:block;
    image-rendering:auto;
}
.galeria-salon{
    padding: 30px;
}

.foto-galeria{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

..foto-galeria{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:25px;
    padding:40px;
}

.foto-galeria img{
    width:100%;
    height:260px;
    object-fit:contain;
    border-radius:12px;
}
}
@media(max-width:768px){

    .foto-galeria{
        grid-template-columns: repeat(2, 1fr);
    }

}
.titulo-galeria{
    grid-column:1 / -1;
    margin-top:30px;
    margin-bottom:10px;
    font-size:28px;
}

.foto-galeria{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px;
}