/* M · «La línea» — macroestructura: la página es una línea de metro (cabecera → estaciones → fin de línea).
   Tipos: Overpass 300/400/800 + Vollkorn 400/600. Paleta por sección en tokens.css. */

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: clip;
  background: var(--bg);
  color: var(--fg);
  font: 400 1.125rem/1.6 var(--f-text);
  font-variant-numeric: lining-nums;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; height: auto; }
p { margin: 0 0 var(--s-4); }
h1, h2, h3, h4 {
  margin: 0;
  font-family: var(--f-sign);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.015em;
  overflow-wrap: anywhere;
  hyphens: auto;
  min-width: 0;
  text-wrap: balance;
}
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
a:hover { text-decoration-thickness: 2px; }
a:active { opacity: 0.8; }
:focus-visible { outline: 3px solid var(--foco); outline-offset: 3px; }
button { font: inherit; color: inherit; }
strong { font-weight: 600; }
ul, ol { margin: 0; padding: 0; list-style: none; }
details summary { cursor: pointer; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Temas */
.t-dp { --borde-tinta: var(--naranja); --anillo: var(--navy); --linea-alt: var(--navy); --borde-alt: var(--navy); --bg: var(--papel); --fg: var(--tinta); --suave: var(--tinta-suave); --foco: var(--naranja-texto); --linea: var(--naranja); --borde-linea: var(--papel); --red-bg: var(--navy); }
.t-vis { --bg: var(--vis-negro); --fg: var(--mm-blanco); --suave: var(--vis-suave); --foco: var(--vis-amarillo); --linea: var(--vis-amarillo); --borde-linea: var(--vis-negro); --red-bg: var(--vis-negro); }
.t-mm { --bg: var(--mm-blanco); --fg: var(--mm-tinta); --suave: var(--mm-gris); --foco: var(--mm-verde-2); --linea: var(--mm-verde); --borde-linea: var(--mm-blanco); --red-bg: var(--mm-verde); }
.t-home { --bg: var(--papel); --fg: var(--tinta); --suave: var(--tinta-suave); --foco: var(--naranja-texto); --linea: var(--naranja); --borde-linea: var(--papel); --red-bg: var(--tinta); }

.saltar {
  position: absolute; left: var(--s-4); top: -100px; z-index: calc(var(--z-menu) + 10);
  background: var(--blanco); color: var(--tinta); padding: var(--s-3) var(--s-4);
  font: 800 1rem/1 var(--f-sign);
}
.saltar:focus { top: var(--s-4); }

/* ---------- Carriles: la línea va por los márgenes ---------- */
.carril {
  padding-left: calc(var(--edge) + var(--lane));
  padding-right: calc(var(--edge) + var(--lane-r));
}
.linea-host { position: relative; isolation: isolate; }
.linea-host > main, .linea-host > footer { position: relative; }
.linea-svg { position: absolute; left: 0; top: 0; z-index: var(--z-linea); pointer-events: none; overflow: visible; }
.linea-svg__borde, .linea-svg__trazo { fill: none; stroke-linecap: butt; stroke-linejoin: round; }
.linea-svg__borde { stroke: var(--borde-linea); stroke-width: calc(var(--line-w) + 2 * var(--line-casing)); }
.linea-svg__trazo { stroke: var(--linea); stroke-width: var(--line-w); }
.linea-svg__borde-alt { fill: none; stroke: var(--borde-alt, var(--borde-linea)); stroke-width: calc(var(--line-w) + 2 * var(--line-casing) + 3px); }
.linea-svg__borde-tinta { fill: none; stroke: var(--borde-tinta, var(--borde-linea)); stroke-width: calc(var(--line-w) + 2 * var(--line-casing) + 3px); }
.linea-svg__alt { fill: none; stroke: var(--linea-alt, var(--linea)); stroke-width: var(--line-w); }
main section, .pie { position: relative; }
:where(main section, .pie) > :where(:not(.via, .linea-svg)) { position: relative; z-index: var(--z-contenido); }
.via { position: absolute; width: 0; height: 0; z-index: 0; pointer-events: none; }
.via--l { left: calc(var(--edge) + var(--lane) / 2); }
.via--r { right: calc(var(--edge) + var(--lane-r) / 2); }
.via--top { top: 0; }
.via--fin { bottom: 0; }
@media (max-width: 760px) {
  .via--r { right: auto; left: calc(var(--edge) + var(--lane) / 2); }
}

/* ---------- Red: barra común con las tres líneas ---------- */
.red { background: var(--red-bg); color: var(--blanco); position: relative; z-index: var(--z-menu); --foco: var(--blanco); }
.t-vis .red { --foco: var(--vis-amarillo); }
.red__in {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-5);
  min-height: 60px;
  padding-inline: calc(var(--edge) + var(--s-4)) calc(var(--edge) + var(--s-2));
}
.red__casa {
  font: 800 1.1875rem/1 var(--f-sign); letter-spacing: -0.01em; text-decoration: none;
  white-space: nowrap; min-height: 44px; display: inline-flex; align-items: center; margin-right: auto;
}
.red__lineas { display: flex; align-items: center; gap: var(--s-2); }
.ind {
  display: inline-flex; align-items: center; gap: var(--s-3);
  min-height: 44px; padding: 0 var(--s-3);
  font: 400 1rem/1 var(--f-sign); text-decoration: none; white-space: nowrap;
  border-bottom: 3px solid transparent;
}
.ind:hover .ind__txt { text-decoration: underline; text-underline-offset: 0.25em; }
.ind[aria-current="page"] { border-bottom-color: currentColor; font-weight: 800; }
.ind__sq {
  display: inline-grid; place-items: center;
  min-width: 30px; height: 30px; padding: 0 var(--s-1); border-radius: 4px;
  font: 800 0.875rem/1 var(--f-sign); letter-spacing: 0;
}
.ind--dp .ind__sq { background: var(--naranja); color: var(--navy-hondo); }
.ind--vis .ind__sq { background: var(--vis-amarillo); color: var(--vis-negro); box-shadow: 0 0 0 2px var(--vis-negro); }
.ind--mm .ind__sq { background: var(--mm-verde); color: var(--mm-blanco); box-shadow: 0 0 0 2px var(--mm-blanco); }
.red__menu {
  display: none; min-height: 44px; min-width: 44px; padding: 0 var(--s-4);
  background: transparent; border: 2px solid currentColor; border-radius: 4px;
  font: 800 1rem/1 var(--f-sign); cursor: pointer;
}
.red__menu:hover { background: color-mix(in srgb, currentColor 12%, transparent); }

.sub { background: var(--bg); border-bottom: 1px solid color-mix(in srgb, var(--fg) 18%, transparent); position: relative; z-index: var(--z-menu); }
.sub__lista {
  display: flex; align-items: center; gap: var(--s-1) var(--s-5); flex-wrap: wrap;
  padding-inline: calc(var(--edge) + var(--s-4)) calc(var(--edge) + var(--s-4));
}
.sub__lista a {
  display: inline-flex; align-items: center; min-height: 48px;
  font: 400 1rem/1 var(--f-sign); text-decoration: none; white-space: nowrap;
}
.sub__lista a:hover { text-decoration: underline; text-underline-offset: 0.3em; }
.sub__ed { margin-left: auto; }
.sub__ed a { font-weight: 800; text-decoration: underline; text-underline-offset: 0.3em; text-decoration-thickness: 2px; text-decoration-color: var(--linea); }

@media (max-width: 1180px) {
  .js .red__menu { display: inline-flex; align-items: center; }
  .js .sub { display: none; }
  .js .sub.is-open { display: block; }
  .sub__lista { flex-direction: column; align-items: stretch; padding-block: var(--s-3); }
  .sub__lista a { width: 100%; font-size: 1.0625rem; border-bottom: 1px solid color-mix(in srgb, var(--fg) 12%, transparent); }
  .sub__ed { margin-left: 0; }
}
@media (max-width: 760px) {
  .red__in { gap: var(--s-2); padding-inline: var(--gutter) var(--gutter); }
  .ind { padding: 0 var(--s-1); gap: 0; min-width: 44px; justify-content: center; }
  .ind__txt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .red__casa { font-size: 1.0625rem; }
  .red__menu { padding: 0 var(--s-3); }
}

/* ---------- Piezas comunes ---------- */
.credito { font: 400 0.875rem/1.4 var(--f-sign); color: var(--suave); }
.pendiente {
  display: inline-flex; align-items: center; gap: var(--s-2);
  font: 800 0.9375rem/1.3 var(--f-sign); letter-spacing: 0.01em;
  padding: var(--s-2) var(--s-3); border: 2px dashed currentColor;
}

/* Estación de cabecera y de fin de línea (trazo perpendicular, el idioma del plano) */
.est-cab, .est-fin {
  position: absolute; width: calc(var(--line-w) + 2 * var(--line-casing)); height: 44px;
  background: var(--linea); border: var(--line-casing) solid var(--borde-linea); z-index: var(--z-estacion);
}

/* ======================================================================
   DERECHO PRIVADO
   ====================================================================== */

/* ---------- Cabecera: foto a sangre + cartel de andén ---------- */
.cab { --cab-foto: clamp(300px, 62vh, 600px); padding-bottom: var(--s-8); }
.cab__foto { margin: 0; height: var(--cab-foto); position: relative; overflow: hidden; background: var(--navy); }
.cab__foto img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 58%; }
.credito--foto {
  position: absolute; right: calc(var(--edge) + var(--s-4)); bottom: var(--s-3); margin: 0;
  background: color-mix(in srgb, var(--navy-hondo) 82%, transparent); color: var(--blanco);
  padding: var(--s-1) var(--s-2);
}
.cab__placa {
  position: absolute; z-index: var(--z-contenido);
  top: var(--s-6); right: calc(var(--edge) + var(--lane-r) + var(--s-4));
  width: clamp(104px, 11vw, 168px);
  background: var(--blanco); padding: var(--s-4) var(--s-4) var(--s-3);
}
.cab__rejilla {
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
  padding-left: calc(var(--edge) + var(--lane));
  padding-right: calc(var(--edge) + var(--lane-r));
  column-gap: var(--s-7);
  position: relative;
}
.cartel {
  grid-column: 1; grid-row: 1 / span 2;
  margin-top: calc(var(--s-11) * -1);
  background: var(--navy); color: var(--blanco);
  padding: var(--s-7) var(--s-7) var(--s-6);
  position: relative; z-index: var(--z-contenido);
  align-self: start;
  outline: 2px solid color-mix(in srgb, var(--blanco) 70%, transparent); outline-offset: -12px;
}
.cartel__ind {
  position: absolute; bottom: var(--s-6); right: var(--s-7);
  display: grid; place-items: center; width: 52px; height: 52px; border-radius: 6px;
  background: var(--naranja); color: var(--navy-hondo); font: 800 1.25rem/1 var(--f-sign);
}
.cartel__titulo {
  font-size: clamp(2.6rem, 5.4vw, 4.75rem);
  line-height: 0.96; letter-spacing: -0.03em;
  text-wrap: initial;
}
.cartel__ed {
  margin: var(--s-5) 0 0; padding-right: 76px; font: 300 clamp(1.25rem, 1.8vw, 1.625rem)/1.2 var(--f-sign);
  color: var(--navy-suave); letter-spacing: 0;
}
.cartel__ed::before { content: ""; display: block; width: 100%; height: 2px; background: color-mix(in srgb, var(--blanco) 22%, transparent); margin-bottom: var(--s-4); }
.via--cabecera { right: 0; top: calc(var(--s-11) + var(--s-6)); }
.via--cab-giro { top: var(--s-6); }
.cab__est {
  grid-column: 2; grid-row: 1; position: relative;
  padding-top: var(--s-8);
  padding-left: var(--s-2);
}
.est-circ {
  position: absolute; left: 0; top: var(--s-6); z-index: var(--z-estacion);
  width: 36px; height: 36px; border-radius: 50%; transform: translateY(-50%);
  background: var(--blanco); border: 7px solid var(--navy);
}
.cab__fecha { font: 800 1.375rem/1.15 var(--f-sign); margin: 0 0 var(--s-1); letter-spacing: -0.01em; }
.cab__fecha span { display: block; font-weight: 300; }
.cab__hito { font: 400 1.125rem/1.35 var(--f-sign); margin: 0; color: var(--suave); }
.cab__lede { grid-column: 2; grid-row: 2; padding: var(--s-6) 0 0 var(--s-2); }
.cab__lede p { font-size: 1.125rem; }
.cab__enlaces { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); margin-top: var(--s-4); }
.cab__enlaces a {
  display: inline-flex; align-items: center; min-height: 44px; white-space: nowrap;
  font: 800 1.0625rem/1 var(--f-sign); text-decoration-color: var(--naranja); text-decoration-thickness: 2px;
}
.cab__enlaces a:hover { text-decoration-thickness: 4px; }


@media (max-width: 1100px) {
  .cab__rejilla { grid-template-columns: minmax(0, 1fr); }
  .cartel { grid-row: 1; margin-top: calc(var(--s-9) * -1); }
  .cab__est { grid-column: 1; grid-row: 2; padding-top: var(--s-6); }
  .cab__lede { grid-column: 1; grid-row: 3; }
  .via--cabecera { right: auto; left: calc(var(--lane) / -2); top: 100%; }
  .via--cab-giro { display: none; }
  .est-circ { left: calc(var(--lane) / -2); transform: translate(-50%, -50%); top: calc(var(--s-6) + 18px); }
}
@media (max-width: 760px) {
  .cab { --cab-foto: 300px; padding-bottom: var(--s-6); }
  .cab__foto img { object-position: 50% 52%; }
  .cartel { margin-top: calc(var(--s-8) * -1); margin-left: calc(var(--lane) * -1 - var(--edge)); padding: var(--s-6) var(--s-5) var(--s-5) calc(var(--lane) + var(--edge)); }
  .via--cabecera { left: calc(var(--lane) / 2 + var(--edge)); top: 100%; }
  .cab__placa { top: var(--s-4); right: var(--s-4); width: 84px; padding: var(--s-2); }
  .credito--foto { left: var(--s-2); right: auto; bottom: calc(var(--s-8) + var(--s-2)); top: auto; max-width: none; padding: 2px var(--s-2); white-space: nowrap; }
  .cab__lede, .cab__est { padding-left: 0; }
}

/* ---------- El Moot ---------- */
.moot {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--s-6);
  padding-top: var(--s-8); padding-bottom: var(--s-10);
}
.moot__lead {
  grid-column: 1 / span 10;
  font: 400 clamp(1.375rem, 2.1vw, 1.875rem)/1.38 var(--f-text);
  margin-bottom: var(--s-8); letter-spacing: -0.005em;
}
.moot__cols { grid-column: 5 / span 7; grid-row: 3; }
.moot__cols p { font-size: 1.0625rem; line-height: 1.62; }
.moot__mas summary {
  display: inline-flex; align-items: center; min-height: 44px;
  font: 800 1.0625rem/1 var(--f-sign); text-decoration: underline; text-underline-offset: 0.3em;
  text-decoration-color: var(--naranja); text-decoration-thickness: 2px; list-style: none;
}
.moot__mas summary::-webkit-details-marker { display: none; }
.moot__mas summary::after { content: " +"; }
.moot__mas[open] summary::after { content: " −"; }
.moot__mas[open] summary { margin-bottom: var(--s-4); }
.organiza { grid-column: 1 / span 3; grid-row: 3; align-self: start; padding-top: var(--s-4); border-top: 6px solid var(--navy); }
.organiza img { width: 94%; height: auto; background: var(--blanco); padding: var(--s-3); margin-bottom: var(--s-4); }
.organiza p { margin: 0; font: 400 1.0625rem/1.35 var(--f-sign); }
.organiza__rol { display: block; font-weight: 800; margin-bottom: var(--s-1); }
@media (max-width: 960px) {
  .moot { grid-template-columns: minmax(0, 1fr); }
  .moot__lead, .moot__cols, .organiza, .moot__apoyos { grid-column: 1 / -1; grid-row: auto; }
  .organiza img { width: min(100%, 280px); }
  .organiza { margin-top: var(--s-7); }
}

/* ---------- Calendario 2027: el tramo horizontal ---------- */
.plano { padding-top: var(--s-9); padding-bottom: var(--s-10); }
.plano__cab { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s-7); align-items: end; margin-bottom: var(--s-8); }
.plano__titulo { font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 0.95; letter-spacing: -0.03em; }
.plano__nota { margin: 0; font: 400 1.125rem/1.45 var(--f-sign); color: var(--suave); }
.via--l.via--top { top: calc(var(--s-9) / 2); }
.via--r.via--bajo { bottom: calc(var(--s-10) / 2); }

.plano__lista {
  --plano-dir: h;
  --alto: 150px;
  padding-left: 136px;
  --eje: 60px;
  position: relative;
  display: grid; grid-template-columns: repeat(8, minmax(0, 1fr));
  grid-template-rows: var(--banda, 0px) auto var(--eje) auto;
  counter-reset: est;
}
.plano__lista:has(.aqui) { --banda: 72px; }
.est {
  display: grid; grid-row: 2 / 5; grid-template-rows: subgrid;
  position: relative; padding-inline: var(--s-2);
}
/* línea de base en CSS: se ve sin JS; con JS la sustituye la línea dibujada */
.plano__lista::before { content: ""; grid-row: 3; grid-column: 1 / -1; align-self: center; height: var(--line-w); margin-left: -16px; background: var(--linea); }
.js .plano__lista::before { content: none; }
.plano__lista > .est:nth-child(1) { grid-column: 1; }
.plano__lista > .est:nth-child(2) { grid-column: 2; }
.plano__lista > .est:nth-child(3) { grid-column: 3; }
.plano__lista > .est:nth-child(4) { grid-column: 4; }
.plano__lista > .est:nth-child(5) { grid-column: 5; }
.plano__lista > .est:nth-child(6) { grid-column: 6; }
.plano__lista > .est:nth-child(7) { grid-column: 7; }
.plano__lista > .est:nth-child(8) { grid-column: 8; }
.est__marca {
  grid-row: 2; align-self: center; justify-self: start;
  position: relative; z-index: var(--z-estacion);
  width: var(--line-w); height: 0;
}
.est__marca::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 26px; background: var(--linea); }
.est:nth-child(odd) .est__marca::before { top: auto; bottom: 0; }
.est--mayor .est__marca, .est--tramo .est__marca {
  height: 34px; border-radius: 17px; background: var(--blanco); border: 7px solid var(--navy);
  margin-left: calc((var(--line-w) - 34px) / 2);
}
.est--mayor .est__marca { width: 34px; }
.est--mayor .est__marca::before, .est--tramo .est__marca::before { content: none; }
.est--tramo .est__marca { width: 96px; display: flex; align-items: center; justify-content: space-around; padding: 0 5px; }
.est--tramo .est__marca span { width: 7px; height: 7px; border-radius: 50%; background: var(--navy); }
.est__pend { display: block; font-weight: 400; font-size: 0.9375rem; color: var(--naranja-texto); }
.est__fecha { margin: 0; font: 800 1.0625rem/1.2 var(--f-sign); letter-spacing: -0.005em; font-variant-numeric: tabular-nums; }
.est__hito { margin: var(--s-1) 0 0; font: 400 1rem/1.3 var(--f-sign); color: var(--suave); }
.est__txt { grid-row: 3; padding: var(--s-3) var(--s-3) 0 0; width: 160%; }
.est:nth-last-child(2) > .est__txt { width: 130%; }
.est:nth-child(odd) > .est__txt { grid-row: 1; align-self: end; padding: 0 var(--s-3) var(--s-3) 0; }

.aqui[hidden] { display: none !important; }
.aqui { position: absolute; z-index: var(--z-estacion); left: var(--aqui-x, 0px); top: 0; width: 0; height: 0; pointer-events: none; }
.aqui__txt {
  position: absolute; left: -12px; top: 0;
  display: block; background: var(--anillo, var(--navy)); color: var(--blanco);
  font: 800 0.9375rem/1.2 var(--f-sign); padding: var(--s-2) var(--s-3); white-space: nowrap; text-align: left;
}
.aqui__txt::after { content: ""; position: absolute; left: 4px; top: 100%; border: 8px solid transparent; border-top-color: var(--anillo, var(--navy)); border-bottom: 0; }
.aqui--der .aqui__txt { left: auto; right: -12px; }
.aqui--der .aqui__txt::after { left: auto; right: 4px; }
/* el punto exacto, sobre la línea: un rombo, legible sin color */
.aqui::after { content: ""; position: absolute; left: 0; top: var(--aqui-line, 0px); width: 18px; height: 18px; transform: translate(-50%, -50%) rotate(45deg); background: var(--anillo, var(--navy)); box-shadow: 0 0 0 4px var(--blanco); }
.aqui__fecha { display: block; font-weight: 300; }

@media (max-width: 1100px) {
  .plano__cab { grid-template-columns: minmax(0, 1fr); gap: var(--s-4); }
}
/* 6-nov: el calendario de 8 estaciones pasa a vertical por debajo de 1240 px (entre 961 y 1210 se pisaban los textos) */
@media (max-width: 1240px) {
  .plano__lista { --plano-dir: v; grid-template-columns: minmax(0, 1fr); padding-left: 0; }
  .plano__lista { grid-template-rows: none; }
  .est { grid-row: auto; grid-template-rows: auto; grid-template-columns: 0 minmax(0, 1fr); padding: var(--s-3) 0 var(--s-5); }
  .plano__lista::before { grid-row: auto; position: absolute; left: calc(var(--lane) / -2 - var(--line-w) / 2); top: 0; bottom: 0; width: var(--line-w); height: auto; margin: 0; }
  .est__marca, .est--mayor .est__marca, .est--tramo .est__marca {
    grid-row: 1 / span 2; grid-column: 1; position: absolute;
    left: calc(var(--lane) / -2); top: calc(var(--s-4) + 11px); margin: 0; transform: translate(-50%, -50%);
  }
  .est__marca { width: var(--line-w); height: var(--line-w); transform: translate(-50%, -50%); }
  .est__marca::before, .est:nth-child(odd) .est__marca::before { top: 0; bottom: auto; left: 0; width: 22px; height: 100%; }
  .est--tramo .est__marca { width: 34px; height: 96px; flex-direction: column; padding: 5px 0; top: calc(var(--s-4) + 40px); }
  .est > .est__txt, .est:nth-child(odd) > .est__txt, .est:nth-last-child(2) > .est__txt { grid-column: 2; grid-row: 1; padding: 0; align-self: start; width: auto; }
  .est--tramo { padding-bottom: var(--s-8); }
  .aqui { position: relative; left: auto; top: auto; width: auto; height: auto; margin: 0 0 var(--s-5); display: flex; align-items: center; }
  .aqui__txt { position: static; }
  .aqui__txt::after { content: none; }
  .aqui::after { left: calc(var(--lane) / -2); top: 50%; }
  .plano .via--l.via--top { top: var(--s-6); }

}

/* ---------- El caso / inscripción / fase escrita ---------- */
.caso { padding-bottom: var(--s-9); }
.caso__rejilla { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s-7); align-items: start; }
.caso__bloque {
  background: var(--naranja); color: var(--navy-hondo);
  padding: var(--s-8) var(--s-7) var(--s-7);
  margin-left: calc(var(--lane) * -1 + var(--s-5));
}
.caso__titulo { font-size: clamp(2rem, 3.6vw, 3.25rem); line-height: 1; letter-spacing: -0.025em; margin-bottom: var(--s-6); }
.caso__txt { font: 400 1.1875rem/1.5 var(--f-text); }
.caso__bloque .pendiente { margin-top: var(--s-3); }
.caso__docs { padding-top: var(--s-8); }
@media (max-width: 960px) { .caso__docs { padding-top: 0; } }
.caso__sub { font-size: 1.375rem; margin-bottom: var(--s-4); }
.docs li { border-top: 2px solid var(--fg); padding: var(--s-3) 0 var(--s-4); display: flex; flex-direction: column; gap: var(--s-1); }
.docs li:last-child { border-bottom: 2px solid var(--fg); }
.docs a { font: 800 1.125rem/1.25 var(--f-sign); text-decoration-color: var(--naranja); text-decoration-thickness: 2px; display: inline-flex; align-items: center; min-height: 44px; }
.docs span { font: 400 0.9375rem/1 var(--f-sign); color: var(--suave); }
/* reglas: banda de arena a sangre, sin filetes; cada apartado cuelga de una estación */
.reglas {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s-6) var(--s-9); align-items: start;
  margin-top: var(--s-9); padding-top: var(--s-9); padding-bottom: var(--s-8); background: var(--papel-2);
}
.reglas__col { margin: 0; padding: 0; }
.reglas__col > :first-child { margin-top: 0; }
.reglas__titulo { font-size: 1.625rem; margin: 0 0 var(--s-4); display: flex; align-items: center; gap: var(--s-3); }
.reglas__est, .org__sub--comite .reglas__est { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--blanco); border: 6px solid var(--navy); }
.reglas__col p { font-size: 1.0625rem; }
.reglas__fuente { grid-column: 1 / -1; font: 400 0.9375rem/1.4 var(--f-sign); color: var(--suave); margin: 0; }
@media (max-width: 960px) {
  .caso__rejilla, .reglas { grid-template-columns: minmax(0, 1fr); }
  .caso__bloque { margin-left: 0; padding: var(--s-6) var(--s-5); }
  .caso__titulo { font-size: 1.75rem; line-height: 1.05; }
}

/* ---------- Fase oral: plano azul marino ---------- */
.vista { background: var(--navy); color: var(--blanco); padding: var(--s-10) 0 var(--s-9); --suave: var(--navy-suave); --foco: var(--naranja-claro); }
.vista .via--top { top: 0; }
.vista__rejilla { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s-8); align-items: start; }
.vista__titulo { font-size: clamp(2.25rem, 4.2vw, 3.75rem); line-height: 0.98; letter-spacing: -0.028em; margin-bottom: var(--s-6); }
.vista__txt p { font-size: 1.125rem; }
.pendiente--navy { color: var(--naranja-claro); margin-top: var(--s-3); }
.sedes { margin: 0; }
.sedes__titulo { font: 800 1.375rem/1.2 var(--f-sign); margin-bottom: var(--s-5); }
.sedes__mapa { position: relative; aspect-ratio: 640 / 460; }
.sedes__svg { width: 100%; height: 100%; overflow: visible; }
.sedes__borde, .sedes__trazo { fill: none; }
.sedes__borde { stroke: var(--navy); stroke-width: 26; }
.sedes__trazo { stroke: var(--naranja); stroke-width: 14; }
.sedes__est { fill: var(--blanco); stroke: var(--navy-hondo); stroke-width: 7; }
.sedes__norte path { fill: var(--navy-suave); }
.sedes__n { position: absolute; left: calc(604 / 640 * 100%); top: calc(64 / 460 * 100%); transform: translateX(-50%); font: 800 0.875rem/1 var(--f-sign); color: var(--navy-suave); }
.sedes__l { position: absolute; display: flex; flex-direction: column; gap: 2px; width: 40%; }
.sedes__dia { font: 800 0.9375rem/1.2 var(--f-sign); color: var(--naranja-claro); }
.sedes__nombre { font: 800 1.25rem/1.1 var(--f-sign); letter-spacing: -0.01em; }
.sedes__dir { font: 400 1rem/1.25 var(--f-sign); color: var(--navy-suave); }
.sedes__l--1 { left: calc(70 / 640 * 100%); top: calc(126 / 460 * 100%); }
.sedes__l--2 { right: calc(176 / 640 * 100%); top: calc(232 / 460 * 100%); text-align: right; align-items: flex-end; }
.sedes__l--3 { right: calc(400 / 640 * 100%); top: calc(344 / 460 * 100%); text-align: right; align-items: flex-end; width: 36%; }
.sedes__nota { margin: var(--s-4) 0 0; font: 400 0.9375rem/1.4 var(--f-sign); color: var(--navy-suave); }
.dias { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-7); margin-top: var(--s-9); }
.dia { border-top: 2px solid color-mix(in srgb, var(--blanco) 30%, transparent); padding-top: var(--s-4); }
.dias__t { grid-column: 1 / -1; font-size: 1.5rem; color: var(--naranja-claro); margin-bottom: calc(var(--s-5) * -1); }
.dia__t { font-size: 1.3125rem; margin-bottom: var(--s-2); }
.dia__fecha { display: block; font-size: 1rem; color: var(--naranja-claro); margin-bottom: var(--s-1); }
.dia__fase { display: block; }
.dia__sede { font: 400 1rem/1.35 var(--f-sign) !important; color: var(--navy-suave); margin-bottom: var(--s-3); }
.dia p { font-size: 1.0625rem; }
.dia__docs { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s-2); }
.dia__docs a { font: 800 1rem/1.35 var(--f-sign); text-decoration-color: var(--naranja-claro); text-decoration-thickness: 2px; display: inline-flex; align-items: center; min-height: 44px; padding-block: var(--s-1); }
@media (max-width: 1100px) {
  .vista__rejilla { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 960px) {
  .dias { grid-template-columns: minmax(0, 1fr); gap: var(--s-6); }
  .dia:nth-child(n) { margin-top: 0; }
}
@media (max-width: 760px) {
  .vista { padding: var(--s-9) 0 var(--s-8); }
  .vista__titulo { font-size: 2.125rem; }
  .vista .sedes { display: none; }
  .vista__rejilla { gap: 0; }
  .dias { margin-top: var(--s-8); gap: var(--s-7); }
  .dias__t { margin: 0 0 calc(var(--s-5) * -1); font-size: 1.375rem; }
  .dia { border-top: 0; padding-top: 0; position: relative; }
  /* en móvil, cada día es una estación sobre la propia línea de la página */
  .dia::before { content: ""; position: absolute; z-index: var(--z-estacion); left: calc(var(--lane) / -2); top: 2px; transform: translateX(-50%); width: 34px; height: 34px; border-radius: 50%; background: var(--blanco); border: 7px solid var(--navy-hondo); box-sizing: border-box; }
}

/* ---------- Premios ---------- */
.premios {
  display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--s-8);
  padding-top: var(--s-10); padding-bottom: var(--s-9);
}
.premios__titulo { font-size: clamp(2.5rem, 4.6vw, 4rem); line-height: 0.95; letter-spacing: -0.03em; margin-bottom: var(--s-6); }
.premios__ul { position: relative; padding-left: var(--s-7); }
.premios__ul::before { content: ""; position: absolute; left: 10px; top: 18px; bottom: 18px; width: var(--line-w); background: var(--navy); }
.premios__ul li { position: relative; font: 800 clamp(1.375rem, 2.2vw, 1.875rem)/1.15 var(--f-sign); letter-spacing: -0.015em; padding: var(--s-3) 0 var(--s-4); }
.premios__ul li::before { content: ""; position: absolute; left: calc(var(--s-7) * -1); top: var(--s-3); width: 34px; height: 34px; border-radius: 50%; background: var(--blanco); border: 7px solid var(--navy); box-sizing: border-box; transform: translate(0, 0); }
.premios__nota { margin-top: var(--s-4); font: 400 0.9375rem/1.4 var(--f-sign); color: var(--suave); }
.palmares { padding-top: 0; }
.palmares__t { font-size: 1.5rem; margin-bottom: var(--s-5); }
.palmares__dl { margin: 0; }
.palmares__dl div { padding: var(--s-3) 0; border-top: 1px solid color-mix(in srgb, var(--fg) 25%, transparent); }
.palmares__dl dt { font: 800 1rem/1.3 var(--f-sign); color: var(--naranja-texto); }
.palmares__dl dd { margin: var(--s-1) 0 0; font-size: 1.125rem; line-height: 1.45; }
.palmares__doc a { display: inline-flex; min-height: 44px; align-items: center; font: 800 1.0625rem/1.2 var(--f-sign); text-decoration-color: var(--naranja); text-decoration-thickness: 2px; margin-top: var(--s-3); }
@media (max-width: 960px) { .premios { grid-template-columns: minmax(0, 1fr); gap: var(--s-7); } }

/* ---------- Primera edición: plano naranja ---------- */
.ed1 { background: var(--naranja); color: var(--navy-hondo); padding: var(--s-9) 0; --foco: var(--navy-hondo); --borde-linea: var(--papel); }
.ed1__in { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--s-4) var(--s-8); align-items: end; }
.ed1__titulo { font-size: clamp(2.5rem, 5.4vw, 5rem); line-height: 0.95; letter-spacing: -0.035em; }
.ed1__titulo a { text-decoration: none; }
.ed1__titulo a:hover { text-decoration: underline; text-decoration-thickness: 4px; }
.ed1__txt { margin: 0; font: 400 1.25rem/1.45 var(--f-text); }
.ed1__links { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-6); margin: var(--s-4) 0 0; }
.ed1__links a { display: inline-flex; align-items: center; min-height: 44px; font: 800 1.125rem/1 var(--f-sign); text-decoration-thickness: 2px; white-space: nowrap; }
@media (max-width: 960px) { .ed1__in { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Organización ---------- */
.org { padding-top: var(--s-10); padding-bottom: var(--s-9); }
.org__titulo { font-size: clamp(2.5rem, 4.6vw, 4rem); line-height: 0.95; letter-spacing: -0.03em; margin-bottom: var(--s-8); }
.org__bloque { margin-bottom: var(--s-9); }
.org__intro { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: var(--s-7); margin-bottom: var(--s-8); }
.org__intro p { grid-column: 2; font-size: 1.0625rem; }
.org__intro .org__sub { grid-row: 1 / span 2; }
.org__sub { font-size: 1.75rem; margin-bottom: var(--s-4); }
.org__sub--comite { display: flex; align-items: center; gap: var(--s-3); align-self: start; }
.personas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-8) var(--s-7); align-items: start; }
.persona { display: flex; flex-direction: column; align-items: flex-start; }
.persona__foto { width: 168px; height: 168px; object-fit: cover; background: var(--papel-2); margin-bottom: var(--s-4); }
/* Secretaría: plano azul a sangre, retratos grandes en escalera */
.sec { background: var(--navy); color: var(--blanco); padding: var(--s-10) 0 var(--s-10); --suave: var(--navy-suave); --foco: var(--naranja-claro); }
.sec__in { display: block; }
.sec__intro { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); column-gap: var(--s-8); align-items: end; margin-bottom: var(--s-9); }
.sec__intro .org__titulo { grid-row: 1 / span 2; margin-bottom: 0; }
.sec__intro .org__sub { margin-bottom: var(--s-3); }
.sec__intro p { margin: 0; }
.sec .org__titulo { color: var(--blanco); }
.sec__intro p { font-size: 1.0625rem; color: var(--navy-suave); }
.sec .persona__rol { color: var(--naranja-claro); }
.sec .persona__mas summary { text-decoration-color: var(--naranja-claro); }
.personas--sec { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-7); }
.personas--sec .persona { display: flex; flex-direction: column; }
.personas--sec .persona__foto { width: 220px; height: 220px; }
.persona__nombre { font-size: 1.1875rem; line-height: 1.15; letter-spacing: -0.01em; }
.persona__rol { margin: var(--s-1) 0 var(--s-2); font: 400 0.9375rem/1.3 var(--f-sign); color: var(--naranja-texto); }
.persona__bio { font-size: 0.9688rem; line-height: 1.5; margin: 0; }
.persona__mas { grid-column: 2; margin-top: var(--s-1); }
.persona__mas summary { display: inline-flex; align-items: center; min-height: 44px; font: 800 0.9375rem/1 var(--f-sign); text-decoration: underline; text-underline-offset: 0.25em; text-decoration-color: var(--linea); text-decoration-thickness: 2px; list-style: none; }
.persona__mas summary::-webkit-details-marker { display: none; }
.persona__mas summary::after { content: " +"; font-weight: 800; }
.persona__mas[open] summary::after { content: " −"; }
.persona__mas p { font-size: 1rem; line-height: 1.5; margin: 0 0 var(--s-2); }
@media (max-width: 1100px) {
  .sec__intro { grid-template-columns: minmax(0, 1fr); row-gap: var(--s-4); }
  .sec__intro .org__titulo { grid-row: auto; }
  .org__intro { grid-template-columns: minmax(0, 1fr); }
  .org__intro p { grid-column: 1; }
}
@media (max-width: 760px) {
  .personas { grid-template-columns: minmax(0, 1fr); }
  .persona, .personas--sec .persona { grid-template-columns: 112px minmax(0, 1fr); column-gap: var(--s-4); }
  .persona__foto, .personas--sec .persona__foto { width: 112px; height: 112px; grid-row: 1 / span 3; }
  .persona__bio, .persona__mas { grid-column: 1 / -1; margin-top: var(--s-3); }
  .persona__mas { margin-top: 0; }
}

/* ---------- Colaboradores ---------- */
.apoyos { padding-top: var(--s-8); padding-bottom: var(--s-10); background: #fff; }
.apoyos__titulo { font-size: 1.75rem; margin-bottom: var(--s-5); }
.logos { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--s-4); }
.logos li { background: #fff; display: grid; place-items: center; height: 148px; padding: var(--s-5) var(--s-6); outline: 1px solid color-mix(in srgb, var(--fg) 14%, transparent); }
.logos img { max-height: 64px; width: auto; max-width: 100%; object-fit: contain; }
.logos img.logo--ancho { max-height: 34px; } /* logos muy apaisados (A&O Shearman): por clase, no por posición */
.revista { margin-top: var(--s-7); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-4); align-items: center; }
@media (max-width: 760px) { .revista { grid-template-columns: minmax(0, 1fr); } }
.revista__t { grid-column: 1 / -1; }
.revista__t { font-size: 1.375rem; }
.revista__caja { margin: 0; display: grid; place-items: center; height: 148px; background: #fff; padding: var(--s-5) var(--s-6); outline: 1px solid color-mix(in srgb, var(--fg) 14%, transparent); }
.revista__caja img { max-height: 64px; width: auto; max-width: 100%; height: auto; object-fit: contain; }
.revista__nombre { font: 800 1.5rem/1.1 var(--f-sign); }
.revista__pend { font: 400 0.9375rem/1 var(--f-sign); color: var(--suave); }
@media (max-width: 760px) { .revista { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Pie: fin de línea ---------- */
.pie { background: var(--navy); color: var(--blanco); padding: var(--s-9) 0 var(--s-6); --suave: var(--navy-suave); --foco: var(--naranja-claro); }
.pie__rejilla { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--s-8); }
.pie__contacto { position: relative; }
.via--term { left: calc(var(--lane) / -2); top: var(--s-6); }
.est-fin { left: calc(var(--lane) / -2); top: var(--s-6); transform: translate(-50%, -50%) rotate(90deg); border-color: var(--navy); }
.pie__titulo { font-size: clamp(2rem, 3.6vw, 3rem); letter-spacing: -0.03em; margin-bottom: var(--s-4); }
.pie__mail { font: 800 1.375rem/1.25 var(--f-sign); letter-spacing: -0.005em; margin-bottom: var(--s-3); }
.pie__mail a { text-decoration-color: var(--naranja); text-decoration-thickness: 2px; overflow-wrap: anywhere; display: inline-flex; min-height: 44px; align-items: center; }
.pie__datos p { font: 400 1rem/1.5 var(--f-sign); color: var(--navy-suave); }
.pie__datos strong { color: var(--blanco); font-weight: 800; }
.pie__red { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0 var(--s-4); margin-top: var(--s-5); }
.pie__red a { display: inline-flex; align-items: center; min-height: 44px; font: 800 1rem/1 var(--f-sign); white-space: nowrap; }
.pie__red a[aria-current] { text-decoration-thickness: 3px; text-decoration-color: var(--naranja); }
.pie__creditos { margin: var(--s-8) 0 0; font: 400 0.875rem/1.5 var(--f-sign); color: var(--navy-suave); }
@media (max-width: 960px) { .pie__rejilla { grid-template-columns: minmax(0, 1fr); gap: var(--s-6); } }

/* ======================================================================
   PORTADA · el plano de la red
   ====================================================================== */
.redmapa { padding: var(--s-8) 0 var(--s-7); }
.redmapa__in { display: grid; padding-inline: calc(var(--edge) + var(--s-4)); }
.redmapa__intro { grid-area: 1 / 1; width: 28%; position: relative; z-index: var(--z-contenido); padding-top: var(--s-4); }
.redmapa__titulo { font-size: clamp(3rem, 7vw, 6.5rem); line-height: 0.92; letter-spacing: -0.04em; margin-bottom: var(--s-5); }
.redmapa__txt { font: 400 1.125rem/1.5 var(--f-text); margin: 0; }
.plano-red { grid-area: 1 / 1; margin: 0; position: relative; }
.plano-red__svg { display: block; width: 100%; height: auto; overflow: visible; }
.plano-red__svg--v { display: none; }
.pr__borde, .pr__trazo { fill: none; }
.pr--dp .pr__borde { stroke: var(--papel); stroke-width: 26; }
.pr--dp .pr__trazo { stroke: var(--naranja); stroke-width: 14; }
.pr--dp .pr__fin { fill: var(--naranja); }
.pr--vis .pr__borde { stroke: var(--vis-negro); stroke-width: 14; }
.pr--vis .pr__trazo { stroke: var(--vis-amarillo); stroke-width: 8; }
.pr--vis .pr__fin { fill: var(--vis-negro); }
.pr--mm .pr__borde { stroke: var(--papel); stroke-width: 26; }
.pr--mm .pr__trazo { stroke: var(--mm-verde); stroke-width: 14; }
.pr--mm .pr__fin { fill: var(--mm-verde); }
.pr__corr { fill: var(--blanco); stroke: var(--tinta); stroke-width: 7; }
.pr-lab { position: absolute; margin: 0; display: flex; flex-direction: column; gap: var(--s-1); }
.pr-lab a { display: inline-flex; align-items: center; gap: var(--s-3); text-decoration: none; min-height: 44px; }
.pr-lab a:hover .pr-lab__nombre { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 0.18em; }
.pr-lab__nombre { font: 800 clamp(1.375rem, 2.5vw, 2.25rem)/1.02 var(--f-sign); letter-spacing: -0.02em; }
.pr-lab__dato { font: 400 1rem/1.3 var(--f-sign); color: var(--suave); }
.pr-lab--corr { left: calc(470 / 1200 * 100%); top: calc(374 / 560 * 100%); transform: translateX(-50%); text-align: center; align-items: center; }
.pr-lab--corr .pr-lab__nombre { font-size: 1.25rem; }
.pr-lab--dp { left: calc(744 / 1200 * 100%); bottom: calc(444 / 560 * 100%); right: calc(120 / 1200 * 100%); }
.pr-lab--vis { left: calc(744 / 1200 * 100%); bottom: calc(284 / 560 * 100%); right: calc(120 / 1200 * 100%); }
.pr-lab--mm { left: calc(784 / 1200 * 100%); bottom: calc(84 / 560 * 100%); right: calc(120 / 1200 * 100%); }
.ind--dp-sq { background: var(--naranja); color: var(--navy-hondo); flex: none; }
.ind--vis-sq { background: var(--vis-amarillo); color: var(--vis-negro); box-shadow: 0 0 0 3px var(--vis-negro); flex: none; }
.ind--mm-sq { background: var(--mm-verde); color: var(--mm-blanco); flex: none; }
@media (max-width: 960px) {
  .redmapa__intro { width: auto; grid-area: auto; margin-bottom: var(--s-6); }
  .plano-red { grid-area: auto; }
}
@media (max-width: 760px) {
  .redmapa { padding-top: var(--s-6); }
  .redmapa__in { padding-inline: var(--gutter); }
  .plano-red__svg--h { display: none; }
  .plano-red__svg--v { display: block; }
  .pr-lab__nombre { font-size: 1.3125rem; }
  .pr-lab--corr { left: calc(132 / 360 * 100%); top: calc(16 / 640 * 100%); transform: none; text-align: left; align-items: flex-start; }
  .pr-lab--corr .pr-lab__nombre { font-size: 1.0625rem; }
  .pr-lab--dp { left: calc(124 / 360 * 100%); bottom: calc(452 / 640 * 100%); right: 0; }
  .pr-lab--vis { left: calc(94 / 360 * 100%); bottom: calc(262 / 640 * 100%); right: 0; }
  .pr-lab--mm { left: calc(64 / 360 * 100%); bottom: calc(72 / 640 * 100%); right: 0; }
  .pr-lab .ind__sq { display: none; }
}

/* Bandas de acceso: cada una con su plano de color y su composición */
.banda { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); position: relative; }
.banda__foto { margin: 0; position: relative; overflow: hidden; }
.banda__foto img { width: 100%; height: 100%; object-fit: cover; }
.banda__txt { position: relative; padding: var(--s-9) calc(var(--edge) + var(--s-4)) var(--s-9) var(--s-8); }
.banda__titulo { font-size: clamp(2rem, 3.6vw, 3.25rem); line-height: 1; letter-spacing: -0.03em; margin-bottom: var(--s-5); }
.banda__titulo a { text-decoration: none; }
.banda__titulo a:hover { text-decoration: underline; text-decoration-thickness: 4px; text-underline-offset: 0.12em; }
.banda__txt p { font-size: 1.125rem; }
.banda__links { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-6); margin-top: var(--s-5); }
.banda__links a { display: inline-flex; align-items: center; min-height: 44px; font: 800 1.0625rem/1 var(--f-sign); text-decoration-thickness: 2px; white-space: nowrap; }
.banda__linea {
  position: absolute; top: calc(var(--s-9) + 0.5em); right: calc(100% - var(--s-8) + var(--s-4));
  width: 50vw; height: 14px; transform: translateY(-50%);
  background: var(--b-linea); box-shadow: 0 0 0 5px var(--b-borde);
}
.banda__linea::after {
  content: ""; position: absolute; right: -10px; top: 50%; transform: translateY(-50%);
  width: 34px; height: 34px; border-radius: 50%; background: var(--blanco); border: 7px solid var(--b-anillo);
}
.banda--dp { background: var(--navy); color: var(--blanco); --suave: var(--navy-suave); --foco: var(--naranja-claro); --b-linea: var(--naranja); --b-borde: var(--navy); --b-anillo: var(--navy-hondo); }
.banda--dp .banda__foto { grid-column: 1 / span 6; min-height: 460px; }
.banda--dp .banda__foto img { object-position: 30% 55%; }
.banda--dp .banda__txt { grid-column: 7 / -1; }
.banda--dp .banda__links a { text-decoration-color: var(--naranja); }
.banda--vis { background: var(--vis-negro); color: var(--mm-blanco); --suave: var(--vis-suave); --foco: var(--vis-amarillo); --b-linea: var(--vis-amarillo); --b-borde: var(--vis-negro); --b-anillo: var(--vis-negro); }
.banda--vis .banda__txt { grid-column: 1 / span 6; grid-row: 1; padding-left: calc(var(--edge) + var(--s-10)); padding-right: var(--s-8); }
.banda--vis .banda__linea, .banda--mm .banda__linea { left: 0; right: auto; width: calc(var(--edge) + var(--s-10) - var(--s-4)); }
.banda--vis .banda__foto { grid-column: 7 / -1; grid-row: 1; min-height: 460px; }
.banda--vis .banda__links a { text-decoration-color: var(--vis-amarillo); }
.banda--vis .banda__titulo a:hover { text-decoration-color: var(--vis-amarillo); }
.banda--mm { background: var(--mm-verde); color: var(--mm-blanco); --suave: var(--mm-suave); --foco: var(--mm-blanco); --b-linea: var(--mm-blanco); --b-borde: var(--mm-verde); --b-anillo: var(--mm-tinta); }
.banda--mm .banda__foto { grid-column: 1 / -1; height: 300px; }
.banda--mm .banda__foto img { object-position: 50% 40%; }
.banda--mm .banda__txt { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: var(--s-8); padding-left: calc(var(--edge) + var(--s-10)); padding-top: var(--s-8); }
.banda--mm .banda__titulo { grid-row: 1 / span 2; }
.banda--mm .banda__linea { top: calc(var(--s-8) + 0.5em); }
.banda--mm .banda__links a { text-decoration-color: var(--mm-suave); }
@media (max-width: 960px) {
  .banda--dp .banda__foto, .banda--vis .banda__foto, .banda--dp .banda__txt, .banda--vis .banda__txt, .banda--mm .banda__txt { grid-column: 1 / -1; grid-row: auto; }
  .banda--dp .banda__foto, .banda--vis .banda__foto { min-height: 240px; height: 240px; }
  .banda__txt, .banda--vis .banda__txt, .banda--mm .banda__txt { padding: var(--s-7) var(--gutter) var(--s-8) calc(var(--gutter) + var(--s-8)); display: block; }
  .banda__linea, .banda--vis .banda__linea, .banda--mm .banda__linea { left: 0; right: auto; width: calc(var(--gutter) + var(--s-6)); top: calc(var(--s-7) + 0.5em); }
  .banda--mm .banda__foto { height: 220px; }
}

.pie--home { background: var(--tinta); }
.pie--home .pie__home-t { font: 800 1.75rem/1 var(--f-sign); color: var(--blanco); margin-bottom: var(--s-4); }
.pie--home p { font: 400 1rem/1.5 var(--f-sign); color: var(--navy-suave); }
.pie__mail--s { font-size: 1.25rem; }
.pie__red--col { display: flex; flex-direction: column; align-items: flex-start; margin-top: 0; }

/* ======================================================================
   VIS MOOT · la línea larga a Viena (negro + amarillo)
   ====================================================================== */
.t-vis { --borde-tinta: var(--vis-amarillo); --linea-alt: var(--vis-negro); --borde-alt: var(--vis-amarillo); --anillo: var(--vis-negro); }
.t-vis .sub { border-bottom-color: color-mix(in srgb, var(--vis-amarillo) 40%, transparent); }
.t-vis .sub__ed a { text-decoration-color: var(--vis-amarillo); }
.t-vis a { text-decoration-color: var(--vis-amarillo); }
.t-vis .ind[aria-current="page"] { border-bottom-color: var(--vis-amarillo); }

.vh { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); min-height: clamp(520px, 74vh, 700px); position: relative; }
.vh__foto { grid-column: 2; grid-row: 1; margin: 0; position: relative; overflow: hidden; z-index: auto !important; }
.vh__foto img { width: 100%; height: 100%; object-fit: cover; object-position: 46% 50%; }
.credito--vis { position: absolute; right: calc(var(--edge) + var(--s-4)); top: var(--s-3); margin: 0; background: color-mix(in srgb, var(--vis-negro) 85%, transparent); color: var(--mm-blanco); padding: var(--s-1) var(--s-2); }
.vh__txt { grid-column: 1; grid-row: 1; padding: var(--s-9) var(--s-6) 0 calc(var(--edge) + var(--lane)); position: relative; z-index: var(--z-contenido); }
.vh__titulo { font-size: clamp(2.5rem, 4.6vw, 4.5rem); line-height: 0.96; letter-spacing: -0.03em; color: var(--mm-blanco); }
.vh__sub { margin-top: var(--s-5); font: 300 clamp(1.125rem, 1.5vw, 1.375rem)/1.35 var(--f-sign); color: var(--vis-suave); }
.vh__eje { position: absolute; left: 0; right: 0; bottom: var(--s-10); height: 0; z-index: var(--z-estacion); }
.vh__via1 { left: calc(var(--edge) + var(--lane) / 2); top: 0; }
.vh__via2 { left: 78%; top: 0; }
.vh__baja { bottom: var(--s-10); }
.vh__origen { position: absolute; left: calc(var(--edge) + var(--lane) / 2); top: 0; transform: translate(-50%, -50%); width: 14px; height: 44px; background: var(--vis-amarillo); }
.vh__madrid, .vh__wien { position: absolute; top: var(--s-5); margin: 0; font: 400 1rem/1.3 var(--f-sign); color: var(--vis-suave); }
.vh__madrid { left: calc(var(--edge) + var(--lane) / 2 - 7px); }
.vh__madrid span, .vh__wien span { display: block; font: 800 1.75rem/1.1 var(--f-sign); color: var(--mm-blanco); letter-spacing: -0.02em; }
.vh__wien { left: calc(78% - 17px); background: var(--vis-negro); padding: var(--s-2) var(--s-3) var(--s-3); margin-left: 0; }
.vh__wien::before { content: ""; position: absolute; left: 0; top: calc(var(--s-5) * -1); transform: translate(0, -50%); width: 34px; height: 34px; border-radius: 50%; background: var(--blanco); border: 7px solid var(--vis-negro); }
@media (max-width: 960px) {
  .vh { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .vh__foto { grid-column: 1; grid-row: 1; height: 260px; }
  .vh__txt { grid-row: 2; padding: var(--s-7) var(--gutter) var(--s-7) calc(var(--edge) + var(--lane)); }
  .vh__eje { bottom: auto; top: 260px; }
  .vh__via2 { display: none; }
  .vh__via2 { left: 70%; }
  .vh__wien { left: calc(70% - 17px); top: calc(var(--s-5) * -1 - 60px); display: none; }
  .vh__madrid { display: none; }
  .vh__baja { bottom: auto; top: 260px; }
  .credito--vis { left: var(--s-2); right: var(--s-2); top: auto; bottom: var(--s-2); padding: 2px var(--s-2); }
}

/* Presentación */
.vabout { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: var(--s-8); padding-top: var(--s-10); padding-bottom: var(--s-9); }
.vabout__titulo { font-size: clamp(2.25rem, 4vw, 3.5rem); line-height: 0.98; letter-spacing: -0.03em; color: var(--vis-amarillo); }
.vabout__lead { font: 400 clamp(1.375rem, 2vw, 1.75rem)/1.4 var(--f-text); margin-bottom: var(--s-6); }
.vabout__txt p:not(.vabout__lead) { font-size: 1.0625rem; }
.vabout__links { grid-column: 2; margin-top: var(--s-5); border-top: 2px solid var(--vis-amarillo); }
.vabout__links li { border-bottom: 1px solid color-mix(in srgb, var(--mm-blanco) 22%, transparent); }
.vabout__links a { display: flex; align-items: center; min-height: 52px; font: 800 1.0625rem/1.2 var(--f-sign); text-decoration: none; }
.vabout__links a:hover { text-decoration: underline; text-decoration-color: var(--vis-amarillo); text-decoration-thickness: 2px; }
@media (max-width: 960px) { .vabout { grid-template-columns: minmax(0, 1fr); row-gap: var(--s-5); } .vabout__links { grid-column: 1; } }

/* Selección: plano amarillo, tipo negro */
.vsel { background: var(--vis-amarillo); color: var(--vis-negro); padding: var(--s-10) 0 var(--s-9); --foco: var(--vis-negro); }
.vsel__in { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); column-gap: var(--s-7); }
.vsel__titulo { font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1; letter-spacing: -0.03em; }
.vsel__big { font: 800 clamp(1.5rem, 2.9vw, 2.625rem)/1.12 var(--f-sign); letter-spacing: -0.02em; margin: 0; }
.vsel__nota { grid-column: 2; margin: var(--s-6) 0 0; font: 400 1.0625rem/1.4 var(--f-sign); color: var(--vis-oscuro-sobre-amarillo); }
@media (max-width: 960px) { .vsel__in { grid-template-columns: minmax(0, 1fr); row-gap: var(--s-4); } .vsel__nota { grid-column: 1; } }

/* Fechas: la ruta y el recuadro de Viena */
.vruta { padding-top: var(--s-10); }
.vruta__cab { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--s-7); align-items: end; margin-bottom: var(--s-8); }
.vruta__titulo { font-size: clamp(2.25rem, 4.4vw, 4rem); line-height: 0.95; letter-spacing: -0.03em; }
.vruta__nota { margin: 0; font: 400 1.125rem/1.45 var(--f-sign); color: var(--vis-suave); }
.vruta > .carril:nth-of-type(2) { padding-bottom: var(--s-9); }
.t-vis .est--mayor .est__marca, .t-vis .est--tramo .est__marca { border-color: var(--vis-negro); }
.t-vis .est--tramo .est__marca span { background: var(--vis-negro); }
.t-vis .aqui__txt { background: var(--vis-amarillo); color: var(--vis-negro); }
.t-vis .aqui::after { background: var(--vis-amarillo); box-shadow: 0 0 0 4px var(--vis-negro); }
.t-vis .aqui__txt::after { border-top-color: var(--vis-amarillo); }
.viena > :not(.via) { position: relative; z-index: var(--z-contenido); }
.viena { z-index: auto !important; background: var(--vis-amarillo); color: var(--vis-negro); padding: var(--s-9) 0 var(--s-9); --linea: var(--vis-negro); --suave: var(--vis-oscuro-sobre-amarillo); --foco: var(--vis-negro); position: relative; }
.vruta__giro, .vruta__cruce { top: calc(var(--s-8) * -1); bottom: auto; }
.viena__titulo { font-size: clamp(3rem, 7vw, 6.5rem); line-height: 0.9; letter-spacing: -0.045em; margin-bottom: var(--s-7); }
.viena__lista { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); --alto: 96px; --eje: 60px; --plano-dir: h; padding-left: 0; }
.viena__lista { grid-template-rows: none; }
.viena__lista::before { content: none; }
.viena__lista .est { grid-row: auto; grid-template-rows: var(--eje) auto; }
.viena__lista .est__marca { grid-row: 1; }
.viena__lista .est > .est__txt, .viena__lista .est:nth-child(odd) > .est__txt { grid-row: 2; align-self: start; padding: var(--s-3) var(--s-4) 0 0; width: auto; }
.viena__lista .est__marca::before, .viena__lista .est:nth-child(odd) .est__marca::before { top: 0; bottom: auto; }
.viena__lista .est__fecha { font-size: 1.375rem; }
.viena__lista .est__hito { font-size: 1.0625rem; }
.viena .est--mayor .est__marca, .viena .est--tramo .est__marca { background: var(--vis-amarillo); border-color: var(--vis-negro); }
.viena__nota { margin: var(--s-7) 0 0; font: 400 1rem/1.4 var(--f-sign); }
.viena__nota a { text-decoration-color: var(--vis-negro); }
.viena__fin { bottom: calc(var(--s-7) * -1); }
@media (max-width: 960px) {
  .vruta__cab { grid-template-columns: minmax(0, 1fr); gap: var(--s-4); }
  .viena__lista { grid-template-columns: minmax(0, 1fr); }
  .viena__lista .est { grid-template-rows: auto; }
    .viena__lista .est > .est__txt, .viena__lista .est:nth-child(odd) > .est__txt { grid-row: 1; padding: 0; }
}

/* Equipo (Vis y Madrid): lista tipográfica, sin fotos */
.equipo { padding-top: var(--s-10); padding-bottom: var(--s-9); }
.equipo__titulo { font-size: clamp(2.5rem, 4.6vw, 4rem); line-height: 0.95; letter-spacing: -0.03em; margin-bottom: var(--s-8); }
.equipo__grupo { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); column-gap: var(--s-7); padding-top: var(--s-5); border-top: 6px solid var(--eq-filete, var(--vis-amarillo)); margin-bottom: var(--s-8); }
.equipo__sub { font-size: 1.75rem; }
.lista-eq { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-6) var(--s-7); }
.lista-eq .persona { display: block; padding-top: var(--s-3); border-top: 1px solid color-mix(in srgb, currentColor 25%, transparent); }
.lista-eq .persona__nombre { font-size: 1.3125rem; margin-bottom: var(--s-2); }
.lista-eq .persona__bio { font-size: 1rem; }
.lista-eq .persona__mas summary { text-decoration-color: var(--eq-acento, var(--vis-amarillo)); }
.equipo__nota { font: 400 0.9375rem/1.4 var(--f-sign); color: var(--suave); margin: 0; }
@media (max-width: 960px) {
  .equipo__grupo { grid-template-columns: minmax(0, 1fr); row-gap: var(--s-5); }
  .lista-eq { grid-template-columns: minmax(0, 1fr); }
}

/* Ediciones */
.ediciones { padding-bottom: var(--s-10); }
.ediciones__titulo { font-size: 1.75rem; margin-bottom: var(--s-5); }
.ediciones__lista { display: flex; flex-wrap: wrap; gap: var(--s-4); }
.ediciones__item { display: flex; flex-direction: column; gap: var(--s-1); padding: var(--s-4) var(--s-5); border: 2px solid currentColor; min-width: 220px; }
.ediciones__item--on { border-width: 6px; }
.ediciones__ano { font: 800 1.5rem/1 var(--f-sign); }
.ediciones__txt { font: 400 1rem/1.3 var(--f-sign); color: var(--suave); }
.ediciones__item:not(.ediciones__item--on) { border-style: dashed; }

/* Pie del Vis */
.pie--vis { background: var(--vis-negro-2); --suave: var(--vis-suave); --foco: var(--vis-amarillo); border-top: 6px solid var(--vis-amarillo); }
.pie--vis .est-fin { background: var(--vis-amarillo); border-color: var(--vis-negro-2); }
.pie--vis p, .pie--vis .pie__datos p { color: var(--vis-suave); font: 400 1rem/1.5 var(--f-sign); }
.pie--vis .pie__creditos { font-size: 0.875rem; }
.pie__ucm { width: 240px; margin-bottom: var(--s-5); }
.pie--vis a, .pie--vis .pie__red a[aria-current] { text-decoration-color: var(--vis-amarillo); }

/* ======================================================================
   MOOT MADRID · la Circular (verde oscuro + blanco)
   ====================================================================== */
.t-mm { --anillo: var(--mm-tinta); --eq-filete: var(--mm-verde); --eq-acento: var(--mm-verde-2); }
.t-mm a { text-decoration-color: var(--mm-verde-2); }
.t-mm .sub__ed a { text-decoration-color: var(--mm-verde); }
.carril-mm { padding-inline: calc(var(--edge) + var(--s-4)); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--s-6); }
.carril-mm > * { grid-column: 1 / -1; }
.carril-mm > .mh__nota, .carril-mm > .mh__credito { grid-column: 1 / span 8; }
@media (max-width: 960px) { .carril-mm { grid-template-columns: minmax(0, 1fr); } .carril-mm > .mh__nota, .carril-mm > .mh__credito { grid-column: 1 / -1; } }

.mh { padding: var(--s-6) 0 var(--s-8); }
.circular {
  --c-w: 14px;
  position: relative; height: clamp(380px, 46vw, 500px);
  border: var(--c-w) solid var(--mm-verde); border-radius: 999px;
  margin: var(--s-9) 0 var(--s-11);
}
.circular__foto { position: absolute; inset: 18px; margin: 0; border-radius: 999px; overflow: hidden; background: var(--mm-verde); }
.circular__foto img { width: 100%; height: 100%; object-fit: cover; object-position: 55% 62%; transform: scale(1.32); transform-origin: 88% 58%; }
.circular__titulo {
  position: absolute; left: 13%; top: 50%; transform: translateY(-50%); z-index: var(--z-contenido);
  background: var(--mm-verde); color: var(--mm-blanco); padding: var(--s-6) var(--s-7) var(--s-6);
  right: 30%;
}
.circular__h1 { font-size: clamp(2.25rem, 4.4vw, 4.25rem); line-height: 0.96; letter-spacing: -0.03em; }
.circular__sub { margin: var(--s-4) 0 0; font: 300 clamp(1.0625rem, 1.4vw, 1.3125rem)/1.3 var(--f-sign); color: var(--mm-suave); }
.circular__lista { position: absolute; inset: calc(var(--c-w) * -1); }
.cest { position: absolute; width: 17%; display: flex; flex-direction: column; gap: 2px; }
.cest__m { position: absolute; left: 0; z-index: var(--z-estacion); }
.cest__f { font: 800 1.125rem/1.2 var(--f-sign); letter-spacing: -0.005em; font-variant-numeric: tabular-nums; }
.cest__h { font: 400 1rem/1.3 var(--f-sign); color: var(--suave); }
/* estaciones del borde superior: rótulo encima */
.cest--a1, .cest--a2, .cest--a3, .cest--a4 { bottom: calc(100% - var(--c-w) / 2 + 30px); }
.cest--a1 { left: 22%; } .cest--a2 { left: 40%; } .cest--a3 { left: 58%; } .cest--a4 { left: 76%; }
.cest--a1 .cest__m, .cest--a2 .cest__m, .cest--a3 .cest__m, .cest--a4 .cest__m { top: calc(100% + 30px); }
/* estaciones del borde inferior: rótulo debajo (la línea vuelve de derecha a izquierda) */
.cest--b1, .cest--b2, .cest--b3 { top: calc(100% - var(--c-w) / 2 + 30px); }
.cest--b1 { left: 66%; width: 22%; } .cest--b2 { left: 45%; } .cest--b3 { left: 24%; }
.cest--b1 .cest__m, .cest--b2 .cest__m, .cest--b3 .cest__m { bottom: calc(100% + 30px); }
.cest__m { width: var(--c-w); height: 26px; background: var(--mm-verde); transform: translateY(-50%); }
.cest--b1 .cest__m, .cest--b2 .cest__m, .cest--b3 .cest__m { transform: translateY(50%); }
.cest--a2 .cest__m { height: 26px; transform: translateY(-100%); }
.cest--b2 .cest__m { transform: translateY(100%); }
.cest__m--o { width: 34px; height: 34px; border-radius: 50%; background: var(--mm-blanco); border: 7px solid var(--mm-tinta); margin-left: calc((var(--c-w) - 34px) / 2); }
.cest__m--t { width: 96px; height: 34px; border-radius: 17px; background: var(--mm-blanco); border: 7px solid var(--mm-tinta); display: flex; align-items: center; justify-content: space-around; padding: 0 5px; margin-left: calc((var(--c-w) - 34px) / 2); }
.cest__m--t span { width: 7px; height: 7px; border-radius: 50%; background: var(--mm-tinta); }
.aqui--dentro { top: var(--aqui-line); width: auto; height: 104px; display: flex; flex-direction: column-reverse; align-items: flex-start; }
.aqui--dentro .aqui__txt { position: static; transform: translateX(-1px); }
.aqui--dentro .aqui__txt::after { content: none; }
.aqui--dentro::after { position: static; flex: 1; width: 3px; height: auto; transform: none; box-shadow: none; margin-left: -1px; }
.aqui--dentro.aqui--arriba { top: calc(var(--aqui-line) - 104px); flex-direction: column; }
.aqui--dentro::after { background: var(--mm-tinta); }
.aqui--dentro .aqui__txt { background: var(--mm-tinta); }
.mh__nota { margin: 0; font: 400 1.0625rem/1.45 var(--f-sign); color: var(--suave); }
.mh__credito { margin: var(--s-2) 0 0; }
@media (max-width: 960px) {
  .mh { padding-top: var(--s-6); }
  .circular { --plano-dir: v; height: auto; border: 0; border-radius: 0; margin: 0 0 var(--s-6); }
  .circular__foto { position: relative; inset: auto; height: 240px; border-radius: 120px; border: 10px solid var(--mm-verde); }
  .circular__titulo { position: relative; left: auto; right: auto; top: auto; transform: none; margin: calc(var(--s-7) * -1) var(--s-4) 0; padding: var(--s-5); }
  .circular__lista { position: relative; inset: auto; margin: var(--s-7) 0 0; padding: 0 0 var(--s-8) var(--lane); }
  .circular__lista::before { content: ""; position: absolute; left: calc(var(--lane) / 2 - 5px); top: 0; bottom: 44px; width: 10px; background: var(--mm-verde); }
  .circular__lista::after { content: ""; position: absolute; left: calc(var(--lane) / 2 - 5px); bottom: 0; width: 72px; height: 54px; border: 10px solid var(--mm-verde); border-top: 0; border-radius: 0 0 36px 36px; border-right-color: var(--mm-verde); }
  .circular .cest { position: relative; left: auto; top: auto; bottom: auto; width: auto; padding: var(--s-3) 0 var(--s-4); }
  .circular .cest .cest__m { top: calc(var(--s-3) + 11px); bottom: auto; left: calc(var(--lane) / -2); transform: translate(-50%, -50%); margin: 0; }
  .circular .cest .cest__m:not(.cest__m--o):not(.cest__m--t) { width: 22px; height: 10px; transform: translate(-5px, -50%); }
  .circular .cest .cest__m--o { width: 30px; height: 30px; border-width: 6px; }
  .circular .cest .cest__m--t { width: 30px; height: 92px; border-width: 6px; flex-direction: column; padding: 5px 0; top: calc(var(--s-3) + 40px); }
  .circular .cest--b1 { padding-bottom: var(--s-8); }
  .aqui--dentro { position: relative; left: auto; top: auto; height: auto; margin: 0 0 var(--s-4); flex-direction: row-reverse; align-items: center; justify-content: flex-end; }
  .aqui--dentro::after { flex: none; width: calc(var(--lane) / 2 + 2px); height: 3px; margin: 0 0 0 calc(var(--lane) / -2); }
}
@media (max-width: 760px) { .circular__foto { height: 200px; } }

/* Presentación */
.mabout { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: var(--s-8); padding-top: var(--s-9); padding-bottom: var(--s-9); border-top: 6px solid var(--mm-verde); }
.mabout__titulo { font-size: clamp(2.25rem, 4vw, 3.5rem); line-height: 0.98; letter-spacing: -0.03em; color: var(--mm-verde); margin-top: var(--s-4); align-self: start; }
.mabout__txt { padding-top: var(--s-4); }
.mabout__lead { font: 400 clamp(1.375rem, 2vw, 1.75rem)/1.4 var(--f-text); margin-bottom: var(--s-6); }
.mabout__txt p:not(.mabout__lead) { font-size: 1.0625rem; }
.mabout__links { grid-column: 2; margin-top: var(--s-5); }
.mabout__links li { border-top: 2px solid var(--mm-verde); }
.mabout__links li:last-child { border-bottom: 2px solid var(--mm-verde); }
.mabout__links a { display: flex; align-items: center; min-height: 52px; font: 800 1.0625rem/1.2 var(--f-sign); text-decoration: none; color: var(--mm-verde); }
.mabout__links a:hover { text-decoration: underline; text-decoration-thickness: 2px; }
@media (max-width: 960px) { .mabout { grid-template-columns: minmax(0, 1fr); } .mabout__links { grid-column: 1; } }

/* Selección: plano verde, tipo blanco */
.msel { background: var(--mm-verde); color: var(--mm-blanco); padding: var(--s-10) 0; --foco: var(--mm-blanco); }
.msel__in { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); grid-template-rows: auto 1fr; column-gap: var(--s-8); align-items: start; }
.msel__titulo { grid-column: 2; grid-row: 1; font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1; letter-spacing: -0.03em; text-align: right; color: var(--mm-suave); }
.msel__big { grid-column: 1; grid-row: 1 / span 2; font: 800 clamp(1.5rem, 2.9vw, 2.625rem)/1.12 var(--f-sign); letter-spacing: -0.02em; margin: 0; }
.msel__nota { grid-column: 2; grid-row: 2; margin: var(--s-4) 0 0; text-align: right; font: 400 1.0625rem/1.4 var(--f-sign); color: var(--mm-suave); }
@media (max-width: 960px) {
  .msel__in { grid-template-columns: minmax(0, 1fr); }
  .msel__titulo, .msel__big, .msel__nota { grid-column: 1; grid-row: auto; text-align: left; }
  .msel__titulo { margin-bottom: var(--s-4); }
}

/* Fechas y sede */
.mfechas { padding-top: var(--s-9); padding-bottom: var(--s-6); display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: var(--s-8); }
.mfechas__titulo { font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1; letter-spacing: -0.03em; }
.mfechas__dl { margin: 0; }
.mfechas__dl div { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 7fr); gap: var(--s-5); padding: var(--s-4) 0; border-top: 1px solid color-mix(in srgb, var(--mm-verde) 35%, transparent); }
.mfechas__dl dt { font: 800 1.0625rem/1.3 var(--f-sign); color: var(--mm-verde); }
.mfechas__dl dd { margin: 0; font-size: 1.0625rem; }
@media (max-width: 960px) { .mfechas, .mfechas__dl div { grid-template-columns: minmax(0, 1fr); gap: var(--s-2); } .mfechas__titulo { margin-bottom: var(--s-4); } }

.equipo--mm .equipo__sub { color: var(--mm-verde); }
.pie--mm { background: var(--mm-verde); --suave: var(--mm-suave); --foco: var(--mm-blanco); }
.pie--mm p, .pie--mm .pie__datos p, .pie--mm .pie__creditos { color: var(--mm-suave); font-family: var(--f-sign); }
.pie--mm a { text-decoration-color: var(--mm-suave); }
.pie--mm .pie__red a[aria-current] { text-decoration-color: var(--mm-blanco); }

/* ======================================================================
   MEMORIA 2026
   ====================================================================== */
.mem { padding: var(--s-8) 0 var(--s-9); }
.mem__rejilla { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s-8); align-items: end; }
.mem__txt { position: relative; }
.mem__vuelta { margin: 0 0 var(--s-5); }
.mem__vuelta a { display: inline-flex; align-items: center; min-height: 44px; font: 800 1.0625rem/1 var(--f-sign); text-decoration-color: var(--naranja); text-decoration-thickness: 2px; }
.mem__titulo { font-size: clamp(3.5rem, 9vw, 8.5rem); line-height: 0.88; letter-spacing: -0.045em; color: var(--navy); margin-bottom: var(--s-6); }
.mem__lead { font: 400 clamp(1.25rem, 1.8vw, 1.5rem)/1.45 var(--f-text); }
.mem__orig a { display: inline-flex; align-items: center; min-height: 44px; font: 800 1.0625rem/1.2 var(--f-sign); text-decoration-color: var(--naranja); text-decoration-thickness: 2px; }
.mem__via { left: calc(var(--lane) / -2); bottom: calc(var(--s-8) * -1); }
.mem__cab { left: calc(var(--lane) / -2); bottom: calc(var(--s-8) * -1); transform: translate(-50%, 50%) rotate(90deg); }
.mem__cartel { margin: 0; background: var(--placa); padding: var(--s-4); outline: 1px solid color-mix(in srgb, var(--tinta) 14%, transparent); }
.mem__cartel img { width: 100%; max-height: 640px; object-fit: contain; }
.mem__cartel figcaption { font: 400 0.9375rem/1.35 var(--f-sign); color: var(--suave); margin-top: var(--s-3); }
@media (max-width: 960px) { .mem__rejilla { grid-template-columns: minmax(0, 1fr); } .mem__cartel { max-width: 360px; } }

.plano__lista--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.vista--2026 { padding-top: var(--s-10); }
.actos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-7); margin-top: var(--s-9); padding-bottom: var(--s-4); }
.acto { margin: 0; }
.acto img { width: 100%; background: var(--placa); }
.acto a { display: block; }
.acto figcaption { margin-top: var(--s-3); font: 400 1rem/1.45 var(--f-sign); color: var(--navy-suave); }
.acto--prog { grid-column: 1 / -1; }
.acto--prog img { padding: var(--s-4); }
@media (max-width: 760px) { .actos { grid-template-columns: minmax(0, 1fr); } }

.trib { padding-top: var(--s-10); padding-bottom: var(--s-9); }
.trib__titulo { font-size: clamp(2.25rem, 4.4vw, 3.75rem); line-height: 0.98; letter-spacing: -0.03em; margin-bottom: var(--s-8); }
.trib__lista { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--s-7) var(--s-6); }
.trib__p { grid-column: span 2; }
.trib__p--foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 22%; margin-bottom: var(--s-4); background: var(--papel-2); }
.trib__p--foto:first-child { grid-column: span 2; }
.trib__p:not(.trib__p--foto) { grid-column: span 3; border-top: 6px solid var(--navy); padding-top: var(--s-4); }
.trib__p .persona__nombre { font-size: 1.375rem; }
.trib__p .persona__bio { margin-top: var(--s-2); }
.trib__p .persona__mas { margin-top: var(--s-1); }
.evaluadores { margin-top: var(--s-9); display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: var(--s-7); }
.evaluadores__t { font-size: 1.5rem; grid-row: 1 / span 2; }
.evaluadores__lista { font: 400 1.25rem/1.6 var(--f-sign); margin: 0 0 var(--s-3); }
.evaluadores__nota { font: 400 0.9375rem/1.4 var(--f-sign); color: var(--suave); margin: 0; }
@media (max-width: 960px) {
  .trib__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trib__p, .trib__p--foto:first-child, .trib__p:not(.trib__p--foto) { grid-column: span 1; }
  .evaluadores { grid-template-columns: minmax(0, 1fr); row-gap: var(--s-3); }
}
@media (max-width: 560px) { .trib__lista { grid-template-columns: minmax(0, 1fr); } }

.res { background: var(--naranja); color: var(--navy-hondo); padding: var(--s-10) 0 var(--s-9); --foco: var(--navy-hondo); --suave: var(--navy-hondo); }
.res__titulo { font-size: clamp(2.5rem, 4.6vw, 4rem); line-height: 0.95; letter-spacing: -0.03em; margin-bottom: var(--s-6); }
.res__ganador { font: 800 clamp(2rem, 4.6vw, 4rem)/1 var(--f-sign); letter-spacing: -0.035em; margin: 0 0 var(--s-3); }
.res__marcador { font: 400 1.25rem/1.4 var(--f-text); margin-bottom: var(--s-8); }
.res__tablas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-7); align-items: start; }
.tabla { width: 100%; border-collapse: collapse; font: 400 1.0625rem/1.3 var(--f-sign); font-variant-numeric: tabular-nums; }
.tabla caption { text-align: left; font: 800 1.1875rem/1.2 var(--f-sign); padding-bottom: var(--s-3); border-bottom: 6px solid var(--navy-hondo); }
.tabla th { text-align: left; font-weight: 800; font-size: 0.9375rem; padding: var(--s-2) 0; border-bottom: 2px solid var(--navy-hondo); }
.tabla td { padding: var(--s-2) 0; border-bottom: 1px solid color-mix(in srgb, var(--navy-hondo) 30%, transparent); }
.tabla th:last-child, .tabla td:last-child { text-align: right; }
.oradores { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-7); margin-top: var(--s-8); }
.oradores__t { font-size: 1.1875rem; padding-bottom: var(--s-3); border-bottom: 6px solid var(--navy-hondo); }
.oradores__l { counter-reset: o; }
.oradores__l li { display: flex; justify-content: space-between; gap: var(--s-4); padding: var(--s-2) 0; border-bottom: 1px solid color-mix(in srgb, var(--navy-hondo) 30%, transparent); font: 400 1.0625rem/1.3 var(--f-sign); font-variant-numeric: tabular-nums; }
.oradores__l li:first-child { font-weight: 800; }
.res__doc { margin: var(--s-7) 0 0; font: 400 1.0625rem/1.45 var(--f-sign); }
.res__doc a { font-weight: 800; text-decoration-thickness: 2px; }
@media (max-width: 960px) { .res__tablas, .oradores { grid-template-columns: minmax(0, 1fr); } }

.eqs { padding-top: var(--s-10); padding-bottom: var(--s-8); }
.eqs__titulo { font-size: clamp(2.25rem, 4.4vw, 3.75rem); line-height: 0.98; letter-spacing: -0.03em; margin-bottom: var(--s-7); }
.eqs__partes { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 6fr); gap: var(--s-6); }
.eqs__parte { padding-top: var(--s-4); border-top: 6px solid var(--navy); }
.eqs__p { font-size: 1.25rem; margin-bottom: var(--s-3); }
.eqs__num { font: 800 clamp(1.75rem, 3.4vw, 2.75rem)/1.1 var(--f-sign); letter-spacing: -0.01em; color: var(--navy); font-variant-numeric: tabular-nums; margin: 0; }
.eqs__txt { margin-top: var(--s-6); font-size: 1.0625rem; }
.eqs__doc a, .docs--caso a { font: 800 1.0625rem/1.25 var(--f-sign); text-decoration-color: var(--naranja); text-decoration-thickness: 2px; }
@media (max-width: 760px) { .eqs__partes { grid-template-columns: minmax(0, 1fr); } }

.caso26 { padding-top: var(--s-9); padding-bottom: var(--s-9); display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: var(--s-8); }
.caso26__titulo { grid-column: 1 / -1; font-size: clamp(2.25rem, 4.4vw, 3.75rem); line-height: 0.98; letter-spacing: -0.03em; margin-bottom: var(--s-6); }
.caso26__lead { grid-column: 1; font: 400 clamp(1.25rem, 1.8vw, 1.5rem)/1.45 var(--f-text); }
.caso26 .docs--caso { grid-column: 2; grid-row: 2; align-self: start; }
.esquema { grid-column: 1 / -1; margin: var(--s-7) 0 0; background: var(--placa); padding: var(--s-5); outline: 1px solid color-mix(in srgb, var(--tinta) 14%, transparent); }
.esquema--b { grid-column: 1 / span 1; }
.esquema figcaption { font: 400 0.9375rem/1.4 var(--f-sign); color: var(--tinta-suave); margin-top: var(--s-3); }
@media (max-width: 960px) { .caso26 { grid-template-columns: minmax(0, 1fr); } .caso26 .docs--caso, .esquema--b { grid-column: 1; grid-row: auto; } }

.todos { padding-top: var(--s-8); padding-bottom: var(--s-10); display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: var(--s-8); }
.todos__titulo { grid-column: 1 / -1; font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1; letter-spacing: -0.03em; margin-bottom: var(--s-6); }
.todos__extra p { font-size: 1.0625rem; }
.todos__extra { padding-top: var(--s-3); }
@media (max-width: 960px) { .todos { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 1240px) { .plano__lista--6 { grid-template-columns: minmax(0, 1fr); } .plano__lista > .est:nth-child(n) { grid-column: auto; } }

@media (max-width: 960px) { .personas--sec { grid-template-columns: minmax(0, 1fr); } .personas--sec .persona__foto { width: 160px; height: 160px; } }
@media (max-width: 420px) { .pie__mail { font-size: 1.125rem; } }
@media (min-width: 761px) and (max-width: 960px) { .personas:not(.personas--sec) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* 5-nov: colaboradores dentro de «El Moot», tras el párrafo de entrada; Behavior & Law centrado */
.moot__apoyos { grid-column: 1 / -1; grid-row: 2; margin-bottom: var(--s-9); }
.moot__apoyos .apoyos__titulo { font-size: 1.375rem; margin-bottom: var(--s-4); }
.moot__apoyos .revista { margin-top: var(--s-6); display: flex; flex-direction: column; align-items: center; text-align: center; }
.moot__apoyos .revista__t { font-size: 1.125rem; margin-bottom: var(--s-3); }
.moot__apoyos .revista__caja { width: calc((100% - 2 * var(--s-4)) / 3); }
@media (max-width: 760px) { .moot__apoyos .revista__caja { width: 100%; } }
.premios__generico { font: 400 clamp(1.25rem, 1.8vw, 1.5rem)/1.45 var(--f-text); margin: var(--s-4) 0 0; }

/* 5-nov: titular de portada en dos niveles */
.redmapa__sub { display: block; margin-top: var(--s-4); font-size: clamp(1.375rem, 2.2vw, 1.875rem); line-height: 1.15; letter-spacing: -0.01em; }

/* 5-nov: tribunal de la Gran Final, cinco retratos iguales (H, M, H, M, H) */
.trib__lista { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.trib__p, .trib__p--foto:first-child, .trib__p:not(.trib__p--foto) { grid-column: span 1; border-top: 0; padding-top: 0; }
.trib__p--foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; }
@media (max-width: 1100px) { .trib__lista { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .trib__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 440px) { .trib__lista { grid-template-columns: minmax(0, 1fr); } .trib__p--foto img { width: 70%; } }
/* 5-nov: colaboradores de la I edicion, arriba, antes del calendario */
.apoyos26 { padding-top: var(--s-8); padding-bottom: var(--s-8); background: #fff; }
.apoyos26 .apoyos__titulo { font-size: 1.375rem; margin-bottom: var(--s-4); }

/* 5-nov: entre 961 y 1200 px la entrada de la portada va encima del plano (el titular en dos niveles pisaba el rotulo) */
@media (max-width: 1200px) {
  .redmapa__intro { width: auto; grid-area: auto; margin-bottom: var(--s-6); }
  .plano-red { grid-area: auto; }
}

/* 6-nov (auditoría): correos y enlaces largos no se salen a 320 px ni con letra grande; enlaces del pie con área táctil ≥ 24 px */
a[href^="mailto:"], .ed1__links a { overflow-wrap: anywhere; }
.pie__creditos a { display: inline-block; padding-block: 3px; }

/* 6-nov (auditoría): logotipo original de la UCM sobre placa clara en los pies oscuros; rótulo del correo en la portada; edición de la organización */
.pie__placa { display: inline-block; background: #fff; padding: var(--s-3) var(--s-4); margin-bottom: var(--s-5); }
.pie__placa .pie__ucm { margin-bottom: 0; }
.pie__mail-t { margin: var(--s-4) 0 0; font: 800 1rem/1.3 var(--f-sign); color: var(--blanco); }
.pie--home .pie__mail-t + .pie__mail { margin-top: 0; }
.org__ed { margin: var(--s-3) 0 var(--s-5); font: 400 1rem/1.45 var(--f-sign); color: var(--suave); }

/* 6-nov (auditoría): páginas legales y sus enlaces en el pie */
.pie__legal { margin: var(--s-4) 0 0; padding-bottom: var(--s-6); font: 400 1rem/1.5 var(--f-sign); color: var(--navy-suave); }
.pie__legal a { display: inline-block; padding-block: 10px; }
.pie--vis .pie__legal { color: var(--vis-suave); }
.legal { padding-top: var(--s-9); padding-bottom: var(--s-10); }
.legal__titulo { font-size: clamp(2.5rem, 5vw, 4rem); letter-spacing: -0.03em; margin-bottom: var(--s-5); }
.legal h2 { font-size: 1.5rem; margin: var(--s-7) 0 var(--s-3); }
.legal__aviso { font: 800 1.0625rem/1.45 var(--f-sign); border-left: 6px solid var(--naranja); padding-left: var(--s-4); }
.legal__fecha { margin-top: var(--s-7); color: var(--suave); font: 400 1rem/1.4 var(--f-sign); }

/* 6-nov (auditoría): leyenda de las marcas de la línea (forma + texto, nunca solo color) */
.plano__leyenda { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-6); margin: var(--s-4) 0 0; font: 400 1rem/1.3 var(--f-sign); color: var(--suave); }
.ley { display: inline-flex; align-items: center; gap: var(--s-2); }
.ley__m { flex: none; display: inline-block; }
.ley__m--c { width: 22px; height: 22px; border-radius: 50%; background: var(--blanco); border: 5px solid currentColor; }
.ley__m--r { width: 6px; height: 22px; background: currentColor; }
.ley__m--t { width: 46px; height: 22px; border-radius: 11px; border: 4px solid currentColor; background: var(--blanco) radial-gradient(circle, currentColor 2.5px, transparent 3px) center / 12px 12px repeat-x; }
.ley__m--d { width: 14px; height: 14px; margin-inline: 4px; transform: rotate(45deg); background: currentColor; }
/* esquemas ampliables */
a.amplia { display: block; }
/* nombre corto bajo DP / V / M en móvil */
.ind__corto { display: none; }
@media (min-width: 370px) and (max-width: 760px) {
  .ind { flex-direction: column; gap: 3px; min-height: 52px; padding: 4px 2px 2px; }
  .ind__corto { display: block; font: 400 0.875rem/1 var(--f-sign); }
  .ind[aria-current="page"] .ind__corto { font-weight: 800; }
}
/* 6-nov: por debajo de 360 px la cabecera se compacta para que «Menú» quepa en la misma fila */
@media (max-width: 359px) {
  .red__in { gap: 4px; padding-inline: 12px 10px; }
  .red__casa { font-size: 1rem; }
  .ind { min-width: 40px; }
  .red__menu { padding: 0 10px; }
}
@media (min-width: 370px) and (max-width: 374px) { .t-vis .ind__corto { display: none; } .t-vis .ind { flex-direction: row; min-height: 44px; padding: 0 4px; } }
