*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font-family: var(--font-text); font-size: var(--fs-body); line-height: 1.6; font-weight: 400;
  overflow-wrap: break-word;
}
img, svg { max-width: 100%; display: block; }

/* Titoli: carattere pesante, maiuscolo, spaziatura stretta (come Fondazione Prada) */
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 700; line-height: 1.05; margin: 0 0 0.6em; letter-spacing: var(--track-sm); }
h1, h2 { text-transform: uppercase; font-weight: 700; letter-spacing: var(--track); line-height: 0.98; }
h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); text-transform: uppercase; }
p { margin: 0 0 1em; max-width: 68ch; }
ul, ol { padding-left: 1.2em; }
a { color: inherit; text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
::selection { background: var(--ink); color: var(--bg); }

.container { width: 100%; max-width: calc(var(--maxw) + 2 * var(--gutter)); margin: 0 auto; padding: 0 var(--gutter); }
.section { padding: var(--section) 0; }
.section--alt { border-top: 1px solid var(--ink); }
.section--tight { padding: calc(var(--section) / 2) 0; }
/* Righe di dati e piccole etichette: stesso carattere dei titoli, 14 px */
.kicker, .meta { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-small); text-transform: uppercase; letter-spacing: var(--track-sm); line-height: 1.25; margin: 0 0 1em; color: var(--ink); }
.meta { margin: 0.9em 0 0; }
.subtitle { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.25rem, 0.9rem + 1.6vw, 2rem); text-transform: uppercase; letter-spacing: var(--track); line-height: 1.05; max-width: 28ch; margin: 0.4em 0 0; }
.lead { font-size: clamp(1.375rem, 1rem + 1.1vw, 1.75rem); line-height: 1.45; color: var(--ink); }
.muted { color: var(--muted); }

.skip { position: absolute; left: 8px; top: -60px; background: var(--ink); color: var(--bg); padding: 10px 16px; z-index: 100; }
.skip:focus { top: 8px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

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