@charset "utf-8";
/* CSS Document */
:root {
	--unam-blue: #003b5c; 
	--unam-gold: #c5911a;
	--white: #ffffff;
	--light-bg: #f4f4f4;
	--notice-bg: #f9f6f0;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background-color: var(--light-bg);
    line-height: 1.6;
    overflow-x: hidden;
}

/* --- Encabezado --- */
header { background-color: var(--white); border-bottom: 1px solid #eee; }
.header-link { display: block; text-decoration: none; color: inherit; cursor: pointer; padding: 10px 5px; }
.header-container { max-width: 1250px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.header-logo { height: auto; max-height: 75px; width: auto; max-width: 25%; object-fit: contain; }
.header-titles { text-align: center; flex: 1; }
.header-titles h1 { font-family: 'Playfair Display', serif; font-size: clamp(1.1rem, 4vw, 1.6rem); color: var(--unam-blue); margin-bottom: 2px; line-height: 1.2; }
.header-titles p { font-size: clamp(0.7rem, 2.5vw, 1rem); color: #555; text-transform: uppercase; font-weight: 600; }

@media (max-width: 768px) {
	
header { background-color: #003b5c; border-bottom: 1px solid #003b5c; }
.header-titles h1 { color: #fff; opacity: 0.8; }
.header-titles p { color: #fff; opacity: 0.8;}
	
}

/* --- Navegación (Completa) --- */
nav { background-color: var(--unam-blue); border-bottom: 4px solid var(--unam-gold); position: sticky; top: 0; z-index: 1000; }
.nav-container { max-width: 1200px; margin: 0 auto; position: relative; }
.menu-toggle { display: none; background: none; border: none; color: white; padding: 15px; font-size: 1.5rem; cursor: pointer; width: 100%; text-align: right; }
.nav-menu { display: flex; list-style: none; justify-content: center; align-items: center; }
.nav-item { position: relative; }
.nav-link { color: var(--white); text-decoration: none; padding: 15px 18px; font-weight: 600; text-transform: uppercase; font-size: 0.8rem; display: flex; align-items: center; gap: 8px; transition: 0.3s; cursor: pointer; }

.desktop-arrow { font-size: 0.7rem; opacity: 0.8; }
.submenu, .sub-submenu { display: none; position: absolute; background-color: var(--white); min-width: 240px; box-shadow: 0 8px 16px rgba(0,0,0,0.1); list-style: none; border-top: 2px solid var(--unam-gold); z-index: 100; }
.submenu { top: 100%; left: 0; }
.sub-submenu { top: -2px; left: 100%; border-left: 2px solid var(--unam-gold); border-top: none; }
.submenu li { position: relative; border-bottom: 1px solid #f0f0f0; }
.submenu a { color: var(--unam-blue); padding: 12px 20px; text-decoration: none; display: flex; justify-content: space-between; align-items: center; font-size: 0.85rem; font-weight: 500; }

@media (min-width: 769px) {
	.nav-item:hover > .submenu { display: block; }
	.submenu li:hover > .sub-submenu { display: block; }
	.nav-link:hover { background-color: rgba(255, 255, 255, 0.1); color: var(--unam-gold); }
	.mobile-icon { display: none; }
}

/* --- MÓVIL ESTILO ACORDÓN --- */
@media (max-width: 768px) {
	.desktop-arrow { display: none; }
	.menu-toggle { display: block; }

	.nav-menu { 
		display: none; 
		flex-direction: column; 
		position: absolute; 
		top: 100%; 
		left: 0; 
		width: 100%; 
		background-color: var(--unam-blue); 
		/* Corrección: alinear arriba y permitir scroll */
		justify-content: flex-start; 
		align-items: stretch;
		max-height: calc(100vh - 60px); 
		overflow-y: auto; 
		z-index: 999;
		padding: 0;
	}
	.nav-menu.active { display: flex; }
	.nav-item { width: 100%; border-bottom: 1px solid rgba(255,255,255,0.1); }
	.nav-link { justify-content: space-between; padding: 18px 25px; font-size: 0.95rem; text-transform: capitalize; }

	.submenu, .sub-submenu { position: static; width: 100%; box-shadow: none; border: none; background-color: rgba(0,0,0,0.1); display: none; }
	.submenu.is-open, .sub-submenu.is-open { display: block !important; }
	.submenu a { padding: 15px 40px; color: #ddd; font-size: 0.9rem; }
	.sub-submenu a { padding-left: 60px; color: #bbb; }
	.mobile-icon { font-size: 1.1rem; }
}

/* --- CONTENEDOR 1300px --- */
.content-container {
	max-width: 1300px;
	margin: 40px auto;
	padding: 20px 40px 20px 40px;
	background: var(--white);
	border-radius: 8px;
	box-shadow: 0 4px 15px rgba(0,0,0,0.08);
	border-top: 5px solid var(--unam-blue);
}

@media (max-width: 768px) {
.content-container {
	padding: 20px;
}
}

.page-title {
    color: var(--unam-blue);
    font-family: 'Playfair Display', serif;
    font-size: 1.5rem;
    margin-bottom: 20px;
    border-bottom: 2px solid #eee;
    padding-bottom: 10px;
}
.page-body {
    font-size: 1.0rem;
    color: #333;
    line-height: 1.8;
}
footer { background-color: var(--unam-blue); color: var(--white); text-align: center; padding: 35px 20px; margin-top: 40px; }
.fb-icon { font-size: 2.2rem; color: var(--white); margin-top: 15px; display: inline-block; opacity: 0.8;}

/* --- Franja de Leyenda --- */
.plan-notice { background-color: var(--notice-bg); border-bottom: 1px solid #e0d7c6; padding: 15px 20px; text-align: center; }
.plan-notice-content { max-width: 1000px; margin: 0 auto; color: var(--unam-blue); font-size: 0.9rem; font-style: italic; font-weight: 500; line-height: 1.5; border-left: 4px solid var(--unam-gold); padding-left: 15px; }

@media (max-width: 768px) {
	.plan-notice-content { font-size: 0.8rem; border-left: none; border-top: 2px solid var(--unam-gold); padding: 10px 0 0 0; }
}

/* --- Tarjetas --- */
.main-container { max-width: 1300px; margin: 30px auto; padding: 0 15px; }
.grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.card { background: var(--white); border-radius: 8px; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.08); display: flex; flex-direction: column; border: 1px solid #ddd; }
.card-header { padding: 20px 10px; text-align: center; background-color: #fcfcfc; border-bottom: 1px solid #eee; }
.program-logo { width: 85%; max-width: 230px; height: auto; margin: 0 auto 12px; display: block; }
.program-title { font-size: 1.1rem; color: var(--unam-blue); font-weight: 700; min-height: 3.5em; display: block; }
.card-body { padding: 15px 0px 15px 0px; flex-grow: 1; font-size: 0.88rem; color: #444; }
.btn-status { display: block; text-align: center; padding: 11px; text-decoration: none; font-weight: bold; border-radius: 4px; margin-top: 12px; font-size: 1.0rem; }
.btn-manual { background-color: #eef6fc; color: var(--unam-blue); border: 1px solid #d0e4f5; }
.btn-closed { background-color: #fff1f2; color: #be123c; border: 1px solid #fecdd3; }
.card-img { width: 100%; height: 200px; object-fit: cover; }

footer { background-color: var(--unam-blue); color: var(--white); text-align: center; padding: 35px 20px; }
.fb-icon { font-size: 2.2rem; color: var(--white); margin-top: 15px; display: inline-block; }
.fb-icon:hover { opacity: 1; /* El texto se aclara al pasar el ratón */ }

@media (max-width: 1024px) { .grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) { .grid { grid-template-columns: 1fr; } }

/* Color para el enlace normal */
a.vin { color: #c5911a; font-weight: 600; text-decoration: none; }

/* Color para el enlace cuando ya fue visitado */
a.vin:visited { color: #c5911a; }

/* Opcional: Si quieres que el color no cambie al pasar el mouse */
a.vin:hover { color: #003b5c; }

ul.ado, ol.ado {
    padding-left: 50px; /* Ajusta este valor según tus necesidades */
}
ul.ado, ol.ado {
    list-style-position: outside; /* Los puntos quedan dentro del bloque */
}

@media (max-width: 768px) {
	
	ul.ado, ol.ado {
    padding-left: 25px; /* Ajusta este valor según tus necesidades */
}
ul.ado, ol.ado {
    list-style-position: outside; /* Los puntos quedan dentro del bloque */
}
}

/*Pata tablas de información*/

.grid-container {
        display: grid;
        /* Esto hace que las columnas se ajusten automáticamente */
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        gap: 20px;
        max-width: 800px;
        margin: 0 auto;
        font-family: sans-serif;
    }

    .semester-box {
        border: 2px solid #003b5c;
        border-radius: 5px;
        overflow: hidden;
    }

    .header-tabla {
        background-color: #003b5c;
        color: white;
        text-align: center;
        padding: 10px;
        font-weight: bold;
        margin: 0;
    }

    .content-list {
        list-style-type: none;
        padding: 15px;
        margin: 0;
        background-color: #f9f9f9;
    }

    .content-list li {
        padding: 8px 0;
        border-bottom: 1px solid #ddd;
    }

    .content-list li:last-child {
        border-bottom: none;
    }

/*Tabla tutores*/
.table-container {
        max-width: 1200px;
        margin: 20px auto;
        font-family: sans-serif;
    }

    table {
        width: 100%;
        border-collapse: collapse;
    }

    th, td {
        padding: 12px;
        border: 1px solid #ddd;
        text-align: left;
    }

    th {
        background-color: #003b5c;
        color: white;
    }

    /* Lógica Responsive: Se convierte en tarjetas en móviles */
    @media screen and (max-width: 768px) {
        table, thead, tbody, th, td, tr {
            display: block;
        }

        thead tr {
            position: absolute;
            top: -9999px;
            left: -9999px;
        }

        tr {
            margin-bottom: 15px;
            border: 2px solid #ccc;
        }

        td {
            border: none;
            border-bottom: 1px solid #eee;
            position: relative;
            padding-left: 50%;
        }

        td::before {
            position: absolute;
            left: 10px;
            width: 45%;
            padding-right: 10px;
            white-space: nowrap;
            font-weight: bold;
            content: attr(data-label);
        }
    }

/*Tabla Contacto*/
.contact-container {
        max-width: 1000px;
        margin: 20px auto;
        border: 1px solid #ddd;
        border-radius: 8px;
        overflow: hidden;
        font-family: sans-serif;
    }

    .contact-row {
        display: grid;
        grid-template-columns: 400px 1fr; /* Columna izquierda fija, derecha flexible */
        padding: 15px;
        border-bottom: 1px solid #eee;
    }

    .contact-row:last-child {
        border-bottom: none;
    }

    .label {
        font-weight: bold;
        color: #2c5d8f;
    }

    /* Diseño responsivo para móviles */
    @media screen and (max-width: 600px) {
        .contact-row {
            grid-template-columns: 1fr; /* Pasa a una sola columna */
            gap: 5px;
        }
    }

/*Correo en pie de página*/
.footer-email {
  display: inline-flex;
  align-items: center;
  gap: 10px; /* Espacio entre el icono y el texto */
  color: #ffffff; /* Ajusta según el azul de tu fondo */
  text-decoration: none; /* Elimina el subrayado */
  font-family: sans-serif;
  font-size: 16px;
  transition: opacity 0.3s ease;
  opacity: 0.8;
}

.footer-email:hover {
  opacity: 1; /* El texto se aclara al pasar el ratón */
  cursor: pointer;
}

.footer-email svg {
  fill: #ffffff; /* Color del icono igual al texto */
}

.contenedor-botones {
  display: grid;
  /* Define exactamente 3 columnas */
  grid-template-columns: repeat(3, 1fr);
  gap: 15px; /* Espacio entre botones */
  width: 100%;
}

.boton-descarga {
  display: block;
  padding: 15px;
  background-color: #c5911a; /* Azul institucional */
  color: white;
  text-decoration: none;
  border-radius: 5px;
  text-align: center;
  font-weight: bold;
  transition: background 0.3s;
}

.boton-descarga:hover {
  background-color: #003b5c;
}

/* Diseño adaptativo para móviles */
@media (max-width: 768px) {
  .contenedor-botones {
    grid-template-columns: 1fr; /* Una sola columna en móviles */
  }
}

/* 1. Estilos base: ocultar los logos del menú en escritorio */
.mobile-logos {
    display: none;
    justify-content: space-around;
    align-items: center;
    padding: 10px;
    background-color: var(--unam-blue);
}

.mobile-logos img {
    height: 40px; /* Ajusta el tamaño según prefieras */
    width: auto;
}

@media (max-width: 768px) {
    .mobile-logos {
        display: flex !important; /* El !important ayuda a ganar prioridad */
        /*background-color: red !important;*/ /* Ponemos rojo para ver si el contenedor existe */
        height: 50px;
		opacity: 0.8;
    }
}

@media (max-width: 768px) {
    /* Ocultamos los logos de la cabecera original en móvil */
    header .header-logo {
        display: none !important;
    }
    
    /* Opcional: Si quieres que el título ocupe todo el ancho al quitar los logos */
    .header-container {
        justify-content: center !important;
    }
}

	