@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/source-sans-3-latin-400-normal.woff2") format("woff2");
}

@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/source-sans-3-latin-600-normal.woff2") format("woff2");
}

@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/source-sans-3-latin-700-normal.woff2") format("woff2");
}

@font-face {
  font-family: "Source Sans 3";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../fonts/source-sans-3-latin-800-normal.woff2") format("woff2");
}

:root {
  --c-blanco: #FFFFFF;
  --c-niebla: #F3F6F9;
  --c-marino: #0B2545;
  --c-marino-tinta: #C9D6E6;
  --c-texto: #1B2B40;
  --c-texto-suave: #56657A;
  --c-linea: #DCE3EB;
  --c-borde-control: #7D8B9C;
  --c-teal: #0E7C7B;
  --c-teal-hover: #0B6665;
  --c-teal-suave: #E3F2F1;
  --c-teal-tinta: #0B4F4E;
  --c-aviso: #7A4B00;
  --c-aviso-tinte: #FFF6E0;
  --c-negativo: #B42318;
  --c-negativo-tinte: #FDECEA;
  --c-foco: #0E7C7B;
  --radio: 8px;
  --radio-grande: 10px;
  --fuente: "Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }

[hidden] { display: none !important; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--fuente);
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--c-texto);
  background: var(--c-blanco);
  font-feature-settings: "tnum" 1;
  overflow-wrap: break-word;
}

img, svg { max-width: 100%; }

a { color: var(--c-teal); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--c-teal-hover); text-decoration-thickness: 2px; }

:focus-visible { outline: 2px solid var(--c-foco); outline-offset: 2px; box-shadow: 0 0 0 5px var(--c-teal-suave); border-radius: 4px; }

h1, h2, h3 { line-height: 1.2; color: var(--c-marino); }
h1 { font-size: 2rem; font-weight: 800; letter-spacing: -.01em; margin: 6px 0 0; }
h2 { font-size: 1.45rem; font-weight: 700; margin: 0 0 12px; }
h3 { font-size: 1.15rem; font-weight: 700; margin: 0 0 6px; }
p { margin: 0 0 12px; }

.num {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ico { flex: none; vertical-align: middle; fill: currentColor; }

.saltar {
  position: absolute;
  left: 8px;
  top: -60px;
  padding: 10px 14px;
  background: var(--c-blanco);
  color: var(--c-marino);
  font-weight: 700;
  border-radius: var(--radio);
  z-index: 40;
}

.saltar:focus { top: 8px; }

.solo-lectores, .oculto-visual {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.contenedor { width: 100%; max-width: 1140px; margin: 0 auto; padding: 0 16px; }

.cabecera { background: var(--c-marino); color: var(--c-blanco); }
.cabecera :focus-visible { outline-color: var(--c-blanco); box-shadow: none; }

.cabecera-fila {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 60px;
}

.marca {
  color: var(--c-blanco);
  text-decoration: none;
  font-size: 1.2rem;
  font-weight: 800;
  white-space: nowrap;
  min-width: 0;
}

.marca span { font-weight: 400; color: var(--c-marino-tinta); }
.marca:hover { color: var(--c-blanco); }

.cuenta { display: flex; align-items: center; gap: 4px 14px; margin: 0; }
.cuenta form { margin: 0; }

.cuenta-enlace {
  display: inline-block;
  padding: 8px 0;
  font: inherit;
  font-size: .97rem;
  color: var(--c-marino-tinta);
  white-space: nowrap;
  text-decoration: none;
  background: none;
  border: 0;
  cursor: pointer;
}

.cuenta-enlace:hover { color: var(--c-blanco); text-decoration: underline; }

.barra-secciones { border-top: 1px solid rgba(201, 214, 230, .18); }

.barra-secciones ul {
  display: flex;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.barra-secciones ul::-webkit-scrollbar { display: none; }

.barra-secciones a {
  display: block;
  padding: 11px 10px 9px;
  font-size: .97rem;
  color: var(--c-marino-tinta);
  text-decoration: none;
  white-space: nowrap;
  border-bottom: 3px solid transparent;
}

.barra-secciones li:first-child a { padding-left: 0; }
.barra-secciones a:hover { color: var(--c-blanco); }
.barra-secciones a[aria-current="page"] { color: var(--c-blanco); font-weight: 700; border-bottom-color: var(--c-teal); }

main { display: block; }

.franja { background: var(--c-niebla); border-bottom: 1px solid var(--c-linea); }
.franja .contenedor { padding-top: 24px; padding-bottom: 24px; }
.franja-con-pestanas .contenedor { padding-bottom: 0; }

.migas ol {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: .9rem;
  color: var(--c-texto-suave);
}

.migas li + li::before { content: "/"; margin-right: 4px; }
.migas a { color: var(--c-texto-suave); }
.migas a:hover { color: var(--c-marino); }

.bajada { color: var(--c-texto-suave); margin: 8px 0 0; font-size: 1.125rem; line-height: 1.5; max-width: 66ch; }
.bajada strong { color: var(--c-texto); }

.metadatos { margin: 12px 0 0; font-size: .93rem; color: var(--c-texto-suave); }
.metadatos a { color: var(--c-texto-suave); }
.metadatos a:hover { color: var(--c-marino); }

.cuerpo { padding-top: 24px; padding-bottom: 56px; }

.seccion { margin-top: 44px; }
.seccion:first-child { margin-top: 0; }
.seccion > h2:first-child, .seccion-cabeza h2 { margin-top: 0; }

.seccion-cabeza {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px 16px;
  margin-bottom: 14px;
}

.seccion-cabeza h2 { margin-bottom: 0; }
.seccion-cabeza p { margin: 4px 0 0; color: var(--c-texto-suave); }
.seccion-intro { margin: -4px 0 16px; color: var(--c-texto-suave); max-width: 66ch; }

.disposicion {
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}

.columna { min-width: 0; display: grid; gap: 24px; }

.panel {
  background: var(--c-blanco);
  border: 1px solid var(--c-linea);
  border-radius: var(--radio-grande);
  padding: 20px 16px;
  min-width: 0;
}

.panel > :last-child { margin-bottom: 0; }
.panel-titulo { margin: 0 0 14px; font-size: 1.2rem; font-weight: 700; line-height: 1.25; color: var(--c-marino); }
.panel-niebla { background: var(--c-niebla); }

.texto-suave { color: var(--c-texto-suave); }
.nota { font-size: .93rem; color: var(--c-texto-suave); margin: 16px 0 0; }
.sin-margen { margin: 0; }
.separado { margin-top: 16px; }

.lista-simple { margin: 0 0 12px; padding-left: 1.2em; }
.lista-simple li { margin-bottom: 6px; }

.ayuda { font-size: .94rem; color: var(--c-texto-suave); margin: 0; }

form { margin: 0; }
fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
legend { padding: 0; }

.campo { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; min-width: 0; }
.campo:last-child { margin-bottom: 0; }

.campo > label, .etiqueta-campo {
  font-weight: 700;
  color: var(--c-texto);
}

legend.panel-titulo { float: left; width: 100%; }
legend.panel-titulo + * { clear: both; }

input[type="text"], input[type="tel"], input[type="url"], input[type="email"], input[type="search"],
input[type="password"], input[type="date"], input[type="number"], select, textarea {
  width: 100%;
  min-height: 48px;
  padding: 10px 14px;
  font: inherit;
  color: var(--c-texto);
  background: var(--c-blanco);
  border: 1px solid var(--c-borde-control);
  border-radius: var(--radio);
}

select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2356657A' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  cursor: pointer;
}

input::placeholder, textarea::placeholder { color: var(--c-texto-suave); opacity: .85; }

input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 0; border-color: var(--c-teal); box-shadow: 0 0 0 3px var(--c-teal-suave), inset 0 0 0 1px var(--c-teal); border-radius: var(--radio); }

textarea { min-height: 96px; resize: vertical; }

input[aria-invalid="true"], textarea[aria-invalid="true"], .campo-error input, .campo-error textarea { border-color: var(--c-negativo); box-shadow: inset 0 0 0 1px var(--c-negativo); }

.error-campo { font-size: .94rem; font-weight: 600; color: var(--c-negativo); }

input[type="checkbox"], input[type="radio"] { width: 20px; height: 20px; accent-color: var(--c-teal); margin: 0; flex: none; }

.fila-campos { display: grid; gap: 0 14px; grid-template-columns: minmax(0, 1fr); }
.fila-campos .campo:last-child { margin-bottom: 18px; }
.panel > .fila-campos:last-child .campo:last-child, .fila-campos:last-child > .campo { margin-bottom: 0; }

.rejilla-campos { display: grid; gap: 0 14px; grid-template-columns: minmax(0, 1fr); padding-top: 16px; }
.rejilla-campos .campo { margin-bottom: 18px; }

.casillas {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 0 14px;
  margin: 0 0 12px;
}

.casilla {
  display: flex;
  gap: 10px;
  align-items: center;
  min-height: 44px;
  cursor: pointer;
  line-height: 1.3;
}

.interruptor {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 52px;
  margin-top: 4px;
  padding: 8px 14px;
  border: 1px solid var(--c-linea);
  border-radius: var(--radio);
  background: var(--c-niebla);
  cursor: pointer;
  font-weight: 600;
  line-height: 1.35;
}

.interruptor input {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  width: 44px;
  height: 26px;
  border-radius: 999px;
  background: var(--c-borde-control);
  cursor: pointer;
  flex: none;
  transition: background .15s;
}

.interruptor input::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--c-blanco);
  transition: transform .15s;
}

.interruptor input:checked { background: var(--c-teal); }
.interruptor input:checked::after { transform: translateX(18px); }

.segmentado {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  margin: 0 0 12px;
  padding: 4px;
  border-radius: var(--radio);
  background: var(--c-niebla);
  border: 1px solid var(--c-linea);
}

.segmentado label {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 44px;
  padding: 6px 8px;
  font-weight: 600;
  line-height: 1.2;
  border-radius: 6px;
  border: 1px solid transparent;
  cursor: pointer;
  color: var(--c-texto-suave);
}

.segmentado input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.segmentado label:hover { color: var(--c-marino); }
.segmentado label:has(input:checked) { background: var(--c-blanco); color: var(--c-marino); border-color: var(--c-teal); box-shadow: inset 0 0 0 1px var(--c-teal); }
.segmentado label:has(input:focus-visible) { outline: 2px solid var(--c-foco); outline-offset: 2px; }

.pestanas { display: flex; gap: 8px; margin: 20px 0 0; padding: 0 0 16px; list-style: none; overflow-x: auto; scrollbar-width: none; }
.pestanas::-webkit-scrollbar { display: none; }

.pestanas a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 9px 18px;
  font-weight: 600;
  white-space: nowrap;
  color: var(--c-texto-suave);
  background: var(--c-blanco);
  border: 1px solid var(--c-linea);
  border-radius: 999px;
  text-decoration: none;
}

.pestanas-compactas { margin: 0; padding: 0; }
.pestanas-compactas a { min-height: 36px; padding: 5px 14px; font-size: .95rem; }

.pestanas a:hover { color: var(--c-marino); border-color: var(--c-borde-control); }
.pestanas a[aria-current="page"] { background: var(--c-teal); border-color: var(--c-teal); color: var(--c-blanco); }

.boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 11px 18px;
  font: inherit;
  font-weight: 700;
  line-height: 1.2;
  border-radius: var(--radio);
  border: 1px solid var(--c-teal);
  background: var(--c-teal);
  color: var(--c-blanco);
  cursor: pointer;
  text-decoration: none;
  text-align: center;
}

.boton:hover { background: var(--c-teal-hover); border-color: var(--c-teal-hover); color: var(--c-blanco); text-decoration: none; }

.boton-secundario { background: var(--c-blanco); color: var(--c-marino); border-color: var(--c-linea); }
.boton-secundario:hover { background: var(--c-niebla); border-color: var(--c-borde-control); color: var(--c-marino); }

.boton-peligro { background: transparent; color: var(--c-negativo); border-color: transparent; }
.boton-peligro:hover { background: var(--c-negativo-tinte); border-color: transparent; color: var(--c-negativo); }

.boton-rojo { background: var(--c-negativo); border-color: var(--c-negativo); color: var(--c-blanco); }
.boton-rojo:hover { background: #8F1C13; border-color: #8F1C13; }

.boton-claro { background: var(--c-blanco); color: var(--c-marino); border-color: var(--c-blanco); }
.boton-claro:hover { background: var(--c-niebla); border-color: var(--c-niebla); color: var(--c-marino); }

.boton-chico { min-height: 40px; padding: 7px 14px; font-size: .97rem; }
.boton-ancho { width: 100%; }

.boton[disabled], .boton[aria-disabled="true"] { opacity: .5; cursor: not-allowed; pointer-events: none; }

.acciones { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.acciones form { display: contents; }
.acciones-pila { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }

.mensaje { border-radius: var(--radio); padding: 12px 14px; margin: 0 0 20px; font-size: .97rem; }
.mensaje-error { background: var(--c-negativo-tinte); color: var(--c-negativo); }
.mensaje-aviso { background: var(--c-aviso-tinte); color: var(--c-aviso); }
.mensaje-exito { background: var(--c-teal-suave); color: var(--c-teal-tinta); }
.mensaje a { color: inherit; font-weight: 700; }

.aviso {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 20px;
  margin: 0 0 20px;
  padding: 14px 16px;
  border-radius: var(--radio);
  color: var(--c-aviso);
  background: var(--c-aviso-tinte);
}

.aviso p { margin: 0; }
.aviso-texto { flex: 1 1 280px; min-width: 0; }
.aviso strong { color: inherit; }
.aviso .boton { flex: none; }

.estado {
  display: inline-block;
  padding: 1px 8px;
  border-radius: 4px;
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.5;
  white-space: nowrap;
  background: var(--c-niebla);
  color: var(--c-texto-suave);
}

.estado-ok { background: var(--c-teal-suave); color: var(--c-teal-tinta); }
.estado-aviso { background: var(--c-aviso-tinte); color: var(--c-aviso); }
.estado-error { background: var(--c-negativo-tinte); color: var(--c-negativo); }

.estados { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }

.buscador {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr);
}

.buscador-campo { position: relative; }
.buscador-campo .ico { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--c-texto-suave); pointer-events: none; }
.buscador-campo input { padding-left: 44px; }

.buscador-principal { margin-top: 20px; max-width: 1040px; }
.buscador-principal .buscador-campo input { min-height: 56px; font-size: 1.1rem; }
.buscador-principal .boton { min-height: 56px; }

.buscador-filtros { display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }

.mas-filtros { margin-top: 14px; border-top: 1px solid var(--c-linea); padding-top: 12px; }
.mas-filtros summary { cursor: pointer; font-weight: 700; color: var(--c-marino); min-height: 32px; }

.enlaces-rapidos { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin: 16px 0 0; padding: 0; list-style: none; font-size: .97rem; }
.enlaces-rapidos li:first-child { color: var(--c-texto-suave); }

.cifras {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--c-linea);
  border-radius: var(--radio-grande);
  background: var(--c-linea);
}

.cifras > div { padding: 16px; min-width: 0; background: var(--c-blanco); }
.cifras-tres > div:last-child { grid-column: 1 / -1; }
.cifras dt { font-size: .94rem; color: var(--c-texto-suave); }
.cifras dd { margin: 2px 0 0; font-size: 1.6rem; font-weight: 800; line-height: 1.15; color: var(--c-marino); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.cifras dd small { display: block; margin-top: 4px; font-size: .9rem; font-weight: 400; color: var(--c-texto-suave); }
.cifras dd a { color: inherit; text-decoration: none; }
.cifras dd small a { color: var(--c-teal); text-decoration: underline; }

.franja .cifras { margin-top: 24px; }

.pasos { margin: 0; padding: 0; list-style: none; counter-reset: paso; display: grid; gap: 0; grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--c-linea); }
.pasos li { counter-increment: paso; padding: 16px 0 16px 44px; position: relative; border-bottom: 1px solid var(--c-linea); }
.pasos li::before { content: counter(paso); position: absolute; left: 0; top: 14px; width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--c-marino); border-radius: 50%; font-weight: 700; color: var(--c-marino); }
.pasos h3 { margin: 0 0 4px; }
.pasos p { margin: 0; color: var(--c-texto-suave); }

.licitaciones { margin: 0; padding: 0; list-style: none; border: 1px solid var(--c-linea); border-radius: var(--radio-grande); overflow: hidden; background: var(--c-blanco); }
.licitaciones > li + li { border-top: 1px solid var(--c-linea); }

.licitacion {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px 20px;
  padding: 16px;
}

.licitacion:hover { background: var(--c-niebla); }
.licitacion:focus-within { background: var(--c-niebla); }

.licitacion-codigo { margin: 0; font-size: .9rem; color: var(--c-texto-suave); overflow-wrap: anywhere; }
.licitacion h3 { margin: 0; font-size: 1.07rem; font-weight: 600; line-height: 1.35; }
.licitacion h3 a { color: var(--c-marino); text-decoration: none; }
.licitacion h3 a::after { content: ""; position: absolute; inset: 0; }
.licitacion h3 a:hover { text-decoration: underline; }
.licitacion h3 a:focus-visible { outline: none; box-shadow: none; text-decoration: underline; }
.licitacion:has(h3 a:focus-visible) { outline: 2px solid var(--c-foco); outline-offset: -2px; }
.licitacion-entidad, .licitacion-meta { margin: 0; font-size: .95rem; color: var(--c-texto-suave); }
.licitacion-entidad { color: var(--c-texto); }
.licitacion-meta span + span::before { content: ", "; }
.licitacion-monto { margin: 4px 0 0; font-size: 1.1rem; font-weight: 700; color: var(--c-marino); font-variant-numeric: tabular-nums; }
.licitacion-monto.reservado { font-size: .95rem; font-weight: 600; color: var(--c-texto-suave); }

.estado-resultados { margin: 0 0 14px; color: var(--c-texto-suave); }
.estado-resultados strong { color: var(--c-marino); }

.barra-resultados { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 24px 0 14px; }
.barra-resultados .estado-resultados { margin: 0; }

.vacio { padding: 28px 20px; border: 1px dashed var(--c-borde-control); border-radius: var(--radio-grande); background: var(--c-niebla); }
.vacio h2, .vacio h3, .vacio-titulo { margin: 0 0 6px; font-size: 1.15rem; font-weight: 700; color: var(--c-marino); }
.vacio p { color: var(--c-texto-suave); max-width: 60ch; }
.vacio > :last-child { margin-bottom: 0; }

.paginacion { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 20px; }
.paginacion-estado { color: var(--c-texto-suave); }

.servicios { margin: 0; padding: 0; list-style: none; border: 1px solid var(--c-linea); border-radius: var(--radio-grande); overflow: hidden; background: var(--c-blanco); }
.servicios li { margin: 0; }
.servicios li + li { border-top: 1px solid var(--c-linea); }

.servicio {
  display: flex;
  gap: 14px;
  align-items: center;
  padding: 14px 16px;
  color: var(--c-texto);
  text-decoration: none;
  min-height: 56px;
}

.servicio:hover { background: var(--c-niebla); color: var(--c-texto); }
.servicio:hover strong { text-decoration: underline; text-underline-offset: 3px; }
.servicio:focus-visible { outline-offset: -2px; box-shadow: inset 0 0 0 5px var(--c-teal-suave); border-radius: 0; }

.servicio-icono {
  display: grid;
  place-items: center;
  flex: none;
  width: 40px;
  height: 40px;
  border-radius: var(--radio);
  background: var(--c-niebla);
  color: var(--c-marino);
}

.servicio-texto { flex: 1 1 auto; min-width: 0; }
.servicio-texto strong { display: block; color: var(--c-marino); font-weight: 700; }
.servicio-texto span { display: block; font-size: .95rem; color: var(--c-texto-suave); }
.servicio-cifra { flex: none; font-weight: 700; color: var(--c-marino); font-variant-numeric: tabular-nums; }

.servicios-columnas { display: grid; grid-template-columns: minmax(0, 1fr); }
.servicios-columnas li + li { border-top: 1px solid var(--c-linea); }

.filas { margin: 0; padding: 0; list-style: none; border: 1px solid var(--c-linea); border-radius: var(--radio-grande); background: var(--c-blanco); }
.filas > li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 14px 16px; }
.filas > li + li { border-top: 1px solid var(--c-linea); }
.fila-texto { flex: 1 1 260px; min-width: 0; }
.fila-texto p { margin: 0; }
.fila-titulo { font-weight: 700; color: var(--c-marino); }
.fila-titulo a { color: var(--c-marino); }
.fila-detalle { font-size: .95rem; color: var(--c-texto-suave); }

.alerta { display: grid; gap: 10px; }
.alerta-cabeza { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.alerta-cabeza h3 { margin: 0; }
.alerta .acciones { flex: 1 1 100%; }
.filas > li.alerta { display: grid; }

.panel-resultado { min-width: 0; }

.resumen {
  background: var(--c-blanco);
  border: 1px solid var(--c-linea);
  border-radius: var(--radio-grande);
  overflow: hidden;
}

.resumen-cabecera {
  padding: 18px 20px;
  background: var(--c-marino);
  color: var(--c-blanco);
}

.resumen-cabecera h2, .resumen-etiqueta { margin: 0; font-size: 1rem; font-weight: 400; color: var(--c-marino-tinta); }
.resumen-total { margin: 2px 0 0; font-size: 2.1rem; font-weight: 800; line-height: 1.15; overflow-wrap: anywhere; color: var(--c-blanco); font-variant-numeric: tabular-nums; }
.resumen-total.reservado { font-size: 1.5rem; }
.resumen-total small { font-size: 1rem; font-weight: 400; color: var(--c-marino-tinta); }
.resumen-sub { margin: 4px 0 0; font-size: .95rem; color: var(--c-marino-tinta); }

.resumen-lineas { margin: 0; padding: 6px 20px 4px; }

.resumen-lineas > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--c-linea);
}

.resumen-lineas > div:last-child { border-bottom: 0; }
.resumen-lineas dt { flex: none; max-width: 48%; color: var(--c-texto-suave); }
.resumen-lineas dd { margin: 0; min-width: 0; font-weight: 700; text-align: right; color: var(--c-marino); }
.resumen-lineas dd a { color: var(--c-teal); }

.resumen-cuerpo { padding: 18px 20px 0; }
.resumen-cuerpo p { margin: 0 0 10px; }
.resumen-cuerpo > :last-child { margin-bottom: 0; }

.resumen-letras {
  margin: 14px 20px 0;
  padding: 12px 14px;
  background: var(--c-teal-suave);
  border-radius: var(--radio);
  font-size: .97rem;
  color: var(--c-teal-tinta);
}

.resumen .acciones-pila { margin: 0; padding: 18px 20px 0; }
.resumen-pie { margin: 0; padding: 16px 20px 20px; font-size: .93rem; color: var(--c-texto-suave); }
.resumen > :last-child:not(.resumen-pie) { margin-bottom: 20px; }

.detalle { margin: 0; }
.detalle > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px 16px; padding: 11px 0; border-bottom: 1px solid var(--c-linea); }
.detalle > div:first-child { padding-top: 0; }
.detalle > div:last-child { border-bottom: 0; padding-bottom: 0; }
.detalle dt { color: var(--c-texto-suave); font-size: .95rem; }
.detalle dd { margin: 0; min-width: 0; color: var(--c-texto); overflow-wrap: anywhere; }

.texto-items { margin: 0; white-space: pre-line; }

.documentos { margin: 0; padding: 0; list-style: none; }
.documentos li { padding: 10px 0; border-bottom: 1px solid var(--c-linea); }
.documentos li:first-child { padding-top: 0; }

.planes { display: grid; gap: 20px; grid-template-columns: minmax(0, 1fr); align-items: start; }
.plan h3 { margin: 0; font-size: 1.2rem; }
.plan-precio { margin: 6px 0 14px; font-size: 2rem; font-weight: 800; color: var(--c-marino); line-height: 1.1; }
.plan-precio small { font-size: 1rem; font-weight: 400; color: var(--c-texto-suave); }
.plan-incluye { margin: 0 0 18px; padding: 0; list-style: none; }
.plan-incluye li { padding: 9px 0 9px 26px; border-bottom: 1px solid var(--c-linea); position: relative; }
.plan-incluye li:last-child { border-bottom: 0; }
.plan-incluye li::before { content: ""; position: absolute; left: 4px; top: 15px; width: 11px; height: 6px; border-left: 2px solid var(--c-teal); border-bottom: 2px solid var(--c-teal); transform: rotate(-45deg); }
.resumen .plan-incluye { padding: 6px 20px 0; margin: 0; }
.resumen .fila-campos { grid-template-columns: minmax(0, 1fr); }

.pasos-pago { margin: 0 0 16px; padding-left: 1.3em; }
.pasos-pago li { margin-bottom: 8px; }
.pasos-pago ul { margin: 6px 0 0; padding-left: 1.1em; }

.contacto { display: flex; flex-wrap: wrap; gap: 10px; }

.confianza dl { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 0; background: var(--c-niebla); border: 1px solid var(--c-linea); border-radius: var(--radio-grande); }
.confianza dl > div { padding: 18px 20px; }
.confianza dl > div + div { border-top: 1px solid var(--c-linea); }
.confianza dt { font-weight: 700; color: var(--c-marino); }
.confianza dd { margin: 4px 0 0; color: var(--c-texto-suave); font-size: .97rem; }

.preguntas { max-width: 72ch; }
.preguntas details { border-bottom: 1px solid var(--c-linea); }
.preguntas details:first-of-type { border-top: 1px solid var(--c-linea); }

.preguntas summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--c-marino);
  padding: 14px 32px 14px 0;
  position: relative;
  list-style: none;
}

.preguntas summary::-webkit-details-marker { display: none; }

.preguntas summary::after {
  content: "";
  position: absolute;
  right: 6px;
  top: 21px;
  width: 9px;
  height: 9px;
  border-right: 2px solid var(--c-teal);
  border-bottom: 2px solid var(--c-teal);
  transform: rotate(45deg);
}

.preguntas details[open] summary::after { top: 25px; transform: rotate(-135deg); }
.preguntas details p { margin: 0 0 16px; }

.cta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 24px;
  align-items: center;
  justify-content: space-between;
  margin-top: 44px;
  padding: 20px;
  border: 1px solid var(--c-linea);
  border-radius: var(--radio-grande);
}

.cta-texto { flex: 1 1 320px; min-width: 0; }
.cta h2, .cta-titulo { margin: 0; font-size: 1.2rem; font-weight: 700; color: var(--c-marino); }
.cta p { margin: 4px 0 0; color: var(--c-texto-suave); }
.cta .acciones { flex: 0 1 auto; }
.cuerpo > .cta:first-child, .columna > .cta { margin-top: 0; }

.enlaces-columnas { margin: 0; padding: 0; list-style: none; columns: 2 160px; column-gap: 24px; }
.enlaces-columnas li { break-inside: avoid; padding: 5px 0; }
.enlaces-columnas .texto-suave { font-size: .93rem; }

.auth { padding: 32px 0 56px; background: var(--c-niebla); border-bottom: 1px solid var(--c-linea); }
.auth .panel { max-width: 460px; margin: 0 auto; padding: 24px 20px; }
.auth-ancho .panel { max-width: 560px; }
.auth h1 { margin: 0; font-size: 1.75rem; }
.auth .bajada { font-size: 1.03rem; margin-bottom: 20px; }
.auth-pie { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--c-linea); color: var(--c-texto-suave); }
.auth-olvido { margin: -6px 0 18px; font-size: .95rem; }
.auth .plan-incluye { margin-bottom: 20px; }

.tabla-contenedor { overflow-x: auto; border: 1px solid var(--c-linea); border-radius: var(--radio-grande); background: var(--c-blanco); }

.tabla { width: 100%; border-collapse: collapse; }

.tabla th {
  font-weight: 700;
  font-size: .93rem;
  color: var(--c-marino);
  text-align: left;
  padding: 10px 12px;
  border-bottom: 1px solid var(--c-borde-control);
  background: var(--c-niebla);
  white-space: nowrap;
}

.tabla td { padding: 12px; border-bottom: 1px solid var(--c-linea); vertical-align: top; }
.tabla tbody tr:last-child td { border-bottom: 0; }
.tabla td .acciones { flex-wrap: nowrap; }
.tabla .num { text-align: right; }
.tabla td strong { color: var(--c-marino); }
.fila-anulada td { color: var(--c-texto-suave); }
.fila-anulada td strong { color: var(--c-texto-suave); text-decoration: line-through; }
.celda-error { color: var(--c-negativo); max-width: 280px; overflow-wrap: anywhere; }

.confirmar { position: relative; display: inline-block; }
.confirmar > summary { list-style: none; }
.confirmar > summary::-webkit-details-marker { display: none; }
.confirmar[open] > summary::before { content: ""; position: fixed; inset: 0; z-index: 70; background: rgba(11, 37, 69, .45); cursor: default; }

.dialogo {
  position: fixed;
  z-index: 71;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(440px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  overflow-y: auto;
  padding: 22px 20px;
  background: var(--c-blanco);
  border: 1px solid var(--c-linea);
  border-radius: var(--radio-grande);
  text-align: left;
  white-space: normal;
}

.dialogo p { color: var(--c-texto-suave); margin: 0 0 18px; }
.dialogo .dialogo-titulo { font-size: 1.25rem; font-weight: 700; line-height: 1.3; color: var(--c-marino); margin: 0 0 10px; overflow-wrap: anywhere; }
.dialogo .campo { margin-bottom: 14px; }
.dialogo-acciones { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }

.admin { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }

.admin-nav { background: var(--c-niebla); border-bottom: 1px solid var(--c-linea); margin: 0 -16px; padding: 10px 16px; }
.admin-nav-titulo { margin: 0 0 6px; font-weight: 700; color: var(--c-marino); }
.admin-nav ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }

.admin-nav a {
  display: block;
  padding: 7px 12px;
  border: 1px solid var(--c-linea);
  border-radius: var(--radio);
  background: var(--c-blanco);
  color: var(--c-texto);
  font-weight: 600;
  text-decoration: none;
}

.admin-nav a:hover { border-color: var(--c-borde-control); color: var(--c-marino); }
.admin-nav a[aria-current="page"] { background: var(--c-marino); border-color: var(--c-marino); color: var(--c-blanco); }
.admin-producto { margin: 0 0 10px; }
.admin-producto label { display: block; margin: 0 0 4px; font-size: .92rem; font-weight: 600; color: var(--c-texto-suave); }
.admin-producto-fila { display: flex; gap: 8px; align-items: center; }
.admin-producto select { flex: 1 1 auto; min-width: 0; min-height: 40px; padding-top: 6px; padding-bottom: 6px; }
.admin-nav .admin-nav-externo a { font-weight: 400; color: var(--c-texto-suave); }
.cuenta-correo { display: none; font-size: .95rem; color: var(--c-marino-tinta); }

.admin-contenido { min-width: 0; padding: 24px 0 56px; }
.admin-cabeza { margin-bottom: 24px; }
.admin-cabeza h1 { margin: 0; font-size: 1.85rem; }
.admin-cabeza .bajada { font-size: 1.03rem; }
.admin-cabeza-fila { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 20px; }
.admin-cabeza .estados { margin-top: 10px; }

.filtros .campo { margin-bottom: 0; }
.filtros { display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr); margin-bottom: 20px; padding: 14px; border: 1px solid var(--c-linea); border-radius: var(--radio-grande); background: var(--c-niebla); }

.graficos { display: grid; gap: 20px; grid-template-columns: minmax(0, 1fr); margin: 24px 0 0; }
.grafico-panel { margin: 0; }
.grafico-panel figcaption { margin: 0 0 12px; font-weight: 700; color: var(--c-marino); }
.grafico { display: block; width: 100%; height: auto; }
.grafico-eje { stroke: var(--c-borde-control); stroke-width: 1; }
.grafico-barra { fill: var(--c-marino); }
.grafico-terciario .grafico-barra { fill: var(--c-teal); }
.grafico-valor { font-size: 11px; font-weight: 700; fill: var(--c-marino); }
.grafico-etiqueta { font-size: 11px; fill: var(--c-texto-suave); }

.notas { margin: 16px 0 0; padding: 0; list-style: none; }
.notas li { padding: 14px 16px; border: 1px solid var(--c-linea); border-left: 3px solid var(--c-marino); border-radius: var(--radio); background: var(--c-niebla); }
.notas li + li { margin-top: 10px; }
.notas p { margin: 0; white-space: pre-line; }
.notas .fila-detalle { margin-top: 4px; }

.aviso-puente { margin: 0 0 16px; padding: 12px 14px; border-radius: var(--radio); background: var(--c-teal-suave); color: var(--c-teal-tinta); }
.aviso-puente-atrasado { background: var(--c-negativo-tinte); color: var(--c-negativo); }

.error-pagina { padding-bottom: 8px; }

.pie {
  border-top: 1px solid var(--c-linea);
  background: var(--c-niebla);
  padding: 32px 0 36px;
  color: var(--c-texto-suave);
  font-size: .97rem;
}

.pie-rejilla { display: grid; gap: 22px; grid-template-columns: minmax(0, 1fr); }
.pie h2 { margin: 0 0 8px; font-size: 1rem; color: var(--c-marino); }
.pie ul { margin: 0; padding: 0; list-style: none; }
.pie li { margin: 6px 0; }
.pie p { margin: 6px 0; }
.pie a { color: var(--c-teal); }
.pie .regiones { columns: 2 140px; column-gap: 16px; }
.pie .regiones li { margin: 0; padding: 3px 0; break-inside: avoid; }
.pie .legal { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--c-linea); font-size: .9rem; }
.pie-panel .pie-regiones { display: none; }

@media (min-width: 560px) {
  .fila-campos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rejilla-campos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .licitacion { grid-template-columns: minmax(0, 1fr) auto; }
  .licitacion > :not(.licitacion-monto) { grid-column: 1; }
  .licitacion-monto { grid-column: 2; grid-row: 1 / span 4; align-self: start; margin: 0; text-align: right; }
  .detalle > div { grid-template-columns: 190px minmax(0, 1fr); }
  .servicios-columnas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .servicios-columnas li:nth-child(2) { border-top: 0; }
  .servicios-columnas li:nth-child(2n) { border-left: 1px solid var(--c-linea); }
  .filtros { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filtros-cuatro .filtros-busqueda { grid-column: 1 / -1; }
  .pie-rejilla { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pie-rejilla > .pie-regiones { grid-column: span 2; }
  .graficos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 720px) {
  .contenedor { padding: 0 24px; }
  h1 { font-size: 2.5rem; }
  .franja .contenedor { padding-top: 34px; padding-bottom: 30px; }
  .franja-con-pestanas .contenedor { padding-bottom: 0; }
  .cuerpo { padding-top: 32px; }
  .panel { padding: 24px 28px; }
  .auth .panel { padding: 32px; }
  .licitacion { padding: 16px 20px; }
  .servicio { padding: 14px 20px; }
  .filas > li { padding: 14px 20px; }
  .buscador { grid-template-columns: minmax(0, 1fr) auto; }
  .buscador .buscador-filtros { grid-column: 1 / -1; }
  .buscador-principal { grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr) minmax(0, 1.3fr) auto; }
  .buscador-principal .buscador-filtros { display: contents; }
  .buscador.buscador-principal > .boton { grid-column: 4; grid-row: 1; }
  .buscador-principal select { min-height: 56px; }
  .cifras { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .cifras-tres, .cifras-seis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cifras-tres > div:last-child { grid-column: auto; }
  .cifras-dos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cifras > div { padding: 18px 20px; }
  .cifras dd { font-size: 2rem; }
  .buscador > .boton { grid-column: 2; grid-row: 1; }
  .pasos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 28px; border-top: 0; }
  .pasos li { padding: 18px 0 0; border-bottom: 0; border-top: 2px solid var(--c-marino); }
  .pasos li::before { position: static; margin-bottom: 10px; }
  .confianza dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .confianza dl > div + div { border-top: 0; border-left: 1px solid var(--c-linea); }
  .resumen-cabecera, .resumen-lineas, .resumen-cuerpo, .resumen .acciones-pila, .resumen-pie, .resumen .plan-incluye { padding-left: 24px; padding-right: 24px; }
  .resumen-letras { margin-left: 24px; margin-right: 24px; }
  .planes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-cabeza h1 { font-size: 2.1rem; }
}

@media (max-width: 719px) {
  .tabla-responsiva thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); }
  .tabla-responsiva, .tabla-responsiva tbody, .tabla-responsiva tr, .tabla-responsiva td { display: block; width: 100%; }
  .tabla-responsiva tr { padding: 12px 16px; border-bottom: 1px solid var(--c-linea); }
  .tabla-responsiva tbody tr:last-child { border-bottom: 0; }
  .tabla-responsiva td { padding: 5px 0; border: 0; }
  .tabla-responsiva td::before { content: attr(data-etq); display: block; font-size: .9rem; color: var(--c-texto-suave); }
  .tabla-responsiva td .acciones { flex-wrap: wrap; }
  .tabla-responsiva td.num { text-align: left; }
  .tabla-contenedor:has(.tabla-responsiva) { overflow-x: visible; }
  .celda-error { max-width: none; }
}

@media (min-width: 880px) {
  .disposicion { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px; }
  .disposicion-ficha { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); }
  .panel-resultado { position: sticky; top: 20px; }
  .disposicion-ficha > .panel-resultado { grid-column: 2; grid-row: 1; }
  .disposicion-ficha > .columna:not(.panel-resultado) { grid-column: 1; grid-row: 1; }
  .servicios-tres { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .servicios-tres li:nth-child(3) { border-top: 0; }
  .servicios-tres li:nth-child(2n) { border-left: 0; }
  .servicios-tres li:nth-child(3n+2), .servicios-tres li:nth-child(3n) { border-left: 1px solid var(--c-linea); }
  .filtros { grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)) auto; align-items: end; }
  .filtros-dos { grid-template-columns: repeat(2, minmax(0, 1fr)) auto; }
  .filtros-cuatro .filtros-busqueda { grid-column: auto; }
}

@media (min-width: 960px) {
  .admin { grid-template-columns: 220px minmax(0, 1fr); gap: 36px; }
  .admin-nav { margin: 0; padding: 24px 0; background: var(--c-marino); border: 0; min-height: 100%; }
  .admin-nav-titulo { padding: 0 20px 10px; margin: 0; color: var(--c-marino-tinta); font-weight: 400; font-size: .95rem; }
  .admin-nav ul { display: block; position: sticky; top: 12px; }
  .admin-nav a { padding: 11px 20px; border: 0; border-left: 3px solid transparent; border-radius: 0; background: none; color: var(--c-marino-tinta); font-weight: 600; }
  .admin-nav a:hover { color: var(--c-blanco); background: rgba(201, 214, 230, .08); }
  .admin-nav a[aria-current="page"] { background: rgba(201, 214, 230, .12); border-left-color: var(--c-teal); color: var(--c-blanco); }
  .admin-nav :focus-visible { outline-color: var(--c-blanco); outline-offset: -3px; box-shadow: none; }
  .admin-producto { padding: 0 20px 18px; margin: 0; }
  .admin-producto-fila { flex-direction: column; align-items: stretch; }
  .admin-producto label { color: var(--c-marino-tinta); font-weight: 400; }
  .admin-producto .boton { background: var(--c-blanco); border-color: var(--c-blanco); color: var(--c-marino); }
  .admin-nav .admin-nav-externo { margin-top: 14px; padding-top: 10px; border-top: 1px solid rgba(201, 214, 230, .2); }
  .admin-nav .admin-nav-externo a { font-weight: 400; font-size: .95rem; color: var(--c-marino-tinta); }
  .cuenta-correo { display: inline; }
  .admin-contenido { padding-top: 32px; }
  .contenedor.admin { max-width: none; padding-left: 0; padding-right: 40px; min-height: calc(100vh - 107px); }
  .admin-nav { border-radius: 0; }
  body:has(.admin) .cabecera .contenedor { max-width: none; padding-left: 40px; padding-right: 40px; }
}

@media (min-width: 1400px) {
  .admin { grid-template-columns: 248px minmax(0, 1fr); gap: 48px; }
  .contenedor.admin { padding-right: 56px; }
  body:has(.admin) .cabecera .contenedor { padding-left: 56px; padding-right: 56px; }
}

@media (max-width: 419px) {
  .marca span { display: none; }
  .buscador-filtros { grid-template-columns: minmax(0, 1fr); }
  .segmentado { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

@media print {
  .cabecera, .pie, .admin-nav, .pestanas, .cta, .saltar, .acciones, .acciones-pila { display: none !important; }
  .panel-resultado { position: static; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  a { color: inherit; text-decoration: none; }
}

.franja-normas h1 { max-width: 30ch; }
.buscador-normas { display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr); margin-top: 20px; max-width: 760px; }
.buscador-normas .buscador-campo input { min-height: 52px; }
.buscador-normas .boton { min-height: 52px; }

.normas { margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--c-marino); }
.normas > li { border-bottom: 1px solid var(--c-linea); }
.norma { position: relative; display: grid; gap: 6px; padding: 16px 0 18px; }
.norma h3 { margin: 0; font-size: 1.12rem; font-weight: 700; line-height: 1.3; }
.norma h3 a { color: var(--c-marino); text-decoration: none; }
.norma h3 a:hover { text-decoration: underline; }
.norma p { margin: 0; }
.norma-meta { display: flex; flex-wrap: wrap; gap: 2px 12px; font-size: .92rem; color: var(--c-texto-suave); }
.norma-meta a { color: var(--c-texto); font-weight: 600; text-decoration: none; }
.norma-meta a:hover { text-decoration: underline; }
.edicion-extra { padding: 0 6px; border-radius: 4px; background: var(--c-aviso-tinte); color: var(--c-aviso); font-weight: 600; }
.norma-sumilla { color: var(--c-texto); }
.norma-resumen { padding: 10px 12px; border-left: 3px solid var(--c-teal); background: var(--c-niebla); border-radius: 0 var(--radio) var(--radio) 0; }
.etiqueta-ia { display: inline-block; margin-right: 4px; font-size: .85rem; font-weight: 700; color: var(--c-teal-tinta); }
.norma-afecta { font-size: .95rem; color: var(--c-texto-suave); }
.norma-afecta strong { color: var(--c-texto); }
.norma-interna { padding: 10px 0; gap: 2px; }
.norma-interna h3 { font-size: 1rem; font-weight: 600; }
.norma-interna .norma-sumilla { font-size: .95rem; color: var(--c-texto-suave); }

.temas-norma { display: flex; flex-wrap: wrap; gap: 2px 0; margin: 2px 0 0; padding: 0; list-style: none; font-size: .9rem; }
.temas-norma li + li::before { content: "/"; margin: 0 8px; color: var(--c-borde-control); }
.temas-norma a { color: var(--c-teal); }
.temas-norma-grandes { margin-top: 14px; font-size: 1rem; }

.indice-temas { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 28px; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--c-linea); }
.indice-temas li { border-bottom: 1px solid var(--c-linea); }
.indice-temas a { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; color: var(--c-marino); font-weight: 600; text-decoration: none; }
.indice-temas a:hover span:first-child { text-decoration: underline; }
.indice-temas .num { color: var(--c-texto-suave); font-weight: 400; }

.grupo-tema { margin-top: 36px; }
.grupo-tema .seccion-cabeza { margin-bottom: 4px; }
.cuenta-grupo { font-size: 1rem; font-weight: 400; color: var(--c-texto-suave); }
.plegable > summary { cursor: pointer; list-style: none; padding: 12px 0; border-top: 1px solid var(--c-linea); }
.plegable > summary::-webkit-details-marker { display: none; }
.plegable > summary h2 { display: inline; margin: 0; font-size: 1.2rem; }
.plegable > summary::after { content: "Mostrar"; float: right; color: var(--c-teal); font-weight: 600; }
.plegable[open] > summary::after { content: "Ocultar"; }
.normas-compactas { border-top-width: 1px; }

.sumilla-oficial { margin: 0; padding: 0 0 0 16px; border-left: 3px solid var(--c-marino); font-size: 1.08rem; color: var(--c-texto); }
.panel-resumen-ia { border-color: var(--c-teal); }
.panel-resumen-ia .etiqueta-ia { margin: 0 0 6px; }
.texto-norma { max-width: 72ch; }
.texto-norma p { margin: 0 0 14px; }
.texto-largo { max-width: 860px; }
.cifra-texto { font-size: 1.1rem; overflow-wrap: anywhere; }
.sitio-normas .bajada { max-width: 70ch; }

@media (min-width: 560px) {
  .buscador-normas { grid-template-columns: minmax(0, 1fr) auto; }
  .indice-temas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 880px) {
  .indice-temas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .planes-tres { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.franja-empresas h1 { max-width: 32ch; }
.sitio-empresas .bajada { max-width: 70ch; }
.empresas-lista { margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--c-marino); }
.empresas-lista > li { border-bottom: 1px solid var(--c-linea); }
.empresa { display: grid; gap: 4px; padding: 14px 0 16px; }
.empresa h3 { margin: 0; font-size: 1.08rem; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
.empresa h3 a { color: var(--c-marino); text-decoration: none; }
.empresa h3 a:hover { text-decoration: underline; }
.empresa p { margin: 0; }
.empresa-meta, .empresa-detalle { display: flex; flex-wrap: wrap; gap: 2px 12px; font-size: .92rem; color: var(--c-texto-suave); }
.empresa-meta a { color: var(--c-texto); font-weight: 600; text-decoration: none; }
.empresa-meta a:hover { text-decoration: underline; }
.empresa-detalle a { color: var(--c-teal); }
.empresa-evento { padding: 0 6px; border-radius: 4px; background: var(--c-niebla); color: var(--c-texto); font-weight: 600; }
.empresa-evento-activa { background: var(--c-teal-suave); color: var(--c-teal-tinta); }
.empresa-estado { font-weight: 600; color: var(--c-texto-suave); }
.empresa-estado-activa { color: var(--c-teal-tinta); }
.empresa-direccion { font-size: .95rem; color: var(--c-texto); }
.empresa-pendiente h3 { font-weight: 600; }
.bajada.empresa-detalle { font-size: 1.05rem; }
.indice-temas.indice-compacto { grid-template-columns: minmax(0, 1fr); }
.indice-compacto a, .indice-sin-enlace { padding: 8px 0; }
.indice-sin-enlace { display: flex; justify-content: space-between; gap: 12px; color: var(--c-texto); }
.seccion-primera { margin-top: 0; }
.campo-boton { display: flex; align-items: flex-end; }
.filtros-empresas { margin-bottom: 18px; }
