/* v27 · Comunidad Empresa (agente EMPRESA).
   1 · Apartados (#gran-empresa, #oxi, #pyme, #gremios): foto, cifra verificada y recorrido; con JS, pestañas.
   2 · El camino (#camino): línea horizontal que se recorre, tramo de financiamiento y esquema de lo medido.
   3 · Métricas (#metricas): NIIF S1/S2 con la fecha de 2029 y un tablero de ejemplo filtrable.
   Sin JS todo se lee seguido. Con prefers-reduced-motion no hay animaciones y el contenido está completo.
   v28: sin rayas laterales ni cajas tintadas; pictogramas propios en las pestañas; fuentes y créditos en <details>. */

.em-ap, .em-cam, .em-met{ --em:var(--cm, #B5BF6E); --em-hondo:var(--cm-hondo, #5d6330) }

.em-sr{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0 }

/* Cabeceras */
.em-cab{ max-width:46rem; margin:0 0 clamp(2rem,4vw,3.25rem) }
.em-cab .antetitulo{ color:var(--petroleo) }
.em-cab .h2{ margin:0 0 var(--e-sm); text-wrap:balance; max-width:22ch }
.em-cab .entrada{ margin:0; max-width:60ch; text-wrap:pretty }
.em-cab--oscuro .antetitulo{ color:var(--em) }
.em-cab--oscuro .h2{ color:var(--papel) }

.em-fuente{ display:inline; font-size:.82rem; line-height:1.4; color:var(--t3); text-decoration:underline; text-decoration-color:var(--fl); text-underline-offset:.2em; transition:color .2s var(--curva) }
.em-fuente:hover{ color:var(--t1); text-decoration-color:currentColor }
.em-fuente svg{ display:inline; margin-left:.25em; vertical-align:baseline }
.em-ap .em-fuente, .em-tablero .em-fuente{ --t3:var(--mudo); --t1:var(--tinta); --fl:var(--filete-firme) }

/* ============================================================ 1 · APARTADOS */
.em-tabs__nav{ position:relative; margin-bottom:clamp(1.75rem,3.5vw,2.75rem) }
.em-tabs__lista{ list-style:none; margin:0; padding:0; display:grid; gap:.25rem 1rem; grid-template-columns:1fr 1fr; border-bottom:1px solid var(--filete-firme) }
.em-tab{ display:grid; align-content:start; justify-items:start; gap:.3rem; text-decoration:none; color:var(--tinta); min-height:44px;
  padding:.7rem 0 .9rem; border-radius:.3rem; box-shadow:inset 0 -2px 0 transparent;
  transition:color .2s var(--curva), box-shadow .25s var(--curva) }
.em-tab__i{ width:2.6rem; height:1.75rem; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; opacity:.55;
  transition:opacity .2s var(--curva), stroke .2s var(--curva) }
.em-tab__n{ font-family:var(--sans); font-weight:650; font-size:1rem; line-height:1.25 }
.em-tab__s{ display:none; font-size:.86rem; line-height:1.35; color:var(--mudo) }
.em-tabs__lista.em-viva .em-tab{ color:color-mix(in srgb, var(--tinta) 62%, transparent) }
.em-tab:hover{ color:var(--tinta) }
.em-tab:hover .em-tab__i{ opacity:.85 }
.em-tabs__lista.em-viva .em-tab[aria-selected="true"]{ color:var(--tinta) }
.em-tab[aria-selected="true"] .em-tab__i{ opacity:1; stroke:var(--em-hondo) }
.em-tab:focus-visible{ outline:2px solid var(--petroleo); outline-offset:3px }
@media (max-width:47.99rem){ .em-tab[aria-selected="true"]{ box-shadow:inset 0 -2px 0 var(--em-hondo) } }
/* El pictograma se dibuja al elegir la pestaña */
.em-tab[aria-selected="true"] .em-tab__i *{ stroke-dasharray:120; animation:em-traza .7s var(--curva) both }
@keyframes em-traza{ from{ stroke-dashoffset:120 } to{ stroke-dashoffset:0 } }
.em-tabs__marca{ display:none }

@media (min-width:48rem){
  .em-tabs__lista{ grid-template-columns:repeat(4,1fr); gap:0 }
  .em-tab{ padding:.2rem 1.25rem 1.15rem 0; border-radius:0 }
  .em-tab__i{ width:3rem; height:2rem; margin-bottom:.35rem }
  .em-tab__s{ display:block }
  .em-tab__n{ font-size:clamp(1.05rem,.9rem + .4vw,1.3rem) }
  .em-tabs__marca{ display:block; position:absolute; left:0; bottom:-1px; height:2px; width:var(--w,0); transform:translateX(var(--x,0));
    background:var(--em-hondo); transition:transform .35s var(--curva), width .35s var(--curva) }
}

.em-tabs__paneles{ display:grid; gap:clamp(3rem,6vw,4.5rem) }
.em-panel{ display:grid; gap:clamp(1.5rem,3vw,2.25rem); scroll-margin-top:calc(var(--alto-nav) + 1rem) }
.em-panel:focus-visible{ outline:2px solid var(--petroleo); outline-offset:6px; border-radius:.4rem }
@media (min-width:62rem){ .em-panel{ grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(2.5rem,4.5vw,4.5rem); align-items:start } }

.em-panel__foto{ margin:0; display:grid; gap:.6rem }
.em-panel__foto picture{ display:block; overflow:hidden; border-radius:.9rem; aspect-ratio:4/3; background:var(--niebla) }
@media (min-width:62rem){ .em-panel__foto{ position:sticky; top:calc(var(--alto-nav) + 1.5rem) } .em-panel__foto picture{ aspect-ratio:4/5 } }
.em-panel__img{ width:100%; height:100%; object-fit:cover; object-position:var(--pos-m, var(--pos, 50% 50%)); display:block }
@media (min-width:62rem){ .em-panel__img{ object-position:var(--pos, 50% 50%) } }
.em-panel__foto figcaption{ font-size:.82rem; line-height:1.45; color:var(--mudo); max-width:52ch }

.em-panel__k{ margin:0 0 .6rem; font-family:var(--sans); font-size:.88rem; font-weight:650; color:var(--em-hondo) }
.em-panel__k span{ font-weight:500; color:var(--mudo) }
.em-panel__t{ margin:0 0 var(--e-sm); font-size:clamp(1.6rem,1.2rem + 1.4vw,2.35rem); line-height:1.12; letter-spacing:-.012em; font-weight:650; color:var(--tinta); text-wrap:balance; max-width:20ch }
.em-panel__d{ margin:0 0 clamp(1.75rem,3vw,2.5rem); font-family:var(--lee); font-size:1.06rem; line-height:1.68; color:var(--tinta-2, var(--tinta)); text-wrap:pretty; max-width:60ch }
.em-panel__rej{ display:grid; gap:clamp(1.75rem,3vw,2.5rem); padding-top:clamp(1.5rem,2.5vw,2rem); border-top:1px solid var(--filete-firme) }
@media (min-width:44rem){ .em-panel__rej{ grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) } }
.em-panel__ir{ margin:clamp(1.75rem,3vw,2.25rem) 0 0 }

.em-cifra{ display:grid; align-content:start; gap:.6rem }
.em-cifra__n{ margin:0; font-family:var(--sans); font-weight:650; font-size:clamp(2.5rem,1.9rem + 2.2vw,3.6rem); line-height:1; letter-spacing:-.025em;
  color:var(--tinta); font-variant-numeric:tabular-nums }
.em-cifra__n span{ white-space:nowrap }
.em-cifra__u{ display:block; margin-top:.3em; font-size:.4em; font-weight:600; letter-spacing:0; color:var(--mudo) }
.em-cifra__t{ margin:0; font-size:.97rem; line-height:1.55; color:var(--tinta); text-wrap:pretty }

.em-rec__k{ margin:0 0 .85rem; font-family:var(--sans); font-size:.86rem; font-weight:650; color:var(--mudo) }
.em-pasos{ list-style:none; margin:0; padding:0; display:grid; gap:.8rem }
.em-pasos li{ display:grid; grid-template-columns:1.6rem minmax(0,1fr); gap:.6rem; align-items:baseline; font-size:.97rem; line-height:1.45; color:var(--tinta) }
.em-pasos__n{ font-family:var(--sans); font-size:1.15rem; font-weight:650; line-height:1; color:var(--em-hondo); font-variant-numeric:tabular-nums }

/* Con JS: un panel a la vez, con entrada propia */
.em-js .em-tabs__paneles{ display:block }
.em-js .em-panel[hidden]{ display:none }
.em-js .em-panel.em-entra .em-panel__img{ animation:em-foto .6s var(--curva) both }
.em-js .em-panel.em-entra .em-panel__cuerpo{ animation:em-lado .4s var(--curva) both }
.em-js .em-panel.em-entra .em-pasos li{ animation:em-paso .35s var(--curva) both; animation-delay:calc(.12s + var(--i,0) * .07s) }
@keyframes em-foto{ from{ opacity:.25; transform:scale(1.045) } to{ opacity:1; transform:none } }
@keyframes em-lado{ from{ opacity:0; transform:translateX(14px) } to{ opacity:1; transform:none } }
@keyframes em-paso{ from{ opacity:0 } to{ opacity:1 } }

/* ============================================================ 2 · EL CAMINO */
.em-cam{ position:relative }
.em-camino{ display:grid; gap:clamp(1.5rem,3vw,2.25rem) }

.em-ruta{ position:relative }
.em-ruta__lista{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); position:relative }
.em-ruta__lista::before, .em-ruta__lista::after{ content:""; position:absolute; left:10%; top:1.5rem; height:2px; border-radius:2px }
.em-ruta__lista::before{ right:10%; background:var(--filete-piedra) }
.em-ruta__lista::after{ width:calc(80% * var(--avance, 0)); background:var(--em); transition:width .5s var(--curva) }
.em-ruta__lista:not(.em-viva)::after{ display:none }
.em-ruta__p{ position:relative; z-index:1; display:flex; justify-content:center }
.em-ruta__b{ display:grid; justify-items:center; gap:.7rem; text-align:center; text-decoration:none; color:var(--t3); padding:0 .25rem .35rem; border-radius:.5rem; min-width:0; min-height:44px }
.em-ruta__n{ display:grid; place-items:center; width:3rem; height:3rem; border-radius:50%; font-family:var(--sans); font-weight:650; font-size:1rem;
  background:var(--noche-hondo); border:2px solid var(--filete-piedra); color:var(--piedra);
  transition:background-color .25s var(--curva), border-color .25s var(--curva), color .25s var(--curva), box-shadow .3s var(--curva), transform .25s var(--curva) }
.em-ruta__p--inv .em-ruta__n{ border-style:dashed }
.em-ruta__v{ font-family:var(--sans); font-size:.95rem; line-height:1.25; font-weight:600; max-width:12ch; transition:color .2s var(--curva) }
.em-ruta__b:hover{ color:var(--papel) }
.em-ruta__b:hover .em-ruta__n{ border-color:var(--piedra); transform:translateY(-2px) }
.em-ruta__b:focus-visible{ outline:2px solid var(--papel); outline-offset:3px }
.em-ruta__b.em-hecha .em-ruta__n{ border-color:var(--em); border-style:solid; color:var(--papel) }
.em-ruta__b[aria-selected="true"]{ color:var(--papel) }
.em-ruta__b[aria-selected="true"] .em-ruta__n{ background:var(--em); border-color:var(--em); border-style:solid; color:var(--noche-hondo);
  box-shadow:0 0 0 7px color-mix(in srgb, var(--em) 18%, transparent) }

/* Tramo de financiamiento */
.em-fin{ position:relative; display:grid; grid-template-columns:4fr 1fr; gap:.4rem; margin-top:1.4rem }
.em-fin__tramo{ display:grid; gap:.15rem; padding-top:.8rem; position:relative; text-align:center; color:var(--t3); transition:color .3s var(--curva) }
.em-fin__tramo::before{ content:""; position:absolute; left:0; right:0; top:0; height:6px; border-radius:3px; background:rgba(216,203,179,.16); transition:background-color .3s var(--curva) }
.em-fin__tramo b{ font-family:var(--sans); font-size:.84rem; font-weight:650 }
.em-fin__tramo > span{ font-size:.78rem }
.em-fin__tramo--inv::before{ background:repeating-linear-gradient(90deg, rgba(216,203,179,.28) 0 6px, transparent 6px 10px) }
.em-fin[data-t="propio"] .em-fin__tramo--propio,
.em-fin[data-t="inv"] .em-fin__tramo--inv{ color:var(--papel) }
.em-fin[data-t="propio"] .em-fin__tramo--propio::before{ background:color-mix(in srgb, var(--em) 70%, transparent) }
.em-fin[data-t="inv"] .em-fin__tramo--inv::before{ background:repeating-linear-gradient(90deg, var(--em) 0 6px, transparent 6px 10px) }
.em-fin::after{ content:""; position:absolute; top:-3px; left:calc((var(--k, 0) + .5) * 20% - 6px); width:12px; height:12px; border-radius:50%;
  background:var(--papel); box-shadow:0 0 0 3px var(--noche-hondo); transition:left .5s var(--curva); display:none }
.em-js .em-fin::after{ display:block }

/* Paradas */
.em-paradas{ display:grid; gap:clamp(2.5rem,5vw,4rem) }
.em-parada{ padding-top:clamp(1.5rem,3vw,2.25rem); border-top:1px solid var(--filete-oscuro);
  display:grid; gap:clamp(1.75rem,3.5vw,3.5rem); scroll-margin-top:calc(var(--alto-nav) + 1rem) }
@media (min-width:58rem){ .em-parada{ grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); align-items:start } }
.em-parada:focus-visible{ outline:2px solid var(--papel); outline-offset:4px }
.em-parada__k{ margin:0 0 .6rem; font-family:var(--sans); font-size:.86rem; color:var(--suave) }
.em-parada__t{ margin:0 0 var(--e-sm); font-size:clamp(1.5rem,1.15rem + 1.2vw,2.1rem); line-height:1.15; letter-spacing:-.01em; font-weight:650; color:var(--papel); text-wrap:balance }
.em-parada__pasa{ margin:0 0 1.5rem; font-family:var(--lee); font-size:1.05rem; line-height:1.65; color:var(--t2); text-wrap:pretty; max-width:56ch }
.em-parada__dl{ margin:0 0 1.5rem; display:grid; gap:1rem 1.75rem }
@media (min-width:40rem){ .em-parada__dl{ grid-template-columns:1fr 1fr } }
.em-f{ border-top:1px solid var(--filete-oscuro); padding-top:.75rem }
.em-f dt{ font-family:var(--sans); font-size:.84rem; font-weight:650; color:var(--piedra); margin:0 0 .3rem }
.em-f dd{ margin:0; font-size:.97rem; line-height:1.55; color:var(--t2); text-wrap:pretty }
.em-parada__paga{ margin:0; display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem .5rem; font-size:.9rem; line-height:1.4 }
.em-parada__paga span{ color:var(--suave) }
.em-parada__paga b{ font-family:var(--sans); color:var(--em); font-weight:650 }
.em-parada__ej{ margin:1.6rem 0 0; font-family:var(--lee); font-style:italic; font-size:1rem; line-height:1.6; color:var(--t2); max-width:54ch; text-wrap:pretty }
.em-parada__ej b{ font-family:var(--sans); font-style:normal; font-weight:650; color:var(--papel) }
.em-parada__ej a{ font-family:var(--sans); font-style:normal; font-size:.9rem; font-weight:600; color:var(--em); text-decoration:underline; text-decoration-color:color-mix(in srgb, var(--em) 45%, transparent); text-underline-offset:.22em; white-space:nowrap }
.em-parada__ej a:hover{ text-decoration-color:currentColor }
.em-parada__ej a:focus-visible{ outline:2px solid var(--papel); outline-offset:3px; border-radius:2px }

/* Lo que queda medido */
.em-viz{ margin:0; display:grid; gap:.75rem }
.em-viz__cab{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:.25rem 1rem }
.em-viz__cab b{ font-family:var(--sans); font-size:.9rem; font-weight:650; color:var(--em) }
.em-viz__cab span{ font-size:.78rem; color:var(--t3) }
.em-viz__svg{ width:100%; height:auto; max-height:15rem; overflow:visible; display:block; margin:.5rem 0 .25rem }
.em-viz__txt{ font-family:var(--sans); font-size:8.5px; fill:rgba(244,242,238,.62) }
.em-viz__eje{ stroke:rgba(216,203,179,.3); stroke-width:1; fill:none }
.em-viz__eje--marca{ stroke-dasharray:3 3 }
.em-viz__barras rect{ fill:rgba(244,242,238,.16) }
.em-viz__trazo{ fill:none; stroke:var(--em); stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round }
.em-viz__trazo--suave{ stroke:rgba(216,203,179,.55); stroke-width:1.6 }
.em-viz__si{ fill:var(--em) }
.em-viz__no{ fill:none; stroke:rgba(216,203,179,.45); stroke-width:1.2 }
.em-viz__visto{ stroke:var(--noche-hondo); stroke-width:2.2 }
.em-viz__puntos circle{ fill:var(--em) }
.em-viz__local{ fill:var(--em) }
.em-viz__fuera{ fill:rgba(244,242,238,.14) }
.em-viz__obra{ fill:none; stroke:var(--piedra); stroke-width:1.5; stroke-linejoin:round }
.em-viz__mide{ margin:0; font-size:.98rem; line-height:1.5; color:var(--papel); text-wrap:pretty }
.em-viz__ley{ margin:0; font-size:.86rem; line-height:1.5; color:var(--t3); text-wrap:pretty }
.em-viz__ir{ justify-self:start; font-family:var(--sans); font-size:.86rem; font-weight:600; color:var(--em); text-decoration:underline; text-decoration-color:color-mix(in srgb, var(--em) 45%, transparent); text-underline-offset:.22em; padding:.35rem 0 }
.em-viz__ir:hover{ text-decoration-color:currentColor }
.em-viz__ir:focus-visible{ outline:2px solid var(--papel); outline-offset:3px; border-radius:2px }

/* Dibujo de los esquemas: una sola vez, cuando la parada entra en pantalla */
.em-js .em-viz__trazo{ stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset .9s var(--curva) calc(.15s + var(--d, 0) * .18s) }
.em-js .em-dibuja .em-viz__trazo{ stroke-dashoffset:0 }
.em-js .em-viz__barras rect, .em-js .em-viz__local, .em-js .em-viz__celdas rect, .em-js .em-viz__puntos circle{
  transform-box:fill-box; transition:transform .55s var(--curva), opacity .4s var(--curva); transition-delay:calc(var(--d, 0) * .06s) }
.em-js .em-viz__barras rect{ transform-origin:bottom; transform:scaleY(.15) }
.em-js .em-viz__local{ transform-origin:left; transform:scaleX(0) }
.em-js .em-viz__celdas rect, .em-js .em-viz__puntos circle{ transform-origin:center; opacity:0; transform:scale(.6) }
.em-js .em-dibuja .em-viz__barras rect, .em-js .em-dibuja .em-viz__local,
.em-js .em-dibuja .em-viz__celdas rect, .em-js .em-dibuja .em-viz__puntos circle{ transform:none; opacity:1 }

/* Con JS: las paradas se apilan y se recorren de lado */
.em-js .em-paradas{ display:grid; gap:0; touch-action:pan-y; overflow-x:clip; overflow-clip-margin:8px }
.em-js .em-parada{ grid-area:1 / 1; visibility:hidden; opacity:0; transform:translateX(calc(var(--dir, 1) * 56px));
  transition:opacity .35s var(--curva), transform .45s var(--curva), visibility 0s linear .45s }
.em-js .em-parada.em-sale{ transform:translateX(calc(var(--dir, 1) * -56px)) }
.em-js .em-parada.em-activa{ visibility:visible; opacity:1; transform:none; transition:opacity .35s var(--curva) .05s, transform .45s var(--curva), visibility 0s }

.em-camino__nav{ display:flex; align-items:center; justify-content:space-between; gap:1rem }
.em-camino__btn{ display:inline-flex; align-items:center; gap:.5rem; font:inherit; font-family:var(--sans); font-size:.92rem; font-weight:600; color:var(--papel);
  background:transparent; border:1px solid var(--filete-piedra); border-radius:999px; padding:.6rem 1.15rem; cursor:pointer; min-height:44px;
  transition:background-color .2s var(--curva), border-color .2s var(--curva), opacity .2s var(--curva) }
.em-camino__btn:hover:not(:disabled){ background:rgba(244,242,238,.08); border-color:var(--piedra) }
.em-camino__btn:disabled{ opacity:.35; cursor:default }
.em-camino__btn:focus-visible{ outline:2px solid var(--papel); outline-offset:3px }
.em-camino__pos{ margin:0; font-size:.88rem; color:var(--suave); text-align:center }

/* ============================================================ 3 · MÉTRICAS Y NIIF */
.em-met__rej{ display:grid; gap:clamp(2rem,4vw,3.5rem); margin-bottom:clamp(2.5rem,5vw,4rem) }
@media (min-width:62rem){ .em-met__rej{ grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); align-items:end } .em-met__cab{ margin-bottom:0 } }

.em-niif{ background:var(--noche); color:var(--papel); border-radius:1rem; padding:clamp(1.4rem,3vw,2.25rem); display:grid; gap:.75rem;
  --t3:rgba(244,242,238,.66); --t1:var(--papel); --fl:rgba(244,242,238,.3) }
.em-niif p{ margin:0; font-size:.95rem; line-height:1.58; color:rgba(244,242,238,.82) }
.em-niif__k{ font-family:var(--sans); font-size:.88rem !important; font-weight:650; color:var(--em) !important }
.em-niif__ano{ font-family:var(--sans); font-weight:700; font-size:clamp(4.5rem,3rem + 6vw,7.5rem) !important; line-height:.88 !important; letter-spacing:-.045em; color:var(--em) !important; font-variant-numeric:tabular-nums }
.em-niif__fecha{ font-family:var(--sans); font-size:1.05rem !important; color:var(--papel) !important }
.em-niif__fecha b{ font-weight:650 }

.em-plazo{ margin:.5rem 0 .25rem; display:grid; gap:.6rem }
.em-plazo__barra{ position:relative; height:4px; border-radius:2px; background:rgba(244,242,238,.16) }
.em-plazo__hecho{ position:absolute; left:0; top:0; bottom:0; width:var(--hoy, 0%); border-radius:2px; background:var(--em); transform-origin:left }
.em-plazo__hoy{ position:absolute; top:50%; left:var(--hoy, 0%); width:14px; height:14px; margin:-7px 0 0 -7px; border-radius:50%; background:var(--papel); box-shadow:0 0 0 4px color-mix(in srgb, var(--em) 35%, transparent) }
.em-plazo__barra::after{ content:""; position:absolute; right:-1px; top:-5px; width:2px; height:14px; background:var(--em); border-radius:1px }
.em-plazo__rot{ display:flex; justify-content:space-between; gap:.75rem; font-family:var(--sans); font-size:.76rem; line-height:1.3; color:rgba(244,242,238,.62) }
.em-plazo__rot span:last-child{ text-align:right }
.em-plazo__dif{ text-align:center; color:var(--papel) }
.em-plazo__dif b{ font-weight:650; color:var(--em) }
.em-js-plazo .em-plazo__hecho{ animation:em-crece 1.1s var(--curva) .2s both }
.em-espera .em-plazo__hecho{ transform:scaleX(0) }
@keyframes em-crece{ from{ transform:scaleX(0) } to{ transform:none } }

/* Tablero de ejemplo */
.em-tablero{ background:var(--blanco); border:1px solid var(--filete); border-radius:1rem; padding:clamp(1.15rem,2.8vw,2rem); box-shadow:0 24px 48px -36px rgba(14,23,38,.35) }
.em-tablero__cab{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:1rem 2rem; margin-bottom:1.25rem }
.em-tablero__t{ margin:0 0 .4rem; font-family:var(--sans); font-size:clamp(1.15rem,1rem + .5vw,1.4rem); font-weight:650; color:var(--tinta) }
.em-tablero__ej{ margin:0; font-family:var(--lee); font-style:italic; font-size:.92rem; line-height:1.45; color:var(--mudo) }
.em-chips{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.4rem }
.em-chip{ font:inherit; font-family:var(--sans); font-size:.85rem; font-weight:600; color:var(--tinta); background:transparent; border:1px solid var(--filete-firme);
  border-radius:999px; padding:.45rem .85rem; min-height:40px; cursor:pointer; transition:background-color .2s var(--curva), color .2s var(--curva), border-color .2s var(--curva) }
.em-chip:hover{ border-color:var(--tinta) }
.em-chip[aria-pressed="true"]{ background:var(--tinta); border-color:var(--tinta); color:var(--papel) }
.em-chip:focus-visible{ outline:2px solid var(--petroleo); outline-offset:2px }
.em-chips:not(.em-viva){ display:none }

.em-t{ width:100%; border-collapse:collapse; font-size:.93rem; line-height:1.45 }
.em-t thead th{ text-align:left; font-family:var(--sans); font-size:.8rem; font-weight:650; color:var(--mudo); padding:.6rem .9rem .6rem 0; border-bottom:1px solid var(--filete-firme) }
.em-t tbody th, .em-t td{ text-align:left; vertical-align:middle; padding:.85rem .9rem .85rem 0; border-bottom:1px solid var(--filete) }
.em-t tbody tr:last-child > *{ border-bottom:0 }
.em-t tbody th{ font-family:var(--sans); font-weight:600; color:var(--tinta) }
.em-t td{ color:var(--tinta-2, var(--tinta)) }
.em-t td:nth-child(2){ font-family:var(--sans); font-size:.85rem; color:var(--em-hondo); font-weight:600; white-space:nowrap }
.em-t__sp svg{ width:80px; height:22px; display:block; overflow:visible }
.em-t__sp path{ fill:none; stroke:var(--em-hondo); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round }
.em-estado{ font-family:var(--sans); font-size:.82rem; font-weight:600; color:var(--tinta); white-space:nowrap }
.em-t tr.em-aparece > *{ animation:em-paso .3s var(--curva) both }
.em-js-tab .em-t__sp path{ stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset 1s var(--curva) .2s }
.em-js-tab.em-visto .em-t__sp path{ stroke-dashoffset:0 }
.em-tablero__pie{ margin:1.25rem 0 0; padding-top:1rem; border-top:1px solid var(--filete); font-size:.88rem; line-height:1.55; color:var(--mudo); max-width:80ch }

@media (max-width:47.99rem){
  .em-t thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0) }
  .em-t, .em-t tbody, .em-t tr, .em-t th, .em-t td{ display:block }
  .em-t tr{ display:grid; grid-template-columns:1fr auto; gap:.35rem 1rem; padding:1rem 0; border-bottom:1px solid var(--filete) }
  .em-t tr[hidden]{ display:none }
  .em-t tbody tr:last-child{ border-bottom:0 }
  .em-t tbody th, .em-t td{ padding:0; border:0 }
  .em-t tbody th{ grid-column:1 / -1; font-size:1rem }
  .em-t td[data-r="Evidencia"]{ grid-column:1 / -1; font-size:.9rem; color:var(--mudo) }
  .em-t td[data-r="Parada"]{ grid-row:3 }
  .em-t td[data-r="Estado"]{ grid-row:3; justify-self:end }
  .em-t__sp{ display:none !important }
}

/* Puente a la conversación */
.em-puente{ margin-top:clamp(3rem,6vw,4.5rem); padding-top:clamp(2rem,4vw,2.75rem); border-top:1px solid var(--filete-firme);
  display:grid; gap:.6rem 2.5rem; align-items:center }
@media (min-width:56rem){ .em-puente{ grid-template-columns:1fr auto } .em-puente .boton{ grid-row:1 / span 2; grid-column:2 } }
.em-puente__t{ margin:0; font-family:var(--sans); font-size:clamp(1.4rem,1.1rem + 1vw,1.9rem); font-weight:650; line-height:1.15; letter-spacing:-.01em; color:var(--tinta) }
.em-puente__d{ margin:0 0 .5rem; font-family:var(--lee); font-size:1.04rem; line-height:1.6; color:var(--tinta-2, var(--tinta)) }
.em-puente .boton{ justify-self:start }

/* ============================================================ Celular */
@media (max-width:39.99rem){
  .em-ruta__lista::before, .em-ruta__lista::after{ top:1.15rem }
  .em-ruta__n{ width:2.3rem; height:2.3rem; font-size:.88rem }
  .em-ruta__b[aria-selected="true"] .em-ruta__n{ box-shadow:0 0 0 5px color-mix(in srgb, var(--em) 18%, transparent) }
  .em-ruta__v{ font-size:.74rem; max-width:9ch }
  .em-ruta__lista.em-viva .em-ruta__b:not([aria-selected="true"]) .em-ruta__v{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap }
  .em-ruta__lista.em-viva .em-ruta__p:first-child .em-ruta__b[aria-selected="true"]{ justify-items:start }
  .em-ruta__lista.em-viva .em-ruta__p:last-child .em-ruta__b[aria-selected="true"]{ justify-items:end }
  .em-ruta__lista.em-viva .em-ruta__b[aria-selected="true"] .em-ruta__v{ white-space:nowrap; max-width:none }
  .em-fin__tramo b{ font-size:.74rem }
  .em-fin__tramo > span{ display:none }
  .em-camino__btn span{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0) }
  .em-camino__btn{ padding:.6rem .8rem }
}

@media (prefers-reduced-motion:reduce){
  .em-js .em-panel.em-entra .em-panel__img, .em-js .em-panel.em-entra .em-panel__cuerpo,
  .em-js .em-panel.em-entra .em-pasos li, .em-tab[aria-selected="true"] .em-tab__i *,
  .em-t tr.em-aparece > *, .em-js-plazo .em-plazo__hecho{ animation:none }
  .em-js .em-parada, .em-js .em-parada.em-activa, .em-js .em-parada.em-sale{ transform:none; transition:none }
  .em-js .em-viz__trazo, .em-js-tab .em-t__sp path{ stroke-dashoffset:0; transition:none }
  .em-js .em-viz__barras rect, .em-js .em-viz__local, .em-js .em-viz__celdas rect, .em-js .em-viz__puntos circle{ transform:none; opacity:1; transition:none }
  .em-ruta__lista::after, .em-ruta__n, .em-tab, .em-tab__i, .em-tabs__marca, .em-fin::after, .em-fin__tramo, .em-fin__tramo::before{ transition:none }
  .em-ruta__b:hover .em-ruta__n{ transform:none }
}

/* ============================================================ Fuentes y créditos (plegados) */
.em-fyc{ margin-top:clamp(2.5rem,5vw,3.5rem); max-width:72ch; font-size:.86rem; line-height:1.55; color:var(--mudo) }
.em-fyc summary{ display:inline-flex; align-items:center; gap:.55rem; min-height:44px; cursor:pointer; list-style:none;
  font-family:var(--sans); font-weight:600; color:var(--tinta); border-radius:.3rem }
.em-fyc summary::-webkit-details-marker{ display:none }
.em-fyc summary::after{ content:""; width:.45rem; height:.45rem; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-2px); transition:transform .2s var(--curva) }
.em-fyc[open] summary::after{ transform:rotate(-135deg) translateY(-1px) }
.em-fyc summary:hover{ color:var(--em-hondo) }
.em-fyc summary:focus-visible{ outline:2px solid var(--petroleo); outline-offset:3px }
.em-fyc ul{ list-style:none; margin:.4rem 0 0; padding:0; display:grid; gap:.45rem }
.em-fyc a{ color:inherit; text-decoration:underline; text-decoration-color:var(--filete-firme); text-underline-offset:.2em }
.em-fyc a:hover{ color:var(--tinta); text-decoration-color:currentColor }
.em-cam .em-fyc{ color:var(--t3) }
.em-cam .em-fyc summary{ color:var(--papel) }
@media (prefers-reduced-motion:reduce){ .em-fyc summary::after{ transition:none } }
