.cri-map-body { overflow-x: hidden; }

.cri-comitati-map {
    position: relative;
    display: flex;
    align-items: stretch;
    width: 100%;
    height: auto;
    min-height: 0;
    overflow: visible;
    font-family: 'Inter Tight', Arial, sans-serif;
    background: #e9e9e9;
    isolation: isolate;
}

/* Pagina mappa a tutta larghezza, subito sotto l'header. */
.cri-map-page { height: auto; min-height: 0; padding-top: 110px; box-sizing: border-box; overflow: visible; }
.cri-map-page .cri-page-body { padding: 0 !important; }
.cri-map-page .cri-map-full-width,
.cri-map-page .cri-page-layout,
.cri-map-page .cri-page-content { width: 100%; max-width: none; margin: 0; padding: 0; }
.cri-map-page .cri-page-layout { display: block; }

.cri-comitati-map #map {
    flex: 1 1 auto;
    order: 1;
    width: 100%;
    height: auto;
    min-height: 720px;
}

.cri-comitati-map #info {
    position: relative;
    order: 2;
    right: 0;
    top: 0;
    width: 380px;
    height: auto;
    box-sizing: border-box;
    padding: 24px 28px 28px;
    overflow: visible;
    z-index: 1000;
    background: #fff;
    box-shadow: -8px 0 24px rgba(0, 0, 0, .16);
    color: #3f4145;
    font-size: 14px;
    line-height: 1.45;
    -webkit-overflow-scrolling: touch;
}

.cri-comitati-map .intestazione-cri { text-align: left; margin-bottom: 18px; padding-left: 2px; }
.cri-comitati-map .titolo-cri { font-size: 20px; font-weight: 700; color: #c62612; letter-spacing: -.3px; }
.cri-comitati-map .sottotitolo-cri { font-size: 15px; font-weight: 500; color: #74777a; }
.cri-comitati-map .progetto-cri { margin-top: 8px; font-size: 13px; font-weight: 600; color: #3f4145; letter-spacing: .6px; }
.cri-comitati-map .sistema-cri { margin-top: 4px; font-size: 12px; color: #777; font-style: italic; }
.cri-comitati-map .copyright { margin-top: 25px; text-align: center; font-size: 11px; color: #888; font-style: italic; letter-spacing: 1px; }
.cri-comitati-map .riga-filtro { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.cri-comitati-map .riga-filtro label { flex: 0 0 82px; font-weight: 600; color: #666a6d; }
.cri-comitati-map .riga-filtro select { flex: 1; width: auto; margin: 0; border: 1px solid #d3d6d8; border-radius: 5px; background: #fff; color: #3f4145; box-shadow: none; }
.cri-comitati-map .riga-visualizzazione { display: flex; align-items: center; min-height: 22px; margin: 0; padding: 0; font-size: 15px; line-height: 22px; }
.cri-comitati-map .riga-visualizzazione label { display: flex; align-items: center; cursor: pointer; margin: 0; padding: 0; }
.cri-comitati-map .riga-visualizzazione input[type="checkbox"] { width: 18px; height: 18px; margin: 0 6px 0 0; }
.cri-comitati-map select, .cri-comitati-map input[type="range"], .cri-comitati-map button { max-width: 100%; }
.cri-comitati-map select { min-height: 40px; padding: 7px 10px; font-size: 14px; font-family: inherit; }
.cri-comitati-map button { min-height: 44px; padding: 8px 15px; margin-bottom: 15px; font-size: 15px; font-family: inherit; cursor: pointer; }
.cri-comitati-map input[type="checkbox"] { accent-color: #c62612; width: 17px; height: 17px; }
.cri-comitati-map input[type="range"] { accent-color: #1976d2; }
.cri-comitati-map hr { margin: 16px 0; border: 0; border-top: 1px solid #e1e2e3; }
.cri-comitati-map #dettaglio h2 { margin: 12px 0 4px; color: #0b2715; font-size: 28px; font-weight: 600; letter-spacing: -.5px; }
.cri-comitati-map #dettaglio h3 { margin: 16px 0 8px; color: #3f4145; font-size: 16px; font-weight: 600; }
.cri-comitati-map #dettaglio p { margin: 0 0 12px; }
.cri-comitati-map #dettaglio ul { margin: 8px 0 12px; padding-left: 18px; }
.cri-comitati-map #dettaglio table { width: 100%; border-collapse: collapse; font-size: 13px; }
.cri-comitati-map #dettaglio td { padding: 3px 4px; border: 0; }
.cri-comitati-map #mobileToggle, .cri-comitati-map #mobileClose { display: none; }
.cri-comitati-map .etichetta-comune { background: transparent; border: 0; box-shadow: none; color: #111; font-size: 12px; font-weight: 700; text-shadow: 1px 1px 2px #fff, -1px -1px 2px #fff; }
.cri-comitati-map .comune-titolo { display: flex; align-items: baseline; gap: 6px; margin: 0; }
.cri-comitati-map .comune-titolo h2, .cri-comitati-map .comune-titolo h3 { margin: 0; }
.cri-comitati-map .comitato-evidenziato { display: inline; margin-left: 4px; color: #b00000; font-size: 17px; font-weight: 700; }
.cri-comitati-map .sede-comitato { margin-top: 6px; line-height: 1.15; }
.cri-comitati-map .link-gaia { display: inline-flex; align-items: center; gap: 7px; margin-top: 7px; padding: 5px 9px; border: 1px solid #ddd; border-radius: 6px; background: #f7f7f7; color: #b00000; text-decoration: none; font-size: 13px; font-weight: 600; }
.cri-comitati-map .link-gaia:hover { background: #eee; color: #8b0000; }
.cri-comitati-map .link-gaia-icon { width: 18px; height: 18px; flex: 0 0 18px; }

@media (min-width: 701px) {
    .cri-comitati-map #selectComitato, .cri-comitati-map #selectComune { width: 240px !important; }
    .cri-comitati-map #baseMap { width: 150px !important; }
}

@media (max-width: 700px) {
    .cri-map-page { height: auto; min-height: 0; padding-top: 76px; }
    .cri-comitati-map { display: flex; flex-direction: column; height: auto; min-height: 0; overflow: visible; }
    .cri-comitati-map #map { order: 1; width: 100%; height: clamp(420px, 62svh, 620px); min-height: 420px; flex: 0 0 auto; }
    .cri-comitati-map #mobileToggle { display: none; }
    .cri-comitati-map #info { order: 2; position: static; width: 100%; height: auto; max-height: none; padding: 24px 16px calc(24px + env(safe-area-inset-bottom)); border-radius: 0; box-shadow: 0 -2px 12px rgba(0, 0, 0, .12); overflow: visible; transform: none; }
    .cri-comitati-map #mobileClose { display: none; }
    .cri-comitati-map .intestazione-cri { clear: both; margin-top: 0; margin-bottom: 14px; }
    .cri-comitati-map .titolo-cri { font-size: 18px; }
    .cri-comitati-map .sottotitolo-cri { font-size: 14px; }
    .cri-comitati-map .progetto-cri { font-size: 13px; }
    .cri-comitati-map .sistema-cri { font-size: 11px; }
    .cri-comitati-map #info h2 { font-size: 20px; }
    .cri-comitati-map #info h3 { margin-top: 12px; margin-bottom: 8px; font-size: 17px; }
    .cri-comitati-map #info select { width: 100%; min-height: 46px; margin-bottom: 4px; }
    .cri-comitati-map #info button { min-height: 46px; padding: 8px 16px; border-radius: 8px; }
    .cri-comitati-map #info input[type="range"] { width: 100%; min-height: 34px; }
    .cri-comitati-map #info .copyright { margin-top: 14px; padding-bottom: 4px; }
    .cri-comitati-map .leaflet-control-zoom a { width: 44px !important; height: 44px !important; line-height: 44px !important; font-size: 22px !important; }
    .cri-comitati-map .leaflet-control-attribution { font-size: 9px; }
    .cri-comitati-map .leaflet-popup-content { font-size: 15px; line-height: 1.35; }
    .cri-comitati-map .leaflet-popup-content-wrapper { border-radius: 12px; }
}
