/* =====================================================================
   DIMA — Corrección 0.4 (2026-11-12): interacción de cifras y más movimiento en las páginas de Explorar.
   Reglas: el movimiento solo con html.v3-mov (respeta "reducir movimiento"; ?animar=1 lo fuerza).
   Los elementos que ya se revelan con transform usan translate/scale independientes para el hover,
   así el efecto no pelea con la entrada al desplazarse. Hover solo en dispositivos con cursor;
   en táctil y teclado el equivalente es .is-activa (toque) y :focus-visible.
   ===================================================================== */

/* ---------------------------------------------------------------- Capacidad científica: tarjetas que sobresalen */
.v4-cifras .v3-cifra{cursor:default;transition:box-shadow .35s var(--v3-ease),border-color .35s,background-color .35s;-webkit-tap-highlight-color:transparent}
.v3-mov .v3 .v4-cifras .v3-cifra.v3-visible{transition:opacity .7s var(--v3-ease) var(--v4-d,0ms),transform .7s var(--v3-ease) var(--v4-d,0ms),
  translate .45s var(--v3-ease),scale .45s var(--v3-ease),box-shadow .45s var(--v3-ease),border-color .35s,background-color .35s}
.v4-cifras .v3-cifra>i,.v4-cifras .v3-cifra-n{transition:transform .45s var(--v3-ease),color .3s,text-shadow .3s}
.v4-cifras .v3-cifra::after{transition:width .45s var(--v3-ease),background-color .3s}
.v4-cifras .v4-cifra-barra{transition:box-shadow .35s}
.v3-mov .v4 .v4-cifras .v4-cifra-barra{transition:transform 1.4s var(--v3-ease) .3s,box-shadow .35s}
.v4-cifras .v3-cifra:focus-visible{outline:3px solid var(--v3-verde);outline-offset:3px}

.v4-cifras .v3-cifra.is-activa,.v4-cifras .v3-cifra:focus-visible{z-index:2;border-color:rgba(127,214,227,.75);background-color:rgba(9,44,56,.88);
  box-shadow:0 30px 56px -24px rgba(0,0,0,.7),0 0 0 1px rgba(127,214,227,.3),0 0 42px -8px rgba(127,214,227,.45)}
.v4-cifras .v3-cifra:is(.is-activa,:focus-visible)::after{width:5rem;background-color:var(--v3-verde)}
.v4-cifras .v3-cifra:is(.is-activa,:focus-visible)>i{color:#fff}
.v4-cifras .v3-cifra:is(.is-activa,:focus-visible) .v3-cifra-n{text-shadow:0 0 22px rgba(127,214,227,.55)}
.v4-cifras .v3-cifra:is(.is-activa,:focus-visible) .v4-cifra-barra{box-shadow:0 0 14px rgba(127,214,227,.8)}
.v3-mov .v4-cifras .v3-cifra:is(.is-activa,:focus-visible){translate:0 -10px;scale:1.045}
.v3-mov .v4-cifras .v3-cifra:is(.is-activa,:focus-visible)>i{transform:translateY(-3px) scale(1.18) rotate(-6deg)}
.v3-mov .v4-cifras .v3-cifra:is(.is-activa,:focus-visible) .v3-cifra-n{transform:scale(1.05);transform-origin:left bottom}
@media(hover:hover){
  .v4-cifras .v3-cifra:hover{z-index:2;border-color:rgba(127,214,227,.75);background-color:rgba(9,44,56,.88);
    box-shadow:0 30px 56px -24px rgba(0,0,0,.7),0 0 0 1px rgba(127,214,227,.3),0 0 42px -8px rgba(127,214,227,.45)}
  .v4-cifras .v3-cifra:hover::after{width:5rem;background-color:var(--v3-verde)}
  .v4-cifras .v3-cifra:hover>i{color:#fff}
  .v4-cifras .v3-cifra:hover .v3-cifra-n{text-shadow:0 0 22px rgba(127,214,227,.55)}
  .v4-cifras .v3-cifra:hover .v4-cifra-barra{box-shadow:0 0 14px rgba(127,214,227,.8)}
  .v3-mov .v4-cifras .v3-cifra:hover{translate:0 -10px;scale:1.045}
  .v3-mov .v4-cifras .v3-cifra:hover>i{transform:translateY(-3px) scale(1.18) rotate(-6deg)}
  .v3-mov .v4-cifras .v3-cifra:hover .v3-cifra-n{transform:scale(1.05);transform-origin:left bottom}
  /* las vecinas ceden un poco de protagonismo, sin moverse */
  .v4-cifras:has(.v3-cifra:hover) .v3-cifra:not(:hover){opacity:.82}
}

/* ---------------------------------------------------------------- Común a las páginas de Explorar */
/* el énfasis del título se subraya al entrar */
.v3-mov .v4-pagina-hero .v4-pagina-h1 em{background:linear-gradient(currentColor,currentColor) 0 92%/0 .07em no-repeat;animation:v3-subraya 1s var(--v3-ease) .55s forwards}
/* cifras del encabezado: escalonadas */
.v3-mov .v4-hero-stats li{animation:v3-sube .7s var(--v3-ease) backwards}
.v3-mov .v4-hero-stats li:nth-child(1){animation-delay:.3s}
.v3-mov .v4-hero-stats li:nth-child(2){animation-delay:.42s}
.v3-mov .v4-hero-stats li:nth-child(3){animation-delay:.54s}
/* tarjetas que se revelan y además reaccionan al cursor: dos transiciones que no se pisan */
.v3-mov .v3 :is(.v4-so,.v4-mv-panel,.v4-cf-fila).v4-revela.v3-visible,.v3-mov .v3 .v3-perfil.v3-revelar.v3-visible{
  transition:opacity .7s var(--v3-ease) var(--v4-d,0ms),transform .8s var(--v3-ease) var(--v4-d,0ms),
  translate .4s var(--v3-ease),scale .4s var(--v3-ease),box-shadow .35s,border-color .35s,background-color .35s}

/* ---------------------------------------------------------------- Convocatorias: señales que se propagan */
.v3-mov .v4-tema-conv .v4-cc:not([hidden]) .v4-cc-in{animation:cv-aparece .55s var(--v3-ease) backwards}
@keyframes cv-aparece{from{opacity:0;transform:scale(.96)}}
.v4-cc-in::before{content:"";position:absolute;top:-5px;left:1.4rem;width:.7rem;height:.7rem;border-radius:50%;background:var(--acento);opacity:0;pointer-events:none}
.v3-mov .v4-cc-in:hover::before,.v3-mov .v4-cc-in:focus-within::before{animation:cv-senal 1.2s ease-out infinite}
@keyframes cv-senal{0%{opacity:.7;box-shadow:0 0 0 0 var(--acento)}100%{opacity:0;box-shadow:0 0 0 22px transparent}}
.v4-cc-in:focus-within{box-shadow:0 26px 44px -28px rgba(27,34,66,.55)}
.v3-mov .v4-cc-cierre--pronto .v4-cc-dias{animation:cv-urge 2.4s ease-in-out infinite}
@keyframes cv-urge{0%,100%{box-shadow:0 0 0 0 rgba(179,38,30,.45)}50%{box-shadow:0 0 0 7px rgba(179,38,30,0)}}
.v3-mov .v4-cc-in:hover .v4-cc-etapa--hecha{animation:cv-carga .8s var(--v3-ease) backwards}
.v3-mov .v4-cc-in:hover .v4-cc-etapa:nth-child(2){animation-delay:.08s}
.v3-mov .v4-cc-in:hover .v4-cc-etapa:nth-child(3){animation-delay:.16s}
.v3-mov .v4-cc-in:hover .v4-cc-etapa:nth-child(4){animation-delay:.24s}
@keyframes cv-carga{from{transform:scaleX(.2);transform-origin:left}}
/* filtros: el elegido "late" al activarse */
.v3-mov .v4 .v4-seg-op[aria-pressed="true"]{animation:cv-pulsa .4s var(--v3-ease)}
@keyframes cv-pulsa{40%{transform:scale(1.07)}}
/* finalizadas: entran desde la línea de tiempo y se marcan al pasar */
.v3-mov .v3 .v4-cf-fila.v4-revela:not(.v3-visible){transform:translate3d(-30px,0,0)}
.v4-cf-fila{transition:box-shadow .3s,border-color .3s,background-color .3s}
.v4-cf-fila:hover,.v4-cf-fila:focus-within{background-color:#fff;border-color:#c9d1e3;box-shadow:inset 4px 0 0 var(--v3-navy),0 14px 28px -22px rgba(27,34,66,.5)}
.v3-mov .v4-cf-fila:hover,.v3-mov .v4-cf-fila:focus-within{translate:4px 0}
.v4-cf-sel i{transition:transform .3s var(--v3-ease)}
.v3-mov .v4 .v4-cf-sel:hover i{transform:scale(1.2)}
.v4-lista-acciones i{transition:transform .35s var(--v3-ease),background-color .25s}
.v3-mov .v4 .v4-lista-acciones a:hover i{transform:rotate(-8deg) scale(1.08)}
.v4 .v4-lista-acciones a:hover i{background:var(--v3-navy)}
.v3-mov .v3 .v4-lista-acciones li.v4-revela:not(.v3-visible){transform:translate3d(0,24px,0) scale(.96)}

/* ---------------------------------------------------------------- Avales: el sello */
.v4-paso:not(:last-child)::before{transform-origin:top}
.v3-mov .v4-paso:not(:last-child)::before{transform:translateX(-50%) scaleY(0);transition:transform .9s var(--v3-ease) .35s}
.v3-mov .v4-paso.v3-visible:not(:last-child)::before{transform:translateX(-50%) scaleY(1)}
.v3-mov .v4-paso.v3-visible .v4-paso-n{animation:av-sello .65s cubic-bezier(.3,1.5,.5,1) calc(var(--v4-d,0ms) + .15s) backwards}
@keyframes av-sello{0%{opacity:0;transform:scale(1.9) rotate(-18deg)}60%{opacity:1;transform:scale(.9) rotate(3deg)}100%{transform:none}}
.v4-paso-txt{transition:border-color .3s,box-shadow .3s,background-color .3s}
.v4-paso:hover .v4-paso-txt{background-color:#fff;border-color:var(--v4-brote-2);box-shadow:0 16px 32px -24px rgba(32,64,26,.55)}
.v4-paso-n{transition:box-shadow .3s,transform .35s var(--v3-ease)}
.v4-paso:hover .v4-paso-n{box-shadow:0 0 0 9px var(--v4-brote)}
.v3-mov .v4-paso:hover .v4-paso-n{transform:rotate(-8deg)}
.v3-mov .v3 .v4-ruta-paso.v4-revela:not(.v3-visible){transform:scale(.7);opacity:0}
.v3-mov .v3 .v4-ruta-paso.v4-revela{transition-timing-function:cubic-bezier(.3,1.5,.5,1)}
.v4-nota{background-image:linear-gradient(90deg,rgba(224,181,74,.16),rgba(224,181,74,0));background-repeat:no-repeat;background-size:0 100%;transition:background-size .9s var(--v3-ease) .2s}
.v4-nota.v3-visible,html:not(.v3-mov) .v4-nota{background-size:100% 100%}
.v3-mov .v4-nota.v3-visible>i{animation:av-brilla 1.1s ease-in-out .5s 2}
@keyframes av-brilla{50%{transform:scale(1.2);color:var(--v4-oro)}}
.v4-docs a{transition:border-color .2s,box-shadow .25s,background-color .25s}
.v4 .v4-docs a:hover{box-shadow:0 10px 22px -18px rgba(27,34,66,.6)}
.v4-docs i{transition:transform .3s var(--v3-ease)}
.v3-mov .v4 .v4-docs a:hover i{transform:translateY(-2px) rotate(-6deg)}
.v3-mov .v3 .v4-docs li.v4-revela:not(.v3-visible){transform:translate3d(18px,0,0)}
.v4-caja--sello{position:relative;overflow:hidden}
.v4-caja--sello::after{content:"";position:absolute;right:-1.6rem;top:-1.6rem;width:6rem;height:6rem;border-radius:50%;border:3px double rgba(32,64,26,.22);pointer-events:none}
.v3-mov .v4-caja--sello.v3-visible::after{animation:av-sello 1s cubic-bezier(.3,1.5,.5,1) .4s backwards}

/* ---------------------------------------------------------------- Propiedad intelectual: plano técnico */
.v4 .v4-accion-tarjeta a{position:relative;overflow:hidden;isolation:isolate;transition:border-color .25s,box-shadow .25s,translate .35s var(--v3-ease)}
.v4-accion-tarjeta a::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .4s;
  background-image:linear-gradient(rgba(224,181,74,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(224,181,74,.14) 1px,transparent 1px);background-size:18px 18px}
.v4 .v4-accion-tarjeta a:is(:hover,:focus-visible)::before{opacity:1}
.v3-mov .v4-accion-tarjeta a:is(:hover,:focus-visible)::before{animation:pi-rejilla 3s linear infinite}
@keyframes pi-rejilla{to{background-position:18px 18px}}
.v3-mov .v4 .v4-accion-tarjeta a:is(:hover,:focus-visible){translate:0 -5px}
.v4-at-ic{transition:box-shadow .35s,transform .35s var(--v3-ease)}
.v4 .v4-accion-tarjeta a:is(:hover,:focus-visible) .v4-at-ic{box-shadow:0 0 0 4px rgba(224,181,74,.25),0 0 24px rgba(224,181,74,.45)}
.v3-mov .v4 .v4-accion-tarjeta a:is(:hover,:focus-visible) .v4-at-ic{transform:rotate(-6deg) scale(1.06)}
.v3-mov .v4-accion-tarjeta.v3-visible .v4-at-ic{animation:pi-enciende 1.2s ease-out calc(var(--v4-d,0ms) + .3s) backwards}
@keyframes pi-enciende{0%{box-shadow:0 0 0 0 rgba(224,181,74,.6)}60%{box-shadow:0 0 0 12px rgba(224,181,74,0)}}
/* spin-off: el logo se "imprime" como un plano al entrar */
.v3-mov .v4-so.v3-visible .v4-so-img{animation:pi-plano .9s var(--v3-ease) calc(var(--v4-d,0ms) + .2s) backwards}
@keyframes pi-plano{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.v4-so-img img{transition:transform .5s var(--v3-ease)}
.v4-so:hover{border-color:rgba(224,181,74,.6);box-shadow:0 26px 48px -30px rgba(224,181,74,.45)}
.v3-mov .v4-so:hover{translate:0 -6px}
.v3-mov .v4-so:hover .v4-so-img img{transform:scale(1.05)}
.v3-mov .v3 .v4-so.v4-revela:not(.v3-visible){transform:translate3d(0,36px,0) rotateX(12deg)}

/* ---------------------------------------------------------------- Misión y visión: la brújula */
.v3-mov .v4-mv-panel.v3-visible .v4-mv-ic i{animation:mv-aguja 1.5s cubic-bezier(.3,1.4,.5,1) calc(var(--v4-d,0ms) + .25s) backwards}
@keyframes mv-aguja{0%{transform:rotate(-140deg);opacity:0}55%{transform:rotate(22deg);opacity:1}78%{transform:rotate(-8deg)}100%{transform:none}}
.v4-mv-panel::after{transition:transform 1.2s var(--v3-ease),opacity .4s}
.v3-mov .v4-mv-panel:not(.v3-visible)::after{transform:scale(.5)}
.v4-mv-panel:hover::after{opacity:.22}
.v3-mov .v4-mv-panel:hover::after{transform:scale(1.12) rotate(20deg)}
.v4-mv-panel:hover{box-shadow:0 30px 60px -40px currentColor}
.v3-mov .v4-mv-panel:hover{translate:0 -6px}
.v3-mov .v4-mv-panel:hover .v4-mv-ic i{animation:mv-busca 1s ease-in-out}
@keyframes mv-busca{30%{transform:rotate(-18deg)}65%{transform:rotate(12deg)}}
.v3-mov .v4-mv-panel.v3-visible .v4-mv-txt p{animation:v3-sube .8s var(--v3-ease) calc(var(--v4-d,0ms) + .45s) backwards}
.v4 .v4-mv-sigue a{transition:border-color .25s,box-shadow .3s,translate .35s var(--v3-ease)}
.v4 .v4-mv-sigue a:hover{box-shadow:0 18px 34px -26px rgba(42,33,99,.6)}
.v3-mov .v4 .v4-mv-sigue a:hover{translate:0 -4px}
.v4-mv-sigue a i{transition:transform .3s var(--v3-ease)}
.v4 .v4-mv-sigue a:hover i{transform:translateX(5px)}

/* ---------------------------------------------------------------- Equipo de trabajo: la red */
.v3-mov .v3-perfil.v3-visible .v3-motivo :is(path,circle:not(.v3-motivo-nodo)){stroke-dasharray:700;animation:fx-crece 1.8s var(--v3-ease) calc(var(--v4-d,0ms) + .1s) backwards}
.v3-mov .v3-perfil.v3-visible .v3-motivo-nodo{transform-box:fill-box;transform-origin:center;animation:eq-nodo .6s cubic-bezier(.3,1.5,.5,1) calc(var(--v4-d,0ms) + .9s) backwards}
@keyframes eq-nodo{from{transform:scale(0)}}
.v3-perfil:hover{border-color:#b9c4dd}
.v3-mov .v3-perfil:hover{translate:0 -6px}
.v3-perfil-icono{transition:transform .4s var(--v3-ease)}
.v3-mov .v3-perfil:hover .v3-perfil-icono{transform:rotate(-10deg) scale(1.1)}
.v3-mov .v3-perfil:hover .v3-motivo-nodo{animation:eq-latido 1.2s ease-in-out infinite}
.v3-mov .v3-perfil:hover .v3-motivo-nodo:nth-of-type(2n){animation-delay:.3s}
@keyframes eq-latido{50%{opacity:.4}}
.v3-perfil-iniciales{transition:transform .4s var(--v3-ease),box-shadow .4s}
.v3-mov .v3-perfil:hover .v3-perfil-iniciales{transform:scale(1.06);box-shadow:0 0 0 10px rgba(255,255,255,.8)}
.v4-tema-equipo .v4-equipo-sub{position:relative}
.v4-tema-equipo .v3-nota-equipo i{transition:transform .3s}
.v3-mov .v4-tema-equipo .v3-nota-equipo i{animation:eq-flash 3.6s ease-in-out 1s infinite}
@keyframes eq-flash{0%,88%,100%{transform:none}92%{transform:scale(1.25)}}

/* ---------------------------------------------------------------- DIMA en datos: gráficas que responden */
/* al señalar un color de la leyenda, su segmento se destaca y el resto se atenúa */
.v4-dx-anillo svg{transition:transform .6s var(--v3-ease)}
.v4-dx-anillo[data-foco] .v4-dx-seg{opacity:.25}
.v4-dx-anillo[data-foco] .v4-dx-seg.is-foco{opacity:1;stroke-width:7.5}
.v4-dx-seg{transition:opacity .3s,stroke-width .3s}
.v3-mov .v4-dx-anillo:hover svg{transform:rotate(-8deg)}
.v4-dx-centro strong{transition:color .3s}
.v4-dx-anillo[data-foco] .v4-dx-centro strong{color:#0e6f80}
/* barras: al señalar, el llenado brilla y la etiqueta se mueve */
.v4-dx-barra .v4-dx-llenado{transition:transform 1s var(--v3-ease) var(--v4-d,0ms),fill .25s}
.v4 .v4-dx-barra:is(:hover,:focus-visible) .v4-dx-llenado{fill:#11899e}
.v4-dx-barra .v4-dx-et{transition:transform .3s var(--v3-ease)}
.v3-mov .v4 .v4-dx-barra:hover .v4-dx-et{transform:translateX(4px)}
.v3-mov .v4 .v4-dx-filtro[aria-pressed="true"]{animation:cv-pulsa .4s var(--v3-ease)}
/* pestañas: el icono gira al elegir la categoría */
.v3-mov .v4 .v4-dx-tab[aria-selected="true"] .v4-dx-tab-ic{animation:dx-elige .6s cubic-bezier(.3,1.5,.5,1)}
@keyframes dx-elige{0%{transform:scale(.6) rotate(-90deg)}100%{transform:none}}
.v3-mov .v4 .v4-dx-chip{animation:dx-chip .35s cubic-bezier(.3,1.5,.5,1)}
@keyframes dx-chip{from{opacity:0;transform:scale(.6)}}
.v3-mov .v4-dx-tabla tbody tr:nth-child(2){animation-delay:.03s}
.v3-mov .v4-dx-tabla tbody tr:nth-child(3){animation-delay:.06s}
.v3-mov .v4-dx-tabla tbody tr:nth-child(4){animation-delay:.09s}
.v3-mov .v4-dx-tabla tbody tr:nth-child(5){animation-delay:.12s}
.v3-mov .v4-dx-tabla tbody tr:nth-child(6){animation-delay:.15s}
.v3-mov .v4-dx-tabla tbody tr:nth-child(n+7){animation-delay:.18s}
.v4 .v4-dx-tabla tbody tr{transition:background-color .2s,box-shadow .2s}
.v4 .v4-dx-tabla tbody tr:hover{box-shadow:inset 3px 0 0 #0e6f80}

/* ---------------------------------------------------------------- Móvil y movimiento reducido */
@media(max-width:767.98px){
  /* en móvil, menos desplazamiento lateral para no provocar scroll horizontal */
  .v3-mov .v3 .v4-cf-fila.v4-revela:not(.v3-visible){transform:translate3d(0,20px,0)}
  .v3-mov .v4-cifras .v3-cifra:is(.is-activa,:focus-visible){scale:1.03;translate:0 -6px}
}

/* ---------------------------------------------------------------- Inicio: carrusel de convocatorias con avance automático */
.v3-carrusel-pie{display:block}
/* mientras el carrusel se desliza solo: sin imán (snap) ni scroll suave nativo, que cortan la animación */
.v3-carrusel.is-deslizando .v3-pista{scroll-snap-type:none;scroll-behavior:auto}
/* barra de avance: se mueve con la misma suavidad */
.v3-carrusel .v3-progreso span{transition:transform .25s linear}
.v3-mov .v3-carrusel.is-auto .v3-progreso span{animation:cv-marcha 3.5s ease-in-out infinite}
@keyframes cv-marcha{50%{opacity:.65}}

/* ================================================================ Corrección 0.5 (2026-11-13)
   ¿Qué necesitas hoy? (investigador) y Encuéntranos en la Sede: sin líneas de fondo invasivas. */
/* El panel no era contenedor de posición: los fondos .fx se salían hasta la cabecera blanca. */
.v4-panel{position:relative;isolation:isolate}
.v4-panel>.container{position:relative;z-index:1}

/* Investigador: azul DIMA limpio, una luz suave detrás de las tarjetas y punteado solo en la esquina */
.v4-panel--investigador{background:linear-gradient(160deg,var(--v4-azul) 0%,#121d52 55%,#0e1846 100%)}
.v4-panel-luz{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.v4-panel-luz::before{content:"";position:absolute;right:-12%;top:-35%;width:65%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(157,182,255,.16) 0%,rgba(157,182,255,0) 65%)}
.v4-panel--investigador::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;z-index:1;
  background:linear-gradient(90deg,var(--v3-verde) 0%,var(--v4-azul-claro) 50%,transparent 100%);opacity:.85}
.v4 .v4-rutas--investigador a{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.13);backdrop-filter:none}
.v4 .v4-rutas--investigador a:hover,.v4 .v4-rutas--investigador a:focus-visible{background:rgba(255,255,255,.13);border-color:rgba(157,182,255,.55);box-shadow:0 14px 30px -18px rgba(0,0,0,.6)}
.v4 .v4-rutas--investigador small{color:#c3cdf0}

/* Ubicación: fondo claro sencillo; el mapa vive solo dentro de su tarjeta */
.v4-ubicacion{background:linear-gradient(180deg,#fff 0%,var(--v4-niebla,#f4f6fb) 100%)}
.v4-ubicacion .v4-lente{padding:clamp(1.6rem,4vw,2.4rem);border-radius:28px;background:#fff;border:1px solid var(--v3-borde);
  box-shadow:0 24px 50px -34px rgba(27,34,66,.35)}
.v4-ubicacion .v4-lente-circulo{width:min(17rem,70vw);background:#f7f8fc;border:1px solid rgba(27,34,66,.18);
  box-shadow:0 0 0 8px rgba(122,170,40,.08)}
.v4-ubicacion .v4-lente-calles path{stroke:rgba(27,34,66,.14)}
.v4-ubicacion .v4-lente-via{stroke:rgba(27,34,66,.32);stroke-width:6}
.v4-ubicacion .v4-lente-via--27{stroke:var(--v3-verde)}
.v4-ubicacion .v4-lente-pie{text-align:center}
@media(min-width:576px){.v4-ubicacion .v4-correos{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---- Corrección 0.5c: franjas finas A LO LARGO de cada sección, siempre en movimiento (bucles continuos) ----
   Los puntos que viajan son trazos de longitud 0 con extremo redondo: no se deforman con preserveAspectRatio=none. */
.v4-franja{position:absolute;left:0;bottom:0;z-index:0;width:100%;pointer-events:none;overflow:visible;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 12%,#000 88%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 12%,#000 88%,transparent 100%)}
.v4-franja path{vector-effect:non-scaling-stroke}

/* Investigador: curvas de datos */
.v4-franja--datos{height:clamp(4.5rem,9vw,6.5rem);opacity:.6}
.v4-panel--investigador{padding-bottom:calc(clamp(2.8rem,6vw,4.5rem) + clamp(2.5rem,5vw,3.5rem))}
.fd-rejilla{fill:none;stroke:rgba(255,255,255,.06);stroke-width:1}
.fd-traza{fill:none;stroke:var(--v4-azul-claro);stroke-width:1.6;opacity:.55}
.fd-traza--2{stroke:var(--v3-verde);opacity:.45}
.fd-flujo{fill:none;stroke:#fff;stroke-width:1.6;stroke-dasharray:60 1940;opacity:.7}
.fd-viajero{fill:none;stroke:#fff;stroke-width:7;stroke-linecap:round;stroke-dasharray:0 2000}
.fd-viajero--2{stroke:var(--v3-verde);stroke-width:6}
.fd-error path{fill:none;stroke:rgba(157,182,255,.5);stroke-width:1.4;stroke-linecap:round}
.v3-mov .fd-flujo{animation:fd-corre 9s linear infinite}
.v3-mov .fd-viajero{animation:fd-viaja 12s linear infinite}
.v3-mov .fd-viajero--2{animation-duration:16s;animation-delay:-5s}
.v3-mov .fd-traza{animation:fd-ondula 6s ease-in-out infinite alternate}
.v3-mov .fd-traza--2{animation-delay:-3s}
.v3-mov .fd-error path{transform-box:fill-box;transform-origin:center;animation:mx-respira 2.8s ease-in-out infinite alternate}
.v3-mov .fd-error path:nth-child(2){animation-delay:-.7s}
.v3-mov .fd-error path:nth-child(3){animation-delay:-1.4s}
.v3-mov .fd-error path:nth-child(4){animation-delay:-2.1s}
@keyframes fd-corre{from{stroke-dashoffset:2000}to{stroke-dashoffset:0}}
@keyframes fd-viaja{from{stroke-dashoffset:0}to{stroke-dashoffset:-2000}}
@keyframes fd-ondula{from{opacity:.35}to{opacity:.7}}

/* Ubicación: cordillera de Manizales */
.v4-ubicacion>.container{position:relative;z-index:1}
.v4-franja--cordillera{height:clamp(5rem,10vw,7.5rem)}
.ud-nivel{fill:none;stroke:rgba(27,34,66,.12);stroke-width:1.1;stroke-dasharray:14 10}
.ud-nivel--2{stroke:rgba(27,34,66,.09)}
.ud-cordillera{fill:rgba(27,34,66,.045);stroke:rgba(27,34,66,.22);stroke-width:1.3;stroke-linejoin:round}
.ud-cordillera--lejos{fill:rgba(27,34,66,.025);stroke:rgba(27,34,66,.1)}
.ud-nieve{fill:none;stroke:var(--v3-verde);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
.ud-ruta{fill:none;stroke:var(--v3-verde);stroke-width:1.8;stroke-dasharray:2 8;stroke-linecap:round;opacity:.75}
.ud-viajero{fill:none;stroke:var(--v3-navy);stroke-width:7;stroke-linecap:round;stroke-dasharray:0 2000}
.v3-mov .ud-ruta{animation:ud-avanza 6s linear infinite}
.v3-mov .ud-nivel{animation:ud-avanza 14s linear infinite}
.v3-mov .ud-nivel--2{animation-duration:20s;animation-direction:reverse}
.v3-mov .ud-cordillera--lejos{animation:ud-bruma 7s ease-in-out infinite alternate}
.v3-mov .ud-nieve{animation:ud-brilla 3.2s ease-in-out infinite alternate}
.v3-mov .ud-viajero{animation:fd-viaja 14s linear infinite}
@keyframes ud-avanza{to{stroke-dashoffset:-240}}
@keyframes ud-bruma{from{opacity:.5;transform:translateX(0)}to{opacity:1;transform:translateX(-14px)}}
@keyframes ud-brilla{from{opacity:.45}to{opacity:1}}

/* ================================================================ Corrección 0.6 (2026-11-13) */
/* Tamaño base del contenido DIMA (unal.css deja el cuerpo en 14 px; no se toca, se ajusta solo dentro de .v4) */
.v4{font-size:var(--t-base)}
.v4 .v3-kicker{font-size:var(--t-xs)}
/* Funciones de la DIMA: textos alineados a la izquierda (antes heredaban text-align:center) */
.v4-dialogo .v4-dialogo-cabeza,.v4 .v4-dialogo-intro,.v4-funciones,.v4-funciones li,.v4 .v4-funciones p{text-align:left}
.v4 .v4-dialogo-intro{margin-left:0;margin-right:auto}
