/* ============================================================
   base.css — reset + tipografía base + accesibilidad
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--font-sans);
  color: var(--color-ink);
  background: var(--color-bg);
  line-height: 1.6;
  font-size: 16px;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

img, svg { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }
ul { list-style: none; }

h1, h2, h3, h4 { line-height: 1.1; letter-spacing: -0.02em; }

/* Accesibilidad */
.skip-link {
  position: absolute; left: -999px; top: 0; z-index: 200;
  background: var(--color-navy); color: #fff; padding: 10px 16px; border-radius: 0 0 8px 0;
}
.skip-link:focus { left: 0; }

:focus-visible { outline: 3px solid var(--color-blue); outline-offset: 3px; border-radius: 4px; }

.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;
}

/* Helpers tipográficos */
.eyebrow { font-size: var(--fs-eyebrow); font-weight: var(--fw-bold); letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-blue); margin-bottom: 18px; }
.kicker { font-size: var(--fs-eyebrow); font-weight: var(--fw-bold); letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-blue); margin-bottom: 14px; }
.kicker--light { color: var(--color-cyan); }
.grad { background: var(--grad-brand); -webkit-background-clip: text; background-clip: text; color: transparent; }
.grad-cyan { background: linear-gradient(100deg, var(--color-cyan), var(--color-blue)); -webkit-background-clip: text; background-clip: text; color: transparent; }
