/* v27 · Conecta Lab (/investigacion/conecta-lab/). Se carga después de lab.css, v22-lab.css y v25-lab.css.
   Tres piezas nuevas: el índice de cifras de la evidencia, el mapa de las 16 líneas y el flujo para proponer. */

/* ============================================================================
   Evidencia · «Una de cada cien»
   ========================================================================== */
.cien{ margin:0 0 var(--e-md); display:grid; grid-template-columns:minmax(0,11.5rem) minmax(0,1fr); gap:1.25rem; align-items:center }
.cien__r{ display:grid; grid-template-columns:repeat(10, 1fr); gap:3px }
.cien__r i{ aspect-ratio:1; border-radius:1.5px; background:rgba(244,242,238,.13) }
.cien__r i.es-una{ background:var(--ac-lab); box-shadow:0 0 0 3px rgba(124,196,190,.25) }
.cien__t{ margin:0; font-family:var(--sans); font-size:.98rem; line-height:1.45; color:#C9D4D7; max-width:24ch }
.cien__t b{ font-family:var(--lee); font-weight:400; font-size:1.6rem; color:var(--ac-lab); display:block; line-height:1.1 }
@media (prefers-reduced-motion:no-preference){
  .rv .hallazgo[data-entra]:not(.visto) .cien__r i{ opacity:0 }
  .hallazgo.visto .cien__r i{ animation:cien-i .4s var(--curva) both; animation-delay:calc(var(--d, 0) * 1ms) }
  .hallazgo.visto .cien__r i.es-una{ animation:cien-una 1.2s var(--curva) .9s both }
}
@keyframes cien-i{ from{ opacity:0 } to{ opacity:1 } }
@keyframes cien-una{ 0%{ transform:scale(1); background:rgba(244,242,238,.13); box-shadow:none } 40%{ transform:scale(1.6); background:var(--ac-lab) } 100%{ transform:none } }

/* ============================================================================
   Evidencia · índice de cinco cifras y escena
   ========================================================================== */
.evi{ margin-top:clamp(2.5rem, 5vw, 4rem); padding-top:clamp(1.75rem, 3vw, 2.5rem); border-top:1px solid rgba(244,242,238,.16); display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(1.5rem, 3vw, 3rem) }
.evi__lado{ min-width:0 }
@media (min-width:62rem){ .evi{ grid-template-columns:minmax(0,19rem) minmax(0,1fr); align-items:start } }
.evi__k{ margin:0 0 .9rem; font-family:var(--sans); font-size:.92rem; font-weight:600; color:var(--ac-lab) }
.evi:not(.is-js) .evi__k{ display:none }
.evi-idx{ list-style:none; margin:0; padding:0; display:grid; gap:0 }
.evi-idx[hidden]{ display:none }
.evi-i{ appearance:none; width:100%; display:grid; gap:.15rem; padding:.85rem .9rem; border:0; border-top:1px solid rgba(244,242,238,.12); border-radius:0; background:none;
  font:inherit; text-align:left; color:#9FB4B8; cursor:pointer; transition:background-color .2s var(--curva), color .2s var(--curva) }
.evi-i__v{ font-family:var(--sans); font-weight:650; font-size:1.25rem; letter-spacing:-.015em; color:var(--papel); font-variant-numeric:tabular-nums; transition:color .2s var(--curva) }
.evi-i__t{ font-family:var(--sans); font-size:.84rem; line-height:1.35 }
.evi-i:hover{ background:rgba(244,242,238,.04); color:#C9D4D7 }
.evi-i[aria-pressed="true"]{ background:rgba(124,196,190,.1); color:var(--papel) }
.evi-i[aria-pressed="true"] .evi-i__v{ color:var(--ac-lab) }
.evi-i:focus-visible{ outline:2px solid var(--ac-lab); outline-offset:-2px }

.evi__escena{ min-width:0 }
.evi-f{ display:grid; gap:var(--e-md); padding-bottom:var(--e-lg) }
.evi-f[hidden]{ display:none }
.evi:not(.is-js) .evi-f + .evi-f{ padding-top:var(--e-lg); border-top:1px solid rgba(244,242,238,.12) }
.evi-f__v{ margin:0; font-family:var(--lee); font-weight:400; font-size:clamp(3.1rem, 2.2rem + 5.5vw, 7.5rem); line-height:.95; letter-spacing:-.035em; color:var(--papel); font-variant-numeric:tabular-nums; white-space:nowrap }
.evi-f__pre{ margin-right:.02em }
.evi-f__suf{ font-family:var(--sans); font-weight:600; font-size:.36em; letter-spacing:0; margin-left:.12em; color:var(--ac-lab) }
.evi-f__t{ margin:.9rem 0 0; font-family:var(--sans); font-weight:500; font-size:clamp(1.05rem, .98rem + .35vw, 1.3rem); line-height:1.45; letter-spacing:-.005em; color:#DCE3E6; max-width:42ch }
.evi-f .cifra-g__nota{ margin-top:.5rem }
.evi-f__compara{ display:grid; gap:.85rem; max-width:36rem }
.evi-bar{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.3rem 1rem; align-items:center; font-family:var(--sans) }
.evi-bar__k{ grid-column:1 / -1; font-size:.84rem; color:#B5C6C9 }
.evi-bar__b{ display:block; height:.95rem; border-radius:999px; background:rgba(244,242,238,.07); overflow:hidden }
.evi-bar__b i{ display:block; height:100%; width:calc(var(--v) * 100%); min-width:4px; border-radius:inherit; background:rgba(124,196,190,.55); transform-origin:left }
.evi-bar:last-of-type .evi-bar__b i{ background:var(--ac-lab) }
.evi-bar b{ font-size:1.2rem; font-weight:650; letter-spacing:-.01em; color:var(--papel); font-variant-numeric:tabular-nums; min-width:5.6rem; text-align:right }
.evi-f__escala{ margin:0; font-family:var(--sans); font-size:.78rem; line-height:1.45; color:#9FB4B8 }
.evi-f .cifra-g__pie{ border-top:1px solid rgba(244,242,238,.1); padding-top:var(--e-sm) }
@media (prefers-reduced-motion:no-preference){
  .evi.is-js .evi-f.is-entra .evi-f__cuerpo{ animation:evi-sube .35s var(--curva) both }
  .evi.is-js .evi-f.is-entra .evi-bar__b i{ animation:evi-barra .8s var(--curva) both; animation-delay:calc(150ms + var(--b) * 120ms) }
  .evi.is-js .evi-f.is-entra .cifra-g__pie{ animation:evi-sube .35s var(--curva) .2s both }
}
@keyframes evi-sube{ from{ opacity:0; transform:translateY(8px) } to{ opacity:1; transform:none } }
@keyframes evi-barra{ from{ transform:scaleX(0) } to{ transform:none } }
/* Teléfono: el índice se recorre en horizontal, dentro de su caja */
@media (max-width:61.99rem){
  .evi-idx{ display:flex; gap:.5rem; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:.4rem; margin-inline:calc(-1 * var(--margen, 1rem)); padding-inline:var(--margen, 1rem); scrollbar-width:thin }
  .evi-idx li{ flex:0 0 auto; scroll-snap-align:start; width:min(11.5rem, 62vw) }
  .evi-i{ height:100%; border:0; border-radius:.6rem; box-shadow:inset 0 0 0 1px rgba(244,242,238,.16) }
  .evi-i[aria-pressed="true"]{ box-shadow:inset 0 0 0 1px var(--ac-lab) }
}

/* ============================================================================
   Mapa de las 16 líneas
   ========================================================================== */
.lab-lineas .lab-cab .entrada{ max-width:58ch }
.lmapa__filtro{ display:grid; gap:.7rem; margin:0 0 clamp(1.75rem, 3vw, 2.5rem) }
.lmapa__filtro[hidden]{ display:none }
.lmapa__g{ display:flex; flex-wrap:wrap; align-items:center; gap:.4rem }
.lmapa__k{ font-family:var(--sans); font-size:.84rem; font-weight:650; color:var(--mudo); min-width:5.5rem }
.mchip{ appearance:none; cursor:pointer; display:inline-flex; align-items:center; gap:.45rem; min-height:2.5rem; padding:.35rem .95rem; border:0; border-radius:999px;
  background:transparent; font-family:var(--sans); font-size:.9rem; font-weight:600; color:var(--tinta-2); box-shadow:inset 0 0 0 1px var(--filete-firme);
  transition:background-color .2s var(--curva), color .2s var(--curva), box-shadow .2s var(--curva) }
.mchip > span:not(.lanillo){ font-size:.78rem; font-weight:700; color:var(--mudo); font-variant-numeric:tabular-nums }
.mchip:hover{ box-shadow:inset 0 0 0 1px var(--petroleo); color:var(--petroleo) }
.mchip:focus-visible{ outline:3px solid var(--petroleo); outline-offset:2px }
.mchip[aria-pressed="true"]{ background:var(--petroleo); color:var(--papel); box-shadow:none }
.mchip[aria-pressed="true"] > span:not(.lanillo){ color:var(--ac-lab) }
.mchip .lanillo{ width:1.15rem; height:1.15rem }
.mchip[aria-pressed="true"] .lanillo{ --an-av:var(--ac-lab); --an-base:rgba(244,242,238,.35) }
.lmapa__cuenta{ margin:.1rem 0 0; font-family:var(--sans); font-size:.86rem; color:var(--tinta-2); min-height:1.4em }
@media (max-width:40rem){ .lmapa__k{ width:100%; min-width:0 } }

/* Anillo de estado: cerrada, completo; en curso, su avance; abierta, trazo abierto */
.lanillo{ --an-av:var(--petroleo); --an-base:rgba(20,80,79,.2); position:relative; flex:0 0 auto; display:inline-grid; place-items:center; width:2.75rem; height:2.75rem }
.lanillo svg{ position:absolute; inset:0; width:100%; height:100%; transform:rotate(-90deg); overflow:visible }
.lanillo circle{ fill:none; stroke-width:2.6; vector-effect:non-scaling-stroke }
.lanillo__base{ stroke:var(--an-base) }
.lanillo[data-e="abierta"] .lanillo__base{ stroke:var(--an-av); stroke-dasharray:1.6 3.6; opacity:.7 }
.lanillo__av{ stroke:var(--an-av); stroke-width:3.4; stroke-linecap:round; stroke-dasharray:var(--av) 100 }
.lanillo[data-e="abierta"] .lanillo__av{ display:none }
.lanillo[data-e="cerrada"] .lanillo__base{ fill:var(--an-av) }
.lanillo__n{ position:relative; font-family:var(--sans); font-weight:700; font-size:.86rem; letter-spacing:-.01em; color:var(--petroleo); font-variant-numeric:tabular-nums }
.lanillo[data-e="cerrada"] .lanillo__n{ color:var(--papel) }
.lanillo[data-e="curso"]{ --an-av:#1D7A73 }

/* Cinco columnas, una por categoría */
.lmapa__cols{ display:grid; gap:clamp(1.5rem, 3vw, 2rem) clamp(1.25rem, 2.2vw, 2rem) }
@media (min-width:44rem){ .lmapa__cols{ grid-template-columns:repeat(2, minmax(0,1fr)) } }
@media (min-width:64rem){ .lmapa__cols{ grid-template-columns:repeat(3, minmax(0,1fr)) } }
@media (min-width:80rem){ .lmapa__cols{ grid-template-columns:repeat(5, minmax(0,1fr)) } }
.lmapa__col{ border-top:1px solid var(--filete-firme); transition:opacity .25s var(--curva) }
.lmapa__cat{ margin:0; padding:.8rem 0 .4rem; font-family:var(--sans); font-weight:650; font-size:.98rem; letter-spacing:-.005em; color:var(--tinta); display:flex; justify-content:space-between; gap:.5rem }
.lmapa__cat span{ font-weight:600; color:var(--mudo); font-variant-numeric:tabular-nums }
.lmapa__lista{ list-style:none; margin:0; padding:0 }
.lmapa .lin{ display:block; padding:0; gap:0; border-radius:0; background:none; box-shadow:none; transform:none; border-bottom:1px solid var(--filete); transition:opacity .25s var(--curva) }
.lmapa .lin:hover{ transform:none; box-shadow:none }
.lmapa .lin__t{ margin:0; color:var(--tinta) }
.lmapa .lin__est{ display:block; letter-spacing:0; font-weight:500 }
.lin__b{ appearance:none; width:100%; display:grid; grid-template-columns:2.75rem minmax(0,1fr); grid-template-rows:auto auto; column-gap:.8rem; row-gap:.1rem; align-items:center;
  padding:.75rem 0; border:0; background:none; text-align:left; font:inherit; color:var(--tinta); cursor:pointer }
.lin__b .lanillo{ grid-row:1 / span 2 }
.lin__t{ align-self:end; font-family:var(--sans); font-weight:600; font-size:.98rem; line-height:1.25; letter-spacing:-.005em;
  text-decoration:underline; text-decoration-color:transparent; text-underline-offset:.2em; transition:text-decoration-color .2s }
.lin__est{ align-self:start; font-family:var(--sans); font-size:.8rem; color:var(--mudo) }
.lin[data-est="curso"] .lin__est{ color:#1D6B65; font-weight:600 }
.lin__b:hover .lin__t{ text-decoration-color:var(--petroleo) }
.lin__b:focus-visible{ outline:3px solid var(--petroleo); outline-offset:2px; border-radius:4px }
.lmapa.is-js .lin__b{ grid-template-columns:2.75rem minmax(0,1fr) 1rem }
.lmapa.is-js .lin__b::after{ content:""; grid-column:3; grid-row:1 / span 2; width:.5rem; height:.5rem; border-right:1.5px solid var(--mudo); border-bottom:1.5px solid var(--mudo); transform:rotate(45deg) translateY(-2px); transition:transform .25s var(--curva) }
.lmapa.is-js .lin.is-abierta .lin__b::after{ transform:rotate(-135deg) translateY(-2px) }
.lin__mas{ padding:0 0 1rem calc(2.75rem + .8rem); display:grid; gap:.55rem }
.lin__mas[hidden]{ display:none }
.lin__q{ font-family:var(--lee); font-size:.98rem; line-height:1.55; color:var(--tinta-2) }
.lin__det{ font-family:var(--sans); font-size:.84rem; font-weight:600; color:#1D6B65 }
.lin .lin__nota{ padding:0; background:none; font-size:.84rem; color:var(--tinta-2) }
.lin__prop{ justify-self:start; font-family:var(--sans); font-size:.86rem; font-weight:600; color:var(--petroleo); text-decoration:underline; text-decoration-color:rgba(20,80,79,.4); text-underline-offset:.2em }
.lin__prop:hover{ text-decoration-color:var(--petroleo) }
.lin__prop:focus-visible{ outline:3px solid var(--petroleo); outline-offset:2px }
.lmapa.is-js .lin.is-abierta .lin__mas{ animation:lin-abre .28s var(--curva) both }
@keyframes lin-abre{ from{ opacity:0; transform:translateY(-4px) } to{ opacity:1; transform:none } }

/* Filtro: lo que no coincide se apaga y el mapa conserva su forma */
.lin[data-apagada]{ opacity:.26 }
.lin[data-apagada] .lin__b{ cursor:default }
.lmapa__col[data-apagada] .lmapa__cat{ color:var(--mudo) }
.lmapa__pie{ margin:var(--e-lg) 0 0; display:flex; justify-content:center }
.lmapa__pie[hidden]{ display:none }
.lmapa__todas{ appearance:none; cursor:pointer; min-height:44px; padding:.55rem 1.3rem; border:0; border-radius:999px; background:none; font-family:var(--sans); font-size:.92rem; font-weight:650;
  color:var(--tinta); box-shadow:inset 0 0 0 1px var(--filete-firme); transition:box-shadow .2s var(--curva), color .2s var(--curva) }
.lmapa__todas:hover{ box-shadow:inset 0 0 0 1px var(--petroleo); color:var(--petroleo) }
.lmapa__todas:focus-visible{ outline:3px solid var(--petroleo); outline-offset:2px }

@media (prefers-reduced-motion:no-preference){
  /* Los anillos se trazan una vez al entrar en pantalla, columna por columna */
  .lmapa.is-espera .lanillo__av{ stroke-dashoffset:var(--av) }
  .lmapa.is-dibuja .lin .lanillo__av{ animation:anillo-traza 1s var(--curva) both }
  .lmapa.is-dibuja .lmapa__col:nth-child(2) .lanillo__av{ animation-delay:.1s }
  .lmapa.is-dibuja .lmapa__col:nth-child(3) .lanillo__av{ animation-delay:.2s }
  .lmapa.is-dibuja .lmapa__col:nth-child(4) .lanillo__av{ animation-delay:.3s }
  .lmapa.is-dibuja .lmapa__col:nth-child(5) .lanillo__av{ animation-delay:.4s }
  /* Al filtrar, lo que coincide se enciende */
  .lin.is-late .lanillo{ animation:anillo-late .45s var(--curva) both }
  .lin.is-late .lanillo__av{ animation:anillo-traza .7s var(--curva) both }
}
@keyframes anillo-traza{ from{ stroke-dashoffset:var(--av) } to{ stroke-dashoffset:0 } }
@keyframes anillo-late{ 0%{ transform:scale(.82) } 60%{ transform:scale(1.08) } 100%{ transform:none } }
@media (prefers-reduced-motion:reduce){
  .mchip,.lin,.lmapa__col,.lin__t,.lmapa__todas,.evi-i,.evi-i__v,.lin__b::after{ transition:none !important }
}

/* ============================================================================
   Proponer una investigación (el cierre)
   ========================================================================== */
.lab-prop .cierre__in.prop{ display:grid; gap:clamp(2rem, 4vw, 3.5rem); text-align:left; align-items:center }
@media (min-width:62rem){ .lab-prop .cierre__in.prop{ grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) } }
.lab-prop .h2{ margin-inline:0; max-width:20ch }
.lab-prop .cierre__lede{ max-width:46ch }
.lab-prop::after{ background:linear-gradient(100deg, rgba(6,17,31,.94) 0, rgba(6,17,31,.82) 55%, rgba(6,17,31,.66) 100%) }
.prop__pasos{ list-style:none; margin:var(--e-lg) 0 0; padding:0; display:grid; gap:0; counter-reset:pp; max-width:34rem }
/* v28 · los tres pasos con su numeral tipográfico: sin círculos ni línea vertical */
.prop__pasos li{ counter-increment:pp; position:relative; display:grid; grid-template-columns:2.4rem minmax(0,1fr); gap:.15rem .4rem; padding:.85rem 0; font-family:var(--sans); border-top:1px solid rgba(244,242,238,.14) }
.prop__pasos li::before{ content:counter(pp); grid-row:span 2; font-family:var(--lee); font-size:1.9rem; line-height:1; font-weight:400; color:var(--ac-lab); font-variant-numeric:lining-nums }
.prop__pasos b, .prop__pasos span{ grid-column:2 }
.prop__pasos b{ font-weight:650; font-size:1.02rem; color:var(--papel) }
.prop__pasos span{ font-size:.92rem; line-height:1.5; color:#C9D4D7 }

.prop__panel{ padding:clamp(1.4rem, 3vw, 2.25rem); border-radius:1rem; background:rgba(6,17,31,.8); box-shadow:inset 0 0 0 1px rgba(244,242,238,.16) }
.prop__k{ margin:0 0 .9rem; font-family:var(--sans); font-weight:650; font-size:1.1rem; color:var(--papel) }
.prop__sel{ list-style:none; margin:0 0 1.25rem; padding:0; display:grid; gap:.4rem }
.prop__sel[hidden]{ display:none }
.prop-p{ appearance:none; width:100%; display:flex; align-items:center; gap:.75rem; min-height:48px; padding:.6rem .9rem; border:0; border-radius:.6rem; background:none; cursor:pointer;
  font-family:var(--sans); font-size:.96rem; font-weight:550; text-align:left; color:#C9D4D7; box-shadow:inset 0 0 0 1px rgba(244,242,238,.16);
  transition:background-color .2s var(--curva), box-shadow .2s var(--curva), color .2s var(--curva) }
.prop-p::before{ content:""; flex:0 0 auto; width:1rem; height:1rem; border-radius:50%; box-shadow:inset 0 0 0 1.5px rgba(244,242,238,.5); transition:box-shadow .2s var(--curva) }
.prop-p:hover{ color:var(--papel); box-shadow:inset 0 0 0 1px rgba(124,196,190,.6) }
.prop-p[aria-pressed="true"]{ color:var(--papel); background:rgba(124,196,190,.1); box-shadow:inset 0 0 0 1px var(--ac-lab) }
.prop-p[aria-pressed="true"]::before{ box-shadow:inset 0 0 0 1.5px var(--ac-lab), inset 0 0 0 4px rgba(6,17,31,1), inset 0 0 0 8px var(--ac-lab) }
.prop-p:focus-visible{ outline:2px solid var(--ac-lab); outline-offset:2px }
.prop__vias{ display:grid; gap:1.5rem }
.prop-v{ display:grid; gap:.8rem; justify-items:start }
.prop-v[hidden]{ display:none }
.prop-v__n{ margin:0; font-family:var(--sans); font-weight:650; font-size:.98rem; color:var(--ac-lab) }
.prop__panel.is-js .prop-v__n{ display:none }
.prop-v__t{ margin:0; font-family:var(--lee); font-size:1.02rem; line-height:1.6; color:#DCE3E6; max-width:44ch }
.prop-v .boton{ margin-top:.3rem }
.prop__correo{ margin:1.4rem 0 0; padding-top:1rem; border-top:1px solid rgba(244,242,238,.12); font-family:var(--sans); font-size:.88rem; color:#B5C6C9 }
@media (prefers-reduced-motion:no-preference){
  .prop-v.is-entra{ animation:evi-sube .3s var(--curva) both }
}
@media (prefers-reduced-motion:reduce){ .prop-p,.prop-p::before{ transition:none } }
.mchip .lanillo circle{ stroke-width:2 }
.mchip .lanillo__av{ stroke-width:2.4 }

/* ============================================================================
   v28 · lista negra anti-IA en Conecta Lab
   Sin píldoras con punto, sin rayas verticales, sin degradados de relleno ni halos,
   sin tarjetas iguales. Fuentes en una línea; el detalle, en «Fuentes y créditos».
   ========================================================================== */

/* Principios: tres filas editoriales; el título a la izquierda, el desarrollo a la derecha */
.pilar{ display:grid; gap:.5rem }
.pilar__cuerpo{ display:grid; gap:.75rem; align-content:start }
.pilar__lista{ margin:0; font-family:var(--sans); font-size:.86rem; font-weight:600; line-height:1.6; color:var(--petroleo); max-width:44ch }
.pilar__escala{ margin:0; font-size:.92rem }
.pilar__escala span:last-child{ color:var(--tinta); text-decoration:underline; text-decoration-color:var(--ac-lab); text-decoration-thickness:3px; text-underline-offset:5px }
@media (min-width:56rem){
  .pilares{ grid-template-columns:1fr !important }
  .pilar, .pilar + .pilar{ grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:clamp(2rem,5vw,5rem); padding:var(--e-lg) 0; border-bottom:1px solid var(--filete) }
  .pilar__t{ margin-top:0 }
}

/* Dónde encaja: una cadena que se lee de izquierda a derecha */
@media (min-width:64rem){
  .lab-encaje{ --g:clamp(1.25rem,3vw,2.5rem); column-gap:var(--g) !important }
  .lab-encaje li{ position:relative }
  .lab-encaje li:not(:last-child)::after{ content:""; position:absolute; top:-4px; right:calc(var(--g) / -2 - 3px); width:7px; height:7px;
    border-top:1.5px solid var(--petroleo); border-right:1.5px solid var(--petroleo); transform:rotate(45deg) }
}

/* Desarrollos: una pieza grande y dos menores, no tres tarjetas iguales */
@media (min-width:62rem){
  .des{ grid-template-columns:minmax(0,7fr) minmax(0,5fr); grid-template-rows:auto auto }
  .des .des__i, .des .des__i--metodo{ display:flex; flex-direction:column; justify-content:flex-end; align-items:stretch; grid-template-rows:none; min-height:20rem }
  .des .des__i > *{ grid-row:auto }
  .des .des__i:first-child{ grid-column:1; grid-row:1 / span 2; min-height:42rem }
  .des .des__i:nth-child(2){ grid-column:2; grid-row:1 }
  .des .des__i--metodo{ grid-column:2; grid-row:2 }
  .des .des__i:first-child .des__t{ font-size:clamp(2rem,1.4rem + 2vw,3.2rem) }
}

/* Evidencia: la fuente en una línea */
.lab-evidencia .cifra-g__pie{ align-items:center }
.lab-evidencia .cifra-g__f{ max-width:none; margin:0 }
.lab-evidencia .cifra-g__f span:not(.vo){ display:inline; font:inherit; color:inherit; margin:0; letter-spacing:0 }
.lab-fuentes{ margin-top:clamp(2.5rem,5vw,4rem); padding-top:var(--e-sm); border-top:1px solid rgba(244,242,238,.12); font-family:var(--sans); font-size:.84rem; line-height:1.55; color:#9FB4B8 }
.lab-fuentes summary{ display:inline-flex; align-items:center; gap:.45rem; padding:.3rem 0; list-style:none; cursor:pointer; font-weight:600; color:#C9D4D7 }
.lab-fuentes summary::-webkit-details-marker{ display:none }
.lab-fuentes summary::after{ content:""; width:.42rem; height:.42rem; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:translateY(-2px) rotate(45deg); transition:transform .2s var(--curva) }
.lab-fuentes[open] summary::after{ transform:translateY(1px) rotate(-135deg) }
.lab-fuentes summary:hover{ color:var(--papel) }
.lab-fuentes summary:focus-visible{ outline:2px solid var(--ac-lab); outline-offset:3px; border-radius:2px }
.lab-fuentes ul{ list-style:none; margin:.4rem 0 0; padding:0; max-width:80ch }
.lab-fuentes li{ padding:.3rem 0 }
.lab-fuentes a{ color:#C9D4D7; text-decoration:underline; text-underline-offset:.18em }

/* Naro Noniavanti: el concurso en una fila con filete, sin caja de vidrio */
.lab-naro .naro2__concurso{ background:none; box-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none; border-radius:0; padding:1.2rem 0 0; border-top:1px solid rgba(244,242,238,.18) }
.lab-naro .naro2__concurso::before{ display:none }
@media (prefers-reduced-motion:reduce){ .lab-fuentes summary::after{ transition:none } }

/* ============================================================================
   v29 · lenguaje del Ecosistema en Conecta Lab
   1) «Qué es»: foto a sangre desde la derecha con el texto en capas; el encaje como cadena.
   2) Cuatro niveles: escalera dibujada como gráfico (alcance arriba, plazo a la derecha) con su ficha al lado.
   3) Líneas: la rosa de las dieciséis líneas junto al título; los anillos de la lista, más firmes.
   ========================================================================== */
.lab-que2{ position:relative; isolation:isolate; overflow:clip; background:var(--papel); padding-top:0; padding-bottom:clamp(4.5rem, 9vw, 8rem) }
.lab-que2__ap{ position:relative; isolation:isolate; padding-block:clamp(5rem, 10vw, 8.5rem) clamp(2.5rem, 5vw, 4rem); min-height:clamp(30rem, 70vh, 42rem); display:grid; align-items:center }
.lab-que2__foto{ margin:0; position:absolute; z-index:-1; top:0; bottom:0; right:0; width:52vw }
.lab-que2__foto picture{ display:block; position:absolute; inset:0 }
.lab-que2__foto img{ width:100%; height:100%; object-fit:cover; object-position:var(--pos, 50% 50%);
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 36%), linear-gradient(0deg, transparent 0, #000 22%); -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg, transparent 0, #000 36%), linear-gradient(0deg, transparent 0, #000 22%); mask-composite:intersect }
.lab-que2__foto figcaption{ position:absolute; right:var(--canal); bottom:1.6rem; padding:.4rem .7rem; border-radius:.5rem; background:rgba(10,26,47,.6);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); font-family:var(--sans); font-size:.76rem; color:#E7E2D6 }
.lab-que2__txt{ max-width:min(42rem, 52%) }
.lab-que2__h{ font-family:var(--sans); font-weight:640; font-size:clamp(2rem, 1.3rem + 2.6vw, 3.5rem); line-height:1.03; letter-spacing:-.03em; color:var(--tinta); margin-top:var(--e-sm); text-wrap:balance }
.lab-que2 .entrada{ margin-top:var(--e-md); max-width:46ch }
@media (max-width:61.99rem){
  .lab-que2__ap{ padding-top:0; min-height:0; display:block }
  .lab-que2__foto{ position:relative; width:auto }
  .lab-que2__foto picture{ position:relative; aspect-ratio:4 / 3 }
  .lab-que2__foto img{ -webkit-mask-image:linear-gradient(0deg, transparent 0, #000 32%); mask-image:linear-gradient(0deg, transparent 0, #000 32%) }
  .lab-que2__foto figcaption{ bottom:auto; top:1rem }
  .lab-que2__txt{ max-width:none; margin-top:-1.5rem; position:relative }
}
/* el encaje: una cadena de cuatro eslabones unidos por un trazo */
.lab-que2 .lab-encaje{ position:relative; margin-top:0 }
@media (min-width:62rem){
  .lab-que2 .lab-encaje{ grid-template-columns:repeat(4, minmax(0,1fr)); column-gap:clamp(1.5rem, 3vw, 2.5rem); border-top:0 }
  .lab-que2 .lab-encaje li{ position:relative; border-top:0; border-bottom:0; padding-top:2.2rem }
  .lab-que2 .lab-encaje li::before{ content:""; position:absolute; left:0; right:calc(-1 * clamp(1.5rem, 3vw, 2.5rem)); top:.6rem; height:3px; border-radius:3px; background:linear-gradient(90deg, var(--petroleo), color-mix(in srgb, var(--petroleo) 40%, transparent)) }
  .lab-que2 .lab-encaje li:last-child::before{ right:0; background:var(--petroleo) }
  .lab-que2 .lab-encaje li::after{ content:""; position:absolute; left:0; top:0; width:1.3rem; height:1.3rem; border-radius:50%; background:var(--papel); box-shadow:inset 0 0 0 3px var(--petroleo) }
  .lab-que2 .lab-encaje li:last-child::after{ background:var(--petroleo); box-shadow:0 0 0 5px rgba(20,80,79,.18) }
  .lab-que2 .lab-encaje a{ padding-top:.4rem }
}

/* Cuatro niveles: el gráfico */
.lab-niv{ margin-top:clamp(4rem, 8vw, 6rem); padding:clamp(1.6rem, 3vw, 2.6rem); border-radius:1.4rem; background:var(--blanco); box-shadow:0 0 0 1px rgba(14,23,38,.06), 0 40px 70px -50px rgba(10,26,47,.45) }
.lab-niv__cab{ max-width:40rem }
.lab-niv__h{ font-family:var(--sans); font-weight:640; font-size:clamp(1.7rem, 1.2rem + 1.6vw, 2.6rem); line-height:1.05; letter-spacing:-.025em; margin-top:.5rem }
.lab-niv__cab p:last-child{ margin-top:.7rem; font-family:var(--lee); font-size:1.05rem; line-height:1.55; color:var(--tinta-2) }
.lab-niv__escena{ max-width:none; margin-top:clamp(2rem, 4vw, 3rem); display:grid; gap:var(--e-xl); align-items:end }
@media (min-width:62rem){ .lab-niv__escena{ grid-template-columns:minmax(0, 7fr) minmax(0, 5fr); column-gap:clamp(2rem, 4vw, 3.5rem) } }
.lab-niv__grafico{ position:relative; padding:0 0 0 2.2rem }
.lab-niv__y{ position:absolute; left:0; bottom:3.2rem; transform-origin:0 0; rotate:-90deg; translate:0 0; font-family:var(--sans); font-size:.76rem; font-weight:650; color:var(--mudo); white-space:nowrap }
.lab-niv__y::after{ content:""; display:inline-block; width:2.4rem; height:1px; margin-left:.5rem; vertical-align:middle; background:var(--mudo) }
.lab-niv .escalera{ gap:0; border-left:1.5px solid rgba(14,23,38,.35); border-bottom:1.5px solid rgba(14,23,38,.35); --esc-base:11rem; --esc-paso:3.6rem }
.lab-niv .escalera li{ position:relative }
.lab-niv .peldano{ border:0; border-radius:.7rem .7rem 0 0; box-shadow:none; transform:none; padding:1rem .5rem 1.1rem; justify-content:space-between;
  background:color-mix(in srgb, var(--petroleo) calc(14% + var(--k) * 20%), #F3F7F6); color:var(--tinta); transition:background-color .3s var(--curva), color .3s var(--curva), box-shadow .3s var(--curva) }
.lab-niv .escalera li:nth-child(n+3) .peldano{ color:var(--papel) }
.lab-niv .escalera li:nth-child(n+3) .peldano__n{ color:var(--papel) }
.lab-niv .escalera li:nth-child(n+3) .peldano__k{ color:#CFE6E3 }
.lab-niv .escalera li:nth-child(n+3) .peldano__plazo{ color:var(--papel); background:rgba(244,242,238,.16) }
.lab-niv .peldano:hover{ transform:none; box-shadow:inset 0 0 0 2px rgba(10,26,47,.35) }
.lab-niv .peldano[aria-pressed="true"]{ background:var(--noche); color:var(--papel); box-shadow:0 -10px 30px -12px rgba(20,80,79,.7) }
.lab-niv .peldano[aria-pressed="true"] .peldano__n{ color:var(--ac-lab) }
.lab-niv .peldano[aria-pressed="true"] .peldano__k{ color:#A9DCD7 }
.lab-niv .peldano__n{ font-size:clamp(2rem, 1.4rem + 2vw, 3.2rem) }
.lab-niv .peldano__plazo{ border:0; background:rgba(255,255,255,.55) }
.lab-niv .escalera::after{ content:""; position:absolute; pointer-events:none }
.lab-niv__x{ display:flex; justify-content:space-between; padding-top:.8rem; font-family:var(--sans); font-size:.76rem; font-weight:650; color:var(--mudo) }
.lab-niv__x span:last-child::after{ content:""; display:inline-block; width:2.4rem; height:1px; margin-left:.5rem; vertical-align:middle; background:var(--mudo) }
.lab-niv .niveles__panel{ margin-top:0 }
.lab-niv.niveles--js .niveles__panel::before{ display:none }
.lab-niv .nivel-f{ grid-template-columns:1fr; background:var(--papel); box-shadow:none }
.lab-niv .nivel-f__cab{ flex-direction:row; align-items:center; gap:.9rem; padding:0 }
.lab-niv .nivel-f__num{ width:3.4rem; height:3.4rem; font-size:1.6rem }
.lab-niv .nivel-f__dl{ grid-template-columns:1fr }
@media (max-width:47.99rem){
  .lab-niv{ padding:1.3rem 1rem; border-radius:1rem }
  .lab-niv__grafico{ padding-left:1.4rem }
  .lab-niv .escalera{ --esc-base:6rem; --esc-paso:2.6rem }
  .lab-niv .peldano{ padding:.6rem .15rem .7rem }
  .lab-niv__y{ bottom:2.4rem }
}

/* Líneas: cabecera con la rosa */
.lab-lin2__cab{ display:grid; gap:var(--e-xl); align-items:center; margin-bottom:clamp(2.5rem, 5vw, 4rem) }
@media (min-width:62rem){ .lab-lin2__cab{ grid-template-columns:minmax(0, 1fr) minmax(0, 30rem); column-gap:clamp(3rem, 6vw, 6rem) } }
.lab-lin2__h{ font-family:var(--sans); font-weight:640; font-size:clamp(2rem, 1.3rem + 2.6vw, 3.5rem); line-height:1.03; letter-spacing:-.03em; margin-top:var(--e-sm) }
.lab-lin2__cab .entrada{ margin-top:var(--e-md); max-width:46ch }
.lab-lin2__ley{ list-style:none; margin:var(--e-lg) 0 0; padding:0; display:grid; gap:.6rem; font-family:var(--sans); font-size:.86rem; color:var(--tinta-2) }
.lab-lin2__ley li{ display:flex; align-items:center; gap:.7rem }
.lab-lin2__ley b{ color:var(--tinta); font-weight:650 }
.lab-lin2__ley .lanillo{ width:1.9rem; height:1.9rem }
.rosa{ margin:0; justify-self:center; width:min(100%, 30rem) }
.rosa svg{ display:block; width:100%; height:auto; overflow:visible }
.rosa .r-guia{ fill:none; stroke:rgba(14,23,38,.08); stroke-width:1 }
.rosa .r-cat{ fill:none; stroke:rgba(20,80,79,.35); stroke-width:2; stroke-linecap:round }
.rosa .r-cat-t{ font-family:var(--sans); font-size:12.5px; font-weight:650; fill:var(--petroleo); text-anchor:middle }
.rosa .r-base{ fill:#fff; stroke:rgba(20,80,79,.55); stroke-width:1.4; transition:fill .25s var(--curva), stroke .25s, opacity .3s }
.rosa .r-pet[data-e="abierta"] .r-base{ fill:rgba(255,255,255,.7); stroke-dasharray:3 4 }
.rosa .r-lleno{ fill:var(--petroleo); stroke:none; transition:fill .25s var(--curva) }
.rosa .r-pet[data-e="curso"] .r-lleno{ fill:var(--ac-lab) }
.rosa .r-pet[data-e="curso"] .r-base{ stroke:var(--petroleo); stroke-width:1.8 }
.rosa text{ font-family:var(--sans); font-variant-numeric:tabular-nums }
.rosa .r-pet text{ font-size:12px; font-weight:650; fill:var(--petroleo); text-anchor:middle; pointer-events:none }
.rosa .r-pet[data-e="cerrada"] text{ fill:var(--papel) }
.rosa .r-pet{ cursor:pointer; transition:opacity .3s var(--curva) }
.rosa .r-pet.on .r-base{ fill:color-mix(in srgb, var(--ac-lab) 35%, #fff); stroke:var(--petroleo); stroke-width:2.4; stroke-dasharray:none }
.rosa .r-pet.on .r-lleno{ fill:var(--noche) }
.rosa .r-pet.apagada{ opacity:.18 }
.rosa .r-centro{ fill:var(--noche) }
.rosa .r-n{ font-size:44px; font-weight:650; fill:var(--papel); text-anchor:middle; letter-spacing:-.04em }
.rosa .r-t{ font-size:12px; fill:#A9DCD7; text-anchor:middle }
.rv .rosa.is-espera .r-pet{ opacity:0 }
.rosa.is-dibuja .r-pet{ animation:rosa-pet .5s var(--curva) both; animation-delay:calc(var(--i, 0) * 45ms) }
@keyframes rosa-pet{ from{ opacity:0; transform:scale(.9) } to{ opacity:1; transform:none } }
.rosa .r-pet{ transform-origin:210px 210px }
/* anillos de la lista: más firmes */
.lab-lineas .lanillo circle{ stroke-width:3.2; stroke-linecap:round }
.lab-lineas .lin.is-rosa .lin__b{ background:rgba(124,196,190,.16) }
@media (prefers-reduced-motion:reduce){
  .rosa .r-base, .rosa .r-lleno, .rosa .r-pet{ transition:none }
  .rosa.is-dibuja .r-pet{ animation:none }
}

/* ============================================================================
   v30 · revisión con lupa (pedido del dueño, 2 nov 2026)
   1) El encaje («Comunidad, Frente, Instrumento, Fin»): el trazo ya no pasa por detrás de cada círculo ni sigue
      de largo después del último. Cada tramo sale a un aire del círculo y se detiene a un aire del siguiente;
      el último eslabón no lleva tramo.
   2) La leyenda de la foto sube a la esquina superior: abajo quedaba pegada al trazo del encaje.
   ========================================================================== */
@media (min-width:62rem){
  .lab-que2 .lab-encaje{ --g:clamp(1.5rem, 3vw, 2.5rem); --aire:.6rem; --nd:1.3rem }
  .lab-que2 .lab-encaje li::before{ left:calc(var(--nd) + var(--aire)); right:calc(var(--aire) - var(--g)); top:calc(var(--nd) / 2 - 1.5px) }
  .lab-que2 .lab-encaje li:last-child::before{ content:none }
  .lab-que2__foto figcaption{ bottom:auto; top:1.6rem }
}
/* 3) El signo menos de la cifra grande: en Literata a este tamaño quedaba separado del número como un guion suelto */
.evi-f__pre{ margin-right:-.1em; font-variant-numeric:normal }
/* 4) Cuatro niveles: el plazo del peldaño 3 («Un ciclo presupuestal») era texto claro sobre fondo claro.
      En los peldaños oscuros el plazo lleva ahora un fondo oscuro translúcido; si ocupa dos líneas, quedan centradas. */
.lab-niv .peldano__plazo{ max-width:100%; text-align:center; justify-content:center; border-radius:.8rem }
.lab-niv .escalera li:nth-child(n+3) .peldano__plazo{ background:rgba(10,26,47,.32) }
/* 5) Apertura: el titular y la entrada quedaban sobre la pared de carteles del aula (blanco, letras de colores) y se
      leían con esfuerzo. Se oscurece la franja donde va el texto, a la izquierda en pantalla ancha y abajo en celular;
      la mitad derecha de la foto queda como estaba. */
.lab-portada .portada__velo{ background:
    linear-gradient(to bottom, rgba(10,26,47,.6) 0, rgba(10,26,47,0) 20%),
    linear-gradient(90deg, rgba(8,24,36,.88) 0, rgba(8,24,36,.72) 38%, rgba(8,24,36,.2) 62%, rgba(8,24,36,0) 78%),
    linear-gradient(to top, rgba(10,26,47,.9) 0, rgba(10,26,47,0) 50%) }
@media (max-width:47.99rem){
  .lab-portada .portada__velo{ background:
    linear-gradient(to bottom, rgba(10,26,47,.55) 0, rgba(10,26,47,.25) 22%, rgba(8,24,36,.78) 40%, rgba(8,24,36,.9) 70%, rgba(10,26,47,.96) 100%) }
}
/* 6) Evidencia en celular: la tira de cifras se pegaba al borde de la pantalla. El ajuste de desplazamiento ignoraba
      el margen interior; ahora respeta el mismo canal de la página. */
@media (max-width:61.99rem){
  .evi-idx{ margin-inline:calc(-1 * var(--canal)); padding-inline:var(--canal); scroll-padding-inline:var(--canal) }
}

/* ============================================================================
   v31 · Ficha de la herramienta
   ========================================================================== */
/* Rótulo doble de la apertura: de qué Ecosistema es herramienta y a qué comunidad sirve */
.lab-rotulo{ margin:0 0 var(--e-sm); font-family:var(--sans); font-size:.86rem; font-weight:600; letter-spacing:.01em; color:#E7E2D6; text-shadow:0 1px 3px rgba(6,17,31,.7) }
.lab-rotulo a{ color:var(--ac-lab); text-decoration:underline; text-decoration-color:rgba(124,196,190,.5); text-underline-offset:.22em }
.lab-rotulo a:hover{ color:var(--papel); text-decoration-color:var(--ac-lab) }
.lab-rotulo a:focus-visible{ outline:2px solid var(--ac-lab); outline-offset:3px; border-radius:2px }

/* Encaje: el título enlaza a su casa; el texto va aparte y puede llevar enlaces propios */
.lab-encaje .lab-encaje__a{ display:grid; grid-template-columns:minmax(0,1fr); gap:.2rem; padding:1rem 0 .3rem; text-decoration:none; color:var(--tinta); font-family:var(--sans) }
.lab-encaje li > .lab-encaje__d{ display:block; padding-bottom:1rem }
.lab-encaje__d a{ color:var(--petroleo); text-decoration:underline; text-decoration-color:rgba(20,80,79,.4); text-underline-offset:.18em; font-weight:600 }
.lab-encaje__d a:hover{ text-decoration-color:var(--petroleo) }
.lab-encaje a:focus-visible{ outline:2px solid var(--petroleo); outline-offset:3px; border-radius:2px }
@media (max-width:47.99rem){ .lab-encaje .lab-encaje__a{ grid-template-columns:minmax(0,7rem) minmax(0,1fr) } .lab-encaje .lab-encaje__k{ grid-row:auto } }

/* Los niveles enlazan a su cifra de Evidencia (antes la repetían) */
.nivel-f__ir{ font-weight:600; color:var(--petroleo) }
.nivel-f__ir::after{ content:" ↓"; text-decoration:none; display:inline-block; margin-left:.15em }

/* Desarrollos: tres tarjetas con foto; cada una dice dónde nació y dónde vive hoy */
@media (min-width:62rem){
  .des--v31 .des__i:nth-child(3){ grid-column:2; grid-row:2 }
}
.des__vive{ display:flex; flex-wrap:wrap; align-items:center; gap:.35rem .5rem; margin:.4rem 0 0; padding:.55rem 0; border-top:1px solid rgba(244,242,238,.16); border-bottom:1px solid rgba(244,242,238,.16);
  font-family:var(--sans); font-size:.84rem; color:#C9D4D7 }
.des__vive-k{ color:#9FB4B8 }
.des__vive svg{ width:.9rem; height:.9rem; color:var(--c) }
.des__vive a{ color:var(--papel); font-weight:650; text-decoration:underline; text-decoration-color:var(--c); text-underline-offset:.2em }
.des__vive a:hover{ color:var(--c) }
.des__vive a:focus-visible{ outline:2px solid var(--c); outline-offset:3px; border-radius:2px }
.lab-mas--des{ margin-top:.2rem }
.lab-mas--des > summary{ margin-inline:0; min-height:44px }
.lab-mas--des .recorrido{ margin-top:1rem; grid-template-columns:minmax(0,1fr) !important; gap:.6rem }
.lab-mas--des .recorrido li{ padding:0 }

/* Cierre: herramienta anterior y todas las herramientas, sobre las dos tarjetas */
.salto-herr{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:.5rem 1.5rem; margin:0 0 1rem; font-family:var(--sans); font-size:.9rem }
.salto-herr a{ display:inline-flex; align-items:center; gap:.4rem; min-height:44px; color:var(--tinta-2); text-decoration:underline; text-decoration-color:var(--filete-firme); text-underline-offset:.22em }
.salto-herr a:hover{ color:var(--tinta); text-decoration-color:var(--petroleo) }
.salto-herr a:focus-visible{ outline:2px solid var(--petroleo); outline-offset:3px; border-radius:2px }
.salto-herr svg{ width:1rem; height:1rem; flex:none }
.salto-herr b{ font-weight:650; color:var(--tinta) }

/* Una cifra elegida desde un nivel o desde otra página se marca un instante */
.evi-f.is-llega, .hallazgo.is-llega{ animation:lab-llega 1.4s var(--curva) both }
@keyframes lab-llega{ 0%{ box-shadow:0 0 0 0 rgba(124,196,190,0) } 25%{ box-shadow:0 0 0 6px rgba(124,196,190,.45) } 100%{ box-shadow:0 0 0 0 rgba(124,196,190,0) } }
@media (prefers-reduced-motion:reduce){ .evi-f.is-llega, .hallazgo.is-llega{ animation:none } }
/* v31 · los enlaces dentro del texto del encaje son enlaces de línea, no la tarjeta entera */
.lab-encaje .lab-encaje__d a, .lab-que2 .lab-encaje .lab-encaje__d a{ display:inline; padding:0; grid-template-columns:none; font-family:var(--sans); font-size:.92em }
/* v31 · Evidencia en tableta y celular: las cinco cifras en una rejilla de dos columnas, todas a la vista
   (antes, una tira horizontal que dejaba cifras fuera de la caja). */
@media (max-width:61.99rem){
  .evi-idx{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:.5rem; overflow:visible; scroll-snap-type:none; margin-inline:0; padding:0 }
  .evi-idx li{ width:auto }
  .evi-idx li:last-child:nth-child(odd){ grid-column:1 / -1 }
  .evi-i{ padding:.7rem .8rem }
  .evi-i__v{ font-size:1.1rem }
}
@media (min-width:40rem) and (max-width:61.99rem){ .evi-idx{ grid-template-columns:repeat(3, minmax(0,1fr)) } .evi-idx li:last-child:nth-child(odd){ grid-column:auto } }
/* v31 · la cifra grande: el signo menos ya no se monta sobre el número y la cifra no invade el titular */
.evi-f__v{ line-height:1.08 }
.evi-f__pre{ margin-right:.04em }
/* v31 · movimiento reducido: la foto de la apertura no hace el zoom lento (componentes.css no lo detiene) */
@media (prefers-reduced-motion:reduce){ .lab-portada .portada__foto img{ animation:none } }
