/* ==========================================================================
   NAFA–UNPAM · Hoja de estilo 2026
   Reemplaza a Bootstrap 3 + style.css del tema anterior.
   No cargues el CSS viejo junto con este: se pelean.
   ========================================================================== */

/* --- 1. TOKENS ---------------------------------------------------------- */

:root {
  /* Color. Azul institucional dominante; el coral es señal, no decoración. */
  --azul:          #012951;   /* 14.6:1 sobre blanco */
  --azul-profundo: #011529;
  --azul-claro:    #01366a;
  --azul-velo:     #eef2f7;

  --coral:         #ea6645;   /* marca. Solo bloques grandes y gráficos. */
  --coral-texto:   #b8482a;   /* 5.25:1 — versión legible para texto y botones */
  --coral-velo:    #fdf1ee;

  --tinta:         #252525;   /* 15.3:1 */
  --tinta-suave:   #5c6470;   /* 5.98:1 — nunca uses gris más claro para texto */
  --linea:         #d8dce2;
  --linea-suave:   #e9edf1;
  --papel:         #ffffff;
  --papel-alt:     #f6f8fa;

  /* Tipografía. Escala modular 1.25 sobre base 16px. */
  --fuente-ui:    'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --fuente-texto: 'Source Serif 4', Georgia, 'Times New Roman', serif;

  --t-xs:   0.8125rem;
  --t-sm:   0.9375rem;
  --t-base: 1rem;
  --t-md:   1.125rem;
  --t-lg:   1.375rem;
  --t-xl:   1.75rem;
  --t-2xl:  2.25rem;
  --t-3xl:  3rem;

  --e1: 0.25rem;  --e2: 0.5rem;   --e3: 0.75rem;  --e4: 1rem;
  --e5: 1.5rem;   --e6: 2rem;     --e7: 3rem;     --e8: 4rem;

  --ancho:       72rem;
  --ancho-texto: 38rem;
  --radio:       3px;
}

/* --- 2. BASE ------------------------------------------------------------ */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--papel);
  color: var(--tinta);
  font-family: var(--fuente-texto);
  font-size: var(--t-base);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: var(--fuente-texto);
  color: var(--azul);
  font-weight: 600;
  line-height: 1.2;
  margin: 0 0 var(--e4);
  text-wrap: balance;
}
h1 { font-size: var(--t-2xl); letter-spacing: -0.015em; }
h2 { font-size: var(--t-xl); }
h3 { font-size: var(--t-lg); }
h4 { font-size: var(--t-md); }
@media (min-width: 48rem) {
  h1 { font-size: var(--t-3xl); }
  h2 { font-size: var(--t-2xl); }
}

p { margin: 0 0 var(--e4); max-width: var(--ancho-texto); }

a { color: var(--coral-texto); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--azul); }

img { max-width: 100%; height: auto; display: block; }

:focus-visible { outline: 3px solid var(--coral-texto); outline-offset: 2px; border-radius: 2px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Página aún no publicada: visible, sin enlace. Lo genera nafa_link(). */
[data-pendiente] { opacity: 0.5; cursor: default; }

/* --- 3. ESTRUCTURA ------------------------------------------------------ */

.contenedor { width: 100%; max-width: var(--ancho); margin-inline: auto; padding-inline: var(--e5); }

.seccion { padding-block: var(--e7); }
.seccion--alt  { background: var(--papel-alt); }
.seccion--azul { background: var(--azul); color: #fff; }
.seccion--azul h2, .seccion--azul h3 { color: #fff; }
@media (min-width: 48rem) { .seccion { padding-block: var(--e8); } }

.seccion__entrada { font-size: var(--t-md); color: var(--tinta-suave); margin-bottom: var(--e6); }

.saltar-al-contenido {
  position: absolute; left: -9999px; z-index: 999;
  background: var(--azul); color: #fff; padding: var(--e3) var(--e4);
}
.saltar-al-contenido:focus { left: var(--e4); top: var(--e4); color: #fff; }

/* --- 4. BARRA SUPERIOR -------------------------------------------------- */

.utilidad { background: var(--azul-profundo); font-family: var(--fuente-ui); font-size: var(--t-xs); }
.utilidad__lista {
  list-style: none; margin: 0; padding: var(--e2) 0;
  display: flex; gap: var(--e5);
  overflow-x: auto; white-space: nowrap;
}
@media (min-width: 48rem) { .utilidad__lista { justify-content: flex-end; } }
.utilidad a, .utilidad span { color: #c9d6e5; text-decoration: none; }
.utilidad a:hover { color: #fff; text-decoration: underline; }

/* --- 5. CABECERA Y NAVEGACIÓN ------------------------------------------ */
/* Dos franjas: marca arriba, menú debajo. En escritorio la franja de la
   marca se va al hacer scroll y el menú queda fijo (top negativo).
   En pantallas menores de 75rem (1200px), botón "Menú" y acordeón.       */

.cabecera {
  background: var(--papel); border-bottom: 1px solid var(--linea);
  position: sticky; top: 0; z-index: 100;
}

.cabecera__barra { display: flex; align-items: center; gap: var(--e3); min-height: 4.5rem; }

.marca { display: flex; align-items: center; gap: var(--e3); text-decoration: none; margin-right: auto; min-width: 0; }
.marca img { width: 2.5rem; height: 2.5rem; flex-shrink: 0; }     /* sello: 40px en móvil */
@media (min-width: 48rem) { .marca img { width: 3.5rem; height: 3.5rem; } }   /* 56px desde tableta */

/* Teléfonos: todo en una fila sin partir "NAFA–UNPAM" */
@media (max-width: 29.99rem) {
  .cabecera__barra { gap: var(--e2); }
  .marca { gap: var(--e2); }
  .cabecera__barra .cabecera__cta { padding: var(--e2) var(--e3); font-size: var(--t-xs); }
  .nav-boton { padding: var(--e2); font-size: var(--t-xs); }
}
.marca__texto  { font-family: var(--fuente-ui); line-height: 1.15; }
.marca__sigla  { display: block; font-size: var(--t-base); font-weight: 700; color: var(--azul); letter-spacing: 0.02em; white-space: nowrap; }
@media (min-width: 30rem) { .marca__sigla { font-size: var(--t-md); } }
.marca__nombre { display: none; font-size: var(--t-xs); color: var(--tinta-suave); }
@media (min-width: 40rem) { .marca__nombre { display: block; } }

.cabecera__barra .cabecera__cta { display: none; padding: var(--e2) var(--e4); flex-shrink: 0; }
@media (min-width: 22rem) { .cabecera__barra .cabecera__cta { display: inline-block; } }

.nav-boton {
  flex-shrink: 0;
  font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600;
  background: none; border: 1px solid var(--linea); border-radius: var(--radio);
  color: var(--azul); padding: var(--e2) var(--e3); cursor: pointer;
}

.nav { font-family: var(--fuente-ui); }
.nav__lista, .nav__sublista { list-style: none; margin: 0; padding: 0; }
.nav__fila { display: flex; align-items: center; justify-content: space-between; }
.nav__enlace { color: var(--azul); font-weight: 600; text-decoration: none; }
.nav__subenlace { text-decoration: none; }

.nav__abrir {
  flex-shrink: 0; background: none; border: 0; cursor: pointer;
  color: var(--azul); width: 2.75rem; height: 2.75rem;
  display: grid; place-items: center;
}
.nav__abrir::before {
  content: ''; width: 0.45rem; height: 0.45rem;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg); margin-top: -0.2rem;
  transition: transform 0.15s ease;
}
.nav__item[data-abierto="true"] .nav__abrir::before { transform: rotate(225deg); margin-top: 0.2rem; }

/* Móvil y tableta */
@media (max-width: 74.99rem) {
  .nav {
    display: none;
    max-height: calc(100dvh - 5rem); overflow-y: auto;
    border-top: 1px solid var(--linea-suave); padding-bottom: var(--e5);
  }
  .nav[data-abierto="true"] { display: block; }
  .nav__item { border-bottom: 1px solid var(--linea-suave); }
  .nav__enlace { display: block; padding: var(--e3) 0; font-size: var(--t-base); }
  .nav__sublista { display: none; padding: 0 0 var(--e3) var(--e4); }
  .nav__item[data-abierto="true"] .nav__sublista { display: block; }
  .nav__subenlace { display: block; padding: var(--e2) 0; font-size: var(--t-sm); color: var(--tinta-suave); }
}

/* Escritorio */
@media (min-width: 75rem) {
  .cabecera { top: -4.5rem; }                /* la franja de la marca sale; el menú queda */
  .cabecera__barra { height: 4.5rem; }
  .nav-boton { display: none; }

  .nav { border-top: 1px solid var(--linea-suave); }
  .nav__lista { display: flex; justify-content: space-between; }
  .nav__lista--corta { justify-content: flex-start; gap: var(--e7); }      /* pocos menús: juntos a la izquierda */
  .nav__lista--corta .nav__item .nav__sublista { left: calc(-1 * var(--e4)); right: auto; }
  .nav__item  { position: relative; }
  .nav__enlace {
    display: block; padding: var(--e3) 0;
    font-size: var(--t-sm); border-bottom: 2px solid transparent;
  }
  .nav__abrir { width: 1.25rem; height: 1.25rem; margin-left: var(--e1); }
  .nav__abrir::before { width: 0.35rem; height: 0.35rem; }

  .nav__item:hover .nav__enlace,
  .nav__item[data-abierto="true"] .nav__enlace,
  .nav__item[data-actual] .nav__enlace { border-bottom-color: var(--coral); }

  .nav__sublista {
    position: absolute; top: 100%; left: calc(-1 * var(--e4));
    min-width: 17rem; padding: var(--e2) 0;
    background: var(--papel); border: 1px solid var(--linea); border-top: 2px solid var(--coral);
    box-shadow: 0 8px 24px rgba(1, 41, 81, 0.1);
    opacity: 0; visibility: hidden; transition: opacity 0.12s ease;
  }
  .nav__item:nth-last-child(-n+2) .nav__sublista { left: auto; right: calc(-1 * var(--e4)); }

  .nav__item:hover .nav__sublista,
  .nav__item:focus-within .nav__sublista,
  .nav__item[data-abierto="true"] .nav__sublista { opacity: 1; visibility: visible; }

  .nav__subenlace { display: block; padding: var(--e2) var(--e4); font-size: var(--t-sm); color: var(--tinta); }
  a.nav__subenlace:hover { background: var(--azul-velo); color: var(--azul); }
}

/* --- 6. PORTADA: EL REGISTRO "EMPIEZA AQUÍ" ---------------------------- */

.portada { background: var(--azul); color: #fff; padding-block: var(--e7) var(--e8); }
.portada__titulo { color: #fff; max-width: 20ch; font-size: var(--t-2xl); letter-spacing: -0.02em; }
@media (min-width: 48rem) { .portada__titulo { font-size: var(--t-3xl); } }
.portada__entrada { font-size: var(--t-md); color: #c9d6e5; max-width: 46ch; margin-bottom: var(--e6); }

.registro { background: var(--papel); border-radius: var(--radio); overflow: hidden; box-shadow: 0 12px 40px rgba(1, 21, 41, 0.25); }
.registro__encabezado {
  font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 700; color: var(--azul);
  padding: var(--e4) var(--e5); border-bottom: 2px solid var(--coral); margin: 0; max-width: none;
}
.registro__fila {
  display: flex; align-items: baseline; gap: var(--e4);
  padding: var(--e4) var(--e5); border-bottom: 1px solid var(--linea-suave);
  text-decoration: none; color: inherit;
}
.registro__fila:last-child { border-bottom: 0; }
a.registro__fila:hover { background: var(--azul-velo); }
a.registro__fila:hover .registro__titulo { color: var(--coral-texto); }
.registro__cuerpo { flex: 1; }
.registro__titulo { display: block; font-family: var(--fuente-ui); font-size: var(--t-base); font-weight: 600; color: var(--azul); margin-bottom: var(--e1); }
.registro__pista  { display: block; font-size: var(--t-sm); color: var(--tinta-suave); line-height: 1.45; }
.registro__marca {
  flex-shrink: 0; align-self: center; width: 0.5rem; height: 0.5rem;
  border-right: 2px solid var(--coral-texto); border-top: 2px solid var(--coral-texto);
  transform: rotate(45deg);
}

/* --- 6b. MAPA, FOTOS E IMÁGENES DE FICHAS ------------------------------ */
/* Mapa: solo en pantallas anchas. En el teléfono el registro va primero y solo. */

.portada__rejilla { display: grid; gap: var(--e6); align-items: start; }
.portada__rejilla > * { min-width: 0; }
.portada__mapa { display: none; margin: 0; }
@media (min-width: 62rem) {
  .portada__rejilla { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: var(--e6) var(--e7); align-items: center; }
  .portada__mapa { display: block; }
}
.portada__mapa img { width: 100%; max-width: 27rem; height: auto; display: block; margin-inline: auto; }
.portada__leyenda { justify-content: center; }
.portada__texto .portada__entrada { margin-bottom: 0; }

/* "Empieza aquí": a lo ancho bajo el título y el mapa; filas de dos en dos desde 48rem.
   Una última fila sin pareja ocupa el ancho entero. */
.portada__registro { grid-column: 1 / -1; }
@media (min-width: 48rem) {
  .registro__filas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .registro__filas > .registro__fila:nth-child(odd) { border-right: 1px solid var(--linea-suave); }
  .registro__filas > .registro__fila:last-child:nth-child(odd) { grid-column: 1 / -1; border-right: 0; }
  .registro__filas > .registro__fila:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
}
.portada__leyenda {
  display: flex; flex-wrap: wrap; gap: var(--e2) var(--e5); margin-top: var(--e3);
  font-family: var(--fuente-ui); font-size: var(--t-xs); color: #c9d6e5;
}
.portada__leyenda span::before {
  content: ''; display: inline-block; width: .55rem; height: .55rem; border-radius: 50%;
  margin-right: .45rem; vertical-align: 1px;
}
.ley-pais::before   { background: var(--coral); }
.ley-estado::before { background: #ffffff; }

/* Texto y foto lado a lado (solo cuando la foto existe) */
.dos-col { display: grid; gap: var(--e6); align-items: center; }
.dos-col > * { min-width: 0; }
@media (min-width: 56rem) { .dos-col { grid-template-columns: 1fr 1fr; gap: var(--e7); } }

.foto { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radio); }

/* Fichas con imagen arriba */
.ficha--imagen { padding: 0; overflow: hidden; }
.ficha__media { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.ficha__media svg { display: block; width: 100%; height: 100%; }
.ficha__media--serie {
  display: grid; place-items: center;
  background: radial-gradient(circle at 30% 30%, rgba(201, 214, 229, .22), transparent 45%),
              linear-gradient(135deg, var(--azul-claro), var(--azul-profundo));
}
.ficha__media--serie img { width: 5.5rem; height: 5.5rem; }
.ficha__cuerpo { padding: var(--e5); display: flex; flex-direction: column; flex: 1; }

/* --- 7. LA ESCALERA ----------------------------------------------------- */
/* En escritorio, cada peldaño arranca más alto que el anterior.           */

.escalera { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e4); }
.peldano { border-left: 3px solid var(--azul); padding: var(--e2) 0 var(--e2) var(--e5); }
.peldano__numero { display: block; font-family: var(--fuente-ui); font-weight: 700; font-size: var(--t-sm); color: var(--coral-texto); margin-bottom: var(--e1); }
.peldano h3 { font-size: var(--t-md); margin-bottom: var(--e2); }
.peldano p  { font-size: var(--t-sm); color: var(--tinta-suave); margin-bottom: var(--e3); }
.peldano .precio { display: block; font-family: var(--fuente-ui); font-weight: 700; color: var(--azul); margin-bottom: var(--e3); }
.peldano .precio small { font-weight: 500; color: var(--tinta-suave); }
.peldano__enlace { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; }

@media (min-width: 68rem) {
  .escalera { grid-template-columns: repeat(5, 1fr); gap: var(--e3); align-items: stretch; }
  .peldano { border-left: 0; border-top: 3px solid var(--azul); background: var(--azul-velo); padding: var(--e4); }
  .peldano:nth-child(1) { margin-top: 8rem; }
  .peldano:nth-child(2) { margin-top: 6rem; }
  .peldano:nth-child(3) { margin-top: 4rem; }
  .peldano:nth-child(4) { margin-top: 2rem; }
}

/* --- 8. COMPONENTES ----------------------------------------------------- */

.boton {
  display: inline-block; font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600;
  text-decoration: none; padding: var(--e3) var(--e5);
  border-radius: var(--radio); border: 2px solid transparent; cursor: pointer;
}
.boton--principal { background: var(--coral-texto); color: #fff; }
a.boton--principal:hover { background: #9c3d23; color: #fff; }
.boton--linea { border-color: var(--azul); color: var(--azul); background: transparent; }
a.boton--linea:hover { background: var(--azul); color: #fff; }
.boton--blanco { background: #fff; color: var(--azul); }
a.boton--blanco:hover { background: var(--azul-velo); color: var(--azul); }
.boton--claro { border-color: #fff; color: #fff; background: transparent; }
a.boton--claro:hover { background: #fff; color: var(--azul); }
.botones { display: flex; flex-wrap: wrap; gap: var(--e3); }
.centrado .botones { justify-content: center; }

.rejilla { display: grid; gap: var(--e5); }
@media (min-width: 40rem) { .rejilla--2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 56rem) { .rejilla--3 { grid-template-columns: repeat(3, 1fr); } }

.ficha { border: 1px solid var(--linea); border-top: 3px solid var(--azul); padding: var(--e5); background: var(--papel); display: flex; flex-direction: column; }
.ficha h3 { margin-bottom: var(--e2); }
.ficha p { font-size: var(--t-sm); color: var(--tinta-suave); margin-bottom: var(--e4); }
.ficha .boton { margin-top: auto; align-self: flex-start; }

.tabla { width: 100%; border-collapse: collapse; font-size: var(--t-sm); }
.tabla th, .tabla td { text-align: left; padding: var(--e3) var(--e4); border-bottom: 1px solid var(--linea); }
.tabla th { font-family: var(--fuente-ui); color: var(--azul); font-weight: 700; }
.tabla td:last-child, .tabla th:last-child { text-align: right; white-space: nowrap; }
.tabla-envoltura { overflow-x: auto; }

.aviso { border-left: 3px solid var(--coral-texto); background: var(--coral-velo); padding: var(--e4) var(--e5); font-size: var(--t-sm); }
.aviso p { max-width: none; }
.aviso p:last-child { margin-bottom: 0; }

/* --- 9. PIE DE PÁGINA --------------------------------------------------- */

.pie { background: var(--azul-profundo); color: #b8c6d8; padding-block: var(--e7) var(--e5); font-size: var(--t-sm); }
.pie a { color: #dfe7f0; text-decoration: none; }
.pie a:hover { color: #fff; text-decoration: underline; }
.pie h3 { color: #fff; font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 700; margin-bottom: var(--e3); }
.pie__sello { display: block; width: 4.5rem; height: 4.5rem; margin-bottom: var(--e3); }
.pie p { margin-bottom: var(--e3); }
.pie ul { list-style: none; margin: 0; padding: 0; }
.pie li { margin-bottom: var(--e2); }
.pie__rejilla { display: grid; gap: var(--e6) var(--e5); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pie__rejilla > :first-child { grid-column: 1 / -1; }   /* en el teléfono, el sello y el nombre a lo ancho; los enlaces, de dos en dos */
@media (min-width: 62rem) {
  .pie__rejilla { grid-template-columns: 1.4fr repeat(var(--columnas, 4), 1fr); gap: var(--e6); }
  .pie__rejilla > :first-child { grid-column: auto; }
}
.pie__legal { margin-top: var(--e4); padding-top: var(--e4); border-top: 1px solid rgba(255, 255, 255, 0.14); font-size: var(--t-xs); color: #8fa2b8; }
.pie__legal p { max-width: none; margin-bottom: var(--e2); }

/* --- 9b. ESTADOS Y PAÍSES ---------------------------------------------- */

.lista-jurisdicciones { list-style: none; margin: 0 0 var(--e4); padding: 0; columns: 2; column-gap: var(--e5); }
@media (min-width: 48rem) { .lista-jurisdicciones--ancha { columns: 4; } }
.lista-jurisdicciones li { break-inside: avoid; border-bottom: 1px solid var(--linea-suave); }
.lista-jurisdicciones a, .lista-jurisdicciones span {
  display: block; padding: var(--e2) 0;
  font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600;
  color: var(--azul); text-decoration: none;
}
.lista-jurisdicciones a:hover { color: var(--coral-texto); }

.enlace-fuerte { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; }

.migas { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); margin-bottom: var(--e4); }
.migas ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--e2); }
.migas li + li::before { content: '/'; margin-right: var(--e2); color: var(--linea); }
.migas a { color: var(--tinta-suave); }

.jurisdiccion__entrada { font-size: var(--t-md); }
.jurisdiccion h2 { margin-top: var(--e7); }
.jurisdiccion h3 { font-size: var(--t-md); margin-top: var(--e5); }
.jurisdiccion ul { max-width: var(--ancho-texto); padding-left: 1.2rem; }
.jurisdiccion li { margin-bottom: var(--e2); }
.jurisdiccion .lista-jurisdicciones { padding-left: 0; }   /* alineadas con los títulos */
.jurisdiccion .lista-jurisdicciones li { margin-bottom: 0; }

.datos {
  display: grid; gap: 0; margin: var(--e6) 0 0; max-width: 44rem;
  border: 1px solid var(--linea); border-top: 3px solid var(--azul);
}
.datos div { display: flex; justify-content: space-between; gap: var(--e4); padding: var(--e3) var(--e4); border-bottom: 1px solid var(--linea-suave); }
.datos div:last-child { border-bottom: 0; }
.datos dt { font-family: var(--fuente-ui); font-size: var(--t-sm); color: var(--tinta-suave); }
.datos dd { margin: 0; font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 700; color: var(--azul); text-align: right; }

.fuentes { font-size: var(--t-sm); }
.fuentes a { word-break: break-word; }

.borrador { background: var(--coral-velo); border-bottom: 1px solid #f2d3c9; padding: var(--e3) 0; font-family: var(--fuente-ui); font-size: var(--t-sm); line-height: 1.5; }
.borrador strong { color: var(--coral-texto); }

.revisor { font-family: var(--fuente-ui); font-size: var(--t-sm); color: var(--tinta-suave); margin: var(--e3) 0 0; max-width: 44rem; }
.revisor a { font-weight: 600; }
.jurisdiccion h2.region { font-size: var(--t-lg); margin: var(--e6) 0 var(--e3); }

.jurisdiccion .universidades { columns: 2; column-gap: var(--e6); }
@media (max-width: 39.99rem) { .jurisdiccion .universidades { columns: 1; } }
.jurisdiccion .universidades li { break-inside: avoid; }
.universidades__nota { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); }

.jurisdiccion .avanzar { list-style: none; padding: 0; max-width: 44rem; border-top: 1px solid var(--linea-suave); }
.jurisdiccion .avanzar li { margin: 0; padding: var(--e3) 0; border-bottom: 1px solid var(--linea-suave); }
.avanzar__estado { display: block; font-family: var(--fuente-ui); font-weight: 700; color: var(--azul); text-decoration: none; }
a.avanzar__estado:hover { color: var(--coral-texto); }
.avanzar__nota { display: block; font-size: var(--t-sm); color: var(--tinta-suave); margin-top: var(--e1); }

.cierre-jurisdiccion { margin-top: var(--e7); padding: var(--e5); background: var(--azul-velo); border-left: 3px solid var(--azul); }
.cierre-jurisdiccion h2 { margin-top: 0; font-size: var(--t-lg); }

/* --- 9c. SOLICITAR EVALUACIÓN ------------------------------------------- */

/* Franja del título para páginas interiores */
.encabezado-pagina { background: var(--azul-velo); padding-block: var(--e5) var(--e6); border-bottom: 1px solid var(--linea-suave); }
.encabezado-pagina h1 { margin-bottom: var(--e3); max-width: 30ch; }
.encabezado-pagina .entrada { font-size: var(--t-md); color: var(--tinta-suave); max-width: 40rem; margin: 0; }

.solicitar { padding-block: var(--e6) var(--e8); }
@media (min-width: 62rem) { .solicitar { padding-block: var(--e7) var(--e8); } }
.solicitar__rejilla { display: grid; gap: var(--e7); }
.solicitar__rejilla > * { min-width: 0; }
.solicitar__lateral { order: -1; }                          /* en el teléfono, el resumen va primero */
@media (min-width: 62rem) {
  .solicitar__rejilla { grid-template-columns: minmax(0, 1fr) 23rem; gap: var(--e8); align-items: start; }
  .solicitar__lateral { order: 0; position: sticky; top: 4.5rem; }
}
.solicitar h2 { font-size: var(--t-xl); margin-bottom: var(--e5); }

/* Pasos: línea de tiempo vertical */
.pasos { list-style: none; margin: 0; padding: 0; counter-reset: paso; }
.paso { position: relative; padding: 0 0 var(--e6) 3.75rem; }
.paso::before {
  counter-increment: paso; content: counter(paso);
  position: absolute; left: 0; top: -0.15rem; width: 2.5rem; height: 2.5rem; border-radius: 50%;
  background: var(--azul); color: #fff; display: grid; place-items: center;
  font-family: var(--fuente-ui); font-weight: 700; font-size: var(--t-base);
}
.paso::after { content: ''; position: absolute; left: calc(1.25rem - 1px); top: 2.75rem; bottom: 0.4rem; width: 2px; background: var(--linea); }
.paso:last-child { padding-bottom: 0; }
.paso:last-child::after { display: none; }
.paso:first-child::before { background: var(--coral-texto); }
.paso__meta { display: block; font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; color: var(--coral-texto); letter-spacing: .03em; margin-bottom: var(--e1); }
.paso h3 { font-size: var(--t-lg); margin-bottom: var(--e2); }
.paso p { margin-bottom: var(--e3); }
.paso .boton { margin-top: var(--e1); }
.paso .paso__alterno { font-size: var(--t-sm); color: var(--tinta-suave); margin: var(--e3) 0 0; }
.paso .aviso { margin-top: var(--e4); max-width: 34rem; }
/* Inscripción a cursos: enlaces de pago de LawPay, precio público y de miembro */
.paso .pagos { list-style: none; padding: 0; margin: var(--e2) 0 0; }
.paso .pagos li { margin: 0 0 var(--e2); }
.paso .pagos__nota { font-size: var(--t-sm); color: var(--tinta-suave); margin: var(--e2) 0 0; max-width: 34rem; }
.paso .pagos__cuotas { margin: var(--e3) 0 0; max-width: 34rem; }
/* Pago en cuotas con Affirm: dos botones y el aviso legal de Affirm, en letra pequeña */
.pago__botones { display: flex; flex-wrap: wrap; gap: var(--e3); }
.aviso-affirm { font-size: var(--t-xs); line-height: 1.5; color: var(--tinta-suave); margin: var(--e3) 0 0; max-width: 34rem; }
.paso .enlace-fuerte { display: inline-block; margin-top: var(--e1); }

.lista-docs { list-style: none; margin: var(--e2) 0 var(--e3); padding: 0; display: grid; gap: var(--e2); max-width: 34rem; }
@media (min-width: 40rem) { .lista-docs { grid-template-columns: 1fr 1fr; } }
.lista-docs li {
  position: relative; display: flex; align-items: center; line-height: 1.4;
  font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; color: var(--azul);
  background: var(--papel-alt); border: 1px solid var(--linea-suave); padding: var(--e3) var(--e3) var(--e3) 2.4rem;
}
.lista-docs li::before {
  content: ''; position: absolute; left: 0.95rem; top: 50%; width: 0.8rem; height: 1rem; margin-top: -0.5rem;
  border: 2px solid var(--azul); border-radius: 1px;
  background: linear-gradient(var(--azul), var(--azul)) center 35% / 0.4rem 2px no-repeat;
}

/* Tarjeta resumen */
.resumen { background: var(--papel); border: 1px solid var(--linea); border-top: 3px solid var(--coral); padding: var(--e5); box-shadow: 0 10px 30px rgba(1, 41, 81, 0.08); }
.resumen__etiqueta { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; color: var(--tinta-suave); margin: 0 0 var(--e2); letter-spacing: .03em; }
.resumen h2 { font-size: var(--t-lg); margin-bottom: var(--e3); }
.resumen__precio { font-family: var(--fuente-ui); font-size: var(--t-xl); font-weight: 700; color: var(--azul); margin: 0 0 var(--e4); }
.resumen__precio small { font-size: var(--t-xs); font-weight: 500; color: var(--tinta-suave); }
.resumen ul { list-style: none; margin: 0 0 var(--e5); padding: var(--e4) 0 0; border-top: 1px solid var(--linea-suave); }
.resumen li { position: relative; padding-left: 1.6rem; font-size: var(--t-sm); margin-bottom: var(--e2); line-height: 1.5; }
.resumen li::before {
  content: ''; position: absolute; left: 0.2rem; top: 0.3rem; width: 0.4rem; height: 0.75rem;
  border-right: 2px solid var(--coral-texto); border-bottom: 2px solid var(--coral-texto); transform: rotate(45deg);
}
.resumen .boton { display: block; width: 100%; text-align: center; padding-block: var(--e4); font-size: var(--t-base); }
.resumen__nota { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); text-align: center; margin: var(--e3) auto 0; }
.resumen__nota svg { width: .7rem; height: .8rem; vertical-align: -1px; margin-right: .3rem; }
.resumen__ayuda { margin-top: var(--e5); padding-top: var(--e4); border-top: 1px solid var(--linea-suave); font-size: var(--t-sm); }
.resumen__ayuda p { margin: 0; }
.resumen__ayuda strong { font-family: var(--fuente-ui); color: var(--azul); display: block; margin-bottom: var(--e1); font-size: var(--t-sm); }

/* Preguntas frecuentes */
.faq { margin-top: var(--e8); }
.faq details { border-bottom: 1px solid var(--linea); max-width: 44rem; }
.faq details:first-of-type { border-top: 1px solid var(--linea); }
.faq summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: var(--e4);
  padding: var(--e4) 0; font-family: var(--fuente-ui); font-weight: 600; color: var(--azul); font-size: var(--t-base);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: ''; flex-shrink: 0; width: .5rem; height: .5rem; margin-right: .3rem;
  border-right: 2px solid var(--coral-texto); border-bottom: 2px solid var(--coral-texto);
  transform: rotate(45deg); transition: transform .15s;
}
.faq details[open] summary::after { transform: rotate(225deg); }
.faq details p { padding-bottom: var(--e4); margin: 0; }

/* --- 9d. CONTACTO ------------------------------------------------------- */

.contacto { padding-block: var(--e6) var(--e8); }
@media (min-width: 62rem) { .contacto { padding-block: var(--e7) var(--e8); } }
.contacto__rejilla { display: grid; gap: var(--e7); }
.contacto__rejilla > * { min-width: 0; }
.contacto__lateral { order: -1; }                           /* en el teléfono, los datos van primero */
@media (min-width: 62rem) {
  .contacto__rejilla { grid-template-columns: minmax(0, 1fr) 23rem; gap: var(--e8); align-items: start; }
  .contacto__lateral { order: 0; position: sticky; top: 4.5rem; }
}
.contacto h2 { font-size: var(--t-xl); margin-bottom: var(--e3); }
.contacto__intro { color: var(--tinta-suave); margin-bottom: var(--e5); }

/* Temas: a quién escribir */
.temas { display: grid; gap: var(--e4); }
@media (min-width: 40rem) { .temas { grid-template-columns: 1fr 1fr; } }
.tema { border-top: 2px solid var(--azul); padding-top: var(--e3); display: flex; flex-direction: column; }
.tema h3 { font-size: var(--t-md); margin-bottom: var(--e2); }
.tema p { font-size: var(--t-sm); color: var(--tinta-suave); margin-bottom: var(--e3); }
.tema__acciones { margin-top: auto; display: flex; flex-wrap: wrap; gap: var(--e2) var(--e4); align-items: baseline; }
.tema__correo { font-family: var(--fuente-ui); font-size: var(--t-sm); color: var(--azul); }
.contacto__aviso { margin-top: var(--e6); max-width: 44rem; }

/* Ficha con los datos */
.ficha-contacto { background: var(--papel); border: 1px solid var(--linea); border-top: 3px solid var(--coral); padding: var(--e5); box-shadow: 0 10px 30px rgba(1, 41, 81, 0.08); }
.ficha-contacto h2 { font-size: var(--t-lg); margin-bottom: var(--e4); }
.ficha-contacto dl { margin: 0 0 var(--e5); }
.ficha-contacto dl > div { padding: var(--e3) 0; border-top: 1px solid var(--linea-suave); }
.ficha-contacto dt { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; color: var(--tinta-suave); letter-spacing: .03em; margin-bottom: var(--e1); }
.ficha-contacto dd { margin: 0; font-size: var(--t-sm); }
.ficha-contacto dd > a { display: block; font-family: var(--fuente-ui); font-weight: 600; font-size: var(--t-base); color: var(--azul); text-decoration: none; font-variant-numeric: tabular-nums; }
.ficha-contacto dd > a:hover { text-decoration: underline; }
.ficha-contacto address { font-style: normal; }
.ficha-contacto dd > a.ficha-contacto__mapa { display: inline-block; margin-top: var(--e1); font-size: var(--t-sm); color: var(--coral-texto); text-decoration: underline; }
.ficha-contacto__botones { display: grid; gap: var(--e2); }
.ficha-contacto__botones .boton { text-align: center; }

/* --- 9e. NOSOTROS Y FACULTAD -------------------------------------------- */

/* Las anclas (#mision, #historia…) no quedan tapadas por la cabecera fija */
section[id], .profesor[id] { scroll-margin-top: 5.5rem; }

/* "En esta página" bajo el título */
.en-pagina { margin-top: var(--e5); font-family: var(--fuente-ui); }
.en-pagina ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--e2); }
.en-pagina a, .en-pagina span {
  display: inline-block; padding: var(--e1) var(--e3); font-size: var(--t-xs); font-weight: 600;
  color: var(--azul); background: var(--papel); border: 1px solid var(--linea); border-radius: 999px; text-decoration: none;
}
.en-pagina a:hover { border-color: var(--azul); background: var(--azul); color: #fff; }

/* Quiénes somos: NAFA y UNPAM */
.orgs { display: grid; gap: var(--e5); }
.orgs > * { min-width: 0; }
@media (min-width: 56rem) { .orgs { grid-template-columns: 1fr 1fr; } }
.org { border: 1px solid var(--linea); border-top: 4px solid var(--azul); padding: var(--e5) var(--e5) var(--e6); display: flex; flex-direction: column; }
.org--unpam { border-top-color: var(--coral); }
.org__sigla { font-family: var(--fuente-ui); font-size: var(--t-2xl); font-weight: 700; color: var(--azul); letter-spacing: .02em; line-height: 1; margin-bottom: var(--e3); }
.org h3 { font-size: var(--t-md); margin-bottom: var(--e1); }
.org__en { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); margin-bottom: var(--e4); }
.org h3 + p:not(.org__en) { margin-top: var(--e3); }
.org__lista { list-style: none; margin: 0 0 var(--e5); padding: 0; }
.org__lista li { position: relative; padding-left: 1.5rem; font-size: var(--t-sm); margin-bottom: var(--e2); line-height: 1.5; }
.org__lista li::before {
  content: ''; position: absolute; left: .15rem; top: .3rem; width: .4rem; height: .75rem;
  border-right: 2px solid var(--coral-texto); border-bottom: 2px solid var(--coral-texto); transform: rotate(45deg);
}
.org .enlace-fuerte { margin-top: auto; }
.nosotros__aviso { margin-top: var(--e6); max-width: 44rem; }

/* Misión, sobre azul */
.sobretitulo { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: var(--e3); }
.seccion--azul .sobretitulo { color: #f3a48f; }        /* coral aclarado: 7.3:1 sobre el azul */
.mision__frase { font-size: var(--t-xl); line-height: 1.3; color: #fff; max-width: 34ch; margin-bottom: var(--e7); text-wrap: balance; }
.mision__frase:has(+ .mision__texto) { margin-bottom: var(--e4); }
.mision__texto { font-size: var(--t-md); color: #dfe7f0; max-width: 40rem; margin-bottom: var(--e7); }
@media (min-width: 48rem) { .mision__frase { font-size: var(--t-2xl); } }
.mision__frentes { margin-bottom: var(--e7); }
.frente { border-top: 1px solid rgba(255, 255, 255, .25); padding-top: var(--e4); }
.frente h3 { font-size: var(--t-md); margin-bottom: var(--e2); }
.frente p { font-size: var(--t-sm); color: #c9d6e5; margin: 0; }
.vision { border-left: 3px solid var(--coral); padding-left: var(--e5); max-width: 44rem; }
.vision p { color: #dfe7f0; margin: 0; }
.vision .vision__firma { margin-top: var(--e3); font-style: italic; font-size: var(--t-sm); color: #c9d6e5; }

/* Historia: línea de tiempo */
.linea-tiempo { list-style: none; margin: 0; padding: 0; position: relative; max-width: 46rem; }
.linea-tiempo::before { content: ''; position: absolute; left: .45rem; top: .6rem; bottom: .6rem; width: 2px; background: var(--linea); }
.hito { position: relative; padding: 0 0 var(--e6) 2.25rem; }
.hito:last-child { padding-bottom: 0; }
.hito::before {
  content: ''; position: absolute; left: 0; top: .35rem; width: 1rem; height: 1rem; border-radius: 50%;
  background: var(--azul); box-shadow: 0 0 0 4px var(--papel);
}
.hito--unpam::before { background: var(--coral); }
.hito--ambas::before { background: var(--azul); border: 3px solid var(--coral); }
.hito__cabeza { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--e1) var(--e3); margin-bottom: var(--e1); line-height: 1.2; }
.hito__anio { font-family: var(--fuente-ui); font-size: var(--t-lg); font-weight: 700; color: var(--azul); font-variant-numeric: tabular-nums; }
.hito__org { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .04em; color: var(--tinta-suave); }
.hito__texto { margin: 0; }
@media (min-width: 48rem) {
  .linea-tiempo::before { left: 8.45rem; }
  .hito { display: grid; grid-template-columns: 7rem 1fr; gap: 0 3.25rem; padding-left: 0; }
  .hito::before { left: 8rem; }
  .hito__org { white-space: nowrap; }
  .hito__cabeza { flex-direction: column; align-items: flex-end; gap: 0; margin: 0; text-align: right; }
  .hito__anio { line-height: 1.2; }
}

/* Retrato: foto redonda o iniciales */
.retrato { flex-shrink: 0; width: 4.5rem; height: 4.5rem; border-radius: 50%; object-fit: cover; }
.retrato--iniciales {
  display: grid; place-items: center; background: var(--azul); color: #fff;
  font-family: var(--fuente-ui); font-weight: 700; font-size: var(--t-md); letter-spacing: .04em;
}

/* Liderazgo */
.personas { display: grid; gap: var(--e5); }
@media (min-width: 48rem) {
  .personas { grid-template-columns: 1fr 1fr; }
  .persona--memoria { grid-column: 1 / -1; }      /* el fundador, a todo el ancho */
  .persona--memoria .persona__texto { max-width: 44rem; }
}
.persona { display: flex; gap: var(--e4); align-items: flex-start; background: var(--papel); border: 1px solid var(--linea); padding: var(--e5); }
.persona > div { min-width: 0; }
.persona h3 { font-size: var(--t-md); margin-bottom: var(--e1); }
.persona__cargo { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; color: var(--coral-texto); letter-spacing: .03em; margin-bottom: var(--e3); }
.persona__texto { font-size: var(--t-sm); color: var(--tinta-suave); margin: 0; }
.persona__cargo:has(+ .persona__memoria) { margin-bottom: var(--e1); }
.persona__memoria { font-style: italic; font-size: var(--t-sm); color: var(--tinta-suave); margin-bottom: var(--e3); }
.persona__cita { margin: var(--e4) 0 0; padding-left: var(--e4); border-left: 3px solid var(--coral); max-width: 40rem; }
.persona__cita blockquote { margin: 0; }
.persona__cita p { font-style: italic; font-size: var(--t-base); color: var(--azul); margin: 0 0 var(--e1); }
.persona__cita figcaption { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 600; color: var(--tinta-suave); }
.persona__cita figcaption::before { content: '— '; }
.nosotros__mas { margin: var(--e5) 0 0; }

/* Reconocimientos */
.reconocimientos { list-style: none; margin: 0 0 var(--e5); padding: 0; display: grid; gap: var(--e3); }
@media (min-width: 40rem) { .reconocimientos { grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); } }
.reconocimientos li {
  position: relative; padding: var(--e4) var(--e4) var(--e4) 3.5rem;
  background: var(--papel-alt); border: 1px solid var(--linea-suave);
}
.reconocimientos li::before {                   /* sello: círculo con visto */
  content: ''; position: absolute; left: var(--e4); top: var(--e4); width: 1.5rem; height: 1.5rem; border-radius: 50%;
  border: 2px solid var(--azul);
}
.reconocimientos li::after {
  content: ''; position: absolute; left: calc(var(--e4) + .55rem); top: calc(var(--e4) + .3rem); width: .35rem; height: .7rem;
  border-right: 2px solid var(--coral-texto); border-bottom: 2px solid var(--coral-texto); transform: rotate(45deg);
}
.reconocimientos__nombre { display: block; font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 700; color: var(--azul); line-height: 1.4; margin-bottom: var(--e1); }
.reconocimientos__detalle { display: block; font-size: var(--t-sm); color: var(--tinta-suave); line-height: 1.5; }
.reconocimientos__nota { font-size: var(--t-sm); color: var(--tinta-suave); }

/* Facultad */
.profesores { display: grid; gap: var(--e5); }
.profesores > * { min-width: 0; }
@media (min-width: 56rem) { .profesores { grid-template-columns: 1fr 1fr; } }
.profesor { border: 1px solid var(--linea); border-top: 3px solid var(--azul); padding: var(--e5); display: flex; flex-direction: column; }
.profesor__cabeza { display: flex; gap: var(--e4); align-items: center; margin-bottom: var(--e4); }
.profesor__cabeza > div { min-width: 0; }
.profesor .retrato { width: 5rem; height: 5rem; }
.profesor__nombre { font-size: var(--t-lg); margin-bottom: var(--e1); }
.profesor__rol { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; color: var(--coral-texto); letter-spacing: .03em; line-height: 1.45; margin: 0; }
.profesor__areas { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; color: var(--azul); margin-bottom: var(--e3); }
.profesor__areas span {
  display: inline-block; margin-right: var(--e2); padding: 0 var(--e2);
  font-size: var(--t-xs); font-weight: 700; color: var(--tinta-suave); background: var(--azul-velo); border-radius: var(--radio);
}
.profesor__bio { font-size: var(--t-sm); margin-bottom: var(--e4); }
.profesor__credenciales { list-style: none; margin: 0 0 var(--e4); padding: var(--e3) 0 0; border-top: 1px solid var(--linea-suave); }
.profesor__credenciales li { position: relative; padding-left: 1rem; font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); line-height: 1.5; margin-bottom: var(--e1); }
.profesor__credenciales li::before { content: ''; position: absolute; left: 0; top: .55em; width: .35rem; height: .35rem; background: var(--coral); }
.profesor__enlace { margin-top: auto; align-self: flex-start; }
@media (max-width: 29.99rem) {                 /* teléfonos pequeños: nombres largos en menos líneas */
  .profesor { padding: var(--e4); }
  .profesor .retrato { width: 3.75rem; height: 3.75rem; font-size: var(--t-base); }
  .profesor__nombre { font-size: var(--t-md); }
}

.ensenar { display: grid; gap: var(--e4); align-items: center; }
.ensenar h2 { font-size: var(--t-xl); }
.ensenar p { margin: 0; color: var(--tinta-suave); }
@media (min-width: 56rem) { .ensenar { grid-template-columns: 1fr auto; gap: var(--e7); } }

/* --- 9e1. AVISO DE PRIVACIDAD ------------------------------------------ */

.legal__fecha { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); margin: var(--e3) 0 0; }
.legal .contenedor > * { max-width: 44rem; }          /* alineado con el título, en una columna legible */
.legal h2 { font-size: var(--t-lg); margin: var(--e6) 0 var(--e3); }
.legal h2:first-child { margin-top: 0; }
.legal ul { padding-left: 1.2rem; max-width: var(--ancho-texto); }
.legal li { margin-bottom: var(--e2); }
.pie__legal [data-pendiente], .pie__legal a[href="/privacidad.php"] { margin-left: var(--e2); }

/* --- 9e2. VOCATIONAL REHABILITATION ----------------------------------- */
/* Usa la rejilla y la tarjeta de "Solicitar" (.solicitar__rejilla, .resumen). */

.vr .solicitar__lateral { order: 0; }   /* en el teléfono, primero los pasos para el cliente; la tarjeta en inglés después */
.vr__titulo { margin-top: var(--e7); }
.vr__estados { list-style: none; margin: 0 0 var(--e3); padding: 0; display: grid; gap: var(--e2); max-width: 34rem; }
@media (min-width: 40rem) { .vr__estados { grid-template-columns: 1fr 1fr; } }
.vr__estados li {
  position: relative; padding: var(--e3) var(--e3) var(--e3) 2.4rem; line-height: 1.4;
  font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; color: var(--azul);
  background: var(--papel-alt); border: 1px solid var(--linea-suave);
}
.vr__estados li::before {
  content: ''; position: absolute; left: 1rem; top: 50%; width: .4rem; height: .75rem; margin-top: -.45rem;
  border-right: 2px solid var(--coral-texto); border-bottom: 2px solid var(--coral-texto); transform: rotate(45deg);
}
.vr__nota { font-size: var(--t-sm); color: var(--tinta-suave); }
.vr__aviso { margin-top: var(--e6); max-width: 44rem; }

/* --- 9f. PORTADA: FRANJA, DOCENTES, "PRÓXIMAMENTE" Y WHATSAPP ------------ */

/* "Próximamente": para lo que NAFA todavía no ofrece. Lo genera nafa_pronto(). */
.pronto {
  display: inline-block; flex-shrink: 0; align-self: center; white-space: nowrap;
  font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .03em; line-height: 1.6;
  color: var(--tinta-suave); background: var(--papel); border: 1px solid var(--linea); border-radius: 999px;
  padding: 0 var(--e3);
}
.peldano .pronto, .ficha .pronto { align-self: flex-start; }
.ficha .pronto { margin-top: auto; }

/* Filas de "Empieza aquí" sin página todavía: abren un correo */
.registro__correo {
  flex-shrink: 0; align-self: center;
  font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; color: var(--coral-texto);
}
a.registro__fila:hover .registro__correo { text-decoration: underline; }
.registro__fila--pronto .registro__titulo { color: var(--tinta-suave); }
/* Portada en inglés: "Coming soon" + enlace a la versión en español */
.en-espanol { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; color: var(--coral-texto); white-space: nowrap; }
.registro__fila--pronto .registro__pista { color: var(--tinta-suave); }
.guias-pronto { max-width: 44rem; }
/* Guías estatales: asociaciones de abogados del estado (contenido/asociaciones.php) */
.asociaciones { margin-top: var(--e7); }
.asociaciones h3 { margin-top: var(--e5); }
.jurisdiccion ul.asociaciones__lista { list-style: none; padding-left: 0; max-width: none;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); column-gap: var(--e6); row-gap: var(--e3); }
.jurisdiccion .asociaciones__lista li { margin-bottom: 0; }
.asociaciones__lista a { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; }
.asociaciones__detalle { display: block; font-size: var(--t-sm); color: var(--tinta-suave); }
.asociaciones__afiliada { display: inline-block; margin-top: var(--e1); font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; color: var(--coral-texto); }
.asociaciones__nota { font-size: var(--t-sm); color: var(--tinta-suave); max-width: var(--ancho-texto); }
/* Portada, "Por estado": las guías que vienen se leen como texto normal, sin enlace (no en gris claro) */
.portada-guias .lista-jurisdicciones span[data-pendiente] { opacity: 1; color: var(--tinta-suave); font-weight: 500; }
.portada-guias .lista-jurisdicciones a { color: var(--coral-texto); }
.portada-guias .lista-jurisdicciones a:hover { color: var(--azul); }
.portada-guias__nota { font-size: var(--t-sm); color: var(--tinta-suave); margin: 0 0 var(--e3); max-width: 32rem; }
.guias-pronto .pronto { margin-right: var(--e2); vertical-align: 1px; }

/* Franja de confianza bajo la portada */
.franja { background: var(--azul-velo); border-bottom: 1px solid var(--linea-suave); }
.franja__lista {
  list-style: none; margin: 0; padding: var(--e4) 0;
  display: flex; flex-wrap: wrap; gap: var(--e2) var(--e5);
  font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 600; color: var(--azul); line-height: 1.4;
}
.franja__lista li { position: relative; padding-left: 0.95rem; }
.franja__lista li::before {
  content: ''; position: absolute; left: 0; top: .42em; width: .45rem; height: .45rem; border-radius: 50%; background: var(--coral);
}
@media (min-width: 62rem) { .franja__lista { justify-content: center; } }

/* Quiénes enseñan */
.docentes { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e3); }
.docentes > li { min-width: 0; display: flex; }
@media (min-width: 40rem) { .docentes { grid-template-columns: 1fr 1fr; } }
@media (min-width: 68rem) { .docentes { grid-template-columns: repeat(4, 1fr); gap: var(--e4); } }
.docente {
  flex: 1; display: flex; gap: var(--e3); align-items: center;
  background: var(--papel); border: 1px solid var(--linea); border-top: 3px solid var(--azul);
  padding: var(--e4); color: inherit; text-decoration: none;
}
a.docente:hover { border-color: var(--azul); }
a.docente:hover .docente__nombre { color: var(--coral-texto); }
.docente .retrato { width: 3.5rem; height: 3.5rem; font-size: var(--t-sm); }
.docente__texto { min-width: 0; }
.docente__nombre { display: block; font-weight: 600; font-size: var(--t-base); color: var(--azul); line-height: 1.3; }
.docente__rol { display: block; margin-top: 2px; font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; color: var(--coral-texto); line-height: 1.4; }
.docente__areas { display: block; margin-top: 2px; font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); line-height: 1.4; }
@media (min-width: 68rem) {
  .docente { flex-direction: column; align-items: flex-start; }
  .docente .retrato { width: 4rem; height: 4rem; font-size: var(--t-base); }
}
.docentes__mas { margin: var(--e5) 0 0; }

/* Botón de WhatsApp en todas las páginas */
.wa-flotante {
  position: fixed; z-index: 90;
  right: max(1rem, env(safe-area-inset-right)); bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
  display: inline-flex; align-items: center; gap: var(--e2);
  padding: var(--e3) var(--e4); border-radius: 999px;
  background: var(--coral-texto); color: #fff; text-decoration: none;
  font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 700;
  box-shadow: 0 8px 24px rgba(1, 21, 41, .28);
}
.wa-flotante:hover { background: #9c3d23; color: #fff; }
.wa-flotante svg { width: 1.25rem; height: 1.25rem; }
.pie { padding-bottom: calc(var(--e5) + 4rem); }      /* que el botón no tape el aviso legal */
@media (max-width: 29.99rem) {                 /* en el teléfono, más discreto */
  .wa-flotante { padding: var(--e2) var(--e3); font-size: var(--t-xs); }
  .wa-flotante svg { width: 1.1rem; height: 1.1rem; }
}
@media print { .wa-flotante { display: none; } }

/* --- 9g. MEMBRESÍA ------------------------------------------------------ */

.membresia__botones { margin-top: var(--e5); }

/* Quién puede ser miembro: el primero ocupa todo el ancho */
.miembros { display: grid; gap: var(--e4); }
@media (min-width: 48rem) { .miembros { grid-template-columns: repeat(3, 1fr); } .miembro--principal { grid-column: 1 / -1; } }
.miembro { border: 1px solid var(--linea); border-top: 3px solid var(--azul); padding: var(--e5); background: var(--papel); }
.miembro h3 { font-size: var(--t-md); margin-bottom: var(--e2); }
.miembro p { font-size: var(--t-sm); color: var(--tinta-suave); margin: 0; }
.miembro--principal { background: var(--azul); border-color: var(--azul); border-top: 4px solid var(--coral); padding: var(--e6) var(--e5); }
.miembro--principal h3 { color: #fff; font-size: var(--t-lg); }
.miembro--principal p { color: #dfe7f0; font-size: var(--t-md); max-width: 46rem; }

/* Qué incluye: lista numerada */
.beneficios { list-style: none; counter-reset: beneficio; margin: 0; padding: 0; display: grid; gap: var(--e6); }
@media (min-width: 40rem) { .beneficios { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 62rem) { .beneficios { grid-template-columns: repeat(3, 1fr); } }
.beneficio { counter-increment: beneficio; border-top: 2px solid var(--azul); padding-top: var(--e4); }
.beneficio::before {
  content: counter(beneficio, decimal-leading-zero); display: block; margin-bottom: var(--e2);
  font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 700; letter-spacing: .05em; color: var(--coral-texto);
}
.beneficio h3 { font-size: var(--t-md); margin-bottom: var(--e2); }
.beneficio p { font-size: var(--t-sm); color: var(--tinta-suave); margin: 0; }

.membresia__faq { margin-top: 0; }

/* Cuota anual */
.cuota__monto { display: inline-block; font-family: var(--fuente-ui); font-size: var(--t-3xl); font-weight: 700; color: #fff; line-height: 1; font-variant-numeric: tabular-nums; }
.cuota__monto small { font-size: var(--t-md); font-weight: 500; color: #c9d6e5; }
.cuota__texto { color: #dfe7f0; font-size: var(--t-md); margin-bottom: var(--e5); }

/* --- 9h. EVALUACIÓN DE CREDENCIALES ------------------------------------ */

@media (min-width: 62rem) { .beneficios--cuatro { grid-template-columns: repeat(4, 1fr); } }

/* Homologación y reválida, lado a lado */
.etapas { display: grid; gap: var(--e4); }
@media (min-width: 48rem) { .etapas { grid-template-columns: 1fr 1fr; } }
.etapa { background: var(--papel); border: 1px solid var(--linea); border-top: 4px solid var(--azul); padding: var(--e5); display: flex; flex-direction: column; }
.etapa--segunda { border-top-color: var(--coral); }
.etapa__paso { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--coral-texto); margin-bottom: var(--e2); }
.etapa h3 { font-size: var(--t-lg); margin-bottom: var(--e3); }
.etapa p { font-size: var(--t-sm); }
.etapa .etapa__quien { margin: auto 0 0; padding-top: var(--e3); border-top: 1px solid var(--linea-suave); font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 600; color: var(--azul); }
.etapas__aviso { margin-top: var(--e5); }

/* Qué recibes / qué necesitamos */
.dos-listas { display: grid; gap: var(--e6); }
@media (min-width: 48rem) { .dos-listas { grid-template-columns: 1fr 1fr; gap: var(--e7); } }
.dos-listas h2 { font-size: var(--t-xl); }
.dos-listas .lista-docs { grid-template-columns: 1fr; }
.lista-check { list-style: none; margin: var(--e2) 0 var(--e4); padding: 0; }
.lista-check li { position: relative; padding: var(--e2) 0 var(--e2) 1.9rem; border-bottom: 1px solid var(--linea-suave); line-height: 1.5; }
.lista-check li::before {
  content: ''; position: absolute; left: 0.35rem; top: 0.75rem; width: 0.4rem; height: 0.75rem;
  border-right: 2px solid var(--coral-texto); border-bottom: 2px solid var(--coral-texto); transform: rotate(45deg);
}

/* --- 9i. FORMACIÓN Y CURSOS ------------------------------------------- */

.cierre__texto { color: #c9d6e5; max-width: 34rem; margin-bottom: var(--e6); }
.cierre__texto a { color: #fff; }
.ficha .ficha__precio { font-family: var(--fuente-ui); font-size: var(--t-md); font-weight: 700; color: var(--azul); margin: 0 0 var(--e3); }
.ficha .ficha__precio small { font-size: var(--t-xs); font-weight: 500; color: var(--tinta-suave); }
.ficha .ficha__enlace { margin-top: auto; }

.programa__pie { margin-top: var(--e5); display: grid; gap: var(--e2); }
.programa__pie p { margin: 0; }
.programa__precio-nota, .programa__requisito { font-size: var(--t-sm); }
.programa__requisito { color: var(--tinta-suave); }
.programa__enfoque { max-width: 44rem; margin: calc(-1 * var(--e3)) 0 var(--e6); }
.idiomas { margin: var(--e6) 0 0; padding: var(--e4) var(--e5); background: var(--papel); border: 1px solid var(--linea); border-left: 3px solid var(--azul); font-size: var(--t-sm); max-width: 44rem; }

/* Cómo enseñamos */
.rasgos { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e5); }
@media (min-width: 40rem) { .rasgos { grid-template-columns: 1fr 1fr; } }
@media (min-width: 62rem) { .rasgos { grid-template-columns: repeat(4, 1fr); } }
.rasgos h3 { font-size: var(--t-md); margin-bottom: var(--e2); }
.rasgos p { font-size: var(--t-sm); color: var(--tinta-suave); margin: 0; }

/* Lista de cursos */
.cursos { display: grid; gap: var(--e4); }
@media (min-width: 48rem) { .cursos { grid-template-columns: 1fr 1fr; } }
@media (min-width: 75rem) { .cursos { grid-template-columns: repeat(3, 1fr); } }
.curso { scroll-margin-top: 5.5rem; background: var(--papel); border: 1px solid var(--linea); border-top: 3px solid var(--azul); padding: var(--e5); display: flex; flex-direction: column; }
.curso .curso__titulo { font-size: var(--t-lg); margin-bottom: var(--e1); }
.curso__en { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); margin-bottom: var(--e3); }
.curso__texto { font-size: var(--t-sm); margin-bottom: var(--e4); }
.curso__meta { list-style: none; margin: 0 0 var(--e3); padding: 0; display: flex; flex-wrap: wrap; gap: var(--e2); }
.curso__meta li { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 600; color: var(--azul); background: var(--azul-velo); padding: .2rem .6rem; border-radius: 999px; }
.curso__profesor { font-size: var(--t-sm); color: var(--tinta-suave); margin-bottom: var(--e4); }
/* El pie de la tarjeta (etiquetas, profesor y enlaces) va siempre abajo, con el mismo espacio entre sus filas
   en todas las tarjetas: el espacio libre queda arriba, bajo la descripción, y no entre los enlaces. */
.curso__pie { margin-top: auto; }
.curso__profesor:last-child { margin-bottom: 0; }
.curso__acciones { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: var(--e2); }
/* En la cuadrícula, el pie reserva el lugar de los dos enlaces: así las etiquetas, el profesor y
   «Inscribirme» quedan a la misma altura en toda la fila, aunque un curso aún no tenga su página. */
@media (min-width: 48rem) { .curso__acciones { min-height: 3.4rem; min-height: calc(2lh + var(--e2)); } }
.cursos__aviso { margin-top: var(--e6); }
.cursos__aviso p + p { margin-top: var(--e3); }
.precios-dos { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--e5) var(--e8); margin-bottom: var(--e4); }
.precios-dos p { margin: 0; }
.precios-dos__tipo { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #c9d6e5; margin-bottom: var(--e2) !important; }
.precios-dos .cuota__monto small { display: none; }   /* la etiqueta de arriba ya lo dice */

/* --- 9j. VÍAS DE ADMISIÓN ---------------------------------------------- */

.vias { display: grid; gap: var(--e5); }
.via { scroll-margin-top: 5.5rem; display: grid; gap: var(--e5); border: 1px solid var(--linea); border-top: 4px solid var(--azul); background: var(--papel); padding: var(--e5); }
@media (min-width: 62rem) { .via { grid-template-columns: 1fr 1.5fr; gap: var(--e7); padding: var(--e6); } }
.via__cabeza h3 { font-size: var(--t-xl); margin-bottom: var(--e3); }
.via__cabeza p { font-size: var(--t-sm); }
.via__cabeza .via__dato { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; color: var(--azul); background: var(--azul-velo); padding: var(--e3) var(--e4); border-left: 3px solid var(--azul); }
.via__decide { color: var(--tinta-suave); margin-bottom: 0; }
.via__cuerpo h4 { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--coral-texto); margin: 0 0 var(--e2); }
.via__cuerpo .lista-check { margin-top: 0; }
.via__cuerpo .lista-check li, .via__ejemplos li { font-size: var(--t-sm); }
.via__ejemplos { margin: 0 0 var(--e4); padding-left: 1.2rem; }
.via__ejemplos li { margin-bottom: var(--e2); }
.via__limite { font-size: var(--t-sm); background: var(--coral-velo); padding: var(--e3) var(--e4); margin: 0; }
.via__enlace { font-size: var(--t-sm); margin: 0 0 var(--e4); }

/* ¿Cuál te conviene? */
.decidir { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e3); }
@media (min-width: 48rem) { .decidir { grid-template-columns: 1fr 1fr; } }
.decidir li { background: var(--papel); border: 1px solid var(--linea); padding: var(--e4) var(--e5); }
.decidir__si { font-size: var(--t-sm); color: var(--tinta-suave); margin-bottom: var(--e2); }
.decidir__via { font-family: var(--fuente-ui); font-weight: 700; color: var(--azul); margin: 0; }
.decidir__nota { margin: var(--e5) 0 0; font-size: var(--t-sm); }
.vias__campos { max-width: 34rem; }
.vias__aviso { margin-top: var(--e5); }
.vias__otras { font-size: var(--t-lg); margin: var(--e7) 0 var(--e4); }
.via--otra { border-top-color: var(--tinta-suave); }
.via--otra .via__cabeza h3 { font-size: var(--t-lg); }
.luisiana { scroll-margin-top: 5.5rem; margin-top: var(--e6); background: var(--coral-velo); border-top: 4px solid var(--coral); padding: var(--e5); }
@media (min-width: 62rem) { .luisiana { padding: var(--e6); } .luisiana > p, .luisiana .lista-check { max-width: 48rem; } }
.luisiana h3 { font-size: var(--t-xl); margin-bottom: var(--e3); }
.luisiana h4 { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--coral-texto); margin: var(--e4) 0 var(--e2); }
.luisiana .lista-check li { font-size: var(--t-sm); border-bottom-color: #f2d3c9; }
.luisiana__nota { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; color: var(--azul); }

/* --- 9k. PASO A PASO --------------------------------------------------- */

.paso-a-paso > * { max-width: 50rem; }   /* columna de lectura, alineada a la izquierda con el título */
.paso-a-paso .paso .lista-check { max-width: 38rem; }
.paso-a-paso .paso .lista-check li { font-size: var(--t-sm); }
.paso__nota { font-size: var(--t-sm); color: var(--tinta-suave); }
.paso__nafa { font-size: var(--t-sm); background: var(--azul-velo); border-left: 3px solid var(--azul); padding: var(--e3) var(--e4); max-width: 38rem; }
.paso__nafa strong { font-family: var(--fuente-ui); font-size: var(--t-xs); text-transform: uppercase; letter-spacing: .04em; color: var(--azul); margin-right: var(--e1); }
.paso-a-paso__aviso { margin-top: var(--e7); }
.paso-a-paso__fuentes { font-size: var(--t-lg); margin: var(--e6) 0 var(--e2); }

/* --- 9l. PIE: REDES Y LEMA; PORTADA: SERIE NAFA -------------------------- */

.pie__redes { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--e2) var(--e4); font-family: var(--fuente-ui); font-size: var(--t-sm); }
.pie__redes li { margin: 0; }
/* Franja de contacto bajo las columnas: dirección, correo, teléfono, WhatsApp y redes en una sola línea */
.pie__contacto { margin-top: var(--e6); padding-top: var(--e4); border-top: 1px solid rgba(255, 255, 255, 0.14);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--e3) var(--e6); }
.pie__datos { margin: 0; max-width: none; display: flex; flex-wrap: wrap; gap: var(--e2) var(--e5); }
.pie__lema { margin-top: var(--e4); font-style: italic; color: #c9d6e5; }
.ficha__media--video { position: relative; display: grid; place-items: center;
  background: radial-gradient(circle at 30% 30%, rgba(201,214,229,.22), transparent 45%), linear-gradient(135deg, var(--azul-claro), var(--azul-profundo)); }
.ficha__media--video img { width: 5.5rem; height: 5.5rem; }
.ficha__media--video img.ficha__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ficha__media--video .ficha__play { position: absolute; right: var(--e4); bottom: var(--e4); width: 3rem; height: 3rem; border-radius: 50%;
  background: var(--coral-texto); display: grid; place-items: center; }
.ficha--imagen .ficha__media--video .ficha__play svg { width: 1.1rem; height: 1.1rem; margin-left: 3px; }
.ficha .ficha__serie { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--coral-texto); margin-bottom: var(--e2); }
.ficha .ficha__datos { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); }

/* --- 10. UTILIDADES ----------------------------------------------------- */

.solo-lectores {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.centrado { text-align: center; }
.centrado p { margin-inline: auto; }
.sin-margen { margin-bottom: 0; }

/* --- 9m. AVISO LEGAL, REEMBOLSOS Y PÁGINA NO ENCONTRADA ------------------ */

.legal h2[id] { scroll-margin-top: 5.5rem; }
.legal h3 { font-size: var(--t-md); margin: var(--e5) 0 var(--e2); }
.cuota__reembolso { font-size: var(--t-sm); }
.cuota__reembolso a, .seccion--azul .cuota__reembolso a { color: #fff; }
.cuota__reembolso a:hover { color: #f3a48f; }
.resumen__reembolso { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); text-align: center; margin: var(--e2) auto 0; }
.no-encontrada { padding-block: var(--e7) var(--e8); }
.no-encontrada h1 { margin-bottom: var(--e3); }
.no-encontrada .entrada { font-size: var(--t-md); color: var(--tinta-suave); max-width: 40rem; }
.no-encontrada__lista { list-style: none; margin: var(--e6) 0; padding: 0; display: grid; gap: var(--e3); max-width: 52rem; }
@media (min-width: 40rem) { .no-encontrada__lista { grid-template-columns: 1fr 1fr; } }
.no-encontrada__lista a { display: block; height: 100%; padding: var(--e4) var(--e5); border: 1px solid var(--linea); border-left: 3px solid var(--azul); text-decoration: none; color: var(--tinta); }
.no-encontrada__lista a:hover { background: var(--azul-velo); color: var(--tinta); }
.no-encontrada__lista strong { display: block; font-family: var(--fuente-ui); color: var(--azul); }
.no-encontrada__lista span { display: block; font-size: var(--t-sm); color: var(--tinta-suave); }

/* --- 9n. TRADUCCIONES Y APOSTILLAS --------------------------------------- */

.traducciones__sub { font-size: var(--t-md); margin: var(--e6) 0 var(--e3); }
.instituciones { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e4); }
@media (min-width: 48rem) { .instituciones { grid-template-columns: repeat(3, 1fr); } }
.instituciones li { background: var(--papel); border: 1px solid var(--linea); border-top: 3px solid var(--azul); padding: var(--e4) var(--e5); }
.instituciones h4 { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 700; color: var(--azul); margin: 0 0 var(--e2); }
.instituciones p { font-size: var(--t-sm); margin: 0; }
.traducciones__lista { max-width: 44rem; }
.traducciones__aviso { max-width: 44rem; margin-top: var(--e5); }
.traducciones__orden > * { max-width: 50rem; }

/* "Próximamente" en la portada: fila con aviso y peldaño con enlace a su descripción */
.registro__pronto { flex-shrink: 0; align-self: center; display: flex; flex-direction: column; align-items: flex-end; gap: var(--e1); }
.registro__pronto .pronto { align-self: auto; }
a.registro__fila--pronto:hover .registro__titulo { color: var(--coral-texto); }
.peldano__pronto { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e2) var(--e3); margin: 0; }

/* Formación: programas en preparación */
.ficha--preparacion { border-top-color: var(--tinta-suave); }
.ficha--preparacion .ficha__estado { margin-bottom: var(--e3); }
.ficha--preparacion .ficha__nota { font-size: var(--t-xs); font-family: var(--fuente-ui); color: var(--tinta-suave); border-left: 2px solid var(--linea); padding-left: var(--e3); }
.ficha--preparacion .enlace-fuerte { margin-top: auto; }
.pronto--primero { color: var(--coral-texto); border-color: #f2d3c9; background: var(--coral-velo); }

/* --- 9o. EVENTOS Y PODCAST ----------------------------------------------- */

.episodios { display: grid; gap: var(--e6); }
.episodio { display: grid; gap: var(--e4); border: 1px solid var(--linea); background: var(--papel); }
@media (min-width: 48rem) { .episodio { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 0; } }
.episodio__media { display: grid; place-items: center; position: relative; overflow: hidden; width: 100%; aspect-ratio: 16 / 9; }
@media (min-width: 48rem) { .episodio__media { aspect-ratio: auto; min-height: 15rem; } }
.episodio__cuerpo { padding: 0 var(--e5) var(--e5); display: flex; flex-direction: column; align-items: flex-start; }
@media (min-width: 48rem) { .episodio__cuerpo { padding: var(--e5) var(--e6); } }
.episodio__cuerpo h3 { font-size: var(--t-lg); margin-bottom: var(--e2); }
.episodio__cuerpo p { font-size: var(--t-sm); }
.episodio .ficha__serie, .episodio .ficha__datos { font-family: var(--fuente-ui); font-size: var(--t-xs); }
.episodio .ficha__serie { font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--coral-texto); margin-bottom: var(--e2); }
.episodio .ficha__datos { color: var(--tinta-suave); }
.episodio .ficha__play svg { width: 1.1rem; height: 1.1rem; margin-left: 3px; }

.eventos { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e4); max-width: 50rem; }
.evento { display: grid; grid-template-columns: 4.5rem 1fr; gap: var(--e4); background: var(--papel); border: 1px solid var(--linea); padding: var(--e4) var(--e5); }
.evento__fecha { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; text-transform: uppercase; color: var(--coral-texto); text-align: center; border-right: 1px solid var(--linea-suave); padding-right: var(--e3); margin: 0; }
.evento__fecha span { display: block; font-size: var(--t-2xl); line-height: 1; color: var(--azul); }
.evento h3 { font-size: var(--t-md); margin-bottom: var(--e1); }
.evento__datos, .evento__organiza { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); }
.eventos__vacio { max-width: 40rem; }
.eventos__redes { list-style: none; margin: var(--e4) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--e3); }

.eventos__serie { display: grid; gap: var(--e6); }
@media (min-width: 56rem) { .eventos__serie { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: var(--e7); align-items: start; } }
.eventos__serie .lista-check { max-width: 30rem; }
.eventos__estado { margin-bottom: var(--e3); }
.ponencia { scroll-margin-top: 5.5rem; background: var(--azul-velo); border-top: 3px solid var(--azul); padding: var(--e5); }
.ponencia h3 { font-size: var(--t-lg); margin-bottom: var(--e2); }
.ponencia p { font-size: var(--t-sm); }
.ponencia__sub { font-family: var(--fuente-ui); font-weight: 700; color: var(--azul); margin-bottom: var(--e1); }
.ponencia__lista { font-size: var(--t-sm); padding-left: 1.2rem; margin: 0 0 var(--e4); }
.ponencia__lista li { margin-bottom: var(--e1); }

/* --- 9p. EGRESADOS (testimonios) ---------------------------------------- */

.testimonios { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e5); }
@media (min-width: 48rem) { .testimonios { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 62rem) { .testimonios { grid-template-columns: repeat(3, 1fr); } }
.testimonio { display: flex; flex-direction: column; gap: var(--e4); border: 1px solid var(--linea); border-top: 3px solid var(--coral); background: var(--papel); padding: var(--e5); }
.testimonio blockquote { margin: 0; }
.testimonio blockquote p { font-size: var(--t-md); line-height: 1.55; margin: 0; }
.testimonio blockquote p::before { content: '«'; } .testimonio blockquote p::after { content: '»'; }
.testimonio__autor { display: flex; align-items: center; gap: var(--e3); margin-top: auto; }
.testimonio__autor .retrato { width: 3.5rem; height: 3.5rem; font-size: var(--t-sm); }
.testimonio__autor p { margin: 0; font-family: var(--fuente-ui); font-size: var(--t-sm); line-height: 1.4; }
.testimonio__autor strong { color: var(--azul); }
.testimonio__autor p span { font-size: var(--t-xs); color: var(--tinta-suave); }
.testimonio__nota { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); margin: 0; }

/* --- 9q. CREDENCIALES: ¿QUÉ TRÁMITE NECESITAS? ------------------------- */

.tramites { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e3); max-width: 56rem; }
@media (min-width: 48rem) { .tramites { grid-template-columns: 1fr 1fr; } .tramites li:first-child { grid-column: 1 / -1; } }
.tramite { display: grid; gap: var(--e1); height: 100%; padding: var(--e4) var(--e5); background: var(--papel); border: 1px solid var(--linea); border-left: 3px solid var(--azul); text-decoration: none; color: var(--tinta); }
.tramite:hover { background: var(--azul-velo); color: var(--tinta); }
.tramite--primero { border-left-color: var(--coral-texto); }
.tramite__pregunta { font-family: var(--fuente-texto); font-size: var(--t-md); font-weight: 600; color: var(--azul); line-height: 1.3; }
.tramite:hover .tramite__pregunta { color: var(--coral-texto); }
.tramite__pagina { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .03em; color: var(--coral-texto); }
.tramite__texto { font-size: var(--t-sm); color: var(--tinta-suave); }
@media (min-width: 62rem) { .rasgos--tres { grid-template-columns: repeat(3, 1fr); } }
.credenciales__fuente { margin: var(--e5) 0 0; font-size: var(--t-sm); color: var(--tinta-suave); }

/* --- 9r. INSCRIPCIÓN A CURSOS ------------------------------------------ */

.eleccion { margin: var(--e2) 0 var(--e4); }
.eleccion__campos { display: grid; gap: var(--e4); max-width: 34rem; }
.eleccion__campo { display: grid; gap: var(--e1); font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; color: var(--tinta-suave); letter-spacing: .03em; }
.eleccion select { font: inherit; font-family: var(--fuente-ui); font-size: var(--t-base); font-weight: 500; letter-spacing: 0; color: var(--tinta);
  background: var(--papel); border: 1px solid var(--linea); border-radius: var(--radio); padding: var(--e3) var(--e3); width: 100%; }
.eleccion__modo { border: 0; margin: 0; padding: 0; display: grid; gap: var(--e2); }
.eleccion__modo legend { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; color: var(--tinta-suave); letter-spacing: .03em; margin-bottom: var(--e1); padding: 0; }
.eleccion__modo label { display: flex; align-items: center; gap: var(--e2); font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; color: var(--tinta);
  border: 1px solid var(--linea); border-radius: var(--radio); padding: var(--e3) var(--e4); background: var(--papel); cursor: pointer; }
.eleccion__modo label:has(input:checked) { border-color: var(--azul); background: var(--azul-velo); }
.eleccion__modo label:has(input:disabled) { opacity: .5; cursor: not-allowed; }
.eleccion__modo input { accent-color: var(--azul); width: 1rem; height: 1rem; margin: 0; }
.eleccion select:focus-visible, .eleccion__modo input:focus-visible { outline: 2px solid var(--azul); outline-offset: 2px; }
.eleccion__nota { font-family: var(--fuente-ui); font-size: var(--t-sm); color: var(--tinta-suave); margin: 0 0 var(--e3); }
.eleccion__nota strong { color: var(--azul); }
.resumen__profes { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); margin: calc(-1 * var(--e2)) 0 var(--e3); }
.resumen__precios { margin: 0 0 var(--e4); display: grid; gap: var(--e2); }
.resumen__precios div { display: flex; justify-content: space-between; align-items: baseline; gap: var(--e3); padding: var(--e2) var(--e3); border: 1px solid var(--linea-suave); border-radius: var(--radio); }
.resumen__precios div[data-elegido] { border-color: var(--azul); background: var(--azul-velo); }
.resumen__precios dt { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 600; color: var(--tinta-suave); }
.resumen__precios dd { margin: 0; font-family: var(--fuente-ui); font-size: var(--t-lg); font-weight: 700; color: var(--azul); font-variant-numeric: tabular-nums; }

/* --- 9s. NOVEDADES ------------------------------------------------------ */

.novedades { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e5); max-width: 50rem; }
.novedad { border-top: 1px solid var(--linea); padding-top: var(--e4); }
.novedad h2, .novedad h3 { font-size: var(--t-lg); margin: 0 0 var(--e2); }
.novedad h2 a, .novedad h3 a { color: var(--azul); text-decoration: none; }
.novedad h2 a:hover, .novedad h3 a:hover { color: var(--coral-texto); text-decoration: underline; }
.novedad p { margin: 0; color: var(--tinta-suave); }
.novedad__fecha { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .03em; color: var(--coral-texto) !important; margin-bottom: var(--e1) !important; }
.novedad__foto { display: block; width: 100%; max-width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; margin-bottom: var(--e3); border-radius: var(--radio); }
@media (min-width: 48rem) { .novedades--cortas { grid-template-columns: repeat(3, 1fr); max-width: none; } }
.articulo__datos { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); margin: var(--e3) 0 0; }
.articulo__cuerpo > * { max-width: 42rem; }
.articulo__cuerpo h2 { font-size: var(--t-xl); margin: var(--e6) 0 var(--e3); }
.articulo__cuerpo ul { padding-left: 1.2rem; }
.articulo__cuerpo li { margin-bottom: var(--e2); }
.articulo__foto { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radio); margin-bottom: var(--e5); }
.compartir { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e2) var(--e4); margin-top: var(--e7); padding-top: var(--e4); border-top: 1px solid var(--linea); font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; }
.compartir__titulo { color: var(--tinta-suave); font-weight: 700; }
.inscripcion__miembros { margin: 0 0 var(--e5); max-width: 40rem; }
.articulo__cita { margin: var(--e4) 0 var(--e5); padding: var(--e3) 0 var(--e3) var(--e5); border-left: 3px solid var(--coral); }
.articulo__cita p { font-family: var(--fuente-texto); font-size: var(--t-lg); line-height: 1.45; color: var(--azul); margin: 0; }
.precios-dos__miembro { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; color: #f3a48f; margin-top: var(--e1) !important; }
.cuota > .contenedor > .precios-dos__miembro { margin: calc(-1 * var(--e3)) auto var(--e4); }
.ficha .ficha__miembro { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; color: var(--coral-texto); margin: calc(-1 * var(--e2)) 0 var(--e3); }
.resumen__precios dd { text-align: right; }
.resumen__precios dd small { display: block; font-size: var(--t-xs); font-weight: 600; color: var(--coral-texto); }

/* --- 9t. NOSOTROS: FOTOS DEL FUNDADOR Y MIEMBROS HONORARIOS ------------- */

.persona__fotos { list-style: none; margin: var(--e5) 0 0; padding: 0; display: grid; gap: var(--e3); grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); }
.persona__fotos figure { margin: 0; }
.persona__fotos img { display: block; width: 100%; max-width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radio); filter: grayscale(.25); }
.persona__fotos figcaption { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); margin-top: var(--e1); }
.honorarios { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e4); }
@media (min-width: 48rem) { .honorarios { grid-template-columns: 1fr 1fr; } }
.honorarios li { border-left: 3px solid var(--azul); padding: var(--e2) 0 var(--e2) var(--e4); }
.honorarios h3 { font-size: var(--t-md); margin: 0 0 var(--e1); }
.honorarios p { font-size: var(--t-sm); color: var(--tinta-suave); margin: 0; }

/* In memoriam: el mismo artículo, más sobrio (sin coral) */
.articulo__memoria { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--tinta-suave); margin: var(--e3) 0 var(--e2); }
.articulo__anios { font-family: var(--fuente-texto); font-size: var(--t-lg); color: var(--tinta-suave); margin: var(--e1) 0 var(--e3); font-variant-numeric: tabular-nums; }
.articulo--memoria .encabezado-pagina { background: var(--papel-alt); }
.articulo--memoria .articulo__cita { border-left-color: var(--azul); }
.articulo--memoria .articulo__foto { filter: grayscale(.2); }
.articulo__cita { margin: var(--e4) 0 var(--e5); }
.articulo__cita blockquote { margin: 0; }
.articulo__cita figcaption { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); margin-top: var(--e2); }
.articulo__fotos { list-style: none; margin: var(--e5) 0; padding: 0; display: grid; gap: var(--e3); grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); }
.articulo__fotos figure { margin: 0; }
.articulo__fotos img { display: block; width: 100%; max-width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radio); }
.articulo__fotos figcaption { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); margin-top: var(--e1); }
.persona__articulo { margin: var(--e3) 0 0; }

/* --- 9u. VÍAS: EJERCER EN OTROS ESTADOS ---------------------------------- */

.movilidad { display: grid; gap: var(--e5); }
@media (min-width: 48rem) { .movilidad { grid-template-columns: 1fr 1fr; } }
.movilidad__forma { scroll-margin-top: 5.5rem; display: flex; flex-direction: column; border: 1px solid var(--linea); border-top: 4px solid var(--azul); background: var(--papel); padding: var(--e5); min-width: 0; }
.movilidad__forma h3 { font-size: var(--t-lg); margin-bottom: var(--e3); }
.movilidad__ingles { display: block; font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--tinta-suave); margin-top: var(--e1); }
.movilidad__forma > p { font-size: var(--t-sm); }
.movilidad__dato { font-family: var(--fuente-ui); font-weight: 600; color: var(--azul); background: var(--azul-velo); padding: var(--e3) var(--e4); border-left: 3px solid var(--azul); }
.movilidad__forma h4 { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--coral-texto); margin: var(--e2) 0 var(--e2); }
.movilidad__forma .via__ejemplos li { font-size: var(--t-sm); }
.movilidad__forma > .movilidad__pie { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); }
.movilidad__forma .via__limite { margin-top: auto; }
.federal { scroll-margin-top: 5.5rem; margin-top: var(--e6); background: var(--azul-velo); border-top: 4px solid var(--azul); padding: var(--e5); }
@media (min-width: 62rem) { .federal { padding: var(--e6); } .federal > p { max-width: 48rem; } }
.federal h3 { font-size: var(--t-xl); margin-bottom: var(--e3); }
.federal .via__limite { background: var(--papel); margin-bottom: var(--e4); }
.federal__extranjeros { font-size: var(--t-sm); margin: 0; }
.movilidad__cierre { display: grid; gap: var(--e6); margin-top: var(--e7); }
@media (min-width: 62rem) { .movilidad__cierre { grid-template-columns: 1fr 1fr; gap: var(--e7); } }
.movilidad__cierre h3 { font-size: var(--t-lg); margin-bottom: var(--e3); }
.movilidad__consejo .lista-check li { font-size: var(--t-sm); }
.movilidad__debate { border-left: 3px solid var(--coral); padding-left: var(--e5); }
.movilidad__debate p { font-size: var(--t-sm); }

/* Guía de estado: admisión sin examen */
.jurisdiccion .sin-examen__datos { max-width: 34rem; margin: var(--e4) 0; }
.jurisdiccion__nota { font-size: var(--t-sm); color: var(--tinta-suave); max-width: var(--ancho-texto); }

/* --- 9v. PUBLICACIONES ------------------------------------------------- */

.libros { display: grid; gap: var(--e7); }
.libro { scroll-margin-top: 5.5rem; display: grid; gap: var(--e5); }
@media (min-width: 48rem) { .libro { grid-template-columns: 15rem 1fr; gap: var(--e7); align-items: start; } }
.libro__imagen { max-width: 15rem; }
/* El libro: lomo azul a la izquierda, pliegue y sombra. Igual con foto o sin ella. */
.libro__objeto { position: relative; border-left: 10px solid var(--azul-profundo); border-radius: 2px 3px 3px 2px;
  box-shadow: 0 1px 2px rgba(1, 21, 41, .2), 0 12px 32px rgba(1, 21, 41, .2); overflow: hidden; }
.libro__objeto::after { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 16px; pointer-events: none;
  background: linear-gradient(90deg, rgba(1, 21, 41, .35), rgba(255, 255, 255, .18) 45%, rgba(1, 21, 41, 0)); }
.libro__portada { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; }
.libro__tapa { aspect-ratio: 2 / 3; display: flex; flex-direction: column; justify-content: space-between; gap: var(--e4);
  background: var(--azul); color: #ffffff; padding: var(--e5) var(--e4) var(--e5) var(--e5); }
.libro__tapa-titulo { font-family: var(--fuente-texto); font-size: var(--t-xl); font-weight: 600; line-height: 1.15;
  padding-top: var(--e3); border-top: 3px solid var(--coral); }
.libro__tapa-autor { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 600; letter-spacing: .05em; text-transform: uppercase; opacity: .85; }
.libro__cuerpo { max-width: 44rem; min-width: 0; }
.libro__tipo { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--coral-texto); margin: 0 0 var(--e2); }
.libro__cuerpo h2 { margin: 0 0 var(--e2); }
.libro__subtitulo { font-family: var(--fuente-texto); font-size: var(--t-md); color: var(--tinta-suave); margin: 0 0 var(--e3); }
.libro__autor { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; color: var(--azul); margin-bottom: var(--e5); }
.libro__nafa { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; color: var(--azul); background: var(--azul-velo); padding: var(--e3) var(--e4); border-left: 3px solid var(--azul); }
.libro__nafa a { color: var(--coral-texto); margin-left: var(--e1); }
.libro__datos { max-width: 30rem; margin: var(--e5) 0; }
.libro__datos dd { font-variant-numeric: tabular-nums; }
.libro__formato { font-size: var(--t-sm); color: var(--tinta-suave); }
.libro__enlaces { align-items: center; }
.libro__detalle { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); }
.libros__pendientes { margin-top: var(--e7); padding-top: var(--e5); border-top: 1px solid var(--linea); color: var(--tinta-suave); font-size: var(--t-sm); }
.libro__capitulos-titulo { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--coral-texto); margin: var(--e5) 0 var(--e2); }
.libro__capitulos { margin: 0 0 var(--e4); padding-left: 1.4rem; font-size: var(--t-sm); }
.libro__capitulos li { margin-bottom: var(--e1); }

/* Novedades: enlace a un video (sin cargar YouTube hasta que se hace clic) */
.articulo__video { margin: var(--e5) 0; }
.articulo__video-enlace { position: relative; display: grid; place-items: center; aspect-ratio: 16 / 9; overflow: hidden;
  background: var(--azul) radial-gradient(circle at 50% 40%, var(--azul-claro), var(--azul-profundo)); color: #ffffff; text-decoration: none; border-radius: var(--radio); }
.articulo__video-foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .75; }
.articulo__video-logo { position: absolute; top: var(--e4); left: var(--e4); width: 3rem; height: auto; opacity: .45; }
.articulo__video-play { position: absolute; top: 50%; left: 50%; width: 4rem; height: 4rem; transform: translate(-50%, -50%);
  display: grid; place-items: center; background: var(--coral-texto); border-radius: 50%; box-shadow: 0 6px 20px rgba(1, 21, 41, .35); transition: transform .15s; }
.articulo__video-play svg { width: 1.1rem; height: 1.1rem; margin-left: .2rem; }
.articulo__video-enlace:hover .articulo__video-play, .articulo__video-enlace:focus-visible .articulo__video-play { transform: translate(-50%, -50%) scale(1.08); }
.articulo__video-titulo { position: absolute; left: 0; right: 0; bottom: 0; padding: var(--e3) var(--e4); background: linear-gradient(transparent, rgba(1, 21, 41, .85));
  font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; text-align: left; }
.articulo__video-donde { font-weight: 500; opacity: .85; }
.articulo__video figcaption { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); margin-top: var(--e2); }

/* --- 9w. REGLAMENTO DE MIEMBROS ---------------------------------------- */

.reglamento__tabla { max-width: 40rem; overflow-x: auto; margin: var(--e4) 0 var(--e5); }
.reglamento__tabla table { width: 100%; border-collapse: collapse; font-family: var(--fuente-ui); font-size: var(--t-sm); border-top: 3px solid var(--azul); }
.reglamento__tabla th, .reglamento__tabla td { text-align: left; padding: var(--e2) var(--e3); border-bottom: 1px solid var(--linea-suave); vertical-align: top; }
.reglamento__tabla thead th { font-size: var(--t-xs); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--tinta-suave); }
.reglamento__tabla tbody th { font-weight: 700; color: var(--azul); width: 3.5rem; }
.reglamento__tabla td:nth-child(3), .reglamento__tabla td:nth-child(4) { font-variant-numeric: tabular-nums; }
.reglamento__tabla td:nth-child(4) { white-space: nowrap; }
@media (max-width: 29.99rem) {
  .reglamento__tabla th, .reglamento__tabla td { padding: var(--e2); }
  .reglamento__tabla thead th { letter-spacing: 0; text-transform: none; }
  .reglamento__tabla table { font-size: var(--t-xs); }
  .reglamento__tabla tbody th { width: 2.25rem; }
}
.visualmente-oculto { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* --- 9x. BECAS Y PROFESORES HONORARIOS ------------------------------------ */

.becas { scroll-margin-top: 5.5rem; margin-top: var(--e6); background: var(--papel); border: 1px solid var(--linea); border-top: 4px solid var(--coral); padding: var(--e5); max-width: 48rem; }
.becas h3 { font-size: var(--t-lg); margin-bottom: var(--e2); }
.becas .lista-check li { font-size: var(--t-sm); }
.becas__como { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; color: var(--azul); margin: var(--e4) 0 0; }
.becas__como a { color: var(--coral-texto); margin-left: var(--e1); }
.facultad__honorarios { margin: var(--e7) 0 var(--e4); }

/* --- 9y. CURSOS CLE ---------------------------------------------------- */

.cle__proveedor { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; color: var(--azul); margin: 0; }
.cle__tabla { max-width: none; }
.cle__tabla td:nth-child(2) { white-space: nowrap; }
.cle__fila--terminado td { color: var(--tinta-suave); }
.cle__situacion { display: inline-block; font-size: var(--t-xs); font-weight: 700; padding: .1rem .5rem; border-radius: 999px; background: var(--azul-velo); color: var(--azul); white-space: nowrap; }
.cle__situacion--en-curso { background: var(--coral-velo); color: var(--coral-texto); }
.cle__situacion--terminado { background: transparent; color: var(--tinta-suave); padding-left: 0; }
.cle__aviso { max-width: 56rem; margin-top: var(--e5); }
@media (max-width: 29.99rem) {
  .cle__tabla thead { display: none; }
  .cle__tabla table, .cle__tabla tbody, .cle__tabla tr, .cle__tabla td { display: block; width: 100%; }
  .cle__tabla tr { padding: var(--e3) 0; border-bottom: 1px solid var(--linea-suave); }
  .cle__tabla td { border: 0; padding: 2px 0; }
  .cle__tabla td:first-child { font-weight: 600; color: var(--azul); }
  .cle__fila--terminado td:first-child { color: var(--tinta-suave); }
}
.cle__detalle { display: block; font-size: var(--t-xs); color: var(--tinta-suave); margin-top: 2px; }
.cle__detalle a { color: var(--coral-texto); }
.cle__situacion--por-confirmar { background: transparent; color: var(--tinta-suave); border: 1px dashed var(--linea); }
.cle__situacion--a-pedido { background: var(--azul-velo); color: var(--azul); }
.cle__reportar { font-family: var(--fuente-ui); font-size: var(--t-sm); color: var(--azul); max-width: 56rem; margin-top: var(--e4); }
@media (max-width: 29.99rem) { .cle__tabla td:first-child .cle__detalle { font-weight: 400; } }
.cursos__cle { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; color: var(--azul); margin: var(--e3) 0 0; }
/* Cómo cuentan para el requisito de Florida (tabla bajo los cursos aprobados) */
.cle__req-titulo { margin-top: var(--e7); }
.cle__req-entrada { max-width: 56rem; }
.cle__requisito { max-width: 56rem; }
.cle__requisito tbody th { width: 40%; }
.cle__req-horas { display: block; font-weight: 400; font-size: var(--t-xs); color: var(--tinta-suave); margin-top: 2px; }
.cle__requisito td p { margin: 0; }
.cle__req-lista { margin: 0; padding-left: 1.1em; }
.cle__req-lista li { margin: 0 0 2px; }
.cle__req-lista a { color: var(--coral-texto); }
.cle__requisito td .cle__req-pronto { margin-top: var(--e2); }
.cle__req-pronto .pronto { margin-right: var(--e2); vertical-align: 1px; }
.cle__req-fuentes { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); max-width: 56rem; margin: calc(-1 * var(--e3)) 0 var(--e6); }
.cle__req-fuentes a { color: var(--tinta-suave); }
@media (max-width: 29.99rem) {
  .cle__requisito thead { display: none; }
  .cle__requisito table, .cle__requisito tbody, .cle__requisito tr, .cle__requisito th, .cle__requisito td { display: block; width: 100%; }
  .cle__requisito tr { padding: var(--e3) 0; border-bottom: 1px solid var(--linea-suave); }
  .cle__requisito th, .cle__requisito td { border: 0; padding: 2px 0; }
  .cle__requisito tbody th { width: 100%; }
}
.cursos__cle a { color: var(--coral-texto); margin-left: var(--e1); }

/* --- 9z. CERTIFICADO NAFA Y CLE PARA ABOGADOS CON LICENCIA ---------------- */

.certificado__para { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; color: var(--azul); max-width: 44rem; margin: 0; }
.plan { display: grid; gap: var(--e5); margin-top: var(--e4); }
@media (min-width: 48rem) { .plan { grid-template-columns: 1fr 1fr; } }
.plan__bloque { border: 1px solid var(--linea); border-top: 4px solid var(--azul); background: var(--papel); padding: var(--e5); }
.plan__bloque--electivos { border-top-color: var(--coral); }
.plan__etiqueta { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--coral-texto); margin: 0 0 var(--e2); }
.plan__bloque h3 { font-size: var(--t-lg); margin: 0 0 var(--e3); }
.plan__lista { list-style: none; margin: 0; padding: 0; }
.plan__lista li { padding: var(--e2) 0; border-bottom: 1px solid var(--linea-suave); }
.plan__lista li:last-child { border-bottom: 0; }
.plan__curso { display: block; font-family: var(--fuente-ui); font-weight: 600; color: var(--azul); }
.plan__curso a { color: inherit; }
.plan__en { display: block; font-size: var(--t-xs); color: var(--tinta-suave); }
.plan__mencion { font-size: var(--t-sm); background: var(--coral-velo); padding: var(--e3) var(--e4); margin: var(--e4) 0 0; }
.plan__tiempo { max-width: 48rem; margin-top: var(--e5); }
.plan__cle { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; color: var(--azul); }
.plan__cle a { color: var(--coral-texto); margin-left: var(--e1); }
.certificado__dos { display: grid; gap: var(--e6); }
@media (min-width: 62rem) { .certificado__dos { grid-template-columns: 1fr 1fr; gap: var(--e7); } }
.certificado__dos .lista-check li { font-size: var(--t-sm); }
.certificado__aviso { max-width: 52rem; margin-top: var(--e6); }
.cle__extranjero { margin-top: var(--e6); background: var(--azul-velo); border-top: 4px solid var(--azul); padding: var(--e5); max-width: 56rem; }
.cle__extranjero h2 { font-size: var(--t-lg); margin: 0 0 var(--e3); }
.cle__extranjero p { font-size: var(--t-sm); }
.cle__extranjero p:last-child { margin-bottom: 0; }

/* --- 9aa. PÁGINA DE UN CURSO ------------------------------------------- */

.curso-pag__codigo { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--coral-texto); margin: var(--e3) 0 var(--e1); }
.curso-pag__en { font-family: var(--fuente-ui); font-size: var(--t-sm); color: var(--tinta-suave); margin: 0 0 var(--e3); }
.curso-pag { display: grid; gap: var(--e6); }
@media (min-width: 62rem) { .curso-pag { grid-template-columns: minmax(0, 1fr) 20rem; gap: var(--e7); align-items: start; } }
.curso-pag__principal > h2:first-child { margin-top: 0; }
.curso-pag__principal h2 { margin-top: var(--e6); }
.temario { list-style: none; margin: 0; padding: 0; counter-reset: none; max-width: var(--ancho-texto); border-top: 1px solid var(--linea-suave); }
.temario li { display: grid; grid-template-columns: 6.5rem 1fr; gap: var(--e3); padding: var(--e3) 0; border-bottom: 1px solid var(--linea-suave); font-size: var(--t-sm); }
.temario__semana { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; color: var(--azul); padding-top: 2px; }
.curso-pag__cle { margin-top: var(--e6); background: var(--azul-velo); border-left: 3px solid var(--azul); padding: var(--e4) var(--e5); }
.curso-pag__cle h2 { font-size: var(--t-md); margin: 0 0 var(--e2) !important; }
.curso-pag__cle p { font-size: var(--t-sm); }
.curso-pag__cle-nota { margin-bottom: 0; color: var(--tinta-suave); }
.curso-pag__aviso { margin-top: var(--e6); }
.curso-pag__ficha { position: sticky; top: 6rem; }
@media (max-width: 61.99rem) { .curso-pag__ficha { position: static; order: -1; } }
.curso-pag__ficha .datos { max-width: none; margin: 0; }
.curso-pag__profes { margin-top: var(--e4); }
.curso-pag__etiqueta { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--coral-texto); margin: 0 0 var(--e2); }
.curso-pag__profe { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; margin: 0 0 var(--e2); }
.curso-pag__profe span { display: block; font-weight: 400; color: var(--tinta-suave); font-size: var(--t-xs); }
.curso-pag__reembolso { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); margin-top: var(--e4); }
.temario__tema { display: block; font-family: var(--fuente-ui); font-size: var(--t-sm); color: var(--azul); }
.temario__detalle { display: block; color: var(--tinta-suave); margin: 2px 0 0; padding-left: calc(6.5rem + var(--e3)); }
/* Semanas desplegables: en el teléfono se abren al tocarlas; en pantallas anchas el script del pie las deja abiertas. */
.temario li.temario__abre { display: block; }
.temario__item summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 6.5rem 1fr auto; gap: var(--e3); align-items: start; }
.temario__item summary::-webkit-details-marker { display: none; }
.temario__item summary::after {
  content: ''; width: .45rem; height: .45rem; margin: .35rem .3rem 0 0;
  border-right: 2px solid var(--coral-texto); border-bottom: 2px solid var(--coral-texto);
  transform: rotate(45deg); transition: transform .15s;
}
.temario__item[open] summary::after { transform: rotate(225deg); }
.temario__item summary:focus-visible { outline: 2px solid var(--coral); outline-offset: 2px; }
.temario__ayuda { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); margin: 0 0 var(--e3); }
@media (min-width: 48rem) {
  .temario__ayuda { display: none; }
  .temario__item[open] summary { cursor: default; }
  .temario__item[open] summary::after { display: none; }
}
.curso-pag__nota { font-size: var(--t-sm); color: var(--tinta-suave); }
.cursos__horario { font-family: var(--fuente-ui); font-size: var(--t-sm); color: var(--tinta-suave); margin-top: var(--e3); }
.curso__titulo a { color: inherit; text-decoration: none; }
.curso__titulo a:hover, .curso__titulo a:focus-visible { text-decoration: underline; text-decoration-color: var(--coral); text-underline-offset: 3px; }
.curso-pag__aviso-fecha { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); margin: var(--e3) 0 0; }
.curso-pag__ficha .datos__nota { display: block; font-weight: 400; color: var(--tinta-suave); font-size: var(--t-xs); }
.curso-pag__etiqueta--asist { margin-top: var(--e4); }
.curso-pag__asist { font-family: var(--fuente-ui); font-size: var(--t-sm); margin: 0; }
.curso-pag__formato { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); margin-top: var(--e4); }
@media (max-width: 29.99rem) {
  .temario li { grid-template-columns: 1fr; gap: var(--e1); }
  .temario__item summary { grid-template-columns: 1fr auto; gap: var(--e1) var(--e3); }
  .temario__item summary .temario__semana { grid-column: 1; grid-row: 1; }
  .temario__item summary .temario__tema { grid-column: 1; grid-row: 2; }
  .temario__item summary::after { grid-column: 2; grid-row: 1 / span 2; align-self: center; margin-top: 0; }
  .temario__detalle { padding-left: 0; }
}


/* --- 9ab. EL LL.M. ------------------------------------------------------ */

.llm-que { display: grid; gap: var(--e6); }
@media (min-width: 62rem) { .llm-que { grid-template-columns: 1.4fr 1fr; gap: var(--e7); align-items: start; } }
.llm-que > div > p { max-width: var(--ancho-texto); }
.llm-que__nombre { font-family: var(--fuente-ui); font-size: var(--t-sm); font-weight: 600; color: var(--coral-texto); margin-top: calc(-1 * var(--e2)); }
.llm-que__aba { background: var(--azul-velo); border-left: 3px solid var(--azul); padding: var(--e5); }
.llm-que__aba h3 { font-size: var(--t-md); margin-bottom: var(--e2); }
.llm-que__aba p { font-size: var(--t-sm); margin: 0; }

.llm-estados { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e4); }
@media (min-width: 48rem) { .llm-estados { grid-template-columns: 1fr 1fr; } }
@media (min-width: 75rem) { .llm-estados { grid-template-columns: repeat(3, 1fr); } }
.llm-estado { background: var(--papel); border: 1px solid var(--linea); border-top: 3px solid var(--azul); padding: var(--e5); display: flex; flex-direction: column; gap: var(--e3); }
.llm-estado p { font-size: var(--t-sm); margin: 0; }
.llm-estado .via__limite { margin-top: auto; }
.llm-estado__cabeza { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--e2) var(--e3); }
.llm-estado__cabeza h3 { font-size: var(--t-lg); margin: 0; }
.llm-estado__veredicto { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; padding: .2rem .6rem; border-radius: 999px; background: var(--azul-velo); color: var(--azul); }
.llm-estado__veredicto--si { background: var(--azul); color: #fff; }
.llm-estado__veredicto--no { background: var(--coral-velo); color: var(--coral-texto); }

.llm-tipos { display: grid; gap: var(--e5); }
@media (min-width: 48rem) { .llm-tipos { grid-template-columns: 1fr 1fr; } }
.llm-tipo { border: 1px solid var(--linea); border-top: 4px solid var(--azul); background: var(--papel); padding: var(--e5); display: flex; flex-direction: column; gap: var(--e3); }
.llm-tipo h3 { font-size: var(--t-lg); margin: 0; }
.llm-tipo__ingles { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); margin: calc(-1 * var(--e2)) 0 0; }
.llm-tipo > p { font-size: var(--t-sm); margin: 0; }
.llm-tipo .via__limite { margin-top: auto; }
.llm-ejemplo { background: var(--papel-alt); border-left: 3px solid var(--azul); padding: var(--e3) var(--e4); }
.llm-ejemplo p { font-size: var(--t-sm); margin: 0; }
.llm-ejemplo .llm-ejemplo__nombre { font-family: var(--fuente-ui); font-weight: 700; margin-bottom: var(--e1); }

.llm-antes { max-width: var(--ancho-texto); margin: 0; padding-left: 1.4rem; }
.llm-antes li { margin-bottom: var(--e3); }
.llm-antes li::marker { font-family: var(--fuente-ui); font-weight: 700; color: var(--coral-texto); }

@media (min-width: 62rem) { .llm-rasgos { grid-template-columns: repeat(3, 1fr); } }
.llm-fundador { font-style: italic; color: var(--azul); max-width: var(--ancho-texto); margin: var(--e6) 0 0; padding-left: var(--e4); border-left: 3px solid var(--azul); }
.llm-nota { margin-top: var(--e5); max-width: var(--ancho-texto); }


/* --- 9ac. AUDITORÍA: "NO PUEDE", "EN UN MINUTO", "CON NAFA", GUÍA DE MIEMBROS ---- */

.seccion--estrecha { padding-block: var(--e6) 0; }
.no-puede { margin-top: var(--e6); background: var(--azul-velo); border-top: 4px solid var(--azul); padding: var(--e5); }
.seccion--estrecha .no-puede { margin-top: 0; }
@media (min-width: 62rem) { .no-puede { padding: var(--e6); display: grid; grid-template-columns: 1fr 1.4fr; gap: var(--e3) var(--e7); align-items: start; } }
.no-puede .no-puede__titulo { font-size: var(--t-xl); margin: 0 0 var(--e3); }
.no-puede__lista { margin: 0; }
.no-puede__lista li { font-size: var(--t-sm); }
.no-puede__botones { margin: var(--e4) 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--e3) var(--e5); }
@media (min-width: 62rem) { .no-puede__botones { grid-column: 1; grid-row: 2; margin-top: 0; } .no-puede__lista { grid-column: 2; grid-row: 1 / span 2; } }

.minuto { margin: var(--e5) 0 var(--e4); background: var(--papel); border: 1px solid var(--linea); border-left: 4px solid var(--azul); padding: var(--e4) var(--e5); max-width: 48rem; }
.minuto__titulo { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--coral-texto); margin: 0 0 var(--e2); }
.minuto__lista { list-style: none; margin: 0; padding: 0; }
.minuto__lista li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--e1) var(--e4); padding: var(--e2) 0; border-bottom: 1px solid var(--linea-suave); font-size: var(--t-sm); }
.minuto__si { color: var(--tinta); }
.minuto__via { font-family: var(--fuente-ui); font-weight: 700; white-space: nowrap; }
.minuto__cierre { margin: var(--e3) 0 0; font-size: var(--t-sm); }

.con-nafa { font-size: var(--t-sm); background: var(--azul-velo); border-left: 3px solid var(--azul); padding: var(--e3) var(--e4); }
.traducciones__nafa { margin-top: var(--e5); font-size: var(--t-sm); background: var(--azul-velo); border-left: 3px solid var(--azul); padding: var(--e3) var(--e4); max-width: 48rem; }
.guia-miembros { margin-top: var(--e6); border: 1px solid var(--linea); border-top: 4px solid var(--coral); padding: var(--e5); }
.guia-miembros h2 { font-size: var(--t-xl); margin-bottom: var(--e3); }


/* --- 9ad. SPEAKER SERIES: TEMAS EN PREPARACIÓN --------------------------- */
.serie__subtitulo { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--coral-texto); margin: var(--e5) 0 var(--e3); }
.serie__temas { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--linea-suave); }
.serie__temas li { padding: var(--e3) 0; border-bottom: 1px solid var(--linea-suave); font-size: var(--t-sm); }
.serie__temas strong { display: block; font-family: var(--fuente-ui); color: var(--azul); }
.serie__temas span { color: var(--tinta-suave); }
.serie__acciones { margin-top: var(--e5); font-size: var(--t-sm); }


/* --- 9ae. VÍAS: LICENCIA SIN EL EXAMEN DEL BAR -------------------------- */
#sin-examen-bar { scroll-margin-top: 5.5rem; }
.sin-examen-bar__nombre { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 600; color: var(--tinta-suave); margin-top: calc(-1 * var(--e2)) !important; }
.sin-examen-bar__desde { font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--azul); }
.sin-examen-bar__para-ti { margin-top: var(--e6); background: var(--azul-velo); border-left: 4px solid var(--azul); padding: var(--e5); max-width: 52rem; }
.sin-examen-bar__para-ti h3 { font-size: var(--t-lg); margin-bottom: var(--e3); }
.sin-examen-bar__para-ti .lista-check li { font-size: var(--t-sm); }


/* --- 9af. VÍAS: PRO BONO ------------------------------------------------- */
#pro-bono { scroll-margin-top: 5.5rem; }
@media (min-width: 75rem) { .pro-bono { grid-template-columns: 1fr 1fr; } }
.pro-bono__veredicto { align-self: flex-start; }


/* --- 9ag. ACREDITACIÓN DE LAS FACULTADES -------------------------------- */
.acred-intro p { max-width: var(--ancho-texto); }
.acred-tabla { margin-bottom: var(--e6); }
.acred-tabla table { min-width: 44rem; }
.acred-tabla th[scope="row"] { font-family: var(--fuente-ui); color: var(--azul); text-align: left; white-space: nowrap; }
.acred-tabla td, .acred-tabla th { font-size: var(--t-sm); vertical-align: top; }
.acred-modelos .con-nafa { margin: 0; }
.acred-para-ti { margin-top: 0; }
.acred-para-ti h2 { font-size: var(--t-xl); margin-bottom: var(--e3); }
.acred-lectura { margin-top: var(--e5); font-size: var(--t-sm); max-width: var(--ancho-texto); }
.acred-tabla { max-width: none; }
.acred-tabla tbody th { width: auto; }


/* --- 9ah. FOREIGN LEGAL CONSULTANT, ASESOR INTERNO Y ESTADO POR ESTADO ---- */
.minuto--respuestas .minuto__via { white-space: normal; text-align: right; }

/* Lo que se repite: una lista numerada en rejilla */
.flc-comun { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e4); counter-reset: comun; }
@media (min-width: 48rem) { .flc-comun { grid-template-columns: 1fr 1fr; } }
@media (min-width: 75rem) { .flc-comun { grid-template-columns: repeat(3, 1fr); } }
.flc-comun li { counter-increment: comun; background: var(--papel); border: 1px solid var(--linea); padding: var(--e4) var(--e5) var(--e5); }
.flc-comun li::before { content: counter(comun); display: block; font-family: var(--fuente-ui); font-size: var(--t-lg); font-weight: 700; color: var(--coral-texto); line-height: 1; margin-bottom: var(--e2); }
.flc-comun h3 { font-size: var(--t-md); margin: 0 0 var(--e2); }
.flc-comun p { font-size: var(--t-sm); margin: 0; }

/* Quién decide: tabla y fichas */
.flc-tabla td:nth-child(4), .interno-tabla td:nth-child(4) { white-space: normal; }
.flc-modelos { display: grid; gap: var(--e5); }
@media (min-width: 62rem) { .flc-modelos { grid-template-columns: 1fr 1fr; } }
.flc-modelo { border: 1px solid var(--linea); border-top: 4px solid var(--azul); background: var(--papel); padding: var(--e5); display: flex; flex-direction: column; gap: var(--e3); }
.flc-modelo__tipo { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--coral-texto); margin: 0; }
.flc-modelo h3 { font-size: var(--t-xl); margin: calc(-1 * var(--e2)) 0 0; }
.flc-modelo h4 { font-family: var(--fuente-ui); font-size: var(--t-sm); margin: 0; }
.flc-modelo > p, .flc-modelo li { font-size: var(--t-sm); }
.flc-modelo > p, .flc-modelo .lista-check { margin: 0; }
.flc-modelo__distinto { background: var(--azul-velo); border-left: 3px solid var(--azul); padding: var(--e3) var(--e4); margin-top: auto !important; }

/* Dónde existe */
.flc-donde { list-style: none; margin: 0 0 var(--e5); padding: 0; columns: 2; column-gap: var(--e5); }
@media (min-width: 48rem) { .flc-donde { columns: 3; } }
@media (min-width: 75rem) { .flc-donde { columns: 4; } }
.flc-donde li { break-inside: avoid; padding: var(--e2) 0; border-bottom: 1px solid var(--linea-suave); font-family: var(--fuente-ui); font-size: var(--t-sm); }

/* ¿Es para ti? */
.flc-para-ti { display: grid; gap: var(--e6); }
@media (min-width: 62rem) { .flc-para-ti { grid-template-columns: 1fr 1fr; gap: var(--e7); } }
.flc-para-ti h3 { font-size: var(--t-lg); margin-bottom: var(--e3); }
.flc-para-ti .lista-check li { font-size: var(--t-sm); }
.flc-otra { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--linea-suave); }
.flc-otra li { padding: var(--e3) 0; border-bottom: 1px solid var(--linea-suave); font-size: var(--t-sm); display: flex; flex-direction: column; gap: var(--e1); }
.flc-nafa { margin-top: var(--e6); background: var(--azul-velo); border-left: 4px solid var(--azul); padding: var(--e5); max-width: 52rem; }
.flc-nafa h3 { font-size: var(--t-lg); margin-bottom: var(--e3); }
.flc-nafa p { font-size: var(--t-sm); }

/* Asesor interno */
.interno-tabla th[scope="row"] { white-space: normal; }
.interno-copia { font-size: var(--t-xs); color: var(--tinta-suave); }
.interno-subtitulo { font-size: var(--t-lg); margin: var(--e6) 0 var(--e4); }
.interno-flc { list-style: none; margin: 0 0 var(--e4); padding: 0; display: grid; gap: var(--e4); }
@media (min-width: 62rem) { .interno-flc { grid-template-columns: repeat(3, 1fr); } }
.interno-flc li { border: 1px solid var(--linea); border-top: 3px solid var(--azul); padding: var(--e4) var(--e5); background: var(--papel); }
.interno-flc h4 { font-size: var(--t-md); margin: 0 0 var(--e2); }
.interno-flc p { font-size: var(--t-sm); margin: 0 0 var(--e2); }
.interno-flc .interno-flc__regla { margin: 0; font-family: var(--fuente-ui); font-size: var(--t-xs); }
.interno-aviso { margin-top: var(--e6); max-width: 52rem; }
.interno-aviso p { font-size: var(--t-sm); }

/* Estado por estado: leyenda */
.estados-leyenda { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e4); }
@media (min-width: 62rem) { .estados-leyenda { grid-template-columns: 1.3fr 1fr 1fr; } }
.estados-leyenda > li { border: 1px solid var(--linea); border-top: 3px solid var(--azul); padding: var(--e4) var(--e5); }
.estados-leyenda h3 { font-size: var(--t-md); margin: 0 0 var(--e3); }
.estados-leyenda p { font-size: var(--t-sm); margin: 0 0 var(--e2); }

/* Estado por estado: filtro */
.estados-filtro { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--e4) var(--e6); margin-bottom: var(--e5); font-family: var(--fuente-ui); font-size: var(--t-sm); }
.estados-filtro[hidden] { display: none; }
.estados-filtro__buscar { display: flex; flex-direction: column; gap: var(--e1); flex: 1 1 14rem; max-width: 22rem; }
.estados-filtro__buscar label { font-weight: 600; }
.estados-filtro input[type="search"] { font: inherit; padding: var(--e2) var(--e3); border: 1px solid var(--linea); border-radius: 4px; background: var(--papel); width: 100%; }
.estados-filtro__vias { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--e2); min-width: 0; }
.estados-filtro__vias legend { font-weight: 600; padding: 0; margin-bottom: var(--e1); width: 100%; }
.estados-filtro__vias label { display: inline-flex; align-items: center; gap: var(--e1); padding: .3rem .7rem; border: 1px solid var(--linea); border-radius: 999px; background: var(--papel); cursor: pointer; }
.estados-filtro__vias label:has(input:checked) { border-color: var(--azul); background: var(--azul-velo); color: var(--azul); font-weight: 600; }
.estados-filtro__cuenta { margin: 0; color: var(--tinta-suave); flex-basis: 100%; min-height: 1.2em; }

/* Estado por estado: tabla */
.estados-tabla table { width: 100%; border-collapse: collapse; font-family: var(--fuente-ui); font-size: var(--t-sm); border-top: 3px solid var(--azul); background: var(--papel); }
.estados-tabla th, .estados-tabla td { text-align: left; padding: var(--e2) var(--e3); border-bottom: 1px solid var(--linea-suave); vertical-align: top; }
.estados-tabla thead th { font-size: var(--t-xs); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--tinta-suave); }
.estados-tabla tbody th { color: var(--azul); font-weight: 700; }
.estados-tabla tbody tr[hidden] { display: none; }
.estados-tabla__guia { margin-left: var(--e1); font-size: var(--t-xs); font-weight: 700; color: var(--coral-texto); }
.estados-tabla__nota { display: block; font-size: var(--t-xs); font-weight: 400; color: var(--tinta-suave); margin-top: 2px; }
.estado-valor { display: inline-block; font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; line-height: 1.4; padding: .15rem .6rem; border-radius: 999px; }
.estado-valor--si { background: var(--azul); color: #fff; }
.estado-valor--parcial { background: var(--azul-velo); color: var(--azul); }
.estado-valor--duda { background: var(--papel-alt); color: var(--tinta-suave); border: 1px dashed var(--linea); }
.estado-valor--no { color: var(--tinta-suave); font-weight: 600; padding-inline: 0; }
.estados-nota { margin-top: var(--e4); font-size: var(--t-sm); color: var(--tinta-suave); max-width: var(--ancho-texto); }

/* Tablas que se apilan en el teléfono: cada fila, una ficha con sus etiquetas */
@media (max-width: 47.99rem) {
  .acred-tabla .tabla-apilada { min-width: 0; }
  .tabla-apilada thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
  .tabla-apilada, .tabla-apilada tbody, .tabla-apilada tr { display: block; width: 100%; border-top: 0; background: none; }
  .tabla-apilada tbody tr { border: 1px solid var(--linea); background: var(--papel); padding: var(--e3) var(--e4); margin-bottom: var(--e3); }
  .tabla-apilada tbody tr[hidden] { display: none; }
  .tabla-apilada tbody th { display: block; width: auto; border: 0; padding: 0 0 var(--e2); white-space: normal; }
  .tabla-apilada td { display: grid; grid-template-columns: minmax(6.5rem, 38%) 1fr; gap: var(--e3); border: 0; padding: var(--e1) 0; white-space: normal; }
  .tabla-apilada td > * { justify-self: start; align-self: start; }
  .tabla-apilada td::before { content: attr(data-etiqueta); font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 600; color: var(--tinta-suave); }
}

/* Rótulos de grupo dentro de un submenú ('grupo' en includes/sitemap.php) */
.nav__grupo { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--coral-texto); padding: var(--e3) 0 var(--e1); }
.nav__grupo:first-child { padding-top: var(--e1); }
@media (min-width: 75rem) { .nav__grupo { padding: var(--e3) var(--e4) var(--e1); } .nav__grupo:not(:first-child) { margin-top: var(--e2); border-top: 1px solid var(--linea-suave); } }

/* Estado por estado: el mapa (una casilla por jurisdicción) y la ficha de cada estado */
.mapa-vias { border: 0; margin: 0 0 var(--e5); padding: 0; display: flex; flex-wrap: wrap; gap: var(--e2); font-family: var(--fuente-ui); font-size: var(--t-sm); }
.mapa-vias[hidden] { display: none; }
.mapa-vias label { display: inline-flex; align-items: center; gap: var(--e1); padding: .35rem .8rem; border: 1px solid var(--linea); border-radius: 999px; background: var(--papel); cursor: pointer; }
.mapa-vias label:has(input:checked) { border-color: var(--azul); background: var(--azul); color: #fff; font-weight: 600; }
.mapa-bloque { display: grid; gap: var(--e5); align-items: start; }
@media (min-width: 62rem) { .mapa-bloque { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: var(--e6); } }
.mapa-titulo { font-family: var(--fuente-ui); font-size: var(--t-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--coral-texto); margin: 0 0 var(--e3); }
.mapa { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); gap: 3px; max-width: 40rem; }
.mapa__t { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; font-family: var(--fuente-ui); font-size: clamp(.5625rem, 2.6vw, .8125rem); font-weight: 700; text-decoration: none; border-radius: 3px; background: var(--linea-suave); color: var(--tinta-suave); border: 1px solid transparent; transition: transform .1s ease; }
.mapa__t:hover, .mapa__t:focus-visible { transform: scale(1.08); position: relative; z-index: 1; outline: 2px solid var(--coral); outline-offset: 1px; }
.mapa__t[aria-current="true"] { outline: 3px solid var(--coral); outline-offset: 1px; position: relative; z-index: 1; }
.mapa__territorios { grid-row: 9; grid-column: 4 / span 6; align-self: center; font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); padding-left: var(--e2); }
.mapa[data-ver="bar"] .mapa__t[data-bar="si"],
.mapa[data-ver="flc"] .mapa__t[data-flc="si"],
.mapa[data-ver="interno"] .mapa__t[data-interno="si"] { background: var(--azul); color: #fff; }
.mapa[data-ver="bar"] .mapa__t[data-bar="licencia"],
.mapa[data-ver="interno"] .mapa__t[data-interno="flc"] { background: #8fa6c2; color: var(--azul-profundo); }
.mapa[data-ver="interno"] .mapa__t[data-interno="confirmar"] { background: var(--papel); border: 1px dashed var(--tinta-suave); color: var(--tinta); }
.mapa-leyenda { list-style: none; margin: var(--e4) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--e2) var(--e5); font-family: var(--fuente-ui); font-size: var(--t-xs); color: var(--tinta-suave); }
.mapa-leyenda[hidden] { display: none; }
.mapa-leyenda li { display: inline-flex; align-items: center; gap: var(--e2); }
.mapa-leyenda__m { width: .9rem; height: .9rem; border-radius: 2px; background: var(--linea-suave); }
.mapa-leyenda__m--si { background: var(--azul); }
.mapa-leyenda__m--parcial { background: #8fa6c2; }
.mapa-leyenda__m--duda { background: var(--papel); border: 1px dashed var(--tinta-suave); }
.mapa-ficha { background: var(--azul-velo); border-top: 4px solid var(--azul); padding: var(--e5); min-height: 12rem; scroll-margin-top: 6rem; }
.mapa-ficha h3 { font-size: var(--t-xl); margin: 0 0 var(--e2); }
.mapa-ficha p { font-size: var(--t-sm); }
.mapa-ficha__vacia { color: var(--tinta-suave); margin: 0; }
.mapa-ficha__nota { color: var(--tinta-suave); margin: 0 0 var(--e3); }
.mapa-ficha__vias { list-style: none; margin: 0 0 var(--e4); padding: 0; border-top: 1px solid var(--linea); }
.mapa-ficha__vias li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--e2) var(--e3); padding: var(--e2) 0; border-bottom: 1px solid var(--linea); font-family: var(--fuente-ui); font-size: var(--t-sm); }
.mapa-ficha__etq a { color: var(--tinta); text-decoration-color: var(--linea); }
.mapa-ficha__etq a:hover { color: var(--coral-texto); }
.mapa-ficha__sub { font-family: var(--fuente-ui); font-size: var(--t-xs) !important; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--coral-texto); margin: 0 0 var(--e2); }
.mapa-ficha__otras { margin: 0 0 var(--e4); padding-left: 1.1rem; }
.mapa-ficha__otras li { font-size: var(--t-sm); margin-bottom: var(--e2); }
.mapa-ficha__guia { margin: 0; }
.mapa-ficha__guia--pronto { color: var(--tinta-suave); }
.estados-tabla__otras { color: var(--azul); font-weight: 600; }
.estados-tabla tbody tr:target { background: var(--coral-velo); }

/* Guía de estado: la ruta típica ('ruta' en contenido/estados/{estado}.php) */
.ruta { margin-top: var(--e6); background: var(--azul-velo); border-top: 4px solid var(--coral); padding: var(--e5); max-width: 60rem; }
@media (min-width: 48rem) { .ruta { padding: var(--e6); } }
.jurisdiccion .ruta h2 { margin-top: 0; }
.ruta__entrada { font-size: var(--t-md); }
.jurisdiccion .ruta__pasos { list-style: none; counter-reset: ruta; margin: var(--e5) 0; padding: 0; max-width: none; display: grid; gap: var(--e3); }
.jurisdiccion .ruta__pasos li { counter-increment: ruta; margin: 0; background: var(--papel); border: 1px solid var(--linea); padding: var(--e4); display: grid; grid-template-columns: 2.25rem 1fr; column-gap: var(--e3); }
.ruta__pasos li::before { content: counter(ruta); grid-row: 1 / span 2; width: 2rem; height: 2rem; border-radius: 50%; background: var(--azul); color: #fff; font-family: var(--fuente-ui); font-weight: 700; display: flex; align-items: center; justify-content: center; }
.jurisdiccion .ruta__pasos h3 { font-size: var(--t-base); margin: 0 0 var(--e1); }
.ruta__pasos p { font-size: var(--t-sm); margin: 0; }
.ruta__nota { font-size: var(--t-sm); margin-bottom: var(--e3); }
.ruta__historia { font-style: italic; color: var(--azul); border-left: 3px solid var(--coral); padding-left: var(--e4); margin: 0; }
.ficha__ver { font-family: var(--fuente-ui); font-size: var(--t-sm); margin: 0 0 var(--e3); }

/* Eventos: inscripción y «Agregar a mi calendario»; el próximo evento en la portada */
.evento__acciones { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--e2) var(--e4); margin: var(--e2) 0 0; font-family: var(--fuente-ui); font-size: var(--t-sm); }
.evento__cal { color: var(--azul); }
.proximo-evento { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--e1) var(--e4); background: var(--azul-velo); border-left: 4px solid var(--coral); padding: var(--e3) var(--e4); margin: 0 0 var(--e5); max-width: none; font-family: var(--fuente-ui); font-size: var(--t-sm); }
.proximo-evento__etq { font-size: var(--t-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--coral-texto); }
.proximo-evento strong { color: var(--azul); }
