/* base.css — Estilos base, tipografía y accesibilidad */
body {
  font-family: var(--font-body);
  color: var(--color-ink);
  background-color: var(--color-surface);
  line-height: 1.6;
  font-size: var(--text-base);
  overflow-x: hidden;
}

/* Títulos y jerarquía tipográfica */
h1, h2, h3, h4, h5, h6 {
  color: var(--color-ink);
  line-height: 1.15;
  font-weight: 800;
}

h1 {
  font-family: var(--font-serif);
  font-size: clamp(2.8rem, 5.5vw, 5.2rem);
  letter-spacing: -0.04em;
}

h2 {
  font-family: var(--font-serif);
  font-size: clamp(2.2rem, 3.8vw, 3.6rem);
  letter-spacing: -0.03em;
}

h3 {
  font-family: var(--font-heading);
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  letter-spacing: -0.01em;
}

p {
  margin: 0 0 1rem;
  color: var(--color-muted);
}

p:last-child {
  margin-bottom: 0;
}

a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease, opacity 0.2s ease;
}

/* Enlaces y foco visible para accesibilidad WCAG 2.1 AA */
:focus-visible {
  outline: 3px solid var(--color-brand);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Enlace directo para saltar al contenido principal (Accesibilidad) */
.skip-link {
  position: absolute;
  top: -100px;
  left: 1rem;
  z-index: 1000;
  padding: 0.8rem 1.4rem;
  background: var(--color-brand);
  color: #ffffff;
  font-weight: 700;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-float);
  transition: top 0.2s ease;
}

.skip-link:focus {
  top: 1rem;
}

/* Elementos gráficos e interactivos */
img, svg {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
}

/* Selección de texto */
::selection {
  background-color: var(--color-brand-soft);
  color: var(--color-brand-dark);
}
