/* Mapas, listas de paradas, leyenda y línea de tiempo (componentes de 008–011 en adelante). */

/* ── Mapas vectoriales (viewBox en mm: los grosores son reales) ── */
.map { display: block; width: 100%; height: 100%; }
.map__land { fill: var(--blue-20); }
.map__land--otro { fill: var(--blue-10); }                          /* países vecinos */
.map__lake { fill: var(--paper); stroke: var(--blue-60); stroke-width: 0.15; }
.map__limit { fill: none; stroke: var(--blue-deep); stroke-width: 0.15; stroke-dasharray: 0.7 0.5; }  /* límite internacional */
.map__coast { fill: none; stroke: var(--blue-deep); stroke-width: 0.2; stroke-linejoin: round; }
.map__river { fill: none; stroke: var(--blue-60); stroke-width: 0.2; stroke-linecap: round; }
.map__grat { fill: none; stroke: var(--blue-40); stroke-width: 0.1; }
.map__gratlabel { font-family: var(--font-ui); font-size: 1.94px; fill: var(--blue-60); }           /* 5,5 pt */
.map__label { font-family: var(--font-ui); font-size: 2.47px; font-weight: 700; fill: var(--blue-deep); paint-order: stroke; stroke: var(--paper); stroke-width: 0.7px; stroke-linejoin: round; } /* 7 pt */
.map__note { font-family: var(--font-ui); font-size: 2.12px; font-weight: 500; fill: var(--blue-deep); } /* 6 pt */
.map__stop { fill: var(--blue-deep); stroke: var(--paper); stroke-width: 0.25; }
.map__reg { fill: var(--paper); stroke: var(--blue-deep); stroke-width: 0.25; }
.map__frame { fill: none; stroke: var(--blue-deep); stroke-width: 0.25; }
.map__border { fill: none; stroke: var(--blue-deep); stroke-width: 0.25; }
.route--land { fill: none; stroke: var(--blue-deep); stroke-width: 0.4; stroke-linecap: round; stroke-linejoin: round; }
.route--water { fill: none; stroke: var(--blue-deep); stroke-width: 0.4; stroke-dasharray: 0.9 0.9; }

/* ── Lista de paradas: número · nombre / fecha (2 líneas de base por parada) ── */
.stoplist, .stopindex, .legend { list-style: none; margin: 0; padding: 0; }
.stoplist li { display: grid; grid-template-columns: 7mm 1fr; }
.stoplist b { font-family: var(--font-ui); font-size: var(--editorial-size); line-height: var(--baseline); font-weight: 700; }
.stoplist .t-meta { grid-column: 2; font-weight: 400; }

/* ── Índice de paradas: número · nombre · página ── */
.stopindex li { display: grid; grid-template-columns: 7mm 1fr auto; }
.stopindex b { font-weight: 700; }
.stopindex li span:last-child { font-size: var(--meta-size); font-weight: 600; }

/* ── Leyenda ── */
.legend li { display: grid; grid-template-columns: 6mm 1fr; column-gap: 1.5mm; min-height: calc(var(--baseline) * 2); }
.legend svg { width: 6mm; height: var(--baseline); }
.legend .t-meta { font-weight: 400; }

/* ── Línea de tiempo: pasos de media columna; entradas alternadas arriba y abajo ── */
.timeline { position: relative; --step: calc((100% + var(--column-gap)) / 12); --dot: 1.6mm; }
.tl-line { position: absolute; top: 50%; border-top: var(--rule-fine) solid var(--blue-deep); }
.tl-line--gap { left: calc(var(--dot) / 2); width: var(--step); border-top-style: dashed; }            /* salto entre 1832 y 1833 */
.tl-line--out { left: calc(var(--step) + var(--dot) / 2); right: calc(var(--margin-inner) * -1); }      /* sigue en la página enfrentada */
.tl-line--in { left: calc(var(--margin-inner) * -1); width: calc(var(--margin-inner) + var(--step) * 5 + var(--dot) / 2); }
.tl-entry { position: absolute; left: calc(var(--i) * var(--step)); width: calc((100% - 5 * var(--column-gap)) / 6); }
.tl-entry--up { bottom: calc(50% + var(--baseline)); }
.tl-entry--down { top: calc(50% + var(--baseline)); }
.tl-entry::before { content: ''; position: absolute; left: 0; width: var(--dot); height: var(--dot); border-radius: 50%; background: var(--blue-deep); }
.tl-entry::after { content: ''; position: absolute; left: calc(var(--dot) / 2 - var(--rule-fine) / 2); width: var(--rule-fine); height: calc(var(--baseline) - var(--dot) / 2 - 0.6mm); background: var(--blue-deep); }
.tl-entry--up::before { bottom: calc(var(--baseline) * -1 - var(--dot) / 2); }
.tl-entry--up::after { bottom: calc(var(--baseline) * -1 + var(--dot) / 2); }
.tl-entry--down::before { top: calc(var(--baseline) * -1 - var(--dot) / 2); }
.tl-entry--down::after { top: calc(var(--baseline) * -1 + var(--dot) / 2); }
.tl-entry b { font-weight: 700; }

/* ── 008 · Mapa general del recorrido I ── */
/* 008 · Índice del recorrido (síntesis del 14 oct. 2026): página azul a sangre; dos columnas de tres (paradas 01–08 | 09–15).
   Cada parada ocupa dos líneas: número, nombre y página; debajo, las fechas. */
.p008__title { grid-column: 1 / 7; grid-row: 2 / 5; --size: var(--title-size); }
.p008__sub { grid-column: 1 / 4; grid-row: 6; }
.p008__col { grid-column: 1 / 4; grid-row: 8 / 28; }
.p008__col--b { grid-column: 4 / 7; }
.p008__col li { display: grid; grid-template-columns: 8mm 1fr auto; column-gap: 2mm; height: calc(var(--baseline) * 2); align-content: start; }
.p008__col li > b { font-family: var(--font-ui); font-size: var(--editorial-size); line-height: var(--baseline); font-weight: 700; }
.p008__col li > i { font-style: normal; font-family: var(--font-ui); font-size: var(--editorial-size); line-height: var(--baseline); font-weight: 600; }
.p008__col li > .t-meta { grid-column: 2 / 4; opacity: 0.85; }
.p008__col li.year { height: var(--baseline); }
.p008__col li.largo { height: calc(var(--baseline) * 3); }
.p008__col li:not(.year) { background: linear-gradient(var(--paper), var(--paper)) top / 100% var(--rule-fine) no-repeat; padding-top: 0.6mm; }

/* 009 · Mapa general del recorrido: los dos mapas juntos (general en columnas 1–2, detalle en 3–5); leyenda y nota en la 6 */
.p009__general { grid-column: 1 / 3; grid-row: 1 / 29; }
.p009__map { grid-column: 3 / 6; grid-row: 1 / 29; }
.p009__title { grid-column: 6 / 7; grid-row: 1 / 3; }
.p009__captions { grid-column: 6 / 7; grid-row: 4 / 7; }
.p009__legendlabel { grid-column: 6 / 7; grid-row: 9; }
.p009__legend { grid-column: 6 / 7; grid-row: 11 / 21; }
.p009__note { grid-column: 6 / 7; grid-row: 21 / 29; align-self: end; }
