/* ==========================================================
   BASE — lo que vale para toda la página.
   ========================================================== */

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

html {
  background: var(--grafito);
  scroll-behavior: smooth;
  scroll-padding-top: var(--alto-menu);
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--grafito);
  color: var(--crema);
  font-family: var(--serif);
  font-size: 18px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-weight: 600; }
h1, h2 { text-wrap: balance; }   /* solo titulares: en títulos de tarjeta corta antes de tiempo */
p { text-wrap: pretty; }
img, svg { display: block; max-width: 100%; }

a { color: var(--bronce-web); }

/* La cursiva de cada titular: la firma del estilo */
h1 em, h2 em { font-style: italic; color: var(--bronce-web); }

/* Foco visible para quien navega con teclado */
:focus-visible { outline: 2px solid var(--bronce-web); outline-offset: 3px; }

/* Salto directo al contenido (lectores de pantalla y teclado) */
.saltar {
  position: absolute; left: 16px; top: -60px; z-index: 200;
  padding: 10px 18px; border-radius: var(--radio-pildora);
  background: var(--crema); color: var(--grafito);
  font-weight: 700; text-decoration: none;
}
.saltar:focus { top: 16px; }

/* Texto que solo oye el lector de pantalla */
.visualmente-oculto {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

/* Columna de contenido */
.contenedor {
  width: 100%;
  max-width: calc(var(--ancho) + 2 * var(--gutter));
  margin-inline: auto;
  padding-inline: var(--gutter);
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
