
:root {
  color-scheme: light;
  --papel: #f6f9f6;
  --hoja: #ffffff;
  --tinta: #15241d;
  --gris: #55645c;
  --raya: #cddad1;
  --banda: #eaf4ed;
  --verde: #0d6b49;
  --verde-osc: #094d35;
  --marcador: #ffe45c;
  --resta: #9a3222;
  --sans: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", "Noto Sans", Arial, sans-serif;
  --titulo: "Avenir Next", "Segoe UI Variable Display", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --cifras: ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;
  --ancho: 68rem;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; background: var(--papel); color: var(--tinta); font: 400 1.0625rem/1.6 var(--sans); }
img, svg { max-width: 100%; }
a { color: var(--verde); text-underline-offset: 0.15em; }
a:hover { color: var(--verde-osc); }
:focus-visible { outline: 3px solid var(--verde); outline-offset: 2px; border-radius: 3px; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.contenedor { max-width: var(--ancho); margin: 0 auto; padding: 0 1.125rem; }
h1, h2, h3 { font-family: var(--titulo); line-height: 1.15; letter-spacing: -0.02em; text-wrap: balance; margin: 0; }
h1 { font-size: clamp(1.75rem, 1.2rem + 2.6vw, 2.75rem); font-weight: 800; }
h2 { font-size: clamp(1.375rem, 1.2rem + 0.9vw, 1.75rem); font-weight: 700; }
h3 { font-size: 1.125rem; font-weight: 700; letter-spacing: -0.01em; }
p { margin: 0; }
.sitio-cab { background: var(--hoja); border-bottom: 1px solid var(--raya); }
.sitio-cab .contenedor { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1.5rem; padding-top: 0.75rem; padding-bottom: 0.75rem; }
.marca { display: inline-flex; align-items: center; gap: 0.5rem; font: 800 1.25rem/1 var(--titulo); letter-spacing: -0.03em; color: var(--tinta); text-decoration: none; }
.marca svg { width: 1.6rem; height: 1.6rem; flex: none; }
.sitio-nav { display: flex; gap: 1.25rem; font-size: 0.9375rem; overflow-x: auto; white-space: nowrap; max-width: 100%; scrollbar-width: none; }
.sitio-nav::-webkit-scrollbar { display: none; }
.sitio-nav a { color: var(--tinta); text-decoration: none; padding: 0.375rem 0; }
.sitio-nav a:hover { text-decoration: underline; }
.sitio-pie { margin-top: 4rem; background: var(--tinta); color: #d7e3db; font-size: 0.9375rem; }
.sitio-pie .contenedor { padding-top: 2.5rem; padding-bottom: 2.5rem; display: grid; gap: 2rem; }
.sitio-pie a { color: #ffffff; }
.pie-cols { display: grid; gap: 1.5rem 2rem; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.pie-cols h2 { font-size: 0.9375rem; letter-spacing: 0; color: #ffffff; margin-bottom: 0.5rem; }
.pie-cols ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.375rem; }
.pie-nota { color: #a9bab0; max-width: 60rem; }
main { display: block; padding: 1.25rem 0 0; }
.migas { font-size: 0.875rem; color: var(--gris); }
.migas ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; }
.migas li + li::before { content: "/"; margin-right: 0.5rem; color: var(--raya); }
.migas a { color: var(--gris); }
.cab-pagina { display: grid; gap: 0.75rem; margin: 1rem 0 1.5rem; max-width: 46rem; }
.entrada { font-size: 1.1875rem; line-height: 1.5; color: var(--gris); }
.herramienta { display: grid; gap: 1.25rem; align-items: start; }
@media (min-width: 900px) { .herramienta { grid-template-columns: minmax(18rem, 24rem) minmax(0, 1fr); gap: 2rem; } }
.calc { display: grid; gap: 1rem; background: var(--hoja); border: 1px solid var(--raya); border-radius: 10px; padding: 1.25rem; }
.campo { display: grid; gap: 0.375rem; }
.campo > label { font-weight: 600; font-size: 0.9375rem; }
.campo-chk > label { display: flex; align-items: center; gap: 0.625rem; font-weight: 500; }
.campo-chk input { width: 1.25rem; height: 1.25rem; accent-color: var(--verde); flex: none; }
.ayuda { font-size: 0.8125rem; line-height: 1.4; color: var(--gris); }
.calc .caja { display: flex; align-items: stretch; font-size: 1rem; color: var(--tinta); border: 1.5px solid #9fb3a7; border-radius: 6px; background: var(--hoja); overflow: hidden; }
.calc .caja:focus-within { border-color: var(--verde); box-shadow: 0 0 0 3px rgba(13, 107, 73, 0.18); }
.calc .caja input { border: 0; outline: 0; flex: 1; min-width: 0; padding: 0.6875rem 0.75rem; font: 500 1.125rem/1.2 var(--cifras); color: var(--tinta); background: transparent; }
.sufijo { display: flex; align-items: center; padding: 0 0.75rem; background: var(--banda); color: var(--gris); font-size: 0.9375rem; border-left: 1px solid var(--raya); }
.calc select, .calc input[type="date"] { width: 100%; padding: 0.6875rem 0.75rem; font: 400 1rem/1.3 var(--sans); color: var(--tinta); background: var(--hoja); border: 1.5px solid #9fb3a7; border-radius: 6px; min-height: 2.875rem; }
.calc select:focus, .calc input[type="date"]:focus { outline: 0; border-color: var(--verde); box-shadow: 0 0 0 3px rgba(13, 107, 73, 0.18); }
.boton { appearance: none; border: 0; cursor: pointer; background: var(--verde); color: #ffffff; font: 700 1.0625rem/1 var(--sans); padding: 0.9375rem 1.25rem; border-radius: 6px; }
.boton:hover { background: var(--verde-osc); }
.boton-sec { appearance: none; cursor: pointer; background: transparent; color: var(--verde); border: 1.5px solid var(--verde); font: 600 0.9375rem/1 var(--sans); padding: 0.625rem 0.875rem; border-radius: 6px; }
.boton-sec:hover { background: var(--banda); }
.mas { border-top: 1px solid var(--raya); padding-top: 0.75rem; }
.mas summary { cursor: pointer; font-weight: 600; font-size: 0.9375rem; color: var(--verde); padding: 0.25rem 0; }
.mas-campos { display: grid; gap: 1rem; margin-top: 0.875rem; }
.recibo { background: var(--hoja); border: 1px solid var(--raya); border-top: 4px solid var(--tinta); border-radius: 2px 2px 10px 10px; padding: 1.25rem 1.25rem 1rem; display: grid; gap: 1rem; }
.recibo-titulo { font: 700 0.9375rem/1.3 var(--titulo); color: var(--gris); }
.liquido { display: grid; gap: 0.25rem; justify-items: start; }
.liquido-etq { font-weight: 600; }
.liquido-valor { font: 700 clamp(2rem, 1.4rem + 3.2vw, 3rem)/1.1 var(--cifras); letter-spacing: -0.04em; padding: 0 0.2em; margin-left: -0.2em; background: linear-gradient(transparent 52%, var(--marcador) 52%, var(--marcador) 92%, transparent 92%); }
.liquido-nota { color: var(--gris); font-size: 0.9375rem; }
.lineas { width: 100%; border-collapse: collapse; font-size: 0.9375rem; }
.lineas th, .lineas td { padding: 0.5rem 0.5rem; vertical-align: baseline; text-align: left; font-weight: 400; }
.lineas td, .lineas thead th + th { text-align: right; font-family: var(--cifras); font-variant-numeric: tabular-nums; }
.lineas thead th { font: 700 0.8125rem/1.2 var(--sans); color: var(--gris); border-bottom: 1px solid var(--raya); }
.lineas tbody tr:nth-child(even) { background: var(--banda); }
.lineas .bloque th { font: 700 0.875rem/1.2 var(--titulo); padding-top: 1rem; background: var(--hoja); border-bottom: 2px solid var(--tinta); }
.lineas tbody:first-of-type .bloque th { padding-top: 0.25rem; }
.lineas th small { display: block; font-size: 0.8125rem; line-height: 1.35; color: var(--gris); }
.lineas .menos td { color: var(--resta); }
.lineas .total th, .lineas .total td { font-weight: 700; border-top: 1px solid var(--tinta); }
.avisos { margin: 0; padding: 0.75rem 0 0 1.1rem; border-top: 1px dashed var(--raya); font-size: 0.8125rem; line-height: 1.45; color: var(--gris); display: grid; gap: 0.375rem; }
.acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem; margin-top: 1rem; font-size: 0.875rem; color: var(--gris); }
.texto { max-width: 46rem; display: grid; gap: 1rem; margin-top: 2.5rem; }
.texto h2 { margin-top: 1.5rem; }
.texto h3 { margin-top: 0.75rem; }
.texto ul, .texto ol { margin: 0; padding-left: 1.3rem; display: grid; gap: 0.5rem; }
.faq { display: grid; gap: 1.25rem; }
.faq div { display: grid; gap: 0.375rem; }
.fuentes { font-size: 0.9375rem; }
.tabla-scroll { overflow-x: auto; border: 1px solid var(--raya); border-radius: 8px; background: var(--hoja); }
.datos { width: 100%; border-collapse: collapse; font-size: 0.9375rem; }
.datos th, .datos td { padding: 0.5625rem 0.75rem; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.datos th:first-child { text-align: left; }
.datos tbody th { font-weight: 600; white-space: normal; min-width: 9rem; }
.datos thead th { font-size: 0.8125rem; line-height: 1.25; color: var(--gris); background: var(--hoja); border-bottom: 2px solid var(--tinta); white-space: normal; vertical-align: bottom; }
.datos tbody tr:nth-child(even) { background: var(--banda); }
.nota-caja { background: var(--hoja); border: 1px solid var(--raya); border-left: 4px solid var(--verde); border-radius: 0 8px 8px 0; padding: 1rem 1.125rem; display: grid; gap: 0.5rem; }
.nota-caja ul { margin: 0; padding-left: 1.2rem; }
.pendiente { background: var(--marcador); padding: 0 0.2em; }
.grupo { display: grid; gap: 1rem; margin-top: 3rem; }
.grupo-cab { display: grid; gap: 0.25rem; }
.grupo-cab p { color: var(--gris); }
.lista-herr { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); border-top: 2px solid var(--tinta); }
.lista-herr li { border-bottom: 1px solid var(--raya); }
.lista-herr a { display: grid; gap: 0.125rem; padding: 0.875rem 0.5rem 0.875rem 0; text-decoration: none; color: var(--tinta); height: 100%; }
.lista-herr a:hover strong { text-decoration: underline; color: var(--verde-osc); }
.lista-herr strong { font: 700 1.0625rem/1.3 var(--titulo); }
.lista-herr span { color: var(--gris); font-size: 0.9375rem; line-height: 1.4; }
.relacionadas { margin-top: 3rem; display: grid; gap: 1rem; }
.cercanos { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }
.cercanos a { display: inline-block; padding: 0.375rem 0.75rem; border: 1px solid var(--raya); border-radius: 999px; background: var(--hoja); text-decoration: none; font-family: var(--cifras); font-size: 0.9375rem; }
.cercanos a:hover { border-color: var(--verde); }
.portada { display: grid; gap: 1.5rem; margin: 1.5rem 0 0; }
.portada .cab-pagina { margin: 0; }
.anuncio { margin: 2rem 0; min-height: 280px; display: grid; grid-template-rows: auto 1fr; gap: 0.25rem; }
.anuncio-etq { font-size: 0.75rem; color: var(--gris); }
.anuncio-hueco { display: grid; place-items: center; border: 1px dashed #9fb3a7; border-radius: 8px; color: var(--gris); font-size: 0.875rem; background: repeating-linear-gradient(135deg, var(--hoja), var(--hoja) 12px, var(--banda) 12px, var(--banda) 24px); }
.patrocinado, .boletin { max-width: 46rem; margin-top: 2rem; background: var(--hoja); border: 1px solid var(--raya); border-radius: 10px; padding: 1.125rem 1.25rem; display: grid; gap: 0.625rem; }
.patrocinado small { color: var(--gris); }
.boletin form { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.boletin input { flex: 1 1 14rem; min-width: 0; padding: 0.6875rem 0.75rem; font: 400 1rem/1.3 var(--sans); border: 1.5px solid #9fb3a7; border-radius: 6px; }
