/* NowAI/public.css */

/* ====== Reset Básico ====== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    width: 100%;
    scroll-behavior: smooth;
}

body {
    background-color: #f5f5f5; /* Color de fondo claro */
    font-family: "Comfortaa", sans-serif;
    padding-top: 80px; /* Espacio para el header fijo */
}

/* ====== Estilos para el Header Público ====== */
body.scrolled header {
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.5);
}

header {
    transition: box-shadow 0.3s ease, transform 0.5s ease-in-out;
    transition: box-shadow 0.3s ease;
    position: fixed;               /* Mantiene el header fijo en la parte superior */
    top: 10px;                     /* Añade un margen superior de 10px */
    left: 50%;                     /* Centra horizontalmente */
    transform: translateX(-50%);   /* Ajusta la posición para centrar */
    width: calc(100% - 40px);      /* Mantiene márgenes de 20px a cada lado */
    max-width: 1100px;             /* Igual que #principal */
    z-index: 1000;                 /* Asegura que esté por encima de otros elementos */
    background-color: #343434;
    border-radius: 25px;
    display: flex;
    height: 80px;
    align-items: center;
    justify-content: space-between;
    padding: 10px 20px;
    box-sizing: border-box;        /* Incluye padding en el ancho total */
}

footer {
    text-align: center; /* Centra horizontalmente el texto */
    padding: 20px 0; /* Margen interno para espaciado vertical */
    background-color: #343434; /* Color de fondo oscuro */
    color: #ffffff; /* Color del texto blanco */
    font-family: 'Comfortaa', sans-serif; /* Asegura la fuente */
    font-size: 14px; /* Tamaño de fuente */
    margin-top: 40px; /* Margen superior para separarlo de otros contenidos */
    border-top: 2px solid #555555; /* Opcional: línea separadora arriba */
}

/* Estilos para el logo en la página principal */
.logo-header img {
    width: 30px;
    height: 30px;
    margin-left: 20px;
}

/* Estilos para el menú en la página principal */
.menu-header ul {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 20px; /* Espacio entre elementos del menú */
}

.menu-header a {
    text-decoration: none;
    color: #fff;
    font-size: 16px;
    transition: color 0.3s, background-color 0.3s;
    padding: 0;
    border-radius: 5px;
}

.menu-header a:hover {
    background-color: #555555; /* Fondo gris oscuro al pasar el cursor */
}

/* Estilos para el botón de hamburguesa en la página principal */
.hamburger {
    display: none; /* Oculto por defecto, se mostrará en móviles */
    flex-direction: column;
    justify-content: space-between;
    width: 25px;
    height: 20px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
}

.hamburger .bar {
    height: 3px; /* Mayor visibilidad */
    width: 100%;
    background-color: #fff;
    border-radius: 2px; /* Apariencia más nítida */
    transition: all 0.3s ease;
}

/* Animación cuando el botón está activo en la página principal */
.hamburger.active .bar:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}

.hamburger.active .bar:nth-child(2) {
    opacity: 0;
}

.hamburger.active .bar:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

/* ====== Estilos Generales ====== */

/* Sección Principal */
#principal {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    max-width: 1100px;
    margin: 0 auto;
    gap: 24px;
}

.intro-box {
    flex: 1;
}

.intro-box h1 {
    font-family: 'Bebas Neue', cursive;
    font-size: 48px;
    margin-bottom: 20px;
    color: #343434;
    text-align: center; /* Centrar el título */
}

.intro-box p {
    font-family: 'Comfortaa', sans-serif;
    font-size: 18px;
    margin-bottom: 30px;
    color: #555555;
    text-align: center; /* Centrar la descripción */
}

.btn-contacto {
    background-color: #666666; /* Gris */
    color: #ffffff; /* Texto blanco */
    padding: 12px 24px;
    align-items: center;
    border: none;
    border-radius: 25px;
    text-decoration: none;
    font-family: 'Comfortaa', sans-serif;
    max-width: 500px;
    font-size: 16px;
    cursor: pointer;
    transition: background-color 0.3s, transform 0.2s;
    display: block;
    margin: 0 auto; /* Centrar el botón */
}

.btn-contacto:hover {
    background-color: #555555;
    transform: scale(1.05);
}

/* ====== Estilos para la Sección de Formaciones ====== */

#formaciones {
    padding: 60px 20px;
    max-width: 1200px; /* Aumentar el max-width para tarjetas más anchas */
    margin: 0 auto;
}

#formaciones h2 {
    font-family: 'Bebas Neue', cursive;
    letter-spacing: 1px;
    font-size: 32px;
    margin-bottom: 40px;
    text-align: center;
    color: #343434;
}

.resource-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); /* Aumentar min-width a 350px para más ancho */
    gap: 24px;
}

.resource-item {
    background-color: #ffffff;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s;
    max-width: 350px; /* Aumentar el max-width para más ancho */
    width: 350px;
    margin: 0 auto; /* Centrar en su grid */
}

.resource-item:hover {
    transform: translateY(-5px);
}

.resource-image,
.resource-video {
    display: flex;
    justify-content: center;
    align-items: center;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 200px; /* Altura máxima para buena visualización */
    margin: 0 auto; /* Centrado horizontal */
    object-fit: contain; /* Asegura que el video mantenga su proporción */
}

.resource-item h2 {
    font-family: 'Bebas Neue', cursive;
    letter-spacing: 1px;
    font-size: 24px;
    margin: 10px 20px; /* Reduce el margen superior e inferior a 10px */
    color: #343434;
    text-align: center; /* Centrar el título */
}

.resource-item p {
    font-family: 'Comfortaa', sans-serif;
    font-size: 16px;
    margin: 0 20px 20px 20px;
    color: #555555;
    text-align: center; /* Centrar la descripción */
    
    /* Propiedades para truncar el texto a 4 líneas */
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 4; /* Limita a 4 líneas */
    -webkit-box-orient: vertical;
    
    /* Compatibilidad con Firefox */
    display: -moz-box;
    -moz-box-orient: vertical;
    /* Nota: Firefox aún no soporta completamente el line-clamp multi-línea */
}

.download-button {
    display: block;
    background-color: #666666; /* Gris */
    color: #ffffff; /* Texto blanco */
    padding: 10px 20px;
    margin: 0 20px 20px 20px;
    border: none;
    border-radius: 20px;
    text-decoration: none;
    font-family: 'Comfortaa', sans-serif;
    font-size: 14px;
    text-align: center;
    cursor: pointer;
    transition: background-color 0.3s, transform 0.2s;
}

.download-button:hover {
    background-color: #555555;
    transform: scale(1.05);
}

/* ====== Estilos para la Sección de Noticias ====== */

#news {
    padding: 60px 20px;
    max-width: 1400px; /* Aumentar el max-width para tarjetas más anchas */
    margin: 0 auto;
}

#news h2 {
    font-family: 'Bebas Neue', cursive;
    letter-spacing: 1px;
    font-size: 32px;
    margin-bottom: 40px;
    text-align: center;
    color: #343434;
}

.news-full-content h1 {
    font-family: 'Bebas Neue', cursive; /* Fuente 'Bebas Neue' */
    font-size: 48px;                   
    color: #343434;                     /* Color del texto (puedes ajustarlo si lo deseas) */
    text-align: center;                 /* Centrar el texto */
    margin-bottom: 20px;                /* Espacio inferior para separar del contenido */
    line-height: 1.2;                   /* Altura de línea para mejorar la legibilidad */
}
.news-full-content h2 {
    font-family: 'Comfortaa', cursive; /* Fuente 'Bebas Neue' */
    font-size: 32px;                   
    color: #343434;                     /* Color del texto */
    text-align: left;                   /* Alinear el texto a la izquierda */
    margin-bottom: 15px;                /* Espacio inferior para separar del contenido */
    line-height: 1.3;                   /* Altura de línea para mejorar la legibilidad */
}

.news-full-content h3 {
    font-family: 'Comfortaa', cursive; /* Fuente 'Bebas Neue' */
    font-size: 28px;                    /* Tamaño de fuente de 26px */
    color: #343434;                     /* Color del texto */
    text-align: left;                   /* Alinear el texto a la izquierda */
    margin-bottom: 15px;                /* Espacio inferior para separar del contenido */
    line-height: 1.3;                   /* Altura de línea para mejorar la legibilidad */
}

.news-grid {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.news-item {
    background-color: #ffffff;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    display: flex;
    flex-direction: row;
    transition: transform 0.3s;
    align-items: center;
    max-height: 220px;
    height: 200px;
    width: 1000px;
    max-width: 1000px; /* Aumentar el ancho máximo a 1000px */
    margin: 0 auto; /* Centrar el news-item */
}

.news-item:hover {
    transform: translateY(-5px);
}

.news-image,
.news-video {
    max-width: 300px; /* Aumentar el ancho máximo */
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: 10px;
}

.news-content {
    padding: 20px;
    display: flex;
    flex-direction: column;
    flex: 1;
    margin-left: 20px; /* Espacio entre la imagen y el texto */
}

.news-content h3 {
    letter-spacing: 2px;
    font-family: 'Bebas Neue', cursive;
    font-size: 28px; /* Ajustado para alineación a la izquierda */
    margin-bottom: 10px;
    color: #343434;
    text-align: left; /* Cambiado de center a left */
    padding: 0px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2; /* Número de líneas visibles */
    -webkit-box-orient: vertical;
}

/* Soporte para Firefox y otros navegadores */
.news-content h3 {
    display: block;
    display: -moz-box;
    display: -webkit-box;
    display: box;
    -moz-box-orient: vertical;
    -webkit-box-orient: vertical;
    box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: normal;
    line-height: 1.2em;
    max-height: 2.4em; /* 2 líneas * 1.2em */
}

.news-content p {
    font-family: 'Comfortaa', sans-serif;
    font-size: 16px;
    margin-bottom: 20px;
    color: #555555;
    text-align: left; /* Cambiado de justify a left */
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2; /* Número de líneas visibles */
    -webkit-box-orient: vertical;
}

/* Estilo específico para la fecha de publicación */
.news-content .news-date {
    font-family: 'Comfortaa', sans-serif;
    font-size: 14px; /* Tamaño de fuente ajustado */
    margin-top: 15px;
    margin-bottom: 10px; /* Ajusta el margen si es necesario */
    color: #555555;
    text-align: left; /* Mantén la alineación actual */
}

.btn-read-more {
    background-color: #666666; /* Gris */
    color: #ffffff; /* Texto blanco */
    padding: 10px 20px;
    border: none;
    border-radius: 20px;
    text-decoration: none;
    font-family: 'Comfortaa', sans-serif;
    font-size: 14px;
    cursor: pointer;
    transition: background-color 0.3s, transform 0.2s;
    align-self: center; /* Centrar el botón */
}

.btn-read-more:hover {
    background-color: #555555;
    transform: scale(1.05);
}

/* ====== Estilos para la Sección de Contacto ====== */

#contacto {
    padding: 60px 20px;
    max-width: 1100px;
    margin: 0 auto;
}

#contacto h1 {
    font-family: 'Bebas Neue', cursive;
    font-size: 28px;
    margin-bottom: 20px;
    text-align: center;
    color: #343434;
}

.contact-form {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.contact-form label {
    font-family: 'Comfortaa', sans-serif;
    font-size: 16px;
    color: #343434;
}

.contact-form input,
.contact-form textarea {
    padding: 10px;
    border: 2px solid #ccc;
    border-radius: 10px;
    font-family: 'Comfortaa', sans-serif;
    font-size: 16px;
}

.contact-form input:focus,
.contact-form textarea:focus {
    border-color: #666666;
    outline: none;
}

.contact-form button {
    background-color: #666666; /* Gris */
    color: #ffffff; /* Texto blanco */
    padding: 12px 24px;
    border: none;
    border-radius: 25px;
    font-family: 'Comfortaa', sans-serif;
    font-size: 16px;
    cursor: pointer;
    transition: background-color 0.3s, transform 0.2s;
    align-self: center; /* Centrar el botón */
}

.contact-form button:hover {
    background-color: #555555;
    transform: scale(1.05);
}

/* ====== Estilos para Mensajes de Error y Éxito ====== */

.error {
    color: red;
    font-family: 'Comfortaa', sans-serif;
    margin-bottom: 15px;
    text-align: center;
}

.success {
    color: green;
    font-family: 'Comfortaa', sans-serif;
    margin-bottom: 15px;
    text-align: center;
}

/* ====== Estilos para Swiper.js en Detalles de Noticias ====== */

.news-media-carousel {
    width: 800px; /* Ancho fijo */
    height: 500px; /* Altura fija */
    margin: 20px auto 50px; /* Centrar horizontalmente */
    position: relative; /* Para posicionar los botones de navegación */
    border-radius: 15px;
    overflow: hidden;
    background-color: #ffffff;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.carousel-media .youtube-iframe {
    width: 100%;
    height: 100%;
    border: none;
}
.youtube-iframe{
    width: 100%;
    height: 100%;
}

.carousel-media .youtube-iframe,
.carousel-media .news-media-video {
    width: 100%;
    height: 100%;
    object-fit: cover; /* O 'contain' si prefieres que se ajuste sin recortar */
    margin: 0; /* Quitar márgenes para que ocupen todo el contenedor */
    display: block;
}

.carousel-container {
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
    border-radius: 15px;
    background-color: #ffffff;
}

.carousel-media {
    display: flex;

    height: 100%;
    transition: transform 0.5s ease-in-out;
    align-items: center; /* Centrar verticalmente */
    justify-content: center; /* Centrar horizontalmente */
}

.media-item {
    flex: 0 0 100%;
    display: none;
    justify-content: center;
    align-items: center;
}

.media-item.active {
    display: flex;
}

.news-media-image,
.news-media-video,
.youtube-iframe {
    max-width: 100%;
    max-height: 500px; /* Aumentar el máximo alto */
    object-fit: contain; /* Mantener proporción sin recortar */
    margin: 0 auto 20px auto; /* Centrar y añadir margen inferior */
    display: block; /* Asegurar que el elemento sea de bloque para centrar */
}

/* Flechas de Navegación */
.carousel-button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: rgba(52, 52, 52, 0.6);
    border: none;
    color: #ffffff;
    font-size: 24px;
    padding: 7px 13px;
    cursor: pointer;
    border-radius: 50%;
    z-index: 10;
    transition: background-color 0.3s, transform 0.2s;
}

.carousel-button:hover {
    background-color: rgba(52, 52, 52, 0.8);
    transform: translateY(-50%) scale(1.1);
}

.prev-button {
    left: 5px; /* Posicionar a la izquierda */
}

.next-button {
    right: 5px; /* Posicionar a la derecha */
}

.carousel-button::after {
    content: '';
}

.swiper-container-news-media {
    width: 100%;
    height: 100%; /* Ajustar para que tome la altura del contenido */
}

.swiper-slide-news-media {
    display: flex;
    justify-content: center;
    align-items: center;
}

/* ====== Estilos para Detalles de Noticias ====== */

#news-detail {
    padding: 20px 20px;
    max-width: 1200px; /* Aumentar el max-width para mejor visualización */
    margin: 0 auto;
}

.news-full-content {
    max-width: 1000px; /* Aumentar el max-width para más ancho */
    margin: 0 auto;
    padding: 20px;
    text-align: center; /* Centrar el contenido */
}

/* ====== CORRECCIÓN PARA LISTAS - ALINEACIÓN A LA IZQUIERDA ====== */
.news-full-content ul,
.news-full-content ol {
    text-align: left; /* Alinear listas a la izquierda */
    margin-left: 40px; /* Dar margen izquierdo apropiado para las viñetas */
    margin-bottom: 20px;
    padding-left: 0;
}

.news-full-content ul li,
.news-full-content ol li {
    text-align: left; /* Asegurar que los elementos de lista estén alineados a la izquierda */
    margin-bottom: 10px;
    line-height: 1.6;
}

/* Estilos adicionales para listas anidadas */
.news-full-content ul ul,
.news-full-content ol ol,
.news-full-content ul ol,
.news-full-content ol ul {
    margin-left: 20px; /* Indentación para listas anidadas */
    margin-top: 10px;
}

.resource-item h2{
    letter-spacing: 1px;
}

.news-full-content p {
    font-family: 'Comfortaa', sans-serif;
    font-size: 18px;
    margin-bottom: 20px;
    color: #555555;
    text-align: justify; /* Justificar el texto */
}

/* Asegurar que las imágenes/videos dentro del carrusel no se corten y se centren */
.news-media-image,
.news-media-video,
.youtube-iframe {
    width: 100%;
    height: auto;
    max-height: 500px; /* Aumentar el máximo alto */
    object-fit: contain; /* Mantener proporción sin recortar */
    margin: 0 auto 20px auto; /* Centrar y añadir margen inferior */
    display: block; /* Asegurar que el elemento sea de bloque para centrar */
}

/* ====== Estilos para el Nuevo Panel Introductorio ====== */

.welcome-panel {
    width: 800px;
    height: 600px;
    background-color: #ffffff;
    box-shadow: 0 5px 10px rgba(0.7, 0, 0, 0.7);
    border-radius: 15px;
    display: flex;
    overflow: hidden; /* Para que el contenido no se salga de los bordes */
    margin: 30px auto; /* Centrar y añadir margen vertical */
}

.welcome-panel .left-side {
    width: 50%;
    background-image: url("/NowAI/img/Portada.png"); /* Reemplazar con la nueva imagen */
    background-size: cover;
    background-position: center;
}

.welcome-panel .right-side {
    width: 50%;
    background-color: #343434; /* Usar color del header para consistencia */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 40px;
    position: relative;
    text-align: center;
    max-width: 100%; /* Limitar el ancho máximo */
    box-sizing: border-box; /* Asegura que el padding no aumente el ancho */
}

.welcome-panel .right-side img {
    /* Si decides agregar una imagen dentro de .right-side, ajusta los estilos */
    /* Por ejemplo, un logo adicional */
    /* Si no es necesario, puedes eliminar esta regla */
    width: 80px; /* Tamaño reducido del logo */
    margin-top: 15px;
    margin-bottom: 20px;
    position: absolute;
    top: 20px; /* Posicionado en la parte superior */
    left: 50%;
    transform: translateX(-50%); /* Centra el logo horizontalmente */
}

.welcome-panel .right-side h1 {
    font-family: 'Bebas Neue', cursive;
    color: #ffffff;
    font-size: 42px;
    letter-spacing: 2px;
    margin-bottom: 40px;
    margin-top: 100px; /* Espacio para que el texto quede más abajo del logo */
    max-width: 100%; /* Evita que el texto se expanda demasiado */
    box-sizing: border-box;
}

.welcome-panel .right-side p {
    color: #ffffff;
    font-size: 16px;
    text-align: center;
    margin-bottom: 30px;
    padding: 0 10px; /* Espacio adicional para mejorar la legibilidad en pantallas pequeñas */
    max-width: 100%; /* Limitar el ancho del párrafo */
    box-sizing: border-box;
}

.welcome-panel .right-side button {
    padding: 10px 20px;
    background-color: #ffffff;
    color: #343434;
    border: none;
    border-radius: 25px;
    font-size: 18px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    max-width: 100%; /* Limitar el ancho del botón */
    box-sizing: border-box;
    text-decoration: none;
    font-family: 'Comfortaa', sans-serif;
}

.welcome-panel .right-side button:hover {
    background-color: #e6e6e6;
}

/* Personaliza el contenedor del scrollbar */
::-webkit-scrollbar {
    width: 8px; /* Ancho del scroll */
    height: 8px; /* Alto del scroll (en caso horizontal) */
    border-radius: 10px; /* Bordes redondeados */
}

/* Estilo del "track" o fondo del scroll */
::-webkit-scrollbar-track {
    background: #f0f0f0; /* Fondo claro */
    border-radius: 10px; /* Bordes redondeados */
}

/* Estilo de la barra de desplazamiento */
::-webkit-scrollbar-thumb {
    background: #343434; /* Color gris para el scroll */
    border-radius: 10px; /* Bordes redondeados */
}

/* Opcional: Cambiar color al pasar el mouse por encima */
::-webkit-scrollbar-thumb:hover {
    background: #343434; /* Un poco más oscuro al pasar el ratón */
}

/* ====== Media Queries para Responsividad ====== */
/* Clase personalizada para el popup */
.custom-swal-popup {
    border-radius: 10px;
    padding: 20px;
    /* Otros estilos que desees agregar */
}

/* Clase personalizada para el botón de confirmación */
.custom-swal-confirm-button {
    background-color: #ffffff !important;
    color: #343434 !important;
    border: none !important;
    border-radius: 5px !important;
}

.custom-swal-confirm-button:hover {
    background-color: #e0e0e0 !important;
}

/* Clase personalizada para el popup */
.toast-notification {
    display: flex;
    align-items: center;
    background-color: #343434;
    color: #ffffff;
    padding: 10px 15px;
    border-radius: 8px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    max-width: 300px;
    font-size: 14px;
}
.toast-image {
    width: auto;
    height: 50px;
    object-fit: cover;
    border-radius: 5px;
    margin-right: 10px;
}
.toast-content {
    flex-grow: 1;
    overflow: hidden;
}
  
.toast-content p {
    margin: 5px 0 0;
    font-size: 12px;
    color: #cfcfcf;
    display: -webkit-box;            /* Necesario para aplicar line-clamp */
    -webkit-line-clamp: 4;           /* Número de líneas antes de truncar */
    -webkit-box-orient: vertical;    /* Orientación de las cajas */
    overflow: hidden;                /* Oculta el contenido que sobresale */
    text-overflow: ellipsis;         /* Agrega puntos suspensivos */
}
  
  /* Botón de cierre */
.toast-close-btn {
  background: none;
  border: none;
  color: #ffffff;
  font-size: 16px;
  margin-left: 5px;
  cursor: pointer;
}
.custom-swal-popup {
    border-radius: 8px; /* Bordes redondeados */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* Sombra ligera */
  }

#toast-container {
  position: fixed;
  bottom: 20px;
  left: 20px; /* Cambiar al extremo inferior izquierdo */
  z-index: 9999;
  display: flex;
  flex-direction: column-reverse; /* Apilar notificaciones nuevas abajo */
  gap: 10px;
}

/* Clase personalizada para el botón de confirmación */
.custom-swal-confirm-button {
    background-color: #007bff; /* Color de botón personalizado */
    color: #fff;
    border: none;
    padding: 10px 20px;
    font-size: 14px;
    border-radius: 4px;
  }

.custom-swal-confirm-button:hover {
    background-color: #e0e0e0 !important;
}
/* ====== Estilos para la Sección de Suscripción ====== */
#suscripcion {
    padding: 60px 20px;
    max-width: 1100px;
    margin: 0 auto;
    text-align: center;
}
#suscripcion h2 {
    font-size: 28px;
    font-family: "Comfortaa", cursive;
    color: #343434;
    margin-bottom: 10px;
}
#suscripcion p {
    font-size: 16px;
    color: #555;
    margin-bottom: 20px;
}
.subscribe-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    justify-content: center;
}
.subscribe-row {
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: center;
    justify-content: center;
}
.subscribe-row input[type="email"] {
    padding: 12px 16px;
    font-size: 16px;
    border: 5px solid transparent;
    border-radius: 10px;
    background:
      linear-gradient(#fff, #fff) padding-box,
      linear-gradient(90deg, #343434, #555, #343434) border-box;
    background-size: 400% 400%;
    animation: rotatingBorder 4s linear infinite;
    outline: none;
}
.subscribe-row button {
    background-color: #343434;
    color: #ffffff;
    padding: 12px 24px;
    border: none;
    border-radius: 25px;
    font-family: 'Comfortaa', sans-serif;
    font-size: 16px;
    cursor: pointer;
    transition: background-color 0.3s, transform 0.2s;
}
.subscribe-row button:hover {
    background-color: #555;
    transform: scale(1.05);
}
.privacy-row {
    display: flex;
    flex-direction: row;
    gap: 5px;
    font-size: 14px;
    color: #555;
    align-items: center;
    justify-content: center;
}
.privacy-row a {
    color: #343434;
    text-decoration: underline;
}
@keyframes rotatingBorder {
    0% { background-position: 0% 50%; }
    100% { background-position: 100% 50%; }
}

/* Estilos para Toast Notifications */
.toast-notification {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 1100;
    display: none; /* Se mostrará cuando exista un mensaje */
    padding: 15px 20px;
    border-radius: 8px;
    color: #fff;
    font-family: 'Comfortaa', sans-serif;
    font-size: 16px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.toast-notification.success {
    background-color: #28a745; /* Verde para éxito */
}

.toast-notification.error {
    background-color: #dc3545; /* Rojo para error */
}

.toast-close-btn {
    margin-left: 15px;
    cursor: pointer;
    font-weight: bold;
}

.btn-ai-summary {
    background-color: #007bff; /* Azul para destacar */
    color: #fff;
    padding: 8px 16px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-family: 'Comfortaa', sans-serif;
    font-size: 14px;
    transition: background-color 0.3s ease;
    margin-left: 10px; /* Espacio respecto a la fecha */
  }
  
  .btn-ai-summary:hover {
    background-color: #0056b3;
  }
  

/* Responsividad del Nuevo Panel Introductorio */
@media (max-width: 768px) {
    .welcome-panel {
        flex-direction: column;
        width: 90%;
        height: auto; /* Ajusta la altura automáticamente */
    }

    /* Ahora la sección de la derecha estará arriba y la imagen debajo */
    .welcome-panel .right-side {
        width: 100%;
        padding: 20px;
        padding-bottom: 40px; /* Reducido para acercar las redes sociales al botón */
        position: relative;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
        min-height: auto;
    }

    .welcome-panel .left-side {
        width: 100%;
        height: 350px; /* Tamaño más alto para la imagen en móviles */
    }

    /* Ajustes del logo, título y descripción */
    .welcome-panel .right-side img {
        width: 60px;
        margin-bottom: 20px;
        position: static; /* Cambiado a static */
        transform: none;
    }

    .welcome-panel .right-side h1 {
        font-size: 32px;
        margin-top: 20px;
    }

    .welcome-panel .right-side p {
        font-size: 14px;
        margin-bottom: 20px;
    }

    .welcome-panel .right-side button {
        font-size: 16px;
        padding: 8px 16px;
    }
}

/* ====== Media Queries Existentes ====== */

@media (max-width: 768px) {
    .news-full-content h3 {
        font-size: 28px;
    }
    .news-full-content h2 {
        font-size: 28px;
        margin-left: 0px;
        padding: 0px;
    }
    
    /* Corrección adicional para listas en móviles */
    .news-full-content ul,
    .news-full-content ol {
        margin-left: 20px; /* Reducir margen en móviles */
    }
    
    .news-full-content p {
        text-align: center;
    }
    
    .logo-header img {
        width: 30px;
        height: 30px;
        margin-left: 5px;
    }
    header {
        position: fixed;          
        top: 10px;                     /* Ajusta el margen superior para móviles */
        left: 50%;                     /* Centra horizontalmente */
        transform: translateX(-50%);   /* Ajusta la posición para centrar */
        width: calc(100% - 20px);      /* Mantiene márgenes de 10px a cada lado */
        max-width: 1100px;             /* Igual que #principal */
        padding: 10px 20px;            /* Reducir padding lateral */
        height: 70px;                  /* Altura ajustada para móviles */
        border-radius: 20px;
        z-index: 1000;                 /* Asegura que esté por encima de otros elementos */
    }

    .hamburger {
        display: flex; /* Mostrar el botón en móviles */
        position: absolute;
        top: 20px;
        right: 20px;
        z-index: 1001; /* Asegurar que esté por encima del menú */
    }

    .news-item {
        flex-direction: column; /* Cambiar la dirección del flexbox a columna */
        max-width: 100%;
        height: auto;           /* Elimina la altura fija */
        max-height: none;       /* Elimina la altura máxima */
    }

    .news-image,
    .news-video {
        max-width: 100%;
        width: 100%;
        height: auto; /* Permite que la altura sea flexible */
        max-height: 200px; /* Reducir la altura máxima para móviles */
        object-fit: cover;
        border-radius: 10px;
    }

    .news-content {
        padding: 15px;
        margin-left: 0; /* Eliminar margen en móviles */
        text-align: center; /* Centrar el contenido */
    }

    .news-content h3 {
        letter-spacing: 2px;
        font-size: 22px; /* Ajustar tamaño del título */
        text-align: center; /* Centrar en móviles */
    }

    .news-content p {
        font-size: 14px; /* Reducir tamaño de la fuente para móviles */
        text-align: justify; /* Justificar el texto para mejor legibilidad */
    }

    .btn-read-more {
        font-size: 14px; /* Ajustar tamaño de la fuente */
        padding: 8px 16px; /* Reducir padding */
    }

    /* Ajustes para las tarjetas de Formaciones en móviles */
    .resource-grid {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    }

    /* -- AQUÍ VIENEN LOS AJUSTES PARA EL MENÚ DESDE LA DERECHA -- */
    .menu-header {
        position: absolute;
        top: 70px;                /* Debajo del header */
        right: -220px;            /* Oculto fuera de la pantalla a la derecha */
        width: 200px;
        background-color: #343434; /* Color de fondo */
        border-radius: 10px;
        padding: 10px 0;
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        display: none;            /* Por defecto, oculto */
        flex-direction: column;
        align-items: flex-start;
        transition: right 0.3s ease-in-out; /* Transición suave para deslizar */
        z-index: 999;             /* Que quede por encima de otros elementos */
    }

    .menu-header.active {
        display: flex;           /* O 'block', pero flex alinea items verticalmente */
        right: 0;                /* Se desliza hasta el borde derecho */
    }

    /* Organizar los enlaces en columna en móviles */
    .menu-header ul {
        flex-direction: column; /* Cambiar a columna para mejor legibilidad */
        padding-left: 0;       /* Quitas el padding por defecto de ul */
        margin: 0;
        width: 100%;
    }

    .menu-header li {
        list-style: none;       /* Sin viñetas */
        margin: 4px 0;          /* Espaciado vertical entre enlaces */
        width: 100%;
    }

    .menu-header a {
        color: #fff;            /* Enlaces en blanco */
        text-decoration: none;
        display: block;
        padding: 10px 20px;     /* Espaciado interno */
    }
    /* -- FIN DE MENÚ DESDE LA DERECHA -- */

    .news-item {
        flex-direction: column; 
        max-width: 100%;
        width: 100%; 
        height: auto; 
        max-height: none; 
        margin: 0 auto; 
    }

    .news-media-image,
    .news-media-video,
    .youtube-iframe {
        width: 100%; 
        height: auto; 
        max-width: 100%; 
        object-fit: cover; 
        border-radius: 10px;
        margin: 0 auto 10px auto; 
        display: block; 
    }

    .news-media-image,
    .news-media-video,
    .youtube-iframe {
        max-width: 100%;
        width: 100%;
        height: auto;
        max-height: 500px;
        object-fit: cover;
        border-radius: 10px;
    }

    .carousel-media {
        display: flex;
        height: 100%;
        transition: transform 0.5s ease-in-out;
        align-items: center;
        justify-content: center;
    }

    .carousel-container {
        width: 100%;
        height: 100%;
        position: relative;
        overflow: hidden;
        border-radius: 15px;
        background-color: #ffffff;
    }

    .news-media-carousel {
        width: 100%;
        height: 500px; 
        margin: 20px auto 50px;
        position: relative;
        border-radius: 15px;
        overflow: hidden;
        background-color: #ffffff;
        box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    }
      /* Ajustes para la sección de suscripción */
    #suscripcion {
        padding: 40px 10px;
        width: 100%;
    }
    .subscribe-form {
        width: 100%;
        padding: 0 10px;
    }
    .subscribe-row {
        flex-direction: column;
        gap: 10px;
        width: 100%;
    }
    .subscribe-row input[type="email"],
    .subscribe-row button {
        width: 100%;
        max-width: 300px;
    }
    .privacy-row {
        flex-direction: column;
        text-align: center;
    }
}

/* ====== Media Queries para Resoluciones de Escritorio a partir de 1080px ====== */

@media (min-width: 1080px) {
    #news {
        padding: 60px 40px; /* Aumentar el padding lateral para mayor espacio */
        max-width: 1200px;  /* Reducir el max-width para evitar márgenes demasiado grandes */
        margin: 0 auto;
    }

    .news-item {
        width: 100%;         /* Permitir que ocupe el 100% del contenedor */
        max-width: 1000px;   /* Limitar el ancho máximo para mantener consistencia */
        margin: 0 auto;      /* Centrar el elemento */
    }

    /* Ajustes para el Nuevo Panel Introductorio en pantallas grandes */
    .welcome-panel {
        width: 800px;
        height: 600px;
    }
}