/* v21 · Cómo se financia (#financiar) y recorrido de Obras por Impuestos (#oxi). Prefijo cf-. */
.cf{ --cf-r:14px; --cf-rs:10px; --cf-t-propios:var(--noche); --cf-t-estado:#E1EBE8; --cf-t-oxi:#EEE5D5; --cf-t-resultados:#E7E5F0 }
.cf-vh{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0 }
.cf-ico{ width:1.25rem; height:1.25rem; flex:none }

/* colores de rol: --rc es el tono del rol sobre fondo oscuro */
.cf-rol--conecta{ --rc:var(--piedra) }
.cf-rol--aliado{ --rc:var(--ac-lab) }
.cf-rol--estado{ --rc:var(--ac-proposito) }
.cf-rol--empresa{ --rc:var(--papel) }

/* ---------------------------------------------------------------- cabecera */
.cf-cab{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:var(--e-md) var(--e-xl); align-items:end; margin-bottom:var(--e-xl) }
.cf-cab .antetitulo{ margin:0 0 var(--e-xs) }
.cf-cab .h2{ margin:0; max-width:18ch }
.cf-cab .entrada{ margin:0; max-width:44ch }

/* ---------------------------------------------------------------- selector */
.cf-elige{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--e-xs) var(--e-md); padding:var(--e-md) var(--e-md) var(--e-sm); margin-bottom:var(--e-md); background:var(--blanco); border:1px solid var(--filete); border-radius:var(--cf-r); box-shadow:0 10px 30px -22px rgba(6,17,31,.4) }
.cf-elige__k{ flex:none; margin:0; font-family:var(--sans); font-weight:700; font-size:1.02rem; color:var(--tinta); letter-spacing:-.01em }
.cf-elige__l{ flex:1 1 100%; list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.5rem }
.cf-nec{ --pt:var(--petroleo); width:100%; height:100%; display:flex; align-items:center; gap:.65rem; min-height:52px; padding:.6rem 1rem; text-align:left; font-family:var(--sans); font-size:.92rem; line-height:1.25; font-weight:600; color:var(--tinta-2); background:var(--papel); border:1px solid transparent; border-radius:var(--cf-rs); cursor:pointer; transition:background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease }
.cf-nec[data-via="propios"]{ --pt:var(--noche) }
.cf-nec[data-via="estado"]{ --pt:#5E9C93 }
.cf-nec[data-via="oxi"]{ --pt:#B9852B }
.cf-nec[data-via="resultados"]{ --pt:#7F6DB8 }
.cf-nec__punto{ flex:none; width:.65rem; height:.65rem; border-radius:50%; background:var(--pt); transition:transform .2s var(--salida), box-shadow .2s ease }
.cf-nec:hover{ border-color:var(--filete-firme); color:var(--tinta) }
.cf-nec:active{ transform:scale(.97) }
.cf-nec[aria-pressed="true"]{ background:var(--noche); color:var(--papel); border-color:var(--noche) }
.cf-nec[aria-pressed="true"] .cf-nec__punto{ background:var(--piedra); box-shadow:0 0 0 3px rgba(216,203,179,.28) }
.cf-nec:focus-visible{ outline:2px solid var(--petroleo); outline-offset:3px }
.cf-elige__r{ flex:1 1 100%; margin:0; padding-top:var(--e-xs); border-top:1px solid var(--filete); font-family:var(--sans); font-size:.92rem; line-height:1.45; color:var(--mudo); min-height:2.1rem; display:flex; align-items:center }
.cf-elige__r1{ color:var(--tinta) }
.cf-elige__r1 b{ color:var(--petroleo); font-weight:700 }
.cf-elige__r1 a{ color:var(--petroleo); font-weight:650; text-underline-offset:3px; white-space:nowrap }
.cf-elige.hay .cf-elige__r1{ animation:cf-sube .28s var(--salida) }

/* ---------------------------------------------------------------- vías */
.cf-vias{ list-style:none; margin:0; padding:0; display:grid; gap:var(--e-sm);
  grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);
  grid-template-areas:"propios resultados estado" "propios oxi oxi" }
.cf-via{ --tono:var(--niebla); grid-area:var(--a); position:relative; display:flex; flex-direction:column; gap:var(--e-sm); padding:var(--e-md); background:var(--tono); border-radius:var(--cf-r); color:var(--tinta); transition:opacity .18s ease, filter .18s ease, background .18s ease, transform .3s var(--salida), box-shadow .3s ease }
.cf-via > *{ transition:opacity .18s ease }
.cf-via--propios{ --a:propios; --tono:var(--cf-t-propios); color:#DCE3E6; padding:clamp(1.5rem,2.6vw,2.4rem) }
.cf-via--estado{ --a:estado; --tono:var(--cf-t-estado) }
.cf-via--oxi{ --a:oxi; --tono:var(--cf-t-oxi) }
.cf-via--resultados{ --a:resultados; --tono:var(--cf-t-resultados) }
.cf-via__cab{ display:flex; align-items:center; justify-content:space-between; gap:.6rem }
.cf-via__ic{ display:grid; place-items:center; width:2.75rem; height:2.75rem; border-radius:50%; background:var(--blanco); color:var(--petroleo) }
.cf-via__tag{ font-family:var(--sans); font-size:.78rem; font-weight:650; padding:.28rem .7rem; border-radius:999px; background:rgba(14,23,38,.07); color:var(--tinta-2) }
.cf-via__t{ margin:0; font-family:var(--sans); font-size:var(--t-h3); line-height:1.15; letter-spacing:-.015em; color:var(--tinta); max-width:16ch }
.cf-via__dl{ margin:0; display:grid; gap:.7rem }
.cf-via__dl div{ display:grid; gap:.12rem }
.cf-via__dl dt{ font-family:var(--sans); font-size:.78rem; font-weight:650; color:var(--petroleo) }
.cf-via__dl dd{ margin:0; font-family:var(--sans); font-size:.94rem; line-height:1.42; color:var(--tinta) }
.cf-via__l{ list-style:none; margin:0; padding:var(--e-sm) 0 0; border-top:1px solid rgba(14,23,38,.1); display:grid; gap:.4rem }
.cf-via__l li{ position:relative; padding-left:1.15rem; font-family:var(--sans); font-size:.9rem; line-height:1.4; color:var(--tinta-2) }
.cf-via__l li::before{ content:""; position:absolute; left:0; top:.5em; width:.42rem; height:.42rem; border-radius:50%; background:var(--petroleo); opacity:.55 }

/* vía principal */
.cf-via--propios .cf-via__ic{ width:3.25rem; height:3.25rem; background:rgba(216,203,179,.16); color:var(--piedra) }
.cf-via--propios .cf-via__ic .cf-ico{ width:1.5rem; height:1.5rem }
.cf-via--propios .cf-via__tag{ background:var(--piedra); color:var(--tinta) }
.cf-via--propios .cf-via__t{ color:var(--papel); font-size:clamp(1.7rem,1.1rem + 1.6vw,2.6rem); line-height:1.04; letter-spacing:-.025em; max-width:12ch }
.cf-via--propios .cf-via__dl dt{ color:var(--piedra) }
.cf-via--propios .cf-via__dl dd{ color:var(--papel); font-size:1rem }
.cf-via--propios .cf-via__l{ border-color:var(--filete-oscuro) }
.cf-via--propios .cf-via__l li{ color:#DCE3E6; font-size:.98rem }
.cf-via--propios .cf-via__l li::before{ background:var(--piedra); opacity:.9 }
.cf-via__lema{ margin:var(--e-sm) 0 0; font-family:var(--lee); font-style:italic; font-size:1.02rem; color:var(--piedra) }
.cf-via--propios .cf-via__lema + .cf-via__t{ margin-top:-.5rem; padding-top:0 }
.cf-via--propios .cf-via__dl{ margin-top:auto; position:relative }
.cf-via--propios .cf-via__l{ position:relative }
.cf-via--propios::before{ content:""; position:absolute; right:-18%; top:22%; width:78%; aspect-ratio:1; border-radius:50%; background:repeating-radial-gradient(circle at 50% 50%, transparent 0 22px, rgba(216,203,179,.11) 22px 23px); -webkit-mask:radial-gradient(closest-side, #000 55%, transparent); mask:radial-gradient(closest-side, #000 55%, transparent); pointer-events:none }
.cf-via--propios{ overflow:hidden }
.cf-via--propios > *{ position:relative }

/* vía de Obras por Impuestos: ancha, con salida al recorrido */
.cf-via--oxi{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:var(--e-lg); align-content:start }
.cf-via--oxi > .cf-via__cab,.cf-via--oxi > .cf-via__t,.cf-via--oxi > .cf-via__dl{ grid-column:1 }
.cf-via--oxi > .cf-via__l{ grid-column:2; grid-row:1 / span 3; align-self:start; border-top:0; padding-top:0; padding-left:var(--e-md); border-left:1px solid rgba(14,23,38,.12) }
.cf-via--oxi .cf-via__ic{ color:#8A6420 }
.cf-via--oxi .cf-via__l li::before{ background:#B9852B; opacity:.8 }
.cf-via__ir{ grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; gap:var(--e-sm); min-height:52px; padding:.7rem .7rem .7rem 1rem; margin-top:auto; background:var(--noche); color:var(--papel); border-radius:var(--cf-rs); text-decoration:none; font-family:var(--sans); font-weight:650; font-size:.92rem; transition:background .2s ease }
.cf-via__ir:hover{ background:var(--petroleo) }
.cf-via__ir:focus-visible{ outline:2px solid var(--petroleo); outline-offset:3px }
.cf-via__ir-t{ display:inline-flex; align-items:center; gap:.5rem; white-space:nowrap; padding:.35rem .8rem; border-radius:999px; background:var(--piedra); color:var(--tinta) }
.cf-via__ir-t svg{ transition:transform .25s var(--salida) }
.cf-via__ir:hover .cf-via__ir-t svg{ transform:translateX(3px) }
.cf-mini{ list-style:none; margin:0; padding:0; display:flex; align-items:center; flex:1; min-width:0; max-width:22rem }
.cf-mini li{ flex:1; display:flex; align-items:center }
.cf-mini li:not(:last-child)::after{ content:""; flex:1; height:1.5px; background:rgba(244,242,238,.25); margin:0 2px }
.cf-mini span{ flex:none; display:grid; place-items:center; width:1.35rem; height:1.35rem; border-radius:50%; font-size:.66rem; font-weight:700; background:var(--rc); color:var(--tinta); transition:transform .3s var(--salida) }
.cf-mini li:last-child{ flex:none }
.cf-via__ir:hover .cf-mini li span{ transform:translateY(-2px) }
.cf-via__ir:hover .cf-mini li:nth-child(2) span{ transition-delay:.03s } .cf-via__ir:hover .cf-mini li:nth-child(3) span{ transition-delay:.06s }
.cf-via__ir:hover .cf-mini li:nth-child(4) span{ transition-delay:.09s } .cf-via__ir:hover .cf-mini li:nth-child(5) span{ transition-delay:.12s }
.cf-via__ir:hover .cf-mini li:nth-child(6) span{ transition-delay:.15s } .cf-via__ir:hover .cf-mini li:nth-child(7) span{ transition-delay:.18s }
.cf-via__ir:hover .cf-mini li:nth-child(8) span{ transition-delay:.21s }

/* resaltado según la necesidad elegida */
.cf-vias.hay .cf-via:not(.es-on){ opacity:.45; filter:saturate(.4) }
.cf-vias.hay .cf-via--propios:not(.es-on){ opacity:1; filter:none; --tono:#3A4757 }
.cf-vias.hay .cf-via--propios:not(.es-on) > *{ opacity:.6 }
.cf-via.es-on{ transform:translateY(-4px); box-shadow:0 0 0 2px var(--petroleo), 0 22px 44px -20px rgba(6,17,31,.45) }
.cf-via--propios.es-on{ box-shadow:0 0 0 2px var(--piedra), 0 0 0 4px var(--noche), 0 22px 44px -20px rgba(6,17,31,.55) }

/* combinación */
.cf-comb{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--e-sm) var(--e-lg); margin-top:var(--e-md); padding:var(--e-sm) 0; border-bottom:1px solid var(--filete) }
.cf-comb p{ margin:0; font-family:var(--sans); font-size:.95rem; line-height:1.5; color:var(--tinta-2); max-width:56ch }
.cf-comb p b{ color:var(--tinta) }
.cf-comb__l{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; align-items:center; gap:.35rem }
.cf-comb__l li{ display:inline-flex; align-items:center; gap:.35rem; font-family:var(--sans); font-size:.78rem; font-weight:650; color:var(--tinta-2) }
.cf-comb__l li::before{ content:""; width:.75rem; height:.75rem; border-radius:50%; background:var(--c); box-shadow:inset 0 0 0 1px rgba(14,23,38,.12) }
.cf-comb__l li:not(:last-child)::after{ content:"+"; margin-left:.2rem; color:var(--mudo); font-weight:500 }
.cf-comb--propios{ --c:var(--noche) } .cf-comb--estado{ --c:#9CC3BC } .cf-comb--oxi{ --c:#D9BE8C } .cf-comb--resultados{ --c:#B7AADA }

/* ---------------------------------------------------------------- recorrido de ocho pasos */
.cf-oxi{ margin-top:var(--e-2xl); padding:clamp(1.5rem,4vw,3.5rem); background:var(--noche); color:#DCE3E6; border-radius:var(--cf-r); scroll-margin-top:calc(var(--alto-nav) + 1rem); overflow:hidden; position:relative }
.cf-oxi::before{ content:""; position:absolute; inset:auto -10% 55% auto; width:38rem; height:38rem; border-radius:50%; background:radial-gradient(closest-side, rgba(20,80,79,.55), transparent); pointer-events:none }
.cf-oxi > *{ position:relative }
.cf-oxi__cab{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:var(--e-md) var(--e-xl); align-items:end; margin-bottom:var(--e-xl) }
.cf-oxi__cab .antetitulo{ color:var(--piedra); margin:0 0 var(--e-xs) }
.cf-oxi__t{ margin:0; font-family:var(--sans); font-size:var(--t-titular); line-height:1.1; letter-spacing:-.02em; color:var(--papel); max-width:17ch }
.cf-oxi__d p{ margin:0 0 var(--e-sm); color:var(--suave-claro); font-size:1rem; line-height:1.6 }
.cf-roles{ display:flex; flex-wrap:wrap; align-items:center; gap:.5rem .75rem }
.cf-roles__k{ font-family:var(--sans); font-size:.8rem; font-weight:600; color:var(--suave) }
.cf-roles ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.35rem }
.cf-chip{ display:inline-flex; align-items:center; gap:.42rem; font-family:var(--sans); font-size:.78rem; font-weight:650; line-height:1.2; padding:.3rem .72rem .3rem .6rem; border-radius:999px; white-space:nowrap; color:var(--papel); background:rgba(244,242,238,.07); box-shadow:inset 0 0 0 1px rgba(244,242,238,.14) }
.cf-chip::before{ content:""; width:.55rem; height:.55rem; border-radius:50%; background:var(--rc) }

/* pista */
.cf-pista{ position:relative; margin-bottom:var(--e-lg) }
.cf-pista__barra{ position:absolute; left:calc(100% / 16); right:calc(100% / 16); top:calc(.4rem + 22px - 1px); height:2px; background:rgba(244,242,238,.13); border-radius:2px }
.cf-pista__barra span{ position:absolute; left:0; top:0; height:100%; width:var(--lleno,0px); background:linear-gradient(90deg, var(--piedra), var(--papel)); border-radius:2px; transition:width .6s var(--salida), height .6s var(--salida) }
.cf-nodos{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:.25rem }
.cf-nodo{ min-width:0 }
.cf-nodo__b{ width:100%; display:flex; flex-direction:column; align-items:center; gap:.5rem; padding:.4rem .2rem .55rem; background:none; border:0; border-radius:var(--cf-rs); color:inherit; font:inherit; text-align:center; cursor:pointer; -webkit-tap-highlight-color:transparent }
.cf-nodo__n{ position:relative; display:grid; place-items:center; width:44px; height:44px; border-radius:50%; font-family:var(--sans); font-weight:700; font-size:1rem; font-variant-numeric:tabular-nums; color:var(--papel); background:var(--noche-2); box-shadow:inset 0 0 0 2px var(--rc); transition:transform .35s var(--salida), background .3s ease, color .3s ease, box-shadow .35s ease }
.cf-nodo__t{ font-family:var(--sans); font-size:.9rem; font-weight:600; line-height:1.22; color:var(--suave-claro); transition:color .25s ease; text-wrap:balance }
.cf-nodo__r{ font-family:var(--sans); font-size:.72rem; font-weight:600; color:var(--rc); opacity:.75; transition:opacity .25s ease }
.cf-nodo__b:hover .cf-nodo__n{ transform:translateY(-2px) }
.cf-nodo__b:hover .cf-nodo__t{ color:var(--papel) }
.cf-nodo__b:focus-visible{ outline:2px solid var(--piedra); outline-offset:2px }
.cf-nodo.es-hecho .cf-nodo__n{ background:var(--rc); color:var(--tinta) }
.cf-nodo.es-on .cf-nodo__n{ background:var(--rc); color:var(--tinta); transform:scale(1.14); box-shadow:inset 0 0 0 2px var(--rc), 0 0 0 6px rgba(244,242,238,.08), 0 0 0 7px color-mix(in srgb, var(--rc) 45%, transparent) }
.cf-nodo.es-on .cf-nodo__t{ color:var(--papel); font-weight:700 }
.cf-nodo.es-on .cf-nodo__r{ opacity:1 }
.cf-nodo__det{ display:none }

/* paneles */
.cf-paneles{ display:grid; --dx:28px }
.cf-paneles.atras{ --dx:-28px }
.cf-panel{ grid-area:1 / 1; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:var(--e-md) var(--e-xl); padding:clamp(1.25rem,3vw,2.4rem); border-radius:var(--cf-r); background:linear-gradient(135deg, rgba(244,242,238,.07), rgba(244,242,238,.03)); box-shadow:inset 0 0 0 1px rgba(244,242,238,.09); opacity:0; visibility:hidden; transform:translateX(var(--dx)); transition:opacity .4s ease, transform .55s var(--salida), visibility 0s linear .55s }
.cf-panel.sale{ transform:translateX(calc(var(--dx) * -1)) }
.cf-panel.es-on{ opacity:1; visibility:visible; transform:none; transition:opacity .45s ease .08s, transform .55s var(--salida) .04s, visibility 0s }
.cf-panel__k{ display:flex; align-items:baseline; gap:.6rem; margin:0 0 var(--e-xs) }
.cf-panel__num{ font-family:var(--sans); font-weight:700; font-size:clamp(2.8rem,2rem + 2.6vw,4.6rem); line-height:.85; letter-spacing:-.04em; color:var(--rc); font-variant-numeric:tabular-nums }
.cf-panel__de{ font-family:var(--sans); font-size:.85rem; font-weight:600; color:var(--suave) }
.cf-panel__t{ margin:0 0 var(--e-xs); font-family:var(--sans); font-size:var(--t-seccion); line-height:1.15; letter-spacing:-.015em; color:var(--papel) }
.cf-panel__pasa{ margin:0; font-family:var(--lee); font-size:clamp(1.02rem,.96rem + .3vw,1.18rem); line-height:1.6; color:#DCE3E6; max-width:46ch }
.cf-panel__b{ display:grid; align-content:start; gap:0 }
.cf-panel__fila{ display:grid; gap:.4rem; padding:var(--e-sm) 0; border-bottom:1px solid rgba(244,242,238,.1) }
.cf-panel__fila:first-child{ padding-top:.2rem }
.cf-panel__et{ font-family:var(--sans); font-size:.76rem; font-weight:650; color:var(--suave); letter-spacing:.01em }
.cf-panel__fila .cf-chip{ justify-self:start; font-size:.86rem; padding:.42rem .9rem .42rem .7rem; background:color-mix(in srgb, var(--rc) 16%, transparent); box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--rc) 45%, transparent) }
.cf-panel__fila--queda p{ margin:0; display:flex; gap:.55rem; align-items:flex-start; font-family:var(--sans); font-size:.98rem; line-height:1.45; color:var(--papel) }
.cf-panel__fila--queda .cf-ico{ color:var(--rc); margin-top:.08rem }
.cf-panel__nota{ display:flex; gap:.6rem; align-items:flex-start; margin-top:var(--e-sm); padding:.75rem .9rem; border-radius:var(--cf-rs); background:rgba(244,242,238,.05) }
.cf-panel__nota .cf-ico{ width:1.1rem; height:1.1rem; color:var(--suave); margin-top:.1rem }
.cf-panel__nota p{ margin:0; font-family:var(--sans); font-size:.85rem; line-height:1.45; color:var(--suave-claro) }

/* controles */
.cf-ctrl{ display:flex; align-items:center; flex-wrap:wrap; gap:.6rem; margin-top:var(--e-md) }
.cf-btn{ position:relative; overflow:hidden; display:inline-flex; align-items:center; gap:.45rem; min-height:44px; padding:.55rem 1.05rem; font-family:var(--sans); font-size:.9rem; font-weight:650; color:var(--papel); background:transparent; border:1px solid rgba(244,242,238,.25); border-radius:999px; cursor:pointer; transition:background .2s ease, border-color .2s ease, color .2s ease, opacity .2s ease }
.cf-btn:hover:not(:disabled){ background:rgba(244,242,238,.08); border-color:rgba(244,242,238,.5) }
.cf-btn:focus-visible{ outline:2px solid var(--piedra); outline-offset:3px }
.cf-btn:disabled{ opacity:.35; cursor:default }
.cf-btn--ant{ padding-left:.75rem } .cf-btn--sig{ padding-right:.75rem }
.cf-ctrl__cuenta{ margin:0 .3rem; font-family:var(--sans); font-size:.9rem; color:var(--suave); font-variant-numeric:tabular-nums; min-width:3.2rem; text-align:center }
.cf-ctrl__cuenta b{ color:var(--papel) }
.cf-btn--auto{ margin-left:auto; background:var(--piedra); color:var(--tinta); border-color:var(--piedra); padding-left:.8rem }
.cf-btn--auto:hover:not(:disabled){ background:var(--piedra-2); border-color:var(--piedra-2) }
.cf-btn__ic{ display:inline-grid }
.cf-btn__ic .cf-ico{ width:1.05rem; height:1.05rem }
.cf-btn__ic--play .cf-ico{ fill:currentColor }
.cf-btn__ic--pausa{ display:none }
.cf-btn--auto[aria-pressed="true"] .cf-btn__ic--play{ display:none }
.cf-btn--auto[aria-pressed="true"] .cf-btn__ic--pausa{ display:inline-grid }
.cf-btn__reloj{ position:absolute; left:0; bottom:0; height:3px; width:100%; background:var(--petroleo); transform:scaleX(0); transform-origin:left }
.cf-btn--auto.corre .cf-btn__reloj{ animation:cf-reloj var(--dur,5s) linear forwards }

@keyframes cf-reloj{ to{ transform:scaleX(1) } }
@keyframes cf-sube{ from{ opacity:0; transform:translateY(4px) } to{ opacity:1; transform:none } }

/* ---------------------------------------------------------------- responsivo */
@media (max-width:1100px){
  .cf-via--oxi{ column-gap:var(--e-md) }
  .cf-nodo__t{ font-size:.84rem }
}
@media (max-width:960px){
  .cf-cab{ grid-template-columns:1fr; gap:var(--e-sm) }
  .cf-elige{ padding:var(--e-sm) }
  .cf-elige__l{ grid-template-columns:repeat(2,minmax(0,1fr)) }
  .cf-vias{ grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-areas:"propios propios" "resultados estado" "oxi oxi" }
  .cf-oxi__cab{ grid-template-columns:1fr; gap:var(--e-sm) }
  .cf-panel{ grid-template-columns:1fr; gap:var(--e-sm) }
}
@media (max-width:820px){
  /* línea de tiempo vertical */
  .cf-pista{ margin-bottom:0 }
  .cf-nodos{ grid-template-columns:1fr; gap:0 }
  .cf-pista__barra{ left:21px; right:auto; top:30px; bottom:30px; width:2px; height:auto }
  .cf-pista__barra span{ width:100%; height:var(--lleno,0px); background:linear-gradient(180deg, var(--piedra), var(--papel)) }
  .cf-nodo{ position:relative }
  .cf-nodo__b{ flex-direction:row; align-items:center; text-align:left; gap:.9rem; padding:.5rem 0; min-height:60px }
  .cf-nodo__t{ font-size:1rem; flex:1 }
  .cf-nodo__r{ font-size:.74rem }
  .cf-nodo.es-on .cf-nodo__n{ transform:scale(1.06) }
  .cf-nodo__det{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .45s var(--salida); padding-left:calc(44px + .9rem) }
  .cf-nodo__det > div{ overflow:hidden; min-height:0 }
  .cf-nodo.es-on .cf-nodo__det{ grid-template-rows:1fr }
  .cf-nodo__det p{ margin:0 0 .6rem; font-family:var(--lee); font-size:1rem; line-height:1.55; color:#DCE3E6 }
  .cf-nodo__det .cf-nodo__queda{ font-family:var(--sans); font-size:.92rem; color:var(--papel); display:grid; gap:.15rem }
  .cf-nodo__queda b{ font-size:.74rem; font-weight:650; color:var(--rc) }
  .cf-nodo__det .cf-nodo__nota{ font-family:var(--sans); font-size:.84rem; color:var(--suave-claro); padding:.6rem .75rem; border-radius:var(--cf-rs); background:rgba(244,242,238,.05) }
  .cf-nodo__det > div > :last-child{ margin-bottom:1rem }
  .cf-paneles{ display:none }
  .cf-ctrl{ display:none }
}
@media (max-width:600px){
  .cf-vias{ grid-template-columns:1fr; grid-template-areas:"propios" "resultados" "estado" "oxi" }
  .cf-via--oxi{ grid-template-columns:1fr }
  .cf-via--oxi > .cf-via__l{ grid-column:1; grid-row:auto; padding:var(--e-sm) 0 0; border-left:0; border-top:1px solid rgba(14,23,38,.1) }
  .cf-via__ir{ flex-wrap:wrap }
  .cf-mini{ max-width:none; flex-basis:100% }
  .cf-elige__l{ grid-template-columns:1fr }
  .cf-comb{ flex-direction:column; align-items:flex-start }
}
@media (prefers-reduced-motion:reduce){
  .cf *, .cf *::before, .cf *::after{ transition:none !important; animation:none !important }
  .cf-btn--auto{ display:none }
  .cf-panel{ transform:none }
}

/* v25 · la única cifra de Obras por Impuestos de la página, con fuente y fecha */
.cf-oxi__d .cf-oxi__cifra{ margin:0 0 var(--e-md); padding:.8rem 0 0; border-top:1px solid rgba(255,255,255,.16); font:400 .92rem/1.55 var(--sans); color:var(--suave-claro) }
.cf-oxi__cifra b{ display:block; margin-bottom:.15rem; font:650 1.5rem/1.15 var(--sans); letter-spacing:-.01em; color:#fff; font-variant-numeric:lining-nums }
.cf-oxi__f{ color:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.16em }
.cf-oxi__f:hover{ color:#fff }
.cf-oxi__f:focus-visible{ outline:2px solid var(--piedra); outline-offset:2px; border-radius:2px }
.cf-oxi__f svg{ display:inline; vertical-align:-1px; margin-left:.15rem }
