/* =========================================================
   BASE — estructura, tipografía y accesibilidad.
   La piel visual (componentes) se construye en la fase de UI, después de aprobar la UX.
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *{animation:none!important;transition:none!important;} }
body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
  font-size: var(--fs-base);
  line-height: var(--lh-body);
  overflow-x: hidden;              /* 360 px sin desborde horizontal */
}
img, video, iframe { max-width: 100%; height: auto; display: block; }

/* Títulos: Playfair SIEMPRE itálica (regla de marca) */
h1, h2, h3, .display {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 600;
  line-height: var(--lh-tight);
  margin: 0 0 var(--space-2);
}
h1 { font-size: var(--fs-h1); font-weight: 700; }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }
p  { margin: 0 0 var(--space-2); max-width: var(--measure); }

/* Contenedor */
.wrap { width: 100%; max-width: var(--max-w); margin-inline: auto; padding-inline: var(--gutter); }
section { padding-block: var(--space-5); }

/* Accesibilidad */
.skip-link { position: absolute; left: -999px; top: 0; }
.skip-link:focus { left: var(--space-2); top: var(--space-2); z-index: 100; background: var(--bg); color: var(--fg); padding: var(--space-1) var(--space-2); outline: 2px solid var(--accent); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* Firma tipográfica (texto vivo, no imagen) */
.signature { display: inline-flex; flex-direction: column; text-decoration: none; color: inherit; line-height: 1.1; }
.signature__name { font-family: var(--font-display); font-style: italic; font-weight: 700; font-size: 1.375rem; }
.signature__desc { font-family: var(--font-body); font-style: normal; font-size: 0.625rem; font-weight: 500; letter-spacing: 0.35em; text-transform: uppercase; }
