/* ==================================================
   VARIABLES DE COLOR (¡Consisten con tu paleta!)
   ================================================== */
:root {
  --primary-color: #800000;
  /* Rojo oscuro (para fondos de contenedores, header, footer) */
  --background-dark: #1a1a1a;
  /* Gris oscuro (para el fondo del body) */
  --text-light: #ffffff;
  /* Blanco (para el texto principal) */
  --link-color: #a80000;
  /* Rojo más claro para enlaces y texto de input */
  --green-border: #00ff00;
  /* NUEVO: Verde brillante para el borde de los eventos */
  --background-light-transparent: rgba(255, 255, 255, 0.2);
  /* Para superposiciones sutiles */
  --border-radius-small: 5px;
  --border-radius-medium: 10px;
  --border-radius-large: 50%;
  /* Para el logo redondo y acceso Moodle */
  --container-max-width: 1300px;
  /* AUMENTADO: Ancho máximo del contenedor principal */
}

/* ==================================================
   ESTILOS GENERALES DEL BODY (Sobrescriben Bootstrap)
   ================================================== */
body {
  font-family: 'Press Start2P', cursive !important;
  /* !important para asegurar tu fuente */
  background-color: var(--background-dark) !important;
  color: var(--text-light) !important;
  text-align: center;
  margin: 0;
  padding-top: 60px;
  /* Ajuste para header fijo en móvil */
  padding-bottom: 70px;
  /* Aumenté el padding inferior para el footer en móvil */
  background-image: url('img/fondo.png');
  /* Imagen de fondo */
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  /* Hace que el fondo se quede fijo al hacer scroll */
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  /* Asegura que el body ocupe al menos toda la altura de la ventana */
}

/* ==================================================
   CLASES DE FUENTES PERSONALIZADAS (OJO con los pesos)
   ================================================== */
.vt323-font {
  font-family: 'VT323', monospace;
  /* Fuente para texto principal y detalles */
}

.press-start-2p-font {
  font-family: 'Press Start2P', cursive;
  /* Fuente para títulos y elementos destacados */
}

/* ==================================================
   ESTILOS DE HEADER (NavBar)
   ================================================== */
.custom-header {
  background-color: var(--primary-color) !important;
  border-bottom: 2px solid var(--text-light);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
  z-index: 1020;
  /* Asegura que el header esté por encima de otros elementos */
}

.custom-navbar-container {
  max-width: var(--container-max-width);
  margin: 0 auto;
  position: relative;
}

.navbar-brand {
  display: flex;
  align-items: center;
  /* Alinea el logo y el texto verticalmente */
  padding: 0;
  /* Elimina padding extra de Bootstrap */
}

.custom-logo {
  width: 40px;
  /* Tamaño del logo */
  height: 40px;
  border: 2px solid var(--text-light);
  /* Borde blanco */
  padding: 2px;
  /* Espacio entre el logo y el borde */
}

.h1-custom {
  font-family: 'Press Start2P', cursive !important;
  font-size: 0.9em !important;
  /* Tamaño de la fuente para el título del navbar */
  color: #ffff00 !important;
  /* Color amarillo para el título */
  margin-left: 10px;
  /* Espacio entre el logo y el texto */
  text-shadow: 1px 1px 0 #000;
  /* Sombra para el texto */
}

.custom-nav-link {
  font-family: 'VT323', monospace !important;
  color: var(--text-light) !important;
  font-size: 1.1em !important;
  padding: 5px 10px !important;
  border: 1px solid transparent;
  /* Borde transparente por defecto */
  border-radius: var(--border-radius-small);
  transition: all 0.3s ease;
  /* Transición suave para hover */
}

.custom-nav-link:hover {
  color: #ffff00 !important;
  /* Color de hover: amarillo */
  border-color: #ffff00 !important;
  /* Borde amarillo al pasar el ratón */
  background-color: rgba(255, 255, 0, 0.1);
  /* Ligero fondo amarillo transparente */
}

.custom-nav-link.active {
  color: #ffff00 !important;
  /* Color activo: amarillo */
  border-color: #ffff00 !important;
  /* Borde amarillo activo */
  background-color: rgba(255, 255, 0, 0.2);
  /* Fondo amarillo transparente activo */
}

.navbar-toggler {
  border-color: var(--text-light) !important;
}

.navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}

/* ==================================================
   ESTILOS DE MAIN CONTAINER (Contenido principal)
   ================================================== */
.custom-main-container {
  flex-grow: 1;
  /* Permite que el main ocupe el espacio disponible */
  background-color: rgba(0, 0, 0, 0.6);
  /* Fondo semi-transparente para el contenido principal */
  border-left: 2px solid var(--text-light);
  border-right: 2px solid var(--text-light);
  padding: 20px !important;
  /* Padding general para el main */
  margin-top: 20px;
  /* Espacio debajo del header fijo */
  margin-bottom: 20px;
  /* Espacio encima del footer fijo */
  border-radius: var(--border-radius-medium);
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.7);
  max-width: var(--container-max-width) !important;
}

/* ==================================================
   ESTILOS GENERALES DE H2 Y P
   ================================================== */
.h2-custom {
  font-family: 'Press Start2P', cursive !important;
  color: #ffff00 !important;
  /* Amarillo vibrante */
  text-shadow: 2px 2px 0 #000;
  /* Sombra para el texto */
  margin-bottom: 20px;
  /* Espacio debajo de los títulos h2 */
  font-size: 1.5em;
  /* Tamaño de fuente predeterminado para móvil */
}

.p-custom,
.welcome-text,
.news-description,
.contact-text,
.label-custom,
.event-description {
  font-family: 'VT323', monospace !important;
  color: var(--text-light) !important;
  font-size: 1em;
  line-height: 1.6;
}

/* ==================================================
   ESTILOS DE BOTONES
   ================================================== */
.custom-btn {
  font-family: 'Press Start2P', cursive !important;
  background-color: var(--link-color) !important;
  /* Rojo claro para botones */
  border: 2px solid var(--link-color) !important;
  color: var(--text-light) !important;
  padding: 8px 15px !important;
  font-size: 0.8em !important;
  border-radius: var(--border-radius-small) !important;
  transition: all 0.3s ease !important;
  text-transform: uppercase;
  text-decoration: none;
  /* Asegura que no haya subrayado en enlaces-botones */
  display: inline-block;
  /* Para que el padding y margen funcionen bien */
}

.custom-btn:hover {
  background-color: #ff6600 !important;
  /* Naranja/rojo más brillante al pasar el ratón */
  border-color: #ffff00 !important;
  /* Borde amarillo brillante */
  color: #ffffff !important;
  /* Texto blanco */
  box-shadow: 0 0 10px rgba(255, 255, 0, 0.5);
  /* Resplandor amarillo */
  transform: scale(1.05);
  /* Ligero aumento de tamaño */
}

/* Botón específico para el blog/agenda en la sección de bienvenida */
.custom-btn-blog {
  font-size: 1em !important;
  padding: 10px 20px !important;
  margin-top: 15px;
}

/* ==================================================
   ESTILOS DE SECCIÓN DE BIENVENIDA (index.html)
   ================================================== */
.custom-welcome-section {
  background-color: var(--primary-color);
  border: 2px solid var(--text-light);
  border-radius: var(--border-radius-medium);
  padding: 25px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 250px;
}

/* ==================================================
   ESTILOS DE ASIDES (index.html)
   ================================================== */
.custom-aside {
  background-color: var(--primary-color);
  border: 2px solid var(--text-light);
  border-radius: var(--border-radius-medium);
  padding: 20px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  min-height: 250px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.custom-img-moodle {
  width: 100px;
  /* Tamaño para el logo de Moodle */
  height: auto;
  border-radius: var(--border-radius-large);
  border: 2px solid var(--text-light);
  /* Borde blanco */
  padding: 5px;
  transition: transform 0.3s ease;
}

.custom-img-moodle:hover {
  transform: scale(1.1);
  box-shadow: 0 0 15px rgba(255, 255, 0, 0.7);
}

.custom-img-qr {
  width: 80px;
  /* Tamaño para el QR */
  height: auto;
  border: 2px solid var(--text-light);
  padding: 5px;
}

/* Estilo del dropdown de Moodle */
.custom-moodle-dropdown-menu {
  background-color: var(--primary-color) !important;
  border: 1px solid var(--text-light) !important;
  border-radius: var(--border-radius-small) !important;
  padding: 10px 0 !important;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5) !important;
}

.custom-moodle-dropdown-item {
  font-family: 'VT323', monospace !important;
  color: var(--text-light) !important;
  padding: 8px 15px !important;
  transition: all 0.2s ease !important;
}

.custom-moodle-dropdown-item:hover {
  background-color: var(--link-color) !important;
  color: #ffff00 !important;
}


/* Secciones de Noticias */
.news-item {
  background-color: rgba(0, 0, 0, 0.5);
  /* Fondo semi-transparente para cada noticia */
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--border-radius-small);
  padding: 15px;
  margin-bottom: 15px;
  text-align: left;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
}

.news-heading {
  font-family: 'Press Start2P', cursive !important;
  color: #ffff00 !important;
  font-size: 1.1em;
  margin-bottom: 10px;
  text-shadow: 1px 1px 0 #000;
}

.news-description {
  font-size: 0.9em;
  margin-bottom: 15px;
}

.read-more-btn {
  float: right;
  /* Alinea el botón a la derecha */
}

/* ==================================================
   ESTILOS DEL CARRUSEL (index.html)
   ================================================== */
.custom-carousel-section {
  background-color: var(--primary-color);
  border: 2px solid var(--text-light);
  border-radius: var(--border-radius-medium);
  padding: 25px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
}

.custom-carousel-inner {
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--border-radius-small);
  overflow: hidden;
  /* Asegura que las imágenes no se salgan del borde */
}

.custom-carousel-img {
  width: 100%;
  height: 180px;
  /* Altura fija para las imágenes del carrusel en móvil */
  object-fit: cover;
  /* Asegura que la imagen cubra el espacio sin distorsionarse */
  border-radius: var(--border-radius-small);
  padding: 5px;
  /* Espacio entre las imágenes dentro del carrusel */
}

/* ==================================================
   ESTILOS DEL MODAL DE NOTICIAS (index.html)
   ================================================== */
.custom-modal {
  /* Fondo semi-transparente que cubre todo al abrir el modal */
  background-color: rgba(0, 0, 0, 0.7) !important;
}

.custom-modal-content {
  background-color: var(--primary-color) !important;
  /* Fondo del modal: usa tu color principal */
  border: 2px solid var(--text-light) !important;
  /* Borde blanco, como el resto de los elementos */
  border-radius: var(--border-radius-medium) !important;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.7) !important;
  /* Sombra más pronunciada */
  color: var(--text-light) !important;
  /* Asegura que el texto del modal sea claro */
}

.custom-modal-header {
  background-color: rgba(0, 0, 0, 0.3) !important;
  /* Un poco más oscuro que el fondo del modal */
  border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
  /* Borde sutil */
  padding: 15px !important;
}

.custom-modal-header .h5-custom {
  color: #ffff00 !important;
  /* Título del modal en amarillo vibrante */
  font-family: 'Press Start2P', cursive !important;
  font-size: 1.2em !important;
  text-shadow: 1px 1px 0 #000;
}

.custom-btn-close {
  filter: invert(1);
  /* Invierte el color de la 'X' de cerrar a blanco */
  opacity: 0.8;
  transition: opacity 0.2s ease;
}

.custom-btn-close:hover {
  opacity: 1;
}

.custom-modal-body {
  background-color: rgba(0, 0, 0, 0.5) !important;
  /* Fondo del cuerpo del modal, semi-transparente */
  padding: 20px !important;
  text-align: left;
  /* Alinea el texto a la izquierda si es necesario */
  font-family: 'VT323', monospace !important;
  font-size: 1.1em !important;
  line-height: 1.5;
  color: var(--text-light) !important;
}

.custom-modal-footer {
  background-color: rgba(0, 0, 0, 0.3) !important;
  /* Igual que el header para consistencia */
  border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
  /* Borde sutil */
  padding: 15px !important;
  justify-content: center;
  /* Centra el botón si hay solo uno */
}

/* Puedes reusar .custom-btn para el botón del modal o crear uno específico */
.custom-modal-footer .custom-btn {
  background-color: var(--link-color) !important;
  /* Color de botón por defecto que ya tienes */
  border-color: var(--link-color) !important;
  color: var(--text-light) !important;
}

.custom-modal-footer .custom-btn:hover {
  background-color: #ff6600 !important;
  border-color: #ff6600 !important;
}

/* ==================================================
   ESTILOS ESPECÍFICOS PARA LA PÁGINA DE CONTACTO
   ================================================== */
.custom-contact-container {
  background-color: var(--primary-color);
  border: 2px solid var(--text-light);
  border-radius: var(--border-radius-medium);
  padding: 30px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  margin-top: 20px;
  /* Espacio para el header fijo */
}

.contact-text {
  margin-bottom: 25px;
  font-size: 1.1em;
}

.form-label {
  font-family: 'Press Start2P', cursive !important;
  color: #ffff00 !important;
  /* Etiquetas en amarillo */
  font-size: 0.9em;
  margin-bottom: 8px;
  display: block;
  text-align: left;
}

.input-custom,
.textarea-custom {
  background-color: rgba(0, 0, 0, 0.7) !important;
  /* Fondo oscuro semi-transparente */
  border: 1px solid var(--text-light) !important;
  /* Borde blanco */
  color: #00ff00 !important;
  /* Texto verde vibrante */
  border-radius: var(--border-radius-small) !important;
  padding: 10px 15px !important;
  font-family: 'VT323', monospace !important;
  font-size: 1.1em !important;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.6);
  /* Sombra interna sutil */
}

.input-custom:focus,
.textarea-custom:focus {
  border-color: #ffff00 !important;
  /* Borde amarillo al enfocar */
  box-shadow: 0 0 0 0.25rem rgba(255, 255, 0, 0.25) !important;
  /* Resplandor amarillo al enfocar */
  background-color: rgba(0, 0, 0, 0.8) !important;
}

.textarea-custom {
  resize: vertical;
  /* Permitir redimensionar verticalmente */
  min-height: 100px;
}

.custom-submit-btn {
  width: 100%;
  padding: 12px !important;
  font-size: 1em !important;
  background-color: #00ff00 !important;
  /* Botón de enviar en verde */
  border-color: #00ff00 !important;
  color: #000000 !important;
  /* Texto negro para contraste */
  text-shadow: none !important;
  font-family: 'Press Start2P', cursive !important;
}

.custom-submit-btn:hover {
  background-color: #00cc00 !important;
  /* Verde más oscuro al hover */
  border-color: #00cc00 !important;
  color: #ffffff !important;
  /* Texto blanco al hover */
  box-shadow: 0 0 15px rgba(0, 255, 0, 0.7);
}

.link-custom {
  color: #00ff00 !important;
  /* Enlaces en verde */
  text-decoration: none !important;
  /* Sin subrayado */
  transition: color 0.3s ease;
}

.link-custom:hover {
  color: #ffff00 !important;
  /* Amarillo al pasar el ratón */
  text-decoration: underline !important;
  /* Subrayado al pasar el ratón */
}


/* ==================================================
   ESTILOS ESPECÍFICOS PARA LA AGENDA
   ================================================== */

.custom-agenda-container {
  background-color: var(--primary-color);
  /* Fondo del contenedor principal de la agenda */
  border: 2px solid var(--text-light);
  /* Borde blanco */
  border-radius: var(--border-radius-medium);
  padding: 30px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  margin-top: 20px;
  /* Espacio para el header fijo */
}

/* Estilo para las tarjetas de cada mes del calendario */
.custom-calendar-card {
  background-color: var(--primary-color) !important;
  /* ¡Importante para sobrescribir el blanco! */
  border: 1px solid var(--text-light);
  /* Borde de cada mes */
  border-radius: var(--border-radius-medium);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
  height: 100%;
  /* Asegura que todas las tarjetas tengan la misma altura en una fila */
  display: flex;
  flex-direction: column;
}

.custom-calendar-header {
  background-color: rgba(0, 0, 0, 0.3) !important;
  /* Fondo del encabezado del mes */
  color: #ffff00;
  /* Color del texto del mes */
  padding: 10px 15px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  text-align: center;
  border-top-left-radius: var(--border-radius-medium);
  border-top-right-radius: var(--border-radius-medium);
}

.custom-calendar-header .h3-custom {
  font-family: 'Press Start2P', cursive !important;
  font-size: 1.1em;
  margin-bottom: 0;
  text-shadow: 1px 1px 0 #000;
}

.custom-calendar-body {
  background-color: rgba(0, 0, 0, 0.5) !important;
  /* Fondo del cuerpo del calendario (días) */
  flex-grow: 1;
  /* Permite que el cuerpo ocupe el espacio restante */
  padding: 15px;
  border-bottom-left-radius: var(--border-radius-medium);
  border-bottom-right-radius: var(--border-radius-medium);
}

.calendar-table {
  width: 100%;
  margin-bottom: 0;
  border-collapse: collapse;
  /* Para eliminar el espacio entre celdas */
  table-layout: fixed;
  /* Asegura que las columnas tengan el mismo ancho */
}

.calendar-table th,
.calendar-table td {
  text-align: center;
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--text-light);
  font-family: 'VT323', monospace;
  line-height: 1;
  /* Ajusta la altura de línea para que el texto encaje bien */
  box-sizing: border-box; /* Incluye padding y borde en el ancho/alto */
}

/* Ajustes específicos para los días del calendario */
.calendar-table td {
  padding: 2px; /* Reducido aún más */
  font-size: 0.7em; /* REDUCIDO AÚN MÁS para números */
  height: 25px; /* Altura mínima para las celdas */
  min-width: 25px; /* Ancho mínimo para las celdas */
  overflow: hidden; /* Oculta cualquier contenido que se desborde */
  white-space: nowrap; /* Evita que el texto se divida en varias líneas */
}

.calendar-table th {
  background-color: rgba(0, 0, 0, 0.2);
  font-family: 'Press Start2P', cursive;
  font-size: 0.1em; /* REDUCIDO AÚN MÁS para los nombres de los días */
  color: #ffff00;
  padding: 0px; /* Ajuste para el padding de los encabezados de los días */
  line-height: 0.8; /* Aumentado ligeramente para que quepan los nombres */
}


.calendar-table td {
  cursor: pointer;
  transition: background-color 0.3s ease, border-color 0.3s ease;
}

.calendar-table td.empty-cell {
  background-color: rgba(0, 0, 0, 0.1);
  /* Fondo para días vacíos */
  cursor: default;
  color: rgba(255, 255, 255, 0.3);
  /* Color de texto tenue para días vacíos */
}

.calendar-table td.has-event {
  background-color: var(--link-color);
  /* Color para días con eventos (rojo más claro) */
  color: var(--text-light);
  font-weight: bold;
  border-color: rgba(255, 255, 255, 0.3);
  /* Borde más visible para días con eventos */
}

.calendar-table td.has-event:hover {
  background-color: #ff6600;
  /* Naranja/rojo brillante al pasar el ratón */
  border-color: #ffff00;
  color: #ffffff;
}

/* Estilos para días con cualquier tipo de evento que tendrá thumbnail al pasar el ratón */
.calendar-table td.has-thumbnail-event {
  border: 2px solid var(--green-border); /* Borde verde para resaltar */
  box-shadow: 0 0 8px rgba(0, 255, 0, 0.5); /* Sombra para resaltar */
}

/* Estilos para el tooltip de miniatura de evento (generalizado) */
.event-thumbnail-tooltip {
  position: absolute;
  background-color: rgba(0, 0, 0, 0.9); /* Fondo oscuro semitransparente */
  color: #ffff00;
  border: 2px solid #ffff00;
  padding: 8px 12px;
  border-radius: var(--border-radius-small);
  font-family: 'VT323', monospace;
  font-size: 0.8em;
  white-space: nowrap;
  z-index: 100; /* Asegura que esté por encima de todo */
  pointer-events: none; /* Permite que los clics pasen a la celda del día */
  transform: translateX(-50%); /* Centra horizontalmente el tooltip */
  display: none; /* Oculto por defecto, se muestra con JS */
  box-shadow: 0 0 15px rgba(255, 255, 0, 0.7); /* Sombra para resaltar */
}


.event-list {
  background-color: var(--primary-color);
  /* Fondo de la lista de eventos */
  border: 2px solid var(--text-light);
  /* Borde blanco */
  border-radius: var(--border-radius-medium);
  padding: 20px;
  margin-top: 30px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  color: var(--text-light);
  font-family: 'VT323', monospace;
  font-size: 1.1em;
}

.event-list p {
  color: var(--text-light);
}

.event-item {
  background-color: rgba(0, 0, 0, 0.5);
  /* Fondo de cada evento individual */
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--border-radius-small);
  margin-bottom: 15px;
  padding: 15px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

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

.event-title {
  color: #ffff00;
  /* Título del evento en amarillo */
  font-family: 'Press Start2P', cursive;
  font-size: 1.1em;
  margin-bottom: 10px;
  text-shadow: 1px 1px 0 #000;
}

.event-description {
  color: var(--text-light);
  margin-bottom: 15px;
  font-size: 0.9em;
}

.event-item .custom-btn {
  /* Usamos el mismo estilo de botón custom-btn */
  font-size: 0.9em !important;
  padding: 8px 15px !important;
}

.custom-hr {
  border-top: 2px dotted #ffff00;
  /* Línea de puntos amarilla */
  opacity: 0.7;
  margin: 40px 0;
}

/* Estilos para el visor de PDF y Video */
.pdf-view,
.video-view {
  background-color: var(--primary-color);
  border: 2px solid var(--text-light);
  border-radius: var(--border-radius-medium);
  padding: 25px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.pdf-iframe,
.video-iframe {
  width: 100%;
  height: 75vh; /* Ajusta la altura del iframe */
  border: 2px solid var(--green-border);
  border-radius: var(--border-radius-small);
  background-color: #000;
}

.video-responsive {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 Aspect Ratio */
  height: 0;
  overflow: hidden;
  margin-bottom: 20px;
  border: 1px solid var(--green-border);
  border-radius: var(--border-radius-small);
}

.video-responsive iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}


/* ==================================================
   ESTILOS DEL FOOTER
   ================================================== */
.custom-footer {
  background-color: var(--primary-color) !important;
  /* Color de fondo */
  border-top: 2px solid var(--text-light);
  /* Borde superior */
  padding: 10px 15px !important;
  /* Relleno */
  box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.5);
  /* Sombra superior */
  z-index: 1030;
  /* Asegura que el footer esté por encima de otros elementos */
  width: 100%;
  /* Asegura que el footer ocupe todo el ancho */
}

.custom-footer-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: var(--container-max-width);
  margin: 0 auto;
}

.footer-text-custom {
  font-family: 'VT323', monospace !important;
  font-size: 0.9em;
  color: var(--text-light);
}

.licencia-link-custom {
  display: inline-block;
  margin-left: 15px;
}

.licencia-imagen {
  height: 25px;
  /* Tamaño de la imagen de licencia */
  vertical-align: middle;
}

/* ==================================================
   MEDIA QUERIES (PARA RESPONSIVE DESIGN)
   ================================================== */
@media (min-width: 576px) {
  /* Pequeños ajustes para pantallas sm */
  .custom-carousel-img {
    height: 200px;
  }
}

@media (min-width: 768px) {
  /* Estilos para tabletas y escritorios pequeños */

  body {
    padding-top: 70px;
    /* Ajuste para header en desktop */
    padding-bottom: 80px;
    /* Ajuste para footer en desktop */
  }

  .h1-custom {
    font-size: 1.2em !important;
  }

  .custom-nav-link {
    font-size: 1.2em !important;
  }

  .custom-main-container {
    padding: 30px !important;
    /* Más padding en desktop */
  }

  .h2-custom {
    font-size: 1.8em;
  }

  .custom-aside {
    padding: 20px;
  }

  .custom-btn {
    font-size: 1em !important;
    padding: 10px 20px !important;
  }

  .custom-img-qr {
    width: 100px;
    /* Tamaño fijo para el QR en desktop */
  }

  .welcome-text {
    font-size: 1.2em;
  }

  .custom-carousel-img {
    height: 250px;
    /* Altura ligeramente mayor en desktop */
  }

  /* Ajuste para que la imagen de Moodle inicie al mismo nivel que las asides */
  .col-lg-6 .moodle-acceso {
    margin-top: 0 !important;
  }

  /* Ajustes para tabletas y escritorios pequeños para el calendario */
  .calendar-table th,
  .calendar-table td {
    padding: 4px; /* Ajuste para desktop */
    font-size: 0.7em; /* Ajuste para desktop */
    height: 25px; /* Un poco más alto en desktop */
  }

  .custom-calendar-header .h3-custom {
    font-size: 1.2em;
  }

  .event-title {
    font-size: 1.2em;
  }

  .event-description {
    font-size: 1em;
  }

}

@media (min-width: 992px) {
  /* Estilos para escritorios grandes */
  .h1-custom {
    font-size: 1.4em !important;
  }

  .custom-nav-link {
    font-size: 1.3em !important;
  }

  .custom-welcome-section {
    min-height: 300px;
  }

  .custom-aside {
    min-height: 300px;
  }

  .custom-img-moodle {
    width: 120px;
    height: 120px;
  }

  .custom-img-qr {
    width: 120px;
  }

  /* Ajustes para escritorios grandes para el calendario */
  .calendar-table th,
  .calendar-table td {
    padding: 4px; /* Ajuste para escritorios grandes */
    font-size: 0.7em; /* Ajuste para escritorios grandes */
    height: 30px; /* Un poco más alto en escritorios grandes */
     white-space: nowrap; /* Asegura que no haya saltos de línea */
  }

  .custom-calendar-header .h3-custom {
    font-size: 1.3em;
  }

  .event-list {
    font-size: 1.2em;
  }

  .event-title {
    font-size: 1.3em;
  }

  .event-description {
    font-size: 1.1em;
  }
}
/* ==================================================
   AJUSTES PARA VISOR DE PDF EN PANTALLAS PEQUEÑAS
   ================================================== */
@media (max-width: 767.98px) {
  #pdfFrame {
    /* Forzar una altura mínima para el iframe en móviles */
    min-height: 500px !important; /* Ajusta este valor (ej. 400px, 600px) hasta que el PDF se vea bien */
    /* La altura 75vh sigue siendo válida si es mayor que min-height,
       pero min-height asegura que siempre haya un espacio visible */
    height: auto; /* Permite que el iframe ajuste su altura si el contenido lo requiere y no hay conflicto */
  }

  /* También, asegúrate de que el contenedor del iframe tenga suficiente altura */
  #pdfView .p-3 {
    min-height: 550px; /* Un poco más que el iframe para el título y el botón "Volver" */
    height: auto;
  }

  /* Si aún hay problemas de corte con el footer, ajusta el padding-bottom del body */
  body {
    padding-bottom: 80px !important; /* Asegura suficiente espacio si el footer lo solapa */
  }
}
/* ==================================================
   NUEVOS ESTILOS PARA DÍAS DE VIDEO EN EL CALENDARIO
   ================================================== */
/* Esta sección de estilos fue eliminada para usar un tooltip genérico */
/* y evitar conflictos con el contenido del día */

/* ==================================================
   ESTILOS PARA EL VISOR DE VIDEO (NUEVA SECCIÓN)
   ================================================== */
#videoView {
  /* Esto ya está en HTML, pero lo ponemos aquí para control CSS */
  /* display: none; */ /* Manejado por scripts.js */
  justify-content: center;
  align-items: flex-start;
  min-height: calc(100vh - 56px - 80px); /* Para que el contenido principal ocupe espacio */
  padding-bottom: 30px; /* Para que el botón de volver no quede pegado al footer */
}

.video-responsive {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 Aspect Ratio (9 / 16 = 0.5625) */
  height: 0;
  overflow: hidden;
  margin-bottom: 20px;
  border: 1px solid var(--green-border);
  border-radius: var(--border-radius-small);
}

.video-responsive iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* Asegurar que el video también tenga una altura mínima en móviles, similar al PDF */
@media (max-width: 767.98px) {
  #videoView .p-3 {
    min-height: 550px; /* Asegura un contenedor mínimo para el video + título + botón */
    height: auto;
  }
  .video-responsive {
    /* Ajusta padding-bottom si 16:9 es demasiado grande/pequeño para móviles */
    padding-bottom: 70%; /* Podrías probar con 4:3 (75%) o un valor fijo si 16:9 es muy delgado */
    /* min-height: 300px; /* Si prefieres una altura fija mínima en móviles */
  }
}

/* Contenedor del contador */
.contador-container {
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  background-color: rgba(255, 255, 255, 0.1);
  /* Fondo semitransparente */
  padding: 8px 5px;
  border-radius: 10px;
  border: 2px solid #ffffff;
  font-size: 10px;
  color: #ffffff;
}

/* Estilos del iframe */
.contador-container iframe {
  width: 120px;
  height: 30px;
  border: none;
  background-color: transparent;
  color: #ffffff;
  text-align: center;
}

/* Crea un espacio a la izquierda de la barra de navegación para el contador */
.custom-navbar-container .navbar {
  padding-left: 150px; /* Ajusta este valor si necesitas más o menos espacio */
}

/* Oculta el contador y elimina el espacio en pantallas pequeñas (móviles) */
@media (max-width: 767px) {
  .contador-container {
    display: none;
  }

  .custom-navbar-container .navbar {
    padding-left: 0; /* Restablece el padding a cero */
  }
}

@media (max-width: 767.98px) {
  .custom-header {
    padding: 5px 10px !important;
  }

  .custom-logo {
    width: 30px !important;
    height: 30px !important;
  }

  .h1-custom {
    font-size: 0.7em !important;
    margin-left: 5px !important;
  }

  .custom-navbar-container .navbar {
    padding-left: 0 !important;
  }
}

/* Estilos para el contenedor del contador regresivo */
.full-width-countdown {
  width: 100%;
  background-color: #1a1a1a; /* Fondo oscuro similar al cuerpo */
  color: #00ff00; /* Letras verdes tipo consola */
  text-align: center;
  padding: 20px 0;
  box-sizing: border-box; /* Incluye padding en el ancho total */
  font-family: 'VT323', monospace; /* Fuente retro para el contador */
  font-size: 3em; /* Tamaño de fuente grande para que se vea bien */
  border-bottom: 2px solid #00ff00; /* Borde inferior verde para separarlo visualmente */
  margin-bottom: 20px; /* Espacio debajo del contador */
}

/* Estilos para el texto del contador */
#countdown {
  white-space: nowrap; /* Evita que el texto se rompa en varias líneas */
  overflow: hidden;
  text-overflow: ellipsis; /* Añade puntos suspensivos si el texto es demasiado largo */
}

/* Opcional: Media queries para ajustar el tamaño de la fuente en pantallas pequeñas */
@media (max-width: 768px) {
  .full-width-countdown {
    font-size: 2em;
  }
}

@media (max-width: 480px) {
  .full-width-countdown {
    font-size: 1.5em;
    padding: 15px 0;
  }
}