/* ═══════════════════════════════════════════════════════════
   MISUNET · Reset, tipografía base y accesibilidad
   ═══════════════════════════════════════════════════════════ */

*,*::before,*::after{ box-sizing:border-box; }

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  /* Compensa el header fijo al saltar por anclas */
  scroll-padding-top:calc(var(--header-h) + 24px);
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink-2);
  font-family:var(--font-body);
  font-size:var(--fs-base);
  line-height:var(--lh-body);
  font-weight:400;
  font-feature-settings:'cv05' 1,'cv11' 1,'ss01' 1;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  /* `clip` en lugar de `hidden`: recorta el desbordamiento lateral
     sin crear un contenedor de scroll, que rompería position:sticky. */
  overflow-x:clip;
}
body.is-locked{ overflow:hidden; }

h1,h2,h3,h4{
  margin:0;
  font-family:var(--font-display);
  font-weight:700;
  line-height:var(--lh-snug);
  letter-spacing:var(--tracking-tight);
  color:var(--ink);
  text-wrap:balance;
}
p{ margin:0; text-wrap:pretty; }
ul,ol{ margin:0; padding:0; list-style:none; }
img,svg,canvas{ display:block; max-width:100%; }
img{ height:auto; }
a{ color:inherit; text-decoration:none; }
button,input,textarea,select{ font:inherit; color:inherit; }
button{ background:none; border:0; padding:0; cursor:pointer; }
strong,b{ font-weight:600; color:inherit; }
em{ font-style:normal; }
hr{ border:0; border-top:1px solid var(--line); margin:0; }
::selection{ background:var(--brand-600); color:#fff; }

/* Foco visible y consistente — nunca se elimina, se diseña */
:focus-visible{
  outline:2px solid var(--brand-500);
  outline-offset:3px;
  border-radius:4px;
}
.surface--void :focus-visible,
.surface--deep :focus-visible{ outline-color:var(--brand-300); }

.skip-link{
  position:fixed; top:12px; left:12px; z-index:300;
  padding:12px 20px; border-radius:var(--r-sm);
  background:var(--brand-600); color:#fff; font-weight:600;
  transform:translateY(-160%);
  transition:transform var(--t-base) var(--ease-out);
}
.skip-link:focus-visible{ transform:translateY(0); }

.visually-hidden{
  position:absolute; width:1px; height:1px;
  padding:0; margin:-1px; overflow:hidden;
  clip-path:inset(50%); white-space:nowrap;
}

/* ── Movimiento reducido ──────────────────────────────────
   Se respeta la preferencia del sistema sin romper el layout:
   los elementos revelados quedan visibles, no ocultos. */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  [data-reveal]{ opacity:1 !important; transform:none !important; }
}
