/* TestAzul. Azul marino, foto real y cifras. Cabecera y pie de borde a borde, y una
   sola medida de lectura. El verde y el rojo solo para acierto y corrección. */
@font-face {
  font-family: "Figtree";
  src: url("/fuentes/figtree-latin.woff2") format("woff2");
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --marino: #0b2a6b;
  --noche: #071c4a;
  --azul: #1f5fff;
  --suave: #eaf1ff;
  --fondo: #f4f6fb;
  --linea: #e1e7f3;
  --texto: #0c1f4d;
  --gris: #47567a;
  --verde: #0b7a3e;
  --verde-suave: #e4f5ea;
  --rojo: #c8232c;
  --rojo-suave: #fdebec;
  --ancho: 72.5rem;
  --lectura: 44rem;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: #fff;
  color: var(--texto);
  font-family: "Figtree", system-ui, sans-serif;
  font-size: 1.0625rem;
  line-height: 1.55;
}
a { color: var(--azul); font-weight: 600; text-underline-offset: 0.16em; }
h1, h2, h3, p, ol, ul, table { margin: 0; }
h1, h2, h3 { font-weight: 800; letter-spacing: -0.02em; }
:focus-visible { outline: 3px solid var(--azul); outline-offset: 2px; border-radius: 4px; }

.franja { padding: 0.35rem 16px; background: var(--noche); color: #dbe5ff; font-size: 0.8125rem; text-align: center; }

.cabecera {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 2.25rem;
  width: 100%;
  padding: 0.9rem 40px;
  background: #fff;
  color: var(--marino);
}
.logo { color: var(--marino); font-size: 1.75rem; font-weight: 700; letter-spacing: -0.015em; text-decoration: none; display: inline-flex; align-items: center; gap: 0.5rem; }
.logo span { margin-left: -0.5rem; color: var(--azul); }
.cabecera nav { display: flex; flex-wrap: wrap; gap: 0.2rem 1.6rem; margin-right: auto; }
.cabecera nav a { color: var(--marino); text-decoration: none; }
.cabecera nav a:hover { color: var(--azul); }
.cabecera nav a[aria-current="page"] { color: var(--azul); text-decoration: underline; text-underline-offset: 0.3em; text-decoration-thickness: 2px; }
.entrar { text-decoration: none; }

/* Portada */
.foto {
  display: flex;
  align-items: center;
  min-height: 27rem;
  padding: 3rem 40px;
  background:
    linear-gradient(90deg, rgba(7, 28, 74, 0.93) 0, rgba(7, 28, 74, 0.74) 46%, rgba(7, 28, 74, 0.18) 80%),
    url("/img/portada-pista.jpg") center 24% / cover;
  color: #fff;
}
.foto__dentro { width: 100%; max-width: var(--ancho); margin: 0 auto; }
h1 { font-size: clamp(2.5rem, 7.5vw, 3.5rem); line-height: 1.06; }
.entrada { max-width: 34rem; margin-top: 0.9rem; color: #e4ebff; font-size: 1.1875rem; }
.acciones { display: flex; flex-wrap: wrap; gap: 0.75rem 1rem; margin-top: 1.4rem; }

.boton {
  display: inline-block;
  padding: 0.8rem 1.5rem;
  border: 1.5px solid transparent;
  border-radius: 8px;
  background: var(--azul);
  color: #fff;
  font: inherit;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}
.boton:hover { background: var(--marino); }
.boton--blanco { background: #fff; color: var(--marino); }
.boton--blanco:hover { background: var(--suave); }
.boton--borde { border-color: #fff; background: transparent; color: #fff; }
.boton--borde:hover { background: rgba(255, 255, 255, 0.14); }

/* Cifras y pantallas, montadas sobre la foto */
.abajo {
  display: grid;
  gap: 2.5rem;
  max-width: calc(var(--ancho) + 80px);
  margin: 0 auto;
  padding: 2rem 40px 3rem;
}
.cifras { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.6rem 1.25rem; align-content: start; color: var(--marino); }
.cifras b { display: block; font-size: 2.125rem; font-weight: 800; line-height: 1.1; }
.cifras span { color: var(--gris); font-size: 0.9375rem; }

.equipos { position: relative; }
.campus {
  display: grid;
  overflow: hidden;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 10px 40px rgba(7, 28, 74, 0.26);
}
.campus aside { display: none; }
.cmain { padding: 1rem; }
.ctit { font-size: 1.1875rem; font-weight: 700; }
.cgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; margin-top: 0.7rem; }
.cc { min-height: 6.75rem; padding: 0.7rem; border: 1px solid var(--linea); border-radius: 12px; font-size: 0.875rem; line-height: 1.3; }
.cc small { display: block; color: var(--gris); font-size: 0.75rem; }
.cc p { margin-top: 0.25rem; font-weight: 600; }
.cc strong { display: block; font-size: 1.9rem; line-height: 1.2; }
.barra { display: block; height: 7px; margin: 0.35rem 0; border-radius: 9px; background: #e4eaf6; overflow: hidden; }
.barra span { display: block; height: 100%; border-radius: 9px; background: var(--azul); }
.cc em { display: inline-block; margin-top: 0.35rem; padding: 0.1rem 0.55rem; border-radius: 9px; background: var(--verde-suave); color: var(--verde); font-size: 0.8125rem; font-style: normal; font-weight: 700; }

.app {
  position: relative;
  width: 14.5rem;
  margin: -1.5rem auto 0;
  padding: 1.1rem 0.8rem 1rem;
  border: 6px solid var(--noche);
  border-radius: 30px;
  background: #fff;
  box-shadow: 0 10px 40px rgba(7, 28, 74, 0.32);
}
.app small { color: var(--gris); font-size: 0.75rem; }
.app__pregunta { margin: 0.3rem 0 0.4rem; font-size: 0.875rem; font-weight: 700; line-height: 1.28; }
.opciones { display: grid; gap: 0.35rem; }
.opcion {
  width: 100%;
  padding: 0.45rem 0.65rem;
  border: 1.5px solid #dfe6f3;
  border-radius: 10px;
  background: #fff;
  color: inherit;
  font: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}
.opcion:hover:not([disabled]) { border-color: var(--azul); }
.opcion[disabled] { color: var(--gris); cursor: default; }
.opcion.acierto { border-color: var(--verde); background: var(--verde-suave); color: var(--verde); }
.opcion.fallo { border-color: var(--rojo); background: var(--rojo-suave); color: var(--rojo); }
.respuesta { min-height: 2.4rem; margin-top: 0.4rem; color: var(--gris); font-size: 0.8125rem; line-height: 1.3; }
.respuesta.bien { color: var(--verde); font-weight: 700; }
.respuesta.mal { color: var(--rojo); font-weight: 700; }

/* Bloques */
.corte { padding: 3rem 40px; background: var(--marino); color: #fff; }
.corte__dentro { max-width: var(--ancho); margin: 0 auto; }
.corte__dato { max-width: 50rem; font-size: clamp(1.9rem, 5.5vw, 2.75rem); font-weight: 800; line-height: 1.1; letter-spacing: -0.02em; }
.corte__texto { max-width: var(--lectura); margin-top: 0.75rem; color: #dbe5ff; }

.bloque { padding: 3.5rem 40px; }
.bloque--gris { background: var(--fondo); }
.bloque__ancho { max-width: var(--ancho); margin: 0 auto; }
h2 { font-size: clamp(1.9rem, 5vw, 2.5rem); line-height: 1.1; color: var(--marino); }
.lectura { max-width: var(--lectura); margin-top: 0.75rem; }

.caso { display: grid; gap: 1.25rem; margin-top: 1.75rem; }
.panel { padding: 1.25rem; border: 1px solid var(--linea); border-radius: 14px; background: #fff; }
.supuesto { padding-bottom: 0.7rem; border-bottom: 1px solid var(--linea); color: var(--gris); font-size: 0.9375rem; }
.tu-texto { margin-top: 0.75rem; }
.correccion { margin-top: 0.35rem; padding: 0.5rem 0.75rem; border-left: 3px solid var(--rojo); border-radius: 0 8px 8px 0; background: var(--rojo-suave); color: var(--rojo); font-size: 0.9375rem; line-height: 1.35; }
.correccion.buena { border-left-color: var(--verde); background: var(--verde-suave); color: var(--verde); }

table { width: 100%; border-collapse: collapse; font-size: 1rem; }
caption { padding-bottom: 0.5rem; font-weight: 700; text-align: left; }
th, td { padding: 0.5rem 0.2rem; border-bottom: 1px solid var(--linea); text-align: left; vertical-align: baseline; }
thead th { color: var(--gris); font-size: 0.875rem; font-weight: 600; }
td:not(:first-child), thead th:not(:first-child) { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
tbody tr:last-child td { border-bottom: 2px solid var(--marino); }
tfoot th, tfoot td { border-bottom: 0; font-weight: 800; text-align: left; }
tfoot td { text-align: right; }
.panel--tabla { max-width: var(--lectura); margin-top: 1.5rem; }

.fases { max-width: var(--lectura); margin-top: 1.25rem; padding-left: 1.5rem; }
.fases li { padding: 0.25rem 0 0.25rem 0.25rem; }
.fases li::marker { color: var(--azul); font-weight: 800; }
.avisos__lateral { display: grid; gap: 1.25rem; max-width: var(--lectura); margin-top: 1.75rem; }
.aviso-muestra { padding: 1rem 1.15rem; border-left: 4px solid var(--azul); border-radius: 0 12px 12px 0; background: var(--suave); }
.aviso-muestra__titulo { font-weight: 800; }
.aviso-muestra a { display: inline-block; margin-top: 0.25rem; }

.formulario { display: grid; gap: 0.85rem; padding: 1.25rem; border: 1px solid var(--linea); border-radius: 14px; background: #fff; }
.formulario h3 { font-size: 1.25rem; line-height: 1.25; color: var(--marino); }
.formulario label, .filtros label { display: grid; gap: 0.2rem; font-weight: 600; }
.formulario input:not([type="checkbox"]), .formulario select, .filtros input, .filtros select {
  width: 100%;
  padding: 0.65rem 0.75rem;
  border: 1.5px solid #c9d4e8;
  border-radius: 8px;
  background: #fff;
  color: var(--texto);
  font: inherit;
  font-weight: 400;
}
.formulario input:focus, .formulario select:focus, .filtros input:focus, .filtros select:focus { border-color: var(--azul); outline: none; }
.formulario .casilla { display: flex; align-items: flex-start; gap: 0.55rem; font-size: 0.9375rem; font-weight: 400; }
.casilla input { flex: none; width: 1.15rem; height: 1.15rem; margin-top: 0.2rem; accent-color: var(--azul); }
.oculto { position: absolute; left: -9999px; }

/* Convocatorias. Fichas una debajo de otra, a todo el ancho. */
.bloque h1 { color: var(--marino); font-size: clamp(2.25rem, 7vw, 3rem); line-height: 1.08; }
.bloque h1 + .lectura { margin-top: 1rem; }
.bloque .lectura + .lectura { margin-top: 0.6rem; }
.aviso-muestra--ancho { max-width: var(--lectura); margin-top: 1.25rem; }

.filtros { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 0.85rem 1.25rem; margin-top: 1.25rem; padding: 1.25rem; border: 1px solid var(--linea); border-radius: 14px; background: #fff; }
.filtros[hidden], .convocatorias[hidden], .vacio[hidden], .ficha[hidden] { display: none; }
.recuento { margin-top: 1.25rem; color: var(--marino); font-weight: 700; }

.convocatorias { display: grid; gap: 1rem; margin-top: 0.75rem; padding: 0; list-style: none; }
.ficha { padding: 1.25rem 1.4rem; border: 1px solid var(--linea); border-radius: 14px; background: #fff; }
.ficha__cabeza { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.1rem 0.9rem; }
.ficha__titulo { font-size: 1.375rem; line-height: 1.2; color: var(--marino); }
.ficha__provincia { color: var(--gris); font-weight: 600; }
.ficha__datos { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 0.75rem 1.25rem; margin: 0.9rem 0 0; }
.ficha__datos dt { color: var(--gris); font-size: 0.8125rem; font-weight: 600; }
.ficha__datos dd { margin: 0; font-weight: 600; }
.ficha__plazo { margin-top: 0.9rem; padding-top: 0.75rem; border-top: 1px solid var(--linea); }
.ficha__plazo p + p { margin-top: 0.2rem; }
.ficha__plazo span { color: var(--gris); font-size: 0.8125rem; font-weight: 600; margin-right: 0.35rem; }
.ficha__fin { color: var(--gris); font-size: 0.9375rem; }
.ficha__enlace { display: inline-block; margin-top: 0.75rem; }
.vacio { max-width: var(--lectura); margin-top: 1.25rem; padding: 1.25rem; border: 1px solid var(--linea); border-radius: 14px; background: #fff; }
.vacio p + p { margin-top: 0.75rem; }

/* Precio */
.precio { padding: 3.5rem 40px; background: var(--marino); color: #fff; }
.precio__dentro { max-width: var(--ancho); margin: 0 auto; }
.precio h2 { color: #fff; }
.precio__cifra { margin-top: 0.5rem; font-size: clamp(3.5rem, 12vw, 5rem); font-weight: 800; line-height: 1; letter-spacing: -0.03em; }
.precio__cifra span { font-size: 0.34em; font-weight: 700; letter-spacing: 0; }
.incluye { max-width: var(--lectura); margin: 1rem 0 1.5rem; }
.incluye li { padding: 0.15rem 0; }

/* Pie */
.pie { padding: 2.5rem 40px; background: var(--noche); color: #dbe5ff; font-size: 0.9375rem; }
.pie__dentro { max-width: var(--ancho); margin: 0 auto; }
.pie a { color: #fff; }
.pie nav { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 1.25rem; margin-top: 0.6rem; }
.instalar { padding: 0; border: 0; background: none; color: #fff; font: inherit; font-weight: 600; text-decoration: underline; cursor: pointer; }

/* Páginas de texto */
.texto { max-width: var(--lectura); margin: 0 auto; padding: 2rem 16px 3rem; }
.texto h1 { color: var(--marino); font-size: clamp(2.25rem, 7vw, 2.75rem); }
.texto h2 { margin-top: 1.75rem; font-size: 1.5rem; }
.texto p, .texto ul, .texto ol { margin-top: 0.75rem; }
.texto li { margin-top: 0.3rem; }
.texto .formulario { margin-top: 1.25rem; }
.enunciado { margin-top: 1rem; padding: 1.1rem 1.25rem; border: 1px solid var(--linea); border-radius: 14px; }
.texto .enunciado h2 { margin-top: 0; font-size: 1.25rem; }

/* Campus. Aprovecha lo anterior y añade solo lo suyo. */
.cabecera--campus > .entrar, .cabecera--campus .salir { margin-left: auto; }
.salir button { padding: 0; border: 0; background: none; color: var(--azul); font: inherit; font-weight: 600; cursor: pointer; }
.salir button:hover { text-decoration: underline; }

.c-aviso { margin-top: 1rem; padding: 0.75rem 1rem; border-left: 4px solid var(--azul); border-radius: 0 12px 12px 0; background: var(--suave); }
.c-aviso--bien { border-left-color: var(--verde); background: var(--verde-suave); color: var(--verde); font-weight: 600; }
.c-aviso--mal { border-left-color: var(--rojo); background: var(--rojo-suave); color: var(--rojo); font-weight: 600; }
.c-volver { color: var(--gris); font-size: 0.9375rem; }
.texto .c-volver + h1 { margin-top: 0.5rem; }
.c-solo-boton { margin-top: 1.25rem; }

.c-cifras { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; margin-top: 1rem; }
.c-cifra { padding: 0.8rem 0.9rem; border: 1px solid var(--linea); border-radius: 14px; }
.c-cifra b { display: block; color: var(--marino); font-size: 2rem; font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; }
.c-cifra span { display: block; margin-top: 0.15rem; color: var(--gris); font-size: 0.875rem; line-height: 1.25; }

.c-enlaces { padding: 0; list-style: none; }
.c-enlaces li { padding: 0.65rem 0.9rem; border: 1px solid var(--linea); border-radius: 14px; }
.texto .c-enlaces li + li { margin-top: 0.5rem; }

.c-temas { padding: 0; list-style: none; color: var(--gris); }
.texto .c-temas li { display: grid; grid-template-columns: 2rem 1fr; margin-top: 0; padding: 0.4rem 0; border-bottom: 1px solid var(--linea); }
.c-temas li:last-child { border-bottom: 0; }
.c-temas span { font-variant-numeric: tabular-nums; }

.c-antetitulo { color: var(--gris); font-weight: 700; }
.texto .c-antetitulo { margin-top: 1rem; }
.texto h1.c-tema-titulo { margin-top: 0.15rem; font-size: 1.5rem; line-height: 1.25; letter-spacing: -0.01em; }
.c-tema { overflow-wrap: anywhere; }
.c-tema h2 { scroll-margin-top: 1rem; }
.c-epigrafes { margin-top: 1rem; padding: 0.75rem 1rem; border: 1px solid var(--linea); border-radius: 14px; }
.c-epigrafes ul { margin: 0; padding: 0; list-style: none; }
.texto .c-epigrafes li { margin-top: 0.15rem; }
.c-epigrafes a { font-weight: 500; }

.texto .formulario h2 { margin-top: 0; font-size: 1.25rem; }
.formulario p { margin-top: 0; }
.c-botones { display: flex; gap: 0.6rem; max-width: 22rem; }
.c-botones .boton { flex: 1; padding-left: 0.5rem; padding-right: 0.5rem; text-align: center; }

.c-pregunta { margin-top: 1rem; padding: 1rem 1.1rem; border: 1px solid var(--linea); border-radius: 14px; overflow-wrap: anywhere; }
.texto .c-enunciado { margin-top: 0; font-weight: 700; line-height: 1.35; }
.c-opcion { display: flex; align-items: flex-start; gap: 0.55rem; margin-top: 0.5rem; cursor: pointer; line-height: 1.35; }
.c-opcion input { flex: none; width: 1.15rem; height: 1.15rem; margin: 0.1rem 0 0; accent-color: var(--azul); }
.c-opcion--blanco { color: var(--gris); font-size: 0.9375rem; }
.c-pregunta--acierto { border-left: 4px solid var(--verde); }
.c-pregunta--fallo { border-left: 4px solid var(--rojo); }
.c-pregunta--blanco { border-left: 4px solid #c9d4e8; }
.texto .c-estado { margin-top: 0; color: var(--gris); font-size: 0.875rem; font-weight: 700; }
.c-pregunta--acierto .c-estado { color: var(--verde); }
.c-pregunta--fallo .c-estado { color: var(--rojo); }
.c-corregidas { padding: 0; list-style: none; }
.texto .c-corregidas li { margin-top: 0.3rem; padding: 0.35rem 0.6rem; border-radius: 8px; line-height: 1.35; }
.c-corregidas .bien { background: var(--verde-suave); color: var(--verde); font-weight: 600; }
.c-corregidas .mal { background: var(--rojo-suave); color: var(--rojo); }
.c-corregidas small { display: block; font-size: 0.8125rem; font-weight: 700; }
.c-norma { font-size: 0.9375rem; font-weight: 600; }
.c-cita { margin: 0.4rem 0 0; padding-left: 0.75rem; border-left: 3px solid var(--linea); color: var(--gris); font-size: 0.9375rem; }

.c-tabla { margin-top: 1rem; padding: 0.5rem 1rem; }
.c-tabla small { color: var(--gris); font-size: 0.8125rem; }
.c-tabla tbody tr:last-child td { border-bottom: 0; }

@media (max-width: 40rem) {
  .cabecera--campus { gap: 0.35rem 1rem; }
  .cabecera--campus nav { order: 3; width: 100%; margin-right: 0; gap: 0.2rem 0.8rem; font-size: 0.9375rem; }
  .c-cifra { padding: 0.65rem 0.7rem; }
  .c-cifra b { font-size: 1.625rem; }
  .texto h1.c-tema-titulo { font-size: 1.25rem; }
}

@media (max-width: 40rem) {
  .cabecera, .foto, .abajo, .corte, .bloque, .precio, .pie { padding-left: 16px; padding-right: 16px; }
  .foto { background-position: center top; background:
    linear-gradient(180deg, rgba(7, 28, 74, 0.72), rgba(7, 28, 74, 0.9)),
    url("/img/portada-pista.jpg") 58% 24% / cover; }
  .entrar { font-size: 0.9375rem; }
  .foto br { display: none; }
}

@media (min-width: 62rem) {
  .abajo { grid-template-columns: 0.8fr 1.2fr; gap: 3rem; padding-top: 0; padding-bottom: 3.5rem; }
  .cifras { padding-top: 2.25rem; }
  .equipos { margin-top: -3.75rem; padding-right: 13.25rem; }
  .campus { grid-template-columns: 7.5rem 1fr; }
  .campus aside { display: flex; flex-direction: column; gap: 0.2rem; padding: 1rem 0.75rem; background: var(--fondo); font-size: 0.875rem; }
  .campus aside b { margin-bottom: 0.5rem; }
  .campus aside span { padding: 0.35rem 0.55rem; border-radius: 8px; }
  .campus aside .on { background: var(--marino); color: #fff; }
  .app { position: absolute; right: 0; top: -1.75rem; margin: 0; }
  .caso { grid-template-columns: 1.15fr 0.85fr; align-items: start; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* Tienda */
.t-lista { display: grid; gap: 0.85rem; padding: 0; list-style: none; }
.t-ficha { padding: 1rem 1.15rem; border: 1px solid var(--linea); border-radius: 14px; overflow-wrap: anywhere; }
.texto .t-lista .t-ficha { margin-top: 0; }
.texto .t-ficha h2 { margin-top: 0; font-size: 1.25rem; line-height: 1.25; }
.texto .t-ficha h2 a { color: var(--marino); }
.texto .t-ficha h2 a:hover { color: var(--azul); }
.texto .t-ficha .c-antetitulo { margin-top: 0; margin-bottom: 0.15rem; font-size: 0.9375rem; }
.texto h1.t-titulo { margin-top: 0.15rem; font-size: clamp(1.75rem, 6vw, 2.25rem); line-height: 1.15; }
.t-precio { color: var(--marino); font-size: 1.5rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; }
.texto .t-ficha .t-precio { margin-top: 0.4rem; }
.texto .t-precio--grande { margin-top: 1.25rem; font-size: 2.5rem; line-height: 1.1; }
.t-nota { color: var(--gris); font-size: 0.9375rem; }
.texto .t-ficha .t-nota { margin-top: 0.15rem; }
.texto .t-precio--grande + .t-nota { margin-top: 0.2rem; }
.t-descarga { display: grid; justify-items: start; gap: 0.7rem; margin-top: 0.8rem; }
.t-descarga .casilla { display: flex; align-items: flex-start; gap: 0.55rem; font-size: 0.9375rem; line-height: 1.35; cursor: pointer; }
/* Fin de la tienda */

/* Avisos: selector de provincias, Telegram y buscadores */
.foto__buscar { max-width: 34rem; margin-top: 1rem; color: #e4ebff; font-size: 0.9375rem; }
.foto__buscar a { color: #fff; }

.elige { display: grid; gap: 0.55rem; min-width: 0; margin: 0; padding: 0.85rem 0.9rem; border: 1px solid var(--linea); border-radius: 12px; }
.elige legend { padding: 0 0.35rem; color: var(--marino); font-weight: 700; }
.elige .casilla { font-weight: 600; }
.elige__ayuda { color: var(--gris); font-size: 0.9375rem; }
.formulario .elige__busca { padding: 0.55rem 0.7rem; }
.elige__lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 0.5rem; max-height: 17rem; overflow-y: auto; overscroll-behavior: contain; padding: 0.15rem 0.25rem; border: 1px solid var(--linea); border-radius: 8px; }
.formulario .elige__lista label { display: flex; align-items: center; gap: 0.5rem; min-height: 2.75rem; font-weight: 400; line-height: 1.2; cursor: pointer; }
.elige__lista label[hidden] { display: none; }
.elige__lista input { flex: none; width: 1.15rem; height: 1.15rem; margin: 0; accent-color: var(--azul); }
.elige__elegidas { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.elige__elegidas:empty { display: none; }
.elige__chip { padding: 0.35rem 0.65rem; border: 0; border-radius: 999px; background: var(--suave); color: var(--marino); font: inherit; font-size: 0.875rem; font-weight: 600; cursor: pointer; }
.elige__chip::after { content: " ×"; }
.elige--toda .elige__lista, .elige--toda .elige__busca, .elige--toda .elige__ayuda, .elige--toda .elige__elegidas { display: none; }
.elige__falta { color: var(--rojo); font-size: 0.9375rem; font-weight: 600; }
.formulario__nota { color: var(--gris); font-size: 0.875rem; }
.formulario .boton { justify-self: start; }

.telegram { max-width: var(--lectura); margin-top: 1.25rem; padding: 0.85rem 1rem; border: 1px solid var(--linea); border-radius: 12px; background: var(--fondo); }
.telegram a { white-space: nowrap; }

.estado-cuerpos { display: grid; gap: 0.6rem; max-width: var(--lectura); margin-top: 1rem; }
.estado-cuerpo { padding: 0.75rem 1rem; border: 1px solid var(--linea); border-radius: 12px; background: #fff; }
.texto form + p { margin-top: 1.25rem; }

@media (min-width: 40rem) {
  .elige__lista { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

#apuntate { scroll-margin-top: 1rem; }

/* Tarjetas de oposiciones de la portada */
.oposiciones { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.5rem; }
.oposicion { display: block; background: #fff; border: 1px solid var(--linea); border-radius: 1rem; padding: 1.25rem 1.5rem; color: var(--texto); text-decoration: none; }
.oposicion:hover, .oposicion:focus-visible { border-color: var(--azul); }
.oposicion h3 { margin: 0 0 0.25rem; color: var(--marino); }
.oposicion p { margin: 0; color: var(--gris); }
@media (max-width: 48rem) { .oposiciones { grid-template-columns: 1fr; } }

/* Los dos planes */
.planes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.25rem; }
.plan { padding: 1.5rem; border: 1px solid rgba(255, 255, 255, 0.28); border-radius: 1rem; }
.plan h3 { color: #fff; }
.plan p { margin-top: 0.5rem; }
.plan .boton { margin-top: 1rem; }
@media (max-width: 48rem) { .planes { grid-template-columns: 1fr; } }

/* Campus: selector de oposición y pantalla vacía */
.c-cambiar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.6rem; margin-top: 0.85rem; padding: 0.8rem 1rem; border: 1px solid var(--linea); border-radius: 14px; background: #fff; }
.c-cambiar label { flex: 1 0 100%; color: var(--gris); font-size: 0.9375rem; font-weight: 600; }
.c-cambiar select { flex: 1 1 12rem; min-width: 0; max-width: 100%; padding: 0.6rem 0.7rem; border: 1.5px solid #c9d4e8; border-radius: 8px; background: #fff; color: var(--texto); font: inherit; }
.c-cambiar select:focus { border-color: var(--azul); outline: none; }
.c-cambiar .boton { padding: 0.6rem 1.1rem; }
.c-vacio { margin-top: 1.25rem; padding: 1.25rem; border: 1px solid var(--linea); border-radius: 14px; background: #fff; }
.texto .c-vacio h2 { margin-top: 0; font-size: 1.25rem; }
.c-vacio .boton { margin-top: 0.25rem; }
@media (max-width: 40rem) { .c-cambiar select { flex-basis: 100%; } }
/* Fin del selector de oposición */
