/* RankItalia — foglio di stile unico.
   Nessun font remoto: nessuna richiesta a Google Fonts, nessun ritardo,
   nessun problema di privacy. Palette dai mockup di progetto. */
:root{
  --blu:#1557d6; --blu-scuro:#0b2f73; --ciano:#20c8dc; --lime:#7aa90b;
  --ink:#14213d; --muted:#5d697c; --tenue:#7a8595;
  --linea:#dce3ed; --linea-tenue:#edf0f4; --sfondo:#f4f6f9; --carta:#fff;
  --ad-sfondo:#f4efff; --ad-linea:#9670df; --ad-testo:#7951c5;
  --oro:#ffd86b; --argento:#e1e5ea; --bronzo:#f4ccaf;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--sfondo);color:var(--ink);line-height:1.6;
  font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
a{color:var(--blu)}
img{max-width:100%;height:auto}
:focus-visible{outline:2px solid var(--blu);outline-offset:2px;border-radius:3px}
.contenitore{max-width:1180px;margin:0 auto;padding:0 20px}

/* intestazione */
.accento{height:5px;background:linear-gradient(90deg,var(--blu),var(--ciano),#b7e532)}
.testata{background:var(--carta);border-bottom:1px solid var(--linea)}
.testata .contenitore{display:flex;align-items:center;justify-content:space-between;
  gap:20px;padding-top:16px;padding-bottom:16px;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:8px;color:var(--blu);font-size:21px;
  font-weight:800;letter-spacing:-.7px;text-decoration:none}
.logo .punto{color:var(--lime)}
.logo-segno{display:grid;grid-template-columns:repeat(3,5px);align-items:end;gap:3px;height:22px}
.logo-segno i{display:block;border-radius:3px 3px 0 0;background:currentColor}
.logo-segno i:nth-child(1){height:9px}.logo-segno i:nth-child(2){height:15px}.logo-segno i:nth-child(3){height:21px}
.menu{display:flex;gap:20px;font-size:14px;font-weight:700}
.menu a{color:#526075;text-decoration:none}
.menu a:hover,.menu a[aria-current]{color:var(--blu)}

/* struttura */
.briciole{font-size:12px;color:var(--tenue);padding:18px 0 0}
.briciole a{color:var(--tenue)}
.griglia{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;
  align-items:start;padding:22px 0 50px}
.principale{min-width:0;background:var(--carta);border:1px solid var(--linea);
  border-radius:16px;padding:30px}
.lato{display:flex;flex-direction:column;gap:16px}
.appiccicoso{position:sticky;top:20px;display:flex;flex-direction:column;gap:16px}

/* testata articolo */
.etichetta{display:inline-block;padding:4px 10px;border-radius:99px;background:#e6efff;
  color:var(--blu);font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;text-decoration:none}
.data{margin-left:8px;color:var(--tenue);font-size:12px}
h1{font-size:clamp(1.7rem,4.2vw,2.5rem);line-height:1.13;letter-spacing:-.03em;
  margin:14px 0 0;text-wrap:balance}
.occhiello{font-size:1.06rem;color:var(--muted);margin:14px 0 0;max-width:62ch}
h2{font-size:1.35rem;margin:34px 0 10px;letter-spacing:-.015em;text-wrap:balance}
h3{font-size:1rem;margin:0 0 6px}
p{margin:0 0 12px}

/* scheda fonte */
.fatti{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;
  margin-top:22px;padding:16px 18px;border:1px solid #cfe0ff;border-radius:14px;background:#edf4ff}
.fatti div small{display:block;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.fatti div b{display:block;margin-top:2px;font-size:14px}

/* tabella classifica */
.scorri{overflow-x:auto;margin-top:16px;border:1px solid var(--linea);border-radius:14px}
table{border-collapse:collapse;width:100%;font-size:.93rem;min-width:420px}
thead th{background:#17243d;color:#fff;font-size:10px;letter-spacing:.06em;
  text-transform:uppercase;text-align:left;padding:11px 14px;white-space:nowrap}
/* L'intestazione del valore porta l'unita' di misura per esteso: in
   maiuscoletto compresso diventerebbe illeggibile. Testo normale, e
   puo' andare a capo su due righe invece di allargare la tabella. */
thead th.num{text-align:right;text-transform:none;letter-spacing:0;
  font-size:11.5px;font-weight:600;white-space:normal;max-width:190px}
tbody td{padding:11px 14px;border-bottom:1px solid var(--linea-tenue);vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
td.num{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
td.pos{width:58px}
.medaglia{display:grid;width:31px;height:31px;place-items:center;border-radius:50%;
  background:#e7efff;color:var(--blu);font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}
tr.oro .medaglia{background:var(--oro);color:#654700}
tr.argento .medaglia{background:var(--argento);color:#4d5868}
tr.bronzo .medaglia{background:var(--bronzo);color:#78421b}
.luogo b{display:block}
.luogo small{color:var(--tenue)}
.pari{font-size:10px;color:var(--tenue);font-weight:600}

/* spazi pubblicitari: riservati, mai confondibili col contenuto */
.pubblicita{display:flex;align-items:center;justify-content:center;text-align:center;
  min-height:110px;margin:26px 0;padding:16px;border:2px dashed var(--ad-linea);
  border-radius:14px;background:var(--ad-sfondo);color:var(--ad-testo)}
.pubblicita b{display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.pubblicita span{display:block;margin-top:4px;font-size:12px}
.pubblicita.alta{min-height:300px}

/* metodologia, fonte, segnalazione */
.metodo{margin-top:30px;padding-top:20px;border-top:1px solid var(--linea);font-size:.93rem;color:var(--muted)}
.metodo dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:10px 0 0}
.metodo dt{font-weight:700;color:var(--ink)}
.metodo dd{margin:0}
.segnala{margin-top:22px;padding:14px 16px;border-left:3px solid var(--ciano);
  background:#f0fbfd;border-radius:0 10px 10px 0;font-size:.9rem}
.avviso{margin-top:16px;padding:12px 15px;border-left:3px solid #d99500;
  background:#fdf6e6;border-radius:0 10px 10px 0;font-size:.9rem}

/* card correlate e riquadri laterali */
.carte{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:13px;margin-top:14px}
.carta{display:block;padding:16px;border:1px solid var(--linea);border-radius:13px;
  background:var(--carta);text-decoration:none;color:inherit}
.carta:hover{border-color:var(--blu)}
.carta small{color:var(--blu);font-weight:800;font-size:10px;letter-spacing:.06em;text-transform:uppercase}
.carta h3{margin:6px 0 0;font-size:.97rem;line-height:1.35}
.riquadro{background:var(--carta);border:1px solid var(--linea);border-radius:14px;padding:18px}
.riquadro .titolo{color:var(--blu);font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.riquadro ol{margin:10px 0 0;padding-left:20px;font-size:.9rem}
.riquadro li{margin-bottom:7px}

/* piede */
.piede{background:#111a2c;color:#aab4c5;padding:30px 0;font-size:.88rem;margin-top:10px}
.piede a{color:#cfd7e4}
.piede strong{color:#fff;display:block;margin-bottom:4px}
.piede .righe{display:flex;flex-wrap:wrap;gap:16px;margin-top:14px}
.piede .licenza{margin-top:16px;padding-top:14px;border-top:1px solid #26314a;font-size:.8rem;color:#8794a8}

@media(max-width:900px){
  .griglia{grid-template-columns:1fr;gap:22px}
  .lato{display:none}
  .principale{padding:22px 18px;border-radius:14px}
  .menu{gap:14px;font-size:13px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
