/* ===== LIA · capa de mejora compartida (sub-páginas) ===== */
html { scroll-behavior:smooth; }
body { position:relative; }

/* Grilla técnica de fondo — sutil, se desvanece hacia abajo */
body::before{
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(95,230,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(95,230,255,.045) 1px, transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse 85% 55% at 50% 0%, #000 35%, transparent 100%);
  mask-image:radial-gradient(ellipse 85% 55% at 50% 0%, #000 35%, transparent 100%);
}
/* Halo cian detrás del hero */
body::after{
  content:""; position:fixed; top:-260px; left:50%; transform:translateX(-50%);
  width:900px; height:520px; z-index:0; pointer-events:none;
  background:radial-gradient(ellipse at center, rgba(95,230,255,.10), transparent 62%);
  filter:blur(20px);
}
header, .crumb, .hero, section, footer, .wa-float, #liaSticky, .related { position:relative; z-index:1; }

/* Hover-lift en tarjetas y filas */
.card, .item { transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.card:hover, .item:hover { transform:translateY(-3px); border-color:rgba(95,230,255,.42); box-shadow:0 14px 44px rgba(0,0,0,.45); }
tbody tr { transition:background .2s ease; }
tbody tr:hover { background:rgba(95,230,255,.035); }

/* Botones con micro-interacción */
.btn { transition:transform .18s ease, box-shadow .25s ease, filter .2s ease; }
.btn:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgba(95,230,255,.30); filter:brightness(1.05); }
.btn:active { transform:scale(.98); }

/* Foco accesible en teclado */
a:focus-visible, summary:focus-visible, .btn:focus-visible { outline:2px solid var(--cyan); outline-offset:3px; border-radius:6px; }

/* Afford. de scroll horizontal en tablas (móvil) */
.tblwrap { position:relative; -webkit-overflow-scrolling:touch; }
.tblwrap::after{
  content:""; position:absolute; top:0; right:0; width:46px; height:100%;
  background:linear-gradient(90deg, transparent, rgba(2,4,10,.7)); pointer-events:none;
  opacity:1; transition:opacity .3s;
}
.tblwrap.scrolled-end::after{ opacity:0; }

/* Reveal al hacer scroll — SOLO si el JS corrió (.js). A prueba de invisibilidad */
.js [data-rv]{ opacity:0; transform:translateY(16px); transition:opacity .7s ease, transform .7s ease; }
.js [data-rv].in{ opacity:1; transform:none; }

/* Breadcrumb */
.crumb{ max-width:880px; margin:0 auto; padding:14px 22px 0; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.06em; color:#5a7d8f; }
.crumb a{ color:#7fa9bd; text-decoration:none; } .crumb a:hover{ color:var(--cyan); }

/* Bloque de páginas relacionadas (enlazado interno) */
.related{ border-top:1px solid var(--line); }
.related .wrap{ padding:40px 22px 8px; }
.related h2{ font-size:18px; margin-bottom:2px; }
.rel-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; margin-top:16px; }
.rel-grid a{ display:block; border:1px solid var(--line); background:var(--card); padding:16px 18px; text-decoration:none; color:var(--txt); font-family:'Space Grotesk',sans-serif; font-size:14.5px; line-height:1.35; transition:transform .2s, border-color .2s; }
.rel-grid a:hover{ transform:translateY(-3px); border-color:rgba(95,230,255,.45); }
.rel-grid a b{ font-weight:600; }
.rel-grid a span{ display:block; color:#6fa8bd; font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.12em; margin-top:7px; text-transform:uppercase; }

/* CTA fija en móvil */
#liaSticky{ position:fixed; left:0; right:0; bottom:0; z-index:39;
  padding:11px 14px calc(11px + env(safe-area-inset-bottom));
  background:rgba(2,4,10,.9); backdrop-filter:blur(12px); border-top:1px solid var(--line);
  transform:translateY(115%); transition:transform .35s ease; display:none; }
#liaSticky.on{ transform:none; }
#liaSticky .btn{ display:block; width:100%; text-align:center; padding:14px; }
@media (max-width:640px){
  #liaSticky{ display:block; }
  .wa-float{ bottom:calc(80px + env(safe-area-inset-bottom)); }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .js [data-rv]{ opacity:1 !important; transform:none !important; transition:none; }
  .card,.item,.btn,tbody tr{ transition:none; }
  body::after{ display:none; }
}
