/* Estilos del micrositio "La UNAM en el Día Internacional de Protección de Datos Personales 2026"*/

/* ===== RESET ===== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: Verdana, sans-serif;
    margin: 0;
    overflow-x: hidden;
    font-family: 'Verdana', sans-serif !important;
    line-height: 1.5;
    font-size: 18px;
    font-weight: normal;
    color: #003b7c;
    padding: 32;
    margin: 32;
}


h1, h2, h3 {
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 0.75em 0;
    color: #003b7c;
}

h1 {
    font-size: 2rem;
}

h2 {
    font-size: 1.5rem;
}

h3 {
    font-size: 1.2rem;
}


/* Selecciona el primer <p> inmediatamente después de un <h2> o <h3> */
h2 + p, 
h3 + p {
    line-height: 1.8;   /* Aumenta el espacio entre líneas del párrafo */
    margin-top: 50px;   /* Añade espacio vertical entre el título y el párrafo */
    margin-bottom: 20px; /* Opcional: espacio debajo del párrafo */
}




/* Estilo base para todos los enlaces */
a {
  color: #003b7c; /* Azul marino por defecto */
  text-decoration: underline; /* Quita el subrayado por defecto */
  padding: 0px 0px 0;
}

/* Estado normal (no visitado) */
a:link {
  color: #ffffff;
}

/* Visitado */
a:visited {
  color: #ffffff;
}

/* Estado al pasar el cursor sobre el enlace */
a:hover {
  background-color: #003b7c;
  border: none;
  text-decoration: underline;
}
}

/* Estado al hacer clic (activo) */
a:active {
  color: #eba900; /* Amarillo al hacer clic */
  background: #003b7c;
}

/* Esto quita el borde azul o de color que algunos navegadores añaden */
a img {
    border: none;
    outline: none; /* Evita contornos al hacer clic/foco */
}
a:hover img {
    border: none;
    outline: none;
    box-shadow: none;
    background: none;
}
/* Selecciona todos los enlaces menos los que tienen la clase */
a:not(.no-hover-effect):hover {
    text-decoration: none;
    /* tus estilos de hover para texto */
}



/* ===== HEADER ===== */
.header-logos {
    display: flex;
    width: 100%;
}

.logo-aga,
.logo-unam,
.logo-evento {
    display: flex;
    align-items: center;
}

.logo-aga {
    width: 30%;
    justify-content: flex-end;
    background: #ffffff;
}

.logo-evento {
    width: 780;
    justify-content: center;
}

.logo-unam {
    width: 30%;
    justify-content: flex-start;
    background: #e59e00;
}

/* Imágenes sin espacio inline */
.header-logos img {
    display: flex;
    margin: 0;
    padding: 0;
    height: auto;
}



/* ===== NAV ===== */
.nav-bar {
    background: #009ade;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

/* Menú desktop */
.nav-menu {
    list-style: none;
    display: flex;
    gap: 14px;
    padding: 10px;
    margin: 10;
    font-family: Verdana;
    font-size: 16px;
}

.nav-menu li {
    margin: 0 6px;
}

.nav-menu a {
    color: white;
    text-decoration: none;
}

.nav-menu a.active {
    color: #003b7c;
    font-weight: bold;
}



/* Botón hamburguesa */
.nav-toggle {
    display: none;
    background: none;
    border: none;
    font-size: 28px;
    color: white;
    cursor: pointer;
    padding: 10px;
}


hr {
   border-top: 4px solid #003b7c;
   border-bottom: 4px solid #e59e00;
   background-color: transparent;
   height: 12px;
}


/* ===== MAIN ===== */
.site-main {
    background: #def6ff;
}

.intro-content {
    max-width: 1024px;
    margin: auto;
    padding: 32px;
    display: block;
    gap: 16px;
}

.intro-text {
    flex: 1;
}

.intro-image img {
    height: 250px;
    text-align: right;
}

  .contenedor-flex {
    display: flex;
    justify-content: flex-end; /* Alinea los elementos al final (derecha) */
    align-items: flex-start; /* Opcional: centra verticalmente */
    width: 100%;
    border: 0px solid #ccc; /* Para visualizar el contenedor */
    padding: 20px;
  }

  .imagen-flex {
    margin-left: 15px; /* Espacio entre imagen y texto */
    max-width: 200px; /* Ajusta el tamaño de la imagen */
    position: relative;
    top: 10%;
    margin-top: 15px; /* Espacio superior para separar del texto */
  }


.contenedor-flex2 {
  display: flex; /* Activa Flexbox */
  align-items: flex-start; /* Alinea verticalmente al inicio (arriba) */
  gap: 20px; /* Espacio entre la imagen y el texto */
}

  .imagen-flex2 {
    margin-left: 15px; /* Espacio entre imagen y texto */
    max-width: 200px; /* Ajusta el tamaño de la imagen */
    position: relative;
    top: 10%;
  }

.bloque-texto {
  flex-grow: 1; /* Hace que el texto ocupe el espacio restante */
}


/* ===== iFrame ===== */
.map-container {
    position: relative; /* Para posicionar el iframe correctamente */
    overflow: hidden; /* Oculta partes que se salgan */
    padding-bottom: 56.25%; /* Para relación de aspecto 16:9 (calculado como alto/ancho * 100) */
    height: 0;
}

.map-container iframe {
    position: absolute; /* Posiciona el iframe dentro del contenedor */
    top: 0;
    left: 0;
    width: 100%; /* Ocupa todo el ancho del contenedor */
    height: 100%; /* Ocupa toda la altura del contenedor */
}



/* ===== FOOTER ===== */
.site-footer {
    background: #003b7c;
}

.footer-content {
    max-width: 1024px;
    margin: auto;
    padding: 8px;
    display: flex;
    align-items: center;
}

.footer-text {
    width: 75%;
    text-align: right;
}

.footer-title {
    color: white;
    font-size: 18px;
}

.footer-links,
.footer-links a {
    color: #def6ff;
    font-size: 12px;
    text-decoration: underline;
}

.footer-logo {
    width: 40%;
}


/* ====== RESPONSIVE ====== */
/* ===== MÓVIL ===== */
@media (max-width: 768px) {

    .nav-bar {
        justify-content: space-between;
        padding: 0 16px;
        flex-direction: column;
        align-items: stretch;
        position: relative;
    }

    .nav-toggle {
        display: block;
        z-index: 1002;
        align-self: flex-end;
        padding: 10px 16px;
    }

    .nav-menu {
        display: none;
        flex-direction: column;
        position: absolute;
        text-align: center;
        top: 100%
        left: 0;
        width: 100%;
        background-color: #009ade;
        z-index: 1001;
    }

    .nav-menu.show {
        display: flex;
    }

    .nav-menu li {
        padding: 12px 0;
        text-align: center;
        border-top: 1px solid rgba(255,255,255,0.3);
    }
}


.nav-bar { position: relative; z-index: 2000; }
.nav-menu { z-index: 2001; }
.nav-toggle { z-index: 2002; }



/* ===== LOGOS RESPONSIVE ===== */
@media (max-width: 768px) {

    /* La fila de logos se apila */
    header table tr:first-child {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    header table tr:first-child td {
        width: 100% !important;
        text-align: center !important;
        padding: 10px 0;
    }

    /* Ajuste de imágenes */
    header table tr:first-child img {
        max-width: 90%;
        height: auto;
        width: auto;
    }

    /* Logo central un poco más grande */
    header table tr:first-child td:nth-child(2) img {
        max-width: 70%;
    }
}


/* ===== Reemplazo de logo central en móvil ===== */
@media (max-width: 768px) {

    .img-dipdp2026-header {
        content: url("../images/dipdp2026_header_mobile.png");
        max-width: 100%;
        height: auto;
    }

  .hide-mobile {
    display: none;
  }
}


/* ===== GRID ===== */
/* 1. Estilos del Grid */
.grid-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3 col en desktop */
    gap: 15px; /* Espacio entre imágenes */
    padding: 20px;
    justify-content: center;
    align-items: center;
}

  .grid-item img {
    object-fit: cover;
  }

  /* Responsive: Menos de 600px */
  @media (max-width: 600px) {
    .grid-container {
      grid-template-columns: 1fr; /* 1 col en mobile (apilado) */
    }
  }


.thumbnail img {
    width: 100%;
    height: 200px; /* Altura fija para thumbnails uniformes */
    object-fit: cover; /* Recorta la imagen para ajustarse sin deformarse */
    transition: transform 0.3s ease; /* Efecto suave */
    cursor: pointer;
}

.thumbnail img:hover {
    transform: scale(1.05); /* Ligero zoom al pasar el mouse */
}

/* 2. Estilos de la Lightbox (Ventana Modal) */
.lightbox {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.8); /* Fondo negro opaco */
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    pointer-events: none; /* Oculto por defecto */
    transition: opacity 0.5s;
    z-index: 3000;
}

/* 3. Acción de click (mostrar el objetivo) */
.lightbox:target {
    opacity: 1;
    pointer-events: auto;
}

.lightbox img {
    max-width: 90%;
    max-height: 90%;
    border: 5px solid white;
    box-shadow: 0 0 20px rgba(0,0,0,0.5);
}

.close {
    position: absolute;
    top: 20px;
    right: 20px;
    color: white;
    text-decoration: none;
    font-size: 30px;
    font-weight: bold;
}



.contenedor-rollover {
    position: relative; /* Para posicionar las imágenes dentro */
    display: inline-block; /* Para que ocupe solo el espacio de la imagen */
}

.imagen-normal, .imagen-hover {
    position: absolute; /* Superpuestas */
    top: 0;
    left: 0;
    transition: opacity 0.3s ease; /* Transición suave */
}

.imagen-hover {
    opacity: 0; /* Oculta la imagen de rollover por defecto */
}

.contenedor-rollover:hover .imagen-normal {
    opacity: 0; /* Oculta la normal al hacer hover */
}

.contenedor-rollover:hover .imagen-hover {
    opacity: 1; /* Muestra la de rollover al hacer hover */
}



/* ===== BAJAR IMAGEN EN RESPONSIVE PARA CONTENEDOR ===== */

@media (max-width: 768px) {
    .contenedor-flex {
        flex-direction: column; /* Cambia a columna: arriba-abajo */
        text-align: center;      /* Opcional: centra el texto */
        margin: 0 auto;
    }

    .contenedor-flex2 {
        flex-direction: column; /* Cambia a columna: arriba-abajo */
        text-align: center;      /* Opcional: centra el texto */
        margin: 0 auto;
    }

  .imagen-flex {
    order: 2; /* OPCIONAL: texto arriba imagen abajo */
    margin-top: 8px; /* Espacio superior para separar del texto */
    margin: 0 auto;
  }

  .imagen-flex2 {
    order: 2; /* OPCIONAL: texto arriba imagen abajo */
    margin-top: 8px; /* Espacio superior para separar del texto */
    margin: 0 auto;
  }

}