/* 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 }
}
/* ======================================================================== v29
   El Observatorio en el lenguaje del Ecosistema: foto real a sangre con velos, capítulos numerados,
   ritmo oscuro y claro, tipografía grande. Abre con el territorio y la escuela; IDT-5 y Barómetro al centro;
   Obras por Impuestos queda como un conjunto de datos. Mapas con relieve de sombra, rosa del norte, escala
   y ubicador; perfiles con eje legible; deslizadores con el barril de tablas. */
.obs{ --obs-sol:#D9A441; --obs-sol-2:#E8C270; --obs-hondo:#06111F }
/* ---------- Foto de fondo a sangre ---------- */
.obs-fondo{ position:absolute; inset:0; z-index:-2; overflow:hidden }
.obs-fondo picture, .obs-fondo img{ display:block; width:100%; height:100% }
.obs-fondo img{ object-fit:cover; object-position:var(--pos,50% 50%); scale:1.06 }
@supports (animation-timeline:view()){
  .obs-fondo img{ animation:obs-paralaje linear both; animation-timeline:view() }
}
@keyframes obs-paralaje{ from{ transform:translateY(-2.5%) } to{ transform:translateY(2.5%) } }
.obs-fondo--tenue img{ opacity:.34 }
.obs-sec--foto{ position:relative; isolation:isolate; overflow:clip; background:var(--obs-hondo) }
.obs-sec--foto::after{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg, rgba(6,17,31,.9) 0, rgba(6,17,31,.55) 30%, rgba(6,17,31,.62) 70%, rgba(6,17,31,.94) 100%) }
.obs-sec__pie, .obs-cab__pie, .obs-h0__pie{ position:absolute; right:var(--canal); bottom:.85rem; z-index:1; margin:0; max-width:34ch; text-align:right;
  font-family:var(--sans); font-size:.74rem; line-height:1.4; color:rgba(220,227,230,.78); text-shadow:0 1px 8px rgba(6,17,31,.8) }
/* Rótulo de capítulo, como en el Ecosistema: número en círculo y nombre */
.obs-cap{ display:flex; align-items:center; gap:.8rem; margin:0 0 var(--e-md); font-family:var(--sans); font-size:.86rem; font-weight:700; color:var(--obs-sol-2) }
.obs-cap__n{ flex:0 0 auto; display:grid; place-items:center; width:2.3rem; height:2.3rem; border-radius:50%; background:var(--obs-sol); color:var(--tinta);
  font-size:.86rem; box-shadow:0 0 0 6px rgba(217,164,65,.18) }
.obs-cap--claro{ color:var(--obs-res) }
.obs-cap--claro .obs-cap__n{ background:var(--obs-res); color:var(--papel); box-shadow:0 0 0 6px rgba(180,83,42,.14) }
.obs-boton-sol, .oscuro .obs-boton-sol{ background:var(--obs-sol); border-color:var(--obs-sol); color:var(--tinta) }
.obs-boton-sol:hover, .oscuro .obs-boton-sol:hover{ background:var(--obs-sol-2); border-color:var(--obs-sol-2); color:var(--tinta) }
/* ---------- Cabeceras con foto (Cusco, IDT-5, Barómetro) ---------- */
.obs-cab--foto{ isolation:isolate; min-height:min(88vh, 44rem); display:grid; align-items:end; background:var(--obs-hondo);
  padding-bottom:clamp(3.5rem,6vw,5rem) }
.obs-cab--foto::after{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(90deg, rgba(6,17,31,.94) 0, rgba(6,17,31,.82) 34%, rgba(6,17,31,.35) 68%, rgba(6,17,31,.25)),
             linear-gradient(0deg, rgba(6,17,31,.92) 0, rgba(6,17,31,0) 42%), linear-gradient(180deg, rgba(6,17,31,.6) 0, rgba(6,17,31,0) 22%) }
.obs-cab--foto .obs-cab__in{ z-index:1 }
.obs-cab--foto .obs-cab__t{ font-family:var(--sans); font-weight:650; font-size:clamp(2.3rem,1.3rem + 3.6vw,4.6rem); line-height:1.02; letter-spacing:-.03em; max-width:17ch;
  text-shadow:0 2px 24px rgba(6,17,31,.5) }
.obs-cab--foto .obs-cab__lede{ max-width:52ch; color:#E4EAEC; text-shadow:0 1px 14px rgba(6,17,31,.6) }
.obs-cab--foto .obs-cab__marca{ border-bottom-color:rgba(216,203,179,.3); max-width:42rem }
/* Cabecera de la ficha provincial: el Cusco grande y translúcido, en capa */
.obs-cab--ficha{ isolation:isolate }
.obs-cab--ficha::before{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(48% 70% at 82% 46%, rgba(240,180,138,.12), transparent 70%) }
.obs-cab--ficha .obs-cab__t{ font-family:var(--sans); font-weight:650; font-size:clamp(2.4rem,1.4rem + 3.6vw,4.8rem); letter-spacing:-.03em; line-height:1 }
@media (min-width:48rem){
  .obs-cab--ficha .obs-cab__in{ grid-template-columns:minmax(0,1fr) minmax(14rem,26rem) }
  .obs-cab--ficha .obs-ubica{ grid-row:1 / span 6; align-self:center }
}
.obs-ubica__provs{ filter:drop-shadow(0 0 1px rgba(216,203,179,.5)) drop-shadow(0 18px 26px rgba(0,0,0,.5)) }
.obs-ubica path{ fill:rgba(216,203,179,.13); stroke:rgba(10,26,47,.9); stroke-width:2.2 }
.obs-ubica path.on{ fill:var(--obs-res-claro) }
.obs-ubica circle{ fill:var(--noche); stroke:var(--papel); stroke-width:4 }
/* ---------- Portada · apertura ---------- */
.obs-h0{ position:relative; isolation:isolate; overflow:clip; color:var(--papel); background:var(--obs-hondo);
  min-height:min(100vh, 62rem); display:grid; align-items:end; padding:calc(var(--alto-nav) + clamp(1.5rem,3vw,2.5rem)) 0 clamp(3.5rem,6vw,5rem) }
.obs-h0::after{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(90deg, rgba(6,17,31,.95) 0, rgba(6,17,31,.84) 36%, rgba(6,17,31,.46) 62%, rgba(6,17,31,.62) 100%),
             linear-gradient(0deg, rgba(6,17,31,.96) 0, rgba(6,17,31,0) 38%), linear-gradient(180deg, rgba(6,17,31,.7) 0, rgba(6,17,31,0) 20%) }
.obs-h0__in{ position:relative; z-index:1 }
.obs-h0 .obs-migas ol{ margin-bottom:var(--e-md) }
.obs-h0__grid{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(2rem,5vw,5rem); align-items:center }
.obs-h0__t{ font-family:var(--sans); font-weight:650; font-size:clamp(2.4rem,1.3rem + 3.6vw,4.6rem); line-height:.98; letter-spacing:-.035em; color:var(--papel);
  max-width:14ch; text-wrap:balance; text-shadow:0 2px 28px rgba(6,17,31,.5) }
.obs-h0__nom{ display:block; font-size:max(.95rem, .2em); font-weight:700; letter-spacing:0; line-height:1.3; color:var(--obs-sol-2); margin-bottom:.9rem; text-shadow:none }
.obs-h0__lede{ font-family:var(--lee); font-size:clamp(1.02rem,.95rem + .3vw,1.2rem); line-height:1.6; color:#E1E8EA; max-width:52ch; margin-top:var(--e-md) }
.obs-h0__dato{ margin-top:clamp(1.25rem,2.6vw,1.9rem); padding:clamp(.9rem,1.6vw,1.2rem) clamp(1.1rem,2vw,1.5rem) .35rem; max-width:40rem; border-radius:var(--r-lg);
  background:rgba(6,17,31,.52); box-shadow:inset 0 0 0 1px rgba(216,203,179,.22); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px) }
.obs-h0__k{ font-family:var(--sans); font-size:.9rem; font-weight:650; line-height:1.4; color:var(--piedra) }
.obs-h0__n{ font-family:var(--lee); font-size:clamp(1.6rem,1.3rem + 1vw,2.2rem); line-height:1; color:#E1E8EA; margin:.55rem 0 .4rem; font-variant-numeric:lining-nums }
.obs-h0__n span{ font-size:clamp(3.6rem,2.6rem + 3.4vw,5.4rem); letter-spacing:-.04em; color:var(--obs-res-claro); margin-right:.12em; vertical-align:-.08em }
.obs-h0__r{ font-size:1rem; line-height:1.5; color:#E1E8EA; max-width:40ch }
.obs-h0__dato .obs-fte{ margin-top:.5rem }
.obs-h0__acc{ display:flex; flex-wrap:wrap; gap:.75rem; margin-top:var(--e-md) }
.obs-h0__fila{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:.4rem 1.25rem; align-items:center; margin-top:.35rem }
.obs-h0__fila .obs-h0__n{ margin:0; white-space:nowrap }
.obs-h0__fig{ margin:0; display:grid; gap:.75rem; justify-items:center }
.obs-h0__mapa{ width:100%; max-width:30rem; max-height:calc(100vh - 11rem); height:auto; display:block; overflow:visible }
.obs-h0__provs{ filter:drop-shadow(0 0 1.5px rgba(244,242,238,.55)) drop-shadow(0 24px 34px rgba(0,0,0,.55)) }
.obs-h0__provs path{ fill:rgba(244,242,238,.1); stroke:rgba(244,242,238,.42); stroke-width:1.6; stroke-linejoin:round; transition:fill .3s ease }
.obs-h0__provs path.may{ fill:rgba(240,180,138,.78) }
.obs-h0__provs path:hover{ fill:rgba(244,242,238,.24) }
.obs-h0__provs path.may:hover{ fill:var(--obs-res-claro) }
.obs-h0__rot text{ font-family:var(--sans); font-size:15px; font-weight:650; fill:rgba(244,242,238,.72); text-anchor:middle; dominant-baseline:middle;
  paint-order:stroke; stroke:rgba(6,17,31,.7); stroke-width:3px; pointer-events:none }
.obs-h0__rot text.may{ fill:var(--obs-hondo); stroke:none }
.obs-h0__fig figcaption{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--sans); font-size:.82rem; color:#DCE3E6 }
.obs-h0__fig figcaption i{ width:1rem; height:.65rem; border-radius:2px; background:rgba(240,180,138,.85) }
.obs-h0__corto{ margin-top:var(--e-lg); font-family:var(--sans); font-size:.8rem; color:rgba(220,227,230,.7) }
.obs-anim .obs-h0__provs path.may{ transition:fill .3s ease, opacity .8s ease; transition-delay:calc(var(--d, 0) * 1ms) }
/* ---------- Capítulo 1 · El territorio (mapa fijo que acompaña la lectura) ---------- */
.obs-te{ background:var(--papel); --t0:#E3DDD1; --t1c:#B9CBC6; --t2c:#7FA49F; --t3c:#3F7472; --t4c:#14504F }
.obs-te__cab{ max-width:50rem; margin-bottom:clamp(1.5rem,4vw,3rem) }
.obs-te__h, .obs-co__h, .obs-mide__h, .obs-pq__h{ font-family:var(--sans); font-weight:650; font-size:clamp(2rem,1.3rem + 2.6vw,3.6rem); line-height:1.03; letter-spacing:-.03em; color:var(--t1); text-wrap:balance }
.obs-te__cab .entrada, .obs-co__cab .entrada{ margin-top:var(--e-sm) }
.obs-te__grid{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(2rem,5vw,5rem); align-items:start }
.obs-te__pasos{ list-style:none; margin:0; padding:0 }
.obs-te__paso{ min-height:72vh; display:flex; flex-direction:column; justify-content:center; gap:.6rem; padding-block:2rem; transition:opacity .35s ease }
.obs-te--vivo .obs-te__paso{ opacity:.38 }
.obs-te__paso:first-child{ min-height:55vh; justify-content:flex-start; padding-top:1rem }
.obs-te__paso:last-child{ min-height:62vh }
.obs-te--vivo .obs-te__paso.on{ opacity:1 }
.obs-te__k{ font-family:var(--sans); font-size:.82rem; font-weight:700; color:var(--obs-res) }
.obs-te__paso h3{ font-family:var(--sans); font-weight:650; font-size:clamp(1.5rem,1.2rem + 1vw,2.1rem); line-height:1.1; letter-spacing:-.02em; color:var(--t1) }
.obs-te__paso > p:not(.obs-te__k){ font-size:1.08rem; line-height:1.65; color:var(--t2); max-width:44ch }
.obs-te__fig{ margin:0; position:sticky; top:calc(var(--alto-nav) + 3.6rem); display:grid; gap:.8rem }
.obs-te__marco{ position:relative; border-radius:var(--r-xl); padding:clamp(1rem,2.5vw,2rem);
  background:radial-gradient(80% 70% at 40% 40%, #FFFFFF 0, #F1EDE5 70%); box-shadow:inset 0 0 0 1px var(--filete), 0 30px 60px -40px rgba(14,23,38,.45) }
.obs-te__svg{ display:block; width:100%; height:auto; max-height:calc(100vh - var(--alto-nav) - 12rem); margin-inline:auto; overflow:visible }
.obs-te__provs{ filter:drop-shadow(0 0 1px rgba(14,23,38,.35)) drop-shadow(0 16px 22px rgba(14,23,38,.22)) }
.obs-te__provs path{ fill:var(--t0); stroke:#FFFFFF; stroke-width:1.8; stroke-linejoin:round; transition:fill .55s ease }
.obs-te[data-paso="matr"] path[data-m="1"]{ fill:var(--t1c) } .obs-te[data-paso="matr"] path[data-m="2"]{ fill:var(--t2c) }
.obs-te[data-paso="matr"] path[data-m="3"]{ fill:var(--t3c) } .obs-te[data-paso="matr"] path[data-m="4"]{ fill:var(--t4c) }
.obs-te[data-paso="rur"]{ --r0:#EDE3CF; --r1:#E3C9A1; --r2:#D9A276; --r3:#C27548; --r4:#9A4622 }
.obs-te[data-paso="rur"] path[data-r="0"]{ fill:var(--r0) } .obs-te[data-paso="rur"] path[data-r="1"]{ fill:var(--r1) }
.obs-te[data-paso="rur"] path[data-r="2"]{ fill:var(--r2) } .obs-te[data-paso="rur"] path[data-r="3"]{ fill:var(--r3) } .obs-te[data-paso="rur"] path[data-r="4"]{ fill:var(--r4) }
.obs-te[data-paso="dep"] .obs-te__provs path{ fill:#C77B57; stroke:#C77B57 }
.obs-te[data-paso="lc"] .obs-te__provs path{ fill:#DDD6CA }
.obs-te[data-paso="lc"] .obs-te__provs path.lc{ fill:var(--obs-res) }
.obs-te__rot text{ font-family:var(--sans); font-size:14px; font-weight:650; fill:var(--tinta); text-anchor:middle; dominant-baseline:middle; pointer-events:none;
  paint-order:stroke; stroke:rgba(255,255,255,.75); stroke-width:3px; transition:fill .4s ease, opacity .4s ease }
.obs-te[data-paso="matr"] .obs-te__rot text[data-m="3"], .obs-te[data-paso="matr"] .obs-te__rot text[data-m="4"],
.obs-te[data-paso="rur"] .obs-te__rot text[data-r="3"], .obs-te[data-paso="rur"] .obs-te__rot text[data-r="4"],
.obs-te[data-paso="lc"] .obs-te__rot text.lc{ fill:#FFFFFF; stroke:rgba(14,23,38,.35) }
.obs-te[data-paso="dep"] .obs-te__rot text{ opacity:0 }
.obs-te[data-paso="lc"] .obs-te__rot text:not(.lc){ opacity:.45 }
.obs-te__datos{ position:absolute; left:clamp(1rem,2.5vw,2rem); bottom:clamp(1rem,2.5vw,2rem); max-width:14rem; pointer-events:none }
.obs-te__dato{ display:none; margin:0 }
.obs-te[data-paso="matr"] .obs-te__dato[data-p="matr"], .obs-te[data-paso="rur"] .obs-te__dato[data-p="rur"],
.obs-te[data-paso="dep"] .obs-te__dato[data-p="dep"], .obs-te[data-paso="lc"] .obs-te__dato[data-p="lc"]{ display:grid; animation:obs-sube .45s var(--obs-ease) }
.obs-te__dato b{ font-family:var(--lee); font-weight:500; font-size:clamp(2.4rem,1.8rem + 2vw,3.6rem); line-height:1; letter-spacing:-.03em; color:var(--obs-res); font-variant-numeric:lining-nums tabular-nums }
.obs-te__dato span{ font-family:var(--sans); font-size:.86rem; line-height:1.35; color:var(--t2); margin-top:.35rem }
@keyframes obs-sube{ from{ opacity:0; transform:translateY(.5rem) } to{ opacity:1; transform:none } }
.obs-te__leyes{ min-height:1.6rem }
.obs-te__ley{ display:none; align-items:center; gap:3px; font-family:var(--sans); font-size:.8rem; color:var(--t2) }
.obs-te__ley span:first-child{ margin-right:.5rem } .obs-te__ley span:last-child{ margin-left:.5rem }
.obs-te__ley i{ width:2rem; height:.6rem; border-radius:2px }
.obs-te[data-paso="matr"] .obs-te__ley[data-p="matr"], .obs-te[data-paso="rur"] .obs-te__ley[data-p="rur"],
.obs-te[data-paso="dep"] .obs-te__ley[data-p="dep"], .obs-te[data-paso="lc"] .obs-te__ley[data-p="lc"]{ display:flex }
.obs-te__ley[data-p="matr"] i:nth-of-type(1){ background:var(--t0) } .obs-te__ley[data-p="matr"] i:nth-of-type(2){ background:var(--t1c) }
.obs-te__ley[data-p="matr"] i:nth-of-type(3){ background:var(--t2c) } .obs-te__ley[data-p="matr"] i:nth-of-type(4){ background:var(--t3c) } .obs-te__ley[data-p="matr"] i:nth-of-type(5){ background:var(--t4c) }
.obs-te__ley[data-p="rur"] i:nth-of-type(1){ background:#EDE3CF } .obs-te__ley[data-p="rur"] i:nth-of-type(2){ background:#E3C9A1 }
.obs-te__ley[data-p="rur"] i:nth-of-type(3){ background:#D9A276 } .obs-te__ley[data-p="rur"] i:nth-of-type(4){ background:#C27548 } .obs-te__ley[data-p="rur"] i:nth-of-type(5){ background:#9A4622 }
.obs-te__ley[data-p="dep"] i{ background:#C77B57; margin-right:.5rem } .obs-te__ley[data-p="lc"] i{ background:var(--obs-res); margin-right:.5rem }
.obs-te__fin{ margin-top:var(--e-lg) }
/* El mapa sin JS muestra la matrícula rural; con JS cambia según el paso que se lee */
/* ---------- Capítulo 2 · La niñez y la escuela ---------- */
.obs-cn{ padding-block:clamp(5rem,9vw,8rem) }
.obs-cn__cab{ max-width:52rem; margin:0 auto clamp(2.5rem,5vw,4rem); text-align:center; display:grid; justify-items:center }
.obs-cn__cab .obs-cap{ flex-direction:column; gap:.7rem }
.obs-cn__h, .obs-ar__h, .obs-rg__h{ font-family:var(--sans); font-weight:650; font-size:clamp(2rem,1.3rem + 2.6vw,3.6rem); line-height:1.03; letter-spacing:-.03em; color:var(--papel); text-wrap:balance }
.obs-cn__cab .entrada{ color:#DCE3E6; margin:var(--e-md) auto 0; max-width:48ch }
.obs-cn__par{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.25rem,3vw,2.5rem); max-width:68rem; margin-inline:auto }
.obs-cn__i{ padding:clamp(1.4rem,3vw,2.2rem); border-radius:var(--r-xl); background:rgba(6,17,31,.62); box-shadow:inset 0 0 0 1px rgba(216,203,179,.2);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); display:grid; gap:.6rem; align-content:start }
.obs-cn__i h3{ font-family:var(--sans); font-size:1rem; font-weight:650; color:var(--piedra) }
.obs-cn__n{ font-family:var(--sans); font-weight:640; font-size:clamp(3.8rem,2.6rem + 4.6vw,6.6rem); line-height:.9; letter-spacing:-.045em; color:var(--obs-res-claro); font-variant-numeric:lining-nums }
.obs-cn__t{ color:#E1E8EA; line-height:1.6; max-width:42ch }
.obs-cn__esc{ margin:.9rem 0 0 }
.obs-cn__esc ol{ list-style:none; margin:0; padding:0; position:relative; height:5.6rem; border-bottom:1px solid rgba(216,203,179,.4) }
.obs-cn__m{ position:absolute; bottom:0; left:var(--x); transform:translateX(-50%); display:grid; justify-items:center; gap:.15rem; font-family:var(--sans) }
.obs-cn__m::after{ content:""; order:3; width:2px; height:1.6rem; background:currentColor }
.obs-cn__m b{ font-size:.92rem; font-weight:700 }
.obs-cn__m span{ font-size:.72rem; white-space:nowrap; color:#C5D3D5 }
.obs-cn__m--c24{ color:rgba(240,180,138,.6); bottom:2.6rem } .obs-cn__m--c24::after{ height:4.2rem; margin-bottom:-2.6rem }
.obs-cn__m--c25{ color:var(--obs-res-claro) }
.obs-cn__m--pe{ color:var(--piedra) }
.obs-cn__ej{ display:flex; justify-content:space-between; font-family:var(--sans); font-size:.72rem; color:#AFC0C4; margin-top:.3rem }
.obs-cn__bar ul{ list-style:none; margin:.9rem 0 0; padding:0; display:grid; gap:.55rem; font-family:var(--sans) }
.obs-cn__bar li{ display:grid; grid-template-columns:6.5rem minmax(0,1fr) 3.6rem; gap:.75rem; align-items:center; font-size:.88rem; color:#DCE3E6 }
.obs-cn__bar b{ text-align:right; font-weight:700; color:var(--papel) }
.obs-cn__bp{ height:.7rem; border-radius:999px; background:rgba(216,203,179,.14); overflow:hidden }
.obs-cn__bp i{ display:block; height:100%; width:var(--w); border-radius:999px; background:rgba(216,203,179,.7); transform-origin:0 50% }
.obs-cn__bar li.on .obs-cn__bp i{ background:var(--obs-res-claro) }
.obs-cn__bar li.on b{ color:var(--obs-res-claro) }
.obs-anim .obs-cn__bp i{ transition:transform 1s var(--obs-ease) }
.obs-anim .obs-cn__bar:not(.visto) .obs-cn__bp i{ transform:scaleX(0) }
.obs-cn__fin{ text-align:center; margin-top:var(--e-lg) }
.obs-cn .obs-fte{ margin-top:.4rem }
/* ---------- Capítulo 3 · IDT-5 y Barómetro ---------- */
.obs-co{ background:linear-gradient(180deg, var(--papel), #EEE9DF); padding-block:clamp(5rem,9vw,8rem) }
.obs-co__cab{ max-width:54rem; margin-bottom:clamp(2.5rem,5vw,4rem) }
.obs-co__par{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.25rem,3vw,2.5rem) }
.obs-co__i{ position:relative; display:grid; gap:.7rem; align-content:start; padding:clamp(1.5rem,3vw,2.5rem); border-radius:var(--r-xl);
  background:#FFFFFF; box-shadow:0 1px 0 rgba(14,23,38,.06), 0 30px 60px -42px rgba(14,23,38,.5) }
.obs-co__e{ display:flex; flex-wrap:wrap; gap:.4rem .8rem; align-items:baseline; font-family:var(--sans); font-size:.82rem; color:var(--mudo) }
.obs-co__t{ font-family:var(--sans); font-weight:650; font-size:clamp(2.2rem,1.6rem + 2vw,3.4rem); line-height:1; letter-spacing:-.035em }
.obs-co__t a{ color:var(--t1); text-decoration:underline; text-decoration-color:transparent; text-underline-offset:.12em; text-decoration-thickness:2px; transition:text-decoration-color .2s ease }
.obs-co__t a:hover{ text-decoration-color:currentColor }
.obs-co__s{ font-family:var(--lee); font-size:1.05rem; color:var(--t2); margin-top:-.2rem }
.obs-co__fig{ margin:.6rem 0 .2rem; padding:1.1rem 1rem .6rem; border-radius:var(--r-lg); background:var(--papel) }
.obs-co__f{ font-family:var(--lee); font-style:italic; font-size:clamp(1.15rem,1rem + .5vw,1.4rem); color:var(--t1) }
.obs-co__f span{ font-style:normal; font-family:var(--sans); font-weight:650; font-size:.82em }
.obs-co__d{ color:var(--t2); line-height:1.62; max-width:46ch }
.obs-co__nota{ margin-top:var(--e-md); font-family:var(--sans); font-size:.86rem; color:var(--mudo) }
/* ---------- El barril de tablas (SVG) ---------- */
.obs-tablas{ display:block; width:100%; height:auto; overflow:visible; --sube:34px }
.obs-tablas__guias line{ stroke:rgba(216,203,179,.16); stroke-width:1; stroke-dasharray:2 4 }
.obs-tablas__r{ fill:#B8A27A; transform-box:fill-box; transform-origin:50% 100%; transform:scaleY(calc(var(--v) / 5)); transition:transform .35s var(--obs-ease), fill .25s ease }
.obs-tablas--ict .obs-tablas__r{ fill:#8FB0B4 }
.obs-tablas__t.es-min .obs-tablas__r{ fill:var(--obs-res-claro) }
.obs-tablas__n{ font-family:var(--sans); font-size:13px; font-weight:700; fill:#DCE3E6; text-anchor:middle;
  transform:translateY(calc((5 - var(--v)) * var(--sube))); transition:transform .35s var(--obs-ease) }
.obs-tablas__t.es-min .obs-tablas__n{ fill:var(--obs-res-claro) }
.obs-tablas__nom{ font-family:var(--sans); font-size:11px; font-weight:650; fill:#AFC0C4; text-anchor:middle }
.obs-tablas__agua{ fill:rgba(84,160,170,.6); transform-box:fill-box; transform-origin:50% 100%; transform:scaleY(calc(var(--m) / 5)); transition:transform .4s var(--obs-ease) }
.obs-tablas__nivel{ stroke:#9ED3D6; stroke-width:2; transform:translateY(calc(var(--m) * var(--sube) * -1)); transition:transform .4s var(--obs-ease) }
.obs-tablas__suelo{ stroke:rgba(216,203,179,.5); stroke-width:1.5 }
.obs-tablas--claro .obs-tablas__guias line{ stroke:rgba(14,23,38,.14) }
.obs-tablas--claro .obs-tablas__r{ fill:#C9B48E }
.obs-tablas--claro.obs-tablas--ict .obs-tablas__r{ fill:#9DBDBD }
.obs-tablas--claro .obs-tablas__t.es-min .obs-tablas__r{ fill:var(--obs-res) }
.obs-tablas--claro .obs-tablas__n{ fill:var(--tinta-2) }
.obs-tablas--claro .obs-tablas__t.es-min .obs-tablas__n{ fill:var(--obs-res) }
.obs-tablas--claro .obs-tablas__nom{ fill:var(--mudo) }
.obs-tablas--claro .obs-tablas__agua{ fill:rgba(20,80,79,.42) }
.obs-tablas--claro .obs-tablas__nivel{ stroke:var(--petroleo) }
.obs-tablas--claro .obs-tablas__suelo{ stroke:var(--filete-firme) }
.obs-co__fig .obs-tablas{ width:auto; height:12.5rem; max-width:100%; margin-inline:auto }
/* ---------- Deslizadores del IDT-5 y del Barómetro ---------- */
.obs-ej{ position:relative; isolation:isolate; overflow:clip; background:radial-gradient(60% 60% at 80% 40%, rgba(84,160,170,.12), transparent 70%), var(--noche) }
.obs-ej__cab{ max-width:48rem; margin-bottom:clamp(2rem,4vw,3rem) }
.obs-ej__cab .antetitulo{ margin-bottom:var(--e-xs) }
.obs-ej__cab .h2{ font-size:clamp(1.9rem,1.3rem + 2.2vw,3.2rem); letter-spacing:-.03em; line-height:1.04; max-width:22ch }
.obs-ej__cab .entrada{ margin-top:var(--e-sm) }
.obs-min{ grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(2rem,5vw,4.5rem); align-items:start }
.obs-min__ctl{ padding:clamp(1.1rem,2.5vw,1.8rem) clamp(1rem,2.5vw,1.8rem) 2.2rem; border-radius:var(--r-xl); background:rgba(244,242,238,.04); box-shadow:inset 0 0 0 1px rgba(216,203,179,.16) }
.obs-min__pista::before{ height:.6rem; background:repeating-linear-gradient(90deg, rgba(216,203,179,.2) 0 calc(25% - 2px), transparent calc(25% - 2px) 25%) }
.obs-min__relleno{ height:.6rem }
.obs-min__pista input::-webkit-slider-thumb{ width:1.75rem; height:1.75rem; margin-top:.5rem; border:4px solid var(--noche); box-shadow:0 0 0 1.5px var(--piedra), 0 6px 14px rgba(0,0,0,.4) }
.obs-min__pista input::-moz-range-thumb{ width:1.75rem; height:1.75rem; border:4px solid var(--noche); box-shadow:0 0 0 1.5px var(--piedra), 0 6px 14px rgba(0,0,0,.4) }
.obs-min__fila.es-min .obs-min__pista input::-webkit-slider-thumb{ background:var(--obs-res-claro) }
.obs-min__fila.es-min .obs-min__pista input::-moz-range-thumb{ background:var(--obs-res-claro) }
.obs-min__lado{ display:grid; gap:var(--e-md); position:sticky; top:calc(var(--alto-nav) + 4rem) }
.obs-min__barril{ margin:0; padding:1.2rem 1.2rem .8rem; border-radius:var(--r-xl); background:rgba(6,17,31,.55); box-shadow:inset 0 0 0 1px rgba(216,203,179,.16) }
.obs-min__barril .obs-tablas{ width:auto; height:13rem; max-width:100%; margin-inline:auto }
.obs-min__barril figcaption{ font-family:var(--sans); font-size:.78rem; color:#AFC0C4; text-align:center; margin-top:.5rem }
.obs-min__res{ margin-top:0 }
/* IDT-5: la regla con su ilustración */
.obs-regla__fig{ margin:var(--e-md) 0 0; padding:1.2rem 1.2rem .8rem; border-radius:var(--r-xl); background:#FFFFFF; box-shadow:0 30px 60px -44px rgba(14,23,38,.5) }
.obs-regla__fig .obs-tablas{ width:auto; height:14rem; max-width:100%; margin-inline:auto }
.obs-regla__fig figcaption{ font-family:var(--sans); font-size:.78rem; color:var(--mudo); line-height:1.45; margin-top:.6rem }
/* ---------- Capítulo 4 · Qué publica ---------- */
.obs-ar{ background:radial-gradient(50% 60% at 15% 20%, rgba(217,164,65,.08), transparent 70%), var(--obs-hondo); padding-block:clamp(5rem,9vw,7.5rem) }
.obs-ar__cab{ max-width:50rem; margin-bottom:clamp(2rem,4vw,3rem) }
.obs-ar__l{ list-style:none; margin:0; padding:0; border-top:1px solid rgba(244,242,238,.14) }
.obs-ar__i{ border-bottom:1px solid rgba(244,242,238,.14) }
.obs-ar__a{ display:grid; grid-template-columns:7.5rem minmax(0,1fr) 2.5rem; gap:clamp(1rem,3vw,2.5rem); align-items:center; padding:clamp(1.1rem,2.4vw,1.6rem) .5rem;
  color:var(--papel); text-decoration:none; border-radius:var(--r-lg); transition:background-color .25s ease }
.obs-ar__a:hover{ background:rgba(244,242,238,.05) }
.obs-ar__a:focus-visible{ outline:2px solid var(--piedra); outline-offset:-2px }
.obs-ar__g{ display:grid; place-items:center; height:5.5rem }
.obs-ar__g svg{ max-height:5.5rem; width:auto; max-width:100% }
.obs-ar__g .obs-ruta__cus{ max-width:6rem }
.obs-ar__g .obs-ruta__cus path{ fill:rgba(216,203,179,.2); stroke:var(--obs-hondo) }
.obs-ar__g .obs-ruta__cus path.on{ fill:var(--obs-res-claro) }
.obs-ar__g > svg:not(.obs-ruta__cus):not(.obs-tablas){ width:3.4rem; fill:none; stroke:var(--piedra); stroke-width:2; stroke-linecap:round; stroke-linejoin:round }
.obs-ar__g > svg .ac{ stroke:var(--obs-sol-2) }
.obs-tablas--mini{ width:auto; height:4.6rem; max-width:7rem }
.obs-tablas--mini .obs-tablas__n{ display:none }
.obs-ar__txt{ display:grid; gap:.3rem }
.obs-ar__e{ display:flex; flex-wrap:wrap; gap:.35rem .8rem; font-family:var(--sans); font-size:.8rem; color:#AFC0C4 }
.obs-ar .obs-estado--pub{ color:#8FD0C9 } .obs-ar .obs-estado--pil{ color:var(--obs-res-claro) } .obs-ar .obs-estado--prep{ color:var(--piedra) }
.obs-ar__txt b{ font-family:var(--sans); font-weight:650; font-size:clamp(1.3rem,1.1rem + .8vw,1.85rem); letter-spacing:-.02em; line-height:1.15 }
.obs-ar__d{ font-family:var(--lee); color:#C9D4D7; line-height:1.55; max-width:62ch }
.obs-ar__ir{ color:var(--piedra); justify-self:end; transition:transform .25s var(--obs-ease) }
.obs-ar__a:hover .obs-ar__ir{ transform:translateX(4px) }
.obs-ar__i:last-child .obs-ar__txt b{ font-size:clamp(1.15rem,1rem + .5vw,1.45rem) }
/* ---------- Para qué sirve: foto con velo hacia el papel ---------- */
.obs-pq{ position:relative; isolation:isolate; overflow:clip; background:var(--papel); padding-block:clamp(4.5rem,8vw,7rem) }
.obs-pq__foto{ margin:0 }
.obs-pq__foto img{ display:block; width:100%; height:auto; aspect-ratio:16 / 9; object-fit:cover; object-position:50% 50% }
.obs-pq__foto figcaption{ font-family:var(--sans); font-size:.74rem; color:var(--mudo); padding:.5rem var(--canal) 0 }
.obs-pq__h{ margin-bottom:var(--e-md) }
.obs-pq__que{ margin-top:var(--e-lg); color:var(--t2); line-height:1.65; max-width:58ch }
.obs-pq__que a{ color:var(--petroleo); text-underline-offset:.18em }
.obs-pq .obs-para li{ grid-template-columns:minmax(0,1fr); gap:.25rem; padding-block:1rem }
@media (min-width:62rem){
  .obs-pq{ min-height:min(54rem, 100vh); display:grid; align-items:center }
  .obs-pq__foto{ position:absolute; left:0; top:0; bottom:0; width:56vw; z-index:-2 }
  .obs-pq__foto picture, .obs-pq__foto img{ height:100% }
  .obs-pq__foto img{ aspect-ratio:auto; object-position:40% 55%;
    -webkit-mask-image:linear-gradient(90deg,#000 62%,transparent); mask-image:linear-gradient(90deg,#000 62%,transparent) }
  .obs-pq__foto figcaption{ position:absolute; left:var(--canal); bottom:1rem; padding:0; color:#F4F2EE; text-shadow:0 1px 8px rgba(6,17,31,.8) }
  .obs-pq__in{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,34rem) }
  .obs-pq__txt{ grid-column:2; padding:clamp(1.5rem,3vw,2.5rem); border-radius:var(--r-xl); background:rgba(244,242,238,.9);
    -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); box-shadow:0 30px 70px -50px rgba(14,23,38,.6) }
}
@media (max-width:61.99rem){ .obs-pq{ padding-top:0 } .obs-pq__in{ margin-top:var(--e-lg) } }
/* ---------- Qué mide: el nivel geográfico dibujado ---------- */
.obs-mide{ padding-block:clamp(4.5rem,8vw,7rem) }
.obs-mide__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:clamp(2rem,4vw,3rem) }
.obs-niv{ display:inline-grid; grid-template-columns:repeat(5,1.15rem); gap:3px; vertical-align:middle; margin-right:.6rem }
.obs-niv i{ height:.7rem; border-radius:2px; background:rgba(20,80,79,.13) }
.obs-niv i.on{ background:var(--petroleo) }
.obs-niv i.on:last-of-type, .obs-niv i.on:has(+ i:not(.on)){ background:var(--obs-res) }
.obs-niv__t{ display:block; margin-top:.3rem }
.obs-niv__ley{ list-style:none; margin:0 0 .4rem; padding:0; display:flex; gap:.4rem 1.2rem; flex-wrap:wrap; font-family:var(--sans); font-size:.78rem; color:var(--mudo); counter-reset:niv }
.obs-niv__ley li{ counter-increment:niv }
.obs-niv__ley li::before{ content:counter(niv) " · "; color:var(--petroleo); font-weight:700 }
.obs-tabla-env--mide .obs-tabla tbody th{ font-family:var(--lee); font-weight:500; font-size:1.04rem }
/* ---------- Reglas y calendario, en oscuro ---------- */
.obs-rg{ background:radial-gradient(50% 60% at 85% 10%, rgba(84,160,170,.1), transparent 70%), var(--noche); padding-block:clamp(5rem,9vw,7.5rem) }
.obs-rg__cab{ max-width:44rem; margin-bottom:clamp(2rem,4vw,3rem) }
.obs-rg__l{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.5rem,4vw,3.5rem) clamp(1.5rem,5vw,5rem) }
.obs-rg__l li{ padding-top:1.1rem; border-top:1px solid rgba(216,203,179,.28) }
.obs-rg__l h3{ font-family:var(--sans); font-weight:650; font-size:clamp(1.35rem,1.1rem + 1vw,2rem); letter-spacing:-.02em; line-height:1.12; color:var(--papel) }
.obs-rg__l p{ font-family:var(--lee); color:#C9D4D7; line-height:1.62; margin-top:.5rem; max-width:44ch }
.obs-rg__cal{ display:grid; grid-template-columns:minmax(0,4fr) minmax(0,7fr); gap:var(--e-md) clamp(2rem,5vw,5rem); margin-top:clamp(3.5rem,7vw,5.5rem); padding-top:clamp(2rem,4vw,3rem); border-top:1px solid rgba(216,203,179,.18) }
.obs-rg__h3{ font-family:var(--sans); font-weight:650; font-size:clamp(1.5rem,1.2rem + 1vw,2.1rem); letter-spacing:-.02em; color:var(--papel) }
.obs-rg .nota{ color:#AFC0C4; margin-top:.5rem }
.obs-rg .obs-cal{ border-top-color:rgba(216,203,179,.3) }
.obs-rg .obs-cal > div{ border-bottom-color:rgba(216,203,179,.14) }
.obs-rg .obs-cal dt{ color:var(--piedra) }
.obs-rg .obs-cal dd{ color:#DCE3E6 }
.obs-sec--citar{ padding-block:clamp(2rem,4vw,3rem) }
/* ---------- Mapa del Cusco: relieve de sombra, norte, escala y ubicador ---------- */
.obs-mapa{ position:relative; isolation:isolate; background:radial-gradient(55% 60% at 30% 45%, rgba(84,160,170,.1), transparent 70%), var(--noche) }
.obs-mapa__provs{ filter:drop-shadow(0 0 1.5px rgba(216,203,179,.55)) drop-shadow(0 26px 30px rgba(0,0,0,.55)) }
.obs-prov path{ stroke-width:1.6 }
.obs-prov[aria-current] path{ filter:brightness(1.08) }
.obs-geo__deco{ pointer-events:none }
.obs-geo__norte path{ fill:var(--piedra) }
.obs-geo__norte text, .obs-geo__escala text{ font-family:var(--sans); font-size:14px; font-weight:700; fill:var(--piedra); text-anchor:middle }
.obs-geo__escala line{ stroke:var(--piedra); stroke-width:2 }
.obs-geo__peru rect{ fill:rgba(6,17,31,.55); stroke:rgba(216,203,179,.3); stroke-width:3 }
.obs-geo__peru path{ fill:rgba(216,203,179,.24); stroke:rgba(6,17,31,.9); stroke-width:1.5 }
.obs-geo__peru path.on{ fill:var(--obs-res-claro) }
.obs-te .obs-geo__norte path{ fill:var(--tinta-2) }
.obs-te .obs-geo__norte text, .obs-te .obs-geo__escala text{ fill:var(--tinta-2) }
.obs-te .obs-geo__escala line{ stroke:var(--tinta-2) }
.obs-te .obs-geo__peru rect{ fill:#FFFFFF; stroke:var(--filete) }
.obs-te .obs-geo__peru path{ fill:#DDD6CA; stroke:#FFFFFF }
.obs-te .obs-geo__peru path.on{ fill:var(--obs-res) }
.obs-mapa__ley ol{ gap:0 }
.obs-mapa__m{ height:.75rem; border-radius:0 }
.obs-mapa__ley li:first-child .obs-mapa__m{ border-radius:3px 0 0 3px } .obs-mapa__ley li:last-child .obs-mapa__m{ border-radius:0 3px 3px 0 }
.obs-mapa__ley li{ padding-right:.4rem }
.obs-ficha{ padding:clamp(1.1rem,2.2vw,1.6rem); border-top:0; border-radius:var(--r-xl); background:rgba(244,242,238,.05); box-shadow:inset 0 0 0 1px rgba(216,203,179,.18) }
/* ---------- Perfil de la provincia: eje legible, nombre sobre su punto, extremos rotulados ---------- */
.obs-pf{ background:var(--papel) }
.obs-pf__l{ gap:0; border-top:1px solid var(--filete-firme) }
.obs-pf__f{ grid-template-columns:minmax(0,4fr) minmax(0,8fr); padding:clamp(1.4rem,3vw,2rem) 0 clamp(1.8rem,3.4vw,2.4rem); border-bottom:1px solid var(--filete) }
.obs-pf__k b{ font-size:clamp(1.8rem,1.3rem + 1.6vw,2.6rem); letter-spacing:-.02em }
.obs-pf__pista{ height:4.4rem; margin-inline:.9rem }
.obs-pf__pista::before{ top:62%; height:2px; background:linear-gradient(90deg, rgba(20,80,79,.18), rgba(20,80,79,.38)); border-radius:2px }
.obs-pf__marcas s{ position:absolute; top:62%; left:var(--x); width:1px; height:.55rem; margin-top:.35rem; background:var(--filete-firme); text-decoration:none }
.obs-pf__marcas s span{ position:absolute; top:.65rem; left:50%; transform:translateX(-50%); white-space:nowrap; font-family:var(--sans); font-size:.7rem; color:var(--mudo); font-variant-numeric:tabular-nums }
.obs-pf__pista i{ top:62%; width:.85rem; height:.85rem; background:var(--petroleo); opacity:.42; box-shadow:0 0 0 2px var(--papel) }
.obs-pf__yo{ top:62%; width:1.5rem; height:1.5rem; box-shadow:0 0 0 4px var(--papel), 0 6px 16px rgba(180,83,42,.4) }
.obs-pf__yo span{ position:absolute; bottom:calc(100% + .55rem); left:50%; transform:translateX(-50%); white-space:nowrap; padding:.18rem .55rem; border-radius:999px;
  font-family:var(--sans); font-size:.76rem; font-weight:700; color:var(--papel); background:var(--obs-res) }
.obs-pf__yo span::after{ content:""; position:absolute; top:100%; left:50%; margin-left:-4px; border:4px solid transparent; border-top-color:var(--obs-res) }
.obs-pf__yo--der span{ left:auto; right:-.5rem; transform:none } .obs-pf__yo--der span::after{ left:auto; right:calc(.5rem + .75rem - 4px) }
.obs-pf__yo--izq span{ left:-.5rem; transform:none } .obs-pf__yo--izq span::after{ left:calc(.5rem + .75rem) }
.obs-pf__ext{ position:absolute; top:calc(62% - 1.65rem); left:var(--x); transform:translateX(-50%); font-style:normal; white-space:nowrap; font-family:var(--sans); font-size:.68rem; color:var(--mudo) }
.obs-pf__ext--min{ transform:none; margin-left:-.4rem } .obs-pf__ext--max{ transform:translateX(-100%); margin-left:.4rem }
.obs-pf__pista u{ top:calc(62% - 1rem); bottom:auto; height:2rem; width:2px; background:var(--tinta) }
.obs-pf__pista u span{ bottom:auto; top:calc(100% + .1rem); font-size:.68rem; font-weight:650; color:var(--tinta-2) }
.obs-pf__f:has(u) .obs-pf__marcas s span{ display:none }
.obs-pf__f:has(u) .obs-pf__marcas s:first-child span, .obs-pf__f:has(u) .obs-pf__marcas s:last-child span{ display:block }
/* ---------- Ficha: la escuela en la provincia, en oscuro ---------- */
.obs-esc{ background:radial-gradient(50% 60% at 80% 30%, rgba(84,160,170,.1), transparent 70%), var(--noche) }
.obs-esc .obs-h2{ font-size:clamp(1.8rem,1.3rem + 1.8vw,2.8rem); letter-spacing:-.025em }
.obs-esc .entrada{ color:#DCE3E6 }
.obs-esc .obs-h3{ color:var(--piedra) }
.obs-esc .obs-ap svg{ height:1.6rem; border-radius:4px }
.obs-esc .obs-ap__ley{ color:#DCE3E6 } .obs-esc .obs-ap__ley b{ color:var(--papel) }
.obs-esc .obs-ap__ini{ fill:#8FB0B4; color:#8FB0B4 } .obs-esc .obs-ap__pri{ fill:#4F9A97; color:#4F9A97 } .obs-esc .obs-ap__sec{ fill:#D8CBB3; color:#D8CBB3 }
.obs-esc .obs-ap__urb{ fill:#4F9A97; color:#4F9A97 } .obs-esc .obs-ap__rur{ fill:var(--obs-res-claro); color:var(--obs-res-claro) }
/* ---------- Cusco: escuela rural en oscuro con foto ---------- */
.obs-rur .obs-h2{ font-size:clamp(1.8rem,1.3rem + 1.8vw,2.8rem); letter-spacing:-.025em }
.obs-rur .entrada{ color:#DCE3E6 }
.obs-rur .obs-fig{ padding:clamp(1.1rem,2.4vw,1.8rem); border-radius:var(--r-xl); background:rgba(6,17,31,.62); box-shadow:inset 0 0 0 1px rgba(216,203,179,.18);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px) }
.oscuro .obs-fig__t{ color:var(--piedra) }
.oscuro .obs-barra__k{ color:#E1E8EA } .oscuro .obs-barra__k small{ color:#AFC0C4 }
.oscuro .obs-barra__fondo{ fill:rgba(216,203,179,.12) }
.oscuro .obs-barra__v{ fill:#5FA7A3 }
.oscuro .obs-barra--res .obs-barra__v{ fill:var(--obs-res-claro) }
.oscuro .obs-barra__n{ color:var(--papel) } .oscuro .obs-barra--res .obs-barra__n{ color:var(--obs-res-claro) }
/* ---------- Subnavegación: vidrio sobre papel ---------- */
.obs-sub{ position:relative; z-index:2; background:rgba(244,242,238,.96) }
/* ---------- Adaptación ---------- */
@media (max-width:63.99rem){
  .obs-h0__grid{ grid-template-columns:minmax(0,1fr) }
  .obs-h0__fig{ justify-items:start }
  .obs-h0__mapa{ max-width:20rem }
  .obs-te__grid{ grid-template-columns:minmax(0,1fr) }
  .obs-te__fig{ order:-1; top:calc(var(--alto-nav) + .5rem); z-index:2 }
  .obs-te__marco{ padding:.6rem .8rem; background:rgba(255,255,255,.94); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px) }
  .obs-te__svg{ max-height:34vh; width:auto; max-width:100% }
  .obs-te__datos{ left:.8rem; bottom:.6rem; max-width:9rem }
  .obs-te__dato b{ font-size:1.9rem }
  .obs-te__dato span{ font-size:.74rem }
  .obs-te__rot{ display:none }
  .obs-te__paso, .obs-te__paso:first-child, .obs-te__paso:last-child{ min-height:auto; padding-block:2.2rem; justify-content:flex-start }
  .obs-te__paso:first-child{ padding-top:2rem }
  .obs-te__leyes{ order:2 }
  .obs-co__par, .obs-cn__par{ grid-template-columns:minmax(0,1fr) }
  .obs-min{ grid-template-columns:minmax(0,1fr) }
  .obs-min__lado{ position:static }
  .obs-mide__cab, .obs-rg__cal{ grid-template-columns:minmax(0,1fr) }
}
@media (max-width:47.99rem){
  .obs-h0{ min-height:0; padding-bottom:3.5rem }
  .obs-h0::after{ background:linear-gradient(180deg, rgba(6,17,31,.82) 0, rgba(6,17,31,.7) 40%, rgba(6,17,31,.94) 100%) }
  .obs-h0__t{ font-size:clamp(2.3rem,1.6rem + 4vw,3rem) }
  .obs-h0__pie, .obs-cab__pie, .obs-sec__pie{ position:static; text-align:left; padding:.8rem var(--canal) 0; max-width:none }
  .obs-h0__pie{ padding-top:1.4rem }
  .obs-cab--foto{ min-height:0 }
  .obs-cab--foto::after{ background:linear-gradient(180deg, rgba(6,17,31,.8) 0, rgba(6,17,31,.72) 50%, rgba(6,17,31,.95) 100%) }
  .obs-ar__a{ grid-template-columns:4.2rem minmax(0,1fr); padding-inline:.25rem }
  .obs-ar__g{ height:4rem } .obs-ar__g svg{ max-height:4rem }
  .obs-ar__ir{ display:none }
  .obs-tablas--mini{ height:3.2rem; max-width:4.2rem }
  .obs-rg__l{ grid-template-columns:minmax(0,1fr) }
  .obs-pf__f{ grid-template-columns:minmax(0,1fr) }
  .obs-pf__pista{ margin-top:.4rem }
  .obs-cn__bar li{ grid-template-columns:5.6rem minmax(0,1fr) 3.3rem }
  .obs-cn__esc ol{ margin-inline:1.2rem }
}
@media (max-width:30rem){
  .obs-h0__fila{ grid-template-columns:minmax(0,1fr) }
  .obs-h0__n span{ font-size:3.6rem }
  .obs-te__h, .obs-co__h, .obs-mide__h, .obs-pq__h, .obs-cn__h, .obs-ar__h, .obs-rg__h{ font-size:clamp(1.75rem,1.2rem + 3vw,2.2rem) }
  .obs-co__t{ font-size:2rem }
  .obs-cn__m span{ font-size:.66rem }
}
@media (prefers-reduced-motion:reduce){
  .obs-fondo img{ animation:none; transform:none; scale:1 }
  .obs-te__dato{ animation:none !important }
  .obs-te__paso{ transition:none }
}
/* ---------- v29 · Ritmo de las páginas interiores ---------- */
/* Las bandas blancas pasan a papel cálido, para alternar con papel y niebla como en el Ecosistema */
.obs-sec--borde{ background:#EFEBE3; border-block:0 }
.obs-sec--borde .obs-tabla-marco{ --obs-fondo-tabla:#EFEBE3 }
.obs-sec--borde + .obs-sec--borde{ border-top:1px solid var(--filete) }
/* Titulares grandes, como en el Ecosistema */
.obs-h2{ font-size:clamp(1.75rem,1.2rem + 1.9vw,2.9rem); line-height:1.05; letter-spacing:-.028em; max-width:24ch }
.obs-cabsec{ max-width:56rem }
/* Barómetro: las cinco P como una escalera que se oscurece al subir */
.obs-p5 li{ padding-left:1rem; border-radius:14px 0 0 14px;
  background:linear-gradient(90deg, rgba(20,80,79,calc(.05 + var(--k, 0) * .035)) 0, rgba(20,80,79,0) 72%) }
.obs-p5__i{ font-size:2.4rem }
@media (max-width:35rem){ .obs-p5 li{ padding-left:.6rem } }
@media (max-width:63.99rem){
  /* el mapa fijo lleva su propio fondo para que el texto que pasa debajo no se transparente */
  .obs-te__fig{ background:var(--papel); margin-inline:calc(var(--canal) * -1); padding:.4rem var(--canal) .55rem; box-shadow:0 12px 18px -16px rgba(14,23,38,.35) }
}
.obs-te__fin .boton, .obs-h0__acc .boton{ max-width:100%; white-space:normal; text-align:left }
