.territori-participation-hero{position:relative;overflow:hidden;background:radial-gradient(circle at 84% 22%,rgba(242,199,92,.32),transparent 26%),linear-gradient(128deg,#0b2544 0%,#0d5e82 58%,#15999c 100%)}
.territori-participation-hero:after{content:"";position:absolute;right:-8vw;bottom:-16rem;width:38rem;height:38rem;border:1px solid rgba(255,255,255,.13);border-radius:50%;box-shadow:0 0 0 4rem rgba(255,255,255,.035),0 0 0 8rem rgba(255,255,255,.025);pointer-events:none}
.territori-participation-hero .app-shell{position:relative;z-index:1}
.territori-participation-hero h1{max-width:980px!important;font-size:clamp(2.8rem,6.5vw,6.6rem)!important;line-height:.93!important}
.territori-participation-hero p:not(.campaign-kicker){max-width:820px!important;font-size:clamp(1rem,2vw,1.2rem)!important;line-height:1.7}
.territori-hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.territori-action{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.8rem 1.15rem;border:1px solid transparent;border-radius:14px;font-weight:900;letter-spacing:.02em;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.territori-action:hover{transform:translateY(-2px)}
.territori-action--light{background:#f2c75c;color:#0b2544;box-shadow:0 12px 28px rgba(3,20,36,.22)}
.territori-action--ghost{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.09);color:#fff;backdrop-filter:blur(8px)}
.territori-action--primary{background:linear-gradient(135deg,#0c678a,#15999c);color:#fff;box-shadow:0 12px 28px rgba(12,103,138,.22)}
.territori-covered-section{padding:clamp(1.2rem,3vw,2.4rem) 0 4rem;background:linear-gradient(180deg,#eef7f8 0%,#f7fafc 38%,#fff 100%)}
.territori-covered-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:1.2rem}
.territori-covered-head>div:first-child{max-width:820px}
.territori-covered-head h2{margin:.1rem 0 .45rem;color:#102f50;font-size:clamp(1.75rem,3vw,3.1rem);letter-spacing:-.04em}
.territori-covered-head p:not(.campaign-kicker){margin:0;color:#587083;line-height:1.7}
.territori-covered-total{flex:0 0 auto;display:grid;min-width:170px;padding:1rem 1.2rem;border:1px solid rgba(15,95,120,.12);border-radius:20px;background:#fff;box-shadow:0 12px 35px rgba(20,62,88,.09);text-align:right}
.territori-covered-total strong{color:#0d708d;font-size:2.3rem;line-height:1}
.territori-covered-total span{margin-top:.3rem;color:#6b7f8e;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.territori-my-town{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:.9rem 1rem;border-radius:18px;background:linear-gradient(120deg,#102f50,#0d708d);color:#fff;box-shadow:0 15px 34px rgba(16,47,80,.15)}
.territori-my-town div{display:flex;align-items:baseline;flex-wrap:wrap;gap:.45rem .7rem}.territori-my-town span{color:#f2c75c;font-weight:900;text-transform:uppercase;font-size:.68rem;letter-spacing:.08em}.territori-my-town strong{font-size:1.12rem}.territori-my-town small{color:rgba(255,255,255,.72)}
.territori-my-town a{display:inline-flex;align-items:center;min-height:40px;padding:.55rem .8rem;border-radius:11px;background:#f2c75c;color:#102f50;font-weight:900;text-decoration:none;white-space:nowrap}
.territori-covered-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:stretch}
.territori-covered-map-card,.territori-directory{min-width:0;border:1px solid rgba(24,85,111,.12);border-radius:24px;background:#fff;box-shadow:0 18px 48px rgba(31,73,95,.11);overflow:hidden}
.territori-covered-map-card{position:relative;display:flex;flex-direction:column;min-height:690px}
.territori-covered-map-card__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border-bottom:1px solid #e4edf1;background:linear-gradient(135deg,#f8fbfc,#eef7f8)}
.territori-covered-map-card__head span,.territori-covered-map-card__head strong{display:block}.territori-covered-map-card__head>div>span{color:#15999c;font-size:.67rem;font-weight:900;text-transform:uppercase;letter-spacing:.09em}.territori-covered-map-card__head strong{margin-top:.15rem;color:#143a5a;font-size:.92rem}
.territori-map-key{display:inline-flex!important;align-items:center;gap:.4rem;color:#536b7d;font-size:.72rem;font-weight:800;white-space:nowrap}.territori-map-key i{width:14px;height:14px;border-radius:4px;background:#1f91a7;border:1px solid #0f5577}
.territori-covered-map{flex:1;min-height:620px;background:#dfecef}.territori-covered-map.has-error{display:grid;place-items:center;padding:2rem;color:#526c7c;text-align:center}
.territori-covered-loader{position:absolute;inset:70px 0 0;z-index:700;display:flex;align-items:center;justify-content:center;gap:.65rem;background:rgba(240,248,249,.88);color:#174664;font-weight:850}.territori-covered-loader[hidden]{display:none}
.territori-map-tooltip strong,.territori-map-tooltip span{display:block}.territori-map-tooltip strong{color:#102f50;font-size:.85rem}.territori-map-tooltip span{margin-top:.15rem;color:#0d7d91;font-size:.68rem;font-weight:800}
.territori-directory{display:flex;flex-direction:column;min-height:690px;padding:1rem}
.territori-directory__top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.territori-directory__eyebrow{color:#15999c;font-size:.66rem;font-weight:900;text-transform:uppercase;letter-spacing:.09em}.territori-directory__top h2{margin:.15rem 0 0;color:#102f50;font-size:1.55rem;letter-spacing:-.03em}.territori-directory__count{flex:0 0 auto;padding:.42rem .65rem;border-radius:999px;background:#e8f4f6;color:#0d708d;font-size:.7rem;font-weight:900}
.territori-search{display:flex;align-items:center;gap:.6rem;margin-top:.9rem;padding:.18rem .25rem .18rem .75rem;border:2px solid #cfe1e6;border-radius:15px;background:#f8fbfc;transition:border-color .18s ease,box-shadow .18s ease}.territori-search:focus-within{border-color:#15999c;box-shadow:0 0 0 4px rgba(21,153,156,.12)}.territori-search svg{width:20px;height:20px;fill:none;stroke:#0d708d;stroke-width:2;stroke-linecap:round}.territori-search input{min-width:0;flex:1;height:46px;border:0!important;outline:0!important;background:transparent!important;color:#143a5a;font-size:1rem!important;box-shadow:none!important}.territori-search button{width:38px;height:38px;border:0;border-radius:10px;background:#e5eff2;color:#31596f;font-size:1.3rem;line-height:1;cursor:pointer}
.territori-province-tabs{display:flex;gap:.42rem;margin-top:.8rem;padding-bottom:.25rem;overflow-x:auto;scrollbar-width:thin}.territori-province-tabs button{display:inline-flex;align-items:center;gap:.38rem;min-height:38px;padding:.48rem .68rem;border:1px solid #d8e4e9;border-radius:11px;background:#fff;color:#4c6576;font-size:.73rem;font-weight:900;white-space:nowrap;cursor:pointer}.territori-province-tabs button span{display:grid;place-items:center;min-width:22px;height:22px;padding:0 .25rem;border-radius:999px;background:#edf3f5;color:#5a7180;font-size:.63rem}.territori-province-tabs button.is-active{border-color:#0d708d;background:#0d708d;color:#fff}.territori-province-tabs button.is-active span{background:#f2c75c;color:#102f50}
.territori-directory__status{margin:.45rem 0;color:#758997;font-size:.7rem;line-height:1.45}.territori-directory__results{position:relative;flex:1;min-height:0;overflow-y:auto;padding:.2rem .15rem .2rem 0}.territori-directory__results.is-loading:after{content:"";position:absolute;inset:0;z-index:5;background:rgba(255,255,255,.72);backdrop-filter:blur(1px)}
.territori-directory-list{display:grid;gap:.62rem}.territori-directory-card{padding:.78rem;border:1px solid #dce8ed;border-radius:17px;background:linear-gradient(145deg,#fff,#f8fbfc);transition:transform .17s ease,border-color .17s ease,box-shadow .17s ease}.territori-directory-card:hover,.territori-directory-card:focus-within,.territori-directory-card.is-map-selected{transform:translateY(-1px);border-color:#70bfc4;box-shadow:0 10px 24px rgba(21,95,115,.11)}.territori-directory-card.is-mine{border-color:#e2b74c;background:linear-gradient(145deg,#fffdf4,#fff7dc)}.territori-directory-card.is-uncovered{border-style:dashed;border-color:#d69a76;background:#fff9f5}
.territori-directory-card__identity{display:flex;align-items:center;gap:.72rem}.territori-directory-card__emblem{flex:0 0 50px;width:50px;height:50px;display:grid;place-items:center;overflow:hidden;border:1px solid #dce8ed;border-radius:14px;background:#fff;color:#0d708d;font-size:.66rem;font-weight:900}.territori-directory-card__emblem img{width:100%;height:100%;object-fit:contain;padding:4px}.territori-directory-card__identity>div{min-width:0}.territori-directory-card__status{display:block;color:#15999c;font-size:.6rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.is-uncovered .territori-directory-card__status{color:#c66c3e}.territori-directory-card h3{margin:.12rem 0 0;color:#123653;font-size:1rem;line-height:1.18}.territori-directory-card p{margin:.18rem 0 0;color:#718593;font-size:.72rem}
.territori-directory-card__actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;margin-top:.62rem;padding-top:.58rem;border-top:1px solid #e5eef1}.territori-directory-card__actions button,.territori-directory-card__actions a,.territori-directory-card__call a{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:.42rem .6rem;border:0;border-radius:9px;font-size:.68rem;font-weight:900;text-decoration:none;cursor:pointer}.territori-directory-card__actions button{background:#e9f4f6;color:#0d708d}.territori-directory-card__actions a{background:#123f61;color:#fff}.territori-directory-card__call{margin-top:.65rem;padding:.65rem;border-radius:12px;background:#fff0e7}.territori-directory-card__call p{margin:0 0 .45rem;color:#8b4e2f}.territori-directory-card__call a{width:100%;background:#d96f3f;color:#fff}
.territori-directory-pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem;margin-top:.75rem}.territori-directory-pagination button{min-width:34px;height:34px;border:1px solid #d6e4e9;border-radius:9px;background:#fff;color:#31596f;font-size:.72rem;font-weight:900;cursor:pointer}.territori-directory-pagination button.is-active{border-color:#0d708d;background:#0d708d;color:#fff}.territori-directory-empty{display:grid;place-items:center;min-height:260px;padding:1.4rem;text-align:center;border:1px dashed #cadbe1;border-radius:18px;background:#f8fbfc}.territori-directory-empty__mark{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#e8f4f6;color:#0d708d;font-size:1.5rem;font-weight:900}.territori-directory-empty h3{margin:.7rem 0 .2rem;color:#123653}.territori-directory-empty p{max-width:340px;margin:0 0 .8rem;color:#6f8492;line-height:1.6}
.territori-final-call{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-top:1.2rem;padding:clamp(1.2rem,3vw,2rem);border-radius:24px;background:radial-gradient(circle at 88% 20%,rgba(242,199,92,.25),transparent 28%),linear-gradient(125deg,#102f50,#0d708d);color:#fff;box-shadow:0 18px 44px rgba(16,47,80,.16)}.territori-final-call>div{max-width:780px}.territori-final-call h2{margin:.15rem 0 .45rem;color:#fff;font-size:clamp(1.55rem,3vw,2.8rem);letter-spacing:-.04em}.territori-final-call p:not(.campaign-kicker){margin:0;color:rgba(255,255,255,.76);line-height:1.7}.territori-final-call .territori-action{flex:0 0 auto;background:#f2c75c;color:#102f50}
@media (max-width:991.98px){.territori-covered-head{align-items:flex-start}.territori-covered-grid{grid-template-columns:1fr}.territori-covered-map-card{min-height:auto}.territori-covered-map{min-height:460px}.territori-directory{min-height:auto}.territori-directory__results{max-height:none;overflow:visible}.territori-final-call{align-items:flex-start;flex-direction:column}.territori-final-call .territori-action{width:100%}}
@media (max-width:575.98px){.territori-participation-hero h1{font-size:clamp(2.55rem,14vw,4rem)!important}.territori-hero-actions{display:grid;grid-template-columns:1fr}.territori-covered-section{padding-top:.8rem}.territori-covered-head{display:grid;gap:.8rem}.territori-covered-total{min-width:0;width:100%;text-align:left}.territori-my-town{align-items:flex-start;flex-direction:column}.territori-my-town a{width:100%;justify-content:center}.territori-covered-map-card,.territori-directory{border-radius:18px}.territori-covered-map-card__head{align-items:flex-start;flex-direction:column}.territori-covered-map{min-height:390px}.territori-directory{padding:.8rem}.territori-directory__top h2{font-size:1.3rem}.territori-directory__count{font-size:.64rem}.territori-search{padding-left:.6rem}.territori-search input{font-size:16px!important}.territori-province-tabs{margin-left:-.8rem;margin-right:-.8rem;padding-left:.8rem;padding-right:.8rem}.territori-directory-card__actions{display:grid;grid-template-columns:1fr 1fr}.territori-directory-card__actions button,.territori-directory-card__actions a{width:100%}.territori-final-call{border-radius:18px}}

/* Territori: filtri della mappa contributi affiancati a mappa e dettaglio. */
.territory-workspace-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1rem;
    align-items:start;
}
.territory-filter-card,
.territory-workspace-map-card,
.territory-workspace-detail-card{
    min-width:0;
    border:1px solid rgba(30,77,105,.14);
    border-radius:22px;
    background:#fff;
    box-shadow:0 16px 42px rgba(24,64,88,.10);
    overflow:hidden;
}
.territory-filter-card__header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.8rem;
    padding:1rem;
    border-bottom:1px solid #e3edf1;
    background:linear-gradient(135deg,#102f50,#0d708d);
    color:#fff;
}
.territory-filter-card__eyebrow{
    display:block;
    color:#f2c75c;
    font-size:.64rem;
    font-weight:900;
    letter-spacing:.09em;
    text-transform:uppercase;
}
.territory-filter-card__header h2{
    margin:.15rem 0 0;
    color:#fff;
    font-size:1.2rem;
    line-height:1.15;
}
.territory-filter-toggle{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.4rem;
    min-height:38px;
    padding:.45rem .65rem;
    border:1px solid rgba(255,255,255,.28);
    border-radius:10px;
    background:rgba(255,255,255,.10);
    color:#fff;
    font-size:.7rem;
    font-weight:900;
    cursor:pointer;
}
.territory-filter-toggle:hover,
.territory-filter-toggle:focus-visible{
    background:rgba(255,255,255,.18);
    outline:2px solid rgba(242,199,92,.75);
    outline-offset:2px;
}
.territory-filter-toggle__icon{
    font-size:1rem;
    line-height:1;
}
.territory-filter-card__body{
    padding:1rem;
}
.territory-filter-card__body[hidden]{display:none!important}
.territory-filter-card.is-collapsed .territory-filter-card__header{border-bottom:0}
.territory-filter-stack{
    display:grid;
    gap:.85rem;
}
.territory-filter-field .form-label{
    display:block;
    margin-bottom:.35rem;
    color:#274b65;
    font-size:.72rem;
    font-weight:900;
}
.territory-filter-field .select2-container,
.territory-filter-field .form-select{
    width:100%!important;
}
.territory-map-metrics--vertical{
    display:block;
    margin-top:1rem;
    padding-top:1rem;
    border-top:1px solid #e4edf1;
}
.territory-map-metrics--vertical .territory-map-metrics__intro{
    margin-bottom:.65rem;
}
.territory-map-metrics--vertical .territory-map-metrics__intro strong,
.territory-map-metrics--vertical .territory-map-metrics__intro span{
    display:block;
}
.territory-map-metrics--vertical .territory-map-metrics__intro strong{
    color:#173e5d;
    font-size:.86rem;
}
.territory-map-metrics--vertical .territory-map-metrics__intro span{
    margin-top:.2rem;
    color:#728794;
    font-size:.68rem;
    line-height:1.45;
}
.territory-metric-switch--vertical{
    display:grid;
    grid-template-columns:1fr;
    gap:.4rem;
}
.territory-metric-switch--vertical button{
    width:100%;
    min-height:38px;
    padding:.5rem .7rem;
    border:1px solid #d9e6eb;
    border-radius:10px;
    background:#f8fbfc;
    color:#31596f;
    font-size:.7rem;
    font-weight:900;
    text-align:left;
    cursor:pointer;
}
.territory-metric-switch--vertical button.is-active{
    border-color:#0d708d;
    background:#0d708d;
    color:#fff;
    box-shadow:0 8px 18px rgba(13,112,141,.17);
}
.territory-legend--compact{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.42rem .55rem;
    margin-top:1rem;
    padding-top:1rem;
    border-top:1px solid #e4edf1;
}
.territory-legend--compact>span{
    grid-column:1/-1;
    color:#244c68;
    font-size:.67rem;
    font-weight:900;
    line-height:1.4;
}
.territory-legend--compact>div{
    display:flex;
    align-items:center;
    gap:.35rem;
    min-width:0;
}
.territory-legend--compact i{
    flex:0 0 13px;
    width:13px;
    height:13px;
    border-radius:4px;
}
.territory-legend--compact small{
    color:#677f8f;
    font-size:.62rem;
    line-height:1.2;
}
.territory-filter-card__footer{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:.7rem;
    margin-top:1rem;
    padding-top:1rem;
    border-top:1px solid #e4edf1;
}
.territory-filter-card__footer .map-status{
    flex:1;
    color:#667e8e;
    font-size:.68rem;
    line-height:1.45;
}
.territory-filter-card__footer .btn{
    flex:0 0 auto;
}
.territory-workspace-map-card{
    position:relative;
    min-height:620px;
    display:flex;
    flex-direction:column;
}
.territory-workspace-map-card .territory-map-note{
    flex:0 0 auto;
}
.territory-workspace-map-card .territory-map{
    flex:1;
    min-height:565px;
    height:auto!important;
}
.territory-workspace-detail-card{
    min-height:620px;
    height:auto!important;
}
.territory-workspace-detail-card .empty-panel{
    min-height:618px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:1.35rem;
    text-align:center;
}

/* Province leggibili per esteso e paginazione server-side compatta. */
.territori-province-tabs button{
    padding:.5rem .78rem;
    font-size:.72rem;
}
.territori-directory-pagination button:disabled{
    opacity:.38;
    cursor:not-allowed;
}
.territori-directory-pagination__ellipsis{
    display:grid;
    place-items:center;
    min-width:22px;
    color:#7c909d;
    font-weight:900;
}

@media (max-width:1199.98px){
    .territory-workspace-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .territory-filter-card{
        grid-column:1/-1;
    }
    .territory-workspace-map-card,
    .territory-workspace-detail-card{
        min-height:540px;
    }
    .territory-workspace-map-card .territory-map{
        min-height:485px;
    }
    .territory-workspace-detail-card .empty-panel{
        min-height:538px;
    }
    .territory-filter-stack{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .territory-metric-switch--vertical{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .territory-legend--compact{
        grid-template-columns:repeat(5,minmax(0,1fr));
    }
    .territory-legend--compact>span{
        grid-column:1/-1;
    }
}

@media (max-width:767.98px){
    .territory-workspace-grid{
        grid-template-columns:1fr;
        gap:.85rem;
    }
    .territory-filter-card,
    .territory-workspace-map-card,
    .territory-workspace-detail-card{
        grid-column:auto;
        border-radius:18px;
    }
    .territory-filter-card__header{
        padding:.85rem;
    }
    .territory-filter-card__header h2{
        font-size:1.05rem;
    }
    .territory-filter-toggle{
        min-height:44px;
        padding:.55rem .7rem;
        font-size:.72rem;
    }
    .territory-filter-card__body{
        padding:.85rem;
    }
    .territory-filter-stack,
    .territory-metric-switch--vertical,
    .territory-legend--compact{
        grid-template-columns:1fr;
    }
    .territory-filter-field .select2-selection,
    .territory-filter-field .form-select{
        min-height:46px!important;
        font-size:16px!important;
    }
    .territory-metric-switch--vertical button{
        min-height:44px;
        font-size:.76rem;
    }
    .territory-legend--compact{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .territory-filter-card__footer{
        align-items:stretch;
        flex-direction:column;
    }
    .territory-filter-card__footer .btn{
        width:100%;
        min-height:44px;
    }
    .territory-workspace-map-card,
    .territory-workspace-detail-card{
        min-height:auto;
    }
    .territory-workspace-map-card .territory-map{
        min-height:390px;
    }
    .territory-workspace-detail-card .empty-panel{
        min-height:330px;
        padding:1.1rem;
    }
    .territori-province-tabs{
        gap:.5rem;
        scroll-snap-type:x proximity;
        -webkit-overflow-scrolling:touch;
    }
    .territori-province-tabs button{
        min-height:44px;
        padding:.58rem .8rem;
        font-size:.75rem;
        scroll-snap-align:start;
    }
    .territori-directory-pagination{
        flex-wrap:nowrap;
        justify-content:flex-start;
        overflow-x:auto;
        padding:.2rem 0 .35rem;
        -webkit-overflow-scrolling:touch;
    }
    .territori-directory-pagination button{
        flex:0 0 auto;
        min-width:40px;
        height:40px;
    }
}

/* Ricerca Comune con autocompletamento. */
.territori-directory{position:relative}
.territori-search-wrap{
    position:relative;
    z-index:35;
}
.territori-search-suggestions{
    position:absolute;
    z-index:1200;
    top:calc(100% + 6px);
    left:0;
    right:0;
    max-height:320px;
    overflow-y:auto;
    border:1px solid #bfd8df;
    border-radius:15px;
    background:#fff;
    box-shadow:0 18px 42px rgba(14,52,76,.20);
}
.territori-search-suggestions[hidden]{display:none!important}
.territori-search-suggestions button{
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:.12rem .7rem;
    padding:.72rem .82rem;
    border:0;
    border-bottom:1px solid #e5eef1;
    background:#fff;
    color:#173e5d;
    text-align:left;
    cursor:pointer;
}
.territori-search-suggestions button:last-child{border-bottom:0}
.territori-search-suggestions button:hover,
.territori-search-suggestions button:focus-visible,
.territori-search-suggestions button.is-active{background:#eef8f9;outline:0}
.territori-search-suggestions strong{font-size:.86rem;line-height:1.25}
.territori-search-suggestions span{grid-column:1;color:#6d8290;font-size:.69rem}
.territori-search-suggestions small{grid-column:2;grid-row:1/3;align-self:center;padding:.28rem .45rem;border-radius:999px;background:#e9f4f6;color:#0d708d;font-size:.6rem;font-weight:900;white-space:nowrap}
.territori-search-suggestions__empty{padding:1rem;color:#718593;font-size:.78rem;text-align:center}

/* Il pannello filtri si richiude lateralmente su desktop. */
@media (min-width:1200px){
    .territory-workspace-grid{
        grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);
        align-items:stretch;
        transition:grid-template-columns .24s ease;
    }
    .territory-workspace-grid.filters-collapsed{
        grid-template-columns:72px minmax(0,1fr) minmax(0,1fr);
    }
    .territory-filter-card,
    .territory-workspace-map-card,
    .territory-workspace-detail-card{height:620px}
    .territory-filter-card{display:flex;flex-direction:column}
    .territory-filter-card__body{flex:1;min-height:0;overflow-y:auto;padding:.78rem}
    .territory-filter-stack{gap:.55rem}
    .territory-filter-field .form-label{margin-bottom:.22rem;font-size:.66rem}
    .territory-filter-field .select2-selection,
    .territory-filter-field .form-select{min-height:38px!important}
    .territory-map-metrics--vertical{margin-top:.7rem;padding-top:.7rem}
    .territory-map-metrics--vertical .territory-map-metrics__intro{margin-bottom:.45rem}
    .territory-map-metrics--vertical .territory-map-metrics__intro span{display:none}
    .territory-metric-switch--vertical{grid-template-columns:repeat(2,minmax(0,1fr));gap:.32rem}
    .territory-metric-switch--vertical button{min-height:34px;padding:.38rem .45rem;font-size:.64rem}
    .territory-legend--compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:.28rem .4rem;margin-top:.7rem;padding-top:.7rem}
    .territory-legend--compact>span{font-size:.62rem}
    .territory-legend--compact small{font-size:.57rem}
    .territory-filter-card__footer{margin-top:.7rem;padding-top:.7rem}
    .territory-workspace-grid.filters-collapsed .territory-filter-card__header{
        flex:1;
        flex-direction:column;
        justify-content:flex-start;
        padding:.8rem .45rem;
        border-bottom:0;
    }
    .territory-workspace-grid.filters-collapsed .territory-filter-card__header>div{
        display:flex;
        flex-direction:column;
        align-items:center;
        gap:.5rem;
    }
    .territory-workspace-grid.filters-collapsed .territory-filter-card__eyebrow{display:none}
    .territory-workspace-grid.filters-collapsed .territory-filter-card__header h2{
        margin:0;
        writing-mode:vertical-rl;
        transform:rotate(180deg);
        font-size:.88rem;
        letter-spacing:.05em;
        white-space:nowrap;
    }
    .territory-workspace-grid.filters-collapsed .territory-filter-toggle{
        margin-top:auto;
        width:44px;
        min-height:44px;
        padding:.35rem;
    }
    .territory-workspace-grid.filters-collapsed .territory-filter-toggle [data-filter-toggle-label]{display:none}
}

/* Azione libro del Comune e modale di accesso. */
.territori-directory-card__actions{flex-wrap:wrap}
.territori-directory-card__actions .territori-book-download,
.territori-directory-card__actions .territori-book-locked{
    background:linear-gradient(135deg,#7c3aed,#5b21b6);
    color:#fff;
}
.territori-book-modal{overflow:hidden;border:0;border-radius:22px;box-shadow:0 28px 70px rgba(13,45,67,.28)}
.territori-book-modal .modal-header{align-items:flex-start;padding:1.2rem 1.25rem;border:0;background:linear-gradient(135deg,#102f50,#0d708d);color:#fff}
.territori-book-modal .modal-title{margin:.2rem 0 0;color:#fff;font-size:1.45rem;line-height:1.2}
.territori-book-modal__eyebrow{color:#f2c75c;font-size:.65rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.territori-book-modal .btn-close{filter:invert(1)}
.territori-book-modal .modal-body{padding:1.3rem}
.territori-book-modal .modal-body p{color:#526c7c;line-height:1.7}
.territori-book-modal__actions{display:grid;gap:.7rem;margin-top:1rem}
.territori-book-modal__login{display:inline-flex;justify-content:center;color:#0d708d;font-weight:850;text-decoration:none}

@media (max-width:767.98px){
    .territori-search-suggestions{top:calc(100% + 6px);left:0;right:0;max-height:46vh}
    .territori-search-suggestions button{min-height:58px;padding:.72rem}
    .territori-directory-card__actions{display:grid;grid-template-columns:1fr 1fr}
    .territori-directory-card__actions .territori-book-download,
    .territori-directory-card__actions .territori-book-locked{grid-column:1/-1;min-height:42px}
}


/* Indice HTML completo: tutti i 404 Comuni restano raggiungibili senza AJAX. */
.territori-all-index{margin-top:1.2rem;padding:clamp(1.1rem,2.5vw,1.8rem);border:1px solid rgba(24,85,111,.12);border-radius:24px;background:#fff;box-shadow:0 18px 48px rgba(31,73,95,.08)}
.territori-all-index__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.72fr);gap:1.5rem;align-items:end;margin-bottom:1rem}
.territori-all-index__head h2{margin:.15rem 0 0;color:#102f50;font-size:clamp(1.45rem,2.7vw,2.25rem);letter-spacing:-.035em}
.territori-all-index__head>p{margin:0;color:#657d8c;line-height:1.7}
.territori-all-index__provinces{display:grid;gap:.7rem}
.territori-all-index__province{border:1px solid #dce8ed;border-radius:16px;background:#f9fcfd;overflow:hidden}
.territori-all-index__province summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;cursor:pointer;color:#123f61;font-weight:900;list-style:none}
.territori-all-index__province summary::-webkit-details-marker{display:none}
.territori-all-index__province summary:after{content:'+';display:grid;place-items:center;width:28px;height:28px;margin-left:auto;border-radius:50%;background:#e8f4f6;color:#0d708d}
.territori-all-index__province[open] summary:after{content:'−'}
.territori-all-index__province summary small{color:#6d8290;font-size:.68rem;font-weight:800}
.territori-all-index__province ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem .8rem;margin:0;padding:.2rem 1rem 1rem;list-style:none}
.territori-all-index__province a{display:block;padding:.38rem .45rem;border-radius:8px;color:#31596f;font-size:.76rem;font-weight:750;text-decoration:none}
.territori-all-index__province a:hover,.territori-all-index__province a:focus-visible{background:#e8f4f6;color:#0d708d;outline:0}
@media (max-width:991.98px){.territori-all-index__head{grid-template-columns:1fr}.territori-all-index__province ul{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:767.98px){.territori-all-index{border-radius:18px}.territori-all-index__province ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:479.98px){.territori-all-index__province ul{grid-template-columns:1fr}.territori-all-index__province summary{align-items:flex-start;flex-wrap:wrap}.territori-all-index__province summary small{order:3;width:100%}}

/* Territori 2026: hero compatta, più cromatica e orientata ai dati. */
.territori-participation-hero--compact{
    background:
        radial-gradient(circle at 82% 18%,rgba(242,199,92,.46),transparent 22%),
        radial-gradient(circle at 67% 105%,rgba(88,225,184,.34),transparent 31%),
        radial-gradient(circle at 8% 0%,rgba(82,160,255,.38),transparent 28%),
        linear-gradient(125deg,#081b35 0%,#0b5279 48%,#0d918e 100%);
}
.territori-participation-hero--compact:before{
    content:"";
    position:absolute;
    inset:0;
    background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
    background-size:42px 42px;
    mask-image:linear-gradient(90deg,rgba(0,0,0,.72),transparent 86%);
    pointer-events:none;
}
.territori-participation-hero--compact:after{
    right:-5rem;
    bottom:-18rem;
    width:35rem;
    height:35rem;
}
.territori-hero-layout{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);
    align-items:center;
    gap:clamp(1.25rem,4vw,3.5rem);
}
.territori-participation-hero--compact h1{
    max-width:760px!important;
    margin:.15rem 0 .55rem;
    font-size:clamp(2.35rem,4.7vw,4.65rem)!important;
    line-height:.94!important;
    letter-spacing:-.055em!important;
}
.territori-participation-hero--compact .territori-hero-copy>p:not(.campaign-kicker){
    max-width:720px!important;
    margin:0;
    font-size:clamp(.98rem,1.45vw,1.12rem)!important;
    line-height:1.58!important;
}
.territori-participation-hero--compact .territori-hero-actions{margin-top:1.05rem}
.territori-hero-stats{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:.7rem;
}
.territori-hero-stats article{
    min-width:0;
    padding:1rem .8rem;
    border:1px solid rgba(255,255,255,.22);
    border-radius:18px;
    background:rgba(255,255,255,.12);
    box-shadow:0 14px 34px rgba(3,23,42,.16);
    backdrop-filter:blur(12px);
    text-align:center;
}
.territori-hero-stats article:nth-child(1){background:linear-gradient(145deg,rgba(44,142,214,.42),rgba(255,255,255,.10))}
.territori-hero-stats article:nth-child(2){background:linear-gradient(145deg,rgba(51,196,155,.40),rgba(255,255,255,.10))}
.territori-hero-stats article:nth-child(3){background:linear-gradient(145deg,rgba(242,199,92,.38),rgba(255,255,255,.10))}
.territori-hero-stats strong{
    display:block;
    color:#fff;
    font-size:clamp(1.45rem,2.7vw,2.3rem);
    line-height:1;
}
.territori-hero-stats span{
    display:block;
    margin-top:.4rem;
    color:rgba(255,255,255,.82);
    font-size:.66rem;
    font-weight:900;
    line-height:1.25;
    letter-spacing:.045em;
    text-transform:uppercase;
}

/* Directory: stato e Province su righe separate, sempre completamente visibili. */
.territori-filter-groups{
    display:grid;
    gap:.8rem;
    margin-top:.85rem;
}
.territori-filter-group{
    min-width:0;
}
.territori-filter-group__label{
    display:block;
    margin-bottom:.38rem;
    color:#31596f;
    font-size:.63rem;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.territori-status-tabs{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:.42rem;
}
.territori-status-tabs button,
.territori-province-tabs button{
    min-width:0;
    min-height:42px;
    justify-content:center;
    padding:.5rem .55rem;
    border:1px solid #d6e4e9;
    border-radius:11px;
    background:#fff;
    color:#456276;
    font-size:.69rem;
    font-weight:900;
    line-height:1.15;
    cursor:pointer;
}
.territori-status-tabs button{
    display:flex;
    align-items:center;
    gap:.4rem;
}
.territori-status-tabs button span,
.territori-province-tabs button span{
    flex:0 0 auto;
    display:grid;
    place-items:center;
    min-width:22px;
    height:22px;
    padding:0 .28rem;
    border-radius:999px;
    background:#edf3f5;
    color:#5a7180;
    font-size:.61rem;
}
.territori-status-tabs button.is-active,
.territori-province-tabs button.is-active{
    border-color:#0d708d;
    background:linear-gradient(135deg,#0d708d,#15999c);
    color:#fff;
    box-shadow:0 8px 18px rgba(13,112,141,.16);
}
.territori-status-tabs button.is-active span,
.territori-province-tabs button.is-active span{
    background:#f2c75c;
    color:#102f50;
}
.territori-province-tabs{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:.42rem;
    margin:0;
    padding:0;
    overflow:visible;
}
.territori-province-tabs button{
    display:flex;
    align-items:center;
    white-space:normal;
}

/* Indice completo: fisarmonica esclusiva e conteggi leggibili. */
.territori-all-index{
    overflow:hidden;
    border-color:rgba(13,112,141,.15);
    background:
        radial-gradient(circle at 94% 0%,rgba(242,199,92,.15),transparent 24%),
        linear-gradient(180deg,#ffffff,#f7fbfc);
}
.territori-all-index__provinces{gap:.78rem}
.territori-all-index__province{
    border:1px solid #d7e6eb;
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 20px rgba(31,73,95,.055);
    transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.territori-all-index__province[open]{
    border-color:#70bfc4;
    box-shadow:0 15px 32px rgba(21,112,135,.11);
}
.territori-all-index__province summary{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto 32px;
    align-items:center;
    gap:1rem;
    min-height:66px;
    padding:.8rem 1rem;
    background:linear-gradient(135deg,#f9fcfd,#eef7f8);
}
.territori-all-index__province:nth-child(2n) summary{background:linear-gradient(135deg,#fbfcff,#eef4ff)}
.territori-all-index__province:nth-child(3n) summary{background:linear-gradient(135deg,#fffdf7,#fff7dc)}
.territori-all-index__province summary:after{
    grid-column:3;
    margin:0;
    width:32px;
    height:32px;
    background:#0d708d;
    color:#fff;
    font-size:1.1rem;
}
.territori-all-index__province[open] summary:after{background:#f2c75c;color:#102f50}
.territori-all-index__province-name{
    display:flex;
    align-items:baseline;
    flex-wrap:wrap;
    gap:.35rem .7rem;
    min-width:0;
}
.territori-all-index__province-name b{
    color:#123f61;
    font-size:.98rem;
}
.territori-all-index__province-name small{
    color:#6d8290;
    font-size:.65rem;
    font-weight:850;
}
.territori-all-index__province-total{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:30px;
    padding:.4rem .65rem;
    border-radius:999px;
    background:#fff;
    color:#0d708d;
    box-shadow:inset 0 0 0 1px rgba(13,112,141,.13);
    font-size:.67rem;
    font-weight:900;
    white-space:nowrap;
}
.territori-all-index__province ul{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:.5rem;
    padding:.8rem 1rem 1rem;
}
.territori-all-index__province li{min-width:0}
.territori-all-index__province a{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-rows:auto auto;
    gap:.05rem .55rem;
    align-items:center;
    min-height:54px;
    padding:.55rem .65rem;
    border:1px solid #e0ebef;
    border-radius:12px;
    background:#fff;
    box-shadow:0 5px 14px rgba(31,73,95,.045);
}
.territori-all-index__province a>span{
    grid-row:1/-1;
    min-width:0;
    overflow:hidden;
    color:#31596f;
    font-weight:850;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.territori-all-index__province a>strong{
    color:#0d708d;
    font-size:.82rem;
    line-height:1;
    text-align:right;
}
.territori-all-index__province a>small{
    color:#82939e;
    font-size:.56rem;
    font-weight:800;
    line-height:1;
    text-align:right;
    text-transform:uppercase;
}
.territori-all-index__province a:hover,
.territori-all-index__province a:focus-visible{
    border-color:#70bfc4;
    background:#eaf7f7;
    box-shadow:0 8px 18px rgba(21,112,135,.10);
    transform:translateY(-1px);
}
.territori-all-index__province a:hover>span,
.territori-all-index__province a:focus-visible>span{color:#0d708d}

@media (max-width:1199.98px){
    .territori-province-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:991.98px){
    .territori-hero-layout{grid-template-columns:1fr}
    .territori-hero-stats{max-width:720px}
}
@media (max-width:767.98px){
    .territori-participation-hero--compact h1{font-size:clamp(2.35rem,11vw,3.5rem)!important}
    .territori-hero-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}
    .territori-hero-stats article{padding:.8rem .45rem;border-radius:14px}
    .territori-hero-stats span{font-size:.55rem}
    .territori-status-tabs{grid-template-columns:1fr}
    .territori-province-tabs{grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0}
    .territori-status-tabs button,.territori-province-tabs button{min-height:44px;font-size:.72rem}
    .territori-all-index__province ul{grid-template-columns:repeat(2,minmax(0,1fr))}
    .territori-all-index__province summary{grid-template-columns:minmax(0,1fr) 32px;gap:.6rem}
    .territori-all-index__province-total{grid-column:1;justify-self:start;margin-top:-.1rem}
    .territori-all-index__province summary:after{grid-column:2;grid-row:1/3}
}
@media (max-width:479.98px){
    .territori-hero-stats{grid-template-columns:1fr}
    .territori-hero-stats article{display:flex;align-items:center;justify-content:space-between;text-align:left}
    .territori-hero-stats span{margin:0 0 0 .7rem;text-align:right}
    .territori-province-tabs{grid-template-columns:1fr}
    .territori-all-index__province ul{grid-template-columns:1fr}
    .territori-all-index__province a>span{white-space:normal}
}

/* Territori: sidebar filtri a sinistra, mappa a destra */
.territori-covered-grid{
    grid-template-columns:minmax(320px,390px) minmax(0,1fr);
    align-items:stretch;
}
.territori-directory{
    grid-column:1;
    grid-row:1;
}
.territori-covered-map-card{
    grid-column:2;
    grid-row:1;
}
.territori-covered-map-card__tools{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:.65rem;
}
.territori-directory__mobile-toggle,
.territori-directory__mobile-close,
.territori-directory-backdrop{
    display:none;
}

@media (min-width:992px){
    .territori-directory{
        position:sticky;
        top:1rem;
        align-self:start;
        max-height:calc(100vh - 2rem);
    }
    .territori-covered-map-card{
        min-height:720px;
    }
}

@media (max-width:991.98px){
    .territori-covered-grid{
        display:block;
    }
    .territori-covered-map-card{
        width:100%;
        min-height:auto;
    }
    .territori-covered-map{
        min-height:520px;
    }
    .territori-covered-map-card__head{
        align-items:center;
        flex-direction:row;
    }
    .territori-covered-map-card__tools{
        flex:0 0 auto;
    }
    .territori-map-key{
        display:none;
    }
    .territori-directory__mobile-toggle{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        gap:.42rem;
        min-height:42px;
        padding:.58rem .8rem;
        border:0;
        border-radius:12px;
        background:#0d708d;
        color:#fff;
        font-size:.72rem;
        font-weight:900;
        white-space:nowrap;
        box-shadow:0 8px 20px rgba(13,112,141,.22);
        cursor:pointer;
    }
    .territori-directory__mobile-toggle span{
        font-size:1rem;
        line-height:1;
    }
    .territori-directory{
        position:fixed;
        z-index:1045;
        top:0;
        bottom:0;
        left:0;
        width:min(92vw,420px);
        height:100dvh;
        max-height:none;
        min-height:0;
        padding:1rem;
        padding-top:4rem;
        border:0;
        border-radius:0 24px 24px 0;
        overflow-y:auto;
        overscroll-behavior:contain;
        box-shadow:22px 0 55px rgba(8,37,55,.28);
        transform:translateX(calc(-100% - 24px));
        visibility:hidden;
        transition:transform .28s ease,visibility 0s linear .28s;
    }
    .territori-directory.is-open{
        transform:translateX(0);
        visibility:visible;
        transition:transform .28s ease,visibility 0s;
    }
    .territori-directory__mobile-close{
        display:grid;
        place-items:center;
        position:absolute;
        top:.75rem;
        right:.75rem;
        width:42px;
        height:42px;
        border:0;
        border-radius:50%;
        background:#e9f4f6;
        color:#0d708d;
        font-size:1.65rem;
        line-height:1;
        font-weight:500;
        cursor:pointer;
    }
    .territori-directory__results{
        max-height:none;
        overflow:visible;
    }
    .territori-directory-backdrop{
        display:block;
        position:fixed;
        z-index:1040;
        inset:0;
        width:100%;
        height:100%;
        padding:0;
        border:0;
        background:rgba(7,29,43,.54);
        opacity:0;
        visibility:hidden;
        pointer-events:none;
        backdrop-filter:blur(3px);
        transition:opacity .25s ease,visibility 0s linear .25s;
    }
    .territori-directory-backdrop.is-open{
        opacity:1;
        visibility:visible;
        pointer-events:auto;
        transition:opacity .25s ease,visibility 0s;
    }
    body.territori-directory-open{
        overflow:hidden;
    }
}

@media (max-width:575.98px){
    .territori-covered-map-card__head{
        gap:.75rem;
    }
    .territori-covered-map-card__head > div:first-child strong{
        font-size:.78rem;
    }
    .territori-directory__mobile-toggle{
        min-width:44px;
        padding:.58rem .68rem;
        font-size:0;
    }
    .territori-directory__mobile-toggle span{
        font-size:1.25rem;
    }
    .territori-covered-map{
        min-height:62vh;
        max-height:680px;
    }
    .territori-directory{
        width:min(94vw,390px);
        border-radius:0 20px 20px 0;
    }
}

@media (prefers-reduced-motion:reduce){
    .territori-directory,
    .territori-directory-backdrop{
        transition:none!important;
    }
}

/* =========================================================
   Territori — esploratore unificato mappa/elenco (v3)
   ========================================================= */
.territori-unified-section {
    padding: clamp(2rem, 4vw, 4rem) 0;
    background:
        radial-gradient(circle at 8% 10%, rgba(46, 159, 104, .10), transparent 30%),
        linear-gradient(180deg, #f7faf8 0%, #eef4f1 100%);
}

.territori-unified-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 1.25rem;
}

.territori-unified-head h2 {
    margin: 0;
    max-width: 760px;
    font-size: clamp(1.7rem, 2.5vw, 2.65rem);
    line-height: 1.05;
    color: #13263f;
}

.territori-unified-head p:not(.campaign-kicker) {
    max-width: 820px;
    margin: .7rem 0 0;
    color: #586879;
    font-size: 1rem;
}

.territori-unified-head__numbers {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .65rem;
    flex: 0 0 auto;
}

.territori-unified-head__numbers span {
    display: inline-flex;
    align-items: baseline;
    gap: .35rem;
    padding: .65rem .85rem;
    border: 1px solid rgba(25, 80, 58, .12);
    border-radius: 999px;
    background: rgba(255, 255, 255, .86);
    box-shadow: 0 8px 24px rgba(27, 55, 44, .06);
    color: #566577;
    white-space: nowrap;
}

.territori-unified-head__numbers strong {
    color: #176a45;
    font-size: 1.1rem;
}

.territori-my-town--unified {
    margin: 0 0 1.25rem;
}

.territori-explorer-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: stretch;
}

.territori-explorer-filters,
.territori-explorer-stage {
    min-width: 0;
    min-height: 690px;
    border: 1px solid rgba(27, 64, 50, .12);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 55px rgba(24, 51, 42, .10);
    overflow: hidden;
}

.territori-explorer-filters {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1.05rem;
    padding: clamp(1rem, 2vw, 1.5rem);
}

.territori-explorer-filters__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.territori-explorer-filters__head h2 {
    margin: .18rem 0 0;
    font-size: clamp(1.35rem, 2vw, 1.8rem);
    color: #152b43;
}

.territori-explorer-reset {
    flex: 0 0 auto;
    border: 0;
    border-radius: 999px;
    padding: .55rem .8rem;
    background: #eef3f0;
    color: #315344;
    font-weight: 800;
    font-size: .78rem;
    transition: background .2s ease, color .2s ease;
}

.territori-explorer-reset:hover,
.territori-explorer-reset:focus-visible {
    background: #dcebe3;
    color: #176a45;
}

.territori-explorer-filters__close {
    display: none;
}

.territori-explorer-filters .territori-search-wrap {
    margin: 0;
}

.territori-explorer-filters .territori-search {
    min-height: 52px;
    border-radius: 15px;
    border-color: rgba(38, 77, 61, .16);
    background: #f8fbf9;
}

.territori-explorer-filters .territori-filter-group {
    display: grid;
    gap: .55rem;
}

.territori-explorer-filters .territori-filter-group__label {
    color: #506174;
    font-size: .73rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.territori-status-tabs--unified {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
}

.territori-status-tabs--unified button,
.territori-province-tabs--unified button,
.territori-metric-grid button {
    min-width: 0;
    border: 1px solid rgba(37, 77, 61, .13);
    border-radius: 13px;
    background: #f7faf8;
    color: #425567;
    font-weight: 800;
    line-height: 1.15;
    transition: transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}

.territori-status-tabs--unified button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .35rem;
    padding: .75rem .7rem;
    font-size: .83rem;
}

.territori-status-tabs--unified button span,
.territori-province-tabs--unified button span {
    display: inline-grid;
    place-items: center;
    min-width: 1.75rem;
    height: 1.75rem;
    padding: 0 .35rem;
    border-radius: 999px;
    background: rgba(22, 65, 48, .08);
    font-size: .72rem;
}

.territori-province-tabs--unified {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
}

.territori-province-tabs--unified button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .4rem;
    padding: .68rem .72rem;
    font-size: .8rem;
    text-align: left;
}

.territori-province-tabs--unified button:first-child {
    grid-column: 1 / -1;
}

.territori-metric-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
}

.territori-metric-grid button {
    padding: .72rem .7rem;
    font-size: .79rem;
    text-align: left;
}

.territori-status-tabs--unified button:hover,
.territori-province-tabs--unified button:hover,
.territori-metric-grid button:hover {
    transform: translateY(-1px);
    border-color: rgba(47, 159, 104, .42);
}

.territori-status-tabs--unified button.is-active,
.territori-province-tabs--unified button.is-active,
.territori-metric-grid button.is-active {
    border-color: #278b5e;
    background: linear-gradient(135deg, #1f8055, #35a36f);
    color: #fff;
    box-shadow: 0 8px 20px rgba(37, 139, 94, .18);
}

.territori-status-tabs--unified button.is-active span,
.territori-province-tabs--unified button.is-active span {
    background: rgba(255, 255, 255, .2);
    color: #fff;
}

.territori-unified-legend {
    display: grid;
    gap: .45rem;
    padding: .8rem .9rem;
    border-radius: 14px;
    background: #f4f7f5;
    color: #506174;
}

.territori-unified-legend > strong {
    font-size: .78rem;
    color: #28493a;
}

.territori-unified-legend__status,
.territori-unified-legend__metric {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem .9rem;
}

.territori-unified-legend span {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .72rem;
}

.territori-unified-legend i {
    width: 16px;
    height: 16px;
    border-radius: 5px;
    border: 1px solid rgba(25, 50, 40, .14);
}

.territori-unified-legend i.is-active { background: #2f9f68; }
.territori-unified-legend i.is-inactive { background: #c8ced5; }
.territori-unified-legend i.l0 { background: #e5f2eb; }
.territori-unified-legend i.l1 { background: #bfe6d3; }
.territori-unified-legend i.l2 { background: #73c79d; }
.territori-unified-legend i.l3 { background: #2d9d68; }

.territori-explorer-filters .territori-directory__status {
    margin: auto 0 0;
    padding: .75rem .85rem;
    border-radius: 13px;
    background: #eef4f1;
    color: #496052;
    font-size: .78rem;
}

.territori-explorer-stage {
    display: flex;
    flex-direction: column;
}

.territori-explorer-stage__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem 1rem;
    border-bottom: 1px solid rgba(26, 61, 48, .10);
    background: linear-gradient(180deg, #ffffff, #f8faf9);
}

.territori-view-tabs {
    display: inline-grid;
    grid-template-columns: repeat(2, minmax(105px, 1fr));
    gap: .35rem;
    padding: .3rem;
    border-radius: 13px;
    background: #eaf0ed;
}

.territori-view-tabs button {
    border: 0;
    border-radius: 10px;
    padding: .65rem 1rem;
    background: transparent;
    color: #536476;
    font-weight: 900;
}

.territori-view-tabs button.is-active {
    background: #fff;
    color: #176a45;
    box-shadow: 0 4px 14px rgba(28, 55, 44, .10);
}

.territori-explorer-stage__tools {
    display: flex;
    align-items: center;
    gap: .65rem;
}

.territori-explorer-stage__tools > span {
    color: #5e6e7d;
    font-size: .82rem;
    font-weight: 800;
    white-space: nowrap;
}

.territori-filter-mobile-toggle {
    display: none;
    border: 0;
    border-radius: 11px;
    padding: .62rem .78rem;
    background: #176a45;
    color: #fff;
    font-weight: 900;
}

.territori-view-panel {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
}

.territori-view-panel[hidden] {
    display: none !important;
}

.territori-unified-map {
    width: 100%;
    height: 620px;
    min-height: 620px;
    background: #eaf0ed;
}

.territori-unified-map.has-error {
    display: grid;
    place-items: center;
    padding: 2rem;
    text-align: center;
    color: #6b7784;
}

.territori-map-detail {
    position: absolute;
    z-index: 500;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.4fr) auto;
    align-items: center;
    gap: 1rem;
    padding: .9rem 1rem;
    border: 1px solid rgba(27, 73, 54, .14);
    border-radius: 16px;
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 14px 40px rgba(24, 50, 41, .18);
    backdrop-filter: blur(10px);
}

.territori-map-detail[hidden] {
    display: none !important;
}

.territori-map-detail__copy span {
    display: block;
    color: #278b5e;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.territori-map-detail__copy h3 {
    margin: .1rem 0 0;
    color: #172b42;
    font-size: 1.15rem;
}

.territori-map-detail__copy p {
    margin: .1rem 0 0;
    color: #6b7885;
    font-size: .78rem;
}

.territori-map-detail__numbers {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .45rem;
}

.territori-map-detail__numbers span {
    display: grid;
    gap: .05rem;
    padding: .5rem .55rem;
    border-radius: 10px;
    background: #f0f5f2;
    color: #667485;
    font-size: .67rem;
    text-align: center;
}

.territori-map-detail__numbers strong {
    color: #1b704b;
    font-size: .98rem;
}

.territori-map-detail > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: .6rem .8rem;
    border-radius: 11px;
    background: #176a45;
    color: #fff;
    font-size: .76rem;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}

.territori-map-tooltip {
    display: grid;
    gap: .12rem;
    min-width: 170px;
}

.territori-map-tooltip strong { color: #152b43; font-size: .92rem; }
.territori-map-tooltip b { color: #1f8055; font-size: .76rem; }
.territori-map-tooltip small { color: #6a7886; font-size: .68rem; }

.territori-directory__results--stage {
    height: 620px;
    overflow-y: auto;
    padding: 1rem;
    background: #f7faf8;
}

.territori-directory__results--stage.is-loading {
    opacity: .58;
    pointer-events: none;
}

.territori-directory__results--stage .territori-directory-list {
    display: grid;
    gap: .8rem;
}

.territori-directory__results--stage .territori-directory-card {
    box-shadow: 0 8px 24px rgba(32, 57, 47, .07);
}

.territori-directory-card__identity {
    align-items: center;
}

.territori-directory-card__contributions {
    display: grid;
    flex: 0 0 auto;
    min-width: 76px;
    padding: .55rem .65rem;
    border-radius: 12px;
    background: #eef4f1;
    color: #6c7885;
    text-align: center;
}

.territori-directory-card__contributions strong {
    color: #176a45;
    font-size: 1.05rem;
    line-height: 1;
}

.territori-directory-card__contributions small {
    margin-top: .12rem;
    font-size: .64rem;
}

.territori-index-section {
    padding: clamp(2rem, 4vw, 4rem) 0;
    background: #fff;
}

.territori-index-section .territori-all-index {
    margin-top: 0;
}

body.territori-filter-open {
    overflow: hidden;
}

@media (max-width: 1199.98px) {
    .territori-explorer-layout {
        grid-template-columns: minmax(320px, .9fr) minmax(0, 1.1fr);
    }

    .territori-status-tabs--unified {
        grid-template-columns: 1fr;
    }

    .territori-status-tabs--unified button {
        min-height: 44px;
    }

    .territori-map-detail {
        grid-template-columns: 1fr auto;
    }

    .territori-map-detail__numbers {
        grid-column: 1 / -1;
        grid-row: 2;
    }
}

@media (max-width: 991.98px) {
    .territori-unified-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 1rem;
    }

    .territori-unified-head__numbers {
        justify-content: flex-start;
    }

    .territori-explorer-layout {
        display: block;
    }

    .territori-explorer-stage {
        min-height: 620px;
    }

    .territori-explorer-filters {
        position: fixed;
        z-index: 1062;
        top: 0;
        left: 0;
        width: min(88vw, 390px);
        height: 100dvh;
        min-height: 0;
        overflow-y: auto;
        border-radius: 0 22px 22px 0;
        transform: translateX(-104%);
        transition: transform .25s ease;
        box-shadow: 20px 0 55px rgba(10, 30, 22, .24);
    }

    .territori-explorer-filters.is-open {
        transform: translateX(0);
    }

    .territori-explorer-filters__close {
        position: absolute;
        top: .8rem;
        right: .8rem;
        z-index: 2;
        display: grid;
        place-items: center;
        width: 38px;
        height: 38px;
        border: 0;
        border-radius: 50%;
        background: #e9f0ec;
        color: #244a38;
        font-size: 1.35rem;
        line-height: 1;
    }

    .territori-explorer-filters__head {
        padding-right: 2.6rem;
    }

    .territori-filter-mobile-toggle {
        display: inline-flex;
    }

    .territori-directory-backdrop.is-visible {
        display: block;
        position: fixed;
        z-index: 1060;
        inset: 0;
        border: 0;
        background: rgba(12, 27, 21, .58);
    }

    .territori-status-tabs--unified {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .territori-unified-map,
    .territori-directory__results--stage {
        height: 560px;
        min-height: 560px;
    }
}

@media (max-width: 767.98px) {
    .territori-unified-section {
        padding: 1.5rem 0 2.5rem;
    }

    .territori-unified-head__numbers {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .territori-unified-head__numbers span {
        justify-content: center;
    }

    .territori-explorer-stage {
        min-height: 550px;
        border-radius: 18px;
    }

    .territori-explorer-stage__head {
        align-items: stretch;
        flex-direction: column;
        gap: .65rem;
    }

    .territori-view-tabs {
        width: 100%;
    }

    .territori-explorer-stage__tools {
        justify-content: space-between;
    }

    .territori-unified-map,
    .territori-directory__results--stage {
        height: 500px;
        min-height: 500px;
    }

    .territori-map-detail {
        left: .65rem;
        right: .65rem;
        bottom: .65rem;
        grid-template-columns: 1fr auto;
        gap: .6rem;
        padding: .75rem;
    }

    .territori-map-detail__numbers {
        display: none;
    }

    .territori-map-detail > a {
        white-space: normal;
        text-align: center;
    }

    .territori-status-tabs--unified,
    .territori-province-tabs--unified,
    .territori-metric-grid {
        grid-template-columns: 1fr;
    }

    .territori-province-tabs--unified button:first-child {
        grid-column: auto;
    }

    .territori-directory-card__identity {
        align-items: flex-start;
    }

    .territori-directory-card__contributions {
        min-width: 62px;
    }
}

@media (max-width: 991.98px) {
    .territori-directory-backdrop.is-visible {
        display: block;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition: opacity .25s ease, visibility 0s;
    }
}

/* Territori · legenda estesa e scheda Comune sulla mappa unica */
.territori-unified-legend {
    gap: .7rem;
    padding: .9rem;
    border: 1px solid rgba(23, 106, 69, .10);
    background: linear-gradient(145deg, #f7faf8, #edf5f1);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8);
}

.territori-unified-legend > strong {
    color: #173b2b;
    font-size: .82rem;
}

.territori-unified-legend__block {
    display: grid;
    gap: .42rem;
}

.territori-unified-legend__block > small {
    color: #6b7d73;
    font-size: .65rem;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.territori-unified-legend__status,
.territori-unified-legend__scale {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem .75rem;
}

.territori-unified-legend__metric[hidden] {
    display: none !important;
}

.territori-unified-legend__scale span,
.territori-unified-legend__status span {
    min-width: 0;
}

.territori-unified-legend i {
    flex: 0 0 auto;
}

.territori-unified-legend i.is-selected {
    background: #fff;
    border: 3px solid #213f93;
}

.territori-unified-legend i.is-filtered {
    border-color: #aeb5bd;
    background: repeating-linear-gradient(135deg, #e6e9ec 0, #e6e9ec 3px, #f8f9fa 3px, #f8f9fa 6px);
    opacity: .72;
}

.territori-unified-legend i.l0 { background: #e5f2eb; }
.territori-unified-legend i.l1 { background: #bfe6d3; }
.territori-unified-legend i.l2 { background: #73c79d; }
.territori-unified-legend i.l3 { background: #2d9d68; }
.territori-unified-legend i.l4 { background: #f0b84b; }
.territori-unified-legend i.l5 { background: #dc6d43; }

.territori-unified-legend > p {
    margin: 0;
    padding-top: .55rem;
    border-top: 1px solid rgba(23, 106, 69, .10);
    color: #65766d;
    font-size: .68rem;
    line-height: 1.45;
}

.territori-map-detail {
    grid-template-columns: minmax(0, 1fr) minmax(150px, auto);
    align-items: center;
    gap: .75rem 1rem;
    padding: 1rem 3rem 1rem 1rem;
    border-color: rgba(27, 73, 54, .18);
    border-radius: 20px;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 18px 50px rgba(19, 45, 35, .24);
}

.territori-map-detail__close {
    position: absolute;
    top: .55rem;
    right: .55rem;
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: #edf2ef;
    color: #4d5e55;
    font-size: 1.15rem;
    font-weight: 900;
    line-height: 1;
}

.territori-map-detail__close:hover,
.territori-map-detail__close:focus-visible {
    background: #173f2e;
    color: #fff;
}

.territori-map-detail__identity {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: .85rem;
}

.territori-map-detail__crest {
    display: grid;
    flex: 0 0 66px;
    width: 66px;
    height: 66px;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(23, 106, 69, .14);
    border-radius: 16px;
    background: linear-gradient(145deg, #fff, #eaf3ee);
    box-shadow: 0 8px 20px rgba(26, 68, 51, .12);
}

.territori-map-detail__crest img {
    width: 54px;
    height: 54px;
    object-fit: contain;
}

.territori-map-detail__crest > span {
    color: #176a45;
    font-size: 1.65rem;
    font-weight: 950;
}

.territori-map-detail__copy {
    min-width: 0;
}

.territori-map-detail__copy span {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: .25rem .5rem;
    border-radius: 999px;
    background: #e6f4ec;
    color: #207b53;
    letter-spacing: .06em;
}

.territori-map-detail__copy span.is-inactive {
    background: #eceff2;
    color: #65717d;
}

.territori-map-detail__copy h3 {
    margin-top: .28rem;
    font-size: 1.25rem;
    line-height: 1.05;
}

.territori-map-detail__copy p {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.territori-map-detail__actions {
    display: grid;
    justify-items: stretch;
    gap: .35rem;
}

.territori-map-detail__actions a {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: .7rem;
    min-height: 43px;
    padding: .65rem .8rem;
    border-radius: 12px;
    background: linear-gradient(135deg, #176a45, #278f61);
    color: #fff;
    font-size: .76rem;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}

.territori-map-detail__actions a:hover,
.territori-map-detail__actions a:focus-visible {
    background: #113f2c;
    color: #fff;
}

.territori-map-detail__actions small {
    max-width: 190px;
    color: #748179;
    font-size: .62rem;
    line-height: 1.35;
}

.territori-map-detail__numbers {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .4rem;
}

.territori-map-detail__numbers span {
    display: grid;
    gap: .12rem;
    min-width: 0;
    padding: .55rem .4rem;
    border: 1px solid rgba(23, 106, 69, .08);
    border-radius: 11px;
    background: linear-gradient(145deg, #f5f9f7, #edf4f0);
    text-align: center;
}

.territori-map-detail__numbers strong {
    color: #176a45;
    font-size: 1rem;
    line-height: 1;
}

.territori-map-detail__numbers small {
    overflow: hidden;
    color: #68776f;
    font-size: .62rem;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 1199.98px) {
    .territori-map-detail {
        grid-template-columns: minmax(0, 1fr) minmax(140px, auto);
    }

    .territori-map-detail__numbers {
        grid-column: 1 / -1;
        grid-row: auto;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .territori-map-detail {
        grid-template-columns: 1fr;
        max-height: calc(100% - 1.3rem);
        overflow-y: auto;
        padding: .8rem 2.75rem .8rem .8rem;
    }

    .territori-map-detail__actions {
        grid-template-columns: minmax(0, 1fr);
    }

    .territori-map-detail__actions small {
        display: none;
    }

    .territori-map-detail__numbers {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .territori-map-detail__crest {
        flex-basis: 58px;
        width: 58px;
        height: 58px;
    }

    .territori-map-detail__crest img {
        width: 47px;
        height: 47px;
    }
}

@media (max-width: 575.98px) {
    .territori-unified-legend__status,
    .territori-unified-legend__scale {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .territori-map-detail__copy h3 {
        font-size: 1.08rem;
    }

    .territori-map-detail__copy p {
        font-size: .7rem;
    }

    .territori-map-detail__numbers span:nth-child(5),
    .territori-map-detail__numbers span:nth-child(6) {
        display: none;
    }

    .territori-map-detail__numbers {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
