/* MARBIA Web — paleta de la Universidad de la Costa (rojo institucional y gris carbón) */
:root {
  --rojo: #C8102E;
  --rojo-hondo: #9E0B23;
  --carbon: #26272A;
  --pizarra: #5F6368;
  --linea: #DCDDD9;
  --papel: #F7F7F5;
  --blanco: #FFFFFF;
  --niebla: #EEF0F1;
  --verde: #3F7D4E;
  --ambar: #B7861F;
  --alerta: #A3261F;
  --serif: "Times New Roman", Times, "Liberation Serif", serif;
  --sans: "Source Sans 3", "Segoe UI", system-ui, sans-serif;
  --medida: 72ch;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--papel); color: var(--carbon); font: 17px/1.55 var(--sans); }
a { color: var(--rojo-hondo); text-underline-offset: 2px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, .zona:focus-within {
  outline: 3px solid var(--rojo); outline-offset: 2px;
}
.saltar { position: absolute; left: -999px; }
.saltar:focus { left: 16px; top: 8px; background: var(--blanco); padding: 6px 10px; z-index: 10; }
h1, h2, h3 { font-family: var(--serif); font-weight: 700; line-height: 1.15; color: var(--carbon); }
h1 { font-size: clamp(2rem, 4.2vw, 3.1rem); margin: 0 0 .4em; letter-spacing: -.01em; }
h2 { font-size: 1.6rem; margin: 2.2rem 0 .6rem; }
h3 { font-size: 1.25rem; margin: 1.6rem 0 .3rem; }

/* cabecera */
.cabecera { display: flex; flex-wrap: wrap; gap: 12px 32px; align-items: center; justify-content: space-between;
  padding: 14px clamp(16px, 4vw, 48px); background: var(--blanco); border-bottom: 3px solid var(--rojo); }
.cabecera__marca { display: flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.cabecera__marca .icono { width: 40px; height: 40px; }
.cabecera__marca strong { display: block; font-family: var(--serif); font-size: 1.35rem; letter-spacing: .04em; }
.cabecera__marca span { font-size: .85rem; color: var(--pizarra); }
.cabecera__marca .sello { width: 38px; height: 38px; display: grid; place-items: center; background: var(--rojo); color: var(--blanco);
  font: 700 1.3rem var(--serif); border-radius: 2px; }
.cabecera nav { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.cabecera nav a { color: var(--carbon); text-decoration: none; padding: 4px 0; border-bottom: 2px solid transparent; }
.cabecera nav a:hover { border-bottom-color: var(--linea); }
.cabecera nav a[aria-current="page"] { border-bottom-color: var(--rojo); font-weight: 600; }

main { max-width: 1120px; margin: 0 auto; padding: clamp(24px, 5vw, 56px) clamp(16px, 4vw, 48px) 64px; }
.pie { max-width: 1120px; margin: 0 auto; padding: 24px clamp(16px, 4vw, 48px) 40px; font-size: .85rem; color: var(--pizarra); border-top: 1px solid var(--linea); }

/* portada y pasos */
.portada h1 { max-width: 20ch; }
.entrada { font-family: var(--serif); font-size: 1.2rem; line-height: 1.6; max-width: var(--medida); color: #3a3b3e; margin: 0 0 28px; text-align: justify; hyphens: auto; }
.pasos { list-style: none; counter-reset: paso; display: flex; flex-wrap: wrap; gap: 8px 28px; padding: 0; margin: 0 0 28px; }
.pasos li { counter-increment: paso; color: var(--pizarra); display: flex; align-items: center; gap: 8px; }
.pasos li::before { content: counter(paso); width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center;
  border: 1.5px solid var(--linea); font-weight: 700; font-size: .85rem; background: var(--blanco); }
.pasos li.activo { color: var(--carbon); font-weight: 600; }
.pasos li.activo::before { background: var(--rojo); border-color: var(--rojo); color: var(--blanco); }

/* carga */
.carga { background: var(--blanco); border: 1px solid var(--linea); padding: clamp(18px, 3vw, 32px); max-width: 860px; }
.zona { position: relative; display: flex; flex-direction: column; gap: 4px; align-items: flex-start; justify-content: center; min-height: 150px;
  padding: 24px 28px; border: 2px dashed #C3C5C0; background: var(--papel); cursor: pointer; transition: border-color .15s, background .15s; }
.zona.sobre { border-color: var(--rojo); background: #FCF1F3; }
.zona input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.zona__titulo { font: 700 1.3rem var(--serif); }
.zona__nota { color: var(--pizarra); font-size: .9rem; }
.zona__archivo { margin-top: 8px; padding: 4px 10px; background: var(--carbon); color: var(--blanco); font-size: .9rem; }
.fila-campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin: 20px 0; }
label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: .92rem; }
label.bloque { margin: 14px 0; }
input[type=text], input[type=number], input[type=password], select, textarea {
  font: 400 1rem/1.45 var(--sans); color: var(--carbon); background: var(--blanco); border: 1px solid #BFC1BC; border-radius: 3px; padding: 9px 11px; width: 100%; }
textarea { resize: vertical; font-family: var(--serif); font-size: 1.02rem; }
.estado-indice { margin-top: 14px; font-size: .88rem; color: var(--pizarra); }

.boton { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 20px; border-radius: 3px; font: 600 1rem var(--sans);
  cursor: pointer; text-decoration: none; border: 1.5px solid transparent; }
.boton--principal { background: var(--rojo); color: var(--blanco); }
.boton--principal:hover { background: var(--rojo-hondo); }
.boton--principal:disabled { background: #D9A3AC; cursor: not-allowed; }
.boton--secundario { background: var(--blanco); color: var(--carbon); border-color: #A9ABA6; }
.boton--secundario:hover { border-color: var(--carbon); }
.boton--texto { background: none; border: none; color: var(--rojo-hondo); padding: 0 6px; min-height: 32px; text-decoration: underline; }
.acciones { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.mensaje { min-height: 1.4em; margin: 14px 0 0; }
.mensaje.error { color: var(--alerta); font-weight: 600; }
.mensaje.ok { color: var(--verde); font-weight: 600; }
.mensaje.trabajando::before { content: ""; display: inline-block; width: 12px; height: 12px; margin-right: 8px; border: 2px solid var(--linea); border-top-color: var(--rojo); border-radius: 50%; animation: giro .8s linear infinite; vertical-align: -1px; }
@keyframes giro { to { transform: rotate(360deg); } }

/* revisión */
.revision__cabeza p { max-width: var(--medida); color: var(--pizarra); }
.alertas { border-left: 4px solid var(--ambar); background: #FBF5E6; padding: 12px 18px; margin: 16px 0; }
.alertas p { margin: 0 0 4px; font-weight: 600; }
.alertas ul { margin: 0; padding-left: 20px; }
.unidad { position: relative; border: 1px solid var(--linea); background: var(--blanco); padding: 8px 22px 16px; margin: 18px 0; }
.unidad legend { font: 700 1.15rem var(--serif); padding: 0 6px; }
.unidad .quitar { position: absolute; right: 14px; top: 12px; background: none; border: none; color: var(--pizarra); text-decoration: underline; cursor: pointer; font: inherit; font-size: .88rem; }
.unidad details summary, .avanzado summary { cursor: pointer; color: var(--rojo-hondo); font-weight: 600; padding: 6px 0; }
.avanzado { margin: 26px 0 0; padding: 12px 20px; border: 1px solid var(--linea); background: var(--blanco); }
.parametros { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin: 10px 0 8px; }
.nota { color: var(--pizarra); font-size: .92rem; max-width: var(--medida); }

/* resultado */
.cargando { color: var(--pizarra); }
.r-cabeza { padding-bottom: 28px; border-bottom: 1px solid var(--linea); }
.r-programa { margin: 0 0 6px; color: var(--pizarra); }
.r-cabeza h1 { max-width: 26ch; }
.r-titular { font-family: var(--serif); font-size: 1.35rem; line-height: 1.45; max-width: 52ch; margin: 0 0 18px; }
.franja { display: flex; height: 30px; max-width: 760px; border-radius: 2px; overflow: hidden; }
.franja span { display: grid; place-items: center; color: var(--blanco); font-weight: 700; font-size: .9rem; min-width: 22px; }
.f-verde, .c-verde { background: var(--verde); }
.f-amarillo, .c-amarillo { background: var(--ambar); }
.f-rojo, .c-rojo { background: var(--alerta); }
.franja--mini { height: 10px; width: 140px; }
.leyenda { font-size: .85rem; color: var(--pizarra); display: flex; gap: 6px 14px; align-items: center; flex-wrap: wrap; margin: 8px 0 22px; }
.leyenda .c { display: inline-block; width: 10px; height: 10px; margin-right: -8px; }
.cifras { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 18px 28px; margin: 0; max-width: 900px; }
.cifras div { border-top: 1px solid var(--carbon); padding-top: 8px; }
.cifras dt { font-size: .85rem; color: var(--pizarra); }
.cifras dd { margin: 2px 0 0; font: 700 1.7rem var(--serif); }
.r-indice { position: sticky; top: 0; z-index: 2; display: flex; flex-wrap: wrap; gap: 4px 22px; padding: 12px 0; background: var(--papel); border-bottom: 1px solid var(--linea); }
.r-indice a { color: var(--carbon); font-size: .93rem; }
.r-seccion { scroll-margin-top: 60px; }
.unidad-r { margin-top: 10px; }
.unidad-r h3 { padding-top: 14px; border-top: 2px solid var(--carbon); }
.ra { font-family: var(--serif); font-style: italic; color: #45474b; max-width: var(--medida); margin: 0 0 8px; }

.indicador { padding: 14px 0 12px; border-bottom: 1px solid var(--linea); }
.indicador__fila { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 320px) 104px; gap: 18px; align-items: center; }
.indicador__texto { margin: 0; font-family: var(--serif); font-size: 1.08rem; line-height: 1.45; }
.indicador__regla svg { width: 100%; height: auto; display: block; overflow: visible; }
.zona-umbral { fill: var(--niebla); }
.eje { stroke: #9A9C97; stroke-width: 1; }
.umbral { stroke: var(--carbon); stroke-width: 1.4; stroke-dasharray: 3 2; }
.p-dentro { fill: var(--carbon); }
.p-fuera { fill: #A7A9A4; }
.esc { font: 9px var(--sans); fill: var(--pizarra); }
.sem { justify-self: start; font-size: .82rem; font-weight: 700; padding: 3px 10px; border-radius: 12px; color: var(--blanco); white-space: nowrap; }
.sem--verde { background: var(--verde); }
.sem--amarillo { background: var(--ambar); }
.sem--rojo { background: var(--alerta); }
.indicador__datos { font-size: .88rem; color: var(--pizarra); margin-top: 6px; }
.ver { background: none; border: none; padding: 4px 0; margin-top: 2px; color: var(--rojo-hondo); font: 600 .9rem var(--sans); cursor: pointer; text-decoration: underline; }
.obras { margin-top: 10px; overflow-x: auto; }

table { border-collapse: collapse; width: 100%; font-size: .9rem; }
caption { text-align: left; color: var(--pizarra); font-size: .85rem; padding-bottom: 6px; }
th { text-align: left; font-weight: 600; color: var(--pizarra); border-bottom: 1.5px solid var(--carbon); padding: 6px 8px; vertical-align: bottom; }
td { border-bottom: 1px solid var(--linea); padding: 8px; vertical-align: top; }
.num { text-align: right; white-space: nowrap; }
.t-titulo { min-width: 240px; font-family: var(--serif); font-size: 1rem; }
.autor, .disp, .rango { display: block; font-family: var(--sans); font-size: .8rem; color: var(--pizarra); }
.criterios { min-width: 150px; }
.criterios span { display: grid; grid-template-columns: 1fr 26px; align-items: center; gap: 6px; font-size: .72rem; color: var(--pizarra); position: relative; }
.criterios span::before { content: ""; grid-column: 1; grid-row: 1; height: 5px; background: var(--niebla); }
.criterios i { grid-column: 1; grid-row: 1; height: 5px; background: var(--carbon); display: block; }
.evid { min-width: 180px; }
.t-ref td.si { color: var(--verde); font-weight: 600; }
.t-ref td.no { color: var(--alerta); }
.etq { font-size: .75rem; color: var(--pizarra); font-style: italic; }
.vacio { color: var(--pizarra); }

.brechas { padding-left: 0; list-style: none; counter-reset: b; }
.brechas > li { counter-increment: b; position: relative; padding: 14px 0 14px 46px; border-bottom: 1px solid var(--linea); }
.brechas > li::before { content: counter(b); position: absolute; left: 0; top: 14px; font: 700 1.4rem var(--serif); color: var(--pizarra); }
.b-texto { font-family: var(--serif); font-size: 1.08rem; margin: 6px 0 2px; }
.b-dato, .b-sub { font-size: .9rem; color: var(--pizarra); margin: 2px 0; }
.b-accion { margin: 6px 0; }
.brechas ul { font-size: .88rem; margin: 4px 0 0; padding-left: 18px; }

.t-hist .franja--mini { margin-top: 6px; }
.catalogos { padding-left: 18px; }
.catalogos li { padding: 4px 0; }
.admin-form { max-width: 620px; display: grid; gap: 16px; background: var(--blanco); border: 1px solid var(--linea); padding: 22px; }
.aviso { border-left: 4px solid var(--ambar); padding: 10px 16px; background: #FBF5E6; max-width: var(--medida); }

.texto { max-width: var(--medida); }
.texto p { font-family: var(--serif); font-size: 1.12rem; line-height: 1.65; text-align: justify; hyphens: auto; }

@media (max-width: 760px) {
  .indicador__fila { grid-template-columns: 1fr; gap: 8px; }
  .r-indice { position: static; }
  body { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
@media print {
  .cabecera nav, .acciones, .r-indice, .ver, .pie { display: none; }
  body { background: #fff; font-size: 11pt; }
  .obras[hidden] { display: none; }
  .indicador { break-inside: avoid; }
}

/* triangulación */
.tri-unidad { background: var(--blanco); border: 1px solid var(--linea); border-top: 3px solid var(--carbon); padding: 16px clamp(16px, 3vw, 28px) 18px; margin: 18px 0; }
.tri-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.tri-cab h3 { margin: 0; }
.sem--sin-dato { background: var(--pizarra); }
.escalera { display: grid; gap: 7px; margin: 16px 0 12px; max-width: 760px; }
.esc-fila { display: grid; grid-template-columns: 230px minmax(0, 1fr) 92px; gap: 14px; align-items: center; font-size: .93rem; }
.esc-fila--nucleo { padding-top: 7px; border-top: 1px dashed #B9BBB6; font-weight: 600; }
.esc-barra { height: 12px; background: var(--niebla); position: relative; }
.esc-barra i { position: absolute; left: 0; top: 0; bottom: 0; }
.b-verde { background: var(--verde); } .b-amarillo { background: var(--ambar); } .b-rojo { background: var(--alerta); } .b-sin-dato { background: var(--pizarra); }
.esc-val { text-align: right; font-variant-numeric: tabular-nums; }
.diag { font-family: var(--serif); font-size: 1.08rem; max-width: var(--medida); margin: 6px 0; }
.tri-det summary { cursor: pointer; color: var(--rojo-hondo); font-weight: 600; padding: 6px 0; }
.matriz-env { overflow-x: auto; }
.matriz { width: auto; min-width: 100%; }
.matriz .m-obra { min-width: 260px; max-width: 420px; font-family: var(--serif); font-size: .98rem; }
.matriz .m-c { text-align: center; width: 46px; padding: 6px 4px; }
.matriz th.m-c { cursor: help; }
.matriz .m-tri { width: 78px; font-weight: 600; border-left: 1px solid var(--linea); }
.matriz .m-na { color: #B0B2AD; }
.punto { display: inline-block; width: calc(6px + 12px * var(--p)); height: calc(6px + 12px * var(--p)); border-radius: 50%;
  background: #A7A9A4; opacity: calc(.35 + .65 * var(--p)); vertical-align: middle; }
.punto--si { background: var(--carbon); }
.ind-leyenda { list-style: none; padding: 0; margin: 10px 0 0; font-size: .88rem; color: var(--pizarra); columns: 2 320px; column-gap: 28px; }
.ind-leyenda li { break-inside: avoid; margin-bottom: 4px; }
.nucleo { padding-left: 22px; max-width: var(--medida); }
.nucleo li { margin: 6px 0; }
.n-tit { font-family: var(--serif); font-size: 1.04rem; }
.indicador--nivel .nivel-etq { display: block; font: 600 .8rem var(--sans); color: var(--pizarra); margin-bottom: 2px; }
.indicador--nivel[data-nivel="Resultado de aprendizaje"], .indicador--nivel[data-nivel="Competencia"] { background: #FBFBFA; border-left: 3px solid var(--carbon); padding-left: 12px; }
.b-nivel { font-size: .85rem; color: var(--pizarra); font-weight: 600; margin-left: 6px; }
@media (max-width: 760px) {
  .esc-fila { grid-template-columns: 1fr 64px; }
  .esc-fila .esc-barra { grid-column: 1 / -1; grid-row: 2; }
}
@media print { .tri-det[open] summary { display: none; } .tri-unidad { break-inside: avoid; } }
.esc-fila--sub { font-size: .85rem; color: var(--pizarra); }
.esc-fila--sub .esc-barra { height: 7px; }

/* referencias declaradas */
.dictamenes { display: flex; flex-wrap: wrap; gap: 8px 10px; margin: 6px 0 4px; }
.dict { display: inline-block; font-size: .82rem; font-weight: 600; padding: 3px 10px; border-radius: 12px; border: 1.5px solid currentColor; background: var(--blanco); }
.dict strong { font-size: 1rem; margin-right: 4px; }
.d-mantener { color: var(--verde); } .d-actualizar { color: #8A6512; } .d-adquirir { color: #2F5D8A; } .d-revisar { color: var(--alerta); } .d-profesor { color: var(--pizarra); }
.t-refs .m-obra { min-width: 300px; max-width: 460px; font-size: .92rem; }
.r-bib { white-space: nowrap; font-size: .88rem; }
.r-bib.si { color: var(--verde); font-weight: 600; } .r-bib.no { color: var(--pizarra); }
.r-dict { min-width: 230px; max-width: 320px; }
.r-dict .autor { margin-top: 4px; }
.alt { display: block; font-size: .8rem; margin-top: 4px; color: var(--carbon); font-style: italic; }

/* ingreso */
.ingreso { max-width: 620px; }
.cabecera nav a.salir { color: var(--pizarra); }

/* ============================== portada ============================== */
:root { --oro: #E8A92C; --display: "Montserrat", "Source Sans 3", system-ui, sans-serif; }
.m-mar, .cabecera__marca strong .m-mar { color: var(--rojo); } .m-bia, .cabecera__marca strong .m-bia { color: var(--carbon); font-size: inherit; }
.cabecera__marca strong span { font-size: inherit; }
.cabecera__marca strong { font-family: var(--display); font-weight: 900; letter-spacing: .02em; }
.hero { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); align-items: center;
  min-height: min(86vh, 760px); padding: clamp(28px, 5vw, 64px) clamp(16px, 5vw, 64px) 24px; background: #FDFDFC; border-bottom: 1px solid var(--linea); }
.hero__fondo { position: absolute; inset: 0; pointer-events: none; }
.arco { position: absolute; border-radius: 50%; }
.arco--1 { width: 620px; height: 620px; right: -260px; top: -380px; background: radial-gradient(circle at 35% 65%, #E01637 0%, var(--rojo) 38%, #6E0818 100%); opacity: .95; }
.arco--2 { width: 520px; height: 520px; left: -300px; bottom: -380px; background: radial-gradient(circle at 70% 30%, #E01637 0%, var(--rojo) 40%, #6E0818 100%); opacity: .9; }
.arco--1::after, .arco--2::after { content: ""; position: absolute; inset: -26px; border-radius: 50%; border: 1.5px solid var(--oro); opacity: .6; }
.malla { position: absolute; right: 38%; top: 14%; width: 120px; height: 90px; background-image: radial-gradient(#9C9E99 1.4px, transparent 1.6px); background-size: 14px 14px; opacity: .55; }
.hero__texto { position: relative; z-index: 1; max-width: 600px; }
.hero__inst { font-family: var(--display); font-weight: 600; letter-spacing: .14em; font-size: .82rem; color: var(--carbon); margin: 0 0 22px;
  padding-left: 14px; border-left: 3px solid var(--rojo); line-height: 1.5; }
.marca { display: flex; align-items: flex-end; gap: 14px; margin: 0 0 14px; font-family: var(--display); line-height: .85; }
.marca__icono { width: clamp(64px, 8vw, 92px); height: auto; filter: drop-shadow(0 6px 10px rgba(110, 8, 24, .18)); }
.marca__palabra { font-weight: 900; font-size: clamp(3.6rem, 9.5vw, 7.4rem); letter-spacing: -.035em; }
.hero__nombre { font-family: var(--display); font-weight: 600; font-size: clamp(1.15rem, 2vw, 1.55rem); line-height: 1.3; color: var(--carbon); margin: 6px 0 14px; max-width: 30ch; }
.hero__nombre strong { color: var(--rojo-hondo); font-weight: 800; }
.hero__lema { font-family: var(--display); font-style: italic; font-weight: 700; font-size: clamp(1.05rem, 1.7vw, 1.3rem); color: var(--rojo-hondo); margin: 0 0 30px; padding-top: 14px; position: relative; }
.hero__lema::before { content: ""; position: absolute; left: 0; top: 0; width: 120px; height: 4px; border-radius: 2px; background: var(--oro); }
.hero__acciones { display: flex; flex-wrap: wrap; gap: 12px; }
.boton--grande { min-height: 52px; padding: 0 28px; font-size: 1.08rem; box-shadow: 0 10px 24px -10px rgba(200, 16, 46, .7); }
.boton--fantasma { background: rgba(255,255,255,.7); color: var(--carbon); border-color: var(--carbon); min-height: 52px; padding: 0 24px; backdrop-filter: blur(4px); }
.boton--fantasma:hover { background: var(--carbon); color: var(--blanco); }
.hero__escena { position: relative; z-index: 0; height: clamp(380px, 70vh, 700px); margin-left: -16%; margin-right: calc(-1 * clamp(16px, 5vw, 64px)); margin-bottom: -24px;
  -webkit-mask-image: radial-gradient(ellipse 58% 60% at 52% 48%, #000 58%, transparent 100%); mask-image: radial-gradient(ellipse 58% 60% at 52% 48%, #000 58%, transparent 100%); }
#escena3d { width: 100%; height: 100%; display: block; opacity: 0; transition: opacity 1s ease .1s; }
.con-3d #escena3d { opacity: 1; }
.hero__respaldo { display: none; position: absolute; inset: 15% 20%; width: 60%; height: auto; }
.sin-3d .hero__respaldo { display: block; }
.sin-3d #escena3d { display: none; }

.pregunta { background: var(--carbon); color: var(--blanco); padding: clamp(28px, 5vw, 56px) clamp(16px, 5vw, 64px); position: relative; }
.pregunta::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 8px; background: linear-gradient(var(--rojo), var(--oro)); }
.pregunta__etq { font-family: var(--display); font-weight: 600; color: var(--oro); margin: 0 0 10px; font-size: .95rem; }
.pregunta__texto { font-family: var(--serif); font-size: clamp(1.35rem, 2.6vw, 2.1rem); line-height: 1.35; margin: 0; max-width: 58ch; }
.pregunta__texto em { font-style: normal; color: #FFD27A; border-bottom: 2px solid rgba(232,169,44,.55); }

.concepto { padding-bottom: 12px; }
.concepto__intro { max-width: var(--medida); }
.concepto__intro h2 { font-size: clamp(1.7rem, 3vw, 2.3rem); margin-top: 0; }
.concepto__intro p { font-family: var(--serif); font-size: 1.15rem; line-height: 1.65; text-align: justify; hyphens: auto; }
.flujo { list-style: none; counter-reset: f; padding: 0; margin: 30px 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0; border-top: 2px solid var(--carbon); }
.flujo li { counter-increment: f; padding: 18px 20px 20px 0; position: relative; }
.flujo li + li { padding-left: 20px; border-left: 1px solid var(--linea); }
.flujo li::before { content: counter(f, decimal-leading-zero); font-family: var(--display); font-weight: 900; font-size: 2.2rem; color: var(--rojo); line-height: 1; display: block; margin-bottom: 8px; }
.flujo h3 { font-family: var(--display); font-weight: 800; font-size: 1.05rem; margin: 0 0 6px; }
.flujo p { margin: 0; font-size: .95rem; color: #46484c; }
.cifras-vivas { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 18px 28px; margin: 8px 0 0; }
.cifras-vivas div { border-left: 4px solid var(--oro); padding: 4px 0 4px 14px; }
.cifras-vivas dt { font-size: .85rem; color: var(--pizarra); }
.cifras-vivas dd { margin: 0; font-family: var(--display); font-weight: 900; font-size: 2.2rem; color: var(--carbon); font-variant-numeric: tabular-nums; }
.portada { scroll-margin-top: 20px; }
.portada h2 { font-family: var(--display); font-weight: 800; font-size: clamp(1.7rem, 3vw, 2.3rem); margin: 36px 0 10px; }

/* resultado: recursos no citados y vigencia */
.no-citados { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 10px; }
.no-citados li { background: var(--blanco); border: 1px solid var(--linea); border-left: 4px solid var(--oro); padding: 10px 14px; }
.no-citados .n-tit { font-family: var(--serif); font-size: 1.04rem; }
.chips { display: flex; flex-wrap: wrap; gap: 4px 6px; margin-top: 6px; }
.chip { font-size: .75rem; padding: 2px 8px; border-radius: 10px; background: var(--niebla); color: var(--carbon); }
.chip--c { background: #3C3C3B; color: #fff; } .chip--ra { background: #F6D9DE; color: var(--rojo-hondo); }

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero__escena { height: 340px; order: -1; margin: -10px -16px 0; -webkit-mask-image: linear-gradient(#000 80%, transparent); mask-image: linear-gradient(#000 80%, transparent); }
  .arco--1 { width: 380px; height: 380px; right: -200px; top: -240px; }
  .flujo li + li { padding-left: 0; border-left: 0; border-top: 1px solid var(--linea); }
}
@media (prefers-reduced-motion: reduce) { #escena3d { transition: none; } }
@media print { .hero, .pregunta, .concepto { display: none; } }
