/* precios.css — E8, el precio pagado frente a una referencia oficial: el bloque 7 de /como-se-contrata, el hecho por órgano de
 * la ficha de Cumplimiento (partials/precio_organo.html) y /metodologia/precios. Solo tokens de la casa (tokens.css): cuando
 * entre la capa del sistema de EST-1 (est1.css) se lee igual. Filetes y espacio en vez de cajas; sin color de juicio: la
 * franja de ±15 % es neutra, el marino marca la referencia y el ocre (--color-aviso) solo el aviso del papel en 2022-2023.
 * Letra mínima de lectura 13 px (también en los SVG, medida al tamaño pintado), táctiles de 40 px. */

/* ── Bloque 7 de Cómo se contrata ─────────────────────────────────────────────────────────────────────────── */
.gr-lienzo[data-pr] { --alto: 510px; --alto-m: 520px; }   /* DIS-2: 240 + 56 + 164 + 50 en el PC (antes 288 y 196) */
.pr-bloque .gr-cifra b { font-size: 2rem; line-height: 2.25rem; }
.pr-bloque .gr-cifra b small { font-family: var(--fuente-cifra); font-variant-numeric: tabular-nums; font-weight: var(--peso-inter); font-size: 0.62em; color: var(--color-texto); margin-left: 0.2em; letter-spacing: -0.005em; }
.pr-bloque .gr-mandos { align-items: end; }
.pr-bloque .pr-mando-prov select { min-width: 15rem; }
.pr-bloque .gr-seg button { min-height: 40px; }
.pr-bloque .pr-ley { display: flex; flex-wrap: wrap; gap: 4px 24px; margin: var(--sp-3) 0 var(--sp-1); padding: 0; list-style: none; font-size: var(--fs-13); line-height: 1.25rem; color: var(--color-texto-2); }
.pr-bloque .pr-ley li { display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: baseline; gap: 8px; }
.pr-bloque .pr-ley-linea::before { content: ""; width: 18px; height: 2px; background: var(--color-acento); transform: translateY(-4px); }
.pr-bloque .pr-ley-punto::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--color-texto); opacity: 0.82; justify-self: center; transform: translateY(-1px); }
.pr-bloque .gr-lienzo svg text { font-size: 13px; }
.pr-bloque .gr-plegables > details { min-width: 0; }
.pr-bloque .gr-tabla-marco { max-width: 100%; overflow-x: auto; }
@media (max-width: 640px) {
  .pr-bloque .gr-cifra b { font-size: 1.5625rem; line-height: 1.75rem; }
  .pr-bloque .gr-lectura .gr-cifra { grid-template-columns: 1fr; gap: 2px; }
  .pr-bloque .gr-seg { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; border-radius: var(--radio-m); }
  .pr-bloque .gr-seg button { min-width: 0; padding: 0 6px; border-radius: calc(var(--radio-m) - 2px); }
  .pr-bloque .pr-mando-prov, .pr-bloque .pr-mando-prov select { width: 100%; min-width: 0; }
  .pr-bloque .pr-mando-prov select { min-height: 44px; }
  .pr-bloque .pr-ley { font-size: var(--fs-14); }
  .pr-bloque .gr-lienzo svg text { font-size: 14px; }
}

/* ── Hecho por órgano (ficha de Cumplimiento) ─────────────────────────────────────────────────────────────── */
.pr-org { margin-top: var(--sp-8); }
.pr-org .pr-org-cab { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-2) var(--sp-4); flex-wrap: wrap;
  padding-bottom: var(--sp-2); border-bottom: 1px solid var(--color-borde-fuerte); }
.pr-org .pr-org-cab h3 { margin: 0; }
.pr-org .pr-org-cab a { font-size: var(--fs-13); display: inline-flex; align-items: center; min-height: 40px; }
.pr-org .pr-leyenda { margin: var(--sp-2) 0 0; font-size: var(--fs-13); line-height: 1.25rem; color: var(--color-texto-2); max-width: 68ch; }
.pr-org .pr-leyenda b { color: var(--color-acento); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; font-size: var(--fs-12); margin-right: 6px; }
.pr-org .pr-unidad { display: grid; grid-template-columns: minmax(13rem, 17rem) minmax(0, 1fr); gap: var(--sp-2) var(--sp-8); padding: var(--sp-4) 0; border-top: 1px solid var(--color-borde); }
.pr-org .pr-unidad:first-of-type { margin-top: var(--sp-3); border-top: 1px solid var(--color-texto); }
.pr-org .pr-kn { display: grid; row-gap: var(--sp-1); align-content: start; }
.pr-org .pr-rotulo { font-size: var(--fs-12); line-height: 1rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-texto-2); }
.pr-org .pr-cifra { font-family: var(--fuente-cifra); font-weight: var(--peso-inter); font-size: calc(2.5rem * var(--inter-k) + var(--inter-b)); line-height: calc(2.75rem * var(--inter-k) + var(--inter-b)); letter-spacing: -0.01em; color: var(--color-texto); font-variant-numeric: tabular-nums; white-space: nowrap; }
.pr-org .pr-cifra small { font-size: 1.25rem; color: var(--color-texto-2); letter-spacing: 0; }
.pr-org .pr-unidades { display: block; width: 100%; max-width: 16rem; height: auto; margin-top: var(--sp-2); }
.pr-org .pr-unidades rect { fill: none; stroke: var(--color-texto-3, #6b6b6b); stroke-width: 1; }
.pr-org .pr-unidades rect.si { fill: var(--color-texto); stroke: var(--color-texto); }
.pr-org .pr-estado { position: relative; padding-left: 15px; margin: 0 0 var(--sp-2); font-size: var(--fs-13); line-height: 1.25rem; color: var(--color-texto); }
.pr-org .pr-estado::before { content: ""; position: absolute; left: 0; top: 7px; width: 7px; height: 7px; border-radius: 50%; background: var(--color-texto); }
.pr-org .pr-estado.sin::before { background: none; border: 1px solid var(--color-texto-2); box-sizing: border-box; }
.pr-org .pr-frase { margin: 0; max-width: 68ch; font-size: 0.9375rem; line-height: 1.5rem; font-variant-numeric: tabular-nums; }
.pr-org .pr-frase strong { font-weight: 600; }
.pr-org .pr-escala { display: block; height: auto; margin: var(--sp-3) 0 0; overflow: visible; }
.pr-org .pr-escala.ancho { width: 100%; max-width: 520px; }
.pr-org .pr-escala.estrecho { display: none; width: 100%; max-width: 340px; }
.pr-org .pr-escala text { font-family: var(--fuente-sans); font-size: 13px; fill: var(--color-texto-2); font-variant-numeric: tabular-nums; }
.pr-org .pr-escala .franja { fill: rgba(31, 64, 104, 0.07); }
.pr-org .pr-escala .eje { stroke: var(--color-borde-fuerte); stroke-width: 1; }
.pr-org .pr-escala .ref { stroke: var(--color-texto-2); stroke-width: 1; }
.pr-org .pr-escala .ic { stroke: var(--color-texto); stroke-width: 2; }
.pr-org .pr-escala .med { fill: var(--color-texto); stroke: var(--color-fondo); stroke-width: 1.5; }
.pr-org .pr-escala .resto { stroke: var(--color-acento); stroke-width: 2; }
.pr-org .pr-escala .tinta { fill: var(--color-texto); font-weight: 600; }
.pr-org .pr-escala .marino { fill: var(--color-acento); }
:root[data-tema="oscuro"] .pr-org .pr-escala .franja { fill: rgba(156, 191, 232, 0.10); }
.pr-org .pr-base { display: flex; flex-wrap: wrap; gap: 0 var(--sp-3); margin: var(--sp-3) 0 0; padding: 0; list-style: none; font-size: var(--fs-13); line-height: 1.25rem; color: var(--color-texto-2); }
.pr-org .pr-base li + li::before { content: "·"; margin-right: var(--sp-3); }
.pr-org .pr-base strong { color: var(--color-texto); font-weight: 600; }
.pr-org .pr-nodice { margin: var(--sp-2) 0 0; max-width: 68ch; font-size: var(--fs-13); line-height: 1.25rem; color: var(--color-texto-2); }
.pr-org .pr-nodice b { font-weight: 600; color: var(--color-texto); }
@media (max-width: 640px) {
  .pr-org .pr-unidad { grid-template-columns: 1fr; gap: var(--sp-3); }
  .pr-org .pr-kn { grid-template-columns: auto minmax(0, 1fr); align-items: end; column-gap: var(--sp-4); }
  .pr-org .pr-kn .pr-rotulo { grid-column: 1 / -1; }
  .pr-org .pr-cifra { font-size: 2rem; line-height: 2.25rem; }
  .pr-org .pr-unidades { margin-top: 0; max-width: 10rem; justify-self: end; }
  .pr-org .pr-escala.ancho { display: none; }
  .pr-org .pr-escala.estrecho { display: block; }
}

/* ── /metodologia/precios ───────────────────────────────────────────────────────────────────────────────── */
.pr-met .pr-cifras { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); border-top: 1px solid var(--color-texto); margin-top: var(--sp-6); }
.pr-met .pr-cifras > div { padding: var(--sp-3) var(--sp-4) var(--sp-3) 0; display: grid; row-gap: var(--sp-1); align-content: start; }
.pr-met .pr-cifras > div + div { padding-left: var(--sp-4); border-left: 1px solid var(--color-borde); }
.pr-met .pr-cifras .pr-rotulo { font-size: var(--fs-12); line-height: 1rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-texto-2); }
.pr-met .pr-cifras .pr-cifra { font-family: var(--fuente-cifra); font-weight: var(--peso-inter); font-size: calc(2rem * var(--inter-k) + var(--inter-b)); line-height: calc(2.25rem * var(--inter-k) + var(--inter-b)); color: var(--color-texto); white-space: nowrap; font-variant-numeric: tabular-nums; }
.pr-met .pr-cifras .pr-nota { font-size: var(--fs-13); line-height: 1.25rem; color: var(--color-texto-2); }
.pr-met .pr-md5 { font-family: var(--fuente-mono); font-size: var(--fs-13); word-break: break-all; }
.pr-met .pr-tabla { width: 100%; border-collapse: collapse; font-size: var(--fs-14); line-height: 1.25rem; font-variant-numeric: tabular-nums; }
.pr-met .pr-tabla caption { text-align: left; caption-side: top; padding-bottom: var(--sp-2); font-size: var(--fs-13); color: var(--color-texto-2); }
.pr-met .pr-tabla th, .pr-met .pr-tabla td { padding: 8px 12px 8px 0; border-bottom: 1px solid var(--color-borde); text-align: left; vertical-align: top; }
.pr-met .pr-tabla thead th { font-size: var(--fs-12); line-height: 1rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-texto-2); border-bottom: 1px solid var(--color-texto); }
.pr-met .pr-tabla .n { text-align: right; white-space: nowrap; }
.pr-met .pr-tabla .sub { display: block; font-size: var(--fs-13); color: var(--color-texto-2); }
.pr-met .pr-tabla-marco { overflow-x: auto; margin: var(--sp-4) 0; }
.pr-met .pr-estado-t { font-weight: 600; white-space: nowrap; }
.pr-met .pr-estado-t::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 6px; background: var(--color-texto); transform: translateY(-1px); }
.pr-met .pr-estado-t.no::before { background: none; border: 1px solid var(--color-texto-2); }
.pr-met .pr-ejemplos { margin: var(--sp-2) 0 var(--sp-4); padding: 0; list-style: none; font-size: var(--fs-14); }
.pr-met .pr-ejemplos li { padding: 6px 0; border-bottom: 1px solid var(--color-borde); display: grid; grid-template-columns: minmax(0, 1fr) minmax(10rem, auto); gap: var(--sp-4); }
.pr-met .pr-ejemplos code { font-family: var(--fuente-mono); font-size: var(--fs-13); }
.pr-met .pr-ejemplos span:last-child { color: var(--color-texto-2); text-align: right; }
@media (max-width: 640px) {
  .pr-met .pr-tabla.filas thead { display: none; }
  .pr-met .pr-tabla.filas tr { display: block; padding: var(--sp-2) 0; border-bottom: 1px solid var(--color-borde); }
  .pr-met .pr-tabla.filas td, .pr-met .pr-tabla.filas th { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: var(--sp-3); border: 0; padding: 3px 0; text-align: left; }
  .pr-met .pr-tabla.filas td::before { content: attr(data-r); color: var(--color-texto-2); font-size: var(--fs-13); }
  .pr-met .pr-tabla.filas th[scope="row"] { display: block; font-weight: 600; }
  .pr-met .pr-ejemplos li { grid-template-columns: 1fr; gap: 2px; }
  .pr-met .pr-ejemplos span:last-child { text-align: left; }
}
