/* ==========================================================================
   campus.css — Home · Propuesta B «Campus primero» (2026-09-24)
   Estructura y contenido: wireframe «UP - Wireframes (Home)». Piel: sistema UP.
   Depende de ds.css (tokens, botón, campo, acordeón) y de camino.css
   (cabecera, menú en capa, banda, etiqueta, contenedor, pie).
   Prefijo cp- para no colisionar con los componentes de ds.css.
   No modifica la Propuesta A (inicio.html · camino.css).
   ========================================================================== */

.cp-seccion { padding-block: var(--espacio-seccion); position: relative; }
.cp-seccion--papel { background: var(--superficie-base); }
.cp-seccion--elevada { background: var(--superficie-elevada); }
.cp-seccion--marca { background: var(--superficie-marca); color: var(--contenido-inverso); }
.cp-seccion--profunda { background: var(--superficie-profunda); color: var(--contenido-inverso); }
.cp-cabeza { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--espacio-grupo); flex-wrap: wrap; margin-bottom: var(--espacio-grupo); }
.cp-cabeza > div:not(.cp-filtro) { display: grid; gap: var(--espacio-base); max-width: 44rem; }
.cp-h2 { font-family: var(--fuente-titulos); font-weight: 400; font-size: clamp(2rem, 1.2rem + 2.6vw, 3.25rem); line-height: 1.05; letter-spacing: -0.01em; text-wrap: balance; }
.cp-apoyo { color: var(--contenido-secundario); font-size: var(--texto-cuerpo); max-width: 40rem; }
.cp-seccion--marca .cp-apoyo, .cp-seccion--profunda .cp-apoyo { color: inherit; opacity: 0.88; }
.cp-fuente { font-size: var(--texto-pequeno); color: var(--contenido-terciario); margin-top: var(--espacio-grupo); }
.cp-seccion--marca .cp-fuente, .cp-cifras .cp-fuente { color: inherit; opacity: 0.8; position: relative; z-index: 1; }

/* Revelado escalonado al entrar en vista */
.cp-revela { opacity: 0; transform: translateY(var(--desplazamiento-entrada)); }
.cp-revela.cp-visto { opacity: 1; transform: none; transition: opacity var(--duracion-revelado) var(--curva-estandar), transform var(--duracion-revelado) var(--curva-estandar); transition-delay: calc(var(--retardo-escalon) * var(--k, 0)); }
@media (prefers-reduced-motion: reduce) { .cp-revela { opacity: 1; transform: none; } }

/* ---------- 01 · Hero: texto a la izquierda, foto con tahalí de soporte a la derecha ---------- */
.cp-hero { background: var(--superficie-base); overflow: hidden; }
.cp-hero .contenedor { display: grid; gap: var(--espacio-grupo); padding-block: var(--espacio-grupo) var(--espacio-seccion-compacta); }
.cp-hero__texto { display: grid; gap: var(--espacio-bloque); align-content: center; }
.cp-hero h1 { font-family: var(--fuente-titulos); font-weight: 600; font-size: clamp(2.5rem, 1.2rem + 4.6vw, 5rem); line-height: 0.98; letter-spacing: -0.02em; color: var(--contenido-marca); text-wrap: balance; }
.cp-hero__promesa { font-family: var(--fuente-titulos); font-size: clamp(1.25rem, 1rem + 0.9vw, 1.625rem); line-height: 1.25; max-width: 32rem; }
.cp-hero__aeo { color: var(--contenido-secundario); max-width: 34rem; }
.cp-hero__acciones { display: flex; flex-wrap: wrap; gap: var(--espacio-base); margin-top: var(--espacio-compacto); }
.cp-hero__foto { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--superficie-marca-tinte); }
.cp-hero__foto img { width: 100%; height: 100%; object-fit: cover; object-position: var(--foco, 50% 40%); transform: scale(1.06); transition: transform 1600ms var(--curva-estandar); }
.cp-hero.trazada .cp-hero__foto img { transform: scale(1); }
.cp-hero__foto .banda { left: 0; top: 0; height: 100%; width: 22%; }
.cp-hero__foto .banda--multiply { left: 10%; width: 8%; }
.cp-hero__cifra { position: absolute; right: 0; bottom: 0; background: var(--superficie-marca); color: var(--contenido-inverso); padding: 14px 18px; font-size: var(--texto-pequeno); display: grid; gap: 2px; z-index: 2; }
.cp-hero__cifra b { font-family: var(--fuente-titulos); font-weight: 400; font-size: 2rem; line-height: 1; }
@media (min-width: 900px) {
  .cp-hero .contenedor { grid-template-columns: 6fr 6fr; column-gap: var(--espacio-modulo); min-height: min(640px, calc(100svh - 112px)); padding-block: var(--espacio-seccion-compacta); }
  .cp-hero__foto { aspect-ratio: auto; min-height: 460px; }
}
@media (max-width: 599px) { .cp-hero__acciones { flex-direction: column; } .cp-hero__acciones .boton { width: 100%; } }

/* ---------- 02 · Reconocimiento (trust bar) ---------- */
.cp-confianza { border-block: var(--borde-fino) solid var(--borde-suave); padding-block: var(--espacio-grupo); background: var(--superficie-base); }
.cp-confianza ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--espacio-base) var(--espacio-grupo); }
.cp-confianza li { min-width: 132px; min-height: 44px; display: grid; place-items: center; padding: 8px 14px; border: var(--borde-fino) dashed var(--borde-suave); color: var(--contenido-terciario); font-size: var(--texto-pequeno); filter: grayscale(1); }
.cp-confianza p { text-align: center; margin-top: var(--espacio-base); font-size: var(--texto-pequeno); color: var(--contenido-terciario); }

/* ---------- 03 · Sedes (campus-first) ---------- */
.cp-filtro { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: var(--espacio-compacto); align-items: center; }
.cp-filtro__etiqueta { font-size: var(--texto-pequeno); color: var(--contenido-terciario); margin-right: 4px; }
.cp-filtro button { min-height: 40px; padding: 0 14px; border-radius: 999px; border: var(--borde-fino) solid var(--borde-campo); background: transparent; color: var(--contenido-primario); font: inherit; font-size: var(--texto-pequeno); cursor: pointer; transition: background var(--duracion-instante), color var(--duracion-instante), border-color var(--duracion-instante); }
.cp-filtro button:hover { border-color: var(--borde-marca); }
.cp-filtro button[aria-pressed="true"] { background: var(--superficie-marca); border-color: var(--superficie-marca); color: var(--contenido-inverso); }
.cp-sedes { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--espacio-bloque); }
@media (min-width: 900px) { .cp-sedes { grid-template-columns: repeat(3, 1fr); } }
.cp-sede { position: relative; display: grid; grid-template-rows: auto 1fr; background: var(--superficie-elevada); border: var(--borde-fino) solid var(--borde-suave); transition: opacity var(--duracion-base) var(--curva-estandar), transform var(--duracion-base) var(--curva-estandar), box-shadow var(--duracion-base) var(--curva-estandar); }
.cp-sede:hover { box-shadow: var(--sombra-flotante); }
.cp-sede__foto { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--superficie-marca); }
.cp-sede__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--duracion-revelado) var(--curva-estandar); }
.cp-sede:hover .cp-sede__foto img { transform: scale(var(--escala-hover)); }
.cp-sede__foto .banda { top: 0; height: 100%; width: 18%; left: 8%; transition: transform var(--duracion-revelado) var(--curva-estandar); }
.cp-sede:hover .cp-sede__foto .banda { transform: skewX(calc(90deg - var(--tahali-angulo))) translateX(24px); }
.cp-sede__foto--sin { display: grid; align-content: end; padding: var(--espacio-bloque); color: var(--contenido-inverso); }
.cp-sede__foto--sin .banda { background: var(--superficie-marca-atenuada); left: 46%; width: 30%; }
.cp-sede__foto--sin span { position: relative; z-index: 1; font-size: var(--texto-pequeno); opacity: 0.8; }
.cp-sede__cuerpo { display: grid; gap: var(--espacio-compacto); align-content: start; padding: var(--espacio-bloque); }
.cp-sede__cuenta { font-size: var(--texto-pequeno); color: var(--contenido-marca); font-weight: 500; font-variant-numeric: tabular-nums; }
.cp-sede__cuenta b { font-family: var(--fuente-titulos); font-weight: 400; font-size: 2.25rem; line-height: 1; margin-right: 6px; }
.cp-sede h3 { font-family: var(--fuente-titulos); font-weight: 400; font-size: clamp(1.5rem, 1.1rem + 1vw, 2rem); line-height: 1.1; }
.cp-sede__sedes { font-size: var(--texto-pequeno); color: var(--contenido-terciario); }
.cp-sede p { color: var(--contenido-secundario); }
.cp-sede .boton { justify-self: start; margin-top: var(--espacio-compacto); }
.cp-sede--vacia { opacity: 0.45; }
.cp-sede--vacia .boton { pointer-events: none; }
.cp-sede__aviso { font-size: var(--texto-pequeno); color: var(--contenido-terciario); display: none; }
.cp-sede--vacia .cp-sede__aviso { display: block; }
.cp-sedes--filtrando .cp-sede:not(.cp-sede--vacia) { box-shadow: inset 0 3px 0 var(--acento-ceremonial); }

/* ---------- 04 · Tipos de programa ---------- */
.cp-niveles { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; background: var(--borde-suave); border: var(--borde-fino) solid var(--borde-suave); }
@media (min-width: 600px) { .cp-niveles { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .cp-niveles { grid-template-columns: repeat(5, 1fr); } }
.cp-nivel button { width: 100%; height: 100%; display: grid; gap: var(--espacio-compacto); align-content: start; text-align: left; padding: var(--espacio-bloque); background: var(--superficie-elevada); border: 0; color: var(--contenido-primario); font: inherit; cursor: pointer; position: relative; overflow: hidden; transition: background var(--duracion-base) var(--curva-estandar), color var(--duracion-base) var(--curva-estandar); }
.cp-nivel button::after { content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 0; background: var(--superficie-marca); transition: width var(--duracion-revelado) var(--curva-estandar); }
.cp-nivel button:hover, .cp-nivel button:focus-visible { background: var(--superficie-marca-tinte); }
.cp-nivel button:hover::after, .cp-nivel button:focus-visible::after { width: 100%; }
.cp-nivel__n { font-family: var(--fuente-titulos); font-size: 2.5rem; line-height: 1; color: var(--contenido-marca); font-variant-numeric: tabular-nums; position: relative; z-index: 1; }
.cp-nivel__nombre { font-family: var(--fuente-titulos); font-size: 1.375rem; line-height: 1.15; position: relative; z-index: 1; }
.cp-nivel__campus { font-size: var(--texto-pequeno); color: var(--contenido-terciario); position: relative; z-index: 1; }
.cp-nivel__ir { font-size: var(--texto-pequeno); font-weight: 500; color: var(--contenido-marca); margin-top: var(--espacio-compacto); display: inline-flex; gap: 6px; align-items: center; position: relative; z-index: 1; }
.cp-nivel__ir svg { width: 12px; height: 12px; transition: transform var(--duracion-base) var(--curva-estandar); }
.cp-nivel button:hover .cp-nivel__ir svg { transform: translateY(-3px); }

/* ---------- 05 · ¿Por qué? — cinco pilares ---------- */
.cp-pilares { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--espacio-grupo) var(--espacio-bloque); counter-reset: pilar; }
@media (min-width: 700px) { .cp-pilares { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .cp-pilares { grid-template-columns: repeat(5, 1fr); } }
.cp-pilar { counter-increment: pilar; display: grid; gap: var(--espacio-compacto); align-content: start; padding-top: var(--espacio-bloque); border-top: var(--borde-fino) solid var(--acento-ceremonial); position: relative; }
.cp-pilar::before { content: counter(pilar, decimal-leading-zero); font-family: var(--fuente-titulos); font-size: var(--texto-pequeno); color: var(--contenido-terciario); letter-spacing: 0.06em; }
.cp-pilar::after { content: ""; position: absolute; left: 0; top: -1px; height: 3px; width: 0; background: var(--superficie-marca); transition: width var(--duracion-revelado) var(--curva-estandar); }
.cp-pilar:hover::after { width: 100%; }
.cp-pilar h3 { font-family: var(--fuente-titulos); font-weight: 400; font-size: 1.5rem; line-height: 1.1; color: var(--contenido-marca); }
.cp-pilar p { color: var(--contenido-secundario); font-size: var(--texto-pequeno); line-height: 1.55; }
@media (min-width: 768px) { .cp-pilar p { font-size: 1rem; } }

.cp-cifras { margin-top: var(--espacio-seccion-compacta); position: relative; overflow: hidden; background: var(--superficie-marca); color: var(--contenido-inverso); padding: var(--espacio-grupo) var(--espacio-bloque); }
@media (min-width: 900px) { .cp-cifras { padding: var(--espacio-seccion-compacta) var(--espacio-modulo); } }
.cp-cifras .banda { right: 6%; left: auto; top: 0; height: 100%; width: 90px; background: var(--superficie-marca-atenuada); }
.cp-cifras__intro { position: relative; z-index: 1; display: grid; gap: var(--espacio-base); max-width: 46rem; }
.cp-cifras__intro .cap-etiqueta { color: var(--contenido-acento-inverso); }
.cp-cifras__intro .cap-etiqueta::before { background: var(--contenido-acento-inverso); }
.cp-cifras__intro p { font-size: var(--texto-cuerpo-grande); opacity: 0.92; }
.cp-cifras ul { position: relative; z-index: 1; list-style: none; margin: var(--espacio-grupo) 0 0; padding: 0; display: grid; gap: var(--espacio-bloque); }
@media (min-width: 700px) { .cp-cifras ul { grid-template-columns: repeat(3, 1fr); } }
.cp-cifras li { display: grid; gap: 6px; padding-top: var(--espacio-base); border-top: var(--borde-fino) solid rgba(247,245,240,0.35); }
.cp-cifras li b { font-family: var(--fuente-titulos); font-weight: 400; font-size: clamp(2.75rem, 1.8rem + 3vw, 4.5rem); line-height: 1; font-variant-numeric: tabular-nums; }
.cp-cifras li span { opacity: 0.88; max-width: 18rem; }

/* ---------- 05b · Testimonios ---------- */
.cp-prueba { display: grid; gap: var(--espacio-bloque); }
@media (min-width: 900px) { .cp-prueba { grid-template-columns: 7fr 5fr; } }
.cp-testimonio { position: relative; background: var(--superficie-base); padding: var(--espacio-grupo); overflow: hidden; display: grid; gap: var(--espacio-bloque); }
.cp-testimonio .banda { left: var(--espacio-grupo); top: 0; height: 40px; width: 12px; }
.cp-testimonio { padding-top: calc(var(--espacio-grupo) + 24px); }
.cp-testimonio blockquote { margin: 0; font-family: var(--fuente-titulos); font-style: italic; font-size: clamp(1.375rem, 1rem + 1.2vw, 2rem); line-height: 1.25; }
.cp-testimonio figcaption { font-size: var(--texto-pequeno); color: var(--contenido-secundario); display: grid; gap: 2px; }
.cp-testimonio figcaption b { color: var(--contenido-primario); font-weight: 500; }
.cp-datos { border: var(--borde-fino) solid var(--borde-suave); background: var(--superficie-base); padding: var(--espacio-grupo); display: grid; gap: var(--espacio-base); align-content: start; }
.cp-datos h3 { font-size: var(--texto-etiqueta); font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--contenido-terciario); }
.cp-datos ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--espacio-compacto); }
.cp-datos li { display: flex; gap: 10px; align-items: baseline; color: var(--contenido-secundario); }
.cp-datos li::before { content: ""; width: 10px; height: 10px; border: var(--borde-fino) solid var(--borde-campo); flex: 0 0 auto; transform: translateY(1px); }

/* ---------- 06 · Noticias y eventos ---------- */
.cp-noticias { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--espacio-bloque); }
@media (min-width: 900px) { .cp-noticias { grid-template-columns: repeat(3, 1fr); } }
.cp-noticia a { display: grid; gap: var(--espacio-compacto); color: var(--contenido-primario); text-decoration: none; }
.cp-noticia__img { aspect-ratio: 3 / 2; overflow: hidden; background: var(--superficie-marca-tinte); position: relative; }
.cp-noticia__img img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--duracion-revelado) var(--curva-estandar); }
.cp-noticia a:hover .cp-noticia__img img, .cp-noticia a:focus-visible .cp-noticia__img img { transform: scale(var(--escala-hover)); }
.cp-noticia__tipo { position: absolute; left: 0; top: 0; background: var(--superficie-marca); color: var(--contenido-inverso); font-size: var(--texto-etiqueta); font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; padding: 6px 10px; }
.cp-noticia__meta { font-size: var(--texto-pequeno); color: var(--contenido-terciario); margin-top: var(--espacio-compacto); }
.cp-noticia h3 { font-family: var(--fuente-titulos); font-weight: 400; font-size: 1.375rem; line-height: 1.2; }
.cp-noticia__leer { font-size: var(--texto-pequeno); font-weight: 500; color: var(--contenido-marca); display: inline-flex; gap: 6px; }
.cp-noticia a:hover .cp-noticia__leer span { transform: translateX(4px); }
.cp-noticia__leer span { transition: transform var(--duracion-base) var(--curva-estandar); }

/* ---------- 07 · Preguntas frecuentes ---------- */
.cp-faq { display: grid; gap: var(--espacio-grupo); }
@media (min-width: 900px) { .cp-faq { grid-template-columns: 4fr 8fr; column-gap: var(--espacio-modulo); } }
.cp-faq .acordeon__boton .q { flex: 1; text-align: left; }

/* ---------- 08 · CTA final ---------- */
.cp-cta .contenedor { display: grid; gap: var(--espacio-grupo); align-items: start; }
@media (min-width: 900px) { .cp-cta .contenedor { grid-template-columns: minmax(0, 1fr) 480px; column-gap: 48px; } }
.cp-cta__mensaje { display: grid; gap: var(--espacio-bloque); max-width: 48rem; position: relative; }
.cp-cta__mensaje h2 { font-family: var(--fuente-titulos); font-weight: 600; font-size: clamp(2.25rem, 1.2rem + 3.4vw, 4rem); line-height: 1; letter-spacing: -0.02em; text-wrap: balance; }
.cp-cta__mensaje p { opacity: 0.88; max-width: 34rem; }
.cp-cta__alt { display: flex; flex-wrap: wrap; gap: var(--espacio-base); font-size: var(--texto-pequeno); }
.cp-cta__alt a { color: inherit; }
.cp-form { background: var(--superficie-base); color: var(--contenido-primario); padding: var(--espacio-grupo); display: grid; gap: var(--espacio-bloque); position: relative; }
.cp-form h3 { font-family: var(--fuente-titulos); font-weight: 400; font-size: 1.75rem; line-height: 1.1; }
.cp-form .boton { justify-self: start; }
.cp-form__alt { font-size: var(--texto-pequeno); color: var(--contenido-secundario); }
.cp-cta .banda { left: var(--sangrado); bottom: 0; top: auto; height: 38%; width: 120px; transform-origin: bottom left; background: var(--superficie-marca); }
@media (max-width: 899px) { .cp-cta .banda { display: none; } }

/* ---------- CTA persistente en móvil (wireframe: Responsive) ---------- */
.cp-fija { position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--capa-fija); background: var(--superficie-base); border-top: var(--borde-fino) solid var(--borde-suave); padding: 10px var(--margen-lateral) calc(10px + env(safe-area-inset-bottom)); display: flex; gap: var(--espacio-compacto); transform: translateY(110%); transition: transform var(--duracion-base) var(--curva-estandar); }
.cp-fija .boton { flex: 1; min-height: 44px; }
.cp-fija--visible { transform: none; }
@media (min-width: 900px) { .cp-fija { display: none; } }

/* Cabecera en esta propuesta: sin etiqueta de capítulo */
.cp-pagina .cab--plegada .cab__capitulo { display: none; }
.cp-pagina [id] { scroll-margin-top: calc(var(--alto-cab) + 16px); }
.cp-pagina .cp-seccion *, .cp-pagina .cp-hero * { min-width: 0; }
/* Móvil: tarjetas de nivel en una columna compacta (cifra a la izquierda) */
@media (max-width: 599px) {
  .cp-nivel button { grid-template-columns: 4.5rem 1fr; column-gap: var(--espacio-base); row-gap: 4px; padding-block: var(--espacio-base); }
  .cp-nivel__n { grid-row: 1 / 4; font-size: 2.25rem; align-self: center; }
  .cp-nivel__ir { margin-top: 0; }
}
.cp-datos li { flex-wrap: wrap; }

/* ==========================================================================
   Cabecera según el wireframe de Figma (2026-09-25)
   logo · Oferta académica ▾ · Conoce Posgrados Panamericana ▾ · Noticias · Eventos · Contacto · CTA
   Barra blanca de 96 px con separación de 28 px entre elementos; se pliega a 64 px al desplazarse.
   ========================================================================== */
.cp-cab { position: sticky; top: 0; z-index: var(--capa-fija); background: var(--superficie-elevada); border-bottom: var(--borde-fino) solid var(--borde-suave); transition: box-shadow var(--duracion-base) var(--curva-estandar); }
.cp-cab--plegada, .cp-cab--abierta { box-shadow: var(--sombra-flotante); }
.cp-cab__barra { display: flex; align-items: center; gap: 28px; min-height: 108px; transition: min-height var(--duracion-base) var(--curva-estandar); }
.cp-cab--plegada .cp-cab__barra { min-height: var(--alto-cab); }
.cp-cab__logo { display: flex; align-items: center; margin-right: auto; }
.cp-cab__logo img { height: 76px; width: auto; transition: height var(--duracion-base) var(--curva-estandar); }
.cp-cab--plegada .cp-cab__logo img { height: 50px; }
.cp-cab__cta { white-space: nowrap; }

.cp-nav { display: none; }
.cp-nav__lista { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 28px; }
.cp-nav__boton, .cp-nav__enlace { font: inherit; font-size: 0.9375rem; font-weight: 500; color: var(--contenido-primario); background: none; border: 0; padding: 10px 0; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; border-bottom: var(--borde-grueso) solid transparent; transition: color var(--duracion-instante), border-color var(--duracion-instante); }
.cp-nav__boton:hover, .cp-nav__enlace:hover { border-bottom-color: var(--borde-suave); }
.cp-nav__boton[aria-expanded="true"] { color: var(--contenido-marca); border-bottom-color: var(--acento-ceremonial); }
.cp-nav__boton svg, .cp-capa__boton svg { width: 10px; height: 10px; transition: transform var(--duracion-base) var(--curva-estandar); }
.cp-nav__boton[aria-expanded="true"] svg, .cp-capa__boton[aria-expanded="true"] svg { transform: rotate(180deg); }
@media (min-width: 1100px) {
  .cp-nav { display: block; }
  .cp-cab__menu { display: none; }
}
@media (max-width: 599px) { .cp-cab__barra { gap: var(--espacio-compacto); min-height: 76px; } .cp-cab__logo img { height: 58px; } .cp-cab--plegada .cp-cab__logo img { height: 48px; } .cp-cab__cta { padding-inline: 12px; font-size: var(--texto-pequeno); min-height: 40px; } .cp-cab__menu { padding-inline: 10px; } }
@media (max-width: 359px) { .cp-cab__cta { display: none; } }

/* Desplegable: panel a todo el ancho bajo la cabecera, con filete dorado y tres columnas */
.cp-desp { position: absolute; left: 0; right: 0; top: 100%; background: var(--superficie-elevada); border-top: var(--borde-fino) solid var(--borde-suave); box-shadow: var(--sombra-flotante); }
.cp-desp:not([hidden]) { animation: cp-baja var(--duracion-base) var(--curva-estandar); }
@keyframes cp-baja { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .cp-desp:not([hidden]) { animation: none; } }
.cp-desp__rejilla { display: grid; grid-template-columns: 1fr 1fr 1.1fr; gap: var(--espacio-modulo); padding-block: var(--espacio-grupo); }
.cp-desp__titulo { font-size: var(--texto-etiqueta); font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--contenido-terciario); margin-bottom: var(--espacio-compacto); display: flex; align-items: center; gap: 10px; }
.cp-desp__titulo::before { content: ""; width: 24px; height: 1px; background: var(--acento-ceremonial); }
.cp-desp ul, .cp-capa__panel ul { list-style: none; margin: 0; padding: 0; }
.cp-desp li a, .cp-capa__panel li a { display: flex; justify-content: space-between; align-items: baseline; gap: var(--espacio-base); padding: 10px 0; border-bottom: var(--borde-fino) solid var(--borde-suave); color: var(--contenido-primario); text-decoration: none; }
.cp-desp li a span { font-family: var(--fuente-titulos); font-size: 1.25rem; line-height: 1.2; transition: transform var(--duracion-base) var(--curva-estandar), color var(--duracion-instante); }
.cp-desp li a b, .cp-capa__panel li a b { font-weight: 400; font-size: var(--texto-pequeno); color: var(--contenido-terciario); font-variant-numeric: tabular-nums; }
.cp-desp li a:hover span, .cp-desp li a:focus-visible span { transform: translateX(8px); color: var(--contenido-marca); }
.cp-desp__col--marca { position: relative; overflow: hidden; background: var(--superficie-marca); color: var(--contenido-inverso); padding: var(--espacio-grupo); display: grid; align-content: end; gap: var(--espacio-bloque); min-height: 240px; }
.cp-desp__col--marca .banda { left: 55%; top: 0; height: 100%; width: 64px; background: var(--superficie-marca-atenuada); }
.cp-desp__cifra { position: relative; z-index: 1; font-family: var(--fuente-titulos); font-size: 1.5rem; line-height: 1.2; max-width: 16rem; }
.cp-desp__cifra b { display: block; font-weight: 400; font-size: 3.5rem; line-height: 1; }
.cp-desp__todo { position: relative; z-index: 1; color: inherit; font-weight: 500; text-decoration: none; border-bottom: var(--borde-fino) solid var(--contenido-acento-inverso); justify-self: start; padding-bottom: 2px; }
.cp-desp__todo span { display: inline-block; transition: transform var(--duracion-base) var(--curva-estandar); }
.cp-desp__todo:hover span { transform: translateX(4px); }
.cp-velo { position: fixed; inset: 0; z-index: calc(var(--capa-fija) - 1); background: rgba(20, 33, 31, 0.28); }

/* Menú móvil: misma estructura, en acordeón */
.cp-capa__nav { display: grid; padding-block: var(--espacio-bloque) var(--espacio-grupo); position: relative; z-index: 1; }
.cp-capa__item { border-bottom: var(--borde-fino) solid var(--borde-suave); }
.cp-capa__boton, .cp-capa__enlace { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: var(--espacio-base); min-height: 64px; padding: 12px 0; background: none; border: 0; font-family: var(--fuente-titulos); font-size: clamp(1.5rem, 1.1rem + 2vw, 2rem); line-height: 1.1; color: var(--contenido-primario); text-align: left; text-decoration: none; cursor: pointer; }
.cp-capa__boton svg { width: 14px; height: 14px; flex: 0 0 auto; }
.cp-capa__boton[aria-expanded="true"] { color: var(--contenido-marca); }
.cp-capa__panel { display: grid; gap: var(--espacio-bloque); padding-bottom: var(--espacio-bloque); }
.cp-capa__panel li a span { font-size: 1.0625rem; }
.cp-capa__panel .cp-desp__col--marca { min-height: 0; padding: var(--espacio-bloque); }
.cp-capa__panel .cp-desp__cifra b { font-size: 2.5rem; }
.cp-capa__cta { width: 100%; position: relative; z-index: 1; margin-bottom: var(--espacio-grupo); }
.cp-pagina [id] { scroll-margin-top: calc(var(--alto-cab) + 16px); }
.cp-capa__panel .cp-desp__col--marca { background: none; color: var(--contenido-marca); padding: 0; min-height: 0; }
.cp-capa__panel .cp-desp__col--marca .banda, .cp-capa__panel .cp-desp__cifra { display: none; }
.cp-capa__panel .cp-desp__todo { border-bottom-color: var(--acento-ceremonial); }

/* ==========================================================================
   Dinamismo (2026-09-25) — pedido de Jazmín Córdova: página que se sienta viva.
   Reglas: el tahalí ya no cruza fotografías (manual: sin doble tahalí en foto,
   nunca sobre rostros); vive en el borde de la foto o en zonas de color.
   Todo el movimiento se apaga con prefers-reduced-motion.
   ========================================================================== */

/* Progreso de lectura: filete dorado bajo la cabecera */
.cp-progreso { position: absolute; left: 0; bottom: -1px; height: 2px; width: 100%; background: var(--acento-ceremonial); transform-origin: left; transform: scaleX(var(--p, 0)); pointer-events: none; }

/* Parallax genérico: el JS escribe --py */
[data-parallax] { transform: translate3d(0, var(--py, 0px), 0); will-change: transform; }

/* Hero: titular por líneas, foto en franco cuartel y un solo tahalí en su borde */
.cp-hero h1 .linea { display: block; overflow: hidden; padding-bottom: 0.06em; margin-bottom: -0.06em; }
.cp-hero h1 .linea > span { display: inline-block; transform: translateY(105%); transition: transform 900ms var(--curva-estandar); }
.cp-hero h1 .linea:nth-child(2) > span { transition-delay: 90ms; }
.cp-hero h1 .linea:nth-child(3) > span { transition-delay: 180ms; }
.cp-hero.trazada h1 .linea > span { transform: none; }
.cp-hero__promesa, .cp-hero__aeo, .cp-hero__acciones { opacity: 0; transform: translateY(16px); transition: opacity 700ms var(--curva-estandar), transform 700ms var(--curva-estandar); }
.cp-hero.trazada .cp-hero__promesa { opacity: 1; transform: none; transition-delay: 380ms; }
.cp-hero.trazada .cp-hero__aeo { opacity: 1; transform: none; transition-delay: 480ms; }
.cp-hero.trazada .cp-hero__acciones { opacity: 1; transform: none; transition-delay: 580ms; }
.cp-hero__escena { position: relative; }
.cp-hero__foto { position: relative; z-index: 1; clip-path: inset(0 0 0 100%); transition: clip-path 1200ms var(--curva-estandar) 150ms; }
.cp-hero.trazada .cp-hero__foto { clip-path: inset(0 0 0 0); }
.cp-hero__tahali { position: absolute; z-index: 0; top: -6%; bottom: -6%; left: -9%; width: 22%; background: var(--superficie-marca); transform-origin: top left; }
.cp-hero__tahali::before { content: ""; position: absolute; inset: 0; background: inherit; transform: skewX(calc(90deg - var(--tahali-angulo))) scaleY(0); transform-origin: top left; transition: transform 900ms var(--curva-estandar) 500ms; }
.cp-hero__tahali { background: none; }
.cp-hero__tahali::before { background: var(--superficie-marca); }
.cp-hero.trazada .cp-hero__tahali::before { transform: skewX(calc(90deg - var(--tahali-angulo))) scaleY(1); }
.cp-hero__cifra { z-index: 2; right: -12px; bottom: -18px; }
@media (max-width: 899px) { .cp-hero__tahali { left: -4%; width: 16%; top: -10%; } .cp-hero__cifra { right: 0; bottom: -14px; } }

/* Reconocimientos: cinta continua */
.cp-cinta { display: flex; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.cp-cinta__pista { list-style: none; margin: 0; padding: 0 var(--espacio-grupo) 0 0; display: flex; flex: 0 0 auto; gap: var(--espacio-grupo); animation: cp-cinta 36s linear infinite; }
.cp-cinta:hover .cp-cinta__pista { animation-play-state: paused; }
@keyframes cp-cinta { to { transform: translateX(-100%); } }
.cp-confianza .cp-cinta li { flex: 0 0 auto; }

/* Títulos de sección: revelado por máscara */
.cp-mascara { opacity: 0; transform: translateY(0.5em); transition: opacity 800ms var(--curva-estandar), transform 800ms var(--curva-estandar); }
.cp-mascara.cp-visto { opacity: 1; transform: none; }

/* Sedes: foto sin franja; la tarjeta se levanta al pasar el cursor */
.cp-sede { transition: transform var(--duracion-revelado) var(--curva-estandar), box-shadow var(--duracion-revelado) var(--curva-estandar), opacity var(--duracion-base); }
.cp-sede:hover { transform: translateY(-6px); }
.cp-sede__foto img { transition: scale var(--duracion-revelado) var(--curva-estandar); }
.cp-sede__cuenta b { display: inline-block; transition: transform var(--duracion-base) var(--curva-estandar); }
.cp-sede__cuenta b.cp-cambia { transform: translateY(-4px); color: var(--contenido-marca); }

/* ¿Por qué?: recorrido horizontal fijado en escritorio; lista vertical en móvil */
.cp-porque { padding-bottom: 0; }
.cp-recorrido { position: relative; }
.cp-recorrido__marco { overflow: hidden; }
.cp-pilares { counter-reset: none; }
.cp-pilar { border-top: 0; padding-top: 0; }
.cp-pilar::before, .cp-pilar::after { content: none; }
.cp-pilar__n { font-family: var(--fuente-titulos); font-size: clamp(3.5rem, 2rem + 5vw, 7rem); line-height: 0.9; color: var(--acento-ceremonial); font-variant-numeric: tabular-nums; }
.cp-pilar h3 { font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem); }
.cp-pilar p { font-size: var(--texto-cuerpo); max-width: 30rem; }
.cp-pilar__foto, .cp-pilar__plasta { position: relative; overflow: hidden; aspect-ratio: 3 / 2; margin-top: var(--espacio-compacto); background: var(--superficie-marca); }
.cp-pilar__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 1200ms var(--curva-estandar); }
.cp-pilar:hover .cp-pilar__foto img { transform: scale(var(--escala-hover)); }
.cp-pilar__plasta .banda { left: 38%; top: 0; height: 100%; width: 26%; background: var(--superficie-marca-atenuada); }
@media (max-width: 1099px) {
  .cp-recorrido .contenedor, .cp-recorrido__pie { display: none; }
  .cp-pilares { padding-inline: var(--margen-lateral); max-width: var(--contenedor-maximo); margin-inline: auto; padding-bottom: var(--espacio-seccion); }
}
@media (min-width: 1100px) {
  .cp-recorrido { height: var(--alto-recorrido, 300vh); }
  .cp-recorrido__fijo { position: sticky; top: var(--alto-cab); height: calc(100vh - var(--alto-cab)); display: grid; grid-template-rows: 1fr auto; align-content: center; overflow: hidden; }
  .cp-recorrido__marco { align-self: center; }
  .cp-pilares { display: flex; flex-wrap: nowrap; gap: var(--espacio-modulo); grid-template-columns: none; padding-left: var(--sangrado); padding-right: 30vw; width: max-content; transform: translate3d(var(--tx, 0px), 0, 0); will-change: transform; }
  .cp-pilar { width: min(34vw, 460px); flex: 0 0 auto; align-content: start; }
  .cp-pilar__foto, .cp-pilar__plasta { aspect-ratio: 4 / 3; }
  .cp-pilar:nth-child(even) { margin-top: 12vh; }
  .cp-recorrido__pie { display: flex; align-items: center; gap: var(--espacio-base); padding-block: var(--espacio-bloque); font-size: var(--texto-pequeno); color: var(--contenido-terciario); font-variant-numeric: tabular-nums; }
  .cp-recorrido__barra { flex: 1; height: 1px; background: var(--borde-suave); position: relative; }
  .cp-recorrido__barra i { position: absolute; inset: 0; background: var(--superficie-marca); transform-origin: left; transform: scaleX(var(--rp, 0)); }
}

/* Cifras: foto a sangre con veladura verde y parallax */
.cp-cifras { margin-top: 0; position: relative; overflow: hidden; background: var(--superficie-marca); color: var(--contenido-inverso); padding: var(--espacio-seccion) 0; }
.cp-cifras .contenedor { position: relative; z-index: 1; }
.cp-cifras__fondo { position: absolute; inset: 0; overflow: hidden; }
.cp-cifras__fondo img { width: 100%; height: 100%; object-fit: cover; opacity: 0.35; mix-blend-mode: multiply; filter: grayscale(0.3); }
.cp-cifras__fondo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--superficie-marca) 30%, transparent); opacity: 0.85; }
@media (min-width: 900px) { .cp-cifras { padding: var(--espacio-seccion) 0; } }

/* Cita que se ilumina palabra por palabra al desplazarse */
[data-ilumina] .pal { opacity: 0.18; transition: opacity 250ms linear; }
[data-ilumina] .pal.on { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  [data-parallax] { transform: none !important; }
  .cp-hero h1 .linea > span, .cp-hero__promesa, .cp-hero__aeo, .cp-hero__acciones { transform: none; opacity: 1; transition: none; }
  .cp-hero__foto { clip-path: none; transition: none; }
  .cp-hero__tahali::before { transform: skewX(calc(90deg - var(--tahali-angulo))); transition: none; }
  .cp-cinta__pista { animation: none; }
  .cp-cinta { flex-wrap: wrap; justify-content: center; } .cp-cinta__pista[aria-hidden] { display: none; }
  .cp-mascara { opacity: 1; transform: none; transition: none; }
  .cp-recorrido { height: auto !important; } .cp-recorrido__fijo { position: static; height: auto; }
  .cp-pilares { transform: none !important; flex-wrap: wrap; width: auto; padding-right: var(--sangrado); }
  [data-ilumina] .pal { opacity: 1; }
}

/* Imágenes con parallax: 24 % más altas que su marco y centradas; el JS mueve --py dentro de ese margen */
img[data-parallax], .cp-hero.trazada .cp-hero__foto img[data-parallax], .cp-sede:hover .cp-sede__foto img[data-parallax], .cp-noticia a:hover .cp-noticia__img img[data-parallax], .cp-noticia a:focus-visible .cp-noticia__img img[data-parallax] { height: 124% !important; transform: translate3d(0, calc(-9.68% + var(--py, 0px)), 0); }
.cp-sede:hover .cp-sede__foto img[data-parallax], .cp-noticia a:hover .cp-noticia__img img[data-parallax], .cp-noticia a:focus-visible .cp-noticia__img img[data-parallax] { scale: var(--escala-hover); }
.cp-sede__foto img, .cp-noticia__img img { transition: scale var(--duracion-revelado) var(--curva-estandar); }
@media (prefers-reduced-motion: reduce) { img[data-parallax] { height: 100% !important; transform: none !important; } }
.cp-hero__foto img { transition: none; }
/* Marcos de imagen con parallax: la imagen va absoluta y 24 % más alta que su marco */
.cp-hero__foto, .cp-sede__foto, .cp-noticia__img { position: relative; overflow: hidden; }
img[data-parallax] { position: absolute; left: 0; top: 0; width: 100%; }
@media (max-width: 899px) { .cp-hero__foto { aspect-ratio: 4 / 3; } }
.cp-hero__tahali { left: -4%; width: 14%; top: -8%; bottom: -8%; }

@media (min-width: 1100px) {
  .cp-recorrido__marco { align-self: center; }
  .cp-pilar__n { font-size: clamp(3rem, 1.5rem + 3.5vw, 5rem); }
  .cp-pilar__foto, .cp-pilar__plasta { aspect-ratio: 16 / 10; }
  .cp-pilar:nth-child(even) { margin-top: 8vh; }
}
@media (min-width: 1100px) and (max-height: 820px) { .cp-pilar { width: min(30vw, 400px); } .cp-pilar:nth-child(even) { margin-top: 5vh; } }
.cp-capa__panel[hidden], .cp-desp[hidden] { display: none; }

/* ==========================================================================
   Textura Roble (2026-09-25) — trazo oficial extraído del Manual de Marca UP (pp. 75–78).
   Tono sobre tono: 329 CP con 329 al 75 % (#408E86). Solo en bloques de color sin fotografía,
   al 100 % de opacidad, sin efectos y nunca junto al tahalí en el mismo bloque (usos incorrectos 02, 04, 07, 08).
   ========================================================================== */
.textura-roble { position: absolute; pointer-events: none; background: var(--superficie-marca-atenuada);
  -webkit-mask: url(img/texturas/roble-textura.svg) no-repeat center bottom / contain; mask: url(img/texturas/roble-textura.svg) no-repeat center bottom / contain; }
.textura-roble--acercamiento { -webkit-mask-size: 260% auto; mask-size: 260% auto; -webkit-mask-position: 58% 42%; mask-position: 58% 42%; }

/* Sedes y pilares sin foto: acercamiento que llena el marco (más alto para el parallax) */
.cp-sede__foto--sin .textura-roble, .cp-pilar__plasta .textura-roble { left: 0; right: 0; top: -12%; bottom: -12%; }
.cp-sede__foto--sin { background: var(--superficie-marca); }

/* Cierre con formulario sobre verde 329 y el Roble completo tras la columna del formulario */
.cp-cta--roble { background: var(--superficie-marca); }
.cp-cta--roble > .banda { display: none; }
.cp-cta--roble .textura-roble { width: min(62vw, 760px); aspect-ratio: 553 / 571; right: max(-6vw, -80px); bottom: -14%; }
.cp-cta--roble .contenedor { position: relative; z-index: 1; }
@media (max-width: 899px) { .cp-cta--roble .textura-roble { width: 120vw; right: -30vw; bottom: -6%; } }
.cp-cta--roble { color: var(--contenido-inverso); }
/* El Roble ocupa el espacio libre bajo el mensaje, no queda tapado por el formulario */
@media (min-width: 900px) { .cp-cta--roble .textura-roble { right: auto; left: calc(var(--sangrado) - 120px); bottom: -38%; width: min(46vw, 600px); } }
.cp-cta--roble { overflow: hidden; }

/* Pie: redes sociales (cuentas institucionales UP, las mismas que enlaza el sitio actual de Posgrados) */
.pie-redes { list-style: none; margin: var(--espacio-compacto) 0 0; padding: 0; display: flex; gap: var(--espacio-compacto); }
.pie-redes a { width: 44px; height: 44px; display: grid; place-items: center; border: var(--borde-fino) solid rgba(247, 245, 240, 0.35); border-radius: 50%; color: var(--contenido-inverso); transition: background var(--duracion-instante), border-color var(--duracion-instante), color var(--duracion-instante); }
.pie-redes a:hover, .pie-redes a:focus-visible { background: var(--acento-ceremonial); border-color: var(--acento-ceremonial); color: var(--superficie-profunda); }
.pie-redes svg { width: 20px; height: 20px; }

/* ==========================================================================
   Sistema tipográfico · Home B (2026-09-25)
   Niveles fijos, fluidos entre 390 px y 1440 px. Cada texto usa el nivel de su rol, no el de su módulo:
   display › h2 principal › h2 de apoyo › h3 destacada › h3 de tarjeta / lista › entradilla › cuerpo › cuerpo de tarjeta › pequeño › etiqueta.
   Las cifras de dato (conteos) no superan al título que acompañan; los numerales de índice (dorados) sí, porque ordenan y no informan.
   Alcance: .cp-home (la página de programa se ajusta después con la misma escala).
   ========================================================================== */
/* Variables disponibles para todas las páginas B; las reglas de la Home siguen bajo .cp-home */
.cp-pagina {
  --t-display: clamp(2.625rem, 1.929rem + 2.857vw, 4.5rem);        /* 42→72 */
  --t-h2-principal: clamp(2.125rem, 1.614rem + 2.095vw, 3.5rem);   /* 34→56 */
  --t-h2-apoyo: clamp(1.875rem, 1.55rem + 1.333vw, 2.75rem);       /* 30→44 */
  --t-h3-destacada: clamp(1.5rem, 1.314rem + 0.7619vw, 2rem);      /* 24→32 */
  --t-h3-tarjeta: clamp(1.25rem, 1.111rem + 0.5714vw, 1.625rem); /* 20→26 */
  --t-h3-lista: clamp(1.188rem, 1.118rem + 0.2857vw, 1.375rem);    /* 19→22 */
  --t-lead: clamp(1.188rem, 1.071rem + 0.4762vw, 1.5rem);          /* 19→24 */
  --t-lead-2: clamp(1.062rem, 1.016rem + 0.1905vw, 1.188rem);      /* 17→19 */
  --t-cita: clamp(1.375rem, 1.189rem + 0.7619vw, 1.875rem);        /* 22→30 */
  --t-cifra: clamp(2.75rem, 2.193rem + 2.286vw, 4.25rem);          /* 44→68 */
  --t-numeral: clamp(2.25rem, 1.971rem + 1.143vw, 3rem); /* 36→48 */
  --t-cifra-tarjeta: clamp(1.5rem, 1.407rem + 0.381vw, 1.75rem); /* 24→28 */
  --t-cuerpo: clamp(1rem, 0.9536rem + 0.1905vw, 1.125rem);         /* 16→18 */
  --t-cuerpo-tarjeta: clamp(0.9375rem, 0.9143rem + 0.09524vw, 1rem); /* 15→16 */
  --t-pequeno: 0.875rem;                                           /* 14 */
}

/* Portada: el titular manda sin competir con la foto */
.cp-home .cp-hero h1 { font-size: var(--t-display); line-height: 1; }
.cp-home .cp-hero__promesa { font-size: var(--t-lead); line-height: 1.3; }
.cp-home .cp-hero__aeo { font-size: var(--t-cuerpo); line-height: 1.6; }
.cp-home .cp-hero__cifra b { font-size: var(--t-cifra-tarjeta); }

/* Títulos de sección: dos niveles según el peso del módulo en el objetivo campus-first */
.cp-home .cp-h2 { font-size: var(--t-h2-apoyo); line-height: 1.08; }
.cp-home #sedes .cp-h2, .cp-home #por-que .cp-h2 { font-size: var(--t-h2-principal); line-height: 1.04; }
.cp-home .cp-apoyo { font-size: var(--t-lead-2); line-height: 1.55; }

/* Sedes: el nombre del campus manda en la tarjeta; el conteo lo acompaña */
.cp-home .cp-sede h3 { font-size: var(--t-h3-tarjeta); line-height: 1.15; }
.cp-home .cp-sede__cuenta b { font-size: var(--t-cifra-tarjeta); }
.cp-home .cp-sede p { font-size: var(--t-cuerpo-tarjeta); line-height: 1.55; }
.cp-home .cp-sede__sedes, .cp-home .cp-sede__cuenta { font-size: var(--t-pequeno); }

/* Tipos de programa: misma pareja cifra + nombre que las sedes */
.cp-home .cp-nivel__n { font-size: var(--t-cifra-tarjeta); }
.cp-home .cp-nivel__nombre { font-size: var(--t-h3-tarjeta); }

/* ¿Por qué? — el numeral acompaña, el título del pilar manda */
.cp-home .cp-pilar__n { font-size: var(--t-numeral); line-height: 1; }
.cp-home .cp-pilar h3 { font-size: var(--t-h3-destacada); line-height: 1.12; }
.cp-home .cp-pilar p { font-size: var(--t-cuerpo-tarjeta); line-height: 1.6; }
.cp-home .cp-cifras__intro p:not(.cap-etiqueta) { font-size: var(--t-lead); line-height: 1.4; }
.cp-home .cp-cifras li b { font-size: var(--t-cifra); line-height: 1; }
.cp-home .cp-cifras li > span { font-size: var(--t-cuerpo-tarjeta); line-height: 1.5; }
.cp-home .cp-cifras li b span { font-size: inherit; }

/* Testimonios: la cita es el protagonista; los datos, apoyo */
.cp-home .cp-testimonio blockquote { font-size: var(--t-cita); line-height: 1.3; }
.cp-home .cp-datos h3 { font-size: var(--texto-etiqueta-capitulo); }
.cp-home .cp-datos li { font-size: var(--t-cuerpo-tarjeta); }

/* Noticias: títulos de tarjeta al mismo nivel que sedes y tipos */
.cp-home .cp-noticia h3 { font-size: var(--t-h3-tarjeta); line-height: 1.2; }
.cp-home .cp-noticia__meta, .cp-home .cp-noticia__leer { font-size: var(--t-pequeno); }

/* Preguntas: son títulos de nivel 3 → Panamericana, como el resto de los h3 */
.cp-home #preguntas .acordeon__boton .q { font-family: var(--fuente-titulos); font-weight: 400; font-size: var(--t-h3-lista); line-height: 1.25; }
.cp-home #preguntas .acordeon__panel p { font-size: var(--t-cuerpo); line-height: 1.6; }

/* Cierre: clímax de conversión en el nivel principal; el título del formulario, destacado */
.cp-home .cp-cta__mensaje h2 { font-size: var(--t-h2-principal); line-height: 1.04; }
.cp-home .cp-cta__mensaje > p:not(.cap-etiqueta):not(.cp-cta__alt) { font-size: var(--t-lead-2); line-height: 1.55; }
.cp-home .cp-form h3 { font-size: var(--t-h3-destacada); }

/* Menú desplegable: nombres de nivel/campus como lista */
.cp-home .cp-desp li a span { font-size: var(--t-h3-lista); }
.cp-home .cp-cifras__intro .cap-etiqueta { font-size: var(--texto-etiqueta-capitulo); }

/* Pie: logotipo de la Universidad Panamericana en blanco */
.pie-logo { display: inline-block; justify-self: start; }
.pie-logo img { display: block; height: 64px; width: auto; }
@media (max-width: 599px) { .pie-logo img { height: 56px; } }

/* WhatsApp flotante: visible durante todo el recorrido; en móvil sube cuando aparece la barra fija */
.cp-wa { position: fixed; right: 20px; bottom: calc(20px + env(safe-area-inset-bottom)); z-index: calc(var(--capa-fija) - 2); width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: #25D366; color: #fff; box-shadow: 0 6px 18px rgba(20, 33, 31, 0.28); transition: transform var(--duracion-base) var(--curva-estandar), bottom var(--duracion-base) var(--curva-estandar), box-shadow var(--duracion-base) var(--curva-estandar); }
.cp-wa:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(20, 33, 31, 0.34); }
.cp-wa:focus-visible { outline: var(--foco-anillo); outline-offset: 3px; }
@media (max-width: 899px) { .cp-fija--visible ~ .cp-wa { bottom: calc(84px + env(safe-area-inset-bottom)); } }
@media (min-width: 900px) { .cp-wa { right: 28px; bottom: 28px; width: 60px; height: 60px; } }
@media (prefers-reduced-motion: reduce) { .cp-wa { transition: none; } .cp-wa:hover { transform: none; } }
@media print { .cp-wa { display: none; } }

/* Logo colgante (2026-10-12): el logo apilado crece sin engordar la cabecera; su placa sobresale por debajo de la barra
   y vuelve a caber dentro al plegarse la cabecera o al abrir un panel del menú. */
.cp-cab__barra { min-height: 92px; }
.cp-cab__logo { --logo-alto: 104px; --logo-sale: 30px; position: relative; z-index: 1; align-self: flex-start; padding: 8px 10px 10px; margin: 0 auto calc(var(--logo-sale) * -1) -10px; background: var(--superficie-elevada); transition: padding var(--duracion-base) var(--curva-estandar), margin var(--duracion-base) var(--curva-estandar); }
.cp-cab__logo img { height: var(--logo-alto); }
.cp-cab__logo::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: var(--logo-sale); border: var(--borde-fino) solid var(--borde-suave); border-top: 0; box-shadow: 0 8px 14px -8px rgba(20, 33, 31, 0.22); pointer-events: none; transition: opacity var(--duracion-instante); }
.cp-cab--plegada .cp-cab__logo, .cp-cab--abierta .cp-cab__logo { align-self: center; padding: 0; margin: 0 auto 0 0; }
.cp-cab--plegada .cp-cab__logo img, .cp-cab--abierta .cp-cab__logo img { height: 50px; }
.cp-cab--plegada .cp-cab__logo::after, .cp-cab--abierta .cp-cab__logo::after { opacity: 0; }
@media (max-width: 599px) {
  .cp-cab__barra { min-height: 72px; }
  .cp-cab__logo { --logo-alto: 76px; --logo-sale: 18px; padding: 6px 8px 8px; margin-left: -8px; }
  .cp-cab--plegada .cp-cab__logo img, .cp-cab--abierta .cp-cab__logo img { height: 48px; }
}
/* Las migas bajan lo necesario para no quedar bajo la placa del logo colgante */
.cp-pagina .pg-migas { padding-top: 46px; }
@media (max-width: 599px) { .cp-pagina .pg-migas { padding-top: 34px; } }
/* Logo colgante sin placa: solo el logo sobresale de la barra */
.cp-cab__logo { background: none; }
.cp-cab__logo::after { display: none; }

/* Volver arriba (comentario 26): sobre el botón de WhatsApp; aparece tras recorrer una pantalla */
.cp-arriba { position: fixed; right: 26px; bottom: calc(88px + env(safe-area-inset-bottom)); z-index: calc(var(--capa-fija) - 2); width: 44px; height: 44px; border-radius: 50%; border: var(--borde-fino) solid var(--borde-suave); background: var(--superficie-elevada); color: var(--contenido-marca); display: grid; place-items: center; cursor: pointer; box-shadow: 0 4px 14px rgba(20, 33, 31, 0.16); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity var(--duracion-base) var(--curva-estandar), transform var(--duracion-base) var(--curva-estandar), visibility var(--duracion-base), bottom var(--duracion-base) var(--curva-estandar); }
.cp-arriba--visible { opacity: 1; visibility: visible; transform: none; }
.cp-arriba:hover { border-color: var(--borde-marca); }
.cp-arriba:focus-visible { outline: var(--foco-anillo); outline-offset: 3px; }
@media (max-width: 899px) { .cp-fija--visible ~ .cp-arriba { bottom: calc(152px + env(safe-area-inset-bottom)); } }
@media (min-width: 900px) { .cp-arriba { right: 36px; bottom: 100px; } }
@media (prefers-reduced-motion: reduce) { .cp-arriba { transition: none; } }
@media print { .cp-arriba { display: none; } }

/* Logo UP vertical (Roble en dorado, archivo oficial) en el pie */
.pie-logo img { height: 104px; }
@media (max-width: 599px) { .pie-logo img { height: 88px; } }
/* Logo más pequeño (2026-10-16, comentario del cliente): ya no sobresale de la barra; con el SVG se ve nítido a este tamaño */
.cp-cab__logo { --logo-alto: 72px; align-self: center; padding: 0; margin: 0 auto 0 0; }
.cp-cab__logo::after { display: none; }
@media (max-width: 599px) { .cp-cab__logo { --logo-alto: 54px; padding: 0; margin-left: 0; } }
.cp-pagina .pg-migas { padding-top: var(--espacio-bloque); }
@media (max-width: 599px) { .cp-pagina .pg-migas { padding-top: var(--espacio-bloque); } }
