/* Recursos — hoja compartida por el índice y los artículos.
   Es la única parte del sitio con CSS externo: son páginas que van a crecer y
   duplicar la hoja en cada artículo era condenar la sección a desalinearse.
   Los tokens son los mismos del resto del sitio; si allá cambian, cambian aquí. */

@font-face{font-family:'Inter';font-style:normal;font-weight:400 800;font-display:swap;src:url('/fonts/inter-latin-var.woff2') format('woff2')}
@font-face{font-family:'Geist';font-style:normal;font-weight:400 700;font-display:swap;src:url('/fonts/geist-latin-var.woff2') format('woff2')}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url('/fonts/geist-mono-latin-var.woff2') format('woff2')}
@font-face{font-family:'Cal Sans';font-style:normal;font-weight:400 800;font-display:swap;src:url('/fonts/cal-sans-latin-400.woff2') format('woff2')}

:root{
  --ink:#141c25;--ink-deep:#0a1018;
  --blue:#2b77ff;--blue-dark:#1e5ad9;--blue-light:#e8f0ff;--blue-soft:#f4f8ff;
  --cream:#fafbfc;--white:#fff;
  --n50:#f7f8fa;--n100:#edf0f4;--n200:#dde2eb;--n400:#8b95a7;--n500:#64748b;--n600:#4a5366;--n700:#2e3644;
  --grad-blue:linear-gradient(135deg,#2b77ff 0%,#1e5ad9 100%);
  --shadow-md:0 8px 24px rgba(20,28,37,.08);--shadow-lg:0 24px 48px -12px rgba(20,28,37,.15);
  --display:'Cal Sans','Inter',sans-serif;--sans:'Geist','Inter',sans-serif;--body:'Inter',sans-serif;--mono:'Geist Mono',ui-monospace,monospace;
  --maxw:1320px;--ease:cubic-bezier(.4,0,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--cream);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--blue);color:#fff}
a{text-decoration:none;color:inherit}
img{max-width:100%}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,4vw,56px)}
.eyebrow{display:inline-flex;align-items:center;gap:12px;color:var(--blue-dark);font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:500;margin-bottom:22px}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--grad-blue)}
h1,h2,h3,.disp{font-family:var(--display);font-weight:800;letter-spacing:-.03em;line-height:1.02}
.blue{color:var(--blue)}
.lede{font-size:1.18rem;color:var(--n600);max-width:62ch}

/* botones */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-weight:600;font-size:.98rem;padding:15px 28px;border-radius:100px;border:1.5px solid transparent;cursor:pointer;transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease),color .3s,border-color .3s}
.btn .arr{transition:transform .3s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn-primary{background:var(--ink-deep);color:#fff}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 32px -12px rgba(10,16,24,.5)}
.btn-blue{background:var(--blue);color:#fff}
.btn-blue:hover{transform:translateY(-2px);box-shadow:0 16px 32px -12px rgba(43,119,255,.55)}
.btn-ghost{border-color:var(--n200);color:var(--ink);background:#fff}
.btn-ghost:hover{border-color:var(--ink);transform:translateY(-2px)}

/* menú — mismo markup que el resto del sitio */
nav{position:sticky;top:0;z-index:90;background:rgba(250,251,252,.86);backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid transparent;transition:border-color .3s,background .3s}
nav.scrolled{border-bottom-color:var(--n100);background:rgba(250,251,252,.95)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:17px 0}
.nav-logo{height:30px;width:auto;display:block}
.nav-links{display:flex;align-items:center;gap:30px;font-family:var(--sans);font-size:.94rem;font-weight:500}
.nav-links a:not(.btn){color:var(--n600);position:relative;transition:color .25s}
.nav-links a:not(.btn):hover{color:var(--ink)}
.nav-cta{padding:12px 22px;font-size:.9rem}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;z-index:95}
.burger span{width:24px;height:2px;background:var(--ink);border-radius:2px;transition:transform .3s var(--ease),opacity .3s}
nav.menu-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
nav.menu-open .burger span:nth-child(2){opacity:0}
nav.menu-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-drop{position:relative}
.nav-drop-t{background:none;border:none;cursor:pointer;font:inherit;color:var(--n600);display:inline-flex;align-items:center;gap:6px;padding:0}
.nav-drop-t .cx{font-size:.7rem;transition:transform .25s}
.nav-drop.open .nav-drop-t .cx{transform:rotate(180deg)}
.nav-drop-m{position:absolute;top:calc(100% + 14px);left:-18px;min-width:300px;background:#fff;border:1px solid var(--n100);border-radius:14px;box-shadow:var(--shadow-lg);padding:8px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s,transform .25s,visibility .25s}
.nav-drop.open .nav-drop-m{opacity:1;visibility:visible;transform:none}
.nav-drop-m a{display:block;padding:11px 14px;border-radius:9px;transition:background .2s}
.nav-drop-m a:hover{background:var(--n50)}
.nav-drop-m b{display:block;font-family:var(--sans);font-weight:600;font-size:.94rem;color:var(--ink)}
.nav-drop-m span{display:block;font-size:.82rem;color:var(--n500);margin-top:2px}
@media(max-width:1060px){
  .burger{display:flex}
  .nav-links{position:fixed;left:0;right:0;top:76px;flex-direction:column;align-items:flex-start;gap:6px;background:#fff;padding:18px clamp(20px,4vw,56px) 28px;border-bottom:1px solid var(--n100);box-shadow:var(--shadow-lg);transform:translateY(-130%);transition:transform .4s var(--ease);font-size:1.05rem}
  nav.menu-open .nav-links{transform:none}
  .nav-links a:not(.btn){display:block;width:100%;padding:12px 0;border-bottom:1px solid var(--n100)}
  .nav-links .nav-cta{margin-top:12px;width:100%;justify-content:center}
  .nav-drop,.nav-drop-m{position:static;min-width:0;box-shadow:none;border:0;padding:0;opacity:1;visibility:visible;transform:none;background:none}
  .nav-drop-m a{padding:12px 0;border-bottom:1px solid var(--n100);border-radius:0}
}

/* cabecera de la sección y de cada artículo */
.rec-hero{padding:64px 0 40px}
.rec-hero h1{font-size:clamp(36px,5vw,64px)}
.art-hero{padding:56px 0 8px;border-bottom:1px solid var(--n100)}
.art-hero .wrap{max-width:820px}
.art-hero h1{font-size:clamp(32px,4.4vw,54px);line-height:1.06}
.art-meta{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center;margin:26px 0 34px;font-family:var(--mono);font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--n500)}
.art-meta .sep{width:4px;height:4px;border-radius:50%;background:var(--n200)}
.migas{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--n500);margin-bottom:24px}
.migas a{color:var(--blue-dark);border-bottom:1px solid transparent;transition:border-color .2s}
.migas a:hover{border-color:var(--blue-dark)}

/* cuerpo del artículo */
.art{padding:44px 0 72px}
.art .wrap{max-width:720px}
.art > .wrap > p{font-size:1.12rem;color:var(--n700);margin-bottom:22px}
.art h2{font-size:clamp(26px,3vw,36px);margin:52px 0 18px;letter-spacing:-.025em}
.art h3{font-family:var(--sans);font-weight:600;font-size:1.16rem;letter-spacing:-.01em;line-height:1.35;margin:34px 0 12px}
.art ul,.art ol{margin:0 0 24px 22px}
.art li{font-size:1.08rem;color:var(--n700);margin-bottom:11px}
.art strong{font-weight:600;color:var(--ink)}
.art a:not(.btn){color:var(--blue-dark);border-bottom:1px solid var(--blue-light);transition:border-color .2s}
.art a:not(.btn):hover{border-color:var(--blue-dark)}
.art .punch{font-family:var(--sans);font-weight:600;font-size:1.28rem;line-height:1.45;color:var(--ink);margin:0 0 26px;letter-spacing:-.01em}
.dato{background:var(--blue-soft);border-left:2px solid var(--blue);border-radius:0;padding:22px 26px;margin:32px 0}
.dato p{font-size:1.02rem;color:var(--n700);margin:0 0 8px}
.dato p:last-child{margin:0}
.dato .fuente{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#5b6678}
.aviso{font-family:var(--mono);font-size:.7rem;line-height:1.7;letter-spacing:.04em;color:var(--n500);border-top:1px solid var(--n100);padding-top:16px;margin:32px 0}
.tabla{width:100%;border-collapse:collapse;margin:28px 0;font-size:1rem}
.tabla th{text-align:left;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--n500);font-weight:500;padding:0 14px 12px 0;border-bottom:1px solid var(--n200)}
.tabla td{padding:14px 14px 14px 0;border-bottom:1px solid var(--n100);color:var(--n700);vertical-align:top}
.tabla td:first-child{font-weight:600;color:var(--ink)}

/* preguntas frecuentes */
.faq-list{max-width:100%;margin:26px 0 8px}
.faq-list details{border-bottom:1px solid var(--n200);padding:6px 0}
.faq-list summary{list-style:none;cursor:pointer;padding:19px 4px;font-family:var(--sans);font-weight:600;font-size:1.04rem;line-height:1.4;display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--ink)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";flex:none;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--n200);display:flex;align-items:center;justify-content:center;color:var(--blue);font-size:1.2rem;font-weight:400;transition:transform .3s,background .3s}
.faq-list details[open] summary::after{transform:rotate(45deg);background:var(--blue-light)}
.faq-list details p{padding:0 4px 22px;color:var(--n600);font-size:1.02rem;margin:0}

/* filtro por línea */
.filtros{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0 4px}
.filtro{font-family:var(--sans);font-size:.9rem;font-weight:500;color:var(--n600);background:#fff;border:1.5px solid var(--n200);border-radius:100px;padding:9px 18px;cursor:pointer;transition:border-color .2s,color .2s,background .2s}
.filtro:hover{border-color:var(--n400);color:var(--ink)}
.filtro.on{background:var(--ink-deep);border-color:var(--ink-deep);color:#fff}
.filtros-cuenta{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--n500);margin-left:4px}
.ficha[hidden]{display:none}

/* índice de la sección — ancho completo, no el de lectura de un artículo */
.rec-idx .wrap{max-width:var(--maxw)}
.lista{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:22px;padding:8px 0 76px}
.ficha{display:block;background:#fff;border:1px solid var(--n100);border-radius:16px;padding:30px 28px;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s}
.ficha:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--n200)}
.ficha .k{font-family:var(--mono);font-size:.66rem;letter-spacing:.11em;text-transform:uppercase;color:var(--blue-dark);margin-bottom:14px}
.ficha h2{font-family:var(--sans);font-weight:600;font-size:1.22rem;line-height:1.3;letter-spacing:-.015em;margin-bottom:10px}
.ficha p{font-size:.98rem;color:var(--n600)}
.pronto{opacity:.62;pointer-events:none}
.pronto .k{color:var(--n400)}

/* cierre */
.cta-final{background:var(--ink-deep);color:#fff;text-align:center;padding:76px 0}
.cta-final h2{font-size:clamp(28px,3.6vw,46px);max-width:20ch;margin:0 auto 18px;color:#fff}
.cta-final .lede{color:#9db6e8;margin:0 auto 30px;max-width:54ch}

/* pie — mismo markup que el resto del sitio */
footer{background:#070b14;color:#c8d2e6;padding:64px 0 32px}
.foot-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.07)}
@media(max-width:1000px){.foot-top{grid-template-columns:1.4fr 1fr 1fr}}
@media(max-width:780px){.foot-top{grid-template-columns:1fr 1fr}}
.foot-logo{height:30px;width:auto;margin-bottom:16px;display:block}
.foot-top p{font-size:.94rem;color:#8e9bb5;max-width:42ch}
.foot-col h2{color:#fff;font-family:var(--mono);font-size:.7rem;font-weight:700;line-height:1.4;letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px}
.foot-col a{display:block;padding:6px 0;font-size:.95rem;color:#c8d2e6;transition:color .2s}
.foot-col a:hover{color:#fff}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-top:24px;font-size:.84rem;color:#7680a1}
.foot-bottom a{color:var(--blue);display:inline-block;padding:8px 0}
@media(max-width:760px){.foot-top{grid-template-columns:1fr;gap:28px}}

/* aparición al hacer scroll — misma regla que el resto del sitio */
.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0s)}
.js [data-reveal].in{opacity:1;transform:none}
.js .rec-hero [data-reveal],.js .art-hero [data-reveal]{opacity:1;transform:none;transition:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important}.js [data-reveal]{opacity:1;transform:none;transition:none}}
