/* VA-List, bozza grafica del 23/10/2026.
   Un solo accento (giallo segnaletica, lo stesso del "vota" di oggi), fondo blu notte, tema chiaro e scuro.
   Effetti pieni con la classe .mov-pieno su <html>, versione morbida con .mov-dolce. */

:root {
  color-scheme: dark;
  --bg: #090e1a;
  --bg-alt: #0c1322;
  --surface: #0f1828;
  --surface-2: #142034;
  --surface-3: #1a2841;
  --line: rgb(150 172 214 / 0.12);
  --line-strong: rgb(150 172 214 / 0.22);
  --text: #e9eef7;
  --text-2: #a7b3ca;
  --text-3: #8a97b0;
  --accent: #f2b544;
  --accent-hover: #f7c462;
  --accent-ink: #1b1305;
  --accent-text: #f2b544;
  --accent-soft: rgb(242 181 68 / 0.12);
  --argento: #c9d2e0;
  --bronzo: #d49a6a;
  --tile-text: #f3eee2;
  --ombra-1: 0 1px 0 rgb(255 255 255 / 0.04) inset, 0 14px 32px -20px rgb(1 6 18 / 0.9);
  --ombra-2: 0 1px 0 rgb(255 255 255 / 0.05) inset, 0 34px 70px -34px rgb(1 6 18 / 0.95);
  --r-xl: 24px;
  --r-l: 18px;
  --r-m: 12px;
  --r-s: 8px;
  --font: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: "Geist Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;
  --contenitore: 1200px;
  --gutter: clamp(16px, 4vw, 40px);
  --testata-h: 64px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --z-testata: 40;
  --z-barra: 45;
  --z-avviso: 50;
  --z-grana: 60;
}

:root[data-theme="light"] {
  color-scheme: light;
  --bg: #f4f6fa;
  --bg-alt: #eaeef5;
  --surface: #ffffff;
  --surface-2: #f4f7fb;
  --surface-3: #e9eef6;
  --line: rgb(18 32 64 / 0.1);
  --line-strong: rgb(18 32 64 / 0.18);
  --text: #0c1426;
  --text-2: #47536d;
  --text-3: #5b667e;
  --accent-text: #7a4e00;
  --accent-soft: rgb(242 181 68 / 0.2);
  --argento: #8592a8;
  --bronzo: #a8683a;
  --ombra-1: 0 1px 2px rgb(16 28 56 / 0.06), 0 14px 30px -18px rgb(16 28 56 / 0.2);
  --ombra-2: 0 2px 4px rgb(16 28 56 / 0.05), 0 30px 60px -30px rgb(16 28 56 / 0.3);
}

/* ---------- Base ---------- */

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: calc(var(--testata-h) + 20px);
}
html.mov-pieno { scroll-behavior: smooth; }

body {
  margin: 0;
  min-height: 100dvh;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* Grana leggera sopra tutto, per togliere il piatto del digitale */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: var(--z-grana);
  pointer-events: none;
  opacity: 0.035;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
:root[data-theme="light"] body::after { opacity: 0.025; }

img { display: block; max-width: 100%; }
[hidden] { display: none !important; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; }
h1, h2, h3, h4 {
  margin: 0;
  font-weight: 650;
  line-height: 1.08;
  letter-spacing: -0.025em;
  text-wrap: balance;
}
p { margin: 0; text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; }
dl, dd { margin: 0; }

:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 8px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.salta {
  position: absolute;
  left: 16px;
  top: -80px;
  z-index: 100;
  padding: 10px 14px;
  border-radius: 10px;
  background: var(--accent);
  color: var(--accent-ink);
  font-weight: 600;
}
.salta:focus { top: 12px; }

.contenitore {
  width: min(100% - (2 * var(--gutter)), var(--contenitore));
  margin-inline: auto;
}

.icona {
  width: 18px;
  height: 18px;
  flex: none;
  stroke: currentColor;
  stroke-width: 1.6;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ---------- Barra della bozza (non fa parte del design) ---------- */

.bozza-barra {
  background: #1d1608;
  color: #f6dfab;
  font-size: 13px;
  border-bottom: 1px solid rgb(242 181 68 / 0.25);
}
.bozza-barra .contenitore {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 16px;
  min-height: 38px;
  padding-block: 6px;
}
.bozza-barra strong { color: var(--accent); font-weight: 600; }
.bozza-barra a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgb(242 181 68 / 0.45); }
.bozza-barra a[aria-current="page"] { text-decoration: none; color: #fff; }
.bozza-barra__spazio { margin-left: auto; }

/* ---------- Pulsanti e link ---------- */

.btn {
  --h: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: var(--h);
  padding: 0 18px;
  border: 1px solid transparent;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.01em;
  white-space: nowrap;
  cursor: pointer;
  transition: transform 0.16s var(--ease), background-color 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
}
.btn:active { transform: translateY(1px) scale(0.98); }
.btn--accento {
  background: var(--accent);
  color: var(--accent-ink);
  box-shadow: 0 1px 0 rgb(255 255 255 / 0.35) inset, 0 10px 22px -12px rgb(242 181 68 / 0.7);
}
.btn--accento:hover { background: var(--accent-hover); }
.btn--contorno { border-color: var(--line-strong); background: transparent; color: var(--text); }
.btn--contorno:hover { background: var(--surface-2); border-color: var(--text-3); }
.btn--quieto { border-color: var(--line); background: var(--surface-2); color: var(--text); }
.btn--quieto:hover { background: var(--surface-3); }
.btn--piccolo { --h: 36px; padding: 0 14px; font-size: 14px; border-radius: 10px; }
/* Il "vota" delle righe è più quieto: si accende quando ci passi sopra */
.btn--voto {
  --h: 36px;
  padding: 0 16px;
  border-color: var(--bordo-voto, rgb(242 181 68 / 0.45));
  border-radius: 10px;
  background: transparent;
  color: var(--accent-text);
  font-size: 14px;
}
/* sul bianco il giallo chiaro del bordo quasi non si vede: nel tema chiaro il bordo prende il tono del testo */
:root[data-theme="light"] .btn--voto { --bordo-voto: rgb(122 78 0 / 0.38); }
.btn--voto:focus-visible {
  border-color: var(--accent);
  background: var(--accent);
  color: var(--accent-ink);
}
@media (hover: hover) {
  .btn--voto:hover,
  .voce:hover .btn--voto {
    border-color: var(--accent);
    background: var(--accent);
    color: var(--accent-ink);
  }
}
.btn--largo { width: 100%; }

.link-freccia {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--accent-text);
  font-weight: 600;
}
.link-freccia .icona { width: 16px; height: 16px; transition: transform 0.2s var(--ease); }
.link-freccia:hover .icona { transform: translateX(3px); }

.link-quieto { color: var(--text-2); font-size: 14.5px; font-weight: 500; transition: color 0.2s; }
.link-quieto:hover { color: var(--text); }

.occhiello {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 12.5px;
  letter-spacing: 0.01em;
  color: var(--text-2);
}

/* Nell'apertura la riga può andare a capo: il punto sta sulla prima riga e il testo si divide in modo bilanciato */
.apertura .occhiello { align-items: flex-start; text-wrap: balance; }
.apertura .occhiello .pallino { margin-top: calc((1.55em - 8px) / 2); flex: none; }

.pallino {
  position: relative;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent);
}
.mov-pieno .pallino::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: var(--accent);
  animation: pulsa 2.2s var(--ease) infinite;
}
@keyframes pulsa {
  from { transform: scale(1); opacity: 0.6; }
  to { transform: scale(3); opacity: 0; }
}

/* ---------- Testata ---------- */

.testata {
  position: sticky;
  top: 0;
  z-index: var(--z-testata);
  background: color-mix(in oklab, var(--bg) 80%, transparent);
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  backdrop-filter: saturate(140%) blur(14px);
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s, background-color 0.3s;
}
.testata.is-scorsa { border-bottom-color: var(--line); }
.testata__riga {
  display: flex;
  align-items: center;
  gap: 28px;
  height: var(--testata-h);
}

.marchio {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  gap: 8px;
  font-size: 21px;
  font-weight: 700;
  letter-spacing: -0.035em;
  white-space: nowrap;
}
.marchio__segno { width: 32px; height: 32px; flex: none; }
.marchio__nome span { color: var(--text-3); font-weight: 500; }
.marchio__nome i { color: var(--accent); font-style: normal; }
:root[data-theme="light"] .marchio__nome i { color: #b06f0a; }

.menu { display: flex; gap: 2px; }
.menu a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 12px;
  border-radius: 10px;
  color: var(--text-2);
  font-size: 14.5px;
  font-weight: 500;
  transition: color 0.2s, background-color 0.2s;
}
.menu a:hover { color: var(--text); background: var(--surface-2); }
.menu a[aria-current="page"] { color: var(--text); background: var(--surface-2); box-shadow: inset 0 0 0 1px var(--line); }
.menu__live { display: inline-flex; align-items: center; gap: 7px; }
.menu__live .pallino { width: 7px; height: 7px; }
@media (max-width: 1180px) {
  .menu a { padding: 0 9px; font-size: 14px; }
}

.testata__azioni { margin-left: auto; display: flex; align-items: center; gap: 12px; }
/* "Log in": il testo è piccolo ma l'area da toccare arriva a 40 px, senza spostare niente */
.testata__azioni .link-quieto { padding: 9px 6px; margin-inline: -6px; }
.testata .btn--piccolo { --h: 40px; }

.cerca-rapida {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 8px 0 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text-3);
  font-size: 14px;
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}
.cerca-rapida:hover { border-color: var(--line-strong); color: var(--text-2); }
.cerca-rapida kbd {
  padding: 1px 6px;
  border: 1px solid var(--line-strong);
  border-radius: 5px;
  font-family: var(--mono);
  font-size: 11.5px;
  color: var(--text-2);
}

.tema-rapido {
  display: inline-grid;
  place-items: center;
  flex: none;
  width: 40px;
  height: 40px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text-2);
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s, background-color 0.2s;
}
.tema-rapido:hover { border-color: var(--line-strong); color: var(--text); }
.tema-rapido:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.tema-rapido .icona { grid-area: 1 / 1; width: 18px; height: 18px; transition: transform 0.35s var(--ease), opacity 0.2s; }
:root[data-theme="dark"] .tema-rapido__luna,
:root[data-theme="light"] .tema-rapido__sole { opacity: 0; transform: rotate(-60deg) scale(0.6); }
:root[data-theme="dark"] .tema-rapido__sole { color: var(--accent); }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: 0.35s; }

.menu-apri {
  display: none;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}

.menu-telefono {
  display: none;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line-strong);
  background: var(--bg);
  box-shadow: 0 30px 44px -30px rgb(1 6 18 / 0.6);
  /* su schermi bassi (telefono in orizzontale) il menu scorre da solo, senza restare tagliato sotto la testata fissa */
  max-height: calc(100dvh - var(--testata-h));
  overflow-y: auto;
  overscroll-behavior: contain;
}
:root[data-theme="light"] .menu-telefono { box-shadow: 0 30px 44px -30px rgb(16 28 56 / 0.35); }
.menu-telefono.is-aperto { display: block; }
.menu-telefono nav { display: grid; padding: 12px 0 18px; }
.menu-telefono nav a {
  display: flex;
  align-items: center;
  min-height: 48px;
  border-bottom: 1px solid var(--line);
  font-size: 17px;
  font-weight: 500;
}
.menu-telefono nav a[aria-current="page"] { color: var(--accent-text); }
/* "Live flights": il punto va dopo il testo, così le voci restano tutte allineate a sinistra */
.menu-telefono .menu__live { gap: 10px; }
.menu-telefono .menu__live .pallino { order: 2; }
.menu-telefono .btn { margin-top: 16px; }
.menu-telefono nav a.btn { border-bottom-color: transparent; }
@media (min-width: 641px) {
  /* su tablet il menu è su due colonne, non una lista lunga 700 px */
  .menu-telefono nav { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
  .menu-telefono nav .btn { grid-column: 1 / -1; }
}

/* ---------- Apertura ---------- */

.apertura {
  position: relative;
  isolation: isolate;
  overflow: clip;
  padding: clamp(36px, 6vw, 84px) 0 clamp(40px, 5vw, 72px);
}
.apertura::before {
  content: "";
  position: absolute;
  inset: -20% -10% auto;
  height: 120%;
  z-index: -2;
  background:
    radial-gradient(40% 45% at 78% 38%, rgb(242 181 68 / 0.1), transparent 70%),
    radial-gradient(45% 55% at 8% 0%, rgb(70 108 190 / 0.14), transparent 72%);
}
:root[data-theme="light"] .apertura::before {
  background:
    radial-gradient(40% 45% at 78% 38%, rgb(242 181 68 / 0.18), transparent 70%),
    radial-gradient(45% 55% at 8% 0%, rgb(90 128 210 / 0.12), transparent 72%);
}

.rotte {
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.rotte path {
  fill: none;
  stroke: var(--line-strong);
  stroke-width: 1;
  stroke-dasharray: 2 7;
  vector-effect: non-scaling-stroke;
}
.rotte circle { fill: var(--accent); }
.rotte .alone { fill: rgb(242 181 68 / 0.18); }

.apertura__griglia {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}

.apertura h1 {
  margin-top: 18px;
  max-width: 15ch;
  font-size: clamp(38px, 5.6vw, 70px);
  font-weight: 650;
  line-height: 1.02;
  letter-spacing: -0.04em;
}
.apertura h1 .sottolinea { position: relative; white-space: nowrap; }
.apertura h1 .sottolinea svg {
  position: absolute;
  left: -2%;
  bottom: -0.16em;
  width: 104%;
  height: 0.32em;
  overflow: visible;
}
.apertura h1 .sottolinea path {
  fill: none;
  stroke: var(--accent);
  stroke-width: 3;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}

.apertura__lead {
  margin-top: 22px;
  max-width: 46ch;
  font-size: clamp(17px, 1.35vw, 19px);
  color: var(--text-2);
}
.apertura__lead strong { color: var(--text); font-weight: 600; font-variant-numeric: tabular-nums; }

.ricerca {
  display: flex;
  align-items: center;
  gap: 8px;
  max-width: 560px;
  margin-top: 32px;
  padding: 7px 7px 7px 16px;
  border: 1px solid var(--line-strong);
  border-radius: 16px;
  background: var(--surface);
  box-shadow: var(--ombra-1);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.ricerca:focus-within {
  border-color: rgb(242 181 68 / 0.6);
  box-shadow: 0 0 0 4px var(--accent-soft), var(--ombra-1);
}
.ricerca .icona { color: var(--text-3); }
.ricerca input {
  flex: 1;
  min-width: 0;
  height: 44px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: 16px;
}
.ricerca input::placeholder { color: var(--text-3); }

.rapide {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
  font-size: 13.5px;
  color: var(--text-3);
}
.gettone {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  color: var(--text-2);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s, background-color 0.2s;
}
.gettone:hover { border-color: var(--line-strong); color: var(--text); }

/* ---------- Tabellone delle partenze ---------- */

.tabellone {
  container-type: inline-size;
  position: relative;
  padding: 16px 18px 14px;
  border-radius: var(--r-xl);
  background: linear-gradient(180deg, #161c29, #0e121b);
  color: var(--tile-text);
  box-shadow:
    0 1px 0 rgb(255 255 255 / 0.07) inset,
    0 0 0 1px rgb(255 255 255 / 0.05),
    0 50px 90px -50px rgb(0 0 0 / 0.85);
}
:root[data-theme="light"] .tabellone {
  box-shadow:
    0 1px 0 rgb(255 255 255 / 0.07) inset,
    0 0 0 1px rgb(10 16 30 / 0.4),
    0 40px 70px -36px rgb(16 28 56 / 0.55);
}
/* nel tema scuro il tabellone sta su un fondo quasi uguale: il filo intorno lo stacca */
:root[data-theme="dark"] .tabellone {
  box-shadow:
    0 1px 0 rgb(255 255 255 / 0.08) inset,
    0 0 0 1px rgb(255 255 255 / 0.11),
    0 50px 90px -50px rgb(0 0 0 / 0.85);
}
.tabellone__testa,
.tabellone__piede {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 11.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #a9a291;
}
.tabellone__testa {
  padding: 2px 4px 12px;
  margin-bottom: 12px;
  border-bottom: 1px dashed rgb(255 255 255 / 0.1);
}
.tabellone__testa .pallino { width: 7px; height: 7px; }
.tabellone__titolo { display: inline-flex; align-items: center; gap: 8px; color: var(--tile-text); }
.tabellone__righe { list-style: none; display: grid; gap: 7px; }
.tabellone__colonne {
  display: flex;
  justify-content: space-between;
  padding: 0 2px 8px;
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #7f7a6c;
}
.tabellone__piede {
  margin-top: 12px;
  padding: 10px 4px 0;
  border-top: 1px dashed rgb(255 255 255 / 0.1);
}
.tabellone__piede a { color: var(--accent); }
.tabellone__piede a:hover { text-decoration: underline; text-underline-offset: 3px; }

.fids-riga {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}
.flaps { display: inline-flex; gap: 2px; }
.flap {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 1.04em;
  height: 1.55em;
  border-radius: 3px;
  font-family: var(--mono);
  /* larghezza = tessere x (1,04 em + 2 px) + 14 px di spazi fra i gruppi: deve stare nel tabellone */
  font-size: clamp(8px, calc((100cqi - (var(--tessere, 23) * 2px) - 14px) / (var(--tessere, 23) * 1.04)), var(--tessera-max, 16px));
  font-weight: 500;
  line-height: 1;
  color: var(--tile-text);
  background: linear-gradient(180deg, #252c3a 0 49.5%, #1c222e 50.5% 100%);
  box-shadow: 0 1px 0 rgb(0 0 0 / 0.6), inset 0 1px 0 rgb(255 255 255 / 0.05);
  overflow: hidden;
}
.flap::after {
  content: "";
  position: absolute;
  inset: 50% 0 auto;
  height: 1px;
  background: rgb(0 0 0 / 0.6);
}
.flap.is-giro { animation: giro 60ms steps(2) both; }
@keyframes giro {
  0% { transform: translateY(-14%); color: rgb(243 238 226 / 0.55); }
  100% { transform: none; }
}
.fids-riga--prima .flaps--voti .flap,
.fids-riga--prima .flaps--pos .flap { color: var(--accent); }

/* ---------- Sezioni ---------- */

.sezione { padding: clamp(48px, 7vw, 88px) 0; }
.apertura + .sezione { padding-top: clamp(16px, 2.5vw, 32px); }
.sezione--alt { background: var(--bg-alt); border-block: 1px solid var(--line); }

.sezione-testa {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 20px 32px;
  margin-bottom: 28px;
}
.sezione-testa h2 {
  margin-top: 10px;
  font-size: clamp(30px, 3.6vw, 46px);
  letter-spacing: -0.035em;
}
.sezione-testa__lead { margin-top: 10px; max-width: 52ch; color: var(--text-2); }

/* ---------- Classifica ---------- */

.filtri {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
}
.filtro {
  height: 34px;
  padding: 0 12px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--text-2);
  font-size: 13.5px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s;
}
.filtro:hover { color: var(--text); }
.filtro.is-attivo {
  background: var(--surface-3);
  color: var(--text);
  box-shadow: 0 1px 0 rgb(255 255 255 / 0.06) inset, 0 0 0 1px var(--line);
}

.risultati {
  display: none;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  color: var(--text-2);
  font-size: 14.5px;
}
.risultati.is-visibile { display: flex; }
.risultati button {
  border: 0;
  background: none;
  color: var(--accent-text);
  font-weight: 600;
  cursor: pointer;
}

.podio {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 16px;
}
.podio.is-nascosto { display: none; }

.carta.carta--1 {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
  align-items: center;
  gap: 20px clamp(20px, 3vw, 40px);
  padding: 16px;
}
.carta__visuale { display: grid; gap: 14px; }
.carta__info { display: grid; gap: 20px; padding: 6px 10px 6px 0; }
.carta__azioni { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; }
.carta--1 .carta__corpo { padding: 0; }
/* secondo e terzo: i voti stanno in fondo al corpo, così "34" e "14" sono alla stessa altezza anche se un nome va su due righe */
.carta:not(.carta--1) .carta__corpo { flex: 1; }
.carta:not(.carta--1) .carta__corpo > div:last-child { align-self: stretch; display: flex; flex-direction: column; }
.carta:not(.carta--1) .carta__dati { margin-top: auto; padding-top: 14px; }
.carta--1 .carta__dati { margin-top: 0; gap: 10px 32px; }

.carta {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 14px;
  border-radius: var(--r-l);
  background: var(--surface);
  box-shadow: var(--ombra-1);
  outline: 1px solid var(--line);
  outline-offset: -1px;
  transition: outline-color 0.25s, transform 0.25s var(--ease);
}
.carta:hover { outline-color: var(--line-strong); }
.carta--1 {
  background:
    radial-gradient(80% 60% at 100% 0%, rgb(242 181 68 / 0.09), transparent 60%),
    var(--surface);
  outline-color: rgb(242 181 68 / 0.28);
}
.carta__banner {
  display: block;
  aspect-ratio: 6 / 1;
  overflow: hidden;
  border-radius: 10px;
  background: var(--surface-3);
}
.carta__banner img { width: 100%; height: 100%; object-fit: cover; }
.carta__corpo {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  padding: 0 4px;
}
.carta__pos {
  min-width: 2ch;
  font-family: var(--mono);
  font-size: 40px;
  font-weight: 500;
  line-height: 0.9;
  letter-spacing: -0.06em;
  color: var(--text-2);
  font-variant-numeric: tabular-nums;
}
.carta--1 .carta__pos { font-size: 76px; color: var(--accent-text); }
.carta__nome {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  font-size: 20px;
  font-weight: 650;
  letter-spacing: -0.02em;
}
.carta--1 .carta__nome { font-size: 28px; letter-spacing: -0.03em; }
.carta__nome a:hover { color: var(--accent-text); }
.carta__motto {
  display: -webkit-box;
  margin-top: 6px;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  color: var(--text-2);
  font-size: 14.5px;
}
.carta__dati {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  margin-top: 14px;
}
.carta__dato { font-family: var(--mono); }
.carta__dato b { display: block; font-size: 22px; font-weight: 500; line-height: 1.15; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.carta--1 .carta__dato b { font-size: 30px; }
.carta__dato span { font-size: 12px; color: var(--text-3); }
.carta__piede {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin-top: auto;
  padding: 2px 4px 2px;
}
.carta__piede .sims { margin-right: auto; }
.carta__striscia {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--accent-soft);
  color: var(--text);
  font-size: 14px;
}
.carta__striscia b { font-family: var(--mono); color: var(--accent-text); font-weight: 600; }

.bandiera {
  width: 22px;
  height: 22px;
  flex: none;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 0 0 1px var(--line-strong);
  background: var(--surface-3);
}
.bandiera--vuota {
  display: inline-grid;
  place-items: center;
  color: var(--text-3);
}
.bandiera--vuota .icona { width: 14px; height: 14px; }

.etichetta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 22px;
  padding: 0 7px;
  border-radius: 6px;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.etichetta--premium { background: var(--accent-soft); color: var(--accent-text); box-shadow: inset 0 0 0 1px rgb(242 181 68 / 0.3); }
/* "Recruiting": la compagnia Premium cerca piloti e ha il pulsante per candidarsi */
.etichetta--recluta { background: var(--surface-3); color: var(--text); }
.etichetta--recluta::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.etichetta--medaglia { background: var(--surface-3); color: var(--text-2); }
.etichetta--medaglia::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent);
}
.etichetta--m2::before { background: var(--argento); }
.etichetta--m3::before { background: var(--bronzo); }

.sims { display: flex; flex-wrap: wrap; gap: 4px; }
.sim {
  padding: 2px 6px;
  border-radius: 5px;
  background: var(--surface-3);
  color: var(--text-2);
  font-family: var(--mono);
  font-size: 11.5px;
  white-space: nowrap;
}
.sim--altri { background: transparent; color: var(--text-3); padding-inline: 2px; }

.lista {
  list-style: none;
  overflow: hidden;
  border-radius: var(--r-l);
  background: var(--surface);
  box-shadow: var(--ombra-1);
  outline: 1px solid var(--line);
  outline-offset: -1px;
}
.voce {
  position: relative;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) minmax(0, 220px) 124px auto;
  grid-template-areas: "pos chi sim voti azione";
  align-items: center;
  gap: 16px;
  padding: 12px 18px;
  border-top: 1px solid var(--line);
  transition: background-color 0.2s;
}
.voce:first-child { border-top: 0; }
@media (hover: hover) { .voce:hover { background: var(--surface-2); } }
.voce--premium { background: linear-gradient(90deg, var(--accent-soft), transparent 45%); box-shadow: inset 3px 0 0 var(--accent); }
@media (hover: hover) { .voce--premium:hover { background: linear-gradient(90deg, var(--accent-soft), var(--surface-2) 45%); } }
:root[data-theme="dark"] .voce--premium { background: linear-gradient(90deg, rgb(242 181 68 / 0.07), transparent 40%); }
@media (hover: hover) { :root[data-theme="dark"] .voce--premium:hover { background: linear-gradient(90deg, rgb(242 181 68 / 0.07), var(--surface-2) 40%); } }
.voce__pos {
  grid-area: pos;
  font-family: var(--mono);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: -0.04em;
  color: var(--text-3);
  font-variant-numeric: tabular-nums;
}
.voce__chi { grid-area: chi; min-width: 0; }
.voce__nome {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.voce__nome .bandiera,
.voce__nome .etichetta,
.voce__nome .in-volo { flex: none; }
/* solo il nome: il segno "N flying" è un link anche lui, ma ha il suo stile (11 px) e non si taglia */
.voce__nome > a:not(.in-volo) {
  min-width: 0;
  overflow: hidden;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.01em;
  white-space: nowrap;
  text-overflow: ellipsis;
  transition: color 0.2s;
}
.voce__nome > a:not(.in-volo):hover { color: var(--accent-text); }
.voce__motto {
  margin-top: 3px;
  padding-left: 32px;
  overflow: hidden;
  color: var(--text-3);
  font-size: 13.5px;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.voce__banner {
  display: block;
  width: min(100%, 210px);
  aspect-ratio: 6 / 1;
  margin: 8px 0 0 32px;
  overflow: hidden;
  border-radius: 6px;
  background: var(--surface-3);
}
.voce__banner img { width: 100%; height: 100%; object-fit: cover; }
.voce__sim { grid-area: sim; }
.voce__voti { grid-area: voti; display: grid; gap: 6px; font-family: var(--mono); }
.voce__voti span { font-size: 15px; font-variant-numeric: tabular-nums; }
.voce__voti small { color: var(--text-3); font-size: 12px; }
.barra { display: block; height: 4px; overflow: hidden; border-radius: 4px; background: var(--surface-3); }
.barra i {
  display: block;
  width: var(--quota, 0%);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #d99a2b, var(--accent));
  transform-origin: left;
}
.voce__azione { grid-area: azione; }

.voce--annuncio { display: block; padding: 18px; background: var(--bg-alt); }
.voce--annuncio:hover { background: var(--bg-alt); }

.annuncio {
  position: relative;
  display: grid;
  place-items: center;
  width: min(100%, 728px);
  height: 90px;
  margin-inline: auto;
  border: 1px dashed var(--line-strong);
  border-radius: 10px;
  color: var(--text-3);
  font-family: var(--mono);
  font-size: 12px;
  background:
    repeating-linear-gradient(135deg, transparent 0 10px, rgb(150 172 214 / 0.04) 10px 20px);
}
.annuncio::before {
  content: "Advertisement";
  position: absolute;
  top: -9px;
  left: 12px;
  padding: 0 6px;
  background: inherit;
  background-color: var(--bg-alt);
  font-size: 10.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.annuncio--rettangolo { width: 100%; max-width: 300px; height: 250px; }
.scheda__lato .annuncio::before { background-color: var(--bg); }

.lista__piede { display: flex; justify-content: center; margin-top: 20px; }

.vuoto {
  padding: 40px 20px;
  text-align: center;
  color: var(--text-2);
}

/* ---------- Albo d'oro ---------- */

.albo__griglia {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: clamp(32px, 6vw, 80px);
  align-items: center;
}
.albo__vincitore h2 {
  margin-top: 14px;
  font-size: clamp(36px, 4.8vw, 60px);
  letter-spacing: -0.04em;
}
.albo__vincitore p { margin-top: 14px; max-width: 42ch; color: var(--text-2); font-size: 17px; }
.albo__vincitore .azioni { margin-top: 26px; }
.coppa {
  display: inline-grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: var(--accent-soft);
  color: var(--accent-text);
  box-shadow: inset 0 0 0 1px rgb(242 181 68 / 0.3);
}
.coppa .icona { width: 28px; height: 28px; stroke-width: 1.5; }

.strisce { list-style: none; display: grid; gap: 8px; }
.striscia {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  min-height: 52px;
  padding: 8px 16px 8px 14px;
  border-radius: 10px;
  background: var(--surface);
  outline: 1px solid var(--line);
  outline-offset: -1px;
  border-left: 4px solid var(--line-strong);
}
.striscia--serie { border-left-color: var(--accent); }
.striscia__mese { font-family: var(--mono); font-size: 13px; color: var(--text-2); letter-spacing: 0.02em; }
.striscia__nome { overflow: hidden; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; }
.striscia__voti { font-family: var(--mono); font-size: 13px; color: var(--text-3); font-variant-numeric: tabular-nums; }
.strisce__piede { margin-top: 14px; }

/* ---------- Proprietari e distintivo ---------- */

.proprietari__griglia {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(32px, 6vw, 80px);
  align-items: center;
}
.proprietari h2 { margin-top: 12px; font-size: clamp(32px, 4vw, 52px); letter-spacing: -0.04em; }
.proprietari__testo > p { margin-top: 16px; max-width: 46ch; color: var(--text-2); font-size: 17px; }

.spunte { list-style: none; display: grid; gap: 12px; margin-top: 24px; }
.spunte li { display: flex; gap: 12px; align-items: flex-start; }
.spunte .icona { margin-top: 3px; color: var(--accent-text); }

.azioni { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; margin-top: 30px; }

.distintivi {
  position: relative;
  padding: clamp(20px, 3vw, 32px);
  border-radius: var(--r-xl);
  background:
    radial-gradient(70% 60% at 0% 0%, rgb(242 181 68 / 0.08), transparent 60%),
    var(--surface);
  outline: 1px solid var(--line);
  outline-offset: -1px;
  box-shadow: var(--ombra-2);
}
.distintivi__anteprima {
  display: grid;
  place-items: center;
  gap: 16px;
  padding: 34px 16px;
  border-radius: var(--r-l);
  background:
    linear-gradient(var(--surface-2), var(--surface-2)) padding-box,
    repeating-linear-gradient(45deg, var(--line) 0 1px, transparent 1px 12px);
  border: 1px solid var(--line);
}
.distintivi__nota { font-family: var(--mono); font-size: 12px; color: var(--text-3); text-align: center; }

.distintivo {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  width: 150px;
  height: 50px;
  padding: 5px 7px 5px 6px;
  border-radius: 8px;
  background: #0d1424;
  color: #f1f4fa;
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.08);
  font-family: var(--font);
  text-align: left;
}
.distintivo--grande { transform: scale(2); transform-origin: center; margin: 26px 0; }
.distintivo__segno { width: 38px; height: 38px; }
.distintivo__testo { display: grid; min-width: 0; line-height: 1.12; }
.distintivo__testo b { font-size: 12.5px; font-weight: 700; letter-spacing: -0.02em; }
.distintivo__testo b em { font-style: normal; color: var(--accent); }
.distintivo__testo span { font-family: var(--mono); font-size: 8.5px; color: #a9b4c9; }
.distintivo__testo i {
  overflow: hidden;
  font-size: 8.5px;
  font-style: normal;
  color: #d5dbe7;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.codice {
  display: grid;
  gap: 10px;
  margin: 18px 0 0;
  padding: 14px 14px 12px 16px;
  border-radius: var(--r-m);
  background: var(--bg);
  outline: 1px solid var(--line);
  outline-offset: -1px;
}
.codice pre {
  margin: 0;
  overflow-x: auto;
  font-family: var(--mono);
  font-size: 12.5px;
  line-height: 1.65;
  color: var(--text-2);
  white-space: pre;
}
.codice .btn { justify-self: end; }

/* ---------- Premium ---------- */

.premium__griglia {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(32px, 6vw, 80px);
  align-items: start;
}
.premium h2 { margin-top: 12px; font-size: clamp(32px, 4vw, 52px); letter-spacing: -0.04em; }
.premium__testo > p { margin-top: 16px; max-width: 48ch; color: var(--text-2); font-size: 17px; }

.vantaggi {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px 28px;
  margin-top: 34px;
}
.vantaggi li { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 14px; align-items: start; }
.vantaggi__icona {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--surface-2);
  color: var(--accent-text);
  box-shadow: inset 0 0 0 1px var(--line);
}
.vantaggi li > div > b { display: block; font-weight: 600; }
.vantaggi li > div > span { display: block; margin-top: 2px; color: var(--text-2); font-size: 14.5px; }

.piani {
  position: sticky;
  top: calc(var(--testata-h) + 24px);
  padding: clamp(20px, 3vw, 28px);
  border-radius: var(--r-xl);
  background:
    radial-gradient(90% 60% at 100% 0%, rgb(242 181 68 / 0.1), transparent 60%),
    var(--surface);
  outline: 1px solid rgb(242 181 68 / 0.25);
  outline-offset: -1px;
  box-shadow: var(--ombra-2);
}
.piani__scelta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  padding: 4px;
  border-radius: 12px;
  background: var(--bg);
  outline: 1px solid var(--line);
  outline-offset: -1px;
}
.piani__scelta button {
  display: grid;
  gap: 1px;
  align-content: center;
  min-height: 52px;
  padding: 6px 4px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--text-2);
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s;
}
.piani__scelta button em { font-family: var(--mono); font-size: 11px; font-style: normal; color: var(--accent-text); font-weight: 500; }
.piani__scelta button[aria-checked="true"] {
  background: var(--surface-3);
  color: var(--text);
  box-shadow: 0 1px 0 rgb(255 255 255 / 0.06) inset, 0 0 0 1px var(--line-strong);
}
.piani__prezzo {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 10px;
  margin-top: 26px;
  font-family: var(--mono);
}
.piani__prezzo b {
  font-family: var(--font);
  font-size: clamp(44px, 5vw, 60px);
  font-weight: 650;
  line-height: 1;
  letter-spacing: -0.045em;
  font-variant-numeric: tabular-nums;
}
.piani__prezzo span { color: var(--text-2); font-size: 14px; }
.piani__mese { margin-top: 8px; color: var(--text-2); font-size: 15px; }
.piani__mese b { color: var(--text); font-weight: 600; }
.piani .btn { margin-top: 24px; }
.piani__nota { margin-top: 14px; color: var(--text-3); font-size: 13.5px; }

/* ---------- News ---------- */

.notizie__griglia {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  align-items: start;
  gap: 16px 28px;
}
.notizia {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 14px 14px 22px;
  border-radius: var(--r-l);
  background: var(--surface);
  outline: 1px solid var(--line);
  outline-offset: -1px;
  box-shadow: var(--ombra-1);
}
.notizia__banner { aspect-ratio: 6 / 1; overflow: hidden; border-radius: 10px; background: var(--surface-3); }
.notizia__banner img { width: 100%; height: 100%; object-fit: cover; }
.notizia__corpo { padding: 0 8px; }
.notizia__meta { display: flex; align-items: center; gap: 10px; font-family: var(--mono); font-size: 12.5px; color: var(--text-3); }
.notizia h3 { margin-top: 12px; font-size: 26px; letter-spacing: -0.03em; }
.notizia h3 a:hover { color: var(--accent-text); }
.notizia p { margin-top: 8px; color: var(--text-2); }

.notizie__elenco { list-style: none; display: grid; }
.notizie__elenco li { border-top: 1px solid var(--line); }
.notizie__elenco li:first-child { border-top: 0; }
.notizie__elenco a {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  /* il riquadro che si accende al passaggio esce di 6 px, così il testo resta allineato al titolo della sezione */
  margin-inline: -6px;
  padding: 16px 6px;
  border-radius: 10px;
  transition: background-color 0.2s;
}
@media (hover: hover) { .notizie__elenco a:hover { background: var(--surface); } }
.notizie__data { font-family: var(--mono); font-size: 12.5px; color: var(--text-3); }
.notizie__titolo { overflow: hidden; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; }
.notizie__sotto { display: block; overflow: hidden; color: var(--text-2); font-size: 14px; font-weight: 400; white-space: nowrap; text-overflow: ellipsis; }

.tipo {
  height: 22px;
  padding: 0 7px;
  border-radius: 6px;
  background: var(--surface-3);
  color: var(--text-2);
  font-family: var(--mono);
  font-size: 11px;
  line-height: 22px;
  white-space: nowrap;
}
.tipo--vincitore { background: var(--accent-soft); color: var(--accent-text); }

/* ---------- Piede ---------- */

.piede { border-top: 1px solid var(--line); background: var(--bg-alt); }
.scheda-pagina .piede { margin-top: clamp(48px, 7vw, 88px); }
.piede__alto {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto;
  gap: 32px;
  padding: 48px 0 36px;
}
.piede__marchio p { margin-top: 14px; max-width: 40ch; color: var(--text-2); font-size: 14.5px; }
.piede__marchio p a { color: var(--text); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--line-strong); }
.piede__menu { display: grid; grid-template-columns: repeat(2, minmax(0, max-content)); gap: 10px 36px; align-content: start; }
.piede__menu a { color: var(--text-2); font-size: 14.5px; }
.piede__menu a:hover { color: var(--text); }
.piede__social { display: flex; gap: 8px; align-items: start; }
.piede__social a {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  border: 1px solid var(--line);
  color: var(--text-2);
  transition: color 0.2s, border-color 0.2s;
}
.piede__social a:hover { color: var(--text); border-color: var(--line-strong); }
.piede__basso {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
  padding: 18px 0 28px;
  border-top: 1px solid var(--line);
  color: var(--text-3);
  font-size: 13.5px;
}
.piede__basso nav { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.piede__basso nav a:hover { color: var(--text); }

.tema-scelta {
  display: inline-flex;
  gap: 2px;
  margin-left: auto;
  padding: 3px;
  border-radius: 10px;
  background: var(--surface);
  outline: 1px solid var(--line);
  outline-offset: -1px;
}
.tema-scelta button {
  height: 30px;
  padding: 0 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--text-2);
  font-size: 13px;
  cursor: pointer;
}
.tema-scelta button[aria-checked="true"] { background: var(--surface-3); color: var(--text); }

/* ---------- Avviso (toast) ----------
   1/11: colori invertiti rispetto alla pagina (chiaro sul tema scuro, scuro sul tema chiaro), così si vede subito.
   Icona per tipo (info, accesso, ok, errore), pulsante vero per l'azione, crocetta; sul telefono a tutta larghezza. */

.avviso {
  --av-fondo: #f6f8fc;
  --av-testo: #0c1426;
  --av-testo-2: #4a5671;
  --av-icona-fondo: #fbecc9;
  --av-icona: #7a4e00;
  position: fixed;
  left: 0;
  right: 0;
  bottom: calc(24px + env(safe-area-inset-bottom));
  z-index: var(--z-avviso);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas: "icona testo chiudi";
  align-items: center;
  column-gap: 12px;
  width: fit-content;
  min-width: min(340px, 100% - 24px);
  max-width: min(600px, 100% - 24px);
  min-height: 60px;
  margin-inline: auto;
  padding: 12px 10px 12px 12px;
  border-radius: 16px;
  background: var(--av-fondo);
  color: var(--av-testo);
  box-shadow: 0 24px 60px -16px rgb(0 0 0 / 0.8), 0 8px 20px -8px rgb(0 0 0 / 0.55);
  opacity: 0;
  transform: translateY(28px) scale(0.96);
  transform-origin: 50% 100%;
  pointer-events: none;
  transition: opacity 0.2s ease-out, transform 0.2s ease-out;
}
.avviso:empty { visibility: hidden; }
.avviso.is-visibile {
  opacity: 1;
  transform: none;
  pointer-events: auto;
  transition: opacity 0.25s ease-out, transform 0.45s cubic-bezier(0.23, 1, 0.32, 1);
}
.avviso--azione {
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  grid-template-areas: "icona testo azione chiudi";
}
.avviso--ok { --av-icona-fondo: #d9f1e1; --av-icona: #13753a; }
.avviso--errore { --av-icona-fondo: #fde2df; --av-icona: #c62828; }
:root[data-theme="light"] .avviso {
  --av-fondo: #111b2f;
  --av-testo: #f2f5fa;
  --av-testo-2: #a9b5cb;
  --av-icona-fondo: rgb(242 181 68 / 0.16);
  --av-icona: #f2b544;
  box-shadow: 0 22px 50px -14px rgb(12 20 38 / 0.55), 0 6px 16px -6px rgb(12 20 38 / 0.35);
}
:root[data-theme="light"] .avviso--ok { --av-icona-fondo: rgb(94 224 143 / 0.16); --av-icona: #6ee39a; }
:root[data-theme="light"] .avviso--errore { --av-icona-fondo: rgb(255 138 128 / 0.16); --av-icona: #ff8a80; }

.avviso__icona {
  grid-area: icona;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--av-icona-fondo);
  color: var(--av-icona);
}
.avviso__icona .icona { stroke-width: 2; }
.avviso__testo { grid-area: testo; margin: 0; text-wrap: pretty; }
.avviso__testo strong { display: block; font-size: 15px; font-weight: 600; line-height: 1.35; letter-spacing: -0.01em; }
.avviso__testo span { display: block; margin-top: 2px; color: var(--av-testo-2); font-size: 14px; line-height: 1.4; }
.avviso__azione {
  grid-area: azione;
  display: inline-flex;
  align-items: center;
  height: 38px;
  padding: 0 16px;
  border-radius: 10px;
  background: var(--accent);
  color: var(--accent-ink);
  font-size: 14.5px;
  font-weight: 600;
  white-space: nowrap;
  text-decoration: none;
  box-shadow: inset 0 0 0 1px rgb(122 78 0 / 0.18);
  transition: transform 0.16s var(--ease), background-color 0.2s;
}
.avviso__azione:active { transform: scale(0.97); }
.avviso__chiudi {
  grid-area: chiudi;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--av-testo-2);
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s, transform 0.16s var(--ease);
}
.avviso__chiudi .icona { width: 16px; height: 16px; stroke-width: 2; }
.avviso__chiudi:active { transform: scale(0.94); }
@media (hover: hover) and (pointer: fine) {
  .avviso__azione:hover { background: var(--accent-hover); }
  .avviso__chiudi:hover { background: color-mix(in oklab, var(--av-testo) 9%, transparent); color: var(--av-testo); }
}
.avviso :focus-visible { outline: 2px solid var(--av-testo); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  html:not(.mov-pieno) .avviso { transform: none; }
}
@media (max-width: 640px) {
  .avviso {
    left: 12px;
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom));
    width: auto;
    min-width: 0;
    max-width: none;
    margin: 0;
  }
  .avviso--azione {
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas: "icona testo chiudi" ". azione .";
    row-gap: 10px;
  }
  .avviso__azione { justify-self: start; }
}

/* ---------- Scheda della compagnia ---------- */

.briciole {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding-top: 24px;
  color: var(--text-3);
  font-size: 14px;
}
.briciole a:hover { color: var(--text); }

.scheda__griglia {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 28px 32px;
  margin-top: 18px;
}
.scheda__principale { min-width: 0; }

.livrea {
  position: relative;
  aspect-ratio: 6 / 1;
  overflow: hidden;
  border-radius: var(--r-l);
  background: var(--surface-3);
  box-shadow: var(--ombra-2);
  outline: 1px solid var(--line);
  outline-offset: -1px;
}
.livrea img { width: 100%; height: 100%; object-fit: cover; }
/* un banner vero con proporzioni un po' diverse da 6:1 (es. 513 x 99) si vede intero invece di tagliarsi sopra e sotto */
.livrea:has(> img) { aspect-ratio: auto; }
.livrea:has(> img) img { height: auto; }
.livrea--finta {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 0 clamp(16px, 3vw, 32px);
  background:
    linear-gradient(100deg, transparent 0 56%, hsl(var(--tinta) 55% 42% / 0.9) 56% 59%, transparent 59% 61%, hsl(var(--tinta) 60% 55% / 0.85) 61% 62.5%, transparent 62.5%),
    linear-gradient(180deg, hsl(var(--tinta) 38% 18%), hsl(var(--tinta) 42% 12%));
  color: #f2f5fb;
}
.livrea--finta b { font-family: var(--mono); font-size: clamp(22px, 3.4vw, 40px); font-weight: 500; letter-spacing: -0.04em; }
.livrea--finta span { font-size: clamp(13px, 1.4vw, 16px); color: rgb(242 245 251 / 0.72); }
.livrea--finta.livrea--mini { width: 100%; height: 100%; gap: 10px; padding: 0 14px; }
.livrea--finta.livrea--mini b { font-size: clamp(15px, 2vw, 22px); }
.livrea--finta.livrea--mini span { overflow: hidden; font-size: 12.5px; white-space: nowrap; text-overflow: ellipsis; }
.livrea .livrea--finta { width: 100%; height: 100%; }

.nota-bozza {
  margin-top: 14px;
  padding: 10px 14px;
  border: 1px solid rgb(242 181 68 / 0.25);
  border-radius: 10px;
  background: #1d1608;
  color: #f6dfab;
  font-size: 13.5px;
}

.identita { display: flex; gap: 18px; align-items: center; margin-top: 26px; }
.identita .bandiera { width: 52px; height: 52px; }
.identita .bandiera--vuota .icona { width: 24px; height: 24px; }
.identita h1 { margin-top: 8px; font-size: clamp(32px, 4.4vw, 54px); letter-spacing: -0.04em; }
.identita__motto { margin-top: 16px; max-width: 62ch; color: var(--text-2); font-size: 18px; }

.dati-chiave {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 28px;
  overflow: hidden;
  border-radius: var(--r-m);
  background: var(--surface);
  outline: 1px solid var(--line);
  outline-offset: -1px;
}
.dati-chiave > div { padding: 16px 18px; border-left: 1px solid var(--line); }
.dati-chiave > div:first-child { border-left: 0; }
.dati-chiave dt { font-family: var(--mono); font-size: 12px; color: var(--text-3); }
.dati-chiave dd {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}
.dati-chiave dd.is-bloccato { color: var(--text-3); font-size: 15px; font-weight: 500; }
.dati-chiave dd .icona { width: 16px; height: 16px; }

.blocco { margin-top: clamp(36px, 5vw, 56px); }
.blocco h2 { font-size: 24px; letter-spacing: -0.025em; }
/* Candidatura dalla scheda (Premium): un modulo corto, la risposta arriva per email */
.blocco--candidati { scroll-margin-top: calc(var(--testata-h) + 20px); }
.blocco--candidati > p { margin-top: 8px; color: var(--text-2); }
.blocco--candidati .modulo { margin-top: 16px; padding: 18px; border-radius: var(--r-l); background: var(--surface); outline: 1px solid var(--line); outline-offset: -1px; }
.blocco--candidati .successo { margin-top: 16px; }
.blocco__testa { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px 20px; }
.blocco__testa span { color: var(--text-3); font-family: var(--mono); font-size: 13px; }
.prosa { margin-top: 16px; max-width: 68ch; }
.prosa p { color: var(--text-2); font-size: 17px; line-height: 1.65; }
.prosa p + p { margin-top: 14px; }

.galleria {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 10px;
  height: clamp(260px, 32vw, 400px);
  margin-top: 18px;
}
.galleria a { position: relative; overflow: hidden; border-radius: var(--r-m); background: var(--surface-3); }
.galleria a:first-child { grid-row: span 2; }
.galleria img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease); }
.galleria a:hover img { transform: scale(1.03); }

.recensioni { list-style: none; display: grid; gap: 12px; margin-top: 18px; }
.recensione {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 14px;
  padding: 18px;
  border-radius: var(--r-m);
  background: var(--surface);
  outline: 1px solid var(--line);
  outline-offset: -1px;
}
.avatar {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: hsl(var(--tinta) 40% 26%);
  color: hsl(var(--tinta) 70% 88%);
  font-family: var(--mono);
  font-size: 14px;
  font-weight: 600;
}
:root[data-theme="light"] .avatar { background: hsl(var(--tinta) 55% 90%); color: hsl(var(--tinta) 45% 30%); }
.recensione__testa { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.recensione__testa b { font-weight: 600; }
.recensione__testa time { font-family: var(--mono); font-size: 12.5px; color: var(--text-3); }
.recensione p { margin-top: 6px; max-width: 70ch; color: var(--text-2); }

.vuoto-scheda {
  display: grid;
  justify-items: start;
  gap: 12px;
  margin-top: 18px;
  padding: 24px;
  border-radius: var(--r-m);
  border: 1px dashed var(--line-strong);
  color: var(--text-2);
}

.scheda__lato { display: grid; gap: 16px; align-content: start; min-width: 0; }

.pannello {
  padding: 20px;
  border-radius: var(--r-l);
  background: var(--surface);
  outline: 1px solid var(--line);
  outline-offset: -1px;
  box-shadow: var(--ombra-1);
}
.pannello h2 { font-size: 17px; letter-spacing: -0.015em; }
.pannello > p { margin-top: 8px; color: var(--text-2); font-size: 14.5px; }

.voto {
  background:
    radial-gradient(90% 70% at 100% 0%, rgb(242 181 68 / 0.1), transparent 60%),
    var(--surface);
  outline-color: rgb(242 181 68 / 0.25);
}
.voto__rango { display: flex; align-items: baseline; gap: 12px; }
.voto__rango b {
  font-family: var(--mono);
  font-size: 58px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.06em;
  color: var(--accent-text);
  font-variant-numeric: tabular-nums;
}
.voto__rango span { color: var(--text-2); font-size: 14.5px; line-height: 1.35; }
.voto__voti { display: flex; justify-content: space-between; margin-top: 16px; font-family: var(--mono); font-size: 13px; color: var(--text-2); }
.voto__voti b { color: var(--text); font-weight: 500; }
.voto .barra { margin-top: 8px; }
.voto .btn { margin-top: 18px; }
.voto .btn + .btn { margin-top: 10px; }
.voto__nota { display: flex; align-items: center; gap: 8px; margin-top: 14px; font-family: var(--mono); font-size: 12px; color: var(--text-3); }

.operativo { display: grid; gap: 14px; margin-top: 14px; }
.operativo dt { font-family: var(--mono); font-size: 12px; color: var(--text-3); }
.operativo dd { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.operativo dd.is-bloccato { align-items: center; color: var(--text-3); font-size: 14px; }
.operativo dd.is-bloccato .icona { width: 15px; height: 15px; }
.gettone-dato {
  padding: 4px 8px;
  border-radius: 7px;
  background: var(--surface-3);
  color: var(--text);
  font-size: 13px;
}
.gettone-dato--forte { background: var(--accent-soft); color: var(--accent-text); font-family: var(--mono); font-size: 12px; font-weight: 600; }
.operativo__nota {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px dashed var(--line-strong);
  color: var(--text-2);
  font-size: 14px;
}
.operativo__nota a { color: var(--accent-text); font-weight: 600; }

.regalo .btn { margin-top: 14px; }
/* Intervista al CEO nella scheda: la frase scelta, chi l'ha detta e l'anno */
.intervista-breve { margin-top: 12px; padding-left: 14px; border-left: 3px solid var(--accent); }
.intervista-breve p { color: var(--text); font-size: 15px; line-height: 1.5; letter-spacing: -0.005em; }
.intervista-breve footer { margin-top: 8px; color: var(--text-3); font-family: var(--mono); font-size: 12px; }

.barra-voto { display: none; }

/* ---------- Comparsa delle sezioni ---------- */

.mov-pieno .rivela {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
  transition-delay: calc(var(--i, 0) * 70ms);
}
.mov-dolce .rivela {
  opacity: 0;
  transition: opacity 0.6s ease;
  transition-delay: calc(var(--i, 0) * 50ms);
}
.rivela.visto { opacity: 1; transform: none; }

.mov-pieno .parola {
  display: inline-block;
  opacity: 0;
  transform: translateY(0.4em);
  filter: blur(6px);
  animation: parola 0.8s var(--ease) forwards;
  animation-delay: calc(120ms + var(--i) * 55ms);
}
@keyframes parola { to { opacity: 1; transform: none; filter: blur(0); } }

.mov-pieno .sottolinea path {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  animation: traccia 1.1s var(--ease) 0.9s forwards;
}
@keyframes traccia { to { stroke-dashoffset: 0; } }

.mov-pieno .barra i { animation: cresce 1.1s var(--ease) both; animation-delay: calc(200ms + var(--i, 0) * 40ms); }
@keyframes cresce { from { transform: scaleX(0); } }

/* ---------- Misure intermedie ---------- */

@media (max-width: 1180px) {
  .cerca-rapida { width: 40px; padding: 0; justify-content: center; }
  .cerca-rapida span, .cerca-rapida kbd { display: none; }
  .voce { grid-template-columns: 48px minmax(0, 1fr) minmax(0, 220px) 110px auto; }
}
/* Sopra i 1000 px c'è il menu intero: il menu a tendina, se era aperto, si chiude */
@media (min-width: 1001px) {
  .menu-telefono.is-aperto { display: none; }
}

/* Dati chiave della scheda: a 4 colonne le etichette non stanno, fra 1001 e 1100 px si va su due righe */
@media (max-width: 860px), (min-width: 1001px) and (max-width: 1100px) {
  .dati-chiave { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dati-chiave > div:nth-child(3) { border-left: 0; }
  .dati-chiave > div:nth-child(n + 3) { border-top: 1px solid var(--line); }
}

/* Tablet e giù: nessuna colonna laterale, tutto su una griglia a due colonne dove serve */
@media (max-width: 1000px) {
  .menu, .testata__azioni .link-quieto, .testata__azioni .btn { display: none; }
  .menu-apri { display: inline-flex; }
  .apertura__griglia { grid-template-columns: minmax(0, 1fr); }
  .apertura h1 { max-width: 18ch; }
  /* il tabellone prende tutta la larghezza e le tessere crescono (fino a 24 px) */
  .tabellone { --tessera-max: 24px; }
  .tabellone__testa .tabellone__schede button { min-height: 40px; }
  .tabellone__piede a { padding-block: 10px; margin-block: -10px; }
  .albo__griglia, .proprietari__griglia, .premium__griglia { grid-template-columns: minmax(0, 1fr); }
  .piani { position: static; }
  .btn--voto { --h: 40px; }

  /* righe della classifica: nome e motto sopra, simulatori sotto; voti e "Vote" occupano tutta l'altezza e stanno al centro */
  .voce {
    grid-template-columns: 44px minmax(0, 1fr) 96px auto;
    grid-template-areas:
      "pos chi voti azione"
      "pos sim voti azione";
    row-gap: 10px;
  }
  .voce__sim { padding-left: 32px; }

  /* piede: i social stanno sotto il marchio, il menu occupa la colonna di destra */
  .piede__alto { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto 1fr; row-gap: 20px; }
  .piede__marchio { grid-column: 1; grid-row: 1; }
  .piede__menu { grid-column: 2; grid-row: 1 / span 2; }
  .piede__social { grid-column: 1; grid-row: 2; align-self: start; }

  /* scheda: voto e dati operativi subito dopo i dati chiave (come sul telefono), non in fondo alla pagina */
  .scheda__griglia { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
  .scheda__principale, .scheda__lato { display: contents; }
  .scheda__griglia .livrea { order: 1; }
  .scheda__griglia .identita { order: 2; }
  .scheda__griglia .identita__motto { order: 3; }
  .scheda__griglia .dati-chiave { order: 4; }
  .scheda__griglia .voto { order: 5; margin-top: 20px; }
  .scheda__griglia .pannello--operativo { order: 6; margin-top: 20px; }
  .scheda__griglia .regalo { order: 7; margin-top: 16px; }
  .scheda__griglia .blocco--rete { order: 8; }
  .scheda__griglia .blocco--chi { order: 9; }
  .scheda__griglia .blocco--candidati { order: 9; }
  .scheda__griglia .blocco--galleria { order: 10; }
  .scheda__griglia .blocco--recensioni { order: 11; }
  .scheda__griglia .pannello--intervista { order: 12; margin-top: 32px; }
  .scheda__griglia .annuncio { order: 13; margin: 24px auto 0; }
  .scheda__griglia .pannello--distintivo { order: 14; margin-top: 16px; }
}

/* Tablet in verticale: voto e dati operativi affiancati subito dopo i dati chiave, il resto a tutta larghezza.
   L'ultima riga prima del testo è flessibile (1fr): quando "Operations" è più alto del voto, lo spazio in più va sotto il voto,
   dove sta l'intervista (che si allunga fino al bordo basso), e non fra i due riquadri. */
@media (min-width: 641px) and (max-width: 1000px) {
  .scheda__griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(5, auto) minmax(0, 1fr); column-gap: 20px; align-items: start; }
  .scheda__principale > *, .scheda__lato > * { grid-column: 1 / -1; }
  .scheda__griglia .voto { grid-column: 1; align-self: stretch; }
  .scheda__griglia .pannello--operativo { grid-column: 2; align-self: stretch; }
  .scheda__griglia:has(.pannello--intervista) .pannello--operativo { grid-row: span 2; }
  .scheda__griglia .pannello--intervista { order: 7; grid-column: 1; margin-top: 16px; align-self: stretch; display: flex; flex-direction: column; }
  .scheda__griglia .pannello--intervista > p:last-child { margin-top: auto !important; padding-top: 12px; }
  /* senza intervista (compagnie gratis) il regalo è una fascia larga sotto le due schede: niente colonna mezza vuota */
  .scheda__griglia .regalo { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 28px; }
  .scheda__griglia .regalo > h2, .scheda__griglia .regalo > p { grid-column: 1; }
  .scheda__griglia .regalo > .btn { grid-column: 2; grid-row: 1 / span 2; width: auto; margin-top: 0; padding-inline: 24px; }
  .scheda__griglia .annuncio { grid-column: 1; margin: 24px 0 0; }
  .scheda__griglia .pannello--distintivo { grid-column: 2; margin-top: 24px; }
}

@media (max-width: 860px) {
  .carta.carta--1 { grid-template-columns: minmax(0, 1fr); }
  .carta__info { padding: 0 4px 4px; }
  /* piede delle carte: simulatori sopra, "Profile" e "Vote" sotto (non il voto da solo a capo) */
  .carta__piede { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .carta__piede .sims { grid-column: 1 / -1; margin-right: 0; }
  .carta__piede .btn { --h: 44px; padding-inline: 22px; }
  .notizie__griglia { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Telefono ---------- */

@media (max-width: 640px) {
  :root { --testata-h: 58px; }
  .testata__riga { gap: 12px; }
  .testata .marchio__nome span { display: none; }
  .bozza-barra__spazio { margin-left: 0; }
  .apertura h1 { font-size: clamp(34px, 10.4vw, 46px); }
  .ricerca { padding-left: 12px; gap: 6px; }
  .ricerca .btn { padding: 0 14px; }
  .ricerca input { text-overflow: ellipsis; }
  .ricerca input::placeholder { font-size: 15px; }
  .rapide .gettone { height: 40px; padding: 0 14px; font-size: 14px; }
  .apertura .apertura__quiz { display: block; margin-top: 16px; padding-block: 8px; text-wrap: balance; }
  .apertura .apertura__quiz .icona { display: inline-block; margin-left: 6px; vertical-align: -3px; }
  /* filtri dei simulatori: "All" a tutta riga, poi due per riga, non cinque pezzi sparsi su due righe */
  [data-filtri] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  [data-filtri] .filtro { height: 40px; }
  [data-filtri] .filtro:first-child { grid-column: 1 / -1; }
  .podio { grid-template-columns: minmax(0, 1fr); }
  .carta--1 .carta__pos { font-size: 56px; }
  .carta--1 .carta__dati { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 12px; }
  .carta--1 .carta__dato span { display: block; line-height: 1.35; }
  .carta--1 .sims { display: grid; grid-template-columns: repeat(4, max-content); justify-content: start; justify-items: start; }
  .carta__azioni .btn { width: 100%; white-space: normal; height: auto; min-height: 48px; padding-block: 10px; }
  .carta__azioni .link-freccia { min-height: 44px; }
  .carta--1 .carta__nome { font-size: 23px; }
  .carta__corpo { gap: 12px; }
  .voce {
    grid-template-columns: 34px minmax(0, 1fr) auto;
    grid-template-areas:
      "pos chi voti"
      "pos sim azione";
    gap: 10px 12px;
    padding: 14px;
  }
  .voce__pos { align-self: start; font-size: 18px; padding-top: 2px; }
  /* il nome va a capo (max 2 righe) invece di tagliarsi, e i segni (Premium, in volo...) stanno sulla riga sotto, allineati al motto */
  .voce .voce__nome { flex-wrap: wrap; align-items: flex-start; row-gap: 0; }
  .voce .voce__nome .bandiera { margin-top: -1px; }
  .voce .voce__nome > a:not(.in-volo) {
    flex: 1 1 calc(100% - 32px);
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-height: 1.25;
    white-space: normal;
  }
  .voce .voce__nome .etichetta, .voce .voce__nome .in-volo { margin-top: 6px; }
  .voce__motto { padding-left: 0; }
  .voce__banner { margin-left: 0; }
  .voce__sim { padding-left: 0; align-self: center; }
  .voce__voti { align-self: start; padding-top: 2px; justify-items: end; text-align: right; }
  .voce__voti .barra { width: 72px; }
  .voce__azione .btn { --h: 40px; }
  .annuncio { height: 100px; width: min(100%, 320px); }
  .annuncio--rettangolo { height: 250px; width: min(100%, 300px); }
  .striscia { grid-template-columns: 72px minmax(0, 1fr) auto; gap: 10px; padding-inline: 12px; }
  .vantaggi { grid-template-columns: minmax(0, 1fr); }
  .piani__scelta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .distintivi { padding: 14px; }
  .distintivi__anteprima { padding: 30px 8px 22px; }
  .notizie__elenco a { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; margin-inline: 0; padding: 14px 0; }
  .notizie__data { grid-column: 1 / -1; }
  .notizia h3 { font-size: 22px; }
  .piede__alto { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; row-gap: 32px; padding-top: 36px; }
  .piede__marchio, .piede__menu, .piede__social { grid-column: 1; grid-row: auto; }
  .piede__menu { gap: 0 24px; }
  .piede__menu a { display: flex; align-items: center; min-height: 40px; }
  .piede__basso nav { gap: 0 18px; }
  .piede__basso nav a { display: inline-flex; align-items: center; min-height: 40px; }
  .tema-scelta { margin-left: 0; }
  .tema-scelta button { height: 40px; padding: 0 14px; }
  .briciole { padding-top: 12px; row-gap: 0; }
  .briciole a { display: inline-flex; align-items: center; min-height: 40px; padding-inline: 4px; margin-inline: -4px; }
  .identita { align-items: flex-start; }
  .identita .bandiera { width: 40px; height: 40px; margin-top: 6px; }
  .galleria { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: 180px 120px; height: auto; }
  .galleria a:first-child { grid-column: 1 / -1; grid-row: auto; }

  /* scheda: una colonna sola; la barra fissa in basso porta il voto, quindi i pulsanti nel riquadro spariscono */
  .scheda__griglia .voto .btn { display: none; }
  .scheda__griglia .pannello--operativo { margin-top: 16px; }
  .scheda__griglia .btn--piccolo { --h: 40px; }
  .scheda__griglia .link-freccia { min-height: 40px; }
  .pannello--distintivo .btn { width: 100%; --h: 44px; }

  /* barra fissa per votare dalla scheda */
  .scheda-pagina .piede { padding-bottom: 84px; }
  .barra-voto {
    position: fixed;
    inset: auto 0 0;
    z-index: var(--z-barra);
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr);
    gap: 10px;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
    background: color-mix(in oklab, var(--bg) 88%, transparent);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    border-top: 1px solid var(--line);
  }
  .barra-voto .btn { --h: 48px; }
  .scheda-pagina .avviso { bottom: calc(80px + env(safe-area-inset-bottom)); }
}

@media (max-width: 420px) {
  .testata__riga { gap: 12px; }
  .testata__azioni { gap: 6px; }
  .menu-apri { width: 40px; padding: 0; gap: 0; justify-content: center; }
  .menu-apri span { display: none; }
}

/* Sotto i 400 px il pulsante "Search" resta solo la freccia (il nome resta per chi usa lo screen reader), così il campo ha spazio */
@media (max-width: 400px) {
  .ricerca .btn span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

@media (max-width: 380px) {
  .tabellone { padding: 14px 12px 12px; }
  .distintivo--grande { transform: scale(1.7); margin: 20px 0; }
  /* nelle carte il nome sta accanto alla bandiera (va a capo dentro il suo spazio) e i segni vanno sulla riga sotto: mai la bandiera da sola */
  .carta__nome { align-items: flex-start; }
  .carta__nome > a { flex: 1 1 calc(100% - 32px); }
  .carta__nome .bandiera { margin-top: 2px; }
  .carta--1 .carta__nome { font-size: 21px; }
}

@media (max-width: 340px) {
  .carta--1 .carta__dati { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Schermi a dito (tablet compresi, anche in orizzontale a 1024 px): i controlli piccoli arrivano a 40 px */
@media (pointer: coarse) {
  .btn--voto, .btn--piccolo { --h: 40px; }
  .filtro { height: 40px; }
  .gettone { height: 40px; }
  .tema-scelta button { height: 40px; }
  .piede__menu a, .piede__basso nav a { display: inline-flex; align-items: center; min-height: 40px; }
  .piede__menu a { display: flex; }
  .piede__menu { gap: 0 36px; }
  .piede__basso nav { gap: 0 18px; }
  .link-freccia { min-height: 40px; }
  .link-quieto { display: inline-flex; align-items: center; min-height: 40px; }
  /* il nome nelle righe: 25 px di testo, ma l'area da toccare sale a 41 px senza spostare niente (un pezzo invisibile del link, non una scatola piu' alta) */
  .voce .voce__nome { position: relative; }
  .voce .voce__nome > a:not(.in-volo)::before { content: ""; position: absolute; inset: -8px -4px; }
  .tabellone__testa .tabellone__schede button { min-height: 40px; }
  .tabellone__piede a { display: inline-flex; align-items: center; min-height: 40px; margin-block: -12px; }
  .briciole a { display: inline-flex; align-items: center; min-height: 40px; padding-inline: 4px; margin-inline: -4px; }
}

/* ---------- Movimento ridotto senza interruttore ---------- */

@media (prefers-reduced-motion: reduce) {
  html:not(.mov-pieno) *, html:not(.mov-pieno) *::before, html:not(.mov-pieno) *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* ---------- Voli in rete: schede del tabellone, segno "in volo", blocco nella scheda (30/10) ---------- */

.tabellone__testa { flex-wrap: wrap; row-gap: 8px; }
.tabellone__schede { display: inline-flex; gap: 4px; margin: -4px 0 -4px -4px; }
.tabellone__schede button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 0 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #a9a291;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s;
}
.tabellone__schede button:hover { color: var(--tile-text); }
.tabellone__schede button[aria-selected="true"] { background: rgb(255 255 255 / 0.08); color: var(--tile-text); box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.08); }
.tabellone__schede button:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.tabellone__schede b {
  min-width: 22px;
  padding: 1px 5px;
  border-radius: 5px;
  background: rgb(242 181 68 / 0.18);
  color: var(--accent);
  font-weight: 600;
  text-align: center;
}
.tabellone__schede .pallino { width: 7px; height: 7px; }
.tabellone__info { margin-left: auto; }
@container (max-width: 450px) {
  /* le due schede riempiono la riga: "Closes in" va sotto, allineata a sinistra come l'intestazione delle colonne */
  .tabellone__info { flex-basis: 100%; margin-left: 4px; }
}
.fids-riga--in-aria .flaps--stato .flap { color: var(--accent); }

.in-volo {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent-text);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  white-space: nowrap;
}
.in-volo .pallino { width: 6px; height: 6px; }
@media (hover: hover) { .in-volo:hover { box-shadow: inset 0 0 0 1px rgb(242 181 68 / 0.45); } }
.in-volo { position: relative; }
.in-volo::after { content: ""; position: absolute; inset: -9px -4px; }

.blocco__live { display: inline-flex; align-items: center; gap: 8px; }
.blocco__live .pallino { width: 7px; height: 7px; }
.voli-mini { display: grid; gap: 8px; margin-top: 16px; padding: 0; list-style: none; }
.volo-mini {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px 16px;
  padding: 14px 16px 12px;
  border: 1px solid var(--line);
  border-radius: var(--r-m);
  background: var(--surface);
}
/* dove c'è il subgrid le righe condividono le colonne: la tratta parte sempre alla stessa distanza, anche con sigle di lunghezza diversa */
@supports (grid-template-columns: subgrid) {
  .voli-mini { grid-template-columns: auto minmax(0, 1fr) auto; column-gap: 16px; }
  .volo-mini { grid-template-columns: subgrid; grid-column: 1 / -1; }
}
.volo-mini__sigla { display: grid; font-family: var(--mono); font-size: 15px; font-weight: 600; letter-spacing: 0.02em; line-height: 1.25; }
.volo-mini__sigla small { color: var(--text-3); font-size: 11px; font-weight: 400; letter-spacing: 0.06em; }
.volo-mini__tratta { min-width: 0; color: var(--text-2); font-size: 14px; }
.volo-mini__tratta b { color: var(--text); font-family: var(--mono); font-weight: 600; }
.volo-mini__stato {
  height: 24px;
  padding: 0 9px;
  border-radius: 6px;
  background: var(--surface-3);
  color: var(--text-2);
  font-family: var(--mono);
  font-size: 11.5px;
  line-height: 24px;
  white-space: nowrap;
}
.volo-mini__stato--aria { background: var(--accent-soft); color: var(--accent-text); }
.volo-mini__barra { grid-column: 1 / -1; height: 3px; border-radius: 3px; background: var(--surface-3); overflow: hidden; }
.volo-mini__barra i { display: block; width: var(--p); height: 100%; border-radius: inherit; background: var(--accent); }
.blocco__nota { margin-top: 14px; }
.blocco--rete .vuoto-scheda b { color: var(--text); font-family: var(--mono); font-weight: 500; }

@media (max-width: 560px) {
  .voli-mini { grid-template-columns: minmax(0, 1fr); }
  .volo-mini { grid-template-columns: minmax(0, 1fr) auto; grid-column: auto; }
  .volo-mini__tratta { grid-column: 1 / -1; grid-row: 2; }
}
.apertura__quiz { margin-top: 22px; font-size: 15px; }

/* ---------- Main partner: QuizVDS (logo bianco, quindi sempre su fondo scuro) ---------- */

.partner {
  display: flex;
  align-items: center;
  gap: 14px;
  width: fit-content;
  max-width: 100%;
  margin-top: 22px;
  padding: 10px 16px 10px 10px;
  border: 1px solid var(--line);
  border-radius: var(--r-m);
  background: var(--surface);
  transition: border-color 0.2s;
}
.partner:hover { border-color: var(--line-strong); }
.partner__logo { display: grid; place-items: center; flex: none; width: 76px; height: 44px; border-radius: var(--r-s); background: #0b111d; }
.partner__logo img { width: 62px; height: auto; }
.partner__testo { display: grid; min-width: 0; line-height: 1.3; }
.partner__testo small { color: var(--text-3); font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; }
.partner__testo b { color: var(--text); font-size: 15px; }
.partner__testo span { color: var(--text-2); font-size: 13px; }

.partner-banda {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px clamp(20px, 3vw, 36px);
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  background: var(--surface);
}
.partner-banda__logo { display: grid; place-items: center; width: clamp(120px, 14vw, 168px); aspect-ratio: 2 / 1; border-radius: var(--r-l); background: radial-gradient(80% 90% at 50% 30%, #1a2846, #0b111d); }
.partner-banda__logo img { width: 72%; height: auto; }
.partner-banda h2 { margin-top: 6px; font-size: clamp(20px, 2vw, 26px); letter-spacing: -0.03em; }
.partner-banda__testo > p:last-child { margin-top: 6px; max-width: 62ch; color: var(--text-2); }
.partner-banda .btn { gap: 8px; }
.partner-banda .btn .icona { width: 16px; height: 16px; }
@media (max-width: 760px) {
  .partner-banda { grid-template-columns: minmax(0, 1fr); justify-items: start; }
  .partner-banda .btn { width: 100%; justify-content: center; }
}

/* ---------- Home: ultima intervista ai CEO ---------- */
.intervista-home { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.intervista-home__ultima { display: grid; gap: 18px; padding: 22px; border-radius: var(--r-l); background: var(--surface); outline: 1px solid var(--line); outline-offset: -1px; }
.intervista-home__banner { display: block; overflow: hidden; border-radius: var(--r-m); aspect-ratio: 6 / 1; background: var(--surface-2); }
.intervista-home__banner img, .intervista-home__banner .livrea { width: 100%; height: 100%; object-fit: cover; }
.intervista-home__testo { display: grid; gap: 12px; }
.intervista-home__testo h3 { font-size: clamp(21px, 2.2vw, 26px); letter-spacing: -0.025em; line-height: 1.2; }
.intervista-home__testo blockquote { margin: 0; padding-left: 14px; border-left: 3px solid var(--accent); color: var(--text); font-size: clamp(16px, 1.5vw, 18px); line-height: 1.5; }
.intervista-home__chi { color: var(--text-3); font-family: var(--mono); font-size: 12.5px; }
.intervista-home__altre { padding: 18px 20px; border-radius: var(--r-l); background: var(--surface); outline: 1px solid var(--line); outline-offset: -1px; }
.intervista-home__altre h3 { color: var(--text-3); font-family: var(--mono); font-size: 12.5px; font-weight: 500; letter-spacing: 0.02em; }
.intervista-home__altre ul { list-style: none; display: grid; margin-top: 6px; }
.intervista-home__altre li + li { border-top: 1px solid var(--line); }
.intervista-home__altre li a { display: grid; gap: 2px; padding: 11px 0; }
.intervista-home__altre li a b { font-weight: 600; }
.intervista-home__altre li a span { color: var(--text-2); font-size: 13.5px; }
.intervista-home__altre li a:hover b { color: var(--accent-text); }
.intervista-home__premium { margin-top: 8px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--text-2); font-size: 14px; }
.intervista-home__premium a { color: var(--accent-text); font-weight: 600; }
@media (max-width: 860px) { .intervista-home { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) { .intervista-home__ultima { padding: 16px; } }

