/* ==========================================================================
   Classifica Gioco — main.css
   Concept: almanacco sportivo a stampa / classifica da quotidiano.
   Convenzione: BEM classico senza namespace. Unità rem. Nessun JS.
   ========================================================================== */

:root {
  --paper: #f6f1e7;
  --paper-deep: #ece4d2;
  --ink: #1b1b1b;
  --ink-soft: #57514a;
  --red: #c8102e;
  --red-dark: #9a0c23;
  --gold: #b08d2e;
  --gold-tint: #d9c27a;
  --silver: #bcbab2;
  --bronze: #c69562;
  --rule: #cfc6b3;
  --serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --sans: "Source Sans 3", "Segoe UI", Helvetica, Arial, sans-serif;
  --wrap: 72rem;
  --gutter: 1rem;
  --double: 0.1875rem double var(--ink);
  --hair: 0.0625rem solid var(--rule);
  --line: 0.0625rem solid var(--ink);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 1.0625rem;
  line-height: 1.6;
  font-variant-numeric: lining-nums;
  overflow-wrap: break-word;
}
img, svg { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { font-family: var(--serif); line-height: 1.15; margin: 0; font-weight: 700; text-wrap: balance; }
p { margin: 0 0 1rem; }
ul, ol { margin: 0 0 1rem; padding-left: 1.25rem; }
a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 0.0938rem; text-underline-offset: 0.18em; transition: color 0.15s ease, background-color 0.15s ease; }
a:hover { color: var(--red); }
:focus-visible { outline: 0.1875rem solid var(--red); outline-offset: 0.1875rem; }
strong { font-weight: 700; }
hr { border: 0; border-top: var(--double); margin: 2rem 0; }
::selection { background: var(--ink); color: var(--paper); }
[id] { scroll-margin-top: 1rem; }

.visually-hidden { position: absolute; width: 0.0625rem; height: 0.0625rem; margin: -0.0625rem; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }

.skip-link { position: absolute; left: 0.5rem; top: -4rem; z-index: 10; background: var(--ink); color: var(--paper); padding: 0.625rem 1rem; font-weight: 700; text-decoration: none; }
.skip-link:focus { top: 0.5rem; color: var(--paper); }

/* ---------- Masthead (testata) ---------- */
.masthead__dateline { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-block: 0.4375rem; border-bottom: var(--hair); font-size: 0.75rem; letter-spacing: 0.09em; text-transform: uppercase; color: var(--ink-soft); }
.masthead__dateline-item { margin: 0; }
.masthead__dateline-item--middle { display: none; }
.masthead__age { display: inline-block; background: var(--red); color: #fff; font-weight: 700; padding: 0 0.375rem; margin-right: 0.375rem; letter-spacing: 0.04em; }
.masthead__dateline a { color: inherit; text-decoration: none; }
.masthead__dateline a:hover { color: var(--red); text-decoration: underline; }
.masthead__brand { text-align: center; padding-block: 1.125rem 1rem; }
.masthead__wordmark { display: inline-block; font-family: var(--serif); font-weight: 900; font-size: clamp(1.875rem, 8.5vw, 4.75rem); line-height: 1; letter-spacing: -0.02em; color: var(--ink); text-decoration: none; }
.masthead__wordmark:hover { color: var(--ink); }
.masthead__wordmark-accent { color: var(--red); font-style: italic; font-weight: 700; }
.masthead__tagline { margin: 0.5rem 0 0; font-family: var(--serif); font-style: italic; font-size: 0.9375rem; color: var(--ink-soft); }
.masthead__tagline::before, .masthead__tagline::after { content: ""; display: inline-block; width: 1.75rem; height: 0.0625rem; background: var(--ink); vertical-align: middle; margin-inline: 0.625rem; }
.masthead__nav { border-top: var(--double); border-bottom: var(--double); }
.masthead__nav-list { display: flex; justify-content: flex-start; gap: 0; margin: 0; padding: 0; list-style: none; overflow-x: auto; white-space: nowrap; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.masthead__nav-item + .masthead__nav-item { border-left: var(--hair); }
.masthead__nav-link { display: block; padding: 0.6875rem 0.9375rem; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; }
.masthead__nav-link:hover { background: var(--ink); color: var(--paper); }
.masthead__nav-link:focus-visible { outline-offset: -0.1875rem; }
.masthead__nav-link--current { color: var(--red); box-shadow: inset 0 -0.1875rem 0 var(--red); }

/* ---------- Avviso ai lettori (disclosure, 18+, licenze) ---------- */
.notice { border-bottom: var(--line); background: var(--paper-deep); font-size: 0.8125rem; line-height: 1.45; }
.notice__inner { display: grid; gap: 0; padding-block: 0.25rem; }
.notice__item { margin: 0; padding: 0.5rem 0; }
.notice__item + .notice__item { border-top: var(--hair); }
.notice__label { display: inline-block; font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--red-dark); margin-right: 0.375rem; }

/* ---------- Breadcrumb ---------- */
.breadcrumb { padding-top: 1rem; font-size: 0.8125rem; letter-spacing: 0.04em; color: var(--ink-soft); }
.breadcrumb__list { display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; list-style: none; margin: 0; padding: 0; }
.breadcrumb__item + .breadcrumb__item::before { content: "›"; margin-right: 0.5rem; color: var(--red); }
.breadcrumb__link { color: inherit; }

/* ---------- Lead (apertura di pagina) ---------- */
.lead { padding-block: 1.75rem 1.5rem; border-bottom: var(--line); }
.lead--center { text-align: center; }
.lead__kicker { display: inline-block; margin: 0 0 0.75rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--red-dark); border-top: 0.125rem solid var(--red); border-bottom: 0.0625rem solid var(--red); padding: 0.1875rem 0; }
.lead__title { font-size: clamp(2rem, 5.2vw + 0.75rem, 4rem); font-weight: 900; letter-spacing: -0.015em; line-height: 1.04; max-width: 20ch; }
.lead--center .lead__title { margin-inline: auto; }
.lead__title--long { max-width: 24ch; font-size: clamp(1.875rem, 4vw + 0.75rem, 3.25rem); }
.lead__intro { margin: 1.125rem 0 0; font-size: 1.1875rem; line-height: 1.55; max-width: 44rem; }
.lead--center .lead__intro { margin-inline: auto; }
.lead__meta { display: flex; flex-direction: column; gap: 0.125rem 1.25rem; margin: 1.125rem 0 0; padding: 0; list-style: none; font-size: 0.8125rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-soft); }
.lead--center .lead__meta { justify-content: center; }

.lead__meta a { color: inherit; }

/* ---------- Buttons ---------- */
.button { display: inline-block; background: var(--red); color: #fff; border: 0.125rem solid var(--red); padding: 0.5625rem 1rem; font-family: var(--sans); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; text-align: center; line-height: 1.2; cursor: pointer; }
.button:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.button:focus-visible { outline-color: var(--ink); }
.button--large { padding: 0.875rem 1.5rem; font-size: 0.9375rem; }
.button--ghost { background: transparent; color: var(--ink); border-color: var(--ink); }
.button--ghost:hover { background: var(--ink); color: var(--paper); }

/* ---------- Standings (classifica) ---------- */
.standings-block { padding-block: 2rem 0.5rem; }
.standings-block__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.5rem 1.5rem; border-top: var(--double); padding-top: 0.875rem; margin-bottom: 1rem; }
.standings-block__title { font-size: clamp(1.5rem, 2.5vw + 1rem, 2.25rem); font-weight: 900; }
.standings-block__edition { margin: 0; font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); }
.standings { width: 100%; border-collapse: collapse; font-variant-numeric: lining-nums tabular-nums; }
.standings__caption { caption-side: top; text-align: left; font-size: 0.875rem; color: var(--ink-soft); font-style: italic; padding-bottom: 0.625rem; }
.standings__head-cell { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; text-align: center; padding: 0.5rem 0.375rem; border-top: var(--line); border-bottom: var(--line); white-space: nowrap; }
.standings__head-cell--left { text-align: left; }
.standings__row { border-bottom: var(--hair); }
.standings__row:hover { background: rgba(27, 27, 27, 0.035); }
.standings__row--podium { background: rgba(176, 141, 46, 0.09); }
.standings__row > * { padding: 0.75rem 0.5rem; vertical-align: middle; text-align: center; }
.standings__pos { width: 3.5rem; padding: 0 !important; background: var(--paper-deep); border-right: var(--line); }
.standings__pos--gold { background: var(--gold-tint); box-shadow: inset 0 0.25rem 0 var(--gold); }
.standings__pos--silver { background: var(--silver); box-shadow: inset 0 0.25rem 0 #8f8d86; }
.standings__pos--bronze { background: var(--bronze); box-shadow: inset 0 0.25rem 0 #94673a; }
.standings__rank { display: block; font-family: var(--serif); font-weight: 900; font-size: 2rem; line-height: 1; padding: 0.875rem 0.25rem; }
.standings__move { width: 2.25rem; font-size: 0.8125rem; color: var(--ink-soft); }
.standings__move--up { color: #1d6b34; }
.standings__move--down { color: var(--red); }
.standings__team { text-align: left !important; font-weight: 400; min-width: 11rem; }
.standings__team-inner { display: grid; grid-template-columns: auto 1fr; column-gap: 0.75rem; align-items: center; }
.standings__crest { grid-row: span 2; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border: var(--line); outline: 0.0625rem solid var(--ink); outline-offset: 0.125rem; background: var(--paper); font-family: var(--serif); font-weight: 700; font-style: italic; font-size: 0.9375rem; margin: 0.1875rem; }
.standings__name { font-family: var(--serif); font-weight: 700; font-size: 1.125rem; line-height: 1.2; }
.standings__licence { font-size: 0.75rem; color: var(--ink-soft); letter-spacing: 0.03em; }
.standings__bonus { text-align: left !important; font-size: 0.9375rem; line-height: 1.35; min-width: 9rem; }
.standings__bonus-main { display: block; font-weight: 700; }
.standings__bonus-note { display: block; font-size: 0.75rem; color: var(--ink-soft); }
.standings__score { font-size: 1rem; }
.standings__total { font-family: var(--serif); font-weight: 900; font-size: 1.625rem; border-left: var(--hair); }
.standings__row--podium .standings__total { color: var(--red-dark); }
.standings__action { width: 9.5rem; }
.standings__action .button { display: block; }
.standings__review { display: block; margin-top: 0.375rem; font-size: 0.8125rem; }
.standings__review--pending { color: var(--ink-soft); font-style: italic; }

.legend { margin: 1rem 0 0; padding: 0.875rem 0 0; border-top: var(--line); font-size: 0.875rem; line-height: 1.5; color: var(--ink-soft); }
.legend__title { font-family: var(--sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink); margin: 0 0 0.5rem; }
.legend__list { display: grid; gap: 0.25rem 1.5rem; margin: 0 0 0.75rem; padding: 0; }
.legend__term { display: inline; font-weight: 700; color: var(--ink); }
.legend__desc { display: inline; margin: 0; }
.legend__entry { margin: 0; }
.legend__note { margin: 0; }

/* Classifica: riflusso a righe impilate sotto 60rem (nessuno scroll orizzontale) */
@media (max-width: 59.9375em) {
  .standings, .standings__body { display: block; }
  .standings__caption { display: block; }
  .standings__head { position: absolute; width: 0.0625rem; height: 0.0625rem; overflow: hidden; clip: rect(0 0 0 0); }
  .standings__row { display: grid; grid-template-columns: 3.5rem repeat(4, minmax(0, 1fr)); border: var(--line); border-bottom-width: 0.1875rem; margin-bottom: 0.875rem; }
  .standings__row > * { display: block; padding: 0.5rem 0.625rem; }
  .standings__pos { grid-column: 1; grid-row: 1 / span 3; width: auto; display: grid; place-items: center; border-right: var(--line); }
  .standings__team { grid-column: 2 / 5; grid-row: 1; min-width: 0; padding-top: 0.75rem; }
  .standings__move { grid-column: 5; grid-row: 1; white-space: nowrap; width: auto; text-align: right; padding-top: 0.875rem; }
  .standings__move::before { content: attr(data-label) " "; font-size: 0.625rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); }
  .standings__bonus { grid-column: 2 / -1; grid-row: 2; min-width: 0; padding-top: 0; padding-bottom: 0.75rem; }
  .standings__score { grid-row: 3; border-top: var(--hair); text-align: center; font-family: var(--serif); font-weight: 700; font-size: 1.125rem; padding-inline: 0.125rem; }
  .standings__score + .standings__score { border-left: var(--hair); }
  .standings__score::before, .standings__total::before { content: attr(data-label); display: block; font-family: var(--sans); font-size: 0.5625rem; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; color: var(--ink-soft); }
  .standings__total { grid-column: 1 / 3; grid-row: 4; border-left: 0; border-top: var(--line); text-align: left; font-size: 2rem; line-height: 1.1; padding: 0.625rem 0.75rem; }
  .standings__action { grid-column: 3 / -1; grid-row: 4; width: auto; border-top: var(--line); display: flex; flex-direction: column; justify-content: center; text-align: center; }
  .standings__crest { width: 2.5rem; height: 2.5rem; }
}
@media (min-width: 30em) and (max-width: 59.9375em) {
  .standings__row { grid-template-columns: 4.5rem repeat(4, minmax(0, 1fr)); }
  .standings__rank { font-size: 2.5rem; }
  .standings__score::before, .standings__total::before { font-size: 0.6875rem; letter-spacing: 0.08em; }
}

/* ---------- Sections ---------- */
.content { counter-reset: section; padding-bottom: 2.5rem; }
.section { padding-top: 2.5rem; }
.section__head { border-top: var(--double); padding-top: 0.875rem; margin-bottom: 1.125rem; display: grid; grid-template-columns: auto 1fr; column-gap: 0.875rem; align-items: baseline; }
.section__head::before { counter-increment: section; content: counter(section, decimal-leading-zero); font-family: var(--serif); font-weight: 900; font-style: italic; font-size: clamp(1.75rem, 2vw + 1.25rem, 2.75rem); line-height: 1; color: var(--red); }
.section--plain .section__head { display: block; }
.section--plain .section__head::before { content: none; counter-increment: none; }
.section__title { font-size: clamp(1.5rem, 2vw + 1rem, 2.125rem); font-weight: 900; letter-spacing: -0.01em; }
.section__answer { font-size: 1.125rem; line-height: 1.55; max-width: 46rem; margin-bottom: 1.25rem; padding-left: 0.875rem; border-left: 0.1875rem solid var(--ink); }
.section__subtitle { font-size: 1.25rem; margin: 1.5rem 0 0.5rem; }
.section__grid { display: grid; gap: 1.5rem; }

.prose > :last-child { margin-bottom: 0; }
.prose h3 { font-size: 1.25rem; margin: 1.5rem 0 0.5rem; break-after: avoid; }
.prose h2 { font-size: clamp(1.5rem, 2vw + 1rem, 2rem); font-weight: 900; margin: 2.5rem 0 0.875rem; padding-top: 0.875rem; border-top: var(--double); }
.prose li { margin-bottom: 0.375rem; }
.prose li::marker { color: var(--red); font-weight: 700; }
.prose--dropcap > p:first-of-type::first-letter { float: left; font-family: var(--serif); font-weight: 900; font-size: 4.25em; line-height: 0.82; padding: 0.3rem 0.5rem 0 0; color: var(--red); }
.prose--narrow { max-width: 44rem; }

.pullquote { margin: 1.75rem 0; padding: 1.125rem 0; border-top: var(--line); border-bottom: var(--line); font-family: var(--serif); font-style: italic; font-weight: 700; font-size: clamp(1.25rem, 1.5vw + 1rem, 1.75rem); line-height: 1.3; text-align: center; break-inside: avoid; }
.pullquote::before { content: "“"; display: block; font-size: 3rem; line-height: 0.6; color: var(--red); font-style: normal; margin-bottom: 0.25rem; }
.pullquote__text { margin: 0; }
.pullquote__source { display: block; margin-top: 0.625rem; font-family: var(--sans); font-style: normal; font-weight: 400; font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-soft); }

.scheda { border: var(--line); outline: 0.0625rem solid var(--ink); outline-offset: 0.1875rem; margin: 0.25rem; padding: 1rem 1.125rem 1.125rem; background: var(--paper); font-size: 0.9375rem; line-height: 1.5; align-self: start; }
.scheda__label { display: block; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--red-dark); margin-bottom: 0.375rem; }
.scheda__title { font-size: 1.1875rem; padding-bottom: 0.625rem; margin-bottom: 0.625rem; border-bottom: var(--line); }
.scheda__list { list-style: none; margin: 0; padding: 0; }
.scheda__item { display: flex; justify-content: space-between; gap: 1rem; padding: 0.375rem 0; border-bottom: var(--hair); }
.scheda__item:last-child { border-bottom: 0; }
.scheda__key { color: var(--ink-soft); }
.scheda__value { font-weight: 700; text-align: right; }
.scheda__text { margin: 0.625rem 0 0; }
.scheda__figure { font-family: var(--serif); font-weight: 900; font-size: 3rem; line-height: 1; margin: 0.25rem 0; }

/* ---------- Ledger (tabelle di confronto) ---------- */
.ledger { width: 100%; border-collapse: collapse; font-size: 0.9375rem; font-variant-numeric: lining-nums tabular-nums; margin: 0.5rem 0 1rem; }
.ledger__caption { caption-side: top; text-align: left; font-style: italic; font-size: 0.875rem; color: var(--ink-soft); padding-bottom: 0.5rem; }
.ledger__head-cell { text-align: left; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; padding: 0.5rem 0.625rem; border-top: var(--double); border-bottom: var(--line); vertical-align: bottom; }
.ledger__cell, .ledger__row-head { text-align: left; padding: 0.625rem; border-bottom: var(--hair); vertical-align: top; }
.ledger__row-head { font-family: var(--serif); font-weight: 700; font-size: 1.0625rem; }
.ledger__row:nth-child(even) { background: rgba(27, 27, 27, 0.03); }
.ledger__row:last-child > * { border-bottom: var(--line); }
.ledger--facts .ledger__row-head { width: 42%; font-family: var(--sans); font-size: 0.875rem; font-weight: 700; color: var(--ink-soft); letter-spacing: 0.02em; }
.ledger--facts { border-top: var(--double); }
.ledger__source { font-size: 0.8125rem; color: var(--ink-soft); font-style: italic; margin: 0; }
@media (max-width: 47.9375em) {
  .ledger--stack, .ledger--stack .ledger__body { display: block; }
  .ledger--stack .ledger__caption { display: block; }
  .ledger--stack .ledger__head { position: absolute; width: 0.0625rem; height: 0.0625rem; overflow: hidden; clip: rect(0 0 0 0); }
  .ledger--stack .ledger__row { display: block; border-top: var(--line); padding: 0.5rem 0 0.625rem; background: none; }
  .ledger--stack .ledger__row:last-child { border-bottom: var(--line); }
  .ledger--stack .ledger__row-head { display: block; border: 0; padding: 0.25rem 0 0.375rem; font-size: 1.125rem; }
  .ledger--stack .ledger__cell { display: grid; grid-template-columns: minmax(0, 45%) minmax(0, 1fr); gap: 0.75rem; padding: 0.3125rem 0; border-bottom: 0.0625rem dotted var(--rule); }
  .ledger--stack .ledger__row:last-child > * { border-bottom: 0; }
  .ledger--stack .ledger__cell::before { content: attr(data-label); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-soft); padding-top: 0.1875rem; }
}

/* ---------- Steps (procedura numerata) ---------- */
.steps { list-style: none; margin: 0.5rem 0 0; padding: 0; counter-reset: step; display: grid; gap: 0; border-top: var(--line); }
.steps__item { counter-increment: step; display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); column-gap: 1rem; padding: 1rem 0; border-bottom: var(--hair); }
.steps__item::before { content: counter(step); font-family: var(--serif); font-weight: 900; font-size: 3rem; line-height: 0.9; color: var(--red); text-align: center; grid-row: span 2; }
.steps__title { font-size: 1.1875rem; margin-bottom: 0.25rem; }
.steps__text { margin: 0; }

/* ---------- Verdict (pro e contro) ---------- */
.verdict { display: grid; border: var(--line); margin-top: 0.5rem; }
.verdict__col { padding: 1.125rem 1.125rem 1.25rem; }
.verdict__col + .verdict__col { border-top: var(--line); }
.verdict__title { font-size: 1.1875rem; display: flex; align-items: center; gap: 0.625rem; margin-bottom: 0.75rem; padding-bottom: 0.625rem; border-bottom: var(--double); }
.verdict__sign { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; background: var(--ink); color: var(--paper); font-family: var(--sans); font-weight: 700; font-size: 1.125rem; line-height: 1; }
.verdict__col--con .verdict__sign { background: var(--red); color: #fff; }
.verdict__list { list-style: none; margin: 0; padding: 0; }
.verdict__item { position: relative; padding: 0.4375rem 0 0.4375rem 1.5rem; border-bottom: var(--hair); }
.verdict__item:last-child { border-bottom: 0; }
.verdict__item::before { content: "+"; position: absolute; left: 0.125rem; font-weight: 700; }
.verdict__col--con .verdict__item::before { content: "−"; color: var(--red); }

/* ---------- FAQ ---------- */
.faq { border-top: var(--line); }
.faq__item { border-bottom: var(--line); }
.faq__question { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 1rem 0; cursor: pointer; list-style: none; font-family: var(--serif); font-weight: 700; font-size: 1.1875rem; line-height: 1.3; }
.faq__question::-webkit-details-marker { display: none; }
.faq__question::after { content: "+"; display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border: var(--line); font-family: var(--sans); font-weight: 400; font-size: 1.25rem; line-height: 1; }
.faq__item[open] > .faq__question::after { content: "−"; background: var(--ink); color: var(--paper); }
.faq__question:hover { color: var(--red); }
.faq__answer { padding: 0 0 1.125rem; max-width: 46rem; }
.faq__answer > :last-child { margin-bottom: 0; }

/* ---------- Byline (box autore) ---------- */
.byline { display: grid; gap: 1rem; margin-top: 2.5rem; padding: 1.25rem 0; border-top: var(--double); border-bottom: var(--double); }
.byline__portrait { display: grid; place-items: center; width: 5rem; height: 5rem; border: var(--line); outline: 0.0625rem solid var(--ink); outline-offset: 0.1875rem; margin: 0.25rem; background: var(--paper-deep); font-family: var(--serif); font-weight: 900; font-style: italic; font-size: 1.75rem; }
.byline__label { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--red-dark); margin: 0 0 0.25rem; }
.byline__name { font-size: 1.5rem; }
.byline__role { margin: 0.125rem 0 0.625rem; font-style: italic; color: var(--ink-soft); }
.byline__bio { margin: 0 0 0.625rem; max-width: 46rem; }
.byline__meta { margin: 0; font-size: 0.8125rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-soft); }
.updated { margin: 1rem 0 0; font-size: 0.8125rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-soft); text-align: center; }

/* ---------- Scorecard (recensione) ---------- */
.scorecard { display: grid; border: var(--line); outline: 0.0625rem solid var(--ink); outline-offset: 0.1875rem; margin: 2rem 0.25rem 0; background: var(--paper); }
.scorecard__total { padding: 1.25rem; text-align: center; background: var(--ink); color: var(--paper); display: flex; flex-direction: column; justify-content: center; }
.scorecard__label { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; margin: 0; }
.scorecard__figure { font-family: var(--serif); font-weight: 900; font-size: clamp(4rem, 12vw, 6rem); line-height: 1; margin: 0.25rem 0; }
.scorecard__outof { font-size: 0.35em; font-weight: 400; font-style: italic; color: var(--gold-tint); }
.scorecard__rank { margin: 0; font-size: 0.875rem; color: var(--gold-tint); }
.scorecard__rank a { color: inherit; }
.scorecard__breakdown { padding: 1.25rem; }
.scorecard__list { margin: 0; padding: 0; list-style: none; }
.scorecard__row { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr) 2.5rem; gap: 0.75rem; align-items: center; padding: 0.4375rem 0; font-size: 0.9375rem; }
.scorecard__bar { height: 0.625rem; border: var(--line); background: repeating-linear-gradient(90deg, transparent 0 calc(10% - 0.0625rem), var(--rule) calc(10% - 0.0625rem) 10%); }
.scorecard__fill { display: block; height: 100%; width: var(--value, 0%); background: var(--red); }
.scorecard__value { font-family: var(--serif); font-weight: 900; font-size: 1.125rem; text-align: right; }
.scorecard__cta { padding: 1.25rem; border-top: var(--line); display: flex; flex-direction: column; justify-content: center; gap: 0.625rem; text-align: center; }
.scorecard__bonus { margin: 0; font-family: var(--serif); font-weight: 700; font-size: 1.1875rem; line-height: 1.25; }
.scorecard__terms { margin: 0; font-size: 0.75rem; color: var(--ink-soft); }

/* ---------- Article layout, TOC, callout, inline CTA ---------- */
.article { display: grid; gap: 1.5rem; padding-block: 2rem 2.5rem; }
.article__body { min-width: 0; }
.toc { border-top: var(--double); border-bottom: var(--line); padding: 0.875rem 0 1rem; align-self: start; }
.toc__title { font-family: var(--sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; margin: 0 0 0.5rem; color: var(--red-dark); }
.toc__list { margin: 0; padding: 0; list-style: none; counter-reset: toc; }
.toc__item { counter-increment: toc; display: grid; grid-template-columns: 1.75rem minmax(0, 1fr); padding: 0.3125rem 0; border-bottom: 0.0625rem dotted var(--rule); font-size: 0.9375rem; line-height: 1.35; }
.toc__item:last-child { border-bottom: 0; }
.toc__item::before { content: counter(toc) "."; font-family: var(--serif); font-weight: 700; font-style: italic; color: var(--red); }
.toc__link { text-decoration: none; }
.toc__link:hover { text-decoration: underline; }

.callout { margin: 1.5rem 0; padding: 1rem 1.125rem; border: var(--line); border-left: 0.375rem solid var(--ink); background: var(--paper-deep); break-inside: avoid; }
.callout--warn { border-left-color: var(--red); }
.callout--gold { border-left-color: var(--gold); }
.callout__title { font-family: var(--sans); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; margin: 0 0 0.375rem; }
.callout--warn .callout__title { color: var(--red-dark); }
.callout__text { margin: 0; }

.inline-cta { display: grid; gap: 1rem; align-items: center; margin: 2rem 0; padding: 1.25rem; background: var(--ink); color: var(--paper); }
.inline-cta__kicker { margin: 0 0 0.25rem; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-tint); }
.inline-cta__title { margin: 0; font-family: var(--serif); font-weight: 700; font-size: 1.375rem; line-height: 1.25; }
.inline-cta__text { margin: 0.375rem 0 0; font-size: 0.9375rem; color: #ddd6c6; }
.inline-cta .button:hover { background: var(--paper); border-color: var(--paper); color: var(--ink); }
.inline-cta .button:focus-visible { outline-color: var(--paper); }
.inline-cta__note { margin: 0.5rem 0 0; font-size: 0.75rem; color: #ddd6c6; }

.chips { display: flex; flex-wrap: wrap; gap: 0.375rem; list-style: none; margin: 0 0 1rem; padding: 0; }
.chips__item { border: var(--line); padding: 0.125rem 0.5rem; font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.04em; background: var(--paper); }

/* ---------- Team, method ---------- */
.team { display: grid; gap: 1.25rem; list-style: none; margin: 0.5rem 0 0; padding: 0; }
.team__member { border-top: var(--line); padding-top: 0.875rem; }
.team__portrait { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border: var(--line); background: var(--paper-deep); font-family: var(--serif); font-weight: 900; font-style: italic; margin-bottom: 0.625rem; }
.team__name { font-size: 1.1875rem; }
.team__role { margin: 0.125rem 0 0.5rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--red-dark); }
.team__bio { margin: 0; font-size: 0.9375rem; }

.method { display: grid; gap: 0; list-style: none; margin: 0.5rem 0 0; padding: 0; border-top: var(--line); }
.method__item { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); column-gap: 1rem; padding: 1rem 0; border-bottom: var(--hair); }
.method__weight { font-family: var(--serif); font-weight: 900; font-size: 1.75rem; line-height: 1; color: var(--red); }
.method__weight-label { display: block; font-family: var(--sans); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); margin-top: 0.25rem; }
.method__title { font-size: 1.1875rem; margin-bottom: 0.25rem; }
.method__text { margin: 0; }

/* ---------- Contact, forms ---------- */
.contact { display: grid; gap: 2rem; padding-block: 2rem 2.5rem; }
.contact__list { margin: 0; padding: 0; }
.contact__term { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--red-dark); margin-top: 0.875rem; }
.contact__desc { margin: 0.125rem 0 0; padding-bottom: 0.875rem; border-bottom: var(--hair); font-family: var(--serif); font-size: 1.125rem; }
.form { display: grid; gap: 1rem; border-top: var(--double); padding-top: 1.25rem; }
.form__title { font-size: 1.5rem; }
.form__field { display: grid; gap: 0.3125rem; }
.form__label { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.form__input { width: 100%; font: inherit; color: var(--ink); background: #fffdf8; border: var(--line); border-radius: 0; padding: 0.625rem 0.75rem; appearance: none; -webkit-appearance: none; }
.form__input:focus-visible { outline-offset: 0; }
.form__input--area { min-height: 9rem; resize: vertical; }
.form__check { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.625rem; align-items: start; font-size: 0.9375rem; }
.form__checkbox { width: 1.125rem; height: 1.125rem; margin: 0.25rem 0 0; accent-color: var(--red); }
.form__hint { margin: 0; font-size: 0.8125rem; color: var(--ink-soft); }

/* ---------- Gioco responsabile ---------- */
.checklist { list-style: none; margin: 0.5rem 0 0; padding: 0; border-top: var(--line); counter-reset: check; }
.checklist__item { border-bottom: var(--hair); }
.checklist__label { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.75rem; align-items: start; padding: 0.75rem 0; cursor: pointer; }
.checklist__box { width: 1.25rem; height: 1.25rem; margin: 0.1875rem 0 0; accent-color: var(--red); }
.checklist__label:hover { background: rgba(27, 27, 27, 0.035); }
.helpline { display: grid; gap: 1rem; margin-top: 0.75rem; }
.helpline__card { border: var(--line); padding: 1.125rem; background: var(--paper); }
.helpline__card--primary { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.helpline__label { margin: 0 0 0.25rem; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--red-dark); }
.helpline__card--primary .helpline__label { color: var(--gold-tint); }
.helpline__name { font-size: 1.25rem; }
.helpline__number { display: inline-block; margin: 0.375rem 0; font-family: var(--serif); font-weight: 900; font-size: clamp(2rem, 6vw, 3rem); line-height: 1; color: inherit; text-decoration: none; letter-spacing: 0.01em; }
.helpline__card--primary .helpline__number:hover { color: var(--gold-tint); }
.helpline__card--primary :focus-visible { outline-color: var(--paper); }
.helpline__text { margin: 0.375rem 0 0; font-size: 0.9375rem; }
.age-badge { display: inline-grid; place-items: center; width: 3.25rem; height: 3.25rem; border: 0.1875rem solid var(--red); color: var(--red-dark); font-family: var(--sans); font-weight: 700; font-size: 1.125rem; }

/* ---------- Final CTA band ---------- */
.closing { margin-top: 2.5rem; padding: 1.5rem 1.25rem; border: var(--line); outline: 0.0625rem solid var(--ink); outline-offset: 0.1875rem; text-align: center; margin-inline: 0.25rem; }
.closing__title { font-size: clamp(1.375rem, 2vw + 1rem, 1.875rem); font-weight: 900; }
.closing__text { margin: 0.5rem auto 1rem; max-width: 38rem; }
.closing__note { margin: 0.75rem 0 0; font-size: 0.75rem; color: var(--ink-soft); }

/* ---------- Error page ---------- */
.error { text-align: center; padding-block: 3rem 4rem; }
.error__code { font-family: var(--serif); font-weight: 900; font-size: clamp(6rem, 28vw, 14rem); line-height: 0.9; color: var(--red); margin: 0; }
.error__title { font-size: clamp(1.5rem, 3vw + 1rem, 2.5rem); font-weight: 900; margin-top: 0.5rem; }
.error__text { margin: 1rem auto 1.5rem; max-width: 34rem; }
.error__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; }

/* ---------- Footer (colophon) ---------- */
.footer { margin-top: 1rem; border-top: 0.375rem solid var(--ink); background: var(--paper-deep); font-size: 0.9375rem; }
.footer__inner { display: grid; gap: 1.75rem; padding-block: 2rem 1.5rem; }
.footer__logo { width: 13.75rem; height: auto; margin-bottom: 0.75rem; }
.footer__about { margin: 0; max-width: 26rem; color: var(--ink-soft); }
.footer__heading { margin: 0 0 0.5rem; padding-bottom: 0.375rem; border-bottom: var(--line); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; }
.footer__list { list-style: none; margin: 0; padding: 0; }
.footer__item { padding: 0.1875rem 0; }
.footer__link { text-decoration: none; }
.footer__link:hover { text-decoration: underline; }
.footer__warning { border-top: var(--double); padding-block: 1.125rem; display: grid; gap: 0.875rem; align-items: center; }
.footer__warning-text { margin: 0; font-size: 0.875rem; line-height: 1.5; }
.footer__legal { border-top: var(--hair); padding-block: 0.875rem 1.5rem; font-size: 0.75rem; letter-spacing: 0.04em; color: var(--ink-soft); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 1.5rem; }
.footer__legal p { margin: 0; }

/* ---------- Phase 2: nav centring, byline actions, LinkedIn, sources ---------- */
.masthead__nav-item:first-child { margin-left: auto; }
.masthead__nav-item:last-child { margin-right: auto; }
.byline__name a { text-decoration: none; }
.byline__name a:hover { text-decoration: underline; }
.byline__actions, .profile__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.625rem 1.25rem; margin: 0 0 0.75rem; }
.byline__more { font-size: 0.9375rem; font-weight: 600; }
.byline__meta { line-height: 1.7; }
.social-button { display: inline-flex; align-items: center; gap: 0.5rem; border: 0.125rem solid var(--ink); padding: 0.3125rem 0.75rem 0.3125rem 0.3125rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; color: var(--ink); background: var(--paper); line-height: 1.2; }
.social-button:hover { background: var(--ink); color: var(--paper); }
.social-button__icon { flex: none; }
.sources { margin: 0; padding: 0; list-style: none; counter-reset: source; border-top: var(--line); font-size: 0.9375rem; }
.sources__item { counter-increment: source; display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); padding: 0.5rem 0; border-bottom: var(--hair); color: var(--ink-soft); }
.sources__item::before { content: "[" counter(source) "]"; font-family: var(--serif); font-weight: 700; color: var(--red); }
.signed { list-style: none; margin: 0; padding: 0; border-top: var(--line); counter-reset: signed; }
.signed__item { counter-increment: signed; display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); padding: 0.5625rem 0; border-bottom: var(--hair); font-family: var(--serif); font-weight: 700; font-size: 1.0625rem; }
.signed__item::before { content: counter(signed, decimal-leading-zero); font-style: italic; color: var(--red); }
.signed__item a { text-decoration: none; }
.signed__item a:hover { text-decoration: underline; }

/* ---------- Phase 2: scorecard position, test log ---------- */
.scorecard__figure--position { color: var(--gold-tint); }
.scorecard__figure--position .scorecard__outof { color: var(--paper); font-size: 0.22em; letter-spacing: 0.02em; }
.scorecard__score { margin: 0.25rem 0 0.5rem; padding: 0.5rem 0; border-top: 0.0625rem solid #55514a; border-bottom: 0.0625rem solid #55514a; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; display: flex; align-items: baseline; justify-content: center; gap: 0.625rem; }
.scorecard__score-value { font-family: var(--serif); font-weight: 900; font-size: 2rem; line-height: 1; letter-spacing: 0; }
.scorecard__score-outof { font-size: 0.5em; font-weight: 400; font-style: italic; }
.testlog { margin: 1.5rem 0; padding: 1rem 1.125rem; border: 0.125rem dashed var(--ink); background: var(--paper-deep); }
.testlog__title.testlog__title { margin: 0 0 0.625rem; font-family: var(--sans); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--red-dark); }
.testlog__list { margin: 0; border-top: var(--line); }
.testlog__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); gap: 0.125rem 0.75rem; padding: 0.4375rem 0; border-bottom: var(--hair); }
.testlog__term { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.04em; color: var(--ink-soft); }
.testlog__value { margin: 0; font-family: var(--serif); font-style: italic; }
.testlog__note { margin: 0.625rem 0 0; font-size: 0.8125rem; color: var(--ink-soft); }

/* ---------- Phase 2: picks (primi tre in dettaglio) ---------- */
.picks { display: grid; gap: 1.25rem; margin-top: 0.5rem; }
.picks__item { border: var(--line); border-top: 0.375rem solid var(--ink); padding: 1rem 1.125rem 1.25rem; background: var(--paper); display: flex; flex-direction: column; }
.picks__item:nth-child(1) { border-top-color: var(--gold); }
.picks__item:nth-child(2) { border-top-color: #8f8d86; }
.picks__item:nth-child(3) { border-top-color: #94673a; }
.picks__pos { margin: 0 0 0.25rem; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--red-dark); }
.picks__name { font-size: 1.375rem; }
.picks__score { margin: 0.375rem 0 0.5rem; padding-bottom: 0.5rem; border-bottom: var(--line); font-family: var(--serif); font-weight: 900; font-size: 2.75rem; line-height: 1; }
.picks__outof { font-size: 0.35em; font-weight: 400; font-style: italic; color: var(--ink-soft); }
.picks__text { font-size: 0.9375rem; flex: 1; }
.picks__actions { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; }
.picks__review { font-size: 0.875rem; }

/* ---------- Phase 2: roster (indice recensioni) ---------- */
.roster { list-style: none; margin: 2rem 0 0; padding: 0; border-top: var(--double); }
.roster__item { display: grid; grid-template-columns: 3.5rem auto minmax(0, 1fr); border-bottom: var(--line); }
@media (max-width: 39.9375em) {
  .roster__body { grid-column: 2 / -1; }
  .roster__score { grid-column: 2; grid-row: 2; padding: 0.25rem 0.5rem 0.875rem 0.875rem; text-align: left; }
  .roster__actions.roster__actions { grid-column: 3; grid-row: 2; align-self: center; text-align: right; padding: 0 0.875rem 0.75rem 0; }
}
.roster__pos { grid-row: 1 / span 2; margin: 0; display: grid; place-items: center; background: var(--paper-deep); border-right: var(--line); font-family: var(--serif); font-weight: 900; font-size: 2rem; line-height: 1; }
.roster__pos--gold { background: var(--gold-tint); box-shadow: inset 0 0.25rem 0 var(--gold); }
.roster__pos--silver { background: var(--silver); box-shadow: inset 0 0.25rem 0 #8f8d86; }
.roster__pos--bronze { background: var(--bronze); box-shadow: inset 0 0.25rem 0 #94673a; }
.roster__body { padding: 0.875rem 0.875rem 0.5rem; min-width: 0; }
.roster__name { font-size: 1.25rem; display: flex; align-items: center; gap: 0.625rem; }
.roster__name a { text-decoration: none; }
.roster__name a:hover { text-decoration: underline; }
.roster__crest { flex: none; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border: var(--line); background: var(--paper); font-style: italic; font-size: 0.8125rem; }
.roster__verdict { margin: 0.5rem 0 0.375rem; }
.roster__fact { margin: 0; font-size: 0.8125rem; color: var(--ink-soft); line-height: 1.5; }
.roster__fact strong { color: var(--ink); }
.roster__score { margin: 0; padding: 0.875rem 0.75rem 0; font-family: var(--serif); font-weight: 900; font-size: 2rem; line-height: 1; text-align: right; }
.roster__score-label { display: block; font-family: var(--sans); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: 0.1875rem; }
.roster__outof { font-size: 0.4em; font-weight: 400; font-style: italic; color: var(--ink-soft); }
.roster__actions { grid-column: 2 / -1; margin: 0; padding: 0.25rem 0.875rem 0.875rem; }

/* ---------- Phase 2: profile (autore, revisore) ---------- */
.profile { display: grid; gap: 1rem; margin-top: 1.5rem; padding: 1.25rem; border: var(--line); outline: 0.0625rem solid var(--ink); outline-offset: 0.1875rem; margin-inline: 0.25rem; background: var(--paper); }
.profile__portrait { display: grid; place-items: center; width: 6rem; height: 6rem; border: var(--line); background: var(--paper-deep); font-family: var(--serif); font-weight: 900; font-style: italic; font-size: 2rem; }
.profile__label { margin: 0 0 0.25rem; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--red-dark); }
.profile__name { font-size: 1.625rem; }
.profile__role { margin: 0.125rem 0 0.625rem; font-style: italic; color: var(--ink-soft); }
.profile__bio { max-width: 46rem; }
.profile__facts { margin: 0 0 1rem; border-top: var(--line); max-width: 46rem; }
.profile__fact { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: 0.125rem 0.75rem; padding: 0.4375rem 0; border-bottom: var(--hair); font-size: 0.9375rem; }
.profile__term { font-weight: 700; color: var(--ink-soft); }
.profile__value { margin: 0; }
.profile__actions { margin-bottom: 0; }

@media (min-width: 40em) {
  .profile { grid-template-columns: auto minmax(0, 1fr); column-gap: 1.75rem; padding: 1.5rem; }
  .roster__item { grid-template-columns: 4.5rem minmax(0, 1fr) 7rem 13rem; align-items: center; }
  .roster__pos { grid-row: auto; align-self: stretch; font-size: 2.5rem; }
  .roster__body { padding: 1rem 1.25rem; }
  .roster__score { padding: 0 0.75rem; text-align: center; font-size: 2.25rem; }
  .roster__actions { grid-column: auto; padding: 0 0 0 0.75rem; text-align: right; }
}
@media (min-width: 48em) {
  .picks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ==========================================================================
   Breakpoints
   ========================================================================== */
@media (min-width: 40em) {
  .lead__meta { flex-direction: row; flex-wrap: wrap; }
  .lead__meta-item + .lead__meta-item::before { content: "◆"; font-size: 0.5rem; color: var(--red); margin-right: 1.25rem; vertical-align: middle; }
  .legend__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .verdict { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .verdict__col + .verdict__col { border-top: 0; border-left: var(--line); }
  .byline { grid-template-columns: auto minmax(0, 1fr); column-gap: 1.5rem; }
  .team { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .helpline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .inline-cta { grid-template-columns: minmax(0, 1fr) auto; padding: 1.5rem 1.75rem; }
  .footer__warning { grid-template-columns: auto minmax(0, 1fr); }
}
@media (min-width: 48em) {
  :root { --gutter: 1.5rem; }
  body { font-size: 1.125rem; }
  .masthead__dateline-item--middle { display: block; }
  .masthead__brand { padding-block: 1.75rem 1.375rem; }
  .masthead__nav-list { justify-content: center; }
  .masthead__nav-link { padding-inline: 1.125rem; }
  .notice__inner { grid-template-columns: 1.15fr 0.85fr 1fr; padding-block: 0; }
  .notice__item { padding: 0.625rem 1rem; }
  .notice__item:first-child { padding-left: 0; }
  .notice__item:last-child { padding-right: 0; }
  .notice__item + .notice__item { border-top: 0; border-left: var(--hair); }
  .lead { padding-block: 2.5rem 2rem; }
  .scorecard { grid-template-columns: 15rem minmax(0, 1fr); }
  .scorecard__cta { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between; text-align: left; }
  .footer__inner { grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 2rem; }
  .contact { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 3rem; }
  .form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
}
@media (min-width: 64em) {
  .legend__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .legend__term, .legend__desc { display: block; }
  .section__grid--aside { grid-template-columns: minmax(0, 1fr) 19rem; gap: 2.5rem; }
  .prose--columns { columns: 2; column-gap: 2.5rem; column-rule: var(--hair); }
  .prose--columns > p { orphans: 3; widows: 3; }
  .article { grid-template-columns: 16rem minmax(0, 44rem); gap: 3.5rem; justify-content: center; }
  .article--single { grid-template-columns: minmax(0, 46rem); }
  .toc { position: sticky; top: 1.5rem; }
  .scorecard { grid-template-columns: 17rem minmax(0, 1fr) 18rem; }
  .scorecard__cta { grid-column: auto; flex-direction: column; text-align: center; border-top: 0; border-left: var(--line); justify-content: center; }
  .steps--columns { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2.5rem; }
}

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

@media print {
  .masthead__nav, .notice, .footer, .skip-link, .button { display: none; }
  body { background: #fff; }
}

/* Navigazione a dodici voci: su desktop va a capo invece di scorrere */
@media (min-width: 60rem) {
  .masthead__nav-list { flex-wrap: wrap; justify-content: center; overflow: visible; white-space: normal; }
  .masthead__nav-link { padding: 0.625rem 0.75rem; font-size: 0.75rem; letter-spacing: 0.08em; }
  .masthead__nav-item:first-child { margin-left: 0; }
  .masthead__nav-item:last-child { margin-right: 0; }
}
/* Prima edizione: la colonna "Stato" non serve nelle righe impilate */
@media (max-width: 59.99rem) {
  .standings__move { font-size: 0; }
  .standings__move::before { content: none; }
}

/* Loghi degli operatori al posto delle sigle */
.standings__crest--logo, .roster__crest--logo { display: block; object-fit: cover; background: #111; font-size: 0; }
.standings__crest--logo { width: 3.25rem; height: 3.25rem; }
.roster__crest--logo { width: 2.75rem; height: 2.75rem; }
@media (max-width: 59.99rem) { .standings__crest--logo { width: 2.75rem; height: 2.75rem; } }
.standings__crest--logo, .roster__crest--logo { flex: none; min-width: 2.75rem; aspect-ratio: 1; }
@media (min-width: 60rem) { .masthead__nav-link { padding-inline: 0.5625rem; letter-spacing: 0.06em; } }

/* dateline: resta solo il richiamo 18+ */
.masthead__dateline { justify-content: flex-end; }
