/*
 * Area Eventi (P-EVENTI): manifestazioni, edizioni, percorsi, risultati, albo d'oro, giorno di gara
 * Stili specifici dell'area. Usare i token --clr-* di app.css; prima di creare una classe
 * verificare che non esista già in app.css.
 */

/* Tutte le regole valgono solo nelle pagine di quest'area: il wrapper :where() non aggiunge specificità. */
:where(body[data-area="eventi"]) {
    /* --------------------------------------------------------------------------
       Hero dell'edizione e della manifestazione
       -------------------------------------------------------------------------- */
    .hero--edizione { min-height: 64vh; }
    .hero--senza-foto {
        background:
            radial-gradient(circle at 85% 15%, rgba(216, 154, 63, 0.28), transparent 45%),
            radial-gradient(circle at 10% 90%, rgba(177, 90, 43, 0.25), transparent 50%),
            var(--clr-blu-profondo);
    }
    .hero__anno { color: var(--clr-ocra); }

    .hero-numeri {
        list-style: none;
        margin: 0 0 1.5rem;
        padding: 0;
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem 1.75rem;
    }
    .hero-numeri li { display: inline-flex; align-items: baseline; gap: 0.3rem; }
    .hero-numeri__valore {
        font-family: var(--font-titoli);
        font-size: 2.6rem;
        font-weight: 700;
        line-height: 1;
        color: #FFFFFF;
        font-variant-numeric: tabular-nums;
    }
    .hero-numeri__unita { font-size: 0.9rem; color: rgba(255, 255, 255, 0.8); }

    .hero-scheda__iscrizioni {
        display: flex;
        gap: 0.5rem;
        align-items: flex-start;
        margin-top: 0.85rem;
        font-size: 0.9rem;
        line-height: 1.45;
    }
    .hero-scheda__iscrizioni .material-symbols-outlined { color: var(--clr-ocra); margin-top: 0.1rem; }
    .hero-scheda .countdown { margin-top: 0.25rem; }

    /* Barra sotto l'hero: breadcrumb, edizioni vicine, lingua */
    .edizione-barra {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: center;
        gap: 0.75rem 1.5rem;
        padding: 1rem 0 0.5rem;
    }
    .edizione-barra .breadcrumb { margin: 0; }
    .edizione-barra__strumenti { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }

    .naviga-edizioni {
        display: inline-flex;
        align-items: center;
        border: 1px solid var(--clr-border);
        border-radius: 0.375rem;
        background: var(--clr-surface);
        overflow: hidden;
    }
    .naviga-edizioni a, .naviga-edizioni__corrente {
        display: inline-flex;
        align-items: center;
        gap: 0.2rem;
        padding: 0.4rem 0.75rem;
        min-height: 40px;
        font-family: var(--font-mono);
        font-size: 0.875rem;
        font-weight: 500;
        text-decoration: none;
        color: var(--clr-blu);
    }
    .naviga-edizioni a:hover { background: var(--clr-surface-alt); }
    .naviga-edizioni a + *, .naviga-edizioni__corrente + * { border-left: 1px solid var(--clr-divider); }
    .naviga-edizioni__corrente { background: var(--clr-blu); color: #FFFFFF; }

    .selettore-lingua {
        display: inline-flex;
        border: 1px solid var(--clr-border);
        border-radius: 0.375rem;
        overflow: hidden;
        background: var(--clr-surface);
    }
    .selettore-lingua__voce {
        padding: 0.4rem 0.7rem;
        min-height: 40px;
        min-width: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 0.8rem;
        font-weight: 600;
        letter-spacing: 0.06em;
        color: var(--clr-text-muted);
        text-decoration: none;
    }
    .selettore-lingua__voce + .selettore-lingua__voce { border-left: 1px solid var(--clr-divider); }
    .selettore-lingua__voce.attiva { background: var(--clr-area-surface); color: var(--clr-area); }
    a.selettore-lingua__voce:hover { background: var(--clr-surface-alt); color: var(--clr-blu); }

    /* Navigazione di sezione ancorata */
    .nav-sezioni-contenitore {
        position: sticky;
        top: var(--header-h);
        z-index: 30;
        background: rgba(250, 248, 244, 0.97);
        border-bottom: 1px solid var(--clr-divider);
    }
    .nav-sezioni-contenitore .nav-sezioni { border-bottom: 0; }
    .pagina-edizione section[id], .pagina-edizione [id="patrocini"] { scroll-margin-top: calc(var(--header-h) + 3.5rem); }

    .titolo-sezione--piccolo { font-size: 1.35rem; }

    .nota-ufficiale {
        max-width: 40rem;
        display: flex;
        gap: 0.5rem;
        align-items: flex-start;
        font-size: 0.85rem;
        color: var(--clr-text-muted);
        background: var(--clr-surface);
        border: 1px solid var(--clr-border-accent);
        border-radius: 0.375rem;
        padding: 0.6rem 0.85rem;
    }
    .nota-ufficiale .material-symbols-outlined { color: var(--clr-ocra-testo); margin-top: 0.1rem; }

    .riquadro-dati dd.riquadro-dati__testo { font-family: var(--font-testo); font-weight: 400; }
    .riquadro-dati .form-text .material-symbols-outlined { font-size: 1em; vertical-align: -0.12em; }

    /* --------------------------------------------------------------------------
       Percorsi: schede, mappa, punti notevoli, altimetria
       -------------------------------------------------------------------------- */
    .percorsi__schede { gap: 0.5rem; flex-wrap: wrap; }
    .percorsi__schede .nav-link { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 500; min-height: 44px; }
    .percorsi__km {
        font-family: var(--font-mono);
        font-size: 0.8rem;
        color: var(--clr-text-muted);
        padding-left: 0.35rem;
        border-left: 1px solid var(--clr-divider);
    }
    .percorsi__schede .nav-link.active .percorsi__km { color: rgba(255, 255, 255, 0.8); border-left-color: rgba(255, 255, 255, 0.3); }
    .scheda-percorso__riquadro { background: var(--clr-surface); }
    .fascia--sabbia .scheda-percorso__riquadro { background: var(--clr-surface); }
    .scheda-percorso__riquadro--testo .numero-manifesto__valore { font-size: 2rem; }

    .mappa-percorso {
        position: relative;
        aspect-ratio: 4 / 3;
        border: 1px solid var(--clr-border);
        border-radius: 0.5rem;
        overflow: hidden;
        background: var(--clr-bg);
    }
    .mappa-percorso__statica, .mappa-percorso__leaflet { position: absolute; inset: 0; }
    .mappa-percorso__statica svg { width: 100%; height: 100%; display: block; }
    .mappa-percorso--interattiva .mappa-percorso__statica { visibility: hidden; }
    .mappa-percorso__leaflet { z-index: 1; font-family: var(--font-testo); }
    .mappa-percorso .leaflet-popup-content { font-size: 0.85rem; margin: 0.6rem 0.85rem; }
    .mappa-percorso .leaflet-container a { color: var(--clr-blu); }

    .marcatore-mappa {
        width: 28px;
        height: 28px;
        border-radius: 50%;
        border: 3px solid #FFFFFF;
        box-shadow: 0 1px 4px rgba(27, 31, 36, 0.35);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font: 700 12px/1 var(--font-testo);
        color: #FFFFFF;
        background: var(--clr-area);
    }
    .marcatore-mappa--partenza { background: var(--clr-success); font-size: 9px; }
    .marcatore-mappa--traguardo_volante { background: var(--clr-warning); border-radius: 4px; font-size: 9px; }

    .punti-notevoli { list-style: none; margin: 0; padding: 0; }
    .punti-notevoli__voce {
        display: flex;
        align-items: center;
        gap: 0.6rem;
        padding: 0.45rem 0;
        border-bottom: 1px solid var(--clr-divider);
        font-size: 0.875rem;
    }
    .punti-notevoli__voce:last-child { border-bottom: 0; }
    .punti-notevoli__segno {
        width: 26px;
        height: 26px;
        flex: none;
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: var(--clr-surface-alt);
        color: var(--clr-text-muted);
        font-weight: 700;
        font-size: 0.75rem;
    }
    .punti-notevoli__segno .material-symbols-outlined { font-size: 1rem; }
    .punti-notevoli__voce--ristoro .punti-notevoli__segno { background: var(--clr-area); color: #FFFFFF; }
    .punti-notevoli__voce--partenza .punti-notevoli__segno,
    .punti-notevoli__voce--arrivo .punti-notevoli__segno { background: var(--clr-success-bg); color: var(--clr-success); }
    .punti-notevoli__voce--traguardo_volante .punti-notevoli__segno { background: var(--clr-warning-bg); color: var(--clr-warning); border-radius: 0.25rem; }
    .punti-notevoli__nome { flex: 1; }
    .punti-notevoli__km { white-space: nowrap; font-size: 0.82rem; }

    .didascalia .material-symbols-outlined { font-size: 1em; vertical-align: -0.12em; }

    .altimetria {
        margin: 0;
        background: var(--clr-surface);
        border: 1px solid var(--clr-border);
        border-radius: 0.5rem;
        padding: 1rem 1.25rem 0.85rem;
    }
    .altimetria__intestazione {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        gap: 0.25rem 1rem;
        margin-bottom: 0.5rem;
    }
    .altimetria__titolo {
        font-size: 0.8rem;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: var(--clr-text-muted);
        display: inline-flex;
        align-items: center;
        gap: 0.35rem;
    }
    .altimetria__legenda { font-size: 0.8rem; color: var(--clr-text-muted); }
    .altimetria__legenda .dati-gara { font-size: 0.8rem; }
    .altimetria__chiave--ristoro {
        display: inline-block;
        width: 9px;
        height: 9px;
        border-radius: 50%;
        border: 2px solid var(--clr-area);
        margin-right: 0.25rem;
    }
    .altimetria__grafico { position: relative; }
    .altimetria__svg { display: block; width: 100%; height: auto; touch-action: pan-y; cursor: crosshair; }
    .altimetria__svg:focus-visible { outline: 0; box-shadow: var(--focus-ring); border-radius: 0.25rem; }
    .altimetria__tooltip {
        position: absolute;
        transform: translate(-50%, calc(-100% - 12px));
        background: var(--clr-blu);
        color: #FFFFFF;
        font-family: var(--font-mono);
        font-size: 0.78rem;
        font-weight: 500;
        padding: 0.25rem 0.5rem;
        border-radius: 0.25rem;
        white-space: nowrap;
        pointer-events: none;
        box-shadow: var(--shadow-elevato);
    }
    .altimetria__lettura { color: var(--clr-text-muted); margin-top: 0.35rem; }

    /* --------------------------------------------------------------------------
       Programma (linea del tempo) e luoghi
       -------------------------------------------------------------------------- */
    .timeline { list-style: none; margin: 0; padding: 0; position: relative; }
    .timeline__voce {
        display: grid;
        grid-template-columns: 3.5rem 2.25rem 1fr;
        align-items: start;
        gap: 0 0.5rem;
        position: relative;
        padding-bottom: 1rem;
    }
    .timeline__voce::before {
        content: '';
        position: absolute;
        left: calc(3.5rem + 0.5rem + 1.125rem - 1px);
        top: 2.25rem;
        bottom: 0;
        width: 2px;
        background: var(--clr-divider);
    }
    .timeline__voce:last-child::before { display: none; }
    .timeline__ora { padding-top: 0.45rem; text-align: right; color: var(--clr-blu); font-size: 0.95rem; }
    .timeline__punto {
        width: 2.25rem;
        height: 2.25rem;
        border-radius: 50%;
        background: var(--clr-surface);
        border: 2px solid var(--clr-border);
        color: var(--clr-text-muted);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        position: relative;
        z-index: 1;
    }
    .timeline__punto .material-symbols-outlined { font-size: 1.1rem; }
    .timeline__voce--partenza .timeline__punto { border-color: var(--clr-area); background: var(--clr-area-surface); color: var(--clr-area); }
    .timeline__voce--partenza .timeline__ora { color: var(--clr-area); }
    .timeline__corpo { padding-top: 0.4rem; }
    .timeline__descrizione { display: block; font-size: 0.875rem; color: var(--clr-text-muted); }

    .lista-luoghi { list-style: none; margin: 0; padding: 0; }
    .lista-luoghi li {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        padding: 0.75rem 0;
        border-bottom: 1px solid var(--clr-divider);
    }
    .lista-luoghi li > .material-symbols-outlined { color: var(--clr-area); font-size: 1.5rem; }
    .lista-luoghi div { flex: 1; }
    .lista-luoghi strong, .lista-luoghi span { display: block; }
    .lista-luoghi div span { font-size: 0.875rem; color: var(--clr-text-muted); }

    /* --------------------------------------------------------------------------
       Iscrizioni, quote, piattaforme
       -------------------------------------------------------------------------- */
    .box-apertura {
        display: flex;
        flex-wrap: wrap;
        gap: 1rem 1.25rem;
        align-items: center;
        background: var(--clr-surface);
        border: 1px solid var(--clr-border);
        border-left: 4px solid var(--clr-warning);
        border-radius: 0.5rem;
        padding: 1rem 1.25rem;
    }
    .box-apertura__icona { font-size: 2rem; color: var(--clr-warning); }
    .box-apertura__testo { flex: 1 1 22rem; }
    .box-apertura__testo strong { display: block; font-family: var(--font-titoli); font-size: 1.4rem; font-weight: 600; text-transform: uppercase; color: var(--clr-blu); }
    .box-apertura__testo span { font-size: 0.9rem; color: var(--clr-text-muted); }
    .box-apertura__azioni { display: flex; flex-direction: column; align-items: flex-start; gap: 0.4rem; }
    .link-anteprima { font-size: 0.78rem; color: var(--clr-text-muted); }

    .quota--scaduta td { color: var(--clr-text-muted); }
    .quota--vigente td { font-weight: 600; }
    .quota__maggiorazione { display: block; font-size: 0.75rem; color: var(--clr-warning); font-weight: 500; }
    .form-text .material-symbols-outlined, .small > .material-symbols-outlined, p.small .material-symbols-outlined { font-size: 1.05em; vertical-align: -0.15em; }

    .lista-categorie { list-style: none; padding: 0; margin: 0 0 1rem; }
    .lista-categorie li { display: flex; gap: 0.5rem; padding: 0.35rem 0; font-size: 0.9rem; }
    .lista-categorie .material-symbols-outlined { color: var(--clr-success); }

    .piattaforma--aperta { border-color: rgba(47, 125, 82, 0.5); }
    .piattaforma__nome { font-family: var(--font-titoli); font-size: 1.35rem; font-weight: 700; text-transform: uppercase; color: var(--clr-blu); margin: 0; }
    .piattaforma__per { font-size: 0.85rem; color: var(--clr-text-muted); }
    .piattaforma__gare { list-style: none; padding: 0; margin: 0.5rem 0 0.75rem; }
    .piattaforma__gare li { padding: 0.55rem 0; border-top: 1px solid var(--clr-divider); }
    .piattaforma__gara { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; flex-wrap: wrap; font-size: 0.9rem; }
    .piattaforma__id { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.8rem; color: var(--clr-text-muted); }
    .piattaforma__id .mono { font-size: 0.95rem; font-weight: 500; color: var(--clr-text); background: var(--clr-surface-alt); padding: 0.1rem 0.4rem; border-radius: 0.25rem; }
    .piattaforma__finestra { font-size: 0.8rem; color: var(--clr-text-muted); display: flex; align-items: center; gap: 0.35rem; flex-wrap: wrap; }

    /* Patrocini */
    .patrocini__tipo { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--clr-text-muted); margin: 1rem 0 0.5rem; }
    .patrocini { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: 0.6rem; }
    .patrocini__voce {
        display: flex;
        align-items: center;
        gap: 0.6rem;
        background: var(--clr-surface);
        border: 1px solid var(--clr-border);
        border-radius: 0.375rem;
        padding: 0.6rem 0.75rem;
        font-size: 0.9rem;
        font-weight: 500;
    }
    .patrocini__stemma {
        width: 36px;
        height: 36px;
        border-radius: 50%;
        flex: none;
        background: rgba(216, 154, 63, 0.16);
        color: var(--clr-ocra-testo);
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    /* --------------------------------------------------------------------------
       Giorno di gara, risultati, cronaca, referenti
       -------------------------------------------------------------------------- */
    .giorno-gara__testo { max-width: 60ch; }
    .giorno-gara__punti { list-style: none; padding: 0; margin: 0 0 1.5rem; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }
    .giorno-gara__punti li { display: inline-flex; gap: 0.4rem; align-items: center; color: #FFFFFF; font-weight: 500; }
    .giorno-gara__punti .material-symbols-outlined { color: var(--clr-ocra); }
    .qr-anteprima {
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        gap: 0.6rem;
        background: #FFFFFF;
        border-radius: 0.5rem;
        padding: 1.25rem 1.25rem 0.85rem;
        border-top: 4px solid var(--clr-ocra);
    }
    .qr-anteprima img { width: 180px; height: 180px; }
    .qr-anteprima__url { font-size: 0.72rem; color: var(--clr-text-muted); max-width: 220px; word-break: break-all; }

    .podio-lista { list-style: none; padding: 0; margin: 0; }
    .podio-lista__voce {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        padding: 0.65rem 1.25rem;
        border-bottom: 1px solid var(--clr-divider);
    }
    .podio-lista__voce:last-child { border-bottom: 0; }
    .podio-lista__voce--squadra { background: rgba(47, 109, 79, 0.07); }
    .podio-lista__voce--squadra .podio-lista__nome { font-weight: 600; }
    .podio-lista .podio, .podio-lista .posizione { min-width: 2.75rem; font-family: var(--font-mono); font-weight: 500; }
    .podio-lista__nome { flex: 1; font-size: 0.9rem; }
    .podio-lista__societa { display: block; font-size: 0.78rem; color: var(--clr-text-muted); font-weight: 400; }
    .podio-lista .tempo { font-size: 0.85rem; }

    .articolo-correlato {
        display: flex;
        align-items: flex-start;
        gap: 0.6rem;
        padding: 0.75rem 0;
        border-top: 1px solid var(--clr-divider);
        text-decoration: none;
        color: var(--clr-text);
    }
    .articolo-correlato:hover strong { color: var(--clr-blu); text-decoration: underline; }
    .articolo-correlato .material-symbols-outlined { color: var(--clr-area); }
    .cronaca-foto { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
    .cronaca-foto .figura:first-child { grid-column: 1 / -1; }
    .cronaca-foto img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
    .cronaca-foto .figura:first-child img { aspect-ratio: 16 / 9; }

    .referente .card-body { display: flex; gap: 1rem; align-items: flex-start; }
    .referente .avatar { background: var(--clr-area-surface); color: var(--clr-area); flex: none; }
    .referente__nome { font-family: var(--font-titoli); font-size: 1.2rem; font-weight: 600; margin: 0; color: var(--clr-text); }
    .referente__ruolo { font-size: 0.85rem; color: var(--clr-text-muted); margin: 0 0 0.5rem; }
    .referente__contatto { display: flex; align-items: center; gap: 0.4rem; min-height: 36px; font-size: 0.9rem; text-decoration: none; }
    .referente__contatto:hover { text-decoration: underline; }
    .condividi { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.5rem; }

    /* --------------------------------------------------------------------------
       Elenco manifestazioni e pagina della manifestazione
       -------------------------------------------------------------------------- */
    .prossima-evidenza {
        display: flex;
        align-items: center;
        gap: 1.25rem;
        padding: 1.15rem 1.25rem;
        text-decoration: none;
        color: var(--clr-text);
        flex-direction: row;
        flex-wrap: wrap;
    }
    .prossima-evidenza__data {
        flex: none;
        width: 5rem;
        text-align: center;
        background: var(--clr-area-surface);
        border: 1px solid var(--clr-area-border);
        border-radius: 0.5rem;
        padding: 0.5rem 0.25rem;
    }
    .prossima-evidenza__giorno { display: block; font-family: var(--font-titoli); font-size: 2.4rem; font-weight: 700; line-height: 1; color: var(--clr-area); }
    .prossima-evidenza__mese { display: block; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--clr-area); }
    .prossima-evidenza__corpo { flex: 1 1 18rem; }
    .prossima-evidenza__titolo { font-family: var(--font-titoli); font-size: 1.6rem; font-weight: 700; text-transform: uppercase; color: var(--clr-blu); margin: 0 0 0.25rem; }
    .prossima-evidenza__dati { display: flex; flex-direction: column; align-items: flex-start; gap: 0.35rem; }
    .prossima-evidenza__freccia { font-size: 1.75rem; color: var(--clr-blu); }

    .filtri-eventi { display: flex; flex-wrap: wrap; gap: 0.5rem; }
    .filtri-eventi .btn { min-height: 40px; }
    .filtri-eventi .btn.attivo { background: var(--clr-blu); border-color: var(--clr-blu); color: #FFFFFF; }
    .filtri-eventi__n {
        font-family: var(--font-mono);
        font-size: 0.75rem;
        background: rgba(27, 31, 36, 0.08);
        border-radius: 999px;
        padding: 0 0.45rem;
    }
    .filtri-eventi .btn.attivo .filtri-eventi__n { background: rgba(255, 255, 255, 0.2); }

    .numeri-evento { list-style: none; padding: 0; margin: 0 0 0.75rem; display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; font-size: 0.82rem; color: var(--clr-text-muted); }
    .card-evento__nota { font-size: 0.8rem; color: var(--clr-text-muted); margin: 0.5rem 0 0; font-style: italic; }

    .storia { list-style: none; padding: 0; margin: 0; border-left: 2px solid var(--clr-area-border); }
    .storia__tappa { display: grid; grid-template-columns: 4.5rem 1fr; gap: 0.75rem; padding: 0 0 1.25rem 1rem; position: relative; }
    .storia__tappa::before {
        content: '';
        position: absolute;
        left: -7px;
        top: 0.45rem;
        width: 12px;
        height: 12px;
        border-radius: 50%;
        background: var(--clr-area);
        border: 2px solid var(--clr-bg);
    }
    .storia__anno { font-family: var(--font-titoli); font-size: 1.5rem; font-weight: 700; color: var(--clr-area); line-height: 1.1; }
    .storia__tappa p { font-size: 0.92rem; color: var(--clr-text-muted); line-height: 1.55; }

    .prossima-edizione__titolo { font-family: var(--font-titoli); font-size: 1.5rem; font-weight: 700; text-transform: uppercase; color: var(--clr-blu); margin: 0 0 0.25rem; }
    .prossima-edizione .numero-manifesto__valore { font-size: 2.2rem; }

    .crescita { margin: 0; }
    .crescita__svg { display: block; width: 100%; height: auto; font-family: var(--font-testo); }
    .crescita__barra:focus-visible { outline: 0; }
    .crescita__barra:focus-visible path { stroke: var(--clr-ocra); stroke-width: 3; }

    .albo-link { display: flex; align-items: center; gap: 0.85rem; padding: 1rem 1.25rem; text-decoration: none; color: var(--clr-text); flex-direction: row; }
    .albo-link__icona { font-size: 2rem; color: var(--clr-oro); }

    .archivio-edizione__dati, .archivio-edizione__vincitori { list-style: none; padding: 0; margin: 0 0 0.5rem; font-size: 0.85rem; }
    .archivio-edizione__dati { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; color: var(--clr-text-muted); }
    .archivio-edizione__dati .material-symbols-outlined { font-size: 1em; vertical-align: -0.12em; }
    .archivio-edizione__vincitori li { display: flex; align-items: center; gap: 0.35rem; padding: 0.3rem 0; border-top: 1px solid var(--clr-divider); flex-wrap: wrap; }
    .archivio-edizione__vincitori .material-symbols-outlined { color: var(--clr-oro); font-size: 1.1rem; }
    .archivio-edizione__vincitori .tempo { margin-left: auto; font-size: 0.8rem; }

    /* --------------------------------------------------------------------------
       Calendario
       -------------------------------------------------------------------------- */
    .calendario-barra { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; margin: 1.5rem 0 2rem; }
    .calendario-stagioni { display: inline-flex; border: 1px solid var(--clr-border); border-radius: 0.375rem; overflow: hidden; background: var(--clr-surface); }
    .calendario-stagioni__voce { padding: 0.5rem 1rem; min-height: 44px; display: inline-flex; align-items: center; font-family: var(--font-mono); font-weight: 500; text-decoration: none; color: var(--clr-blu); }
    .calendario-stagioni__voce + .calendario-stagioni__voce { border-left: 1px solid var(--clr-divider); }
    .calendario-stagioni__voce.attiva { background: var(--clr-blu); color: #FFFFFF; }

    .calendario-mese { margin-bottom: 2rem; }
    .calendario-mese__titolo {
        font-family: var(--font-titoli);
        font-size: 1.35rem;
        font-weight: 600;
        text-transform: uppercase;
        color: var(--clr-blu);
        padding-bottom: 0.4rem;
        border-bottom: 2px solid var(--clr-divider);
        margin-bottom: 0.75rem;
    }
    .calendario-lista { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.75rem; }
    .calendario-voce {
        display: grid;
        grid-template-columns: 4.25rem 1fr auto;
        gap: 1rem;
        align-items: start;
        background: var(--clr-surface);
        border: 1px solid var(--clr-border);
        border-left: 4px solid var(--clr-area);
        border-radius: 0.5rem;
        padding: 0.9rem 1rem;
    }
    .calendario-voce--squadra { border-left-color: #2F6D4F; }
    .calendario-voce--passata { opacity: 0.85; }
    .calendario-voce--provvisoria { border-style: dashed; border-left-style: solid; }
    .calendario-voce__data { text-align: center; background: var(--clr-surface-alt); border-radius: 0.375rem; padding: 0.4rem 0.25rem; }
    .calendario-voce__data--vuota { display: flex; align-items: center; justify-content: center; min-height: 3.6rem; color: var(--clr-text-muted); }
    .calendario-voce__giorno { display: block; font-family: var(--font-titoli); font-size: 2rem; font-weight: 700; line-height: 1; color: var(--clr-blu); }
    .calendario-voce__dow { display: block; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--clr-text-muted); }
    .calendario-voce__badge { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-bottom: 0.35rem; }
    .calendario-voce__nome { font-family: var(--font-titoli); font-size: 1.3rem; font-weight: 600; margin: 0 0 0.2rem; }
    .calendario-voce__nome a { color: var(--clr-text); text-decoration: none; }
    .calendario-voce__nome a:hover { color: var(--clr-blu); text-decoration: underline; }
    .calendario-voce__meta { display: flex; flex-wrap: wrap; gap: 0.15rem 1rem; font-size: 0.85rem; color: var(--clr-text-muted); margin: 0; }
    .calendario-voce__meta .material-symbols-outlined { font-size: 1em; vertical-align: -0.12em; }
    .calendario-voce__meta .dati-gara { font-size: 0.82rem; color: var(--clr-text-muted); }
    .calendario-voce__esito { margin: 0.4rem 0 0; font-size: 0.85rem; color: #2F6D4F; display: flex; align-items: center; gap: 0.35rem; }
    .calendario-voce__azioni { display: flex; flex-direction: column; gap: 0.35rem; align-items: stretch; }
    .codice-copiabile--piccolo { font-size: 0.8rem; padding: 0.5rem 0.65rem; word-break: break-all; }
    .legenda-calendario { list-style: none; padding: 0; margin: 0; font-size: 0.85rem; color: var(--clr-text-muted); }
    .legenda-calendario li { padding: 0.35rem 0; }
    .legenda-calendario .badge { margin-right: 0.35rem; }

    /* --------------------------------------------------------------------------
       Albo d'oro e risultati
       -------------------------------------------------------------------------- */
    .albo-tabella th, .albo-tabella td { vertical-align: top; }
    .albo-tabella__anno a { text-decoration: none; }
    .albo-tabella__numero { font-family: var(--font-titoli); font-size: 1.6rem; font-weight: 700; color: var(--clr-blu); line-height: 1; }
    .albo-tabella__vincitore { font-weight: 600; }
    .albo-tabella__vincitore--squadra { color: #2F6D4F; }
    .albo-tabella__mancante { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.82rem; color: var(--clr-warning); font-style: italic; }
    .plurivincitore__n {
        width: 3rem;
        height: 3rem;
        border-radius: 50%;
        flex: none;
        background: rgba(176, 138, 50, 0.15);
        color: var(--clr-oro);
        font-family: var(--font-titoli);
        font-size: 1.6rem;
        font-weight: 700;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .naviga-edizioni--chiara { background: var(--clr-surface); }
    .fonte-import { font-size: 0.85rem; color: var(--clr-text-muted); display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; text-align: right; }
    .fonte-import > .material-symbols-outlined { color: var(--clr-info); }
    .fonte-import .d-block { flex-basis: 100%; }
    .risultati-strumenti { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.75rem; }
    .risultati-strumenti .nav-link { display: inline-flex; align-items: center; gap: 0.35rem; min-height: 40px; }
    .cerca-nome { position: relative; min-width: 16rem; }
    .cerca-nome .material-symbols-outlined { position: absolute; left: 0.6rem; top: 50%; transform: translateY(-50%); color: var(--clr-text-muted); font-size: 1.1rem; }
    .cerca-nome .form-control { padding-left: 2.1rem; min-height: 40px; }
    .classifica .podio .material-symbols-outlined { font-size: 1.1rem; }
    .classifica .societa { color: var(--clr-text-muted); }
    .badge-rettifica { cursor: help; text-transform: none; letter-spacing: 0; }
    .stato-vuoto.card { padding: 2.5rem 1.5rem; }
    .stato-vuoto--curato { border-left: 4px solid var(--clr-warning); }
    .stato-vuoto--curato > .material-symbols-outlined { color: var(--clr-warning); }
    .stato-vuoto--curato p { max-width: 60ch; margin-left: auto; margin-right: auto; }

    /* --------------------------------------------------------------------------
       Regolamento
       -------------------------------------------------------------------------- */
    .regolamento-azioni { position: sticky; top: calc(var(--header-h) + 1rem); display: flex; flex-direction: column; gap: 0.75rem; }
    .regolamento-indice { background: var(--clr-surface-alt); border: 1px solid var(--clr-divider); border-radius: 0.5rem; padding: 0.85rem 1rem; }
    .regolamento-indice ol { margin: 0; padding-left: 1.25rem; font-size: 0.875rem; }
    .regolamento-indice li { padding: 0.15rem 0; }
    .regolamento .accordion-button { font-family: var(--font-testo); }
    .regolamento .accordion-body ul { padding-left: 1.25rem; }

    /* --------------------------------------------------------------------------
       Pagina inglese
       -------------------------------------------------------------------------- */
    .info-pratica__titolo { font-family: var(--font-titoli); font-size: 1.3rem; font-weight: 600; text-transform: uppercase; color: var(--clr-blu); display: flex; align-items: center; gap: 0.5rem; }
    .info-pratica__titolo .material-symbols-outlined { color: var(--clr-area); }
    .info-pratica__lista { padding-left: 1.1rem; margin: 0; font-size: 0.92rem; line-height: 1.6; }
    .info-pratica__lista li { margin-bottom: 0.4rem; }

    /* --------------------------------------------------------------------------
       Codici QR stampabili
       -------------------------------------------------------------------------- */
    .foglio-qr { margin-bottom: 3rem; }
    .foglio-qr__testa { margin-bottom: 1rem; }
    .foglio-qr__titolo { font-family: var(--font-titoli); font-size: 1.5rem; font-weight: 600; text-transform: uppercase; color: var(--clr-blu); display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.25rem; }
    .foglio-qr__n { width: 2rem; height: 2rem; border-radius: 50%; background: var(--clr-ocra); color: var(--clr-text); display: inline-flex; align-items: center; justify-content: center; font-size: 1.1rem; }
    .foglio-qr__a4 {
        background: #FFFFFF;
        border: 1px solid var(--clr-border);
        box-shadow: var(--shadow-hover);
        width: 100%;
        max-width: 794px;
        aspect-ratio: 210 / 297;
        margin: 0 auto;
        padding: 4%;
        overflow: hidden;
    }
    .foglio-qr__a4--adesivi { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(6, 1fr); gap: 2%; }
    .adesivo-qr {
        border: 1px dashed var(--clr-border-strong);
        border-radius: 0.375rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 0.2rem;
        text-align: center;
        padding: 0.25rem;
    }
    .adesivo-qr img { width: 62%; height: auto; }
    .adesivo-qr__testo { font-size: clamp(0.45rem, 1.1vw, 0.62rem); font-weight: 600; line-height: 1.1; }
    .adesivo-qr__gara { font-size: clamp(0.4rem, 0.9vw, 0.55rem); color: var(--clr-text-muted); line-height: 1.1; }
    .foglio-qr__a4--volantini { display: grid; grid-template-rows: 1fr 1fr; gap: 0; padding: 0; }
    .volantino-qr { padding: 5% 7%; display: flex; flex-direction: column; justify-content: center; border-bottom: 1px dashed var(--clr-border-strong); }
    .volantino-qr:last-child { border-bottom: 0; }
    .volantino-qr__testa { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: clamp(0.6rem, 1.4vw, 0.85rem); color: var(--clr-text-muted); border-bottom: 3px solid var(--clr-ocra); padding-bottom: 0.5rem; }
    .volantino-qr__testa img { width: 18%; height: auto; }
    .volantino-qr__titolo { font-family: var(--font-titoli); font-size: clamp(1.2rem, 3.6vw, 2.2rem); font-weight: 700; text-transform: uppercase; color: var(--clr-blu); margin: 0.75rem 0 0.15rem; line-height: 1; }
    .volantino-qr__data { font-size: clamp(0.65rem, 1.6vw, 1rem); font-weight: 600; margin: 0 0 0.75rem; }
    .volantino-qr__corpo { display: flex; gap: 6%; align-items: center; }
    .volantino-qr__corpo img { width: 36%; height: auto; flex: none; }
    .volantino-qr__invito { font-size: clamp(0.7rem, 1.8vw, 1.1rem); margin: 0 0 0.5rem; }
    .volantino-qr__corpo ul { margin: 0; padding-left: 1.1rem; font-size: clamp(0.6rem, 1.5vw, 0.9rem); }
    .volantino-qr__url { font-family: var(--font-mono); font-size: clamp(0.5rem, 1.2vw, 0.75rem); color: var(--clr-text-muted); margin: 0.75rem 0 0; word-break: break-all; }
    .cartello-qr { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; border-top: 12px solid var(--clr-blu); }
    .cartello-qr__occhiello { font-size: clamp(0.7rem, 1.8vw, 1.1rem); font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: var(--clr-area); margin: 0; }
    .cartello-qr__titolo { font-family: var(--font-titoli); font-size: clamp(1.6rem, 5vw, 3.2rem); font-weight: 700; text-transform: uppercase; color: var(--clr-blu); line-height: 1; margin: 0.5rem 0 1.5rem; }
    .cartello-qr__codice { width: 55%; height: auto; }
    .cartello-qr__testo { font-size: clamp(0.75rem, 1.9vw, 1.15rem); max-width: 30ch; margin: 1.5rem 0 0.5rem; }
    .cartello-qr__url { font-family: var(--font-mono); font-size: clamp(0.55rem, 1.3vw, 0.8rem); color: var(--clr-text-muted); word-break: break-all; }
    .cartello-qr__logo { width: 22%; height: auto; margin-top: 1rem; }

    /* --------------------------------------------------------------------------
       Responsive
       -------------------------------------------------------------------------- */
    @media (max-width: 991.98px) {
        .regolamento-azioni { position: static; }
    }

    @media (max-width: 767.98px) {
        .hero--edizione { min-height: 0; }
        .hero-numeri { gap: 0.35rem 1.1rem; }
        .hero-numeri__valore { font-size: 2rem; }
        .nav-sezioni-contenitore { top: var(--header-h); }
        .calendario-voce { grid-template-columns: 3.6rem 1fr; }
        .calendario-voce__azioni { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; }
        .prossima-evidenza__freccia { display: none; }
        .mappa-percorso { aspect-ratio: 1 / 1; }
        .fonte-import { text-align: left; }
        .cerca-nome { min-width: 0; width: 100%; }
        .edizione-barra__strumenti { width: 100%; justify-content: space-between; }
    }

    /* --------------------------------------------------------------------------
       Stampa: regolamento, classifiche, codici QR, pagina edizione
       -------------------------------------------------------------------------- */
    @media print {
        .nav-sezioni-contenitore, .edizione-barra, .no-print, .condividi, .box-apertura__azioni, .altimetria__lettura,
        .regolamento-azioni, .cerca-nome, .risultati-strumenti .nav, .dropdown, .foglio-qr__testa { display: none !important; }

        .regolamento .accordion-collapse, .tab-content > .tab-pane { display: block !important; opacity: 1 !important; height: auto !important; visibility: visible !important; }
        .regolamento .accordion-button::after { display: none; }
        .regolamento .accordion-item { break-inside: avoid; border-color: #888 !important; }
        .pagina-regolamento .col-lg-8 { width: 100%; }

        .mappa-percorso__leaflet { display: none !important; }
        .mappa-percorso--interattiva .mappa-percorso__statica { visibility: visible; }
        .mappa-percorso { aspect-ratio: auto; height: 9cm; }

        .hero--edizione .hero-scheda { border: 1px solid #888; background: none; color: #000; }
        .hero-numeri__valore, .hero-numeri__unita { color: #000; }

        .pagina-qr .contenuto-pagina { padding: 0; }
        .foglio-qr { margin: 0; break-after: page; }
        .foglio-qr:last-child { break-after: auto; }
        .foglio-qr__a4 { box-shadow: none; border: 0; max-width: none; width: 18cm; height: 27cm; aspect-ratio: auto; padding: 0; }
        &.pagina-qr::after { display: none; }
        .adesivo-qr__testo { font-size: 6.5pt; }
        .adesivo-qr__gara { font-size: 5.5pt; }
        .volantino-qr__titolo { font-size: 24pt; }
        .volantino-qr__invito { font-size: 12pt; }
        .volantino-qr__corpo ul { font-size: 10pt; }
        .cartello-qr__titolo { font-size: 34pt; }
        .cartello-qr__testo { font-size: 13pt; }
    }

    /* Occhielli con icona nell'area Eventi */
    & .occhiello { display: inline-flex; align-items: center; gap: 0.35rem; }
    .stato-vuoto .btn { display: inline-flex; }
    .stato-vuoto .btn .material-symbols-outlined { font-size: 1.1em; display: inline-block; margin: 0; color: inherit; }
    .crescita__svg { max-width: 380px; margin: 0 auto; }
}
