/* Base · reset mínimo, tipografía y accesibilidad */

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}
body {
  min-height: 100vh;
  font-family: var(--font);
  font-size: var(--fs-md);
  line-height: var(--lh-body);
  color: var(--c-ink);
  background: var(--c-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1, h2, h3 { line-height: var(--lh-head); font-weight: 700; letter-spacing: -0.015em; text-wrap: balance; }
p { text-wrap: pretty; }
ul, ol { padding: 0; list-style: none; }
img, svg { display: block; max-width: 100%; }
a { color: var(--c-aqua-ink); text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }
button { font: inherit; color: inherit; cursor: pointer; }
strong { font-weight: 700; }

/* Las anclas no quedan debajo del encabezado fijo */
[id] { scroll-margin-top: calc(var(--header-h) + var(--s-4)); }

:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: var(--r-sm); }
main:focus { outline: none; }

.skip-link {
  position: absolute; left: var(--s-4); top: -100px; z-index: 100;
  padding: var(--s-3) var(--s-5); border-radius: var(--r-md);
  background: var(--c-ink); color: var(--c-on-dark); font-weight: 700; text-decoration: none;
}
.skip-link:focus { top: var(--s-4); }

.icon { width: 24px; height: 24px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.container { width: min(var(--container), 100% - 2 * var(--gutter)); margin-inline: auto; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
