/* ==========================================================================
   02 · BASE — reset, tipografía base y utilidades de accesibilidad
   ==========================================================================
   Reglas de elemento (html, body, h1..h4, p, a, img) y clases utilitarias
   genéricas (.container, .visually-hidden, .skip-link, .eyebrow).

   NO poner aquí estilos de un componente específico (botón, card, nav) —
   eso va en 04-components.css. Esta hoja es "lo que aplica a todo el sitio
   por defecto", no "cómo se ve una pieza concreta de UI".
   ========================================================================== */

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

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--color-graphite);
  background: var(--color-white);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: var(--font-head);
  color: var(--color-navy);
  margin: 0 0 .5em;
  line-height: 1.2;
}

p {
  margin: 0 0 1em;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
}

button {
  font-family: inherit;
}

/* Contenedor centrado reutilizado por header, secciones y footer. */
.container {
  max-width: var(--content-maxw);
  margin: 0 auto;
  padding: 0 20px;
}

@media (min-width: 1024px) {
  .container {
    padding: 0 32px;
  }
}

/* Cada <section> del Home usa este padding vertical por defecto.
   Ver 05-sections.css si una sección puntual necesita otro valor. */
section {
  padding: 56px 0;
}

@media (min-width: 768px) {
  section {
    padding: 76px 0;
  }
}

/* Anclas de navegación (#servicios, #aprende, etc.) no deben quedar
   tapadas por el header sticky al hacer scroll — ver --header-height
   en 01-tokens.css. */
[id] {
  scroll-margin-top: var(--header-height);
}

/* --------------------------------------------------------------------
   ACCESIBILIDAD — foco visible obligatorio (PDF §20)
   -------------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: var(--focus-ring);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Link "saltar al contenido" — primer elemento tabulable de la página. */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--color-green);
  color: var(--color-navy);
  padding: 12px 18px;
  z-index: 1000;
  font-weight: 700;
  border-radius: 0 0 8px 0;
}

.skip-link:focus {
  left: 0;
}

/* Oculta visualmente pero mantiene el contenido accesible para lectores
   de pantalla (encabezados de sección redundantes, labels de iconos). */
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* --------------------------------------------------------------------
   UTILIDADES DE TEXTO reutilizadas en varias secciones
   -------------------------------------------------------------------- */

/* Etiqueta corta sobre un título de sección (p.ej. "SEGUROS", "APRENDE"). */
.eyebrow {
  display: inline-block;
  font-family: var(--font-head);
  font-weight: 700;
  letter-spacing: .06em;
  font-size: .78rem;
  color: var(--color-green-dark);
  text-transform: uppercase;
  margin-bottom: 10px;
}

/* Texto de placeholder (contacto, redes, fotos pendientes de aprobación).
   Ver auditoría Fase 1, puntos C1-C5: nunca se inventa un dato final. */
.placeholder-text {
  color: #8D96B3;
  font-style: italic;
}

/* Palabra o frase destacada en verde dentro de un título (p.ej. la palabra
   "asegurar." en el H1 del hero). Reemplaza reglas sueltas tipo
   ".hero h1 .accent" repetidas por sección — un solo utilitario. */
.text-accent {
  color: var(--color-green);
}
