/* ============================================================
   ReCoIn · Capa de documento v1.0  ·  superficie BRAND
   ------------------------------------------------------------
   Chrome común de recoin.es: barra superior, cabecera de página,
   artículo legal, tablas, cajas de aviso, pasos, formularios y pie.

   Orden de carga OBLIGATORIO:
     <link rel="stylesheet" href="recoin-tokens.css">
     <link rel="stylesheet" href="recoin-ui.css">
     <link rel="stylesheet" href="recoin-doc.css">

   Cero hex literales: todo sale de los tokens.
   ============================================================ */

/* ------------------------------------------------------------
   0 · BASE
   ------------------------------------------------------------ */
html { scroll-behavior: smooth; }
body.rc-brand { overflow-x: hidden; }
img { max-width: 100%; }

/* Reset mínimo: cada componente declara su propio ritmo vertical */
h1, h2, h3, h4, p, figure, blockquote { margin: 0; }
ul, ol { margin: 0; padding: 0; }

::selection { background: var(--rc-amber-bg); color: var(--rc-cream); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* Contenedor de sección — misma medida en toda la web */
.sec-inner {
  max-width: var(--rc-max-w);
  margin: 0 auto;
  padding: 0 var(--rc-sp-6);
  position: relative;
  z-index: 1;
}

/* ------------------------------------------------------------
   1 · BARRA SUPERIOR
   Se acota por #mainnav, nunca por el elemento <nav>: una regla
   global sobre <nav> rompe la navegación del pie.
   ------------------------------------------------------------ */
#mainnav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 800;
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--rc-sp-6);
  height: 64px;
  padding: 0 var(--rc-sp-6);
  background: var(--rc-brand-bg);
  background: color-mix(in srgb, var(--rc-brand-bg) 92%, transparent);
  backdrop-filter: blur(16px);
  border-bottom: var(--rc-bw) solid var(--s-line);
}
.rc-brand .nlogo { display: flex; align-items: center; }
.nlogo img { display: block; height: 28px; width: auto; }

.nlinks { display: flex; gap: var(--rc-sp-5); list-style: none; margin: 0; padding: 0; }
.nlinks a {
  font-family: var(--rc-font-data);
  font-size: var(--rc-fs-label);
  font-weight: var(--rc-fw-med);
  letter-spacing: var(--rc-ls-label);
  text-transform: uppercase;
  color: var(--rc-text-2);
  transition: color var(--rc-t-fast);
}
.nlinks a:hover, .nlinks a.on { color: var(--s-text); }
.nlinks a.on { border-bottom: var(--rc-bw) solid var(--rc-amber); padding-bottom: 2px; }

.rc-brand .ncta {
  font-family: var(--rc-font-data);
  font-size: var(--rc-fs-label);
  letter-spacing: .12em;
  text-transform: uppercase;
  background: var(--rc-amber);
  color: var(--rc-brand-bg);
  border-radius: var(--rc-r-md);
  height: var(--rc-tap);
  padding: 0 20px;
  display: inline-flex; align-items: center;
  transition: background var(--rc-t-fast);
}
.rc-brand .ncta:hover { background: var(--rc-amber-hi); color: var(--rc-brand-bg); }

#mainnav a:focus-visible,
.mobile-menu a:focus-visible,
.hamburger:focus-visible { outline: none; box-shadow: var(--rc-focus); }

/* Hamburguesa */
.hamburger {
  display: none; flex-direction: column; gap: 5px;
  background: none; border: none; cursor: pointer;
  width: var(--rc-tap); height: var(--rc-tap);
  align-items: center; justify-content: center;
  border-radius: var(--rc-r-md);
}
.hamburger span {
  display: block; width: 22px; height: 2px;
  background: var(--s-text);
  transition: transform var(--rc-t-base), opacity var(--rc-t-fast);
}
.hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; }
.hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.mobile-menu {
  display: none;
  position: fixed; top: 64px; left: 0; right: 0; z-index: 799;
  background: var(--rc-brand-bg);
  border-bottom: var(--rc-bw) solid var(--s-line);
  padding: var(--rc-sp-2) 0;
  max-height: calc(100vh - 64px);
  overflow-y: auto;
}
.mobile-menu.open { display: block; }
.mobile-menu a {
  display: flex; align-items: center;
  min-height: var(--rc-tap);
  font-family: var(--rc-font-data);
  font-size: var(--rc-fs-label);
  letter-spacing: var(--rc-ls-label);
  text-transform: uppercase;
  color: var(--rc-text-2);
  padding: 0 var(--rc-sp-5);
  border-bottom: var(--rc-bw) solid var(--s-line);
  transition: color var(--rc-t-fast), background var(--rc-t-fast);
}
.mobile-menu a:hover { color: var(--s-text); background: var(--s-surface); }
.mobile-menu .mcta {
  background: var(--rc-amber); color: var(--rc-brand-bg);
  margin: var(--rc-sp-4) var(--rc-sp-5) var(--rc-sp-2);
  border-radius: var(--rc-r-md); border: none;
  justify-content: center;
}
.mobile-menu .mcta:hover { background: var(--rc-amber-hi); color: var(--rc-brand-bg); }

/* ------------------------------------------------------------
   2 · CABECERA DE PÁGINA
   Un solo bloque Bebas por pantalla: el h1. Sin marca de agua.
   ------------------------------------------------------------ */
#lhead {
  padding: calc(64px + var(--rc-sp-8)) 0 var(--rc-sp-7);
  position: relative;
  border-bottom: var(--rc-bw) solid var(--s-line);
}
#lhead::after {
  content: '';
  position: absolute; inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(to bottom,
    var(--rc-line-soft) 0 1px, transparent 1px 3px);
  background: repeating-linear-gradient(to bottom,
    color-mix(in srgb, var(--rc-cream) 2%, transparent) 0 1px,
    transparent 1px 3px);
}

/* Eyebrow de sección */
.slabel {
  font-family: var(--rc-font-data);
  font-size: var(--rc-fs-micro);
  letter-spacing: var(--rc-ls-micro);
  text-transform: uppercase;
  color: var(--rc-amber);
  margin-bottom: var(--rc-sp-3);
  display: flex; align-items: center; gap: var(--rc-sp-2);
}
.slabel::before { content: ''; width: 24px; height: 1px; background: var(--rc-amber); flex: none; }

h1.st, h2.st {
  font-family: var(--rc-font-display);
  letter-spacing: var(--rc-ls-display);
  line-height: var(--rc-lh-tight);
  color: var(--s-text);
  margin: 0 0 var(--rc-sp-4);
  text-wrap: balance;
}
h1.st { font-size: clamp(40px, 7vw, var(--rc-fs-giga)); }
h2.st { font-size: clamp(32px, 5vw, var(--rc-fs-mega)); }
h1.st em, h2.st em { color: var(--rc-amber); font-style: normal; }
h1.st .out, h2.st .out { color: var(--rc-text-4); display: block; }

.lead {
  font-size: var(--rc-fs-lg);
  line-height: var(--rc-lh-read);
  color: var(--rc-text-2);
  max-width: 68ch;
  margin: 0;
  text-wrap: pretty;
}
.lead strong { color: var(--s-text); font-weight: var(--rc-fw-med); }

/* Tira de metadatos: etiqueta + cifra, mono tabular */
.meta-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
  gap: var(--rc-sp-2);
  margin-top: var(--rc-sp-6);
}
.ms-cell {
  background: var(--s-surface);
  border: var(--rc-bw) solid var(--s-line);
  border-radius: var(--s-radius);
  padding: var(--rc-sp-4);
  display: flex; flex-direction: column; gap: var(--rc-sp-2);
}
.ms-k {
  font-family: var(--rc-font-data);
  font-size: var(--rc-fs-label);
  font-weight: var(--rc-fw-med);
  letter-spacing: var(--rc-ls-label);
  text-transform: uppercase;
  color: var(--rc-text-3);
}
.ms-v {
  font-family: var(--rc-font-data);
  font-variant-numeric: tabular-nums;
  font-size: var(--rc-fs-lg);
  line-height: 1.1;
  color: var(--s-text);
  word-break: break-word;
}
.ms-v em { color: var(--rc-amber); font-style: normal; }

/* ------------------------------------------------------------
   3 · CUERPO DEL DOCUMENTO
   ------------------------------------------------------------ */
#legal { padding: var(--rc-sp-8) 0 96px; }
.legal-grid {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: var(--rc-sp-7);
  align-items: start;
}
.legal-grid.solo { grid-template-columns: minmax(0, 1fr); max-width: 860px; }

/* Índice lateral */
.toc {
  position: sticky; top: 88px;
  max-height: calc(100vh - 120px);
  overflow-y: auto;
  border-left: var(--rc-bw) solid var(--s-line);
  padding-left: var(--rc-sp-4);
  scrollbar-width: thin;
}
.toc::-webkit-scrollbar { width: 2px; }
.toc::-webkit-scrollbar-thumb { background: var(--rc-amber-mid); }
.toc-t {
  font-family: var(--rc-font-data);
  font-size: var(--rc-fs-micro);
  letter-spacing: var(--rc-ls-micro);
  text-transform: uppercase;
  color: var(--rc-text-4);
  margin-bottom: var(--rc-sp-3);
}
.toc a {
  display: flex; gap: var(--rc-sp-2);
  font-size: var(--rc-fs-sm);
  color: var(--rc-text-2);
  padding: var(--rc-sp-2) 0;
  line-height: 1.35;
  border-bottom: var(--rc-bw) solid var(--s-line-soft);
  transition: color var(--rc-t-fast);
}
.toc a:hover, .toc a[aria-current] { color: var(--rc-amber); }
.toc a .n {
  font-family: var(--rc-font-data);
  font-variant-numeric: tabular-nums;
  font-size: var(--rc-fs-micro);
  color: var(--rc-amber-mid);
  flex: none;
}

/* Artículo */
article h2 {
  font-family: var(--rc-font-ui);
  font-size: var(--rc-fs-hero);
  font-weight: var(--rc-fw-semi);
  line-height: 1.15;
  color: var(--s-text);
  margin: var(--rc-sp-8) 0 var(--rc-sp-4);
  padding-top: var(--rc-sp-4);
  border-top: var(--rc-bw) solid var(--s-line);
  display: flex; gap: var(--rc-sp-3); align-items: baseline;
  scroll-margin-top: 96px;
  text-wrap: balance;
}
article h2:first-of-type { margin-top: 0; border-top: none; padding-top: 0; }
article h2 .hn {
  font-family: var(--rc-font-data);
  font-variant-numeric: tabular-nums;
  font-size: var(--rc-fs-sm);
  letter-spacing: var(--rc-ls-label);
  color: var(--rc-amber);
  flex: none;
}
article h3 {
  font-family: var(--rc-font-data);
  font-size: var(--rc-fs-label);
  font-weight: var(--rc-fw-med);
  letter-spacing: var(--rc-ls-label);
  text-transform: uppercase;
  color: var(--rc-amber);
  margin: var(--rc-sp-5) 0 var(--rc-sp-3);
}
article p {
  font-size: var(--rc-fs-body);
  line-height: var(--rc-lh-read);
  color: var(--rc-text-2);
  margin: 0 0 var(--rc-sp-3);
  max-width: 74ch;
  text-wrap: pretty;
}
article p strong, article li strong, article td strong {
  color: var(--s-text); font-weight: var(--rc-fw-med);
}
article a { color: var(--rc-amber); border-bottom: var(--rc-bw) solid var(--rc-amber-line); }
article a:hover { color: var(--rc-amber-hi); border-color: var(--rc-amber-hi); }
article a:focus-visible { outline: none; box-shadow: var(--rc-focus); }

article ul { list-style: none; margin: var(--rc-sp-2) 0 var(--rc-sp-5); padding: 0; }
article ul li {
  font-size: var(--rc-fs-body);
  color: var(--rc-text-2);
  line-height: var(--rc-lh-read);
  padding: var(--rc-sp-3) 0;
  border-bottom: var(--rc-bw) solid var(--s-line);
  display: flex; gap: var(--rc-sp-3); align-items: flex-start;
}
article ul li:first-child { border-top: var(--rc-bw) solid var(--s-line); }

/* Marca de punto de lista — el mismo cuadro del sistema */
.chk {
  width: 14px; height: 14px; flex: none; margin-top: 6px;
  border-radius: var(--rc-r-sm);
  background: var(--rc-amber-bg);
  border: var(--rc-bw) solid var(--rc-amber-line);
}

/* ------------------------------------------------------------
   4 · TABLAS
   ------------------------------------------------------------ */
.tw {
  overflow-x: auto;
  margin: var(--rc-sp-4) 0 var(--rc-sp-6);
  border: var(--rc-bw) solid var(--s-line);
  border-radius: var(--s-radius);
}
.tw table { width: 100%; border-collapse: collapse; min-width: 540px; }
.tw th {
  font-family: var(--rc-font-data);
  font-size: var(--rc-fs-label);
  font-weight: var(--rc-fw-med);
  letter-spacing: var(--rc-ls-label);
  text-transform: uppercase;
  color: var(--rc-text-3);
  text-align: left;
  padding: var(--rc-sp-3) var(--rc-sp-4);
  background: var(--s-surface);
  border-bottom: var(--rc-bw) solid var(--s-line);
  vertical-align: bottom;
}
.tw td {
  font-size: var(--rc-fs-sm);
  color: var(--rc-text-2);
  padding: var(--rc-sp-3) var(--rc-sp-4);
  border-bottom: var(--rc-bw) solid var(--s-line-soft);
  vertical-align: top;
  line-height: var(--rc-lh-read);
}
.tw tr:last-child td { border-bottom: none; }
.tw tbody tr:hover td { background: var(--s-surface); }
.mono, .rc-num {
  font-family: var(--rc-font-data);
  font-variant-numeric: tabular-nums;
  font-size: var(--rc-fs-sm);
}
.no { color: var(--rc-text-4); }

/* ------------------------------------------------------------
   5 · CAJAS DE AVISO
   Ámbar = mirar · rojo = fallo o irreversible · verde = funciona
   ------------------------------------------------------------ */
.box {
  background: var(--s-surface);
  border: var(--rc-bw) solid var(--rc-amber-line);
  border-radius: var(--s-radius);
  padding: var(--rc-sp-5);
  margin: var(--rc-sp-5) 0 var(--rc-sp-6);
}
.box-t {
  font-family: var(--rc-font-data);
  font-size: var(--rc-fs-label);
  font-weight: var(--rc-fw-med);
  letter-spacing: var(--rc-ls-label);
  text-transform: uppercase;
  color: var(--rc-amber);
  margin-bottom: var(--rc-sp-2);
}
.box p:last-child, .box ul:last-child { margin-bottom: 0; }
.box.warn { border-color: var(--rc-alert-line); background: var(--rc-alert-wash); }
.box.warn .box-t { color: var(--rc-alert); }
.box.ok { border-color: var(--rc-signal-line); background: var(--rc-signal-wash); }
.box.ok .box-t { color: var(--rc-signal); }

.todo {
  display: inline-block;
  font-family: var(--rc-font-data);
  font-size: var(--rc-fs-micro);
  letter-spacing: .1em;
  background: var(--rc-alert-bg);
  border: var(--rc-bw) dashed var(--rc-alert-line);
  border-radius: var(--rc-r-sm);
  color: var(--rc-alert);
  padding: 2px 8px;
}

/* ------------------------------------------------------------
   6 · BLOQUE DE CONTACTO
   ------------------------------------------------------------ */
.cbox {
  background: var(--s-surface);
  border: var(--rc-bw) solid var(--s-line);
  border-radius: var(--s-radius);
  padding: var(--rc-sp-5);
  margin-top: var(--rc-sp-6);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
  gap: var(--rc-sp-5);
}
.cbox-k {
  font-family: var(--rc-font-data);
  font-size: var(--rc-fs-label);
  font-weight: var(--rc-fw-med);
  letter-spacing: var(--rc-ls-label);
  text-transform: uppercase;
  color: var(--rc-text-3);
  margin-bottom: var(--rc-sp-2);
}
.rc-brand .cbox-v {
  font-family: var(--rc-font-data);
  font-variant-numeric: tabular-nums;
  font-size: var(--rc-fs-body);
  color: var(--s-text);
  display: block;
  border: none;
  transition: color var(--rc-t-fast);
}
.rc-brand .cbox-v:hover { color: var(--rc-amber); }
.rc-brand .cbox-v:focus-visible { outline: none; box-shadow: var(--rc-focus); }

/* ------------------------------------------------------------
   7 · PASOS — misma fila del sistema, con ordinal
   ------------------------------------------------------------ */
.steps { display: flex; flex-direction: column; gap: var(--rc-sp-2); margin: var(--rc-sp-5) 0 var(--rc-sp-6); }
.step {
  display: grid; grid-template-columns: 40px minmax(0, 1fr);
  gap: var(--rc-sp-4);
  min-height: var(--rc-row-h);
  align-items: start;
  background: var(--s-surface);
  border: var(--rc-bw) solid var(--s-line);
  border-radius: var(--s-radius);
  padding: var(--rc-sp-4);
}
.step-n {
  font-family: var(--rc-font-data);
  font-variant-numeric: tabular-nums;
  font-size: var(--rc-fs-lg);
  color: var(--rc-amber);
  line-height: 1.2;
}
.step-t {
  font-size: var(--rc-fs-body);
  font-weight: var(--rc-fw-semi);
  color: var(--s-text);
  margin-bottom: var(--rc-sp-1);
}
.step-d { font-size: var(--rc-fs-sm); color: var(--rc-text-2); line-height: var(--rc-lh-read); }
.step-d a { color: var(--rc-amber); }

/* ------------------------------------------------------------
   8 · FORMULARIO
   ------------------------------------------------------------ */
.fform { max-width: 760px; }
.fgroup { margin-bottom: var(--rc-sp-6); }
.flabel {
  display: block;
  font-family: var(--rc-font-data);
  font-size: var(--rc-fs-label);
  font-weight: var(--rc-fw-med);
  letter-spacing: var(--rc-ls-label);
  text-transform: uppercase;
  color: var(--rc-text-3);
  margin-bottom: var(--rc-sp-3);
}
.fhint { font-size: var(--rc-fs-sm); color: var(--rc-text-4); margin-top: var(--rc-sp-2); line-height: 1.5; }

.finput, .ftext, .fselect {
  width: 100%;
  background: var(--rc-brand-bg);
  border: var(--rc-bw) solid var(--s-line);
  border-radius: var(--rc-r-md);
  color: var(--s-text);
  font-family: var(--rc-font-ui);
  font-size: var(--rc-fs-body);
  padding: var(--rc-sp-3);
  transition: border-color var(--rc-t-fast);
}
.finput { height: var(--rc-tap); }
.finput:focus-visible, .ftext:focus-visible, .fselect:focus-visible {
  outline: none; border-color: var(--rc-signal); box-shadow: var(--rc-focus);
}
.finput::placeholder, .ftext::placeholder { color: var(--rc-text-4); }
.ftext { min-height: 180px; resize: vertical; line-height: var(--rc-lh-read); }
.fselect { height: var(--rc-tap); cursor: pointer; }
.fselect option { background: var(--rc-brand-surface); color: var(--s-text); }

.frow { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: var(--rc-sp-4); }

/* Valoración: mismo patrón que los filtros de producto */
.fstars { display: flex; gap: var(--rc-sp-2); }
.fstar { position: relative; }
.fstar input { position: absolute; opacity: 0; width: 0; height: 0; }
.fstar span {
  display: flex; align-items: center; justify-content: center;
  width: var(--rc-tap); height: var(--rc-tap);
  border: var(--rc-bw) solid var(--s-line);
  border-radius: var(--rc-r-md);
  background: transparent;
  font-family: var(--rc-font-data);
  font-variant-numeric: tabular-nums;
  font-size: var(--rc-fs-body);
  color: var(--rc-text-2);
  cursor: pointer;
  transition: background var(--rc-t-fast), color var(--rc-t-fast), border-color var(--rc-t-fast);
}
.fstar span:hover { border-color: var(--rc-text-off); color: var(--s-text); }
.fstar input:checked + span { background: var(--rc-amber); border-color: transparent; color: var(--rc-brand-bg); }
.fstar input:focus-visible + span { outline: none; box-shadow: var(--rc-focus); }

.fcheck { display: flex; gap: var(--rc-sp-3); align-items: flex-start; cursor: pointer; }
.fcheck input { position: absolute; opacity: 0; width: 0; height: 0; }
.fbox {
  width: 20px; height: 20px; flex: none; margin-top: 2px;
  border: var(--rc-bw) solid var(--s-line);
  border-radius: var(--rc-r-sm);
  background: var(--rc-brand-bg);
  display: flex; align-items: center; justify-content: center;
  transition: background var(--rc-t-fast), border-color var(--rc-t-fast);
}
.fcheck input:checked + .fbox { background: var(--rc-amber); border-color: transparent; }
.fcheck input:checked + .fbox::after { content: ''; width: 8px; height: 8px; background: var(--rc-brand-bg); border-radius: 1px; }
.fcheck input:focus-visible + .fbox { outline: none; box-shadow: var(--rc-focus); }
.fcheck-t { font-size: var(--rc-fs-sm); color: var(--rc-text-2); line-height: var(--rc-lh-read); }

.fcount {
  font-family: var(--rc-font-data);
  font-variant-numeric: tabular-nums;
  font-size: var(--rc-fs-label);
  color: var(--rc-text-4);
  text-align: right;
  margin-top: var(--rc-sp-2);
}
.fcount.over { color: var(--rc-alert); }

.fsubmit {
  font-family: var(--rc-font-data);
  font-size: var(--rc-fs-label);
  letter-spacing: .12em;
  text-transform: uppercase;
  background: var(--rc-amber);
  color: var(--rc-brand-bg);
  border: var(--rc-bw) solid transparent;
  border-radius: var(--rc-r-md);
  height: var(--rc-tap);
  padding: 0 var(--rc-sp-6);
  cursor: pointer;
  transition: background var(--rc-t-fast);
}
.fsubmit:hover:not(:disabled) { background: var(--rc-amber-hi); }
.fsubmit:disabled { color: var(--rc-text-off); background: var(--s-surface); border-color: var(--s-line); cursor: not-allowed; }
.fsubmit:focus-visible { outline: none; box-shadow: var(--rc-focus); }

.ferr { font-size: var(--rc-fs-sm); color: var(--rc-alert); margin-top: var(--rc-sp-2); display: none; }
.ferr.on { display: block; }

.fmsg {
  display: none;
  background: var(--rc-signal-wash);
  border: var(--rc-bw) solid var(--rc-signal-line);
  border-radius: var(--s-radius);
  padding: var(--rc-sp-5);
  margin-bottom: var(--rc-sp-6);
}
.fmsg.on { display: block; }
.fmsg.bad { background: var(--rc-alert-wash); border-color: var(--rc-alert-line); }
.fmsg-t {
  font-family: var(--rc-font-data);
  font-size: var(--rc-fs-label);
  font-weight: var(--rc-fw-med);
  letter-spacing: var(--rc-ls-label);
  text-transform: uppercase;
  color: var(--rc-signal);
  margin-bottom: var(--rc-sp-2);
}
.fmsg.bad .fmsg-t { color: var(--rc-alert); }
.fmsg p { margin-bottom: 0; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ------------------------------------------------------------
   9 · PIE
   ------------------------------------------------------------ */
footer {
  border-top: var(--rc-bw) solid var(--s-line);
  padding: var(--rc-sp-6) var(--rc-sp-6) var(--rc-sp-5);
  position: relative; z-index: 1;
}
.foot-in {
  max-width: var(--rc-max-w); margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: var(--rc-sp-4);
}
.foot-in img { display: block; height: 22px; width: auto; opacity: .7; }
.flinks { display: flex; gap: var(--rc-sp-2) var(--rc-sp-5); flex-wrap: wrap; align-items: center; }
.flinks a {
  font-family: var(--rc-font-data);
  font-size: var(--rc-fs-label);
  letter-spacing: var(--rc-ls-label);
  text-transform: uppercase;
  color: var(--rc-text-2);
  display: inline-flex; align-items: center;
  min-height: 32px;
  transition: color var(--rc-t-fast);
}
.flinks a:hover { color: var(--s-text); }
.flinks a:focus-visible { outline: none; box-shadow: var(--rc-focus); }

.foot-bot {
  max-width: var(--rc-max-w); margin: var(--rc-sp-4) auto 0;
  padding-top: var(--rc-sp-4);
  border-top: var(--rc-bw) solid var(--s-line);
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: var(--rc-sp-2);
}
.fcopy, .fnote {
  font-family: var(--rc-font-data);
  font-size: var(--rc-fs-micro);
  letter-spacing: .08em;
  color: var(--rc-text-4);
}

/* ------------------------------------------------------------
   10 · RESPONSIVE — sin números fijos de columna
   ------------------------------------------------------------ */
@media (max-width: 1100px) {
  #mainnav { padding: 0 var(--rc-sp-4); }
  .nlinks, .rc-brand .ncta { display: none; }
  .hamburger { display: flex; }
  .sec-inner { padding: 0 var(--rc-sp-4); }
  .legal-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .toc {
    position: static; max-height: none;
    border-left: none;
    border: var(--rc-bw) solid var(--s-line);
    border-radius: var(--s-radius);
    background: var(--s-surface);
    padding: var(--rc-sp-5);
    margin-bottom: var(--rc-sp-7);
  }
  .toc-inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 0 var(--rc-sp-5); }
  footer { padding: var(--rc-sp-5) var(--rc-sp-4) var(--rc-sp-4); }
  .foot-in { flex-direction: column; align-items: flex-start; }
  .foot-bot { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 600px) {
  #lhead { padding: calc(64px + var(--rc-sp-6)) 0 var(--rc-sp-6); }
  #legal { padding: var(--rc-sp-6) 0 var(--rc-sp-8); }
  article h2 { font-size: var(--rc-fs-data); flex-direction: column; gap: var(--rc-sp-1); }
  .cbox { padding: var(--rc-sp-4); }
  .box { padding: var(--rc-sp-4); }
  .step { grid-template-columns: 28px minmax(0, 1fr); gap: var(--rc-sp-3); }
}

/* ------------------------------------------------------------
   11 · IMPRESIÓN
   ------------------------------------------------------------ */
@media print {
  #mainnav, .mobile-menu, .toc, .hamburger { display: none !important; }
  #lhead { padding-top: 0; }
  #lhead::after { display: none; }
  .ms-cell, .box, .step, .cbox, .tw { break-inside: avoid; }
  article h2 { break-after: avoid; }
}
