/* ── Página de sellos (imita una página de visados real) ──
   La página del pasaporte, con sus sellos de goma, es parte de la pieza propia
   de Viajes: conserva su papel y su tinta. Alrededor (navegación, panel del
   país) todo es del sistema. */
.pas-nav{display:flex; align-items:center; justify-content:space-between; margin:0 0 10px; gap:10px}
.pas-nav .pas-info{font-family:var(--f-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--tx3); text-align:center; line-height:1.5}
.pas-nav .sis-btn-icono{font-size:20px; line-height:1}
.pas-nav .sis-btn-icono:disabled{opacity:.35; cursor:default}
.pagina-pasaporte{
  position:relative; overflow:hidden;
  background:
    repeating-linear-gradient(115deg, rgba(27,42,65,.05) 0 1px, transparent 1px 7px),
    repeating-linear-gradient(25deg, rgba(27,42,65,.04) 0 1px, transparent 1px 7px),
    #EDE6D2;
  border:1px solid var(--borde); border-radius:var(--r-l);
  padding:18px 16px 20px; margin:0;
  box-shadow:inset 0 0 0 1px rgba(27,42,65,.08), var(--sombra-1);
  animation:voltea .4s ease;
}
.pagina-pasaporte::before{
  content:""; position:absolute; top:0; bottom:0; left:0; width:16px;
  background:linear-gradient(to right, rgba(27,42,65,.16), transparent);
  pointer-events:none;
}
@keyframes voltea{
  from{ transform:perspective(1000px) rotateY(-10deg); opacity:.3; }
  to{ transform:perspective(1000px) rotateY(0deg); opacity:1; }
}
@media (prefers-reduced-motion:reduce){ .pagina-pasaporte{animation:none} }
.pasaporte-cab{
  display:flex; justify-content:space-between; align-items:flex-start; gap:10px;
  border-bottom:1.5px solid rgba(27,42,65,.3); padding-bottom:10px; margin-bottom:16px;
}
.pasaporte-cab h3{font-family:var(--f-tit); font-weight:800; font-size:1rem; letter-spacing:.01em; color:var(--tx)}
.pasaporte-cab .bilingue{font-family:var(--f-mono); font-size:.56rem; letter-spacing:.14em; text-transform:uppercase; color:var(--tx2); margin-top:2px}
.pasaporte-cab .num-pagina{
  font-family:var(--f-mono); font-size:.62rem; letter-spacing:.08em; color:var(--tx2);
  border:1px solid rgba(27,42,65,.35); border-radius:5px; padding:4px 8px; flex-shrink:0;
}
/* Sellos de un tamaño fijo, tantos por fila como quepan. No un número de
 * columnas por cada tamaño de pantalla.
 *
 * Antes esto era `repeat(2,1fr)` y `repeat(3,1fr)` a partir de 560px, y en
 * escritorio se rompía por dos motivos a la vez:
 *
 * 1. El `1fr` a secas es `minmax(auto, 1fr)`, y ese mínimo `auto` lo marca el
 *    contenido. Los sellos llevan `aspect-ratio:1/1`: su alto lo decide la fila
 *    y su ancho se deduce del alto, así que en cuanto el alto crecía el ancho
 *    mínimo crecía con él y dejaba de caber. Medido en una columna de 925 px,
 *    las tres columnas salían de 305, 407 y 407 —1.121 en total— y los sellos
 *    de la derecha se salían de la página del pasaporte.
 *
 * 2. Aun cuadrando eso, tres columnas en 925 px dan sellos de 306 px. El diseño
 *    los piensa de unos 154 (dos columnas en una pantalla de móvil), así que en
 *    escritorio salían al doble de tamaño y solo entraban seis por página.
 *
 * `auto-fill` con un mínimo de 140 px arregla los dos de una vez: el mínimo ya
 * no lo negocia el contenido, y el número de columnas sale del ancho que haya.
 * Da 2 en un móvil, 3 hacia los 560 px —lo mismo que antes— y 5 o 6 en la
 * columna de escritorio (con el panel del país a la derecha).
 *
 * (Los sellos miden algo más que su columna si se les mide la caja envolvente:
 * van rotados a propósito, y una caja girada ocupa más. Eso es el efecto de
 * sellos torcidos, no un desbordamiento.) */
.pasaporte-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
  gap:8px 4px; position:relative; z-index:1;
}
/* El color del sello: el del área; con 3 entradas o más, el acento (la tinta
   roja de siempre); los próximos, en el ocre del aviso y a rayas. */
.sello-pais{
  position:relative; display:block; width:100%; aspect-ratio:1/1;
  padding:6px; cursor:pointer; background:none; border:none;
  transform:rotate(var(--rot,0deg)) translateY(var(--desp,0px));
  transition:transform .15s; color:var(--area);
}
.sello-pais.sello-rect{aspect-ratio:4/3}
.sello-pais:hover, .sello-pais.sel{ transform:rotate(0deg) translateY(0) scale(1.08); z-index:2; }
/* Seleccionado: el borde de 2 px en tinta del sistema. */
.sello-pais.sel .sello-svg{ outline:2px solid var(--tx); outline-offset:3px; border-radius:50%; }
.sello-pais.sello-rect.sel .sello-svg{ border-radius:6px }
.sello-pais .sello-svg{ width:100%; height:100%; display:block; mix-blend-mode:multiply; opacity:.85; }
.sello-pais.sello-rojo{color:var(--acento)}
.sello-pais.sello-prox{color:var(--aviso-tx); opacity:.7}
.sello-pais.sello-prox .sello-svg{ stroke-dasharray:3 2; }
.pasaporte-pie{font-family:var(--f-mono); font-size:.56rem; letter-spacing:.06em; color:var(--tx2); text-align:center; margin-top:14px; position:relative; z-index:1}
.vj-pas-leyenda{ margin:0 }

/* ── El mapa de la portada ──
   Más bajo que antes (entre 300 y 390 px de alto en escritorio), con los
   visitados en el color del área, sobre blanco liso: la trama de puntos del
   tablero era un relleno del boceto y le quitaba protagonismo al mapa. */
.mapa-caja{
  position:relative; overflow:hidden; margin:0;
  border:1px solid var(--borde-s); border-radius:var(--r-l); padding:34px 10px 10px;
  background:var(--sup);
}
.vj-mapa-rotulo{ position:absolute; left:16px; top:12px; z-index:3; pointer-events:none }
.tip-pais{position:absolute; z-index:5; pointer-events:none; background:var(--tx); color:var(--sup); border-radius:var(--r-m); padding:7px 11px; font-size:.78rem; max-width:230px; box-shadow:var(--sombra-2)}
.tip-pais b{display:block; font-family:var(--f-tit); font-size:.88rem; line-height:1.25}
.tip-pais span{font-family:var(--f-mono); font-size:.6rem; color:var(--borde); letter-spacing:.03em}
.mapa-caja svg{width:100%; height:auto; max-height:390px; display:block}
@media (max-width:899px){ .mapa-caja{ padding-top:30px } .mapa-caja svg{ max-height:300px } }
.mapa-caja path{fill:var(--lateral); stroke:var(--sup); stroke-width:.5; cursor:pointer; transition:fill .12s}
.mapa-caja path.vis, .mapa-caja circle.vis{fill:var(--area)}
.mapa-caja path.esc, .mapa-caja circle.esc{fill:#7E93AE}
.mapa-caja path.prox, .mapa-caja circle.prox{fill:var(--aviso)}
/* El país elegido, en tinta: seleccionado es tinta en todo el sistema. */
.mapa-caja path.sel, .mapa-caja circle.sel{fill:var(--tx) !important}
.mapa-caja path:hover, .mapa-caja circle:hover{opacity:.82}
.mapa-caja circle.chincheta{stroke:var(--sup); stroke-width:1; cursor:pointer; vector-effect:non-scaling-stroke}

/* ── Zoom a un país ── */
/* Las ciudades selladas, visibles al acercarse a un país. El texto lleva halo
   blanco (paint-order pinta el trazo por detrás del relleno) para leerse tanto
   sobre el verde del país como sobre el gris del vecino. */
/* Sin pointer-events:none: el punto debe poder enseñar su <title> al pasar por
   encima, que es donde viven los nombres que no cupieron como etiqueta. */
/* Con la letra a mano del mapa del viaje (MapaDibujado): Caveat en tinta con
   halo de papel, y los puntos en tinta. */
.mapa-caja .pto-ciudad{fill:var(--tx); stroke:#FFFDF8; stroke-width:1.5; vector-effect:non-scaling-stroke}
.mapa-caja .txt-ciudad{
  fill:var(--tx); stroke:#FFFDF8; paint-order:stroke; stroke-linejoin:round;
  font-family:"Caveat",cursive; font-weight:600; pointer-events:none;
}
/* «Ver el mundo»: un botón secundario pequeño del sistema. */
.mapa-volver{
  position:absolute; top:8px; right:10px; z-index:4;
  height:var(--h-s); padding:0 12px; box-sizing:border-box; cursor:pointer;
  font-family:var(--f-txt); font-size:13px; font-weight:600;
  background:var(--sup); color:var(--tx); border:1.5px solid var(--tx); border-radius:var(--r-m);
}
.mapa-volver:hover{ background:var(--sup2) }
/* La leyenda genérica: nació aquí, pero la usan también otras áreas (agenda,
   música, finanzas…), así que se queda tal cual. */
.leyenda{display:flex; flex-wrap:wrap; gap:12px; padding:8px 4px 0; font-family:'IBM Plex Mono',monospace; font-size:.6rem; letter-spacing:.08em; text-transform:uppercase; color:var(--tinta-suave)}
.leyenda i{display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:5px; vertical-align:-1px}
/* La del mapa de la portada, con la letra de los rótulos del sistema. */
.mapa-caja .leyenda{display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; padding:8px 4px 0; font-family:var(--f-mono); font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--tx3)}
.mapa-caja .leyenda i{display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:5px; vertical-align:-1px}
.mapa-caja .leyenda .l-vis{background:var(--area)}
.mapa-caja .leyenda .l-prox{background:var(--aviso)}
.mapa-caja .leyenda .l-esc{background:#7E93AE}
.mapa-caja .leyenda .l-pend{background:var(--lateral); box-shadow:inset 0 0 0 1px var(--borde)}
.mapa-caja .leyenda .vj-km2{margin-left:auto; color:var(--tx2)}

/* ── La ficha del país (portada y pasaporte) ──
   En la portada, debajo del mapa y solo con un país elegido (sin él,
   fichaPais devuelve vacío y la caja no se ve). En el pasaporte, dentro de la
   caja de la columna derecha. */
.vj-panel-pais{ min-width:0 }
#panelPais{ background:var(--sup); border:1px solid var(--borde-s); border-radius:var(--r-l); padding:16px 18px; margin:0 0 14px }
#panelPais:empty{ display:none }
.vj-pais-cab{ display:flex; align-items:center; justify-content:space-between; gap:10px }
.vj-pais-cab h3{ margin:0; font-family:var(--f-tit); font-weight:800; font-size:17px; letter-spacing:-.01em; color:var(--tx) }
.vj-pais-sub{ margin:4px 0 0; font-family:var(--f-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--tx2) }
#panelPais .vj-nota{ margin:8px 0 0 }
.vj-pais-ciudades{ margin-top:10px; display:flex; flex-wrap:wrap; gap:5px }
/* Las visitas de la ficha del país: una línea por viaje, fecha y nombre. */
.visitas-pais{margin-top:10px; display:flex; flex-direction:column; gap:4px}
.visita-fila{
  display:flex; align-items:baseline; gap:10px; font-size:14px;
  padding:6px 10px; background:var(--sup2); border:1px solid var(--borde-s); border-radius:var(--r-m);
}
.visita-fila .mono{
  font-family:var(--f-mono); font-size:11px; letter-spacing:.04em;
  text-transform:uppercase; color:var(--tx3); flex-shrink:0; width:70px;
}
.visita-fila b{font-weight:600}
/* Las visitas se abren: misma página de viaje que desde la cronología o el
   cuaderno. La flecha lo delata sin leer nada. */
.visita-fila.toca{ cursor:pointer }
.visita-fila.toca:hover b{ text-decoration:underline; text-underline-offset:3px }
.visita-fila .visita-ir{ margin-left:auto; color:var(--area); font-weight:700 }
/* Las ciudades selladas: pastillas neutras; el ×N de las repetidas, en el área. */
.chip-ciudad{
  display:inline-flex; align-items:center; gap:4px; height:24px; padding:0 10px; box-sizing:border-box;
  font-size:12.5px; color:var(--tx); background:var(--neutro-suave); border-radius:var(--r-pill);
}
.chip-ciudad b{font-family:var(--f-mono); font-size:11px; color:var(--area)}
/* Las tarjetas del país tocado, debajo de sus visitas. */
.vj-pais-tarjetas{ margin-top:14px }

/* ══ El Mapa de Viajes con el trazo del visor (maqueta: referencia/lienzo/MapaViajes.html) ══
   Mar azul pálido, papel y tinta; lo visitado en salvia con borde verde, lo
   planificado en amarillo, el país tocado en verde. En el móvil, el mundo
   entero de lado a lado; en el ordenador, «Más datos» en la columna derecha. */
.vjm-zonas{ display:flex; gap:6px; overflow-x:auto; scrollbar-width:none; margin:4px 0 10px; padding-bottom:2px }
.vjm-zonas::-webkit-scrollbar{ display:none }
.vjm-zona{
  flex-shrink:0; height:34px; padding:0 13px; border-radius:17px; cursor:pointer;
  border:1.3px solid var(--borde); background:var(--sup); color:var(--tx); font:500 14px var(--f-txt);
}
.vjm-zona i{ font-style:normal; font-family:var(--f-mono); font-size:11px; margin-left:5px; opacity:.7 }
.vjm-zona.on{ background:var(--tx); border-color:var(--tx); color:#fff; font-weight:600 }
.mapa-caja.vj-mapa{ background:#EAF1F6; border:0; border-radius:20px; padding:0 }
/* Con un país tocado, ese país manda: los demás quedan muy apagados. */
.vj-mapa path, .vj-mapa circle.chincheta{ transition:opacity .25s }
.vj-mapa svg:has(.sel) path:not(.sel):not(.ccaa), .vj-mapa svg:has(.sel) circle.chincheta:not(.sel){ opacity:.28 }
.mapa-caja.vj-mapa svg{ max-height:none }
/* En el ordenador, siempre la misma forma (VJ_RATIO_ESC en viajes.js): el
   mundo queda con un poco de mar a los lados y los zooms no lo estiran. */
@media (min-width:900px){ .mapa-caja.vj-mapa svg{ aspect-ratio:1000/300; height:auto; max-height:min(300px,32vh) } }
.vj-mapa path{ fill:#F3F1EA; stroke:#C9CFC9; stroke-width:.5 }
.vj-mapa path.vis, .vj-mapa path.esc{ fill:#E3F0E8; stroke:#2E6E4E; stroke-width:.9 }
.vj-mapa path.prox{ fill:#FBF0D3; stroke:#B8732A; stroke-width:.9 }
.vj-mapa path.sel, .vj-mapa circle.sel{ fill:#2E6E4E !important; stroke:var(--tx); stroke-width:1.3 }
.vj-mapa circle.chincheta{ fill:#2E6E4E; stroke:#fff; stroke-width:1.2 }
.vj-mapa circle.chincheta.prox{ fill:#D8973C }
.vj-mapa path.ccaa.vis{ fill:#E3F0E8; stroke:#2E6E4E }
.vj-mapa path.ccaa.pend{ fill:#F3F1EA; stroke:#C9CFC9 }
.vj-mapa .mapa-volver{ top:10px; right:10px; border-radius:17px; background:rgba(255,253,248,.95) }
.vjm-leyenda{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:10px 0 0 }
.vjm-leyenda > span:not(.vjm-km2){ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; color:var(--tx2); padding:4px 10px 4px 6px; border-radius:14px; background:var(--sup); border:1px solid var(--borde-s) }
.vjm-leyenda i{ width:14px; height:14px; border-radius:50%; border:1.3px solid }
.vjm-leyenda .l-vis{ background:#E3F0E8; border-color:#2E6E4E }
.vjm-leyenda .l-prox{ background:#FBF0D3; border-color:#B8732A }
.vjm-leyenda .l-pend{ background:#F3F1EA; border-color:#C9CFC9 }
.vjm-km2{ margin-left:auto; font-family:"Caveat",cursive; font-size:19px; color:var(--tx) }
.vjm-aviso{ margin:6px 0 0; text-align:center; font-family:"Caveat",cursive; font-size:19px; color:var(--tx2) }
@media (max-width:899px){
  /* El mundo entero, de lado a lado de la pantalla y sin márgenes. */
  .mapa-caja.vj-mapa{ margin:0 -16px; border-radius:0 }
  .vjm-km2{ flex-basis:100%; margin:2px 0 0; text-align:center }
  .vj-portada > .vj-lado-mapa{ display:none }
  /* Con un país tocado, su ficha manda: los datos generales se apartan. */
  .vj-portada:has(#panelPais:not(:empty)) .vjm-datos.solo-movil{ display:none }
}
@media (min-width:900px){ .vjm-datos.solo-movil{ display:none } .vjm-aviso{ display:none } }
.vj-lado-mapa{ min-width:0 }
.vj-lado-mapa > .vj-lado{ margin-top:18px }

/* Rótulos y cifras */
.vjm-rot{ display:flex; align-items:center; gap:10px; margin:22px 0 12px; font-family:var(--f-mono); font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--tx2) }
.vjm-rot::after{ content:""; flex:1; border-top:1.5px dashed var(--borde) }
.vjm-rot b{ font-family:var(--f-tit); font-size:14px; letter-spacing:0; color:var(--tx); text-transform:none }
.vj-lado-mapa .vjm-datos > .vjm-rot:first-child{ margin-top:0 }
.vjm-cifras{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; text-align:center }
.vjm-cifra-c{ width:62px; height:62px; margin:0 auto; border-radius:50%; border:1.5px solid var(--tx); display:grid; place-items:center }
.vjm-cifra-c b{ font-family:var(--f-tit); font-weight:800; font-size:21px; letter-spacing:-.03em }
.vjm-cifra span{ display:block; margin-top:6px; font-family:var(--f-mono); font-size:9.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--tx2); line-height:1.3 }
/* Las tarjetas de datos */
.vjm-t{ border-radius:18px; padding:14px 16px; margin-bottom:12px; color:var(--tx) }
.vjm-t h4{ margin:0 0 10px; display:flex; align-items:center; gap:8px; font-family:var(--f-tit); font-weight:800; font-size:16px }
.vjm-t h4 small{ margin-left:auto; font-family:"Caveat",cursive; font-weight:600; font-size:18px; color:var(--tx2) }
.vjm-ic{ width:30px; height:30px; border-radius:50%; background:#FFFDF8; border:1.3px solid var(--tx); display:grid; place-items:center; flex-shrink:0; color:var(--tx) }
.vjm-ic svg{ width:17px; height:17px }
.vjm-fila{ display:grid; grid-template-columns:22px minmax(0,7.5em) minmax(0,1fr) 26px; align-items:center; gap:8px; margin-bottom:7px; font-size:14px }
.vjm-fila .bandera-img{ width:22px; height:22px; border-radius:50%; object-fit:cover; border:1.3px solid var(--tx); box-sizing:border-box }
.vjm-fila-n{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.vjm-n{ width:22px; height:22px; border-radius:50%; background:var(--tx); color:#fff; display:grid; place-items:center; font:600 10.5px var(--f-mono) }
.vjm-pista{ height:12px; border-radius:6px; background:rgba(255,255,255,.75); overflow:hidden }
.vjm-pista i{ display:block; height:100%; border-radius:6px; background:#2E6E4E }
.vjm-fila b{ font-family:var(--f-tit); font-weight:800; text-align:right }
.vjm-lejos{ display:grid; grid-template-columns:auto 1fr; gap:4px 12px; align-items:center }
.vjm-lejos .km b{ display:block; font-family:var(--f-tit); font-weight:800; font-size:30px; line-height:.9; letter-spacing:-.03em }
.vjm-lejos .km span{ font-family:var(--f-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--tx2) }
.vjm-lejos .txt{ font-family:"Caveat",cursive; font-size:21px; line-height:1.05 }
.vjm-lejos .arco{ grid-column:1/-1; width:100%; height:34px }
.vjm-sellos{ display:flex; align-items:stretch; gap:10px }
.vjm-sellos .s{ flex:1; min-width:0; background:#fff; border:5px dotted #F8E2EB; outline:1.2px solid var(--tx); outline-offset:-9px; padding:12px 10px; text-align:center }
.vjm-sellos .s[data-abrir]{ cursor:pointer }
.vjm-sellos .s small{ display:block; font-family:var(--f-mono); font-size:9.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--tx2) }
.vjm-sellos .s b{ display:block; font-family:var(--f-tit); font-weight:800; font-size:15px; margin:4px 0 2px; line-height:1.1 }
.vjm-sellos .s i{ font-style:normal; font-family:"Caveat",cursive; font-size:18px; color:var(--tx2) }
.vjm-sellos .s .bandera-img{ display:block; width:30px; height:30px; border-radius:50%; margin:6px auto 0; border:1.3px solid var(--tx); object-fit:cover; box-sizing:border-box }
.vjm-sellos .flecha{ align-self:center; font-family:"Caveat",cursive; font-size:22px; color:var(--tx2); text-align:center; line-height:1 }
.vjm-tiempo{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; text-align:center }
.vjm-tiempo div{ background:#fff; border:1.3px solid var(--tx); border-radius:14px; padding:10px 4px }
.vjm-tiempo b{ display:block; font-family:var(--f-tit); font-weight:800; font-size:24px; line-height:1; letter-spacing:-.02em }
.vjm-tiempo span{ display:block; margin-top:4px; font-size:11.5px; color:var(--tx2); line-height:1.2 }
.vjm-tiempo i{ display:block; font-style:normal; font-family:"Caveat",cursive; font-size:15px; color:var(--tx3) }
.vjm-anios{ display:grid; grid-template-columns:repeat(13,1fr); gap:4px; align-items:end; height:92px }
.vjm-anios div{ display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:3px }
.vjm-anios i{ display:block; width:100%; min-height:2px; border-radius:4px 4px 0 0; background:#2E6E4E }
.vjm-anios i.flojo{ background:#9DBFAE }
.vjm-anios span{ font-family:var(--f-mono); font-size:8.5px; color:var(--tx2) }
.vjm-anios b{ font-family:var(--f-mono); font-size:9px; font-weight:600 }
.vjm-conti{ display:grid; grid-template-columns:repeat(3,1fr); gap:6px; text-align:center }
.vjm-conti div{ border-radius:12px; background:#fff; border:1.3px solid var(--tx); padding:8px 2px }
.vjm-conti b{ display:block; font-family:var(--f-tit); font-weight:800; font-size:20px }
.vjm-conti span{ font-size:11px; color:var(--tx2) }
.vjm-conti .falta{ border-style:dashed; border-color:var(--tx3); background:transparent }
.vjm-conti .falta b{ color:var(--tx3) }
.vjm-conti .falta span{ font-family:"Caveat",cursive; font-size:15px }

/* La ficha del país tocado */
#panelPais:not(:empty){ background:none; border:0; padding:0 }
.vjm-ficha{ background:#FFFDF8; border:1.5px solid var(--tx); border-radius:20px; padding:16px; margin-top:4px }
.vjm-ficha-cab{ display:flex; align-items:center; gap:10px }
.vjm-ficha-cab .bandera-img{ width:34px; height:34px; border-radius:50%; border:1.5px solid var(--tx); object-fit:cover; box-sizing:border-box }
.vjm-ficha-cab b{ font-family:var(--f-tit); font-weight:800; font-size:24px; letter-spacing:-.02em }
.vjm-ficha-cab small{ margin-left:auto; font-family:"Caveat",cursive; font-size:20px; color:var(--tx2); text-align:right }
.vjm-mini{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:12px 0 4px; text-align:center }
.vjm-mini div{ border-radius:14px; padding:8px 4px }
.vjm-mini b{ display:block; font-family:var(--f-tit); font-weight:800; font-size:20px; line-height:1 }
.vjm-mini span{ font-family:var(--f-mono); font-size:9px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--tx2) }
.vjm-linea{ position:relative; margin:14px 0 6px; padding-left:18px }
.vjm-linea::before{ content:""; position:absolute; left:5px; top:6px; bottom:6px; border-left:2px dashed var(--borde) }
.vjm-linea .v{ position:relative; display:flex; align-items:baseline; gap:10px; padding:5px 0; font-size:14.5px; cursor:pointer }
.vjm-linea .v::before{ content:""; position:absolute; left:-17px; top:11px; width:10px; height:10px; border-radius:50%; background:var(--tx); box-shadow:0 0 0 3px #FFFDF8 }
.vjm-linea .v span{ font-family:var(--f-mono); font-size:11px; color:var(--tx2); width:64px; flex-shrink:0 }
.vjm-linea .v b{ font-weight:600 }
.vjm-linea .v:hover b{ text-decoration:underline; text-underline-offset:3px }
.vjm-ficha .vjm-t{ margin:14px 0 0 }
.vjm-todas summary{ list-style:none; cursor:pointer; margin-top:8px; text-align:center; font-size:13.5px; font-weight:600; padding:8px; border:1.3px dashed var(--tx); border-radius:12px; background:rgba(255,255,255,.6) }
.vjm-todas summary::-webkit-details-marker{ display:none }
.vjm-todas .cerrar, .vjm-todas[open] .abrir{ display:none }
.vjm-todas[open] .cerrar{ display:inline }
.vjm-todas-l{ display:grid; grid-template-columns:1fr 1fr; gap:2px 16px; margin-top:10px; padding:10px 12px; border-radius:14px; background:#fff }
.vjm-todas-l div{ display:flex; justify-content:space-between; gap:8px; padding:4px 0; border-bottom:1px dashed var(--borde); font-size:13.5px }
.vjm-todas-l b{ font-family:var(--f-tit); font-weight:800 }
.vjm-datos > .vjm-rot:first-child{ margin-top:4px }
/* En España, encima van las comunidades: el país de debajo no asoma como reborde. */
.vj-mapa svg:has(.capa-comunidades) > path.sel{ fill:transparent !important; stroke:none }
