/* --- VARIABLES Y RESET --- */
:root {
    --color-olive: #849382;
    --color-olive-dark: #6e7a6c;
    --color-text: #666666;
    --color-heading: #849382;
    --color-white: #ffffff;
    --color-light-bg: #fdfdfd;
    --color-beige: #f9f8f6; /* Fondo suave para programas */
    
    --font-heading: 'Playfair Display', serif;
    --font-body: 'Montserrat', sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: var(--font-body);
    color: var(--color-text);
    font-size: 15px;
    line-height: 1.8;
    background-color: var(--color-white);
    overflow-x: hidden;
}

a { text-decoration: none; transition: 0.3s; color: inherit; }
ul { list-style: none; }
img { max-width: 100%; display: block; }
.text-center { text-align: center; }
.mb-5 { margin-bottom: 50px; }

/* --- UTILIDADES --- */
#year{padding:5px}
.container {
    max-width: 1200px;
    width: 90%;
    margin: 0 auto;
}
.section-padding { padding: 40px 0; }
.bg-white { background-color: var(--color-white); }
.bg-light-beige { background-color: var(--color-beige); }

/* Titulos Generales Centrados */
.section-title-center {
    font-family: var(--font-heading);
    color: var(--color-heading);
    font-size: 2.2rem;
    font-weight: 400;
    margin-bottom: 20px;
}

.section-subtitle {
    max-width: 800px;
    padding-bottom:20px;
    margin: 0 auto;
    font-size: 1rem;
    color: #555;
}

/* --- HEADER --- */
.main-header { 
    background: var(--color-white); 
    padding: 10px 0; 
    box-shadow: 0px 10px 20px rgba(0,0,0,0.18);
}
.header-split { display: flex; justify-content: center; align-items: center; gap: 40px; }
.nav-group ul { display: flex; gap: 25px; list-style: none; margin: 0; padding: 0; }
.logo-img { height: 100px; display: block; }
.nav-group a { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 1px; color: #333; font-weight: 500; text-decoration: none; transition: color 0.3s ease; }
.nav-group a.current-page { color: #000000; font-weight: 700; border-bottom: 2px solid var(--color-olive); padding-bottom: 5px; opacity: 1; }
.nav-group a:hover { color: var(--color-olive); }
@media (max-width: 1000px) { 
    .header-split { flex-direction: column; gap: 20px; }
    .main-header{padding-bottom:20px;}
    .logo-center { order: -1; } 
    .nav-group ul { flex-wrap: wrap; justify-content: center; } 
}

/* --- HERO CAROUSEL (SLIDE) --- */
.hero-carousel {
    position: relative;
    height: 70vh;
    background: #ccc;
    overflow: hidden; /* Esencial para el slide */
}

.hero-slide {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    text-align: center;
    
    /* El JS manejará el transform, aquí ponemos valores base */
    transform: translateX(100%); 
    z-index: 1;
}
/* No necesitamos .active { opacity: 1 } porque usamos transform en JS */

.hero-overlay {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.2);
}

.hero-content { position: relative; z-index: 3; }
.hero-content h1 {
    font-size: 3.5rem; color: var(--color-white);
    text-shadow: 0 2px 10px rgba(0,0,0,0.3); margin-bottom: 30px;
}

.btn-hero {
    display: inline-block; 
    border: 2px solid rgba(255,255,255,0.7);
    color: var(--color-white); 
    padding: 12px 30px; 
    font-size: 0.8rem; 
    font-weight: 600;
    letter-spacing: 2px; text-transform: uppercase;
}
.btn-hero:hover { background: var(--color-white); color: #000000; box-shadow: 0px 10px 10px rgba(0, 0, 0, 0.5); scale:1.1}

/* Controles Carrusel */
.carousel-arrow {
    position: absolute; top: 50%; transform: translateY(-50%);
    background: transparent; border: none; color: white;
    font-size: 2rem; padding: 20px; cursor: pointer; z-index: 10;
}
.prev { left: 20px; } .next { right: 20px; }
.carousel-dots {
    position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%);
    z-index: 10; display: flex; gap: 10px;
}
.dot { width: 8px; height: 8px; background: rgba(255,255,255,0.5); border-radius: 50%; cursor: pointer; }
.dot.active { background: white; transform: scale(1.2); }

/* --- PROYECTO & STATS --- */
.grid-project { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: flex-start; }
.project-text h2 {
    font-family: var(--font-heading); color: var(--color-olive);
    font-size: 2.2rem; margin-bottom: 25px; line-height: 1.2;
}
.project-text p { text-align: justify; margin-bottom: 20px; }
.btn-olive {
    display: inline-block; background-color: var(--color-olive); color: white;
    padding: 14px 35px; font-size: 0.75rem; letter-spacing: 1.5px;
    text-transform: uppercase; font-weight: 600; margin: 10px 0 50px 0;
}
.btn-olive:hover { background-color: var(--color-olive-dark); }

.stats-row {
    display: flex; justify-content: flex-end; gap: 40px; border-top: 1px solid transparent;
}
.stat-group h3, .stat-group span {
    font-family: var(--font-body); font-size: 3.5rem; font-weight: 300;
    color: #111; line-height: 1; display: inline-block;
}
.stat-group p { color: #999; text-transform: uppercase; font-size: 0.85rem; text-align: center; }
.stat-divider { width: 1px; height: 80px; background-color: #ddd; margin-top: 10px; }

/* --- SECCIÓN COMPROMETIDOS (NUEVA) --- */
/* --- SECCIÓN COMPROMETIDOS (CORREGIDO) --- */
.grid-3-center {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    align-items: flex-start;
}
.commitment-item {
    text-align: left; 
}
.commitment-item .icon-small {
    width: 100%;          /* Que ocupe todo el ancho de la columna */
    height: 220px;        /* Altura fija para que todas sean iguales */
    object-fit: cover;    /* Recorta la imagen para llenar el hueco sin deformarla */
    margin-bottom: 20px;
    border-radius: 4px;   /* Opcional: un borde suave */
    display: block;
}
.commitment-item p {
    font-size: 0.95rem;
    color: #666;
    line-height: 1.6;
}
/* --- SECCIÓN PROGRAMAS EDUCATIVOS (CORREGIDO) --- */
.programs-row-divider {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}
.program-col {
    padding: 0 30px;
    border-right: 1px solid #e0e0e0; 
    text-align: left;
}
.program-col:last-child { border-right: none; }

.program-icon {
    width: 100%;          /* Ancho completo dentro del padding */
    height: 180px;        /* Altura fija uniforme */
    object-fit: cover;    /* Evita que se estiren las fotos */
    margin-bottom: 20px;
    border-radius: 4px;
    display: block;
}
.program-col h3 {
    font-family: var(--font-heading);
    font-size: 1.3rem;
    color: #999;
    margin-bottom: 15px;
    font-weight: 400;
}
.program-col p { 
    font-size: 0.9rem; 
    color: #555; 
}
/* --- CTA BANNER VERDE --- */
.cta-green-banner { background-color: var(--color-olive); color: white; padding: 70px 0; margin-bottom: 40px;}
.cta-green-banner h2 { font-weight: 400; font-size: 2rem; margin-bottom: 20px; color: white;}
.cta-green-banner p { max-width: 900px; margin: 0 auto 30px auto; }
.btn-white {
    display: inline-block; background-color: white; color: #888;
    padding: 12px 40px; text-transform: uppercase; font-size: 0.8rem;
    letter-spacing: 1px; margin-bottom: 30px;
}
.sub-cta-text { text-transform: uppercase; font-size: 0.9rem; opacity: 0.9; }

/* --- FOOTER --- */
.footer-col.location-col {
    min-width: 300px; /* Asegura que el mapa tenga buen ancho */
    max-width: 500px; /* Asegura que el mapa tenga buen ancho */
}
.map-box-footer {
    width: 100%;
    height: 200px; /* Altura fija para uniformidad */
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    border: 1px solid #eee;
}
.map-box-footer iframe {
    width: 100%;
    height: 100%;
    display: block;
    /* TRUCO ESTÉTICO: Mapa en blanco y negro para que combine con la web */
    filter: grayscale(30%); 
    transition: filter 0.3s ease;
}
.map-box-footer iframe:hover {
    filter: grayscale(0%);
}
.address-item {
    align-items: flex-start; /* Icono arriba alineado con la primera línea de texto */
}
.address-item span {
    line-height: 1.4;
}
.main-footer { 
    padding-top: 30px; 
    color: #363636;
    background-color: #ebebeb; 
    box-shadow: 0px -10px 20px rgba(0,0,0,0.18);}
.footer-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 40px; margin-bottom: 40px; }
.footer-col.ini {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center; 
    width: 100%;
    text-align: center;
}
.footer-logo {
    width: fit-content;
}
.footer-logo img { 
    width: 160px; 
    margin-bottom: 20px;
    display: block;
    filter: contrast(130%) brightness(90%);
}
.footer-quote { 
    font-family: var(--font-heading); 
    font-style: italic; 
    font-size: 1.1rem; 
    margin-bottom: 20px; 
    width: fit-content;
    max-width: 80%;
}
.social-icons {
    width: fit-content;
}
.social-icons a { 
    color: #333; 
    margin-right: 15px;
    font-size: 1.2rem;
}
.social-icons a:last-child {
    margin-right: 0; 
}
.footer-col h3 { font-weight: 400; margin-bottom: 25px; font-size: 1.2rem; }
.contact-list li { margin-bottom: 12px; display: flex; gap: 10px; font-size: 0.95rem; color: #555; }
.map-box img { width: 100%; height: 150px; object-fit: cover; opacity: 0.8; }
.footer-legal { 
    border-top: 1px solid #eee; 
    color: #686868; 
    font-size: 0.95rem;
    margin-bottom: 30px;
    padding-top: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.footer-legal p {
    margin: 0;
    display: flex; 
    align-items: center; 
    flex-wrap: wrap;
    justify-content: center;
}
.footer-legal a {
    display: inline-block;
    border-bottom: 2px solid #686868; 
    padding-bottom: 2px;
    text-decoration: none;
    margin: 0 15px; 
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    transform-origin: center center;
}
.footer-legal a:hover {
    color: #222;
    border-bottom: 2px solid #222;
    transform: scale(1.05);
}

/* --- RESPONSIVE --- */
@media (max-width: 900px) {
    .nav-wrapper { flex-direction: column; gap: 15px; }
    .main-nav ul { flex-wrap: wrap; justify-content: center; }
    
    .grid-project, .grid-3-center, .programs-row-divider {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .project-img { order: -1; }
    .stats-row { justify-content: center; }
    .footer-col.location-col {
        display: flex;
        flex-direction: column; 
        align-items: center; 
        text-align: center;
        width: 100%;
        max-width: 100%;
        min-width: auto;
    }
    .footer-col.location-col h3 {
        width: 100%;
        margin-bottom: 20px;
    }
    .map-box-footer {
        width: 100%;      
        max-width: 500px;
        margin: 0 auto;
    }
    .commitment-item p, .program-col h3, .program-col p{width:70%;margin-left:15%}
    .commitment-item .icon-small, .program-icon {width: 100%; height: auto; object-fit: contain; max-height:400px;}
    .program-col {border-right: none; border-bottom: 1px solid #e0e0e0; padding: 30px 15px;}
    .program-col:last-child {border-bottom: none;}
    
    .footer-grid { grid-template-columns: 1fr; text-align: center; }
    .contact-list li { justify-content: center; }
}
/* Responsive: En móvil el mapa ocupa todo el ancho */
@media (max-width: 768px) {
    .map-box-footer {
        height: 250px; /* Un poco más alto en móvil para facilitar el tacto */
    }
}

/* --- ESTILOS ESPECÍFICOS PARA PROYECTO.HTML --- */
.big-image {
    display: flex;
    justify-content: center;
    width: 100%;
    padding-bottom: 40px;
}
.big-image img {
    width: 80%;
    max-width: 600px;
    height: auto;
    border-radius: 4px;
}
/* Título alineado a la izquierda con el estilo Serif */
.section-title-left {
    font-family: var(--font-heading);
    color: var(--color-heading); /* Color oliva/gris */
    font-size: 2.2rem;
    font-weight: 400;
    margin-bottom: 30px;
    line-height: 1.2;
}

/* Espaciado de párrafos */
.mb-text {
    margin-bottom: 25px;
    color: #333; /* Texto un poco más oscuro para legibilidad */
    font-size: 1rem;
    line-height: 1.7;
    max-width: 800px; /* Evita que las líneas sean infinitas */
}

/* Lista de Checks (Actividad constructiva, etc.) */
.check-list {
    margin-bottom: 40px;
    margin-top: 30px;
}

.check-list li {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
    color: #667561; /* Gris suave como en la foto */
    font-size: 1rem;
    font-weight: 500;
}

.check-list li i {
    color: #333; /* El check es oscuro/negro en la foto */
    font-size: 0.9rem;
}

/* Grid para separar texto de espacio vacío (opcional si pones imagen luego) */
.project-details-grid {
    display: grid;
    grid-template-columns: 1fr; /* Por ahora una columna centrada o ancha */
    /* Si quieres poner imagen a la derecha como suele ser habitual: 
       grid-template-columns: 1.2fr 0.8fr; 
    */
    gap: 50px;
}

.mt-btn {
    margin-top: 20px;
}

/* Ajuste responsive para la lista */
@media (min-width: 768px) {
    .text-col {
        padding-right: 50px; /* Dar aire si hubiera imagen derecha */
    }
}

/* --- ESTILOS ESPECÍFICOS PARA CONTACTO.HTML --- */

/* Hero Gris Estático */
.hero-static-gray {
    /* 1. Ponemos la imagen de fondo */
    background-image: url('fotos/024.jpg'); /* Asegúrate del nombre exacto */
    width:100%;
    /* 2. PROPIEDAD MÁGICA: 'Cover' hace que escale para llenar todo sin deformarse */
    background-size: cover; 
    background-position: center; /* Centra la parte importante de la foto */
    background-repeat: no-repeat;
    
    height: 350px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    
    /* Necesario para posicionar la capa oscura encima */
    position: relative; 
}
.hero-static-gray::before {
    content: "";
    position: absolute;
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%;
    background-color: rgba(0, 0, 0, 0.4); /* Cambia 0.4 a 0.6 si quieres más oscuro */
    z-index: 1;
}
.hero-static-gray .container {
    position: relative;
    z-index: 2;
}
.hero-static-gray h1 {
    font-family: var(--font-body);
    color: white;
    font-size: 3rem;
    font-weight: 400;
    text-shadow: 1px 1px 10px rgba(0,0,0,0.3); /* Sombra de texto reforzada */
    margin: 0;
}

/* Títulos y textos */
.small-upper-title {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: #666;
    margin-bottom: 15px;
    font-weight: 600;
}

.big-serif-title {
    font-family: var(--font-heading);
    font-size: 2.5rem;
    color: var(--color-olive); /* Tono verdoso/gris corporativo */
    margin-bottom: 30px;
    font-weight: 400;
    line-height: 1.2;
}

.contact-details-list p {
    margin-bottom: 15px;
    font-size: 0.95rem;
    color: #444;
}

.contact-details-list strong {
    font-weight: 600;
    color: #222;
}

/* Redes Sociales en Contacto */
.contact-socials {
    margin-top: 30px;
    display: flex;
    gap: 10px;
}

.contact-socials a {
    width: 35px;
    height: 35px;
    border: 1px solid #ddd;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #666;
    font-size: 0.9rem;
    transition: 0.3s;
}

.contact-socials a:hover {
    background-color: var(--color-olive);
    border-color: var(--color-olive);
    color: white;
}

/* Grid Layout Contacto */
.contact-grid-layout {
    display: grid;
    grid-template-columns: 1fr 1.5fr; /* Info (izquierda) Mapa (derecha más ancho) */
    gap: 60px;
    align-items: start;
}

/* El mapa */
.contact-map-block iframe {
    width: 100%;
    border-radius: 4px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}

/* Responsive */
@media (max-width: 900px) {
    .contact-grid-layout {
        grid-template-columns: 1fr; /* Una columna en móvil */
        gap: 40px;
    }
    
    .contact-map-block {
        margin-top: 20px;
    }
}

/* --- ESTILOS ESPECÍFICOS PARA EQUIPO.HTML --- */
.team-image-wrapper{width:100%;}
.team-image-wrapper img {
    margin: 0 auto 50px auto; /* Centrado y espacio inferior */
    width: 80%; /* Que no se salga en móviles */
    max-width: 800px;
}

.team-description {
    max-width: 900px; /* Limita el ancho del texto para que no sea una línea eterna */
    margin: 0 auto;   /* Centra el bloque de texto */
}

.team-description p {
    font-size: 1rem;
    line-height: 1.8; /* Buena separación entre líneas */
    color: #555;      /* Color gris suave */
    text-align: center; /* Texto centrado según la foto */
}

/* --- ESTILOS ESPECÍFICOS PARA POLITICAS.HTML --- */

/* Contenedor centralizado y no demasiado ancho para facilitar lectura */
.privacy-container {
    max-width: 1000px;
    margin: 0 auto;
}

/* Título Principal */
.privacy-main-title {
    font-family: var(--font-heading); /* Serif elegante */
    color: var(--color-olive); /* Tono corporativo */
    font-size: 2.5rem;
    font-weight: 400;
    text-align: center;
    margin-bottom: 50px;
}

/* Estilo de los subtítulos de sección */
.privacy-subtitle {
    font-size: 1.1rem;
    font-weight: 600;
    color: #333;
    margin-top: 30px;
    margin-bottom: 15px;
    /* Algunos en la foto aparecen en mayúsculas, otros tipo título */
}

/* Texto de párrafo */
.privacy-text-content p {
    font-size: 0.95rem;
    line-height: 1.8;
    color: #555;
    margin-bottom: 20px;
    text-align: justify; /* Justificado como en documentos legales */
}
/* Texto de párrafo */
.privacy-text-content li {
    font-size: 0.85rem;
    margin-left:6%;
    width:80%;
    line-height: 1.8;
    color: #555;
    margin-bottom: 20px;
    text-align: justify; /* Justificado como en documentos legales */
}

/* --- ESTILOS PARA MENÚ Y CALENDARIO --- */

/* Contenedor Flex para poner las tarjetas una al lado de la otra */
.cards-container {
    display: flex;
    justify-content: center;
    gap: 40px; /* Espacio entre tarjetas */
    flex-wrap: wrap; /* Para que baje en móviles */
    padding-top: 20px;
    padding-bottom: 20px;
}

/* Estilo de la Tarjeta Negra */
.black-card {
    background-color: var(--color-olive-dark);
    color: #ffffff;
    width: 450px; /* Ancho aproximado según la foto */
    padding: 60px 40px;
    border-radius: 30px; /* Bordes muy redondeados */
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
}

/* Texto dentro de la tarjeta */
.black-card p {
    font-size: 1.1rem;
    line-height: 1.6;
    margin-bottom: 30px;
    color: #ffffff;
    font-weight: 400;
}

/* Botón Blanco dentro de la tarjeta */
.btn-card-white {
    display: inline-block;
    background-color: #e0e0e0; /* Un gris muy claro/blanco roto */
    color: #333;
    padding: 12px 30px;
    border-radius: 25px; /* Botón píldora */
    text-transform: uppercase;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 1px;
    text-decoration: none;
    transition: all 0.2s ease-in-out;
}

.btn-card-white:hover {
    transform: scale(1.08);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
}

/* Responsive */
@media (max-width: 900px) {
    .black-card {
        width: 100%; /* En móvil ocupa todo el ancho */
        margin-bottom: 20px;
    }
}

/* --- ESTILOS ESPECÍFICOS PARA ADMISION.HTML --- */

/* Texto explicativo centrado */
.admission-text {
    max-width: 800px;
    margin: 0 auto 50px auto; /* Centrado y margen inferior */
    font-size: 1.1rem;
    color: #555;
    line-height: 1.6;
}

.admission-text strong {
    color: #333;
    font-weight: 600;
}

/* Contenedor de los botones */
.admission-buttons {
    display: flex;
    justify-content: center;
    gap: 30px; /* Espacio entre botones */
    flex-wrap: wrap;
}

/* --- BOTÓN DE DESCARGA CON EFECTO HOVER ESPECIAL --- */
.btn-olive-download {
    display: inline-block;
    background-color: var(--color-olive); /* Color base oliva */
    color: var(--color-white);
    padding: 15px 50px; /* Botones anchos como en la foto */
    font-size: 0.9rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-weight: 600;
    text-decoration: none;
    position: relative; /* Necesario para el efecto */
    overflow: hidden;   /* Oculta lo que se salga */
    transition: all 0.3s ease;
    min-width: 200px; /* Ancho mínimo para uniformidad */
    text-align: center;
}

/* El texto original ("Ficha X") */
.btn-olive-download span {
    display: block;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* El nuevo texto ("DESCARGAR") que aparece */
.btn-olive-download::after {
    content: attr(data-hover); /* Usa el texto del atributo data-hover */
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, 150%); /* Inicialmente oculto abajo */
    opacity: 0;
    width: 100%;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* --- ESTADO HOVER --- */
.btn-olive-download:hover {
    background-color: var(--color-olive-dark); /* Cambia a oliva más oscuro */
    box-shadow: 0 5px 15px rgba(0,0,0,0.1); /* Sombra suave */
}

/* Al hacer hover, el texto original sube y se desvanece */
.btn-olive-download:hover span {
    transform: translateY(-150%);
    opacity: 0;
}

/* Al hacer hover, el nuevo texto sube desde abajo y aparece */
.btn-olive-download:hover::after {
    transform: translate(-50%, -50%); /* Se coloca en el centro */
    opacity: 1;
}

/* --- ESTILOS DE LA GALERÍA --- */

/* Títulos */
.section-title-center {
    font-family: var(--font-heading);
    color: var(--color-olive);
    font-size: 2.5rem;
    text-align: center;
    margin-bottom: 10px;
}

.text-center.mb-text {
    text-align: center;
    margin-bottom: 50px;
    color: #666;
}

/* 1. TRUCO: Hacemos que el contenedor de la galería sea más ancho que el resto de la web */
.gallery-section .container {
    max-width: 90%; /* Ocupará el 90% del ancho de la pantalla (antes era aprox 60-70%) */
    /* Si prefieres un límite fijo pero ancho, pon: max-width: 1400px; */
}

/* 2. LA CUADRÍCULA (GRID) MODIFICADA */
.gallery-grid {
    display: grid;
    /* Ajustamos el tamaño mínimo de foto a 300px para que se vean bien grandes */
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); 
    gap: 40px; /* Separación aumentada (antes 20px) */
    padding-bottom: 40px;
}

/* El contenedor de cada foto */
.gallery-item {
    position: relative;
    overflow: hidden; 
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    height: 300px; /* Altura fija */
    background-color: #eee; 
}

/* La imagen */
.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover; 
    display: block;
    transition: transform 0.5s ease; 
}

/* Efecto Zoom (que te gustaba) */
.gallery-item:hover img {
    transform: scale(1.1); 
}

/* Responsive: Móvil */
@media (max-width: 600px) {
    .gallery-section .container {
        max-width: 100%; /* En móvil aprovechamos todo */
        padding: 0 15px;
    }
    .gallery-grid {
        grid-template-columns: repeat(auto-fill, minmax(100%, 1fr)); 
        gap: 20px; /* En móvil reducimos la separación para que no se desperdicie espacio */
    }
    .gallery-item {
        height: 250px; 
    }
}