/* Colori dei token del brand (brand/tokens/tokens.css, generato da tokens.json): tema chiaro «Carta» di base, */
/* tema scuro «Inchiostro» quando il sistema lo chiede. Valori copiati dalla build, non modificare a mano. */
:root {
  color-scheme: light dark;
  --color-paper: #F5F3EE;
  --color-paper-2: #EBE8E0;
  --color-rule: #D6D1C6;
  --color-muted: #6B675E;
  --color-ink-2: #3B3833;
  --color-ink: #171614;
  --color-evidence: #9BECE4;
  --color-evidence-ink: #171614;
  --color-ai: #0A625E;
  --band-left: #302D28;
  --band-center-left: #5C5952;
  --band-center: #8C8981;
  --band-center-right: #5C5952;
  --band-right: #302D28;
  --band-agency: #E1DED7;
  --band-agency-hatch: #5C5952;
  --band-unclassified: #8C8981;
}
@media (prefers-color-scheme: dark) {
  :root {
    --color-paper: #141311;
    --color-paper-2: #1F1E1B;
    --color-rule: #34322D;
    --color-muted: #8C877C;
    --color-ink-2: #BDB8AD;
    --color-ink: #F2EFE8;
    --color-evidence: #9BECE4;
    --color-evidence-ink: #171614;
    --color-ai: #7ECFC9;
    --band-left: #E8E4DD;
    --band-center-left: #ABA79F;
    --band-center: #726E67;
    --band-center-right: #ABA79F;
    --band-right: #E8E4DD;
    --band-agency: #2A2925;
    --band-agency-hatch: #ABA79F;
    --band-unclassified: #726E67;
  }
}

/* Parallasse: foglio di stile del sito statico. I colori (--color-*, --band-*) li antepone la build, dai token del brand. */

@font-face {
  font-family: "Schibsted Grotesk";
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url("fonts/schibsted-grotesk/SchibstedGrotesk-latin-wght-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Newsreader";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("fonts/newsreader/Newsreader-latin-opsz-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Newsreader";
  font-style: italic;
  font-weight: 200 800;
  font-display: swap;
  src: url("fonts/newsreader/Newsreader-latin-opsz-italic.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/ibm-plex-mono/IBMPlexMono-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/ibm-plex-mono/IBMPlexMono-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/ibm-plex-mono/IBMPlexMono-latin-600-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --font-sans: "Schibsted Grotesk", "Helvetica Neue", Arial, sans-serif;
  --font-serif: "Newsreader", Georgia, "Times New Roman", serif;
  --font-mono: "IBM Plex Mono", "Courier New", monospace;
  --larghezza: 42rem;
  --gutter: 1.25rem;
}

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

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: 1rem;
}

body {
  margin: 0;
  background: var(--color-paper);
  color: var(--color-ink);
  font-family: var(--font-sans);
  font-size: 1.0625rem; /* 17 px su telefono */
  line-height: 1.6;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
}
@media (min-width: 46rem) { body { font-size: 1.125rem; } }

.colonna {
  width: 100%;
  max-width: var(--larghezza);
  margin-inline: auto;
  padding-inline: max(var(--gutter), env(safe-area-inset-left)) max(var(--gutter), env(safe-area-inset-right));
}

/* ------------------------------------------------------------------ intestazione e navigazione */
.salta {
  position: absolute;
  left: 0.5rem;
  top: -4rem;
  z-index: 10;
  padding: 0.75rem 1rem;
  background: var(--color-ink);
  color: var(--color-paper);
  text-decoration: none;
}
.salta:focus { top: 0.5rem; }

.testata { border-bottom: 1px solid var(--color-rule); }
.testata-riga {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.25rem 1.5rem;
  padding-block: 0.5rem;
}
.marchio {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  color: var(--color-ink);
}
.wordmark { height: 1.75rem; width: auto; display: block; }

nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 1.25rem; }
.testata nav a,
.nav-disattivo {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  font-family: var(--font-mono);
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--color-ink);
  border-bottom: 2px solid transparent;
}
.testata nav a:hover { border-bottom-color: var(--color-muted); }
.testata nav a[aria-current="page"] { border-bottom-color: var(--color-ink); }
.nav-disattivo { color: var(--color-muted); cursor: default; gap: 0.35rem; }
.nav-disattivo small { font-size: 0.6875rem; border: 1px solid var(--color-rule); padding: 0 0.3rem; }

/* ------------------------------------------------------------------ testo */
main { padding-block: 2rem 3rem; }

.kicker {
  margin: 0 0 0.75rem;
  font-family: var(--font-mono);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
}

h1, h2, h3 { font-family: var(--font-sans); color: var(--color-ink); text-wrap: balance; }
h1 {
  margin: 0 0 1rem;
  font-size: clamp(2rem, 8.2vw, 3rem);
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -0.02em;
}
h2 {
  margin: 3rem 0 0.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--color-rule);
  font-size: 1.5rem;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: -0.01em;
}
h3 { margin: 2rem 0 0.5rem; font-size: 1.1875rem; line-height: 1.3; font-weight: 700; }

p { margin: 0 0 1rem; }
.testo > .lead { font-size: 1.25rem; line-height: 1.45; color: var(--color-ink); margin-bottom: 1.5rem; }
@media (min-width: 46rem) { .testo > .lead { font-size: 1.375rem; } }

ul, ol { margin: 0 0 1rem; padding-left: 1.25rem; }
li { margin-bottom: 0.4rem; }

a { color: var(--color-ai); text-underline-offset: 0.18em; text-decoration-thickness: 0.08em; }
a:hover { text-decoration-thickness: 0.15em; }
:focus-visible { outline: 3px solid var(--color-ai); outline-offset: 2px; }

strong, b { font-weight: 700; }
.meta, small { color: var(--color-muted); }
.meta { font-size: 0.9375rem; }
code, .mono { font-family: var(--font-mono); font-size: 0.9em; }

/* Indice della pagina */
.indice { margin: 0 0 2rem; padding: 1rem 1.25rem 0.25rem; background: var(--color-paper-2); border: 1px solid var(--color-rule); }
.indice ol { margin: 0 0 0.75rem; padding-left: 1.25rem; font-size: 1rem; }
.indice li { margin-bottom: 0.2rem; }
.indice li { padding-block: 0.15rem; }

/* Riquadro di sintesi (es. «in breve») */
.riquadro {
  margin: 1.5rem 0;
  padding: 1rem 1.25rem 0.25rem;
  background: var(--color-paper-2);
  border-left: 4px solid var(--color-ink);
}
.riquadro > :last-child { margin-bottom: 0.75rem; }

/* Passaggi numerati («come lavoriamo») */
.passi { list-style: none; padding: 0; counter-reset: passo; }
.passi li { position: relative; padding-left: 3rem; margin-bottom: 1rem; counter-increment: passo; }
.passi li::before {
  content: counter(passo);
  position: absolute;
  left: 0;
  top: 0.1rem;
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  border: 2px solid var(--color-ink);
  font-family: var(--font-mono);
  font-weight: 600;
  font-size: 0.9375rem;
  line-height: 1;
}

/* Due colonne «IA / persona» */
.ruoli { display: grid; gap: 1rem; margin: 1rem 0 1.5rem; }
@media (min-width: 46rem) { .ruoli { grid-template-columns: 1fr 1fr 1fr; } }
.ruolo { padding: 1rem 1.25rem 0.25rem; border: 1px solid var(--color-rule); background: var(--color-paper-2); }
.ruolo h3 { margin: 0 0 0.5rem; font-family: var(--font-mono); font-size: 0.8125rem; letter-spacing: 0.08em; text-transform: uppercase; }
.ruolo ul { padding-left: 1.1rem; font-size: 1rem; }

/* ------------------------------------------------------------------ figure (barra, striscia, citazione) */
.figura {
  margin: 1.5rem 0 2rem;
  padding: 1rem 1rem 1rem;
  background: var(--color-paper-2);
  border: 1px solid var(--color-rule);
}
.figura figcaption { margin-top: 1rem; font-size: 0.9375rem; line-height: 1.5; color: var(--color-muted); }
.etichetta-esempio {
  display: inline-block;
  margin: 0 0 1rem;
  padding: 0.1rem 0.5rem;
  border: 1px solid var(--color-muted);
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
}

.barra-segmenti { display: flex; align-items: stretch; gap: 3px; height: 4.25rem; }
.seg { display: block; min-width: 0; flex: 0 0 auto; }
.seg-left, .seg-center_left, .seg-center, .seg-center_right, .seg-right, .seg-agenzie { flex-basis: 0; flex-shrink: 1; }
.seg-left { background: var(--band-left); }
.seg-center_left { background: var(--band-center-left); }
.seg-center { background: var(--band-center); }
.seg-center_right { background: var(--band-center-right); }
.seg-right { background: var(--band-right); }
.seg-agenzie {
  margin-left: 1rem;
  background-color: var(--band-agency);
  background-image: repeating-linear-gradient(135deg, var(--band-agency-hatch) 0 2px, transparent 2px 6px);
}
.seg-vuoto { flex: 0 0 2rem; border: 2px dashed var(--color-muted); }
.barra-etichette {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  font-family: var(--font-mono);
  font-size: 0.8125rem;
}
.barra-etichette li { margin: 0; }
.barra-etichette b { font-weight: 600; margin-right: 0.15rem; }
.barra-etichette span { color: var(--color-muted); }

.striscia { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.5rem; }
.striscia li { margin: 0; font-family: var(--font-mono); font-size: 0.8125rem; line-height: 1.35; }
.striscia b { display: block; margin-top: 0.4rem; font-weight: 600; }
.striscia li > span:last-child { color: var(--color-muted); }
.cella { position: relative; display: block; height: 5.5rem; background: var(--color-paper); border: 1px solid var(--color-rule); }
.cella-pieno { position: absolute; left: 0; right: 0; bottom: 0; display: block; }

.figura-citazione blockquote { margin: 0; padding: 0; font-family: var(--font-serif); font-size: 1.375rem; line-height: 1.5; }
.figura-citazione blockquote p { margin: 0; }
mark { background: var(--color-evidence); color: var(--color-evidence-ink); padding: 0.05em 0.15em; }

/* Legenda delle aree */
.legenda { list-style: none; padding: 0; margin: 1rem 0 1.5rem; }
.legenda li { display: grid; grid-template-columns: 2.75rem 1fr; gap: 0.5rem; align-items: start; margin-bottom: 0.75rem; font-size: 1rem; line-height: 1.45; }
.sigla { font-family: var(--font-mono); font-weight: 600; font-size: 0.9375rem; }
.glifo { vertical-align: -0.1em; margin-left: 0.25rem; }
.g-pieno { fill: var(--color-ink); }
.g-vuoto { fill: none; stroke: var(--color-muted); stroke-width: 2; }

.conteggio { display: block; white-space: nowrap; font-family: var(--font-mono); font-size: 0.8125rem; color: var(--color-muted); }
.conteggio .glifo { margin: 0 0.6rem 0 0; }

/* ------------------------------------------------------------------ tabelle delle fonti */
.area { margin-bottom: 2rem; }
.area h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.6rem; margin-top: 2rem; }
.area h3 .glifo { margin: 0; }
.area h3 small { font-family: var(--font-mono); font-size: 0.8125rem; font-weight: 500; }

.tabella-fonti { width: 100%; border-collapse: collapse; font-size: 1rem; line-height: 1.45; }
.tabella-fonti th, .tabella-fonti td { text-align: left; vertical-align: top; padding: 0.65rem 0.75rem 0.65rem 0; border-top: 1px solid var(--color-rule); }
.tabella-fonti thead th { font-family: var(--font-mono); font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-muted); border-top: 0; border-bottom: 2px solid var(--color-ink); font-weight: 600; }
.tabella-fonti tbody th { font-weight: 700; width: 28%; }
.tabella-fonti td:nth-child(2) { width: 18%; color: var(--color-ink-2); }

.solo-lettori { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

@media (max-width: 40rem) {
  .tabella-fonti, .tabella-fonti tbody, .tabella-fonti tr, .tabella-fonti th, .tabella-fonti td { display: block; width: auto !important; }
  .tabella-fonti thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .tabella-fonti tr { padding: 0.9rem 0; border-top: 1px solid var(--color-rule); }
  .tabella-fonti th, .tabella-fonti td { border: 0; padding: 0; }
  .tabella-fonti tbody th { font-size: 1.125rem; }
  .tabella-fonti td { margin-top: 0.25rem; }
  .tabella-fonti td[data-label="Tipo"] { font-family: var(--font-mono); font-size: 0.8125rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--color-muted); }
}

.nessuna { padding: 1rem 1.25rem; background: var(--color-paper-2); border-left: 4px solid var(--color-ink); }
.correzioni { list-style: none; padding: 0; }
.correzioni li { padding: 0.75rem 0; border-top: 1px solid var(--color-rule); }
.correzioni time { font-family: var(--font-mono); font-size: 0.875rem; margin-right: 0.5rem; }

.contatto {
  margin: 1.25rem 0 1.5rem;
  padding: 1rem 1.25rem;
  background: var(--color-paper-2);
  border: 1px solid var(--color-rule);
  font-family: var(--font-mono);
  font-size: 1rem;
  overflow-wrap: anywhere;
}
.contatto a { display: inline-block; min-height: 2rem; }

/* ------------------------------------------------------------------ piè di pagina */
.piede { border-top: 1px solid var(--color-rule); padding-block: 1.75rem 3rem; font-size: 0.9375rem; color: var(--color-ink-2); }
.piede p { margin: 0 0 0.6rem; }
.piede .meta { font-size: 0.875rem; }
.piede-marchio { display: flex; align-items: center; gap: 0.75rem; font-family: var(--font-mono); font-size: 0.875rem; }
.simbolo { height: 1.1rem; width: auto; flex: none; }

@media (prefers-reduced-motion: no-preference) {
  a { transition: text-decoration-thickness 120ms; }
}

@media print {
  .testata nav, .salta { display: none; }
  body { background: #fff; color: #000; }
}
