/* Base: reset, tipografía y utilidades de layout */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-text);
  font-size: 16px;
  line-height: 24px;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
p { margin: 0; }
h1, h2, h3 { margin: 0; font-family: var(--font-display); color: var(--ink); }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }

.container { max-width: 1200px; margin: 0 auto; padding-inline: var(--space-6); }
.section { padding-block: var(--space-9); }
.section--flush-top { padding-top: 0; }
.stack { display: flex; flex-direction: column; gap: var(--space-4); }
.section-head { display: flex; flex-direction: column; gap: var(--space-4); max-width: 680px; }

/* Estilos de texto del sistema */
.display-xl { font-weight: 800; font-size: clamp(40px, 6vw, 72px); line-height: 1.05; letter-spacing: -0.03em; }
.h1 { font-weight: 700; font-size: 40px; line-height: 46px; letter-spacing: -0.02em; }
.h2 { font-weight: 700; font-size: 28px; line-height: 34px; letter-spacing: -0.015em; }
.h3 { font-weight: 700; font-size: 20px; line-height: 26px; letter-spacing: -0.01em; }
.body-lg { font-size: 18px; line-height: 28px; }
.body-sm { font-size: 14px; line-height: 20px; }
.caption { font-size: 12px; line-height: 16px; }
.eyebrow { font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: 0.08em; color: var(--accent); text-transform: uppercase; }
.muted { color: var(--ink-muted); }

[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

@media (max-width: 640px) {
  .container { padding-inline: var(--space-5); }
  .section { padding-block: var(--space-8); }
  .h1 { font-size: 32px; line-height: 38px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
