/* Guías de nirepair.es: mismos tokens que la portada y programas.html */
:root{
  --bg:#fbfbfd; --surface:#f2f4f8; --surface-2:#e9edf4; --ink:#0f1320; --ink-2:#3a4152; --ink-dim:#636b7e; --border:#e2e6ee;
  --brand:#2f6fed; --brand-deep:#1f4fc2; --brand-soft:#e8f0ff; --trans:#c86a12; --trans-soft:#fdf1e4;
  --radius-lg:28px; --radius-md:18px; --radius-sm:10px; --ease:cubic-bezier(.22,.8,.26,1);
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){ --bg:#0c0f16; --surface:#141925; --surface-2:#1b2231; --ink:#eef1f7; --ink-2:#c3c9d6; --ink-dim:#8d95a8; --border:#252c3b;
    --brand:#6f9bff; --brand-deep:#a9c2ff; --brand-soft:#17223a; --trans:#f0a13f; --trans-soft:#2a1d0f; color-scheme:dark; }
}
:root[data-theme="dark"]{ --bg:#0c0f16; --surface:#141925; --surface-2:#1b2231; --ink:#eef1f7; --ink-2:#c3c9d6; --ink-dim:#8d95a8; --border:#252c3b;
    --brand:#6f9bff; --brand-deep:#a9c2ff; --brand-soft:#17223a; --trans:#f0a13f; --trans-soft:#2a1d0f; color-scheme:dark; }
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:84px; }
html,body{ margin:0; padding:0; }
body{ background:var(--bg); color:var(--ink); font-family:'Geist',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:1rem; line-height:1.55; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
a{ color:inherit; }
::selection{ background:var(--brand); color:#fff; }
:focus-visible{ outline:2px solid var(--brand); outline-offset:3px; border-radius:6px; }
img{ max-width:100%; height:auto; }
.wrap{ max-width:1180px; margin:0 auto; padding:0 clamp(1.25rem,5vw,3rem); }
.skip{ position:absolute; left:1rem; top:-3rem; z-index:100; background:var(--ink); color:var(--bg); padding:.6rem 1rem; border-radius:8px; text-decoration:none; font-weight:600; }
.skip:focus{ top:1rem; }

header{ position:sticky; top:0; z-index:40; background:color-mix(in srgb, var(--bg) 82%, transparent);
  backdrop-filter:saturate(160%) blur(14px); -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid color-mix(in srgb, var(--border) 70%, transparent); }
.header-row{ display:flex; justify-content:space-between; align-items:center; gap:1rem; min-height:68px; }
.logo{ display:flex; align-items:center; text-decoration:none; flex:none; }
.logo .logo-img{ height:28px; width:auto; }
.nav-links{ display:flex; align-items:center; gap:.3rem; font-size:.92rem; font-weight:500; color:var(--ink-dim); }
.nav-links a{ text-decoration:none; padding:.45rem .75rem; border-radius:999px; transition:color .2s var(--ease), background .2s var(--ease); white-space:nowrap; }
.nav-links a:hover, .nav-links a[aria-current]{ color:var(--ink); }
.nav-links a:hover{ background:var(--surface); }
.nav-links .nav-cta{ margin-left:.4rem; background:var(--ink); color:var(--bg); padding:.55rem 1.05rem; font-weight:600; transition:transform .2s var(--ease), background .2s var(--ease); }
.nav-links .nav-cta:hover{ background:var(--brand); color:#fff; }
.nav-links .nav-cta:active{ transform:scale(.97); }
@media (max-width:720px){ .nav-links a:not(.nav-cta){ display:none; } .header-row{ min-height:60px; } .logo .logo-img{ height:24px; } }

.btn{ display:inline-flex; align-items:center; gap:.5rem; background:var(--brand); color:#fff; text-decoration:none; font-weight:600;
  padding:.8rem 1.3rem; border-radius:999px; transition:transform .2s var(--ease), background .2s var(--ease); }
.btn:hover{ background:var(--brand-deep); color:#fff; }
.btn:active{ transform:scale(.97); }
.btn.ghost{ background:transparent; color:var(--ink); box-shadow:inset 0 0 0 1px var(--border); }
.btn.ghost:hover{ background:var(--surface); color:var(--ink); }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .btn:not(.ghost){ color:#0c0f16; } }
:root[data-theme="dark"] .btn:not(.ghost){ color:#0c0f16; }

/* ── Artículo ─────────────────────────────────────────────────────────── */
.migas{ font-size:.85rem; color:var(--ink-dim); padding-top:clamp(1.6rem,4vw,2.6rem); }
.migas a{ text-decoration:none; }
.migas a:hover{ color:var(--ink); text-decoration:underline; }
.art{ max-width:46rem; margin:0 auto; padding-bottom:clamp(3rem,8vw,5rem); }
.kicker{ margin:1.4rem 0 0; font-family:'Geist Mono',ui-monospace,monospace; font-size:.78rem; letter-spacing:.04em; text-transform:uppercase; color:var(--brand); }
.art h1{ margin:.7rem 0 0; font-weight:700; letter-spacing:-.035em; font-size:clamp(2rem,4.6vw,3.1rem); line-height:1.06; text-wrap:balance; }
.entrada{ margin:1.1rem 0 0; font-size:clamp(1.08rem,1.4vw,1.2rem); color:var(--ink-2); text-wrap:pretty; }
.firma{ margin:1.3rem 0 0; padding-bottom:1.6rem; border-bottom:1px solid var(--border); font-size:.88rem; color:var(--ink-dim); }
.resumen{ margin:2rem 0 0; background:var(--surface); border-radius:var(--radius-md); padding:1.3rem 1.5rem; }
.resumen strong{ display:block; margin-bottom:.5rem; }
.resumen ul{ margin:0; padding-left:1.15rem; color:var(--ink-2); }
.resumen li + li{ margin-top:.35rem; }
.art h2{ margin:2.6rem 0 0; font-size:clamp(1.4rem,2.6vw,1.75rem); font-weight:700; letter-spacing:-.025em; line-height:1.15; text-wrap:balance; }
.art h3{ margin:1.7rem 0 0; font-size:1.1rem; font-weight:600; letter-spacing:-.01em; }
.art p, .art ul, .art ol{ margin:1rem 0 0; color:var(--ink-2); font-size:1.04rem; line-height:1.65; }
.art ul, .art ol{ padding-left:1.25rem; }
.art li + li{ margin-top:.45rem; }
.art p a, .art li a{ color:var(--brand); text-underline-offset:3px; }
.art strong{ color:var(--ink); }
.aviso{ margin:1.6rem 0 0; background:var(--trans-soft); border-radius:var(--radius-md); padding:1.1rem 1.4rem; color:var(--ink-2); }
.aviso strong{ color:var(--ink); }
.tabla{ margin:1.4rem 0 0; overflow-x:auto; border:1px solid var(--border); border-radius:var(--radius-md); }
.tabla table{ width:100%; border-collapse:collapse; font-size:.95rem; min-width:30rem; }
.tabla th, .tabla td{ text-align:left; padding:.75rem 1rem; border-bottom:1px solid var(--border); vertical-align:top; color:var(--ink-2); }
.tabla th{ background:var(--surface); color:var(--ink); font-weight:600; }
.tabla tr:last-child td{ border-bottom:none; }
.cta{ margin:3rem 0 0; background:var(--ink); color:var(--bg); border-radius:var(--radius-lg); padding:clamp(1.6rem,4vw,2.4rem); }
.cta h2{ margin:0; color:var(--bg); }
.cta p{ color:color-mix(in srgb, var(--bg) 78%, transparent); }
.cta .fila{ display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.4rem; }
.cta .btn.ghost{ color:var(--bg); box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--bg) 30%, transparent); }
.cta .btn.ghost:hover{ background:color-mix(in srgb, var(--bg) 12%, transparent); color:var(--bg); }
.fuentes{ margin-top:2.6rem; padding-top:1.4rem; border-top:1px solid var(--border); font-size:.88rem; color:var(--ink-dim); }
.fuentes ul{ font-size:.88rem; color:var(--ink-dim); margin-top:.5rem; }
.otras{ margin-top:2.6rem; }
.otras h2{ font-size:1.15rem; }

/* ── Índice de guías ──────────────────────────────────────────────────── */
.portada{ padding:clamp(2.6rem,7vw,4.6rem) 0 clamp(1.4rem,3vw,2rem); }
.portada h1{ margin:.7rem 0 0; font-weight:700; letter-spacing:-.035em; font-size:clamp(2.2rem,5vw,3.5rem); line-height:1.04; max-width:18ch; text-wrap:balance; }
.portada p{ margin:1.1rem 0 0; font-size:clamp(1.05rem,1.35vw,1.18rem); color:var(--ink-dim); max-width:54ch; }
.lista{ display:grid; grid-template-columns:repeat(auto-fit,minmax(17rem,1fr)); gap:1rem; padding-bottom:clamp(3rem,8vw,5rem); }
.ficha{ display:flex; flex-direction:column; gap:.55rem; text-decoration:none; background:var(--surface); border-radius:var(--radius-md); padding:1.5rem;
  transition:transform .25s var(--ease), background .25s var(--ease); }
.ficha:hover{ background:var(--surface-2); transform:translateY(-2px); }
.ficha:active{ transform:scale(.985); }
.ficha .para{ font-family:'Geist Mono',ui-monospace,monospace; font-size:.74rem; text-transform:uppercase; letter-spacing:.04em; color:var(--brand); }
.ficha strong{ font-size:1.2rem; letter-spacing:-.02em; line-height:1.2; }
.ficha span.txt{ color:var(--ink-dim); font-size:.95rem; }
.ficha .ir{ margin-top:auto; padding-top:.6rem; font-weight:600; font-size:.92rem; color:var(--brand); }
@media (prefers-reduced-motion: reduce){ *{ transition:none !important; scroll-behavior:auto !important; } }

footer{ border-top:1px solid var(--border); padding:2rem 0 2.6rem; font-size:.9rem; color:var(--ink-dim); }
.foot-row{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem 2rem; }
.foot-links{ display:flex; flex-wrap:wrap; gap:.4rem 1.3rem; }
.foot-links a{ text-decoration:none; }
.foot-links a:hover{ color:var(--ink); }
.foot-note{ margin:1.4rem 0 0; font-size:.82rem; }
