﻿/* Variables y configuración */
:root {
/* Colores */
--primario: #17263C;
--primario-claro: #425B7A;
--verde: #C7D410;
--verde-claro: #EBEF62;
--rojo: #FE5A51;
--rojo-claro: #FC908D;
--naranja: #FAB400;
--naranja-claro: #FDCA67;
--turquesa: #78CBFD;
--turquesa-claro: #B9E4F9;

/* Escala de grises */
--gris-1: #303132;
--gris-2: #6D6E6D;
--gris-3: #B8B9BA;
--gris-4: #D0D0D0;
--gris-5: #E1DFE2;
--gris-6: #F2F1F3;

/* Espaciado */
--spacing-xs: 0.5rem;
--spacing-sm: 1rem;
--spacing-md: 2rem;
--spacing-lg: 3rem;
--spacing-xl: 5rem;
}

/* Fuentes */
@font-face {
font-family: 'Brockmann';
src: url('../img/brockmann-regular-webfont.woff') format('woff');
font-weight: 400;
font-style: normal;
font-display: swap;
}

@font-face {
font-family: 'Brockmann';
src: url('../img/brockmann-medium-webfont.woff') format('woff');
font-weight: 500;
font-style: normal;
font-display: swap;
}

@font-face {
font-family: 'Brockmann';
src: url('../img/brockmann-semibold-webfont.woff') format('woff');
font-weight: 600;
font-style: normal;
font-display: swap;
}

@font-face {
font-family: 'Brockmann';
src: url('../img/brockmann-bold-webfont.woff') format('woff');
font-weight: 700;
font-style: normal;
font-display: swap;
}

/* Reset y estilos base */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

html {
font-size: 16px;
scroll-behavior: smooth;
}

body {
font-family: 'Brockmann', sans-serif;
font-weight: 400;
line-height: 1.6;
color: var(--primario);
background-color: #fff;
}

img {
max-width: 100%;
height: auto;
display: block;
}

a {
text-decoration: none;
color: var(--primario);
transition: color 0.3s ease;
}

a:hover {
color: var(--verde);
}

ul {
list-style: none;
}

.container {
width: 100%;
max-width: 1200px;
margin: 0 auto;
padding: 0 var(--spacing-sm);
}

h1, h2, h3, h4, h5, h6 {
font-weight: 700;
line-height: 1.2;
margin-bottom: var(--spacing-sm);
}

h1 {
font-size: 3rem;
}

h2 {
font-size: 2.5rem;
margin-bottom: var(--spacing-md);
}

h3 {
font-size: 1.75rem;
}

p {
margin-bottom: var(--spacing-sm);
}

/* Botones */
.btn {
display: inline-block;
padding: 0.75rem 1.5rem;
border-radius: 4px;
font-weight: 600;
text-align: center;
cursor: pointer;
transition: all 0.3s ease;
}

.btn-primary {
background-color: var(--verde);
color: var(--primario);
}

.btn-primary:hover {
background-color: var(--verde-claro);
color: var(--primario);
}

.btn-secondary {
background-color: var(--turquesa);
color: var(--primario);
}

.btn-secondary:hover {
background-color: var(--turquesa-claro);
color: var(--primario);
}

.btn-tertiary {
background-color: var(--naranja);
color: var(--primario);
}

.btn-tertiary:hover {
background-color: var(--naranja-claro);
color: var(--primario);
}

.btn-outline {
background-color: rgba(255, 255, 255, 0.9);
border: 2px solid var(--primario);
color: var(--primario);
}

.btn-outline:hover {
background-color: var(--primario);
color: white;
}

/* Header y Menú Hamburguesa */
.header {
padding: 0;
background-color: white;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
position: sticky;
top: 0;
z-index: 100;
}

.header-content {
display: flex;
justify-content: space-between;
align-items: center;
position: relative;
padding: 0.5rem 0;
padding: 0;

}

.logo {
display: block;
}

.logo img {
min-width: 118px;
}

/* Menú hamburguesa - Solo visible en móvil */
.menu-toggle {
display: none;
}

.menu-button {
display: none;
flex-direction: column;
justify-content: space-between;
width: 30px;
height: 21px;
cursor: pointer;
z-index: 200;
}

.menu-button span {
display: block;
height: 3px;
width: 100%;
background-color: var(--primario);
border-radius: 3px;
transition: all 0.3s ease;
}

.main-nav {
display: flex;
}

.main-nav ul {
display: flex;
gap: var(--spacing-md);
}

.main-nav a {
font-weight: 500;
}

/* Hero Section */

.hero {
    background-image: url('../upload/secciones/inicio/default.jpg');
    background-size: cover;
    background-position: center;
    color: white;
    padding: var(--spacing-xl) 0;
    position: relative;
    min-height: 345px;
    max-height: calc(98vh - 120px); /* AÑADIDO: Altura máxima */
    display: flex;
    align-items: center;
    aspect-ratio: 1600/845; /* Proporción fija */
    aspect-ratio: 3900/1924; /* Proporción fija */
    aspect-ratio: 2500/1406; /* Proporción fija */
    width:100%;
}

@media(max-width:575px) {
    .hero {
        aspect-ratio: 896/1809; /* Proporción fija */
        aspect-ratio: 576/1162; /* Proporción fija */
        align-items:flex-start;
        padding-top:var(--spacing-lg);
            max-height: calc(98vh - 110px);
    }
}


 @media(min-width:576px) and (max-width:767px){
    .hero{
        aspect-ratio: 768/403;
    }
}


 @media(min-width:768px) and (max-width:991px){
    .hero{
        aspect-ratio: 992/523;
    }
}

 @media(min-width:992px) and (max-width:1199px){
    .hero{
         aspect-ratio: 1200/633;
    }
}



 @media(min-width:992px) and (max-width:1199px){
.hero{
    background-image: url(<%=ResolveUrl("/upload/secciones/inicio/lg/"+imagenLG)%>);
    }
}



/* ELIMINADO COMPLETAMENTE:
.hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(23, 38, 60, 0.7);
}
*/






.hero-content {
    position: relative;
    z-index: 1;
    max-width: 600px;
}

/* Título con background en cada línea */
.hero h1 {
    margin-bottom: var(--spacing-md);
    background-color: var(--primario); /* AÑADIDO */
    color: white;
    padding: 0.2rem 0.8rem; /* AÑADIDO */
    display: inline; /* AÑADIDO */
    box-decoration-break: clone; /* AÑADIDO */
    -webkit-box-decoration-break: clone; /* AÑADIDO */
    line-height: 1.6; /* AÑADIDO */
    box-shadow: 0.5rem 0 0 var(--primario), -0.5rem 0 0 var(--primario); /* AÑADIDO */
}


@media(max-width:575px) {
    .hero-content {
        max-width: 30ch;
    }
    .hero h1 {
       font-size:1.75rem;
       max-width:60%;
    }
}


/* Flecha de scroll */
.scroll-arrow {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    cursor: pointer;
    background: rgba(255, 255, 255, 0.1);
    border: 2px solid white;
    border-radius: 50%;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    backdrop-filter: blur(10px);
}

.scroll-arrow:hover {
    background: rgba(255, 255, 255, 0.2);
    transform: translateX(-50%) translateY(-5px);
}

/* Icono de la flecha */
.scroll-arrow::after {
    content: '↓';
    font-size: 24px;
    color: white;
    font-weight: bold;
}

/* Animación de latido */
.scroll-arrow {
    animation: heartbeat 2s ease-in-out infinite;
}

@keyframes heartbeat {
    0% {
        transform: translateX(-50%) scale(1);
    }
    14% {
        transform: translateX(-50%) scale(1.1);
    }
    28% {
        transform: translateX(-50%) scale(1);
    }
    42% {
        transform: translateX(-50%) scale(1.1);
    }
    70% {
        transform: translateX(-50%) scale(1);
    }
    100% {
        transform: translateX(-50%) scale(1);
    }
}


@media(max-width:575px) {
    .scroll-arrow {
        bottom: -1rem;
    }
}

/* Smooth scroll para toda la página */
html {
    scroll-behavior: smooth;
}

/* Añadir scroll-margin a las secciones principales para compensar header sticky */
main,
.free-courses,
section:not(.hero) {
    scroll-margin-top: 120px;
}

/*.hero {
background-image: url('../upload/secciones/inicio/default.jpg');
background-size: cover;
background-position: center;
color: white;
padding: var(--spacing-xl) 0;
position: relative;
min-height: 500px;
display: flex;
align-items: center;
}

.hero::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(23, 38, 60, 0.7);
}

.hero-content {
position: relative;
z-index: 1;
max-width: 600px;
}

.hero h1 {
margin-bottom: var(--spacing-md);
}*/

/* Canales de Formación - Con cards clickeables */


.channels {
padding: var(--spacing-xl) 0;
}

.channel-cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: var(--spacing-md);
margin-top: var(--spacing-lg);
}

@media(max-width:1018px) {
    .channel-cards {
        display:none;
    }
    .channels  {
        background:var(--primario);
    }
    .channels h2 {
        margin-bottom: 0;
       color:#fff;
    }
}

.channel-card {
border-radius: 8px;
overflow: hidden;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
position: relative;
display: flex;
flex-direction: column;
transition: transform 0.3s ease, box-shadow 0.3s ease;
cursor: pointer;
}

.channel-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

.card-image {
aspect-ratio:1;
overflow: hidden;
position: relative;
z-index: 2;
}

.card-image img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.3s ease;
}

.channel-card:hover .card-image img {
transform: scale(1.05);
}

.channel-card .btn {
margin: var(--spacing-md);
align-self: center;
position: relative;
z-index: 2;
}

/* Pseudoelemento para hacer toda la card clickeable */
.channel-btn {
position: relative;
}

.channel-btn::after {
content: '';
position: absolute;
inset: 0;
z-index: 1;
cursor: pointer;
/* Expandir para cubrir toda la card */
top: calc(-100% - 250px); /* Subir para cubrir la imagen y el espacio superior */
height: calc(200% + 250px); /* Altura para cubrir toda la card */
width: 100%;
}

/* Feature Sections */
.feature-section {
padding: var(--spacing-xl) 0;
background-color: white;
}

.feature-section-alt {
background-color: var(--gris-6);
}

.feature-content {
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--spacing-lg);
align-items: center;
}

.feature-text {
padding: var(--spacing-md) 0;
}

.feature-text h2 {
margin-bottom: var(--spacing-md);
}

.feature-text p {
margin-bottom: var(--spacing-md);
}

.feature-image {
height: 480px;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
aspect-ratio: 1;
height:auto;
}
@media(min-width:1100px) {
    .feature-image {
        height: 480px;
    }
}

.feature-image img {
width: 100%;
height: 100%;
object-fit: cover;
}

.feature-text h3 {
       display:none;
    }
@media(max-width:1018px) {
    .feature-text h2 {
       display:none;
    }
    .feature-text h3 {
       display:block;
       font-size:2.25rem;
    }
}

/* Cursos Gratuitos */
/* Cursos Gratuitos - Nuevo diseño */
/* Cursos Gratuitos - Nuevo diseño */
.free-courses {
    padding: var(--spacing-xl) 0;
    background-color: var(--gris-6);
}

.course-categories {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--spacing-md);
    margin-top: var(--spacing-lg);
}

.category {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-sm);
}

/* Card principal con icono y texto */
.category-card {
    width: 100%;
    height: 120px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    padding: var(--spacing-md);
    gap: var(--spacing-sm);
    position: relative;
    overflow: hidden;
}

/* Colores específicos para cada categoría */
.category-card.ia {
    background-color: var(--verde);
}

.category-card.adultos {
    background-color: var(--rojo);
}

.category-card.jovenes {
    background-color: var(--turquesa);
}

.category-card.senior {
    background-color: var(--naranja);
}

/* Icono - ACTUALIZADO */
.category-icon {
    height: 80px; /* Solo limitamos la altura a 80px */
    display: flex;
    align-items: center;
    margin-right: var(--spacing-xs);
}

.category-icon img {
    height: 100%;
    width: auto;
    object-fit: contain;
    /* Eliminado el filtro */
}

/* Texto */
.category h3 {
    color: white;
    margin: 0;
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.2;
}

/* Botón debajo de la card */
.category .btn-outline {
    border: none;
    border-radius: 25px;
    padding: 0.5rem 1.5rem;
    font-weight: 500;
    transition: all 0.3s ease;
    color: var(--primario);
}

/* Colores específicos para cada categoría */
.category.ia .btn-outline {
    background-color: var(--verde);
}

.category.adultos .btn-outline {
    background-color: var(--rojo);
}

.category.jovenes .btn-outline {
    background-color: var(--turquesa);
}

.category.senior .btn-outline {
    background-color: var(--naranja);
}

/* Hover para todos los botones */
.category .btn-outline:hover {
    background-color: var(--primario) !important;
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}



/* Responsive */
@media (max-width: 768px) {
    .category-card {
        justify-content: center; /* Centra horizontalmente en flex */
        align-items: center;     /* Centra verticalmente en flex */
        text-align: center;
    }
    
    /* Si el contenedor padre también es flex, asegurar centrado */
    .category-card > * {
        align-self: center;
    }
    
    .category-card .icon {
        margin-left: auto;
        margin-right: auto;
    }
}
/*.free-courses {
padding: var(--spacing-xl) 0;
background-color: var(--gris-6);
}

.course-categories {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: var(--spacing-md);
margin-top: var(--spacing-lg);
}

.category {
height: 250px;
border-radius: 8px;
overflow: hidden;
position: relative;
background-size: cover;
background-position: center;
}

.category::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(to bottom, rgba(23, 38, 60, 0.3), rgba(23, 38, 60, 0.8));
transition: background 0.3s ease;
}

.category:hover::before {
background: linear-gradient(to bottom, rgba(23, 38, 60, 0.5), rgba(23, 38, 60, 0.9));
}

.category-content {
position: relative;
z-index: 1;
padding: var(--spacing-md);
padding-top: var(--spacing-lg);
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
text-align: center;
}

.category h3 {
color: white;
margin-bottom: var(--spacing-md);
}*/

/* Actualidad - Con cards clickeables */
.news {
padding: var(--spacing-xl) 0;
}

.news-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: var(--spacing-md);
margin-top: var(--spacing-lg);
}

.news-card {
border-radius: 8px;
overflow: hidden;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
position: relative;
transition: transform 0.3s ease, box-shadow 0.3s ease;
cursor: pointer;
}

.news-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
}

/* Cambiar el color del título al hacer hover en la card */
.news-card:hover .news-title-link {
color: var(--verde);
}

.news-image {
height: 180px;
overflow: hidden;
position: relative;
z-index: 2;
}

.news-image img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.3s ease;
}

.news-card:hover .news-image img {
transform: scale(1.05);
}

.news-content {
padding: var(--spacing-md);
position: relative;
z-index: 2;
}

.news-date {
color: var(--primario-claro);
font-weight: 500;
margin-bottom: var(--spacing-xs);
}

/* Estilos para el enlace del título */
.news-title-link {
color: var(--primario);
text-decoration: none;
transition: color 0.3s ease;
}

.news-title-link:hover {
color: var(--verde);
}

/* Pseudoelemento que hace toda la card clickeable */
.news-title-link::after {
content: '';
position: absolute;
inset: 0; /* Equivale a top: 0, right: 0, bottom: 0, left: 0 */
z-index: 1;
cursor: pointer;
}

/* Eventos y Redes Sociales - Fondo oscuro */
.events-social {
padding: var(--spacing-xl) 0;
background-color: var(--primario);
color: white;
}

.events-social h2 {
color: white;
margin-bottom: var(--spacing-lg);
}

/* NUEVO: Contenedor para calendario y eventos */
.calendar-events-container {
display: grid;
grid-template-columns: 350px 1fr;
gap: var(--spacing-lg);
margin-bottom: var(--spacing-xl);
}

.calendar-section {
display: flex;
justify-content: flex-start;
}

.events-section {
display: flex;
flex-direction: column;
}
@media(max-width:768px) {
    .events-section {
        display: none;
        
    }
}



/* Ajustar el calendario */
.calendar-container {
margin-top: 0;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* ESTILOS DEL CALENDARIO PERSONALIZADO - ACTUALIZADOS */
.calendar-widget {
background-color: white;
border-radius: 8px;
padding: var(--spacing-xs);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
width: 350px;
margin-bottom: 0;
}

.calendar-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: var(--spacing-xs);
}

.calendar-header h3 {
color: var(--primario);
margin: 0;
font-size: 1rem;
font-weight: 600;
}

.calendar-nav {
background: var(--verde);
color: var(--primario);
border: none;
padding: 6px 10px;
border-radius: 4px;
cursor: pointer;
font-weight: 600;
transition: background-color 0.3s ease;
font-size: 0.9rem;
}

.calendar-nav:hover {
background: var(--verde-claro);
}

.calendar-controls {
display: flex;
justify-content: center;
margin-bottom: var(--spacing-sm);
}

.btn-today {
background: var(--turquesa);
color: var(--primario);
border: none;
padding: 4px 12px;
border-radius: 4px;
cursor: pointer;
font-weight: 500;
font-size: 0.8rem;
transition: background-color 0.3s ease;
}

.btn-today:hover {
background: var(--turquesa-claro);
}

.calendar-grid {
color: var(--primario);
}

.calendar-weekdays {
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: 2px;
margin-bottom: 8px;
}

.calendar-weekdays div {
text-align: center;
font-weight: 600;
padding: 6px;
background-color: var(--gris-4);
border-radius: 4px;
font-size: 0.8rem;
}

.calendar-days {
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: 2px;
}

.calendar-day {
aspect-ratio: 1;
display: flex;
align-items: center;
justify-content: center;
border-radius: 4px;
cursor: pointer;
transition: all 0.3s ease;
position: relative;
font-size: 0.8rem;
background-color: white;
min-height: 32px;
}

.calendar-day:hover {
background-color: var(--gris-5);
}

.calendar-day.other-month {
color: var(--gris-3);
background-color: var(--gris-6);
}

.calendar-day.today {
background-color: var(--primario);
color: white;
font-weight: 600;
}

.calendar-day.has-event {
background-color: var(--verde);
color: var(--primario);
font-weight: 600;
}

.calendar-day.has-event:hover {
background-color: var(--verde-claro);
}

.calendar-day.has-event::after {
content: '';
position: absolute;
bottom: 2px;
left: 50%;
transform: translateX(-50%);
width: 4px;
height: 4px;
background-color: var(--primario);
border-radius: 50%;
}

/* Lista de eventos ajustada */
.events-list {
background-color: rgba(255, 255, 255, 0.05);
border-radius: 8px;
padding: var(--spacing-md);
height: fit-content;
max-height: 400px; /* Altura máxima para el scroll */
overflow-y: auto; /* Scroll vertical cuando sea necesario */
}

.events-list h4 {
color: white;
margin-bottom: var(--spacing-md);
font-size: 1.2rem;
border-bottom: 2px solid var(--verde);
padding-bottom: var(--spacing-xs);
}

.event-item {
display: flex;
align-items: flex-start;
gap: var(--spacing-xs);
padding: var(--spacing-xs);
background-color: rgba(255, 255, 255, 0.1);
border-radius: 8px;
margin-bottom: var(--spacing-xs);
transition: background-color 0.3s ease;
cursor: pointer;
}

.event-item:hover {
background-color: rgba(255, 255, 255, 0.15);
}

.event-date-badge {
display: flex;
flex-direction: column;
align-items: center;
background-color: var(--verde);
color: var(--primario);
padding: 6px;
border-radius: 6px;
min-width: 50px;
font-weight: 700;
flex-shrink: 0;
}

.event-date-badge .day {
font-size: 1.2rem;
line-height: 1;
}

.event-date-badge .month {
font-size: 0.7rem;
text-transform: uppercase;
}

.event-info h5 {
color: white;
margin-bottom: 2px;
font-size: 0.9rem;
}

.event-info p {
color: rgba(255, 255, 255, 0.8);
margin: 0;
font-size: 0.8rem;
}

/* Clase para truncar texto con elipsis */
.event-description-truncated {
display: -webkit-box;
-webkit-line-clamp: 2; /* Máximo 2 líneas */
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
line-height: 1.4;
max-height: 2.8em; /* 2 líneas × 1.4 line-height */
}

/* Fallback para navegadores que no soportan -webkit-line-clamp */
@supports not (-webkit-line-clamp: 2) {
.event-description-truncated {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 100%;
}
}

/* NUEVO: Sección de redes sociales */
.social-section {
text-align: center;
padding-top: var(--spacing-lg);
border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.social-section h3 {
color: white;
margin-bottom: var(--spacing-md);
font-size: 1.5rem;
}

.social-icons {
display: flex;
gap: var(--spacing-md);
justify-content: center;
margin-top: var(--spacing-md);
}

.social-icon {
display: flex;
align-items: center;
justify-content: center;
width: 48px;
height: 48px;
background-color: white;
border-radius: 50%;
transition: all 0.3s ease;
}

.social-icon img {
width: 24px;
height: 24px;
}

.social-icon:hover {
background-color: var(--verde);
transform: translateY(-3px);
}

/* Modal */
.modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
animation: fadeIn 0.3s ease;
}

.modal-content {
background-color: white;
margin: 5% auto;
padding: var(--spacing-md);
border-radius: 8px;
width: 90%;
max-width: 500px;
position: relative;
animation: slideIn 0.3s ease;
}

.modal-close {
position: absolute;
top: 15px;
right: 20px;
font-size: 28px;
font-weight: bold;
cursor: pointer;
color: var(--gris-3);
transition: color 0.3s ease;
}

.modal-close:hover {
color: var(--primario);
}

.modal-event-title {
color: var(--primario);
margin-bottom: var(--spacing-sm);
font-size: 1.5rem;
padding-right: 30px;
}

.modal-event-date {
color: var(--primario-claro);
font-weight: 500;
margin-bottom: var(--spacing-sm);
font-size: 1rem;
}

.modal-event-description {
background-color: var(--gris-6);
padding: var(--spacing-sm);
border-radius: 8px;
margin-bottom: var(--spacing-sm);
line-height: 1.6;
}

.modal-event-actions {
display: flex;
gap: var(--spacing-xs);
justify-content: flex-end;
}

@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}

@keyframes slideIn {
from { transform: translateY(-50px); opacity: 0; }
to { transform: translateY(0); opacity: 1; }
}
/* FIN ESTILOS DEL CALENDARIO PERSONALIZADO */


#agenda {
    scroll-margin-top: 110px; /* Altura aproximada del header sticky + margen */
}

/* Nueva sección de descripción del programa */
.program-description {
    background-color: var(--gris-6);
    padding: var(--spacing-xl) 0;
    color: var(--primario);
}

.program-description p {
    font-size: 1.1rem;
    line-height: 1.6;
    margin: 0;
    text-align: left;
}

/* Media query para móviles */
@media (max-width: 768px) {
    .program-description {
        padding: var(--spacing-lg) 0;
    }
    
    .program-description p {
        font-size: 1rem;
    }
}

/* Honeypot field - hidden from users */
.offscreen {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

/* Project and Sponsors - Full width white background */
.project-sponsors-wrapper {
background-color: white;
padding: var(--spacing-xl) 0;
color: var(--primario);
}

.project-info {
margin-bottom: var(--spacing-lg);
}

.sponsor-logos {
display: flex;
/*flex-wrap: wrap;*/
justify-content: center;
align-items: center;
gap: var(--spacing-md);

}

.sponsor-logo {
height: 70px;
width: auto;
object-fit: contain;
transition: transform 0.3s ease, opacity 0.3s ease;

    flex: 1 1 0;
    min-width: 0;
    max-width: 100%;
}

.sponsor-logo:hover {
transform: scale(1.05);
opacity: 0.8;
}

/* Footer */
.footer {
padding: var(--spacing-md) 0;
background-color: var(--primario);
color: white;
}

.legal-links {
display: flex;
gap: var(--spacing-md);
justify-content: center;
}

.legal-links a {
color: white;
}

.legal-links a:hover {
color: var(--verde-claro);
}

/* Media Queries */
@media (max-width: 768px) {
    .feature-content {
        grid-template-columns: 1fr;
    }

    .feature-image {
        height: 300px;
        order: 1;
        aspect-ratio: auto;
        height: auto;
        aspect-ratio: 768/825;
    }



    .feature-text {
        order: 2;
    }
}

/* Media Queries */
@media (max-width: 992px) {
  

    .calendar-events-container {
    grid-template-columns: 1fr;
    gap: var(--spacing-md);
    }

    .calendar-section {
    justify-content: center;
    }

    .calendar-widget {
    width: 100%;
    max-width: 400px;
    }
}

@media (max-width: 768px) {
h1 {
font-size: 2.5rem;
}

h2 {
font-size: 2rem;
}

/* Menú hamburguesa para móvil */
.menu-button {
display: flex;
}

.main-nav {
position: fixed;
top: 0;
right: -100%;
width: 80%;
max-width: 300px;
height: 100vh;
background-color: white;
box-shadow: -5px 0 15px rgba(0, 0, 0, 0.1);
transition: right 0.3s ease;
z-index: 100;
padding: 80px 20px 20px;
}

.main-nav ul {
flex-direction: column;
gap: var(--spacing-md);
}

.main-nav a {
display: block;
padding: 10px 0;
font-size: 1.2rem;
}

/* Cuando el checkbox está marcado, muestra el menú */
.menu-toggle:checked ~ .main-nav {
right: 0;
}

/* Animación del botón hamburguesa */
.menu-toggle:checked ~ .menu-button span:nth-child(1) {
transform: translateY(9px) rotate(45deg);
}

.menu-toggle:checked ~ .menu-button span:nth-child(2) {
opacity: 0;
}

.menu-toggle:checked ~ .menu-button span:nth-child(3) {
transform: translateY(-9px) rotate(-45deg);
}

.legal-links {
flex-direction: column;
align-items: center;
gap: var(--spacing-sm);
}

.sponsor-logos {
/*flex-direction: column;*/
gap: var(--spacing-sm);
}

.sponsor-logo {
/*height: 80px;*/
}

/* RESPONSIVE CALENDARIO */
.calendar-events-container {
grid-template-columns: 1fr;
gap: var(--spacing-sm);
margin-bottom: var(--spacing-lg);
}

.calendar-widget {
max-width: 100%;
}

.calendar-header {
margin-bottom: var(--spacing-sm);
}

.calendar-weekdays div {
padding: 4px;
font-size: 0.7rem;
}

.calendar-day {
font-size: 0.7rem;
min-height: 28px;
}

.event-item {
flex-direction: row;
text-align: left;
}

.event-info {
text-align: left;
}

.events-list {
margin-top: var(--spacing-sm);
max-height: none; /* Quitar la altura máxima en móvil */
overflow-y: visible; /* Quitar el scroll en móvil */
}

.social-section {
padding-top: var(--spacing-md);
}

.social-icons {
justify-content: center;
flex-wrap: wrap;
}

.modal-content {
margin: 10% auto;
width: 95%;
padding: var(--spacing-sm);
}

.modal-event-actions {
flex-direction: column;
}
}




/* Estilos para modal con múltiples eventos */
.modal-multiple-events-container {
    max-height: 400px;
    overflow-y: auto;
    margin-bottom: var(--spacing-md);
    padding-right: 5px; /* Espacio para el scrollbar */
}

.modal-multiple-event {
    border: 1px solid var(--gris-4);
    border-radius: 8px;
    padding: var(--spacing-sm);
    margin-bottom: var(--spacing-sm);
    background-color: var(--gris-6);
}

.modal-multiple-event:last-child {
    margin-bottom: 0;
}

.modal-event-title-multiple {
    color: var(--primario);
    margin-bottom: var(--spacing-xs);
    font-size: 1.2rem;
    padding-right: 0;
}

.modal-event-actions-multiple {
    margin-top: var(--spacing-xs);
}

.btn-small {
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
}

/* Scrollbar personalizado para el contenedor de eventos */
.modal-multiple-events-container::-webkit-scrollbar {
    width: 6px;
}

.modal-multiple-events-container::-webkit-scrollbar-track {
    background: var(--gris-5);
    border-radius: 3px;
}

.modal-multiple-events-container::-webkit-scrollbar-thumb {
    background: var(--gris-3);
    border-radius: 3px;
}

.modal-multiple-events-container::-webkit-scrollbar-thumb:hover {
    background: var(--gris-2);
}



@media (max-width: 480px) {
    .sponsor-logo {
    height: 40px;
    }

    /* Calendario aún más pequeño en móviles muy pequeños */
    .calendar-weekdays div {
    padding: 2px;
    font-size: 0.6rem;
    }

    .calendar-day {
    font-size: 0.6rem;
    min-height: 24px;
    }

    .event-date-badge {
    min-width: 40px;
    padding: 4px;
    }

    .event-date-badge .day {
    font-size: 1rem;
    }

    .event-date-badge .month {
    font-size: 0.6rem;
    }

    .modal-multiple-events-container {
        max-height: 300px;
    }
    
    .modal-event-title-multiple {
        font-size: 1.1rem;
    }
}


