:root{--bg:#fff;--alt:#edf3fa;--ink:#191919;--muted:#455a64;--brand:#004aab;--bar:#004aab;--gold:#d97e00;--card:#fff;--line:#d5dfe9}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:64px}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 Verdana,Arial,sans-serif}
h1,h2,h3,.btn,nav,.kicker,time,th{font-family:Verdana,Arial,sans-serif}
.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:12px max(16px,calc((100% - 1100px)/2));background:var(--bar);color:#fff}
.brand{display:flex;align-items:center;gap:10px;color:#fff;font:700 1.15rem Verdana,Arial,sans-serif;text-decoration:none}
.brand{min-width:0;line-height:1.2}
.brand img{height:44px;width:auto;flex:none}
.stemma{display:block;margin:0 auto 20px;height:clamp(140px,28vw,212px);width:auto}
.hdr-right{display:flex;align-items:center;gap:18px;flex:none}
nav{display:flex;gap:18px}
nav a{color:#fff;text-decoration:none;font-size:.95rem}
nav a:hover{text-decoration:underline}
.burger{display:none;background:none;border:0;font-size:1.6rem;color:#fff;cursor:pointer}
.hero{text-align:center;padding:72px 16px 64px;background:radial-gradient(circle at 50% 0,var(--alt),var(--bg) 70%)}
.kicker{text-transform:uppercase;letter-spacing:.18em;font-size:.8rem;color:var(--brand);margin:0 0 12px}
h1{font-size:clamp(2.6rem,9vw,5.5rem);line-height:1;margin:0 0 20px;color:var(--brand)}
.hero .date{margin:-8px 0 20px;font-weight:700;color:var(--brand);font-size:1.1rem}
.lead{max-width:36rem;margin:0 auto 32px;color:var(--muted);font-size:1.15rem}
.cta{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.btn{display:inline-block;padding:12px 24px;border-radius:999px;border:2px solid var(--brand);color:var(--brand);text-decoration:none;font-weight:600}
.btn.primary{background:var(--brand);color:#fff}
.btn:hover{opacity:.85}
.wrap{padding:64px max(16px,calc((100% - 960px)/2))}
.alt{background:var(--alt)}
h2{font-size:2rem;margin:0 0 20px;color:var(--brand)}
h2::after{content:"";display:block;width:56px;height:3px;background:var(--gold);margin-top:8px}
h3{margin:0 0 6px;font-size:1.1rem}
.muted{color:var(--muted)}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.cards{list-style:none;padding:0;margin:32px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.cards li,.rione{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px}
.cards p,.rione p{margin:0;color:var(--muted);font-size:.95rem}
.timeline{list-style:none;padding:0;margin:28px 0 0;border-left:3px solid var(--gold)}
.timeline li{display:flex;gap:20px;padding:0 0 24px 20px}
.timeline time{min-width:100px;font-weight:700;color:var(--brand)}
.timeline p{margin:0;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.rione{border-top:6px solid var(--c);overflow:hidden}
.dot{display:inline-block;width:14px;height:14px;border-radius:50%;background:var(--c);margin-bottom:8px}
table{width:100%;border-collapse:collapse;background:var(--card);border-radius:10px;overflow:hidden}
th,td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line)}
th{background:var(--brand);color:#fff}
th:last-child,td:last-child{text-align:right}
footer{text-align:center;padding:28px 16px;background:var(--bar);color:#fff;font-size:.9rem}
@media (max-width:960px){
  .burger{display:block}
  nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--bar)}
  nav.open{display:flex}
  nav a{padding:14px 16px;border-top:1px solid rgba(255,255,255,.25)}
}
@media (max-width:720px){
  .cols{grid-template-columns:1fr}
  .timeline li{flex-direction:column;gap:2px}
}
#archivio h3{margin:28px 0 10px}
[hidden]{display:none!important}

.mappa-box{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:24px;align-items:start;margin:24px 0 32px}
.mappa{width:100%;height:auto;background:var(--alt);border:1px solid var(--line);border-radius:10px}
.zona{stroke:#fff;stroke-width:3;stroke-linejoin:round;cursor:pointer;transition:filter .15s}
.zona:hover,.zona:focus{filter:brightness(1.12);outline:none}
.zona.scelta{filter:brightness(1.08)}
#evidenza{fill:none;stroke:#fff;stroke-width:6;stroke-linejoin:round;pointer-events:none;filter:drop-shadow(0 0 5px rgba(0,0,0,.6))}
.zona:focus-visible{stroke:var(--gold);stroke-width:6}
.etichetta{fill:#fff;font-family:Verdana,Arial,sans-serif;font-weight:700;text-anchor:middle;dominant-baseline:middle;pointer-events:none;paint-order:stroke;stroke:rgba(0,0,0,.35);stroke-width:3px;stroke-linejoin:round}
.etichetta.scura{fill:#222;stroke:rgba(255,255,255,.6)}
.scheda-titolo{display:flex;align-items:center;gap:12px}
.scheda-stemma{width:64px;height:64px;object-fit:contain;flex-shrink:0}
.mappa-scheda{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px;min-height:140px}
.mappa-scheda h3{margin:0 0 10px;font-size:1.3rem}
.mappa-scheda dl{margin:14px 0 0}
.mappa-scheda dt{font:600 .8rem Verdana,Arial,sans-serif;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:10px}
.mappa-scheda dd{margin:2px 0 0;font-weight:600}
.rione{cursor:pointer;transition:box-shadow .15s,transform .15s}
.rione:hover{box-shadow:0 4px 14px rgba(0,74,171,.15);transform:translateY(-2px)}
@media (max-width:720px){.mappa-box{grid-template-columns:1fr}}

/* Giochi: una scheda per gioco con classifica e dettaglio */
#giochi-elenco{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:20px;margin-top:20px}
.gioco{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px}
.gioco h3{margin:0 0 4px;color:var(--brand);font-size:1.25rem}
.gioco .muted{margin:0 0 14px;font-size:.9rem}
.gioco .nota-parziale{margin:-6px 0 14px;font-size:.9rem;font-style:italic;color:var(--muted)}
.gioco table{margin-bottom:12px}
.gioco details{border-top:1px solid var(--line);padding-top:10px}
.gioco summary{cursor:pointer;color:var(--brand);font-weight:700}
.gioco h4{margin:14px 0 4px;font-size:.95rem}
.gioco ul{margin:0;padding-left:18px;font-size:.9rem}
.dot-mini{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}
.logo-mini{display:inline-block;width:24px;height:24px;object-fit:contain;margin-right:8px;vertical-align:middle}
.logo-rione{display:block;width:60px;height:60px;object-fit:contain;margin-bottom:8px}

/* Calendario a settimane e classifica a matrice */
#calendario h3{margin:28px 0 10px;color:var(--brand)}
.tab-scroll{overflow-x:auto}
table.calendario{min-width:640px;font-size:.92rem}
table.calendario td,table.calendario th{text-align:left;padding:9px 12px}
table.calendario th:last-child,table.calendario td:last-child{text-align:left}
table.calendario tr.nuovo-giorno td{border-top:3px solid var(--line)}
table.calendario td.evento{font-weight:700;color:var(--gold)}
table.calendario td.gioco-nome{font-weight:700}
#classifica{overflow-x:auto}
table.matrice th.num,table.matrice td.num{text-align:center}
table.matrice td.tot{font-weight:700;text-align:right}
table.matrice th:last-child{text-align:right}
table.calendario{table-layout:fixed}
table.calendario th:nth-child(1){width:11%}
table.calendario th:nth-child(2){width:7%}
table.calendario th:nth-child(3){width:8%}
table.calendario th:nth-child(4){width:26%}
table.calendario th:nth-child(5){width:22%}
table.calendario .nota{font-weight:400;font-size:.8rem;color:var(--muted);margin-top:2px}

/* Sponsor: loghi su tessere bianche */
.sponsor-loghi{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;margin-top:20px}
.sponsor-logo{display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;height:110px;transition:box-shadow .15s,transform .15s}
a.sponsor-logo:hover{box-shadow:0 4px 14px rgba(0,74,171,.15);transform:translateY(-2px)}
.sponsor-logo img{max-width:100%;max-height:100%;object-fit:contain}

/* foto dei rioni a carosello in cima alla scheda (a tutta larghezza, sotto la striscia colorata) */
.carosello{margin:-20px -20px 14px;position:relative}
.carosello-foto{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab}
.carosello-foto::-webkit-scrollbar{display:none}
.carosello-foto img{flex:0 0 100%;width:100%;aspect-ratio:16/9;object-fit:cover;scroll-snap-align:start;display:block}
.carosello-punti{display:flex;justify-content:center;gap:6px;padding-top:8px}
.carosello-punti button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:var(--line);cursor:pointer}
.carosello-punti button.attivo{background:var(--c,#004aab);transform:scale(1.25)}
