.gal-mappa-wrapper {
	position: relative;
	width: 100%;
	font-family: inherit;
}

/* Mappa fullwidth */
.gal-mappa-map-container {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.gal-mappa-map {
	width: 100%;
	height: var(--gal-map-height-desktop, 50vh);
	z-index: 1;
}

/* Overlay che blocca zoom/scroll involontari della mappa durante lo scroll della pagina */
.gal-mappa-scroll-guard {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 80;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: rgba(13, 36, 22, 0.72);
	background-image:
		linear-gradient(rgba(13, 36, 22, 0.55), rgba(13, 36, 22, 0.55)),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='0.12' stroke-width='2'%3E%3Cpath d='M0 40 Q 50 10 100 40 T 200 40'/%3E%3Cpath d='M0 80 Q 50 50 100 80 T 200 80'/%3E%3Cpath d='M0 120 Q 50 90 100 120 T 200 120'/%3E%3Cpath d='M0 160 Q 50 130 100 160 T 200 160'/%3E%3C/g%3E%3C/svg%3E");
	background-blend-mode: normal;
	cursor: pointer;
}

.gal-mappa-scroll-guard.is-hidden {
	display: none;
}

.gal-mappa-scroll-guard-box {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	max-width: 360px;
	width: calc(100% - 40px);
	padding: 36px 32px;
	background-color: transparent;
	background-image: linear-gradient(6deg, #1d492b, #2f6b44, #3d8a58, #2f6b44, #1d492b);
	background-size: 200% 200%;
	color: #ffffff;
	border-radius: 18px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
	text-align: center;
	font-weight: 700;
	animation: galScrollGuardPulse 2.5s ease-out infinite, gal-mappa-gradient-shift 8s ease-in-out infinite alternate;
}

/* Effetto "sonar": l'anello si espande e svanisce in una sola direzione
   (nessun "ritorno" a contrarsi), poi riparte da capo — non un pulse
   simmetrico avanti/indietro. */
@keyframes galScrollGuardPulse {
	0%   { box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25), 0 0 0 0 rgba(255, 255, 255, 0.16); }
	100% { box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25), 0 0 0 46px rgba(255, 255, 255, 0); }
}

@media (prefers-reduced-motion: reduce) {
	.gal-mappa-scroll-guard-box {
		animation: none;
	}
}

.gal-mappa-scroll-guard-icon {
	color: #ffffff;
	margin-top: -10px;
}

.gal-mappa-scroll-guard-text {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.gal-mappa-scroll-guard-title {
	margin: 0;
	font-size: 26px;
	font-weight: 700 !important;
	color: #ffffff !important;
	margin-bottom: 10px;
}

.gal-mappa-scroll-guard-subtitle {
	margin: 0;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.5;
	opacity: 0.85;
	color: #ffffff;
}

.gal-mappa-scroll-guard-btn {
	margin-top: 4px;
	padding: 10px 24px;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 999px;
	background: transparent;
	color: #ffffff;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	cursor: pointer;
	transition: background 0.2s ease;
}

.gal-mappa-scroll-guard-btn:hover {
	background: rgba(255, 255, 255, 0.15);
}

/* Tasto per riattivare l'overlay di blocco scroll/zoom: stesso stile
   (sfondo, padding, dimensioni) del tasto "Filtri e strumenti". */
.gal-mappa-lock-toggle {
	display: none;
	align-items: center;
	gap: 8px;
	position: absolute;
	bottom: 16px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 90;
	height: 44px;
	padding: 0 16px;
	white-space: nowrap;
	background-color: transparent;
	background-image: linear-gradient(6deg, #e8702a, #f3934f, #ffab73, #f3934f, #e8702a);
	background-size: 200% 200%;
	animation: gal-mappa-gradient-shift 8s ease-in-out infinite alternate;
	border: none;
	border-radius: 6px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
	font-weight: 700;
	font-size: 15px;
	color: #ffffff;
	cursor: pointer;
}

.gal-mappa-lock-toggle.is-visible {
	display: flex;
}

.gal-mappa-lock-icon {
	flex-shrink: 0;
}

/* Toolbar filtri - assoluta, centrata in alto, sovrapposta alla mappa */
.gal-mappa-filters {
	position: absolute;
	top: 16px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 100;
	display: flex;
	gap: 16px;
	background: #ffffff;
	padding: 10px 18px;
	border-radius: 6px;
	box-shadow: 0 2px 10px rgba(0,0,0,0.15);
}

.gal-mappa-filter {
	display: flex;
	min-width: 130px;
}

.gal-mappa-filter select {
	padding: 6px 8px;
	border: 1px solid #ddd;
	border-radius: 4px;
	background: #fff;
	font-size: 14px;
	margin-bottom: 0 !important;
	color: #999;
}

.gal-mappa-filter select.has-value {
	color: #e8702a;
	font-weight: bold;
}

/* Filtro attivo (settore e/o categoria): solo il pallino con la cifra
   dentro il pin del singolo post passa dal verde tema all'arancione — i
   pin aggregatori (cluster) restano verdi. Stesso trattamento per i
   valori nell'elenco comuni della sidebar. */
.gal-mappa-wrapper--filtered .gal-pin-value {
	background: #e8702a;
}

.gal-mappa-wrapper--filtered .gal-list-valore {
	color: #e8702a;
}

/* Pannello dettaglio - overlay sulla mappa, scorrevole da destra */
.gal-mappa-detail {
	position: absolute;
	top: 0;
	right: 0;
	height: 100%;
	width: 320px;
	max-width: 100%;
	background: #ffffff;
	box-shadow: -2px 0 10px rgba(0,0,0,0.15);
	z-index: 100;
	padding: 20px;
	overflow-y: auto;
	transform: translateX(100%);
	transition: transform 0.3s ease, visibility 0s linear 0.3s;
	visibility: hidden;
	pointer-events: none;
}

.gal-mappa-detail.is-open {
	transform: translateX(0);
	transition: transform 0.3s ease, visibility 0s linear 0s;
	visibility: visible;
	pointer-events: auto;
}

.gal-detail-header {
	border-bottom: 1px solid #eee;
	margin: 0 0 14px;
	padding: 0 24px 14px 0;
}

.gal-mappa-detail h3 {
	margin: 0 0 6px;
}

.gal-detail-meta {
	font-size: 13px;
	color: #777;
	margin: 0;
}

.gal-detail-table .gal-detail-zero {
	color: #bbb !important;
}

.gal-detail-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	border: none !important;
}

.gal-detail-table tr,
.gal-detail-table td,
.gal-detail-table th {
	border: none !important;
}

.gal-detail-table td {
	padding: 6px 0;
	border-bottom: 1px solid #f0f0f0 !important;
}

/* Righe alternate: piena opacità / 86%, stesso verde tema. */
.gal-detail-table tr:nth-child(odd) td {
	color: rgba(29, 73, 43, 1) !important;
}
.gal-detail-table tr:nth-child(even) td {
	color: rgba(29, 73, 43, 0.86) !important;
}

.gal-detail-table td:last-child {
	text-align: right;
	font-weight: 600;
}

/* Riga corrispondente al filtro Settore/Categoria attualmente attivo. */
.gal-detail-table tr.is-filter-match td {
	background: rgba(232, 112, 42, 0.14) !important;
	color: #b85815 !important;
	font-weight: 700;
}

.gal-detail-totale td {
	border-top: 2px solid #1d492b !important;
	border-bottom: none !important;
	font-weight: 700;
	color: #1d492b !important;
}

.gal-detail-contributo td {
	color: #777 !important;
	font-style: italic;
	border-bottom: none !important;
}

.gal-detail-close {
	position: absolute;
	top: 14px;
	right: 14px;
	background: none;
	border: none;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	color: #999;
}

.gal-detail-close:hover {
	color: #333;
}

/* Lista comuni - sotto la mappa, tag cloud, larghezza gestita da Enfold (.container) */
.gal-list-container {
	padding-top: 40px !important;
	padding-bottom: 50px !important;
}

.gal-mappa-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.gal-list-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
	width: calc((100% - 40px) / 5);
	flex: 0 0 calc((100% - 40px) / 5);
	padding: 8px 16px;
	border: 1px solid #eee;
	border-radius: 999px;
	cursor: pointer;
	font-size: 13px;
	background: #fff;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.gal-list-item:hover {
	background: #f7f7f7;
	border-color: #ddd;
}

.gal-list-nome {
	font-weight: 600;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gal-list-valore {
	color: #1d492b;
	font-weight: 600;
}

/* Pin custom */
.gal-pin-wrapper {
	background: transparent;
	border: none;
}

/* Centra il pin (larghezza variabile) esattamente sul punto geografico:
   non può stare sull'elemento .leaflet-marker-icon perché Leaflet vi
   applica già un transform inline per il posizionamento (un solo transform
   per elemento — il nostro verrebbe sovrascritto), quindi vive su un
   figlio dedicato, posizionato allo stesso punto (0,0 dell'icona) e
   ricentrato con -50%/-50%. */
.gal-pin-anchor {
	position: absolute;
	left: 0;
	top: 0;
	transform: translate(-50%, -50%);
}

.gal-pin {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 4px 0 12px;
	border-radius: 999px;
	background: #ffffff;
	color: #1d492b;
	font-family: Sora, sans-serif;
	font-weight: 700;
	font-size: 12px;
	white-space: nowrap;
}

/* Pin del singolo marker (post): "bordo" sfumato verde animato ottenuto
   con un wrapper esterno (background a gradiente + padding) dietro al
   pin bianco — un vero border-image animato non è praticabile in CSS. */
.gal-pin-border {
	display: inline-flex;
	padding: 2px;
	border-radius: 999px;
	background-color: transparent;
	background-image: linear-gradient(6deg, #1d492b, #2f6b44, #3d8a58, #2f6b44, #1d492b);
	background-size: 200% 200%;
	animation: gal-mappa-gradient-shift 8s ease-in-out infinite alternate;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
	transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}

/* Evidenziazione: il pin REALE cliccato (nessun clone) assume bordo
   arancione + ingrandimento, mentre il dettaglio resta aperto. Applicato
   a questo nodo interno (non al wrapper posizionato da Leaflet) per non
   interferire con il posizionamento del marker sulla mappa. */
.gal-pin-border--highlight {
	background-image: linear-gradient(6deg, #e8702a, #f3934f, #ffab73, #f3934f, #e8702a);
	box-shadow: 0 4px 16px rgba(232, 112, 42, 0.55);
	transform: scale(1.46);
}

/* Cluster (raggruppamento marker): stesso sfondo animato a gradiente
   usato altrove per gli elementi "attivi/azione" del tema. */
/* Il "bordo" animato ora lo fornisce il wrapper .gal-pin-border (stesso
   trattamento del pin singolo); qui resta solo il pallino bianco con
   testo verde. */
/* Sfondo animato a gradiente (come prima) + bordo sfumato del wrapper
   .gal-pin-border: doppio strato animato, stessa tonalità di verde. */
.gal-pin-cluster {
	min-width: 56px;
	height: 36px;
	padding: 0 12px;
	background-color: transparent;
	background-image: linear-gradient(6deg, #1d492b, #2f6b44, #3d8a58, #2f6b44, #1d492b);
	background-size: 200% 200%;
	animation: gal-mappa-gradient-shift 8s ease-in-out infinite alternate;
	color: #ffffff;
}

.gal-pin-zero {
	opacity: 0.35;
}

.gal-pin-nome {
	margin-right: 6px;
}

/* Valore del singolo marker: pallino verde con testo bianco, ancorato
   sul lato destro del pin. */
.gal-pin-value {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	padding: 0 3px;
	border-radius: 999px;
	background: #1d492b;
	color: #ffffff !important;
	font-size: 10px;
	height: 32px !important;
	width: 34px !important;
	right: -4px !important;
	position: relative !important;
	margin-left: 0px !important;
	margin-right: 2px;
	transition: background 0.25s ease;
}

/* Piccola animazione in/out quando il valore cambia (es. dopo un filtro),
   invece di ricreare l'intera icona del pin (che causava uno scatto). */
@keyframes gal-pin-value-pulse {
	0%   { transform: scale(1); }
	40%  { transform: scale(0.65); opacity: 0.5; }
	100% { transform: scale(1); opacity: 1; }
}

.gal-pin-value--pulse {
	animation: gal-pin-value-pulse 0.35s ease-out;
}

@media (prefers-reduced-motion: reduce) {
	.gal-pin-value--pulse {
		animation: none;
	}
}

.gal-pin--highlight {
	background: #fff3e8;
	color: #b85815;
}

@media (prefers-reduced-motion: reduce) {
	.gal-pin-border,
	.gal-pin-cluster {
		animation: none;
	}
}



/* Info row: programmazione + misura */
.gal-detail-info {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid #eee;
	font-size: 11px;
	color: #888;
}

.gal-detail-prog {
	font-style: italic;
}

.gal-detail-misura {
	font-family: monospace;
	font-size: 11px;
	color: #555;
	font-weight: 700;
}

/* Share toolbar */
.gal-detail-share {
	display: flex;
	gap: 12px;
	justify-content: flex-end;
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px solid #eee;
}

.gal-share-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	color: #aaa;
	transition: color 0.15s ease;
	text-decoration: none;
}

.gal-share-btn:hover {
	color: #1d492b;
}

/* Preloader: nessun overlay bianco, solo un Pac-Man in alto (30px dal
   bordo, centrato orizzontalmente) che "mangia" tre pallini finché i
   dati non sono caricati. */
.gal-mappa-preloader {
	position: absolute;
	top: 30px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 95;
	display: flex;
	align-items: center;
	gap: 10px;
	transition: opacity 0.4s ease;
}

.gal-mappa-preloader.is-hidden {
	opacity: 0;
	pointer-events: none;
}

/* Cerchio pieno con un "morso" triangolare a destra, animato via
   clip-path (più stabile e nitido del classico trucco a bordi). */
.gal-pacman {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #1d492b;
	animation: galPacmanChomp 0.4s linear infinite;
}

@keyframes galPacmanChomp {
	0%, 100% { clip-path: polygon(100% 74%, 44% 50%, 100% 26%, 100% 0%, 0% 0%, 0% 100%, 100% 100%); }
	50%      { clip-path: polygon(100% 51%, 44% 50%, 100% 49%, 100% 0%, 0% 0%, 0% 100%, 100% 100%); }
}

.gal-pacman-dot {
	display: block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #1d492b;
	animation: galPacmanDot 0.8s linear infinite;
}

.gal-pacman-dot:nth-child(3) { animation-delay: 0.13s; }
.gal-pacman-dot:nth-child(4) { animation-delay: 0.26s; }

@keyframes galPacmanDot {
	75%, 100% { transform: scale(0.2); opacity: 0.2; }
}

@media (prefers-reduced-motion: reduce) {
	.gal-pacman,
	.gal-pacman-dot {
		animation: none;
	}
}

/* Overlay chiudi dettaglio: solo per l'interazione "click fuori per
   chiudere" — il tinteggio scuro vero e proprio ora lo fornisce
   .gal-pin-spotlight (che ha anche il "foro" sagomato sul pin). */
.gal-mappa-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 99;
	background: transparent;
	opacity: 0;
	pointer-events: none;
	cursor: pointer;
	transition: opacity 0.15s ease;
}

.gal-mappa-overlay.is-active {
	opacity: 1;
	pointer-events: auto;
}

/* Spotlight: un rettangolo trasparente (stessa forma "a pillola" del
   pin, larghezza/altezza reali misurate in JS) con un box-shadow enorme
   che scurisce tutto il resto — il "foro" ha quindi esattamente la forma
   e le dimensioni effettive del pin evidenziato, non un cerchio fisso. */
.gal-pin-spotlight {
	position: absolute;
	z-index: 99;
	border-radius: 999px;
	background: transparent;
	pointer-events: none;
	opacity: 0;
	filter: blur(14px);
	transition: opacity 0.15s ease;
}

.gal-pin-spotlight.is-active {
	opacity: 1;
	box-shadow: 0 0 0 2000px rgba(29, 73, 43, 0.36);
}


/* Responsive */
@media (max-width: 1024px) {
	.gal-list-item {
		width: calc((100% - 20px) / 3);
		flex: 0 0 calc((100% - 20px) / 3);
	}
}

@media (max-width: 768px) {
	.gal-mappa-filters {
		top: 13px;
		left: auto;
		right: 13px;
		transform: none;
		gap: 8px;
		padding: 8px;
	}

	.gal-mappa-filter {
		min-width: 0;
		flex: 1;
	}

	.gal-mappa-filter select {
		width: 100%;
	}

	.gal-mappa-detail {
		width: 73%;
		background: rgba(255,255,255,0.96);
	}

	.gal-mappa-map {
		height: var(--gal-map-height-mobile, 50vh);
	}

	/* Lista mobile: colonna singola, scroll interno */
	.gal-mappa-wrapper {
		display: flex;
		flex-direction: column;
		height: 100svh;
		height: 100vh; /* fallback */
	}

	.gal-mappa-map-container {
		flex: 0 0 var(--gal-map-height-mobile, 50vh);
	}

	.gal-list-container {
		flex: 1;
		min-height: 0;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding-top: 12px !important;
		padding-bottom: 12px !important;
	}

	.gal-list-item {
		width: 100%;
		flex: 0 0 100%;
	}
}

/* ============================================================
   Sidebar toolbar sinistra (opt-in, attributo shortcode sidebar="yes")
   Sostituisce, quando attiva, la barra filtri in alto e la lista sotto
   la mappa con un pannello verticale apribile/chiudibile, alto quanto
   la mappa, con zoom custom + filtri in colonna + elenco scrollabile.
   ============================================================ */
.gal-mappa-sidebar {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	width: 320px;
	max-width: 85%;
	z-index: 110;
	display: flex;
	flex-direction: column;
	background: #ffffff;
	box-shadow: 2px 0 10px rgba(0, 0, 0, 0.15);
	transform: translateX(-100%);
	transition: transform 0.25s ease;
}

.gal-mappa-sidebar.is-open {
	transform: translateX(0);
}

/* Apri/chiudi sidebar: due pulsanti indipendenti, assoluti rispetto al
   contenitore mappa (non alla sidebar, che ha un transform), ancorati in
   alto a sinistra. Quello "apri" sparisce in fade quando la sidebar è
   aperta, sostituito da un quadrato con la sola X per richiuderla. */
.gal-mappa-sidebar-open {
	position: absolute;
	top: 30px;
	left: 30px;
	z-index: 150;
	display: flex;
	align-items: center;
	gap: 8px;
	height: 44px;
	padding: 0 16px;
	white-space: nowrap;
	border: none;
	background-color: transparent;
	background-image: linear-gradient(6deg, #e8702a, #f3934f, #ffab73, #f3934f, #e8702a);
	background-size: 200% 200%;
	animation: gal-mappa-gradient-shift 8s ease-in-out infinite alternate;
	color: #ffffff;
	cursor: pointer;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
	border-radius: 6px;
	font-size: 15px;
	font-weight: 700;
	opacity: 1;
	transition: opacity 0.25s ease;
}

.gal-mappa-sidebar-open.is-hidden {
	opacity: 0;
	pointer-events: none;
}

/* Il pulsante di chiusura ora vive dentro la sidebar (4° pulsante della
   griglia zoom): appare/scompare insieme al pannello, nessuna gestione
   di visibilità separata necessaria. */

/* Zoom + reset: griglia edge-to-edge (nessun padding/gap laterale, i
   pulsanti si toccano fra loro con solo un filo di bordo). */
.gal-sidebar-zoom {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-bottom: 1px solid #eee;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}

/* Sfondo animato a gradiente scorrevole, stesso linguaggio visivo usato
   altrove (es. card bandi) per gli elementi "attivi/azione". */
@keyframes gal-mappa-gradient-shift {
	0%   { background-position: 0% 0%; }
	100% { background-position: 100% 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.gal-mappa-sidebar-open,
	.gal-mappa-sidebar-close,
	.gal-mappa-lock-toggle {
		animation: none !important;
	}
}

.gal-sidebar-zoom button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 48px;
	padding: 0;
	margin: 0;
	border: none;
	border-right: 1px solid #eee;
	border-radius: 0;
	background: #fff;
	color: #1d492b;
	cursor: pointer;
	transition: background 0.15s ease;
}

.gal-sidebar-zoom button:last-child {
	border-right: none;
}

/* Il pulsante "chiudi" (4° della griglia zoom) si distingue dagli altri
   tre con uno sfondo arancione animato — stesso trattamento del tasto
   OFF e della card "Avvia navigazione". */
.gal-sidebar-zoom .gal-mappa-sidebar-close {
	background-color: transparent;
	background-image: linear-gradient(6deg, #e8702a, #f3934f, #ffab73, #f3934f, #e8702a);
	background-size: 200% 200%;
	animation: gal-mappa-gradient-shift 8s ease-in-out infinite alternate;
	color: #ffffff;
}

/* "Leggermente più grande" tramite l'icona, non un transform:scale sul
   bottone: essendo l'ultima cella della griglia (4a colonna, bordo destro
   della sidebar), lo scale la faceva sporgere fuori dal contenitore. */
.gal-sidebar-zoom .gal-mappa-sidebar-close svg {
	width: 22px;
	height: 22px;
}

.gal-sidebar-zoom .gal-mappa-sidebar-close:hover {
	background-color: transparent;
	background-image: linear-gradient(6deg, #e8702a, #f3934f, #ffab73, #f3934f, #e8702a);
	background-size: 200% 200%;
}

.gal-sidebar-zoom button:hover {
	background: #f7f7f7;
}

/* Filtri: select edge-to-edge, impilate senza padding laterale, separate
   da un filo di bordo fra loro. */
.gal-sidebar-filters {
	display: flex;
	flex-direction: column;
	border-bottom: 1px solid #eee;
}

.gal-sidebar-filters .gal-mappa-filter {
	min-width: 0;
	width: 100%;
	border-bottom: 1px solid #eee;
}

.gal-sidebar-filters .gal-mappa-filter:last-child {
	border-bottom: none;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}

.gal-sidebar-filters .gal-mappa-filter select {
	-webkit-appearance: none;
	width: 100%;
	margin: 0 !important;
	padding: 14px 16px !important;
	border: none;
	border-radius: 0;
	background: #fff;
	font-size: 14px !important;
	color: #999 !important;
}

.gal-sidebar-filters .gal-mappa-filter select.has-value {
	color: #e8702a !important;
	font-weight: bold !important;
}

.gal-sidebar-filters .gal-mappa-filter select:focus {
	outline: none;
	background: #f7f7f7;
}

/* Lista: righe edge-to-edge, separate solo da border-bottom (no gap,
   no margin, no pillola). */
.gal-sidebar-list {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.gal-sidebar-list .gal-mappa-list {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.gal-sidebar-list .gal-list-item {
	width: 100%;
	flex: 0 0 auto;
	margin: 0 !important;
	padding: 6px 16px;
	border: none;
	border-bottom: 1px solid #eee;
	border-radius: 0;
}

.gal-sidebar-list .gal-list-item:last-child {
	border-bottom: none;
}

@media (max-width: 768px) {
	.gal-mappa-sidebar {
		width: 85%;
	}
}

@media (max-width: 480px) {
	.gal-mappa-sidebar {
		max-width: 280px;
	}

	/* Solo icona, niente etichetta testuale, sui pulsanti apri-sidebar e
	   chiudi mappa. */
	.gal-mappa-sidebar-open span,
	.gal-mappa-lock-toggle span {
		display: none;
	}

	/* "Chiudi mappa" affiancato a "Filtri e strumenti" in alto a sinistra
	   (non più in basso al centro) quando non c'è etichetta testuale. */
	.gal-mappa-lock-toggle {
		top: 30px;
		bottom: auto;
		left: 82px;
		transform: none;
	}

	.gal-mappa-sidebar-open,
	.gal-mappa-lock-toggle {
		width: 44px;
		padding: 0;
		justify-content: center;
	}
}
