@charset "UTF-8";
/* ============================================================================
   CONECTA COMUNIDAD · PÁGINAS · v13
   Proyectos, Nosotros, Contacto y 404. Se carga después de interiores.css y
   solo en estas cuatro páginas, así que puede ajustar clases compartidas sin
   tocar las demás. Reglas: titulares contenidos (var(--t-display), var(--t-h2)),
   cabeceras de sección centradas, objetivos táctiles de 44 px, movimiento
   reducido respetado.
   ========================================================================== */

/* ---------- Escala contenida en aperturas ---------- */
.ap__t{ font-size:min(var(--t-display), 3.6rem); line-height:1.04; max-width:16ch }
@media (max-width:40rem){ .ap__t{ font-size:clamp(2rem, 1.3rem + 3.6vw, 2.5rem) } }
.franja__t{ font-size:var(--t-h2); max-width:20ch }

/* ---------- Cabecera de sección centrada ---------- */
.pg-cab{ display:flex; flex-direction:column; align-items:center; text-align:center; max-width:46rem; margin:0 auto clamp(2rem,4vw,3.25rem) }
.pg-cab .rotulo{ margin-bottom:var(--e-xs) }
.pg-cab__t,.pg-cab .titular,.pg-cab .h2{ font-family:var(--sans); font-size:var(--t-h2); font-weight:650; line-height:1.06; letter-spacing:-.028em; font-stretch:103%;
  text-wrap:balance; color:var(--t1, var(--tinta)); margin:0 }
.pg-cab__d{ font-family:var(--lee, inherit); font-size:var(--t-lede); line-height:1.6; color:var(--t2); max-width:54ch; margin-top:var(--e-md); text-wrap:pretty }
.oscuro .pg-cab__t,.oscuro .pg-cab .titular{ color:var(--papel) }
.oscuro .pg-cab__d{ color:#C9D4D7 }

/* Grupos “1 de 2” centrados */
.grupo{ text-align:center; display:flex; flex-direction:column; align-items:center }
.grupo__d{ margin-inline:auto }

/* ============================================================================
   PROYECTOS
   ========================================================================== */
/* ---------- Apertura v15: escena fotográfica + tres lugares ----------
   La foto del patio de Ticumpinía ocupa la escena a sangre (con un velo que
   solo oscurece donde va el texto); los tres lugares montan sobre el borde
   inferior de la foto y bajan al papel, cada uno con su color. */
.pa{ position:relative; background:var(--papel) }
.pa__esc{ position:relative; isolation:isolate; overflow:hidden; color:var(--papel); text-align:center;
  min-height:clamp(34rem, 84svh, 50rem); display:flex; flex-direction:column; align-items:center;
  padding:calc(var(--alto-nav) + clamp(2.5rem,7vh,5rem)) 0 clamp(9rem,20vw,15rem) }
.pa__fondo{ position:absolute; inset:0; z-index:-2; background:var(--noche-2) }
.pa__fondo img{ width:100%; height:100%; object-fit:cover; object-position:50% 22%; filter:saturate(1.06) contrast(1.02) }
@media (prefers-reduced-motion:no-preference){ .pa__fondo img{ animation:pa-acerca 2.6s var(--salida) both } }
@keyframes pa-acerca{ from{ transform:scale(1.07) } to{ transform:none } }
.pa__esc::after{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(58% 50% at 50% 38%, rgba(10,26,47,.7) 0, rgba(10,26,47,.4) 60%, rgba(10,26,47,0) 100%),
    linear-gradient(to bottom, rgba(10,26,47,.72) 0, rgba(10,26,47,.18) 26%, rgba(10,26,47,.05) 55%, rgba(10,26,47,.42) 100%) }
.pa__texto{ display:flex; flex-direction:column; align-items:center; width:100% }
.pa__t{ max-width:15ch; margin-inline:auto; text-shadow:0 2px 24px rgba(6,17,31,.45) }
.pa__lede{ max-width:44ch; margin-inline:auto; color:#EEF1F2; text-shadow:0 1px 12px rgba(6,17,31,.6) }
.pa__esc .chip{ background:rgba(10,26,47,.42); backdrop-filter:blur(6px) }
.pa__pie{ position:absolute; right:var(--canal); bottom:clamp(7.6rem,17vw,13.4rem); margin:0; font-family:var(--sans); font-size:.72rem; letter-spacing:.02em;
  color:rgba(244,242,238,.82); text-shadow:0 1px 3px rgba(6,17,31,.8) }
.pa .entra-sube{ animation:sube .9s var(--salida) both; animation-delay:calc(var(--n,0) * 100ms + 120ms) }
@media (prefers-reduced-motion:reduce){ .pa .entra-sube{ animation:none } }

.pa__lugares{ position:relative; z-index:1; margin-top:clamp(-12.5rem,-17vw,-7rem); padding-bottom:clamp(2.5rem,5vw,4rem) }
.pa__lista{ list-style:none; margin:0; padding:0; display:grid; gap:clamp(1rem,2vw,1.75rem); grid-template-columns:1fr }
/* v16 · las tres tarjetas iguales: cuadradas y alineadas */
@media (min-width:48rem){ .pa__lista{ grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch } }
.pa-lugar a{ display:flex; flex-direction:column; height:100%; color:var(--tinta); text-decoration:none; border-radius:var(--r-lg) }
.pa-lugar a:focus-visible{ outline:3px solid var(--petroleo); outline-offset:4px }
.pa-lugar__foto{ position:relative; display:block; aspect-ratio:1/1; border-radius:var(--r-lg); overflow:hidden; isolation:isolate; background:var(--noche-2);
  box-shadow:0 26px 50px -30px rgba(6,17,31,.75) }
.pa-lugar__foto img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:var(--pos,50% 50%); transition:transform 1.2s var(--salida) }
.pa-lugar a:hover .pa-lugar__foto img{ transform:scale(1.045) }
.pa-lugar__n{ position:absolute; left:.9rem; top:.85rem; display:grid; place-items:center; width:2.4rem; height:2.4rem; border-radius:50%;
  background:var(--c); color:var(--tinta); font-family:var(--sans); font-size:.82rem; font-weight:700; letter-spacing:.02em; font-variant-numeric:tabular-nums;
  box-shadow:0 6px 16px -6px rgba(6,17,31,.6) }
.pa-lugar__txt{ display:flex; flex-direction:column; align-items:flex-start; gap:.3rem; padding:1.1rem .2rem 0; font-family:var(--sans); text-align:left }
.pa-lugar__txt small{ display:inline-flex; align-items:center; gap:.5rem; font-size:.74rem; font-weight:700; letter-spacing:.01em; text-transform:none; color:var(--mudo) }
.pa-lugar__txt small i{ width:.55rem; height:.55rem; border-radius:50%; background:var(--c); box-shadow:0 0 0 3px color-mix(in srgb, var(--c) 28%, transparent) }
.pa-lugar__txt b{ font-size:clamp(1.3rem,1.1rem + .6vw,1.6rem); font-weight:650; letter-spacing:-.02em; line-height:1.15; color:var(--tinta) }
.pa-lugar__ali{ font-size:.92rem; font-weight:600; color:var(--petroleo) }
.pa-lugar__d{ font-family:var(--lee); font-size:.98rem; line-height:1.55; color:var(--tinta-2); max-width:38ch; margin-top:.2rem; text-wrap:pretty }
.pa-lugar__ir{ display:inline-flex; align-items:center; gap:.45rem; min-height:var(--toque); font-size:.9rem; font-weight:650; color:var(--tinta) }
.pa-lugar__ir svg{ width:1rem; height:1rem; transition:transform .35s var(--salida) }
.pa-lugar a:hover .pa-lugar__ir svg{ transform:translateX(4px) }
.pa-lugar a:hover b{ text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:.18em; text-decoration-color:var(--c) }

/* Móvil: escena más baja y lugares en filas (foto a la izquierda, texto a la derecha) */
@media (max-width:39.99rem){
  .pa__esc{ min-height:0; padding:calc(var(--alto-nav) + 2.75rem) 0 3.6rem }
  .pa__fondo img{ object-position:58% 40% }
  .pa__pie{ bottom:1rem; right:1rem; font-size:.66rem }
  .pa__lugares{ margin-top:1.75rem }
  .pa__lista{ gap:1.1rem }
  .pa-lugar__n{ width:2rem; height:2rem; font-size:.74rem; left:.6rem; top:.6rem }
}
@media (max-width:47.99rem){
  .pa-lugar a{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:1rem; align-items:center }
  .pa-lugar__txt{ padding-top:0 }
  .pa-lugar__ir{ min-height:2.2rem }
}
@media (prefers-reduced-motion:reduce){ .pa-lugar__foto img,.pa-lugar__ir svg{ transition:none } .pa-lugar a:hover .pa-lugar__foto img{ transform:none } }

/* ---------- Lo que ya está cambiando ---------- */
.pg-cambios{ background:var(--niebla); padding-block:clamp(4rem,8vw,6.5rem) }
.pg-ambitos{ list-style:none; margin:0; padding:0; display:grid; gap:1rem; grid-template-columns:1fr; counter-reset:av }
@media (min-width:40rem){ .pg-ambitos{ grid-template-columns:repeat(2,minmax(0,1fr)) } }
@media (min-width:72rem){ .pg-ambitos{ grid-template-columns:repeat(4,minmax(0,1fr)) } }
.pg-ambito{ display:flex; flex-direction:column; background:var(--blanco); border-radius:var(--r-lg); overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--filete, rgba(14,23,38,.1)), 0 18px 40px -32px rgba(14,23,38,.5); transition:transform .4s var(--salida), box-shadow .4s ease }
.pg-ambito:hover{ transform:translateY(-4px); box-shadow:inset 0 0 0 1px rgba(14,23,38,.14), 0 30px 54px -30px rgba(14,23,38,.55) }
.pg-ambito__foto{ position:relative; aspect-ratio:4/3; overflow:hidden; isolation:isolate; background:var(--noche-2) }
.pg-ambito__foto img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:var(--pos,50% 50%); transition:transform 1.1s var(--salida) }
.pg-ambito:hover .pg-ambito__foto img{ transform:scale(1.05) }
.pg-ambito__foto::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(6,17,31,.86) 0, rgba(6,17,31,.25) 48%, rgba(6,17,31,0) 72%); pointer-events:none }
.pg-ambito__k{ position:absolute; z-index:1; left:1.15rem; right:1.15rem; bottom:1rem; margin:0; display:flex; align-items:baseline; gap:.6rem;
  font-family:var(--sans); font-size:clamp(1.15rem,1rem + .45vw,1.4rem); font-weight:650; letter-spacing:-.015em; line-height:1.15; color:var(--papel) }
.pg-ambito__k span{ font-size:.75rem; font-weight:700; letter-spacing:.14em; color:var(--sol-2) }
.pg-avs{ list-style:none; margin:0; padding:1.2rem 1.25rem 1.4rem; display:grid; gap:1.05rem; flex:1 }
.pg-avs li{ counter-increment:av; display:grid; grid-template-columns:2.1rem 1fr; column-gap:.75rem; row-gap:.2rem; font-family:var(--sans) }
.pg-avs li::before{ content:counter(av, decimal-leading-zero); grid-row:1 / span 2; font-size:1.35rem; font-weight:650; letter-spacing:-.03em; line-height:1.1; color:var(--petroleo); font-variant-numeric:tabular-nums }
.pg-avs b{ font-size:1rem; font-weight:650; line-height:1.3; color:var(--tinta) }
.pg-avs span{ font-size:.89rem; line-height:1.5; color:var(--tinta-2) }
.pg-avs li + li{ padding-top:1.05rem; border-top:1px solid rgba(14,23,38,.09) }
.pg-cuidado{ margin:1.5rem auto 0; max-width:46rem; display:flex; align-items:center; justify-content:center; gap:.9rem; padding:1rem 1.3rem; border-radius:999px;
  background:var(--noche); color:#DCE3E6; font-family:var(--sans); font-size:.93rem; line-height:1.45 }
.pg-cuidado b{ color:var(--papel) }
.pg-cuidado__ic{ flex:none; width:2.4rem; height:2.4rem; border-radius:50%; display:grid; place-items:center; color:var(--ac-lab); background:rgba(124,196,190,.16) }
.pg-cuidado__ic svg{ width:1.3rem; height:1.3rem }
.pg-cuidado p{ margin:0 }
@media (max-width:40rem){ .pg-cuidado{ border-radius:var(--r-lg); align-items:flex-start; text-align:left } }

/* ---------- Gobernanza: mapa interactivo alrededor de la escuela ----------
   v14: logos encuadrados en placas de tamaño fijo (object-fit:contain, sin
   recortes), nodos de igual ancho, mapa más amplio y, en móvil, la escuela
   arriba con los cuatro actores en una cuadrícula de 2 × 2. */
.pg-gob{ position:relative; isolation:isolate; overflow:hidden; background:var(--noche); color:var(--papel); padding-block:clamp(4.5rem,9vw,7rem) }
.pg-gob::before{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(45% 55% at 30% 50%, rgba(20,80,79,.55), transparent 70%), radial-gradient(35% 45% at 85% 20%, rgba(217,164,65,.1), transparent 70%) }
.gov{ display:grid; gap:clamp(1.75rem,3.5vw,3.5rem); align-items:center; max-width:74rem; margin-inline:auto }
@media (min-width:62rem){ .gov{ grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr) } }
.gov__mapa{ position:relative; width:100%; max-width:38rem; aspect-ratio:1; margin-inline:auto }
.gov__lineas{ position:absolute; inset:0; width:100%; height:100%; overflow:visible }
.gov__orbita{ fill:none; stroke:rgba(244,242,238,.12); stroke-width:.3 }
.gov__orbita--2{ stroke:rgba(124,196,190,.16); stroke-dasharray:.6 1.4 }
.gov__l{ stroke:rgba(244,242,238,.34); stroke-width:.5; transition:stroke .35s ease, stroke-width .35s ease, opacity .35s ease }
.gov__l--proceso{ stroke-dasharray:2 1.6 }
.gov__l--comun{ stroke-dasharray:.4 1.3; stroke-linecap:round; stroke-width:.7 }
.gov[data-sel] .gov__l{ opacity:.35 }
.gov[data-sel="escuela"] .gov__l{ opacity:1; stroke:rgba(232,194,112,.6) }
.gov__l.es-activa{ opacity:1; stroke:var(--sol-2); stroke-width:.85 }
@media (prefers-reduced-motion:no-preference){
  .gov__l.es-activa{ stroke-dasharray:2 1.4; animation:gov-flujo 1.6s linear infinite }
  .gov__l--comun.es-activa{ stroke-dasharray:.4 1.3 }
}
@keyframes gov-flujo{ to{ stroke-dashoffset:-6.8 } }

.gov__nodo{ position:absolute; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:.45rem;
  width:clamp(8rem, 27%, 10rem); min-height:var(--toque); padding:.85rem .6rem .8rem; border:0; border-radius:var(--r-lg); cursor:pointer;
  background:rgba(17,37,63,.94); color:var(--papel); text-align:center; font-family:var(--sans);
  box-shadow:inset 0 0 0 1px rgba(244,242,238,.16), 0 18px 36px -24px rgba(0,0,0,.7);
  transition:background .3s ease, box-shadow .3s ease, transform .35s var(--salida) }
.gov__nodo:hover{ background:rgba(25,52,84,.97); box-shadow:inset 0 0 0 1px rgba(232,194,112,.55), 0 18px 36px -24px rgba(0,0,0,.7) }
.gov__nodo[aria-pressed="true"]{ background:var(--blanco); color:var(--tinta); box-shadow:0 0 0 3px var(--sol-2), 0 24px 48px -20px rgba(232,194,112,.45); transform:translate(-50%,-50%) scale(1.04) }
.gov__nodo:focus-visible{ outline:3px solid var(--sol-2); outline-offset:3px }
.gov__nodo--n{ left:50%; top:15% } .gov__nodo--e{ left:85%; top:50% } .gov__nodo--s{ left:50%; top:85% } .gov__nodo--o{ left:15%; top:50% }
.gov__nodo--centro{ left:50%; top:50%; width:clamp(9.5rem, 36%, 13.5rem); aspect-ratio:1; border-radius:50%; justify-content:center; gap:.5rem; padding:1.1rem;
  background:linear-gradient(160deg, var(--petroleo), var(--petroleo-hondo)); box-shadow:inset 0 0 0 1px rgba(244,242,238,.22), 0 0 0 10px rgba(20,80,79,.22), 0 30px 60px -30px rgba(0,0,0,.8) }
.gov__nodo--centro:hover{ background:linear-gradient(160deg, #18605F, var(--petroleo)) }
.gov__nodo--centro[aria-pressed="true"]{ background:var(--blanco); box-shadow:0 0 0 3px var(--sol-2), 0 0 0 14px rgba(232,194,112,.14), 0 30px 60px -30px rgba(0,0,0,.8) }

/* Placa del logo: tamaño fijo, la imagen se encaja entera dentro (nunca se recorta) */
.gov__logo{ box-sizing:border-box; width:4rem; height:4rem; flex:none; display:flex; align-items:center; justify-content:center; padding:.4rem; border-radius:.85rem; background:var(--blanco); overflow:hidden }
.gov__logo img{ display:block; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; filter:none }
.gov__nodo--o .gov__logo{ width:6.2rem; padding:.55rem .6rem }
.gov__nodo--centro .gov__logo{ width:4.6rem; height:4.6rem; border-radius:1rem; padding:.45rem }
.gov__txt{ display:flex; flex-direction:column; align-items:center; gap:.22rem }
.gov__sigla{ font-size:.74rem; font-weight:750; letter-spacing:.06em; color:var(--petroleo) }
.gov__nodo b{ font-size:.95rem; font-weight:650; line-height:1.18; letter-spacing:-.01em; text-wrap:balance }
.gov__nodo small{ font-size:.75rem; font-weight:600; line-height:1.25; color:var(--sol-2); text-wrap:balance }
.gov__nodo[aria-pressed="true"] small{ color:var(--petroleo) }

.gov__panel{ position:relative; min-height:100% }
.gov__ficha{ padding:clamp(1.4rem,2.6vw,2.2rem); border-radius:var(--r-xl); background:rgba(244,242,238,.05);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), inset 0 0 0 1px rgba(244,242,238,.14) }
.gov__ficha + .gov__ficha{ margin-top:1rem }
.gov--js .gov__ficha + .gov__ficha{ margin-top:0 }
.gov--js .gov__ficha[hidden]{ display:none }
@media (prefers-reduced-motion:no-preference){ .gov--js .gov__ficha{ animation:gov-entra .45s var(--salida) both } }
@keyframes gov-entra{ from{ opacity:0; transform:translateY(8px) } to{ opacity:1; transform:none } }
.gov__rel{ display:inline-block; margin:0; padding:.32rem .75rem; border-radius:.75rem; line-height:1.45; background:rgba(232,194,112,.12); font-family:var(--sans); font-size:.74rem; font-weight:700; letter-spacing:.01em; text-transform:none; color:var(--sol-2) }
.gov__t{ font-family:var(--sans); font-size:clamp(1.5rem,1.2rem + 1vw,2.1rem); font-weight:650; letter-spacing:-.022em; line-height:1.12; color:var(--papel); margin:.75rem 0 0 }
.gov__d{ font-family:var(--lee, inherit); font-size:1.04rem; line-height:1.65; color:#DCE3E6; margin-top:.8rem }
.gov__dl{ margin:1.3rem 0 0; display:grid; gap:0; font-family:var(--sans) }
.gov__dl div{ display:grid; grid-template-columns:9rem 1fr; gap:1rem; padding:.85rem 0; border-top:1px solid rgba(244,242,238,.12) }
.gov__dl dt{ font-size:.82rem; font-weight:650; color:var(--ac-lab) }
.gov__dl dd{ margin:0; font-size:.94rem; line-height:1.5; color:var(--papel) }
@media (max-width:30rem){ .gov__dl div{ grid-template-columns:1fr; gap:.2rem } }
.gov__estado{ display:inline-flex; align-items:center; gap:.6rem }
.gov__estado::before,.gov__leyenda i{ content:""; flex:none; width:1.6rem; height:0; border-top:2px solid var(--sol-2) }
.gov__estado[data-e="proceso"]::before,.gov__leyenda i[data-e="proceso"]{ border-top-style:dashed }
.gov__estado[data-e="comun"]::before,.gov__leyenda i[data-e="comun"]{ border-top-style:dotted; border-top-width:3px }
.gov__leyenda{ list-style:none; margin:clamp(1.5rem,3vw,2.5rem) 0 0; padding:0; display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem 1.8rem;
  font-family:var(--sans); font-size:.86rem; color:#C9D4D7 }
.gov__leyenda li{ display:inline-flex; align-items:center; gap:.6rem }
.gov__leyenda i{ display:inline-block }

/* Pantallas medianas: nodos algo más compactos */
@media (min-width:40.01rem) and (max-width:61.99rem){ .gov__mapa{ max-width:34rem } }

/* Móvil: la escuela arriba y los cuatro actores en cuadrícula, sin órbitas */
@media (max-width:40rem){
  .gov__mapa{ aspect-ratio:auto; max-width:26rem; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem }
  .gov__lineas{ display:none }
  .gov__nodo,.gov__nodo[aria-pressed="true"]{ position:relative; left:auto; top:auto; transform:none; width:auto; padding:.9rem .6rem .85rem; border-radius:var(--r-md) }
  .gov__nodo--centro{ grid-column:1 / -1; aspect-ratio:auto; border-radius:var(--r-lg); flex-direction:row; justify-content:flex-start; gap:.9rem; padding:.9rem 1rem; text-align:left;
    box-shadow:inset 0 0 0 1px rgba(244,242,238,.22), 0 20px 40px -28px rgba(0,0,0,.8) }
  .gov__nodo--centro[aria-pressed="true"]{ box-shadow:0 0 0 3px var(--sol-2), 0 20px 40px -28px rgba(0,0,0,.8) }
  .gov__nodo--centro .gov__txt{ align-items:flex-start }
  .gov__nodo--n{ order:1 } .gov__nodo--e{ order:2 } .gov__nodo--o{ order:3 } .gov__nodo--s{ order:4 }
  .gov__logo{ width:3.4rem; height:3.4rem; padding:.32rem }
  .gov__nodo--o .gov__logo{ width:5.4rem }
  .gov__nodo--centro .gov__logo{ width:3.8rem; height:3.8rem }
  .gov__nodo b{ font-size:.9rem }
  .gov__nodo small{ font-size:.72rem }
}
/* v15: orden. El mapa y su leyenda forman una sola columna; los nodos
   satélite tienen la misma medida y el estado del vínculo es una píldora. */
.gov__izq{ display:flex; flex-direction:column; align-items:center; gap:clamp(1rem,2vw,1.5rem); min-width:0 }
.gov__nodo:not(.gov__nodo--centro){ width:clamp(8.5rem, 27%, 10.25rem); height:8.9rem; justify-content:center; padding:.75rem .6rem }
.gov__leyenda{ margin:0; gap:.5rem 1.4rem; padding:.7rem 1.3rem; border-radius:999px; background:rgba(244,242,238,.05); font-size:.82rem }
.gov__ficha{ display:flex; flex-direction:column; align-items:flex-start }
.gov__dl{ width:100% }
.gov__dl div{ grid-template-columns:8.5rem 1fr; align-items:baseline }
.gov__dl div:last-child{ padding-bottom:0 }
.gov__estado{ padding:.38rem .85rem .38rem .75rem; border-radius:999px; background:rgba(232,194,112,.13); font-weight:600; line-height:1.3 }
.gov__estado::before{ width:1.2rem }
@media (min-width:62rem){ .gov{ align-items:center } .gov__panel{ align-self:center } }
@media (max-width:40rem){
  .gov__izq{ gap:1rem }
  .gov__dl div{ grid-template-columns:1fr; gap:.3rem }
  .gov__estado{ margin-top:.15rem }
  .gov__nodo:not(.gov__nodo--centro){ width:auto; height:auto; min-height:9rem }
  .gov__nodo[data-e]::after{ content:""; width:1.5rem; height:0; margin-top:.1rem; border-top:2px solid var(--sol-2) }
  .gov__nodo[data-e="proceso"]::after{ border-top-style:dashed }
  .gov__nodo[data-e="comun"]::after{ border-top-style:dotted; border-top-width:3px }
  .gov__nodo[aria-pressed="true"][data-e]::after{ border-top-color:var(--petroleo) }
  .gov__leyenda{ border-radius:var(--r-md); padding:.75rem 1rem; gap:.45rem 1.1rem; font-size:.78rem; max-width:26rem }
  .gov__leyenda i{ width:1.2rem }
}
@media (prefers-reduced-motion:reduce){
  .pg-ambito,.pg-ambito__foto img,.gov__nodo,.gov__l{ transition:none }
  .pg-ambito:hover{ transform:none } .pg-ambito:hover .pg-ambito__foto img{ transform:none }
}

/* Aliados: los pinta aliados.js (MARCA) en dos grupos, logos a color sin placas ni bordes. */
.aliados-banda .pg-cab{ margin-bottom:0 }

/* ============================================================================
   NOSOTROS
   ========================================================================== */
/* Apertura: la foto del fundador a sangre, con un velo de noche que la funde
   con el texto. El retrato queda arriba; el texto, centrado debajo. */
.pg-nos-ap{ position:relative; isolation:isolate; overflow:hidden; background:var(--noche); color:var(--papel); text-align:center }
.pg-nos-ap__foto{ position:relative; margin:0; height:clamp(28rem, 80svh, 54rem); overflow:hidden; background:var(--noche-2) }
.pg-nos-ap__foto img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:52% 64%; filter:saturate(.9) }
.pg-nos-ap__foto::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(to bottom, rgba(10,26,47,.62) 0, rgba(10,26,47,0) 22%),
    linear-gradient(to top, var(--noche) 0, rgba(10,26,47,.82) 16%, rgba(10,26,47,.18) 46%, rgba(10,26,47,0) 62%),
    linear-gradient(90deg, rgba(10,26,47,.35), rgba(10,26,47,0) 30%, rgba(10,26,47,0) 70%, rgba(10,26,47,.35)) }
@media (prefers-reduced-motion:no-preference){ .pg-nos-ap__foto img{ animation:pg-acerca 2.4s var(--salida) both } }
@keyframes pg-acerca{ from{ transform:scale(1.06); opacity:.4 } to{ transform:none; opacity:1 } }
.pg-nos-ap__in{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; margin-top:clamp(-4.5rem,-6vh,-2.5rem); padding-bottom:clamp(3.5rem,7vw,5.5rem) }
.pg-nos-ap__t{ font-family:var(--sans); font-size:min(var(--t-display), 3.5rem); font-weight:650; line-height:1.05; letter-spacing:-.03em; font-stretch:103%;
  max-width:20ch; margin-top:var(--e-md); text-wrap:balance; color:var(--papel) }
.pg-nos-ap__lede{ font-family:var(--sans); font-size:clamp(1rem,.93rem + .4vw,1.2rem); line-height:1.6; color:#DCE3E6; max-width:48ch; margin-top:var(--e-md); text-wrap:pretty }
.pg-firma{ margin-top:var(--e-lg); display:inline-flex; align-items:center; gap:.4rem; padding:.55rem 1.1rem; border-radius:999px;
  font-family:var(--sans); font-size:.95rem; color:var(--sol-2); box-shadow:inset 0 0 0 1px rgba(232,194,112,.4) }
.pg-firma b{ color:var(--papel); font-weight:650 }
.pg-indice{ justify-content:center; margin-top:var(--e-lg) }
.pg-nos-ap .entra-sube{ animation:sube .9s var(--salida) both; animation-delay:calc(var(--n,0) * 100ms + 160ms) }
@media (prefers-reduced-motion:reduce){ .pg-nos-ap .entra-sube{ animation:none } }
@media (max-width:47.99rem){
  .pg-nos-ap__foto{ height:auto; aspect-ratio:4/5; max-height:82svh }
  .pg-nos-ap__foto img{ object-position:50% 40% }
  .pg-nos-ap__t{ font-size:clamp(1.9rem, 1.3rem + 3.2vw, 2.4rem) }
}

/* Historia */
.pg-historia__texto{ max-width:44rem; margin:0 auto; text-align:center }
.pg-historia__texto .lede{ max-width:none; margin:0 auto }
.pg-historia__texto .cuerpo{ margin:var(--e-md) auto 0; max-width:none; color:var(--tinta-2) }
.pg-etapas{ list-style:none; margin:clamp(2.5rem,5vw,3.5rem) auto 0; padding:0; max-width:64rem; display:grid; gap:1rem; position:relative }
@media (min-width:48rem){ .pg-etapas{ grid-template-columns:repeat(3,minmax(0,1fr)) }
  .pg-etapas::before{ content:""; position:absolute; left:16.66%; right:16.66%; top:1.05rem; height:1px; background:linear-gradient(90deg, var(--petroleo), var(--sol)) } }
.pg-etapas li{ position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; gap:.3rem; font-family:var(--sans); padding-top:2.9rem }
.pg-etapas li::before{ content:""; position:absolute; top:.45rem; left:50%; width:1.2rem; height:1.2rem; margin-left:-.6rem; border-radius:50%; background:var(--papel);
  box-shadow:inset 0 0 0 3px var(--petroleo), 0 0 0 6px var(--papel) }
.pg-etapas li:last-child::before{ box-shadow:inset 0 0 0 3px var(--sol), 0 0 0 6px var(--papel); background:var(--sol) }
.pg-etapas__k{ font-size:.75rem; font-weight:700; letter-spacing:.01em; text-transform:none; color:var(--petroleo) }
.pg-etapas b{ font-size:1.2rem; font-weight:650; letter-spacing:-.015em; color:var(--tinta) }
.pg-etapas li > span:last-child{ font-size:.92rem; line-height:1.5; color:var(--tinta-2); max-width:26ch }
.pg-cita{ margin:clamp(3rem,6vw,4.5rem) auto 0; max-width:44rem; text-align:center; padding:clamp(1.6rem,3vw,2.4rem) clamp(1.2rem,3vw,2.4rem);
  border-radius:var(--r-xl); background:var(--noche); color:var(--papel); position:relative; overflow:hidden; isolation:isolate }
.pg-cita::before{ content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(70% 90% at 50% 0%, rgba(20,80,79,.6), transparent 70%) }
.pg-cita blockquote{ margin:0 }
.pg-cita p{ font-family:var(--sans); font-size:clamp(1.4rem,1.1rem + 1.2vw,2.1rem); font-weight:650; line-height:1.18; letter-spacing:-.02em; text-wrap:balance }
.pg-cita figcaption{ margin-top:var(--e-sm); font-family:var(--sans); font-size:.92rem; line-height:1.6; color:#DCE3E6 }
.pg-cita cite{ font-style:normal; font-weight:650; color:var(--papel) }
.pg-cita__a{ display:flex; width:fit-content; margin:.25rem auto 0; align-items:center; min-height:var(--toque); padding-inline:.5rem; color:var(--sol-2); font-weight:650; text-decoration:underline; text-underline-offset:.2em }
.pg-cita__a:hover{ color:var(--papel) }
.pg-cita__a:focus-visible{ outline:2px solid var(--sol-2); outline-offset:2px; border-radius:4px }

/* Formación: línea de tiempo de cinco hitos.
   Escritorio y tableta: cinco columnas iguales; las filas (estado, círculo,
   título, institución) se comparten con subgrid para que todo quede alineado.
   Cada hito dibuja el tramo hacia el siguiente, detrás de los círculos.
   Al pasar el cursor o enfocar un hito, el trazo dorado avanza hasta él. */
.pg-tl{ --punto:2.75rem; --aro:var(--niebla); --via:color-mix(in srgb, var(--petroleo) 28%, var(--niebla)); --oro:var(--sol);
  max-width:72rem; margin:0 auto; text-align:center }
.pg-tl__linea{ list-style:none; margin:0; padding:0; position:relative; isolation:isolate; display:grid; font-family:var(--sans) }
.pg-tl__hito{ position:relative; outline:none; cursor:default; border-radius:.75rem }
.pg-tl__punto{ position:relative; z-index:1; display:grid; place-items:center; width:var(--punto); height:var(--punto); border-radius:50%;
  font-size:.9rem; font-weight:700; letter-spacing:.02em; font-variant-numeric:tabular-nums; color:var(--noche); background:var(--sol-2);
  box-shadow:0 0 0 6px var(--aro); transition:transform .35s var(--salida), background-color .3s ease, color .3s ease, box-shadow .3s ease }
.pg-tl__hito[data-estado="curso"] .pg-tl__punto{ background:var(--aro); color:var(--petroleo); box-shadow:0 0 0 6px var(--aro), inset 0 0 0 2px var(--sol) }
.pg-tl__k{ font-size:.72rem; font-weight:700; letter-spacing:.01em; text-transform:none; line-height:1.4; color:var(--petroleo); text-wrap:balance }
.pg-tl__hito[data-estado="curso"] .pg-tl__k{ color:#7A5818 }
.pg-tl__k{ display:flex; flex-direction:column; align-items:inherit; gap:.15rem }
.pg-tl__sep{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap }
.pg-tl__q{ font-size:.8rem; font-weight:500; letter-spacing:0; text-transform:none; color:var(--tinta-2) }
.pg-tl__t{ font-size:1rem; font-weight:650; line-height:1.32; color:var(--tinta); text-wrap:balance; transition:color .3s ease }
.pg-tl__u{ font-size:.87rem; line-height:1.45; color:var(--tinta-2); text-wrap:balance }
.pg-tl__hito > :not(.pg-tl__punto){ transition:opacity .35s ease, color .3s ease }

/* tramo hacia el siguiente hito: base (sólida si el siguiente está concluido, punteada si está en curso) y capa dorada encima */
.pg-tl__hito:not(:last-child)::after{ content:""; position:absolute; z-index:0; pointer-events:none;
  --base:linear-gradient(var(--via),var(--via));
  background:linear-gradient(var(--oro),var(--oro)) no-repeat 0 0 / var(--oro-x,0%) var(--oro-y,100%), var(--base);
  transition:background-size .45s cubic-bezier(.3,.7,.2,1); transition-delay:calc(var(--k) * .12s) }
.pg-tl__hito:has(+ [data-estado="curso"])::after{ --base:repeating-linear-gradient(var(--dir,90deg), rgba(20,80,79,.45) 0 5px, transparent 5px 10px) }
/* reposo: dorado hasta el último hito concluido, una vez visible */
.pg-tl.visto .pg-tl__hito:has(~ .pg-tl__hito:nth-child(3))::after,
.pg-tl:not([data-entra]) .pg-tl__hito:has(~ .pg-tl__hito:nth-child(3))::after{ --oro-x:100% }
/* hito activo: el dorado llega exactamente hasta él */
.pg-tl .pg-tl__linea:has(.pg-tl__hito:is(:hover,:focus)) .pg-tl__hito::after{ --oro-x:0%; transition-delay:0s }
.pg-tl .pg-tl__linea:has(.pg-tl__hito:is(:hover,:focus)) .pg-tl__hito:has(~ .pg-tl__hito:is(:hover,:focus))::after{ --oro-x:100%; transition-delay:calc(var(--k) * .09s) }

.pg-tl__hito:is(:hover,:focus) .pg-tl__punto{ transform:scale(1.12); background:var(--petroleo); color:var(--papel); box-shadow:0 0 0 6px var(--aro), 0 0 0 8px rgba(20,80,79,.2) }
.pg-tl__hito:is(:hover,:focus) .pg-tl__t{ color:var(--petroleo) }
.pg-tl__hito:focus-visible{ box-shadow:0 0 0 2px var(--niebla), 0 0 0 4px var(--petroleo) }
.pg-tl__linea:has(.pg-tl__hito:is(:hover,:focus)) .pg-tl__hito:not(:hover,:focus) > :not(.pg-tl__punto){ opacity:.55 }

.pg-tl__ley{ display:flex; justify-content:center; gap:1.5rem; margin-top:clamp(1.75rem,3vw,2.5rem); font-family:var(--sans); font-size:.78rem; color:var(--mudo) }
.pg-tl__ley span{ display:inline-flex; align-items:center; gap:.5rem }
.pg-tl__ley span::before{ content:""; width:1.6rem; height:2px; background:var(--sol) }
.pg-tl__ley-c::before{ background:repeating-linear-gradient(90deg, rgba(20,80,79,.45) 0 5px, transparent 5px 10px) !important }

@media (min-width:48.01rem){
  .pg-tl__linea{ grid-template-columns:repeat(5,minmax(0,1fr)); grid-template-rows:auto auto auto auto }
  .pg-tl__hito{ grid-row:span 4; display:grid; grid-template-rows:subgrid; justify-items:center; padding:.5rem 0 .75rem }
  .pg-tl__hito > :not(.pg-tl__punto){ padding-inline:clamp(.35rem,1vw,.85rem) }
  /* v17: todas las etiquetas arrancan arriba (la segunda línea queda reservada), así «Pregrado» comparte base con «Egresado» */
  .pg-tl__k{ grid-row:1; align-self:start; align-items:center; margin-bottom:1.1rem }
  .pg-tl__punto{ grid-row:2 }
  .pg-tl__t{ grid-row:3; align-self:start; max-width:22ch; margin-top:1.25rem }
  .pg-tl__u{ grid-row:4; align-self:start; max-width:24ch; margin-top:.4rem }
  .pg-tl__hito > *{ grid-column:1 }
  /* el tramo es un elemento más de la fila del círculo: va de su centro al del siguiente (columnas sin hueco) */
  .pg-tl__hito:not(:last-child)::after{ position:relative; grid-row:2; grid-column:1; align-self:center; justify-self:start; height:2px; width:100%; margin-left:50% }
}
@media (max-width:48rem){
  .pg-tl{ max-width:30rem; text-align:left }
  .pg-tl__hito{ display:grid; grid-template-columns:var(--punto) minmax(0,1fr); column-gap:1.1rem; align-items:start; padding:.35rem .5rem 1.55rem }
  .pg-tl__hito:last-child{ padding-bottom:.6rem }
  .pg-tl__punto{ grid-column:1; grid-row:1 / span 3 }
  .pg-tl__k{ grid-column:2; grid-row:1; align-items:flex-start; padding-top:.05rem }
  .pg-tl__t{ grid-column:2; grid-row:2; margin-top:.3rem }
  .pg-tl__u{ grid-column:2; grid-row:3; margin-top:.2rem }
  .pg-tl__hito:not(:last-child)::after{ --dir:180deg; --oro-y:var(--oro-x,0%); left:calc(.5rem + var(--punto) / 2 - 1px); width:2px; top:calc(.35rem + var(--punto) / 2); height:100%;
    background-size:100% var(--oro-y), auto }
  .pg-tl__ley{ justify-content:flex-start; padding-left:.65rem }
}
@media (prefers-reduced-motion:reduce){
  .pg-tl__punto,.pg-tl__t,.pg-tl__hito > *,.pg-tl__hito::after{ transition:none !important }
  .pg-tl__hito:is(:hover,:focus) .pg-tl__punto{ transform:none }
}

/* Por qué existimos y compromisos */
.pg-porque .reparto{ max-width:72rem; margin-inline:auto }
.pg-porque .cuerpo + .cuerpo{ margin-top:var(--e-sm) }
.comp7 .pg-cab__d{ color:#C9D4D7 }

/* ============================================================================
   CONTACTO
   ========================================================================== */
.pg-con-ap{ position:relative; isolation:isolate; overflow:hidden; background:var(--noche); color:var(--papel); text-align:center;
  min-height:clamp(32rem, 78svh, 46rem); display:flex; align-items:center;
  padding:calc(var(--alto-nav) + clamp(2rem,5vw,3.5rem)) 0 clamp(3rem,6vw,4.5rem) }
.pg-con-ap__foto{ position:absolute; inset:0; z-index:-2 }
.pg-con-ap__foto img{ width:100%; height:100%; object-fit:cover; object-position:50% 60% }
.pg-con-ap::after{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(70% 70% at 50% 55%, rgba(10,26,47,.78) 0, rgba(10,26,47,.6) 55%, rgba(10,26,47,.82) 100%), linear-gradient(to bottom, rgba(10,26,47,.55), rgba(10,26,47,0) 25%) }
.pg-con-ap__in{ display:flex; flex-direction:column; align-items:center; width:100% }
.pg-con-ap .ap__t,.pg-con-ap .ap__lede{ margin-inline:auto }
.pg-con-ap .con-ap__correo{ justify-items:center }
.pg-con-ap__pie{ margin-top:var(--e-lg); font-family:var(--sans); font-size:.8rem; color:#C9D4D7 }
.pg-con-ap .entra-sube{ animation:sube .9s var(--salida) both; animation-delay:calc(var(--n,0) * 100ms + 120ms) }
@media (prefers-reduced-motion:reduce){ .pg-con-ap .entra-sube{ animation:none } }

.pg-pasos{ list-style:none; margin:0 auto clamp(1.5rem,3vw,2.2rem); padding:0; max-width:48rem; display:grid; gap:.6rem; grid-template-columns:1fr }
@media (min-width:40rem){ .pg-pasos{ grid-template-columns:repeat(3,minmax(0,1fr)) } }
.pg-pasos li{ display:flex; align-items:center; gap:.7rem; padding:.8rem 1rem; border-radius:var(--r-md); background:var(--blanco);
  box-shadow:inset 0 0 0 1px rgba(14,23,38,.08); font-family:var(--sans); font-size:.9rem; line-height:1.35; color:var(--tinta-2) }
.pg-pasos b{ flex:none; width:2rem; height:2rem; border-radius:50%; display:grid; place-items:center; background:var(--petroleo); color:var(--papel); font-size:.9rem }
.pg-form__tarjeta{ max-width:48rem; margin:0 auto; padding:clamp(1.4rem,3.5vw,2.6rem); border-radius:var(--r-xl); background:var(--blanco);
  box-shadow:inset 0 0 0 1px rgba(14,23,38,.08), 0 30px 60px -40px rgba(14,23,38,.5) }
.pg-form__tarjeta .form input,.pg-form__tarjeta .form select,.pg-form__tarjeta .form textarea{ min-height:var(--toque) }
.pg-form__tarjeta .form button[type="submit"]{ min-height:3rem }
.pg-form__tarjeta .form > div:has(> #formEnviar){ display:flex; justify-content:center }
.pg-form__tarjeta .form__legal{ text-align:center; margin-inline:auto }
.pg-form__nota{ max-width:44rem; margin:var(--e-lg) auto 0; text-align:center; font-family:var(--sans); font-size:.92rem; line-height:1.6; color:var(--mudo) }

/* ============================================================================
   404
   ========================================================================== */
.e404{ align-items:center; text-align:center }
.e404::after{ background:radial-gradient(70% 70% at 50% 50%, rgba(10,26,47,.82) 0, rgba(10,26,47,.66) 60%, rgba(10,26,47,.86) 100%) }
.e404__in{ display:flex; flex-direction:column; align-items:center; width:100% }
.e404__folio{ font-size:clamp(4.5rem,11vw,7.5rem); line-height:.9 }
.e404__t{ font-size:min(var(--t-h2), 2.8rem); margin-inline:auto; text-wrap:balance }
.e404__p{ margin-inline:auto; text-wrap:pretty }
.e404__nav{ justify-content:center; gap:.5rem 1.8rem; max-width:44rem }

/* v16 · crédito de foto en franjas */
.franja__credito{ position:absolute; right:var(--canal); bottom:.7rem; margin:0; font-family:var(--sans); font-size:.72rem; color:rgba(244,242,238,.82); text-shadow:0 1px 3px rgba(6,17,31,.8) }

/* ============================================================================
   v17 · afinamiento
   ========================================================================== */
/* Nosotros: a 1440×900 la bajada entra en la primera pantalla */
@media (min-width:48rem){ .pg-nos-ap__foto{ height:clamp(26rem, 62svh, 54rem) } }
/* párrafos largos: en pantallas angostas se leen mejor alineados a la izquierda */
@media (max-width:37.49rem){ .pg-historia__texto p{ text-align:left } }

/* ============================================================================
   v22 · desarrollo territorial como raíz
   ========================================================================== */
/* Rótulos en tipo de oración, sin mayúsculas espaciadas (brief v22) */
.rotulo{ text-transform:none; letter-spacing:.005em; font-size:.92rem; font-weight:650 }
.pa-lugar__txt small,.gov__rel,.pg-etapas__k,.pg-tl__k,.linea__f,.con-ap__correo span{ text-transform:none; letter-spacing:.01em }
.pa-lugar__txt small,.pg-tl__k,.linea__f{ font-size:.8rem }
.con-ap__correo span{ font-size:.85rem }

/* Nosotros · fin, condición y punto de partida */
.pg-jer{ list-style:none; margin:0 auto clamp(2.2rem,4.5vw,3.5rem); padding:0; max-width:72rem; display:grid; grid-template-columns:1fr;
  border-block:1px solid var(--filete, rgba(14,23,38,.14)) }
.pg-jer li{ display:flex; flex-direction:column; gap:.35rem; padding:clamp(1.1rem,2.4vw,1.6rem) 0 }
.pg-jer li + li{ border-top:1px solid var(--filete, rgba(14,23,38,.14)) }
@media (min-width:48rem){
  .pg-jer{ grid-template-columns:repeat(3,minmax(0,1fr)) }
  .pg-jer li{ padding-inline:clamp(1rem,2.4vw,1.8rem) }
  .pg-jer li:first-child{ padding-left:0 }
  .pg-jer li + li{ border-top:0; border-left:1px solid var(--filete, rgba(14,23,38,.14)) }
}
.pg-jer__k{ font-family:var(--sans); font-size:.85rem; font-weight:650; color:var(--petroleo) }
.pg-jer__t{ font-family:var(--sans); font-size:clamp(1.2rem,1.05rem + .5vw,1.45rem); font-weight:650; line-height:1.2; letter-spacing:-.015em; color:var(--tinta) }
.pg-jer__d{ font-family:var(--lee, inherit); font-size:1rem; line-height:1.55; color:var(--t2); text-wrap:pretty }
.pg-jer .liga{ align-self:flex-start; margin-top:.35rem; font-family:var(--sans); font-size:.92rem }
.pg-capas{ list-style:none; margin:var(--e-sm) 0 var(--e-md); padding:0; display:flex; flex-wrap:wrap; gap:.45rem }
.pg-capas li{ font-family:var(--sans); font-size:.9rem; font-weight:600; padding:.4rem .85rem; border-radius:999px; background:rgba(20,80,79,.08); color:var(--petroleo-hondo, var(--petroleo)) }

/* Proyectos · cada proyecto leído como desarrollo territorial */
.grupo__liga{ margin:var(--e-sm) 0 0; font-family:var(--sans); font-size:.95rem }
.pg-dt-caja{ padding-block:clamp(1.6rem,3.2vw,2.4rem) 0 }
.pg-dt{ margin:0; display:grid; grid-template-columns:1fr; gap:0; border-block:1px solid var(--filete, rgba(14,23,38,.14)) }
.pg-dt__g{ padding:1rem 0 1.1rem }
.pg-dt__g + .pg-dt__g{ border-top:1px solid var(--filete, rgba(14,23,38,.14)) }
@media (min-width:56rem){
  .pg-dt{ grid-template-columns:1.15fr 1.15fr .8fr }
  .pg-dt__g{ padding:1.15rem 1.6rem 1.3rem }
  .pg-dt__g:first-child{ padding-left:0 }
  .pg-dt__g + .pg-dt__g{ border-top:0; border-left:1px solid var(--filete, rgba(14,23,38,.14)) }
}
.pg-dt dt{ font-family:var(--sans); font-size:.85rem; font-weight:650; color:var(--petroleo); margin:0 0 .55rem }
.pg-dt dd{ margin:0 }
.pg-dt ul{ list-style:none; margin:0; padding:0; display:grid; gap:.5rem }
.pg-dt li{ display:flex; flex-direction:column; gap:.05rem; line-height:1.35 }
.pg-dt li b{ font-family:var(--sans); font-size:1rem; font-weight:650; color:var(--tinta) }
.pg-dt li span{ font-family:var(--sans); font-size:.88rem; color:var(--t2) }
/* Callao: la ficha queda sobre fondo claro entre dos escenas oscuras */
#callao .pg-dt-caja{ padding-bottom:clamp(1.6rem,3.2vw,2.4rem) }

/* Proyectos · cierre hacia el diagnóstico */
.pg-sigue{ background:var(--niebla, #E9E5DC) }
.pg-sigue__in{ max-width:46rem; margin-inline:auto; text-align:center; display:flex; flex-direction:column; align-items:center }
.pg-sigue .h2{ text-wrap:balance; margin:0 }
.pg-sigue .cuerpo{ margin-top:var(--e-sm); max-width:44ch; text-wrap:pretty }
.pg-sigue__acc{ margin-top:var(--e-md); display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:.8rem 1.6rem }
.pg-sigue__acc .liga{ font-family:var(--sans) }

/* Contacto · el enlace de la cabecera respira */
.pg-form .pg-cab__d .liga{ white-space:nowrap }

/* ============================================================================
   v24 · rótulos en tipo de oración con cuerpo propio
   Sin mayúsculas, un rótulo de .74rem se pierde: se sube el cuerpo, se fija
   el peso y se le da color, para que siga marcando la jerarquía.
   ========================================================================== */
.pg-cab .rotulo,.franja__in .rotulo,.reparto aside > .rotulo{ font-size:1rem; font-weight:650; letter-spacing:0; line-height:1.35 }
.grupo__k{ font-size:.92rem; font-weight:650; letter-spacing:0; color:var(--petroleo) }
.gov__rel{ font-size:.84rem; font-weight:650; letter-spacing:0 }
.aliados-banda [data-aliados] .aliado__rel{ font-size:.84rem; font-weight:650; letter-spacing:0 }
.pa-lugar__txt small,.pg-tl__k,.linea__f{ font-size:.875rem; letter-spacing:0 }
.pg-tl__q{ font-size:.84rem }
.pg-tl__ley{ font-size:.875rem }
.pg-tl__ley span{ font-size:inherit }
.espacios__ir{ font-size:.84rem; font-weight:650 }
.con-ap__correo span{ font-size:.92rem; letter-spacing:0 }
.pg-jer__k{ font-size:.92rem }
