/* Observatorio Conecta, capa v27: apertura con el dato vivo, recorrido, mapa del Cusco por provincias,
   comparador y filtros de Obras por Impuestos, buscador de la cartera y la regla «manda el más bajo».
   Se apoya en v26-observatorio.css (prefijo obs-). Sin JS todo se lee; el movimiento solo existe
   si la persona no pidió reducirlo (clase .obs-anim, la pone v27-observatorio.js). */
.obs{
  --obs-res-claro:#F0B48A;
  --obs-ease:cubic-bezier(.2,.7,.2,1);
}

/* ---------- Barras que se dibujan una vez al entrar ---------- */
.obs-barra__v{ transform-box:fill-box; transform-origin:0 50% }
.obs-anim .obs-barra__v{ transition:transform .9s var(--obs-ease); transition-delay:calc(var(--i, 0) * 35ms) }
.obs-anim .obs-barras:not(.visto) .obs-barra__v{ transform:scaleX(0) !important }

.obs [hidden]{ display:none !important }
.obs-pre .obs *, .obs-pre .obs *::before, .obs-pre .obs *::after{ transition:none !important }

/* ---------- Portada: apertura ---------- */
.obs-ap0{ padding-bottom:clamp(2.75rem,5vw,4.5rem) }
.obs-ap0 .obs-cab__in{ display:block }
.obs-ap0__top{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:clamp(2rem,5vw,5rem); align-items:end;
  padding-bottom:var(--e-md); border-bottom:1px solid var(--filete-piedra) }
.obs-ap0__h1{ font-family:var(--sans); font-weight:700; font-size:clamp(1.6rem,1.2rem + 1.4vw,2.35rem); letter-spacing:-.015em; line-height:1.05; color:var(--papel) }
.obs-ap0__corto{ font-family:var(--sans); font-size:.82rem; color:var(--suave-claro); margin-top:.4rem; grid-column:1 }
.obs-ap0__lede{ grid-column:2; grid-row:1 / span 2; margin:0; font-size:clamp(1rem,.95rem + .25vw,1.12rem) }
.obs-ap0__dato{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); column-gap:clamp(2rem,5vw,5rem); align-items:center; padding-top:clamp(1.75rem,4vw,3rem) }
.obs-ap0__k{ font-family:var(--sans); font-size:.9rem; font-weight:650; color:var(--piedra); display:flex; flex-wrap:wrap; gap:.25rem 1rem; align-items:baseline }
.obs-ap0__k span{ font-weight:500; color:var(--suave-claro) }
.obs-ap0__n{ font-family:var(--lee); font-weight:400; font-size:clamp(5.2rem,2.5rem + 10vw,12.5rem); line-height:.88; letter-spacing:-.045em;
  color:var(--papel); margin:.6rem 0 1.1rem; font-variant-numeric:tabular-nums lining-nums }
.obs-ap0__t{ font-size:clamp(1.08rem,1rem + .45vw,1.34rem); line-height:1.5; color:#DCE3E6; max-width:40ch }
.obs-ap0__t b{ color:var(--papel); font-weight:600 }
.obs-ap0__t b:last-child{ color:var(--obs-res-claro) }
.obs-ap0__f{ margin-top:var(--e-sm); font-family:var(--sans); font-size:.86rem; color:var(--suave-claro); line-height:1.5; max-width:56ch }
.obs-ap0__f a{ color:var(--piedra); text-underline-offset:.2em }
.obs-ap0__ir{ display:inline-flex; align-items:center; min-height:2.5rem; margin-left:.35rem; font-weight:650 }

.obs-peru{ margin:0; display:grid; gap:.6rem; justify-items:center }
.obs-peru__svg{ width:100%; max-width:24rem; height:auto; display:block; overflow:visible }
.obs-peru__svg path{ stroke:var(--noche); stroke-width:.8; stroke-linejoin:round; transition:fill .2s ease }
.obs-peru__svg path[data-c="0"]{ fill:rgba(216,203,179,.10) }
.obs-peru__svg path[data-c="1"]{ fill:rgba(216,203,179,.20) }
.obs-peru__svg path[data-c="2"]{ fill:rgba(216,203,179,.32) }
.obs-peru__svg path[data-c="3"]{ fill:rgba(216,203,179,.48) }
.obs-peru__svg path[data-c="4"]{ fill:rgba(216,203,179,.66) }
.obs-peru__svg path.on{ fill:var(--obs-res-claro) }
.obs-peru__svg path:hover{ fill:var(--papel) }
.obs-peru__call line{ stroke:var(--obs-res-claro); stroke-width:1.2 }
.obs-peru__call circle{ fill:var(--noche); stroke:var(--obs-res-claro); stroke-width:1.5 }
.obs-peru__call text{ font-family:var(--sans); font-size:17px; font-weight:650; fill:var(--piedra) }
.obs-peru__call .obs-peru__n{ font-family:var(--lee); font-size:30px; font-weight:500; fill:var(--obs-res-claro) }
.obs-anim .obs-peru__call line{ stroke-dasharray:130; stroke-dashoffset:130; transition:stroke-dashoffset .8s .5s var(--obs-ease) }
.obs-anim .obs-peru.visto .obs-peru__call line{ stroke-dashoffset:0 }
.obs-peru figcaption{ font-family:var(--sans); font-size:.8rem; color:var(--suave-claro); line-height:1.45; display:grid; gap:.35rem; max-width:24rem; width:100% }
.obs-peru__ley{ display:inline-flex; align-items:center; gap:3px }
.obs-peru__ley i{ width:1.4rem; height:.55rem; display:inline-block; border-radius:1px }
.obs-peru__ley i:first-child{ margin-left:.4rem } .obs-peru__ley i:last-child{ margin-right:.4rem }
.obs-peru__ley i[data-c="0"]{ background:rgba(216,203,179,.10) } .obs-peru__ley i[data-c="1"]{ background:rgba(216,203,179,.20) }
.obs-peru__ley i[data-c="2"]{ background:rgba(216,203,179,.32) } .obs-peru__ley i[data-c="3"]{ background:rgba(216,203,179,.48) }
.obs-peru__ley i[data-c="4"]{ background:rgba(216,203,179,.66) }
.obs-peru__cred{ color:rgba(197,211,213,.8); font-size:.74rem }
.obs-peru__cred a, .obs-mapa__cap a{ color:inherit; text-underline-offset:.18em }

/* ---------- Portada: recorrido ---------- */
.obs-ruta__l{ list-style:none; margin:0; padding:0; border-top:1px solid var(--filete-firme) }
.obs-ruta__i{ position:relative; display:grid; grid-template-columns:minmax(0,6fr) minmax(0,6fr); gap:clamp(1.5rem,4vw,4.5rem); align-items:center;
  padding:clamp(1.75rem,3.5vw,2.75rem) clamp(.25rem,1.5vw,1.25rem); border-bottom:1px solid var(--filete); transition:background-color .2s ease }
.obs-ruta__i--cus .obs-ruta__txt{ order:2 }
.obs-ruta__i:has(.obs-ruta__a:hover), .obs-ruta__i:has(.obs-ruta__a:focus-visible){ background:rgba(20,80,79,.05) }
.obs-ruta__txt{ display:grid; gap:.7rem; max-width:54ch }
.obs-ruta__txt > p:not(.obs-ruta__e){ color:var(--t2); line-height:1.62 }
.obs-ruta__e{ display:flex; flex-wrap:wrap; align-items:center; gap:.4rem .8rem; font-family:var(--sans); font-size:.82rem; color:var(--mudo) }
.obs-ruta__t{ font-family:var(--lee); font-weight:500; font-size:clamp(1.55rem,1.2rem + 1.2vw,2.3rem); line-height:1.12; letter-spacing:-.015em; color:var(--t1) }
.obs-ruta__a{ color:inherit; text-decoration:underline; text-decoration-color:var(--filete-firme); text-decoration-thickness:1px; text-underline-offset:.16em; transition:text-decoration-color .2s }
.obs-ruta__a::after{ content:""; position:absolute; inset:0; z-index:1 }
.obs-ruta__a:hover{ text-decoration-color:var(--petroleo) }
.obs-ruta__a:focus-visible{ outline:none }
.obs-ruta__i:has(.obs-ruta__a:focus-visible){ outline:2px solid var(--petroleo); outline-offset:-2px }
.obs-ruta__a2{ color:var(--petroleo); font-weight:600; text-underline-offset:.18em }
.obs-ruta__viz{ display:grid; gap:.6rem; align-content:center }
.obs-ruta__f{ font-family:var(--sans); font-size:.8rem; color:var(--mudo); line-height:1.45; position:relative; z-index:2 }
.obs-ruta__f a{ color:var(--petroleo) }
.obs-ruta__oxi{ margin:0; display:grid; gap:.85rem }
.obs-ruta__b{ display:grid; grid-template-columns:3.2rem minmax(0,1fr); gap:.2rem .8rem; align-items:center; font-family:var(--sans) }
.obs-ruta__b span{ font-size:.92rem; font-weight:650; color:var(--t2) }
.obs-ruta__b i{ display:block; height:2.4rem; width:var(--w); background:var(--petroleo); border-radius:2px; transform-origin:0 50% }
.obs-ruta__b b{ grid-column:2; font-family:var(--lee); font-weight:500; font-size:1.06rem; color:var(--t1) }
.obs-ruta__b--on i{ background:var(--obs-res) }
.obs-ruta__b--on b{ color:var(--obs-res) }
.obs-anim .obs-ruta__b i{ transition:transform 1s var(--obs-ease) }
.obs-anim .obs-ruta__b--on i{ transition-delay:.15s }
.obs-anim .obs-ruta__oxi:not(.visto) .obs-ruta__b i{ transform:scaleX(0) }
.obs-ruta__i:hover .obs-ruta__b--on i{ background:#9A4622 }
.obs-ruta__cus{ width:100%; max-width:15rem; height:auto; justify-self:center }
.obs-ruta__cus path{ fill:#DED6C8; stroke:var(--papel); stroke-width:2; transition:fill .25s ease }
.obs-ruta__cus path.on{ fill:var(--obs-res) }
.obs-ruta__i:hover .obs-ruta__cus path:not(.on){ fill:#CFC5B3 }
.obs-ruta__est{ width:100%; max-width:20rem; height:auto; justify-self:center; overflow:visible }
.obs-ruta__est rect{ fill:#C9D9D6; transition:fill .25s ease }
.obs-ruta__est rect.on{ fill:var(--obs-res) }
.obs-ruta__est line{ stroke:var(--obs-res); stroke-width:1.5; stroke-dasharray:4 4 }
.obs-ruta__i:hover .obs-ruta__est rect:not(.on){ fill:#9FBDB8 }
.obs-ruta__datos{ margin-top:var(--e-md); color:var(--t2); font-size:.98rem; line-height:1.7 }
.obs-ruta__datos .obs-estado{ margin-right:.6rem; vertical-align:.1em }
.obs-ruta__datos a{ color:var(--petroleo); font-weight:600; text-underline-offset:.18em }

/* ---------- Mapa del Cusco ---------- */
.obs-mapa{ --c0:#1B3346; --c1:#22505D; --c2:#2E7372; --c3:#6E9E8F; --c4:#D8CBB3 }
.obs-mapa[data-ind="rur"]{ --c0:#1F3A3B; --c1:#2B5A4B; --c2:#4D7E52; --c3:#97AA6B; --c4:#E6D69B }
.obs-mapa[data-ind="oxi"]{ --c0:#33293A; --c1:#5E3634; --c2:#985035; --c3:#D07E4E; --c4:#F2BC92 }
.obs-mapa{ background:var(--noche) }
.obs-mapa__cab{ display:grid; grid-template-columns:minmax(0,6fr) minmax(0,5fr); gap:var(--e-sm) clamp(2rem,5vw,5rem); align-items:end; margin-bottom:var(--e-md) }
.obs-mapa__cab .antetitulo{ margin:0 0 var(--e-xs) }
.obs-mapa__cab .entrada{ color:#DCE3E6; font-size:1rem }
.obs-mapa__ind{ border:0; margin:0 0 var(--e-md); padding:0; display:flex; flex-wrap:wrap; gap:.5rem }
.obs-mapa__ind label{ position:relative; display:inline-flex }
.obs-mapa__ind input{ position:absolute; inset:0; opacity:0; margin:0; cursor:pointer }
.obs-mapa__ind span{ display:inline-flex; align-items:center; min-height:2.75rem; padding:0 1.15rem; border-radius:999px; font-family:var(--sans); font-size:.93rem; font-weight:600;
  color:var(--papel); box-shadow:inset 0 0 0 1px var(--filete-piedra); transition:background-color .2s ease, color .2s ease, box-shadow .2s ease }
.obs-mapa__ind input:hover + span{ box-shadow:inset 0 0 0 1px var(--piedra) }
.obs-mapa__ind input:checked + span{ background:var(--piedra); color:var(--noche); box-shadow:none }
.obs-mapa__ind input:focus-visible + span{ outline:2px solid var(--piedra); outline-offset:3px }
.obs-mapa__grid{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(1.5rem,4vw,4rem); align-items:start }
.obs-mapa__fig{ margin:0; display:grid; gap:var(--e-sm) }
.obs-mapa__svg{ display:block; width:100%; height:auto; max-height:min(80vh,50rem); margin-inline:auto }
.obs-prov{ cursor:pointer }
.obs-prov path{ fill:var(--c0); stroke:var(--noche); stroke-width:1.4; stroke-linejoin:round; transition:fill .3s ease }
.obs-prov[data-c="1"] path{ fill:var(--c1) } .obs-prov[data-c="2"] path{ fill:var(--c2) }
.obs-prov[data-c="3"] path{ fill:var(--c3) } .obs-prov[data-c="4"] path{ fill:var(--c4) }
.obs-prov:hover path{ filter:brightness(1.12) }
.obs-prov:focus{ outline:none }
.obs-mapa__sel{ fill:none; stroke:var(--papel); stroke-width:3; stroke-linejoin:round; pointer-events:none }
.obs-mapa__sel.foco{ stroke-width:5; stroke:#FFFFFF }
.obs-mapa__rot text{ font-family:var(--sans); font-size:15px; font-weight:650; fill:var(--papel); text-anchor:middle; dominant-baseline:middle;
  paint-order:stroke; stroke:rgba(10,26,47,.85); stroke-width:3.5px; stroke-linejoin:round; pointer-events:none }
.obs-mapa__rot text.on{ font-size:17px }
.obs-mapa__rot text[data-c="3"], .obs-mapa__rot text[data-c="4"]{ fill:var(--noche); stroke:none }
.obs-mapa__leyt{ font-family:var(--sans); font-size:.86rem; font-weight:650; color:var(--piedra); margin-bottom:.45rem }
.obs-mapa__ley ol{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:3px }
.obs-mapa__ley li{ display:grid; gap:.3rem; font-family:var(--sans); font-size:.76rem; color:var(--suave-claro); line-height:1.3 }
.obs-mapa__m{ display:block; height:.6rem; border-radius:1px; background:var(--c0); transition:background-color .3s ease }
.obs-mapa__m[data-c="1"]{ background:var(--c1) } .obs-mapa__m[data-c="2"]{ background:var(--c2) }
.obs-mapa__m[data-c="3"]{ background:var(--c3) } .obs-mapa__m[data-c="4"]{ background:var(--c4) }
.obs-mapa__cap{ font-family:var(--sans); font-size:.8rem; color:var(--suave-claro); line-height:1.5 }
.obs-mapa__cap a{ color:var(--piedra) }
.obs-mapa__lado{ display:grid; gap:var(--e-md); align-content:start }
@media (min-width:64rem){ .obs-mapa__lado{ position:sticky; top:calc(var(--alto-nav) + 1rem) } }

.obs-ficha{ border-top:1px solid var(--filete-piedra); padding-top:var(--e-sm); display:grid; gap:.35rem }
.obs-ficha__k{ font-family:var(--sans); font-size:.8rem; color:var(--suave-claro) }
.obs-ficha__n{ font-family:var(--lee); font-weight:500; font-size:clamp(1.5rem,1.2rem + 1vw,2rem); line-height:1.1; color:var(--papel) }
.obs-ficha__v{ font-family:var(--sans); color:#DCE3E6; margin-top:.35rem }
.obs-ficha__v b{ font-family:var(--lee); font-weight:500; font-size:clamp(2.3rem,1.8rem + 1.6vw,3.1rem); line-height:1; color:var(--c4); letter-spacing:-.02em; margin-right:.25rem; font-variant-numeric:tabular-nums lining-nums }
.obs-mapa[data-ind="matr"] .obs-ficha__v b{ color:var(--piedra) }
.obs-ficha__r{ font-family:var(--sans); font-size:.86rem; color:var(--suave-claro) }
.obs-ficha__dl{ margin:.6rem 0 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 1.25rem }
.obs-ficha__dl > div{ padding:.55rem 0; border-top:1px solid var(--filete-oscuro) }
.obs-ficha__dl dt{ font-family:var(--sans); font-size:.76rem; color:var(--suave-claro) }
.obs-ficha__dl dd{ margin:.1rem 0 0; font-family:var(--sans); font-size:.8rem; color:var(--suave-claro) }
.obs-ficha__dl dd b{ font-family:var(--lee); font-weight:500; font-size:1.15rem; color:var(--papel); margin-right:.2rem }
.obs-ficha__dl > div.on dt{ color:var(--piedra); font-weight:650 }
.obs-ficha__a{ justify-self:start; display:inline-block; line-height:1.3; padding-block:.78rem !important; margin-top:.35rem; padding:0 1.1rem; border-radius:999px;
  background:var(--piedra); color:var(--noche); font-family:var(--sans); font-weight:650; font-size:.9rem; text-decoration:none; transition:background-color .2s ease }
.obs-ficha__a:hover{ background:var(--papel) }
.obs-anim .obs-ficha [data-f]{ transition:opacity .15s ease }
.obs-ficha.cambia [data-f]{ opacity:.35 }

.obs-rk__t{ font-family:var(--sans); font-size:.9rem; font-weight:650; color:var(--piedra); margin-bottom:.5rem }
.obs-rk__l{ list-style:none; margin:0; padding:0; border-top:1px solid var(--filete-oscuro) }
.obs-rk__l a{ display:grid; grid-template-columns:minmax(7rem,9rem) minmax(0,1fr) minmax(4.5rem,auto); gap:.75rem; align-items:center; min-height:2.3rem;
  padding:.1rem .4rem; border-bottom:1px solid var(--filete-oscuro); color:var(--papel); text-decoration:none; font-family:var(--sans); font-size:.88rem; transition:background-color .15s ease }
.obs-rk__l a:hover, .obs-rk__l li.on a{ background:rgba(216,203,179,.09) }
.obs-rk__l li.on .obs-rk__n{ font-weight:700 }
.obs-rk__l a:focus-visible{ outline:2px solid var(--piedra); outline-offset:-2px }
.obs-rk__b{ height:.55rem; background:rgba(216,203,179,.07); border-radius:1px; overflow:hidden }
.obs-rk__b i{ display:block; height:100%; background:var(--c0); border-radius:1px }
.obs-rk__b i[data-c="1"]{ background:var(--c1) } .obs-rk__b i[data-c="2"]{ background:var(--c2) }
.obs-rk__b i[data-c="3"]{ background:var(--c3) } .obs-rk__b i[data-c="4"]{ background:var(--c4) }
.obs-anim .obs-rk__b i{ transition:width .45s var(--obs-ease), background-color .3s ease }
.obs-rk__v{ text-align:right; font-variant-numeric:tabular-nums lining-nums; color:#DCE3E6; white-space:nowrap }
.obs-rk__nota{ font-family:var(--sans); font-size:.78rem; color:var(--suave-claro); margin-top:.6rem; line-height:1.45 }
.obs-rk__nota a{ color:var(--piedra); text-underline-offset:.18em }

/* Ubicador en la cabecera de cada ficha provincial */
.obs-cab--ficha .obs-cab__in{ grid-template-columns:minmax(0,1fr) minmax(9rem,15rem); column-gap:clamp(1.5rem,5vw,5rem) }
.obs-cab--ficha .obs-cab__in > *{ grid-column:1 }
.obs-cab--ficha .obs-ubica{ grid-column:2; grid-row:2 / span 4; align-self:end }
.obs-ubica{ margin:0; display:grid; gap:.4rem }
.obs-ubica svg{ width:100%; height:auto; display:block }
.obs-ubica path{ fill:rgba(216,203,179,.14); stroke:var(--noche); stroke-width:2 }
.obs-ubica path.on{ fill:var(--obs-res-claro) }
.obs-ubica circle{ fill:var(--noche); stroke:var(--papel); stroke-width:3 }
.obs-ubica figcaption{ font-family:var(--sans); font-size:.78rem; color:var(--suave-claro) }

/* ---------- Obras por Impuestos: comparador ---------- */
.obs-comp{ display:grid; gap:var(--e-sm) }
.obs-comp__modo{ display:inline-flex; flex-wrap:wrap; gap:0; justify-self:start; border-radius:999px; box-shadow:inset 0 0 0 1px var(--filete-firme); padding:3px }
.obs-comp__modo button, .obs-filtro button{ font:inherit; font-family:var(--sans); font-size:.86rem; font-weight:600; color:var(--t1); background:transparent; border:0;
  min-height:2.5rem; padding:0 1rem; border-radius:999px; cursor:pointer; transition:background-color .2s ease, color .2s ease }
.obs-comp__modo button[aria-pressed="true"]{ background:var(--noche); color:var(--papel) }
.obs-comp__modo button:focus-visible, .obs-filtro button:focus-visible{ outline:2px solid var(--petroleo); outline-offset:2px }
.obs-comp__l{ list-style:none; margin:0; padding:0; display:grid; gap:1.4rem; font-family:var(--sans) }
.obs-comp__f{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.45rem 1rem; align-items:end }
.obs-comp__k{ font-size:.9rem; color:var(--t2) }
.obs-comp__n{ grid-row:1; grid-column:2; font-family:var(--lee); font-size:clamp(1.1rem,1rem + .5vw,1.4rem); font-weight:500; color:var(--t1); white-space:nowrap; text-align:right }
.obs-comp__f--on .obs-comp__n{ color:var(--obs-res) }
.obs-comp__pista{ grid-column:1 / -1; position:relative; display:block; height:2.6rem; background:var(--obs-fondo-barra); border-radius:2px }
.obs-comp__v{ position:absolute; inset:0; display:block; background:var(--petroleo); border-radius:2px; transform-origin:0 50%; transform:scaleX(var(--w)) }
.obs-comp__f--on .obs-comp__v{ background:var(--obs-res) }
.obs-anim .obs-comp__v{ transition:transform 1.1s var(--obs-ease) }
.obs-anim .obs-comp__f--on .obs-comp__v{ transition-delay:.2s }
.obs-anim .obs-comp:not(.visto) .obs-comp__v{ transform:scaleX(0) }
.obs-comp__set{ position:absolute; top:-.35rem; bottom:-.35rem; left:var(--x); width:2px; background:var(--noche); font-weight:500 }
.obs-comp__set span{ position:absolute; top:calc(100% + .3rem); right:0; white-space:nowrap; font-family:var(--sans); font-size:.76rem; color:var(--mudo) }
.obs-comp__f--on{ padding-bottom:1.2rem }
.obs-comp__u{ position:absolute; top:0; bottom:0; left:var(--x); width:2px; margin-left:-1px; background:var(--papel); opacity:0; transition:opacity .25s ease }
.obs-comp__u span{ position:absolute; top:calc(100% + .3rem); left:50%; transform:translateX(-50%); font-family:var(--sans); font-size:.78rem; font-weight:700; color:var(--obs-res) }
.obs-comp[data-modo="veces"] .obs-comp__u{ opacity:1 }
.obs-comp[data-modo="veces"] .obs-comp__set{ opacity:0 }
.obs-comp__dif{ font-family:var(--sans); font-size:.9rem; color:var(--t2); border-top:1px solid var(--filete); padding-top:.75rem }

/* Filtro por sector */
.obs-filtro{ display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:var(--e-sm) }
.obs-filtro button{ font-size:.82rem; min-height:2.35rem; padding:0 .85rem; box-shadow:inset 0 0 0 1px var(--filete-firme) }
.obs-filtro button:hover{ box-shadow:inset 0 0 0 1px var(--petroleo); color:var(--petroleo) }
.obs-filtro button[aria-pressed="true"]{ background:var(--petroleo); color:var(--papel); box-shadow:none }
.obs-filtro__res{ font-family:var(--sans); font-size:.92rem; color:var(--t1); min-height:1.5em; margin-bottom:var(--e-sm) }
.obs-filtro__res:empty{ display:none }
.obs-barra.cero{ opacity:.45 }

/* ---------- Buscador de la cartera ---------- */
.obs-busca{ background:var(--noche) }
.obs-busca__f{ display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr); gap:var(--e-sm); align-items:end; margin-bottom:var(--e-sm) }
.obs-busca__f > div{ display:grid; gap:.35rem }
.obs-busca__f label{ font-family:var(--sans); font-size:.84rem; font-weight:650; color:var(--piedra) }
.obs-busca__f input, .obs-busca__f select{ font:inherit; font-family:var(--sans); font-size:1rem; color:var(--papel); background:var(--noche-2); border:1px solid var(--filete-piedra);
  border-radius:4px; min-height:3.1rem; padding:0 .9rem; width:100%; transition:border-color .15s ease }
.obs-busca__f select{ appearance:none; -webkit-appearance:none; padding-right:2.4rem; cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--piedra) 50%),linear-gradient(135deg,var(--piedra) 50%,transparent 50%);
  background-position:calc(100% - 1.2rem) 55%,calc(100% - .85rem) 55%; background-size:.35rem .35rem; background-repeat:no-repeat }
.obs-busca__f input::placeholder{ color:rgba(197,211,213,.65) }
.obs-busca__f input:hover, .obs-busca__f select:hover{ border-color:var(--piedra) }
.obs-busca__f input:focus-visible, .obs-busca__f select:focus-visible{ outline:2px solid var(--piedra); outline-offset:2px; border-color:var(--piedra) }
.obs-busca__q input{ font-size:1.08rem }
.obs-busca__res{ font-family:var(--sans); font-size:.95rem; color:#DCE3E6; min-height:1.5em; margin:var(--e-sm) 0 }
.obs-busca__res b{ color:var(--papel); font-weight:650 }
.obs-busca__t{ width:100%; border-collapse:collapse; font-family:var(--sans); font-size:.92rem; line-height:1.4 }
.obs-busca__t thead th{ text-align:left; font-size:.8rem; font-weight:650; color:var(--suave-claro); padding:.5rem .75rem .5rem 0; border-bottom:1px solid var(--filete-piedra) }
.obs-busca__t th, .obs-busca__t td{ padding:.75rem .75rem .75rem 0; vertical-align:top; border-bottom:1px solid var(--filete-oscuro); color:#DCE3E6; text-align:left }
.obs-busca__t tbody th{ font-weight:400; max-width:34rem }
.obs-busca__t tbody th a{ color:var(--papel); font-family:var(--lee); font-size:1rem; text-decoration:underline; text-decoration-color:var(--filete-piedra); text-underline-offset:.18em }
.obs-busca__t tbody th a:hover{ text-decoration-color:var(--piedra) }
.obs-busca__t small{ display:block; margin-top:.2rem; font-size:.78rem; color:var(--suave-claro) }
.obs-busca__t thead .num{ font-family:var(--sans); color:var(--suave-claro) }
.obs-busca__t .num{ text-align:right; white-space:nowrap; padding-right:0; font-family:var(--lee); color:var(--papel) }
.obs-busca__t mark{ background:rgba(240,180,138,.28); color:inherit; border-radius:2px }
.obs-busca__mas{ margin-top:var(--e-sm); font:inherit; font-family:var(--sans); font-weight:650; font-size:.92rem; min-height:2.75rem; padding:0 1.2rem; border-radius:999px;
  border:0; background:var(--piedra); color:var(--noche); cursor:pointer }
.obs-busca__mas:hover{ background:var(--papel) }
.obs-busca__mas:focus-visible{ outline:2px solid var(--piedra); outline-offset:3px }
.obs-busca__sinjs{ color:#DCE3E6 }
.obs-busca__sinjs a, .obs-busca .obs-fuente a{ color:var(--piedra) }
.obs-busca .obs-fuente{ color:var(--suave-claro) }
.obs-js .obs-busca__sinjs{ display:none }

/* ---------- Manda el más bajo (IDT-5 y Barómetro) ---------- */
.obs-ej{ background:var(--noche) }
.obs-ej__rot{ color:var(--obs-res-claro); font-weight:650 }
.obs-ej .entrada{ color:#DCE3E6 }
.obs-min{ display:grid; gap:var(--e-lg) }
.obs-min__ctl{ position:relative; display:grid; grid-template-columns:minmax(6rem,9rem) minmax(0,1fr) minmax(5rem,8rem); column-gap:clamp(.75rem,2vw,1.25rem); row-gap:.2rem; align-items:center }
.obs-min__escala{ display:contents }
.obs-min__escala > div{ grid-column:2; display:flex; justify-content:space-between; padding:0 .45rem; font-family:var(--sans); font-size:.74rem; color:var(--suave-claro) }
.obs-min__escala > div span{ width:1.5rem; text-align:center }
.obs-min__fila{ display:contents }
.obs-min__fila > *{ grid-row:var(--r) }
.obs-min__fila label{ grid-column:1; font-family:var(--sans); font-size:.95rem; font-weight:600; color:var(--papel); transition:color .2s ease }
.obs-min__fila.es-min label, .obs-min__fila.es-min output b{ color:var(--obs-res-claro) }
.obs-min__pista{ grid-column:2; position:relative; height:2.75rem; display:flex; align-items:center }
.obs-min__pista::before{ content:""; position:absolute; left:.75rem; right:.75rem; height:.5rem; border-radius:999px; background:rgba(216,203,179,.15) }
.obs-min__relleno{ position:absolute; left:.75rem; height:.5rem; border-radius:999px; background:var(--piedra); width:calc((var(--v) - 1) / 4 * (100% - 1.5rem)); transition:width .2s ease, background-color .2s ease }
.obs-min__fila.es-min .obs-min__relleno{ background:var(--obs-res-claro) }
.obs-min__pista input{ position:relative; z-index:1; width:100%; height:2.75rem; margin:0; background:transparent; -webkit-appearance:none; appearance:none; cursor:pointer }
.obs-min__pista input::-webkit-slider-runnable-track{ height:2.75rem; background:transparent; border:0 }
.obs-min__pista input::-moz-range-track{ height:2.75rem; background:transparent; border:0 }
.obs-min__pista input::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:1.5rem; height:1.5rem; margin-top:.625rem; border-radius:50%;
  background:var(--papel); border:3px solid var(--noche); box-shadow:0 0 0 1px var(--piedra); transition:transform .15s ease }
.obs-min__pista input::-moz-range-thumb{ width:1.5rem; height:1.5rem; border-radius:50%; background:var(--papel); border:3px solid var(--noche); box-shadow:0 0 0 1px var(--piedra) }
.obs-min__pista input:hover::-webkit-slider-thumb{ transform:scale(1.12) }
.obs-min__pista input:focus{ outline:none }
.obs-min__pista input:focus-visible::-webkit-slider-thumb{ box-shadow:0 0 0 3px var(--noche),0 0 0 5px var(--piedra) }
.obs-min__pista input:focus-visible::-moz-range-thumb{ box-shadow:0 0 0 3px var(--noche),0 0 0 5px var(--piedra) }
.obs-min__fila output{ grid-column:3; font-family:var(--sans); font-size:.8rem; color:var(--suave-claro); white-space:nowrap }
.obs-min__fila output b{ font-family:var(--lee); font-weight:500; font-size:1.35rem; color:var(--papel); margin-right:.3rem; vertical-align:-.08em }
.obs-min__linea{ grid-column:2; position:relative; align-self:stretch; pointer-events:none; z-index:0 }
.obs-min__linea::before{ content:""; position:absolute; top:.4rem; bottom:.4rem; width:2px; margin-left:-1px; background:var(--obs-res-claro);
  left:calc(.75rem + (var(--m) - 1) / 4 * (100% - 1.5rem)); transition:left .25s var(--obs-ease) }
.obs-min__linea span{ position:absolute; bottom:-1.15rem; left:calc(.75rem + (var(--m) - 1) / 4 * (100% - 1.5rem)); transform:translateX(-50%);
  font-family:var(--sans); font-size:.74rem; font-weight:650; color:var(--obs-res-claro); transition:left .25s var(--obs-ease); white-space:nowrap }
.obs-min__res{ border-top:1px solid var(--filete-piedra); padding-top:var(--e-sm); display:grid; gap:.5rem; margin-top:.75rem }
.obs-min__k{ font-family:var(--sans); font-size:.84rem; font-weight:650; color:var(--piedra) }
.obs-min__n{ font-family:var(--sans); color:var(--papel); display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem .7rem }
.obs-min__n span{ font-size:1.15rem; font-weight:650 }
.obs-min__n b{ font-family:var(--lee); font-weight:500; font-size:clamp(3.4rem,2.6rem + 2.6vw,4.8rem); line-height:1; color:var(--obs-res-claro) }
.obs-min__n small{ font-size:1.1rem; color:#DCE3E6 }
.obs-min__t, .obs-min__p{ color:#DCE3E6; line-height:1.6; max-width:58ch }
.obs-min__t b, .obs-min__p b{ color:var(--papel) }
.obs-min__alerta{ font-family:var(--sans); font-size:.92rem; font-weight:600; color:var(--obs-res-claro); line-height:1.5; max-width:58ch; padding-top:.5rem; border-top:1px solid var(--filete-oscuro) }
.obs-min__alerta[hidden]{ display:none }

/* ---------- Adaptación ---------- */
@media (max-width:63.99rem){
  .obs-ap0__dato{ grid-template-columns:minmax(0,1fr); row-gap:var(--e-lg) }
  .obs-peru{ justify-items:start }
  .obs-peru__svg{ max-width:20rem }
  .obs-mapa__grid{ grid-template-columns:minmax(0,1fr) }
  .obs-mapa__cab{ grid-template-columns:minmax(0,1fr) }
}
@media (max-width:47.99rem){
  .obs-ap0__top{ grid-template-columns:minmax(0,1fr); row-gap:var(--e-sm) }
  .obs-ap0__lede{ grid-column:1; grid-row:auto }
  .obs-ruta__i{ grid-template-columns:minmax(0,1fr); gap:var(--e-md) }
  .obs-ruta__i--cus .obs-ruta__txt{ order:0 }
  .obs-ruta__viz{ max-width:26rem }
  .obs-ruta__cus{ max-width:11rem; justify-self:start }
  .obs-ruta__est{ max-width:15rem; justify-self:start }
  .obs-busca__f{ grid-template-columns:minmax(0,1fr) minmax(0,1fr) }
  .obs-busca__q{ grid-column:1 / -1 }
  .obs-busca__t thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%) }
  .obs-busca__t tr{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.15rem 1rem; padding:.8rem 0; border-bottom:1px solid var(--filete-oscuro) }
  .obs-busca__t th, .obs-busca__t td{ border:0; padding:0 }
  .obs-busca__t tbody th{ grid-column:1 / -1 }
  .obs-busca__t td:nth-child(2), .obs-busca__t td:nth-child(3){ font-size:.8rem; color:var(--suave-claro) }
  .obs-busca__t td:nth-child(3){ grid-column:1 }
  .obs-busca__t td.num{ grid-column:2; grid-row:2 / span 2; align-self:center }
  .obs-cab--ficha .obs-cab__in{ grid-template-columns:minmax(0,1fr) }
  .obs-cab--ficha .obs-ubica{ grid-column:1; grid-row:auto; width:8.5rem; grid-template-columns:8.5rem; margin-top:var(--e-xs) }
  .obs-peru__svg{ max-width:17rem }
}
@media (max-width:40rem){
  .obs-mapa__rot{ display:none }
  .obs-mapa__ley ol{ gap:2px }
  .obs-mapa__ley li{ font-size:.7rem }
  .obs-ficha__dl{ grid-template-columns:minmax(0,1fr) minmax(0,1fr) }
  .obs-min__ctl{ grid-template-columns:minmax(5.5rem,6.5rem) minmax(0,1fr) 2.2rem; column-gap:.6rem }
  .obs-min__fila output small{ display:none }
  .obs-min__fila label{ font-size:.86rem }
  .obs-comp__modo button{ padding:0 .8rem; font-size:.82rem }
}
@media (prefers-reduced-motion:reduce){
  .obs *, .obs *::before, .obs *::after{ transition:none !important; animation:none !important }
}

/* ======================================================================== v28
   Fuentes plegadas, perfil de la provincia, datos departamentales con su propio gráfico, índice de provincias con barra.
   Sin rayas laterales, sin cajas tintadas, sin píldoras de estado. */

/* ---------- Fuente: una línea en pantalla, el detalle en un desplegable ---------- */
.obs-fte{ margin-top:var(--e-sm); font-family:var(--sans); font-size:.82rem; line-height:1.5; color:var(--mudo); max-width:78ch }
.obs-fte summary{ cursor:pointer; list-style:none; display:flex; flex-wrap:wrap; align-items:center; gap:.15rem .9rem; min-height:2.75rem; width:fit-content; max-width:100% }
.obs-fte summary::-webkit-details-marker{ display:none }
.obs-fte__m{ display:inline-flex; align-items:center; gap:.45rem; font-weight:650; color:var(--petroleo); text-decoration:underline; text-decoration-color:var(--filete-firme); text-underline-offset:.2em }
.obs-fte__m::after{ content:""; width:.4rem; height:.4rem; margin-bottom:.15rem; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); transition:transform .2s ease }
.obs-fte[open] .obs-fte__m::after{ transform:rotate(-135deg); margin-bottom:-.2rem }
.obs-fte summary:hover .obs-fte__m{ text-decoration-color:currentColor }
.obs-fte summary:focus-visible{ outline:2px solid var(--petroleo); outline-offset:3px; border-radius:2px }
.obs-fte__d{ padding:.2rem 0 .4rem; display:grid; gap:.45rem; max-width:72ch }
.obs-fte__d a{ color:var(--petroleo); text-underline-offset:.18em; text-decoration-thickness:1px }
.obs-anim .obs-fte[open] .obs-fte__d{ animation:obs-fte-abre .22s var(--obs-ease) }
@keyframes obs-fte-abre{ from{ opacity:0; transform:translateY(-.25rem) } to{ opacity:1; transform:none } }
.oscuro .obs-fte, .obs-busca .obs-fte, .obs-meg .obs-fte{ color:var(--suave-claro) }
.oscuro .obs-fte__m, .oscuro .obs-fte__d a, .obs-meg .obs-fte__m, .obs-meg .obs-fte__d a{ color:var(--piedra); text-decoration-color:var(--filete-piedra) }
.oscuro .obs-fte summary:focus-visible{ outline-color:var(--piedra) }
.obs-mapa__fig .obs-fte, .obs-peru .obs-fte{ margin-top:0 }
.obs-peru .obs-fte{ max-width:24rem; width:100% }
.obs-peru .obs-fte__d{ font-size:.76rem }
.obs-mapa__cap:has(> .vo:only-child){ display:contents }

/* ---------- Cómo citar, plegado ---------- */
.obs-citar{ display:block }
.obs-citar__det summary{ cursor:pointer; list-style:none; display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem 1.2rem; min-height:2.75rem; padding-block:.35rem }
.obs-citar__det summary::-webkit-details-marker{ display:none }
.obs-citar__det .obs-citar__t{ display:inline-flex; align-items:center; gap:.55rem; color:var(--petroleo); text-decoration:underline; text-decoration-color:var(--filete-firme); text-underline-offset:.22em }
.obs-citar__det .obs-citar__t::after{ content:""; width:.42rem; height:.42rem; margin-bottom:.2rem; border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor; transform:rotate(45deg); transition:transform .2s ease }
.obs-citar__det[open] .obs-citar__t::after{ transform:rotate(-135deg); margin-bottom:-.2rem }
.obs-citar__det summary:hover .obs-citar__t{ text-decoration-color:currentColor }
.obs-citar__det summary:focus-visible{ outline:2px solid var(--petroleo); outline-offset:3px }
.obs-citar__m{ font-family:var(--sans); font-size:.86rem; color:var(--mudo) }
.obs-citar__in{ display:grid; gap:.6rem; padding:.6rem 0 .2rem; max-width:72ch }
.obs-citar__d{ padding-left:0; margin-top:var(--e-sm) }

/* ---------- Mapa: leyenda que aísla un tramo ---------- */
.obs-mapa__ley li{ cursor:default }
.obs-mapa[data-tramo] .obs-prov path{ transition:fill .3s ease, opacity .2s ease; opacity:.25 }
.obs-mapa[data-tramo="0"] .obs-prov[data-c="0"] path, .obs-mapa[data-tramo="1"] .obs-prov[data-c="1"] path,
.obs-mapa[data-tramo="2"] .obs-prov[data-c="2"] path, .obs-mapa[data-tramo="3"] .obs-prov[data-c="3"] path,
.obs-mapa[data-tramo="4"] .obs-prov[data-c="4"] path{ opacity:1 }
.obs-mapa__ley li:hover{ color:var(--papel) }
.obs-prov:focus-visible path{ filter:brightness(1.18) }

/* ---------- Datos que solo existen por departamento ---------- */
.obs-reg{ grid-template-columns:minmax(0,5fr) minmax(0,4fr) minmax(0,4fr) }
.obs-reg__i{ border-top:0; padding-top:0 }
.obs-reg__g{ margin-top:.35rem }
.obs-barras--mini .obs-barra{ grid-template-columns:minmax(6.5rem,9rem) minmax(0,1fr) auto }
.obs-barras--mini .obs-barra__k{ font-size:.82rem }
.obs-reg__waf{ margin:.35rem 0 0; display:grid; gap:.45rem }
.obs-reg__cas{ display:grid; grid-template-columns:repeat(13,minmax(0,1.5rem)); gap:4px }
.obs-reg__cas i, .obs-reg__ley i{ display:block; aspect-ratio:1; border-radius:2px; background:var(--obs-res) }
.obs-reg__cas i.lat, .obs-reg__ley i.lat{ background:transparent; box-shadow:inset 0 0 0 1.5px var(--obs-res) }
.obs-reg__ley{ display:flex; gap:1rem; font-family:var(--sans); font-size:.8rem; color:var(--mudo) }
.obs-reg__ley > span{ display:inline-flex; align-items:center; gap:.4rem }
.obs-reg__ley i{ width:.8rem }
.obs-anim .obs-reg__cas i{ transition:transform .35s var(--obs-ease), opacity .35s ease; transition-delay:calc(var(--d, 0) * 40ms) }
.obs-anim .obs-reg__waf:not(.visto) .obs-reg__cas i{ transform:scale(.3); opacity:0 }
.obs-reg__cas i:nth-child(2){--d:1} .obs-reg__cas i:nth-child(3){--d:2} .obs-reg__cas i:nth-child(4){--d:3} .obs-reg__cas i:nth-child(5){--d:4}
.obs-reg__cas i:nth-child(6){--d:5} .obs-reg__cas i:nth-child(7){--d:6} .obs-reg__cas i:nth-child(8){--d:7} .obs-reg__cas i:nth-child(9){--d:8}
.obs-reg__cas i:nth-child(10){--d:9} .obs-reg__cas i:nth-child(11){--d:10} .obs-reg__cas i:nth-child(12){--d:11} .obs-reg__cas i:nth-child(13){--d:12}

/* ---------- Índice de provincias con barra de matrícula ---------- */
.obs-fichas a{ grid-template-columns:minmax(0,1fr); row-gap:.3rem }
.obs-fichas__b{ display:block; height:.35rem; width:var(--w); min-width:2px; background:var(--petroleo); border-radius:1px; opacity:.55; transform-origin:0 50%; transition:opacity .2s ease }
.obs-fichas a:hover .obs-fichas__b, .obs-fichas a:focus-visible .obs-fichas__b{ opacity:1 }
.obs-anim .obs-fichas__b{ transition:transform .8s var(--obs-ease), opacity .2s ease }
.obs-anim .obs-fichas:not(.visto) .obs-fichas__b{ transform:scaleX(0) }

/* ---------- Perfil de la provincia (fichas) ---------- */
.obs-pf__l{ list-style:none; margin:0; padding:0; display:grid; gap:clamp(1.1rem,2.4vw,1.6rem) }
.obs-pf__f{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:.3rem clamp(1.25rem,4vw,3.5rem); align-items:center;
  padding-bottom:clamp(1.1rem,2.4vw,1.6rem); border-bottom:1px solid var(--filete) }
.obs-pf__k{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.1rem 1rem; align-items:baseline; font-family:var(--sans) }
.obs-pf__k span{ font-size:.92rem; color:var(--t2) }
.obs-pf__k b{ grid-row:1 / span 2; grid-column:2; font-family:var(--lee); font-weight:500; font-size:clamp(1.5rem,1.2rem + 1vw,2rem); line-height:1; color:var(--obs-res);
  font-variant-numeric:tabular-nums lining-nums; text-align:right }
.obs-pf__k small{ font-size:.8rem; color:var(--mudo) }
.obs-pf__pista{ position:relative; height:2.4rem; margin-inline:.6rem }
.obs-pf__pista::before{ content:""; position:absolute; left:0; right:0; top:50%; height:1px; background:var(--filete-firme) }
.obs-pf__pista i, .obs-pf__yo{ position:absolute; top:50%; left:var(--x); border-radius:50%; transform:translate(-50%,-50%) }
.obs-pf__pista i{ width:.8rem; height:.8rem; background:var(--petroleo); opacity:.35; transition:opacity .15s ease, transform .15s ease }
.obs-pf__pista i:hover{ opacity:1; transform:translate(-50%,-50%) scale(1.35) }
.obs-pf__yo{ width:1.35rem; height:1.35rem; background:var(--obs-res); box-shadow:0 0 0 3px var(--blanco); z-index:2 }
.obs-pf__pista u{ position:absolute; top:.1rem; bottom:.1rem; left:var(--x); width:2px; margin-left:-1px; background:var(--tinta-2); text-decoration:none }
.obs-pf__pista u span{ position:absolute; bottom:calc(100% + .1rem); left:50%; transform:translateX(-50%); white-space:nowrap; font-family:var(--sans); font-size:.7rem; color:var(--mudo) }
.obs-pf__ej{ grid-column:2; display:flex; justify-content:space-between; margin-inline:.6rem; font-family:var(--sans); font-size:.72rem; color:var(--mudo); font-variant-numeric:tabular-nums }
.obs-pf .obs-fte{ margin-top:var(--e-md) }
.obs-anim .obs-pf__pista i, .obs-anim .obs-pf__yo{ transition:left .9s var(--obs-ease), opacity .4s ease, transform .15s ease; transition-delay:calc(var(--i, 0) * 90ms) }
.obs-anim .obs-pf__l:not(.visto) .obs-pf__pista i, .obs-anim .obs-pf__l:not(.visto) .obs-pf__yo{ left:0; opacity:0 }

@media (max-width:63.99rem){
  .obs-reg{ grid-template-columns:minmax(0,1fr); row-gap:var(--e-lg) }
}
@media (max-width:47.99rem){
  .obs-pf__f{ grid-template-columns:minmax(0,1fr) }
  .obs-pf__ej{ grid-column:1 }
  .obs-pf__pista{ margin-top:.5rem }
}
@media (prefers-reduced-motion:reduce){
  .obs-fte__m::after, .obs-citar__det .obs-citar__t::after{ transition:none }
  .obs-fte[open] .obs-fte__d{ animation:none }
}
