/*
 * Mappa sedi Move Better.
 *
 * File CSS autonomo, non compilato dagli SCSS del tema: movebetter.css viene
 * rigenerato dal build SCSS e sovrascriverebbe qualsiasi aggiunta fatta a mano.
 * Le classi sono tutte prefissate mb-mappa- / mb-sede-.
 *
 * Impianto chiaro: fondo bianco, testo #2A3236, accento lime #C7C903 usato per
 * riempimenti e icone. Il lime su bianco non ha contrasto sufficiente per il
 * testo, quindi per i link si usa la variante scura.
 *
 * Le schede scorrono con la pagina: nessuna area con scroll interno. La colonna
 * mappa e' sticky, cosi' resta visibile mentre si scorrono le sedi.
 */

/*
 * Condizione perche' lo sticky funzioni.
 *
 * movebetter.css imposta body { overflow-x: hidden }, che rende il body un
 * contenitore di scroll: da quel momento l'antenato scrollabile di qualunque
 * position:sticky e' il body, che pero' non scorre al proprio interno (a
 * scorrere e' il viewport), quindi lo sticky non si aggancia mai.
 *
 * overflow-x: clip taglia l'eccedenza orizzontale esattamente come hidden, che
 * e' lo scopo per cui il tema l'ha messo, ma non crea un contenitore di scroll.
 * Stessa cosa per i wrapper del page builder, che in alcune configurazioni
 * ritagliano il contenuto.
 *
 * Le regole sono limitate con :has() alle pagine e ai contenitori che ospitano
 * davvero il blocco, per non cambiare il comportamento del resto del sito. Sui
 * browser senza :has() vengono ignorate: la mappa scorre con la pagina invece
 * di restare agganciata, che e' una degradazione accettabile.
 */
body:has(.mb-mappa-sedi) {
	overflow-x: clip;
}

.gdlr-core-pbf-wrapper:has(.mb-mappa-sedi),
.gdlr-core-pbf-wrapper-content:has(.mb-mappa-sedi),
.gdlr-core-pbf-column:has(.mb-mappa-sedi),
.gdlr-core-pbf-column-content-margin:has(.mb-mappa-sedi),
.gdlr-core-pbf-element:has(.mb-mappa-sedi),
.gdlr-core-text-box-item:has(.mb-mappa-sedi),
.gdlr-core-text-box-item-content:has(.mb-mappa-sedi) {
	overflow: visible;
}

/*
 * La palette sta su :root, non sul componente: le CTA del template della sede
 * singola vivono fuori da .mb-mappa-sedi e con le variabili dichiarate li'
 * dentro resterebbero senza colore, perche' var() non risolverebbe nulla.
 * La geometria invece resta sul componente, dove i media query la ritoccano.
 */
:root {
	--mb-mappa-bg: #ffffff;
	--mb-mappa-surface: #f5f6f1;
	--mb-mappa-ink: #2A3236;
	--mb-mappa-muted: #5b666b;
	--mb-mappa-line: #dfe2da;
	--mb-mappa-lime: #C7C903;
	--mb-mappa-lime-deep: #7f8101;
}

.mb-mappa-sedi {
	--mb-mappa-map-height: 500px;
	--mb-mappa-map-min: 500px;
	/*
	 * Distanza dal bordo alto quando la colonna si aggancia. Deve superare
	 * l'altezza della navigazione fissa del tema, altrimenti la ricerca finisce
	 * appiccicata sotto il menu.
	 */
	--mb-mappa-sticky-top: 150px;
	--mb-mappa-sticky-gap: 30px;

	background-color: var(--mb-mappa-bg);
	color: var(--mb-mappa-ink);
	font-family: "Figtree", sans-serif;
	padding: 10px 0 30px;
	box-sizing: border-box;
}

.mb-mappa-sedi *,
.mb-mappa-sedi *::before,
.mb-mappa-sedi *::after {
	box-sizing: inherit;
}

/*
 * Le regole display di questo file batterebbero il display:none che il browser
 * applica a [hidden]: senza questa riga gli strumenti resterebbero visibili con
 * JavaScript disattivato e le distanze comparirebbero prima di essere calcolate.
 */
.mb-mappa-sedi [hidden] {
	display: none !important;
}

/* ---------------------------------------------------------------- strumenti */

.mb-mappa-sedi__tools {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 14px;
	margin-bottom: 20px;
}

.mb-mappa-sedi__tools-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
}

.mb-mappa-sedi__search {
	display: block;
}

.mb-mappa-sedi__search-field {
	display: flex;
	align-items: center;
	gap: 10px;
}

/* L'etichetta e' visibile: fa da occhiello sopra il campo di ricerca. */
.mb-mappa-sedi__search-label {
	display: block;
	margin-bottom: 8px;
	color: var(--mb-mappa-lime-deep);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.mb-mappa-sedi__search-input {
	flex: 1 1 auto;
	min-width: 0;
	height: 52px;
	padding: 0 16px;
	border: 1.5px solid var(--mb-mappa-line);
	border-radius: 0;
	background-color: var(--mb-mappa-bg);
	color: var(--mb-mappa-ink);
	font-family: inherit;
	font-size: 16px;
	transition: border-color 0.2s ease;
}

.mb-mappa-sedi__search-input::placeholder {
	color: var(--mb-mappa-muted);
	opacity: 1;
}

.mb-mappa-sedi__search-input:focus {
	outline: none;
	border-color: var(--mb-mappa-lime-deep);
}

/*
 * Bottoni: stesso trattamento skew dei gdlr-core-button del tema.
 * Il selettore include il tag a per battere ".zyth-body a" del tema padre, che
 * altrimenti imporrebbe il proprio colore alle CTA.
 */
.mb-mappa-sedi__button,
.mb-mappa-sedi a.mb-mappa-sedi__cta,
.mb-sede-single a.mb-mappa-sedi__cta {
	display: inline-block;
	padding: 15px 28px;
	border: 1.5px solid var(--mb-mappa-lime);
	border-radius: 0;
	background-color: var(--mb-mappa-lime);
	color: var(--mb-mappa-ink);
	font-family: inherit;
	font-size: 15px;
	font-style: italic;
	font-weight: 800;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
	transform: skewX(-15deg);
	-webkit-transform: skewX(-15deg);
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.mb-mappa-sedi__button-content {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	transform: skewX(15deg);
	-webkit-transform: skewX(15deg);
}

.mb-mappa-sedi__button:hover,
.mb-mappa-sedi__button:focus-visible,
.mb-mappa-sedi a.mb-mappa-sedi__cta:hover,
.mb-mappa-sedi a.mb-mappa-sedi__cta:focus-visible,
.mb-sede-single a.mb-mappa-sedi__cta:hover,
.mb-sede-single a.mb-mappa-sedi__cta:focus-visible {
	background-color: var(--mb-mappa-ink);
	border-color: var(--mb-mappa-ink);
	color: #ffffff;
}

.mb-mappa-sedi__button:focus-visible,
.mb-mappa-sedi a.mb-mappa-sedi__cta:focus-visible,
.mb-sede-single a.mb-mappa-sedi__cta:focus-visible {
	outline: 2px solid var(--mb-mappa-ink);
	outline-offset: 3px;
}

.mb-mappa-sedi__button[disabled] {
	opacity: 0.55;
	cursor: progress;
}

/* Secondaria: contorno, non riempita, per non competere con la primaria. */
.mb-mappa-sedi a.mb-mappa-sedi__cta--alt,
.mb-sede-single a.mb-mappa-sedi__cta--alt {
	background-color: transparent;
	border-color: var(--mb-mappa-ink);
	color: var(--mb-mappa-ink);
}

.mb-mappa-sedi__search-submit {
	padding: 15px 22px;
	flex: 0 0 auto;
}

.mb-mappa-sedi__geo {
	background-color: transparent;
	border-color: var(--mb-mappa-ink);
}

.mb-mappa-sedi__reset {
	border: 0;
	background: none;
	padding: 6px 2px;
	color: var(--mb-mappa-muted);
	font-family: inherit;
	font-size: 14px;
	font-style: italic;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.mb-mappa-sedi__reset:hover,
.mb-mappa-sedi__reset:focus-visible {
	color: var(--mb-mappa-lime-deep);
}

/* La regione live resta nel DOM: si collassa solo quando e' vuota. */
.mb-mappa-sedi__status {
	margin: 0 0 20px;
	padding: 12px 16px;
	border-left: 3px solid var(--mb-mappa-lime);
	background-color: var(--mb-mappa-surface);
	color: var(--mb-mappa-ink);
	font-size: 15px;
	line-height: 1.45;
}

.mb-mappa-sedi__status:empty {
	display: none;
}

.mb-mappa-sedi__status.is-warning {
	border-left-color: #c98a00;
}

.mb-mappa-sedi__heading {
	margin: 0 0 22px;
	color: var(--mb-mappa-ink);
	font-family: "Figtree", sans-serif;
	font-size: 44px;
	font-style: italic;
	font-weight: 800;
	line-height: 1.05;
	text-transform: uppercase;
}

/* ------------------------------------------------------------------ layout */

/*
 * Colonna unica per default. Le due colonne arrivano solo con la classe
 * --map-on, che il JavaScript aggiunge quando la mappa viene mostrata: senza
 * JavaScript, o se Leaflet non si carica, l'elenco occupa tutta la larghezza.
 */
.mb-mappa-sedi__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 34px;
	align-items: start;
}

.mb-mappa-sedi--split.mb-mappa-sedi--map-on .mb-mappa-sedi__layout {
	grid-template-columns: minmax(0, 0.92fr) minmax(0, 1fr);
}

/*
 * La colonna sinistra (titolo, ricerca, mappa) resta ferma mentre la colonna
 * delle schede scorre con la pagina.
 *
 * L'altezza e' quella del viewport meno l'aggancio: la mappa prende tutto lo
 * spazio che avanza sotto titolo e ricerca, invece di stare a un'altezza fissa.
 * Cosi' e' la piu' alta possibile senza che la colonna esca dallo schermo, che
 * e' la condizione perche' lo sticky serva a qualcosa.
 */
.mb-mappa-sedi--split.mb-mappa-sedi--map-on .mb-mappa-sedi__aside {
	position: sticky;
	top: var(--mb-mappa-sticky-top);
	display: flex;
	flex-direction: column;
	max-height: calc(100vh - var(--mb-mappa-sticky-top) - var(--mb-mappa-sticky-gap));
}

.mb-mappa-sedi--split.mb-mappa-sedi--map-on .mb-mappa-sedi__map-col {
	flex: 1 1 auto;
	height: auto;
	/* Su schermi bassi si preferisce una mappa usabile a una colonna che entra tutta. */
	min-height: var(--mb-mappa-map-min);
}

.mb-mappa-sedi__map-col {
	position: relative;
	height: var(--mb-mappa-map-height);
	background-color: var(--mb-mappa-surface);
	border: 1.5px solid var(--mb-mappa-line);
}

.mb-mappa-sedi__map {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
}

/* Nessuna area con scroll interno: l'elenco fa parte del flusso della pagina. */
.mb-mappa-sedi__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.mb-mappa-sedi--split .mb-mappa-sedi__list {
	padding-top: 4px;
}

.mb-mappa-sedi--stack .mb-mappa-sedi__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 18px;
	margin-top: 30px;
}

/* ------------------------------------------------------------------ schede */

.mb-mappa-sedi__card {
	display: block;
	padding: 26px 28px;
	margin: 0 0 18px;
	border: 1.5px solid var(--mb-mappa-line);
	background-color: var(--mb-mappa-bg);
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.mb-mappa-sedi--stack .mb-mappa-sedi__card {
	margin: 0;
}

.mb-mappa-sedi__card:last-child {
	margin-bottom: 0;
}

.mb-mappa-sedi__card:hover,
.mb-mappa-sedi__card:focus-within,
.mb-mappa-sedi__card.is-active {
	border-color: var(--mb-mappa-lime);
	box-shadow: 0 4px 18px rgba(42, 50, 54, 0.09);
}

.mb-mappa-sedi__card.is-active {
	background-color: var(--mb-mappa-surface);
}

.mb-mappa-sedi__body {
	min-width: 0;
}

.mb-mappa-sedi__name {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 16px;
	color: var(--mb-mappa-ink);
	font-family: "Figtree", sans-serif;
	font-size: 28px;
	font-style: italic;
	font-weight: 800;
	line-height: 1.1;
	text-transform: uppercase;
}

.mb-mappa-sedi__row {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0 0 8px;
	color: var(--mb-mappa-muted);
	font-size: 16px;
	line-height: 1.45;
}

.mb-mappa-sedi .mb-mappa-sedi__row a,
.mb-sede-single .mb-sede-single__contact a {
	color: var(--mb-mappa-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--mb-mappa-line);
	word-break: break-word;
}

.mb-mappa-sedi .mb-mappa-sedi__row a:hover,
.mb-mappa-sedi .mb-mappa-sedi__row a:focus-visible,
.mb-sede-single .mb-sede-single__contact a:hover,
.mb-sede-single .mb-sede-single__contact a:focus-visible {
	color: var(--mb-mappa-lime-deep);
	border-bottom-color: currentColor;
}

.mb-mappa-sedi__icon {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin-top: 2px;
	fill: var(--mb-mappa-lime-deep);
}

.mb-mappa-sedi__name .mb-mappa-sedi__icon {
	width: 24px;
	height: 24px;
	margin-top: 0;
	fill: var(--mb-mappa-lime);
}

.mb-mappa-sedi__distance {
	display: inline-block;
	margin: 16px 0 0;
	padding: 6px 14px;
	background-color: var(--mb-mappa-lime);
	color: var(--mb-mappa-ink);
	font-size: 13px;
	font-style: italic;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.mb-mappa-sedi__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 22px;
}

.mb-mappa-sedi a.mb-mappa-sedi__cta {
	padding: 13px 24px;
	font-size: 14px;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* --------------------------------------------------------------- consenso */

.mb-mappa-sedi__consent {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	inset: 0;
	z-index: 500;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 18px;
	padding: 30px;
	text-align: center;
	background-color: var(--mb-mappa-surface);
}

.mb-mappa-sedi__consent-text {
	max-width: 42ch;
	margin: 0;
	color: var(--mb-mappa-muted);
	font-size: 15px;
	line-height: 1.5;
}

/* ------------------------------------------------------ controlli Leaflet */

.mb-mappa-sedi .leaflet-container {
	background-color: var(--mb-mappa-surface);
	font-family: "Figtree", sans-serif;
}

.mb-mappa-sedi .leaflet-bar,
.mb-mappa-sedi .leaflet-bar a {
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.mb-mappa-sedi .leaflet-bar {
	box-shadow: 0 2px 8px rgba(42, 50, 54, 0.22);
}

.mb-mappa-sedi .leaflet-bar a {
	width: 34px;
	height: 34px;
	line-height: 34px;
	background-color: #ffffff;
	color: var(--mb-mappa-ink);
	border-bottom: 1px solid var(--mb-mappa-line);
	font-weight: 700;
}

.mb-mappa-sedi .leaflet-bar a:last-child {
	border-bottom: 0;
}

.mb-mappa-sedi .leaflet-bar a:hover,
.mb-mappa-sedi .leaflet-bar a:focus {
	background-color: var(--mb-mappa-lime);
	color: var(--mb-mappa-ink);
}

.mb-mappa-sedi .leaflet-control-attribution {
	padding: 2px 8px;
	border-radius: 0;
	background-color: rgba(255, 255, 255, 0.9);
	color: var(--mb-mappa-muted);
	font-size: 11px;
}

.mb-mappa-sedi .leaflet-control-attribution a {
	color: var(--mb-mappa-lime-deep);
}

.mb-mappa-sedi .leaflet-popup-content-wrapper,
.mb-mappa-sedi .leaflet-popup-tip {
	border-radius: 0;
	background-color: #ffffff;
	color: var(--mb-mappa-ink);
	box-shadow: 0 6px 24px rgba(42, 50, 54, 0.22);
}

.mb-mappa-sedi .leaflet-popup-content {
	margin: 14px 18px;
	font-size: 14px;
	line-height: 1.45;
}

.mb-mappa-sedi__popup {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.mb-mappa-sedi__popup strong {
	font-size: 16px;
	font-style: italic;
	text-transform: uppercase;
}

.mb-mappa-sedi .mb-mappa-sedi__popup-link {
	margin-top: 6px;
	color: var(--mb-mappa-lime-deep);
	font-weight: 800;
	font-style: italic;
	text-transform: uppercase;
	text-decoration: none;
}

.mb-mappa-sedi .mb-mappa-sedi__popup-link:hover {
	text-decoration: underline;
}

/*
 * Tile attenuate: il filtro agisce solo sul pane delle immagini, non su marker,
 * popup e controlli, che restano a colori pieni. Toglie il verde dei boschi e il
 * rumore del rilievo tenendo un accenno di colore sull'acqua.
 */
.mb-mappa-sedi--tiles-soft .leaflet-tile-pane {
	filter: grayscale(0.82) brightness(1.07) contrast(0.9);
}

/* Marker: pin lime con contorno scuro, mai il marker blu di default. */
.mb-mappa-sedi__marker {
	display: block;
	width: 34px;
	height: 44px;
	transition: transform 0.2s ease;
}

.mb-mappa-sedi__marker svg {
	width: 100%;
	height: 100%;
	fill: var(--mb-mappa-lime);
	stroke: var(--mb-mappa-ink);
	stroke-width: 1;
	filter: drop-shadow(0 3px 5px rgba(42, 50, 54, 0.35));
}

.mb-mappa-sedi__marker.is-active {
	transform: scale(1.18) translateY(-3px);
}

.mb-mappa-sedi__marker.is-active svg {
	fill: var(--mb-mappa-ink);
	stroke: var(--mb-mappa-lime);
	stroke-width: 1.6;
}

.mb-mappa-sedi__marker--user {
	width: 18px;
	height: 18px;
	border: 3px solid #ffffff;
	border-radius: 50%;
	background-color: var(--mb-mappa-lime-deep);
	box-shadow: 0 0 0 4px rgba(199, 201, 3, 0.35);
}

.mb-mappa-sedi__wheel-hint {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	inset: 0;
	z-index: 450;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	text-align: center;
	background-color: rgba(42, 50, 54, 0.78);
	color: #ffffff;
	font-size: 16px;
	font-style: italic;
	font-weight: 700;
	text-transform: uppercase;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease, visibility 0.2s ease;
	pointer-events: none;
}

.mb-mappa-sedi__wheel-hint.is-visible {
	opacity: 1;
	visibility: visible;
}

/* ============================================================ sede singola */

/*
 * Il tema stampa la propria banda con il titolo della pagina, che qui duplica
 * l'h1 del template. Si nasconde il contenuto della banda ma non la banda: al
 * suo interno c'e' lo spaziatore che compensa l'header trasparente, e senza
 * quello il contenuto finirebbe sotto il menu. Lo sfondo resta scuro perche'
 * logo e voci di menu del tema sono chiari.
 */
body.single-sede .zyth-page-title-wrap {
	background-color: var(--mb-mappa-ink) !important;
	background-image: none !important;
	padding: 0 !important;
}

body.single-sede .zyth-page-title-wrap .zyth-page-title-container,
body.single-sede .zyth-page-title-wrap .zyth-page-title-overlay,
body.single-sede .zyth-page-title-wrap .zyth-page-title-top-gradient {
	display: none !important;
}

/*
 * Sotto la soglia della navigazione mobile l'header non e' piu' trasparente e
 * lo spaziatore va a zero: qui la banda non serve a niente e si toglie del
 * tutto. Solo sulla singola sede: il resto del sito non e' toccato.
 */
@media only screen and (max-width: 999px) {
	body.single-sede .zyth-page-title-wrap {
		display: none !important;
	}
}


.mb-sede-single {
	background-color: #ffffff;
	color: #2A3236;
	font-family: "Figtree", sans-serif;
}

.mb-sede-single__hero {
	position: relative;
	max-height: 460px;
	overflow: hidden;
}

.mb-sede-single__hero-img {
	display: block;
	width: 100%;
	height: 100%;
	max-height: 460px;
	object-fit: cover;
	object-position: center;
}

.mb-sede-single__container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 50px 20px 70px;
	box-sizing: border-box;
}

.mb-sede-single__title {
	margin: 0 0 34px;
	color: #2A3236;
	font-family: "Figtree", sans-serif;
	font-size: 42px;
	font-style: italic;
	font-weight: 800;
	line-height: 1.1;
	text-transform: uppercase;
}

/*
 * La colonna dei contatti e' piu' bassa della mappa: centrata verticalmente
 * sta in asse con essa, invece di restare appesa in alto con un vuoto sotto.
 */
.mb-sede-single__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 48px;
	align-items: center;
}

.mb-sede-single__col--map .mb-mappa-sedi,
.mb-sede-single__col--map .mb-mappa-sedi__layout {
	margin-top: 0;
	padding-top: 0;
}

.mb-sede-single__contacts {
	list-style: none;
	margin: 0 0 26px;
	padding: 0;
}

.mb-sede-single__contact {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--mb-mappa-line);
	font-size: 17px;
	line-height: 1.45;
	color: var(--mb-mappa-muted);
}

.mb-sede-single__contact:last-child {
	margin-bottom: 0;
	border-bottom: 0;
}

.mb-sede-single__contact .mb-mappa-sedi__icon {
	width: 19px;
	height: 19px;
	margin-top: 3px;
	fill: #7f8101;
	flex: 0 0 auto;
}

.mb-sede-single__text {
	margin: 24px 0 0;
	font-size: 16px;
	line-height: 1.6;
	color: var(--mb-mappa-muted);
}

.mb-sede-single__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin-top: 28px;
}

/* La mappa nel template sede non ha schede accanto: niente padding doppio. */
.mb-sede-single__col--map .mb-mappa-sedi {
	padding: 0;
}

.mb-sede-single__back {
	margin: 46px 0 0;
	font-size: 16px;
	font-style: italic;
	font-weight: 800;
	text-transform: uppercase;
}

.mb-sede-single .mb-sede-single__back a {
	color: #7f8101;
	text-decoration: none;
}

.mb-sede-single .mb-sede-single__back a:hover,
.mb-sede-single .mb-sede-single__back a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* ------------------------------------------------------------- responsive */

@media only screen and (max-width: 1099px) {
	.mb-mappa-sedi {
		--mb-mappa-map-height: 500px;
		--mb-mappa-map-min: 500px;
	}

	.mb-mappa-sedi__heading {
		font-size: 34px;
	}

	.mb-mappa-sedi__name {
		font-size: 24px;
	}
}

@media only screen and (max-width: 899px) {
	/* Sotto i 900px: mappa sopra ad altezza contenuta, schede sotto. */
	.mb-mappa-sedi,
	.mb-mappa-sedi--stack {
		--mb-mappa-map-height: 500px;
		padding: 10px 0 24px;
	}

	.mb-mappa-sedi--split.mb-mappa-sedi--map-on .mb-mappa-sedi__layout {
		grid-template-columns: minmax(0, 1fr);
	}

	/* Sticky non ha senso a colonna unica: la colonna scorre con la pagina. */
	.mb-mappa-sedi--split.mb-mappa-sedi--map-on .mb-mappa-sedi__aside {
		position: relative;
		top: auto;
		display: block;
		max-height: none;
	}

	.mb-mappa-sedi--split.mb-mappa-sedi--map-on .mb-mappa-sedi__map-col {
		height: var(--mb-mappa-map-height);
		min-height: 0;
	}

	.mb-mappa-sedi__heading {
		font-size: 28px;
		margin-bottom: 18px;
	}

	.mb-mappa-sedi__tools {
		gap: 12px;
	}

	.mb-mappa-sedi__geo {
		flex: 1 1 100%;
		text-align: center;
	}

	.mb-mappa-sedi__card {
		padding: 20px;
	}

	.mb-sede-single__container {
		padding: 34px 18px 50px;
	}

	.mb-sede-single__title {
		font-size: 30px;
	}

	.mb-sede-single__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 30px;
	}

	.mb-sede-single__hero,
	.mb-sede-single__hero-img {
		max-height: 260px;
	}
}

@media only screen and (max-width: 479px) {
	.mb-mappa-sedi__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.mb-mappa-sedi a.mb-mappa-sedi__cta {
		text-align: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mb-mappa-sedi *,
	.mb-mappa-sedi *::before,
	.mb-mappa-sedi *::after {
		transition-duration: 0.01ms !important;
	}
}
