/*
 * Find the Slow – Mappa Slow
 *
 * Impianto ispirato alle mappe di esplorazione (elenco a sinistra, filtri a pillola
 * sopra la mappa) con il linguaggio del sito: inchiostro #18201C, sabbia #EAE8E1,
 * tortora #8D8770, verde bosco #345D47, Figtree per titoli ed etichette, Roboto per il testo.
 */

.ftsm {
	--ftsm-ink: #18201C;
	--ftsm-ink-soft: #2E3631;
	--ftsm-muted: #6B6A63;
	--ftsm-sand: #EAE8E1;
	--ftsm-sand-soft: #F4F2ED;
	--ftsm-line: rgba(24, 32, 28, .1);
	--ftsm-line-warm: #D3D0C2;
	--ftsm-paper: #FFFFFF;
	--ftsm-accent: #8D8770;
	--ftsm-green: #345D47;
	--ftsm-green-dark: #284A38;
	--ftsm-green-soft: #E5EDE7;
	--ftsm-soggiorni: #345D47;
	--ftsm-esperienze: #B0683F;
	--ftsm-eventi: #4A6873;
	--ftsm-luoghi-slow: #BF8F2E;
	--ftsm-borghi: #8D8770;
	--ftsm-shadow: 0 1px 2px rgba(24, 32, 28, .06), 0 4px 14px rgba(24, 32, 28, .1);
	--ftsm-shadow-lg: 0 2px 6px rgba(24, 32, 28, .06), 0 18px 48px rgba(24, 32, 28, .18);
	--ftsm-head: var(--e-global-typography-primary-font-family, "Figtree"), system-ui, -apple-system, "Segoe UI", sans-serif;
	--ftsm-body: var(--e-global-typography-text-font-family, "Roboto"), system-ui, -apple-system, "Segoe UI", sans-serif;
	--ftsm-side-w: 420px;
	--ftsm-ease: cubic-bezier(.2, .8, .2, 1);
	position: relative;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-body);
	font-size: 16px;
	line-height: 1.5;
	-webkit-text-size-adjust: 100%;
}

.ftsm *,
.ftsm *::before,
.ftsm *::after {
	box-sizing: border-box;
}

.ftsm [hidden] {
	display: none !important;
}

.ftsm-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* Azzera gli stili globali di tema ed Elementor su pulsanti e campi. */
.ftsm button,
.ftsm input,
.ftsm select,
.ftsm textarea {
	margin: 0;
	font: inherit;
	letter-spacing: normal;
	text-transform: none;
	text-shadow: none;
	box-shadow: none;
}

.ftsm button {
	min-height: 0;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.ftsm :focus-visible {
	outline: 2px solid var(--ftsm-ink);
	outline-offset: 2px;
}

.ftsm-icon,
.ftsm svg {
	flex: 0 0 auto;
}

/* ---------------------------------------------------------------------
 * Mappa a tutta superficie
 * ------------------------------------------------------------------ */

.ftsm-map-wrap {
	position: relative;
	overflow: hidden;
	height: var(--ftsm-height, 720px);
	min-height: 600px;
	border-radius: 28px;
	background: var(--ftsm-sand);
	box-shadow: inset 0 0 0 1px var(--ftsm-line);
	isolation: isolate;
}

.ftsm-map {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: var(--ftsm-sand);
	font-family: var(--ftsm-body);
}

.ftsm .ftsm-tiles--soft {
	filter: saturate(.5) sepia(.14) contrast(.93) brightness(1.04);
}

/* ---------------------------------------------------------------------
 * Pannello a sinistra: elenco e assistente
 * ------------------------------------------------------------------ */

.ftsm-side {
	position: absolute;
	z-index: 850;
	top: 16px;
	bottom: 16px;
	left: 16px;
	display: flex;
	flex-direction: column;
	width: var(--ftsm-side-w);
	max-width: calc(100% - 32px);
	overflow: hidden;
	border-radius: 24px;
	background: var(--ftsm-paper);
	box-shadow: var(--ftsm-shadow-lg);
	transition: bottom .35s var(--ftsm-ease);
}

.ftsm-view {
	display: none;
	flex: 1 1 auto;
	flex-direction: column;
	min-height: 0;
}

.ftsm-view.is-active {
	display: flex;
	animation: ftsm-fade .3s var(--ftsm-ease);
}

@keyframes ftsm-fade {
	from { opacity: 0; transform: translateX(-8px); }
}

.ftsm-view__head {
	position: relative;
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding: 22px 20px 14px 24px;
}

.ftsm-view__heading {
	flex: 1 1 auto;
	min-width: 0;
}

.ftsm .ftsm-view__title {
	margin: 0;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 24px;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -.02em;
	text-transform: none;
}

.ftsm .ftsm-view__subtitle {
	margin: 4px 0 0;
	color: var(--ftsm-muted);
	font-size: 13.5px;
	line-height: 1.45;
}

.ftsm .ftsm-view__subtitle:empty {
	display: none;
}

.ftsm .ftsm-side__collapse,
.ftsm .ftsm-plan-head__back {
	display: grid;
	flex: 0 0 auto;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--ftsm-sand-soft);
	color: var(--ftsm-ink);
	transition: background-color .2s, transform .3s var(--ftsm-ease);
}

.ftsm .ftsm-side__collapse:hover,
.ftsm .ftsm-plan-head__back:hover {
	background: var(--ftsm-sand);
	color: var(--ftsm-ink);
}

.ftsm-side__collapse svg,
.ftsm-plan-head__back svg,
.ftsm-plan-head__toggle svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm-side.is-collapsed .ftsm-side__collapse {
	transform: rotate(180deg);
}

.ftsm .ftsm-side__grip,
.ftsm .ftsm-plan-head__toggle {
	display: none;
}

.ftsm-view__body {
	flex: 1 1 auto;
	min-height: 0;
	padding: 4px 24px 24px;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: var(--ftsm-line-warm) transparent;
}

/* Elenco ridotto: restano titolo e scheda dell'assistente. */
.ftsm-side.is-collapsed {
	bottom: auto;
}

.ftsm-side.is-collapsed .ftsm-view--list .ftsm-view__body > :not(.ftsm-promo-slot),
.ftsm-side.is-collapsed .ftsm-view--plan .ftsm-view__body {
	display: none;
}

/* Ricerca */

.ftsm .ftsm-search {
	position: relative;
	display: flex;
	align-items: center;
	margin: 0 0 14px;
}

.ftsm .ftsm-search__icon {
	position: absolute;
	left: 16px;
	width: 19px;
	height: 19px;
	fill: none;
	stroke: var(--ftsm-ink);
	stroke-width: 1.8;
	stroke-linecap: round;
	pointer-events: none;
}

.ftsm .ftsm-search__input {
	width: 100%;
	height: 50px;
	padding: 0 18px 0 46px;
	border: 1px solid var(--ftsm-line);
	border-radius: 999px;
	background: var(--ftsm-sand-soft);
	color: var(--ftsm-ink);
	font-size: 16px;
	outline: none;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color .2s, background-color .2s;
}

.ftsm .ftsm-search__input::placeholder {
	color: var(--ftsm-muted);
	opacity: 1;
}

.ftsm .ftsm-search__input:focus {
	border-color: var(--ftsm-ink);
	background: #fff;
}

/* Scheda "Pianifica il tuo viaggio lento" */

.ftsm .ftsm-promo {
	display: grid;
	grid-template-columns: 60px minmax(0, 1fr) auto;
	gap: 14px;
	align-items: center;
	width: 100%;
	margin: 0 0 18px;
	padding: 16px 14px 16px 16px;
	border: 0;
	border-radius: 20px;
	background: var(--ftsm-sand);
	color: var(--ftsm-ink);
	text-align: left;
	transition: background-color .2s, transform .2s var(--ftsm-ease);
}

.ftsm .ftsm-promo:hover {
	background: #E3E0D6;
	color: var(--ftsm-ink);
	transform: translateY(-1px);
}

.ftsm .ftsm-promo.has-trip {
	background: var(--ftsm-green-soft);
}

.ftsm-promo__art {
	position: relative;
	display: grid;
	place-items: center;
	width: 60px;
	height: 60px;
	border-radius: 16px;
	background: #fff;
	box-shadow: var(--ftsm-shadow);
}

.ftsm-promo__route {
	width: 30px;
	height: 30px;
	fill: none;
	stroke: var(--ftsm-ink);
	stroke-width: 1.6;
	stroke-linecap: round;
}

.ftsm-promo__spark {
	position: absolute;
	top: -8px;
	right: -8px;
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	border: 2px solid #fff;
	border-radius: 50%;
	background: var(--ftsm-green);
}

.ftsm-promo__spark svg {
	width: 16px;
	height: 16px;
	fill: #fff;
	stroke: none;
}

.ftsm-promo__text {
	display: grid;
	gap: 3px;
	min-width: 0;
}

.ftsm-promo__title {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 8px;
	align-items: center;
	font-family: var(--ftsm-head);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.25;
}

.ftsm-promo__sub {
	color: var(--ftsm-ink-soft);
	font-size: 13.5px;
	line-height: 1.4;
}

.ftsm-promo__next {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: var(--ftsm-ink);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm-beta {
	display: inline-flex;
	align-items: center;
	padding: 2px 8px;
	border-radius: 6px;
	background: rgba(24, 32, 28, .08);
	color: var(--ftsm-ink-soft);
	font-family: var(--ftsm-head);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .02em;
	line-height: 1.5;
	text-transform: none;
}

/* Conteggio e ordinamento */

.ftsm-list-bar {
	display: flex;
	gap: 12px;
	align-items: center;
	justify-content: space-between;
	margin: 0 0 10px;
}

.ftsm .ftsm-list-bar__count {
	margin: 0;
	font-family: var(--ftsm-head);
	font-size: 15px;
	font-weight: 600;
}

.ftsm .ftsm-sort {
	display: flex;
	margin: 0;
}

.ftsm .ftsm-sort__select {
	height: 36px;
	padding: 0 30px 0 10px;
	border: 0;
	border-radius: 10px;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2318201C' stroke-width='1.7'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E") no-repeat right 8px center;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.ftsm .ftsm-sort__select:hover {
	background-color: var(--ftsm-sand-soft);
}

/* Le schede dell'elenco */

.ftsm-list {
	display: grid;
	gap: 4px;
	margin: 0 -10px;
	padding: 0;
	list-style: none;
}

.ftsm-item {
	--c: var(--ftsm-borghi);
	margin: 0;
}

.ftsm-item--soggiorni { --c: var(--ftsm-soggiorni); }
.ftsm-item--esperienze { --c: var(--ftsm-esperienze); }
.ftsm-item--eventi { --c: var(--ftsm-eventi); }
.ftsm-item--luoghi-slow { --c: var(--ftsm-luoghi-slow); }

.ftsm .ftsm-item__hit {
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr);
	gap: 14px;
	align-items: center;
	width: 100%;
	padding: 10px;
	border: 0;
	border-radius: 18px;
	background: transparent;
	color: var(--ftsm-ink);
	text-align: left;
	transition: background-color .15s;
}

.ftsm .ftsm-item__hit:hover,
.ftsm .ftsm-item__hit:focus-visible {
	background: var(--ftsm-sand-soft);
	color: var(--ftsm-ink);
}

.ftsm-item.is-active .ftsm-item__hit {
	background: var(--ftsm-sand-soft);
	box-shadow: inset 0 0 0 2px var(--c);
}

.ftsm-item__media {
	position: relative;
	display: block;
	width: 112px;
	height: 112px;
	overflow: hidden;
	border-radius: 14px;
	background: var(--ftsm-sand);
}

.ftsm-item__media img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	border-radius: 0;
	object-fit: cover;
	transition: transform .4s var(--ftsm-ease);
}

.ftsm .ftsm-item__hit:hover .ftsm-item__media img {
	transform: scale(1.05);
}

.ftsm-item__media.is-empty {
	display: grid;
	place-items: center;
	background: color-mix(in srgb, var(--c) 16%, var(--ftsm-sand-soft));
}

.ftsm-item__media.is-empty > svg {
	width: 40px;
	height: 40px;
	fill: none;
	stroke: color-mix(in srgb, var(--c) 80%, #000);
	stroke-width: 1.4;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm-item__media.is-empty .ftsm-fill {
	fill: currentColor;
	stroke: none;
}

.ftsm-item--luoghi-slow .ftsm-item__media.is-empty > svg {
	color: var(--ftsm-luoghi-slow);
}

.ftsm-item__badge {
	position: absolute;
	top: 8px;
	left: 8px;
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border: 2px solid #fff;
	border-radius: 50%;
	background: var(--ftsm-luoghi-slow);
	color: #fff;
}

.ftsm-item__badge svg {
	width: 14px;
	height: 14px;
}

.ftsm-item__badge .ftsm-fill {
	fill: currentColor;
}

.ftsm-item__body {
	display: grid;
	gap: 3px;
	min-width: 0;
}

.ftsm-item__kicker {
	display: flex;
	gap: 5px;
	align-items: center;
	color: color-mix(in srgb, var(--c) 78%, #000);
	font-family: var(--ftsm-head);
	font-size: 12px;
	font-weight: 600;
}

.ftsm-item__icon {
	width: 14px;
	height: 14px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm-item__icon .ftsm-fill {
	fill: currentColor;
	stroke: none;
}

.ftsm-item__title {
	display: -webkit-box;
	overflow: hidden;
	font-family: var(--ftsm-head);
	font-size: 16.5px;
	font-weight: 600;
	line-height: 1.25;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.ftsm-item__place,
.ftsm-item__amb {
	overflow: hidden;
	color: var(--ftsm-muted);
	font-size: 13px;
	line-height: 1.35;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ftsm-item__date {
	justify-self: start;
	margin-top: 2px;
	padding: 2px 9px;
	border-radius: 999px;
	background: var(--ftsm-sand);
	font-size: 12px;
	line-height: 1.5;
}

.ftsm-item__date strong {
	font-weight: 700;
}

.ftsm-item__date--ongoing strong::before {
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-right: 5px;
	border-radius: 50%;
	background: var(--ftsm-green);
	content: "";
	vertical-align: 1px;
}

.ftsm .ftsm-list__empty {
	margin: 16px 0;
	padding: 18px;
	border-radius: 16px;
	background: var(--ftsm-sand-soft);
	color: var(--ftsm-muted);
	font-size: 14px;
	text-align: center;
}

.ftsm .ftsm-list__more {
	display: block;
	width: 100%;
	margin: 12px 0 0;
	padding: 12px;
	border: 1px solid var(--ftsm-line);
	border-radius: 999px;
	background: #fff;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 600;
}

.ftsm .ftsm-list__more:hover {
	border-color: var(--ftsm-ink);
	background: #fff;
	color: var(--ftsm-ink);
}

/* ---------------------------------------------------------------------
 * Filtri a pillola sopra la mappa
 * ------------------------------------------------------------------ */

.ftsm-top {
	position: absolute;
	z-index: 800;
	top: 16px;
	right: 16px;
	left: calc(var(--ftsm-side-w) + 32px);
	pointer-events: none;
	transition: opacity .25s;
}

.ftsm-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	pointer-events: none;
}

.ftsm-chips > * {
	pointer-events: auto;
}

.ftsm .ftsm-chip {
	--c: var(--ftsm-borghi);
	display: inline-flex;
	flex: 0 0 auto;
	gap: 8px;
	align-items: center;
	height: 42px;
	padding: 0 14px 0 6px;
	border: 1px solid var(--ftsm-line);
	border-radius: 999px;
	background: #fff;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	box-shadow: var(--ftsm-shadow);
	transition: border-color .2s, color .2s, background-color .2s;
}

.ftsm .ftsm-chip:hover {
	border-color: var(--ftsm-ink);
	background: #fff;
	color: var(--ftsm-ink);
}

.ftsm .ftsm-chip--all,
.ftsm .ftsm-chip--near {
	padding: 0 16px 0 14px;
}

.ftsm .ftsm-chip--near {
	width: 42px;
	padding: 0;
	justify-content: center;
}

.ftsm .ftsm-chip--all[aria-pressed="true"] {
	border-color: var(--ftsm-ink);
	background: var(--ftsm-ink);
	color: #fff;
}

.ftsm-chip__icon {
	width: 19px;
	height: 19px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
}

.ftsm .ftsm-chip--soggiorni { --c: var(--ftsm-soggiorni); }
.ftsm .ftsm-chip--esperienze { --c: var(--ftsm-esperienze); }
.ftsm .ftsm-chip--eventi { --c: var(--ftsm-eventi); }
.ftsm .ftsm-chip--luoghi-slow { --c: var(--ftsm-luoghi-slow); }

.ftsm .ftsm-chip[aria-pressed="false"]:not(.ftsm-chip--all) {
	background: rgba(255, 255, 255, .8);
	color: var(--ftsm-muted);
	box-shadow: none;
}

.ftsm-chip__dot {
	display: inline-grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--c);
	transition: filter .2s, opacity .2s;
}

.ftsm-chip[aria-pressed="false"] .ftsm-chip__dot {
	filter: grayscale(1);
	opacity: .3;
}

.ftsm-chip__dot svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: #fff;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm-chip__dot .ftsm-fill {
	fill: #fff;
	stroke: none;
}

.ftsm-chip__count {
	color: var(--ftsm-muted);
	font-size: 12.5px;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
}

.ftsm-chip__count:empty {
	display: none;
}

.ftsm .ftsm-region {
	position: relative;
	display: flex;
	flex: 0 0 auto;
	margin: 0;
	border: 1px solid var(--ftsm-line);
	border-radius: 999px;
	background: #fff;
	box-shadow: var(--ftsm-shadow);
}

.ftsm .ftsm-region.is-set {
	border-color: var(--ftsm-ink);
	box-shadow: inset 0 0 0 1px var(--ftsm-ink), var(--ftsm-shadow);
}

.ftsm .ftsm-region__select {
	width: 172px;
	height: 40px;
	padding: 0 36px 0 16px;
	overflow: hidden;
	border: 0;
	border-radius: 999px;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2318201C' stroke-width='1.7'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E") no-repeat right 15px center;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 600;
	text-overflow: ellipsis;
	white-space: nowrap;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.ftsm.is-planning .ftsm-top {
	opacity: 0;
	pointer-events: none;
}

.ftsm.is-planning .ftsm-top * {
	pointer-events: none;
}

/* ---------------------------------------------------------------------
 * Avvisi e comandi Leaflet
 * ------------------------------------------------------------------ */

.ftsm-notice {
	position: absolute;
	z-index: 600;
	top: 50%;
	left: calc(50% + var(--ftsm-side-w) / 2);
	width: min(360px, calc(100% - 40px));
	padding: 18px 22px;
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--ftsm-shadow-lg);
	font-size: 15px;
	text-align: center;
	transform: translate(-50%, -50%);
}

.ftsm-noscript {
	margin: 0;
	padding: 24px;
	text-align: center;
}

.ftsm .leaflet-control-zoom {
	margin: 0 16px 28px 0;
	overflow: hidden;
	border: 1px solid var(--ftsm-line);
	border-radius: 16px;
	box-shadow: var(--ftsm-shadow);
}

.ftsm .leaflet-control-zoom a {
	width: 42px;
	height: 42px;
	border-bottom-color: var(--ftsm-line);
	background: #fff;
	color: var(--ftsm-ink);
	font: 300 22px/42px var(--ftsm-body);
}

.ftsm .leaflet-control-zoom a:hover {
	background: var(--ftsm-sand-soft);
}

.ftsm .leaflet-control-attribution {
	padding: 1px 8px;
	border-top-left-radius: 10px;
	background: rgba(255, 255, 255, .8);
	color: var(--ftsm-muted);
	font-size: 10px;
}

.ftsm .leaflet-control-attribution a {
	color: inherit;
}

/* ---------------------------------------------------------------------
 * Segnaposto
 * ------------------------------------------------------------------ */

.ftsm-marker {
	background: none;
	border: 0;
}

.ftsm-pin {
	--c: var(--ftsm-borghi);
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	border: 2.5px solid #fff;
	border-radius: 50%;
	background: var(--c);
	box-shadow: 0 4px 12px rgba(24, 32, 28, .25);
	transition: transform .2s var(--ftsm-ease), box-shadow .2s;
}

.ftsm-marker:hover .ftsm-pin,
.ftsm-marker:focus .ftsm-pin,
.ftsm-marker.is-hot .ftsm-pin {
	transform: scale(1.22);
}

.ftsm-marker.is-hot .ftsm-pin {
	box-shadow: 0 0 0 4px rgba(24, 32, 28, .85), 0 8px 18px rgba(24, 32, 28, .3);
}

.ftsm-marker:focus {
	outline: none;
}

.ftsm-marker:focus-visible .ftsm-pin,
.ftsm-marker:focus-visible .ftsm-step {
	outline: 3px solid var(--ftsm-ink);
	outline-offset: 2px;
}

.ftsm-pin svg {
	width: 56%;
	height: 56%;
	fill: none;
	stroke: #fff;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm-pin .ftsm-fill {
	fill: currentColor;
	stroke: none;
}

.ftsm-pin--soggiorni { --c: var(--ftsm-soggiorni); }
.ftsm-pin--esperienze { --c: var(--ftsm-esperienze); }
.ftsm-pin--eventi { --c: var(--ftsm-eventi); }

/* Borghi e luoghi lenti: piccoli e chiari, non competono con i contenuti della piattaforma. */
.ftsm-pin--borghi {
	border: 1.5px solid var(--c);
	background: var(--ftsm-sand-soft);
	box-shadow: 0 2px 8px rgba(24, 32, 28, .16);
}

.ftsm-pin--borghi svg {
	stroke: var(--ftsm-ink);
	stroke-width: 1.8;
	opacity: .75;
}

/* Luoghi Slow: stella su ocra con alone, sempre in primo piano. */
.ftsm-pin--luoghi-slow {
	--c: var(--ftsm-luoghi-slow);
	position: relative;
	border: 2.5px solid var(--ftsm-ink);
	color: #fff;
	box-shadow: 0 0 0 4px rgba(255, 255, 255, .95), 0 8px 20px rgba(24, 32, 28, .3);
}

.ftsm-pin--luoghi-slow::before {
	position: absolute;
	z-index: -1;
	inset: -10px;
	border-radius: 50%;
	background: var(--c);
	content: "";
	animation: ftsm-halo 3s ease-out infinite;
}

.ftsm-pin--luoghi-slow svg {
	width: 58%;
	height: 58%;
}

@keyframes ftsm-halo {
	0% { opacity: .38; transform: scale(.7); }
	70%, 100% { opacity: 0; transform: scale(1.25); }
}

.ftsm-cluster {
	display: grid;
	place-items: center;
	border: 3px solid rgba(255, 255, 255, .95);
	border-radius: 50%;
	background: var(--ftsm-ink);
	box-shadow: 0 0 0 5px rgba(24, 32, 28, .1), 0 6px 16px rgba(24, 32, 28, .25);
	color: #fff;
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

/* Tappe del percorso, soggiorni, attività extra e stazioni. */
.ftsm-step {
	--c: var(--ftsm-borghi);
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	border: 3px solid #fff;
	border-radius: 50%;
	background: var(--c);
	box-shadow: 0 6px 16px rgba(24, 32, 28, .3);
	color: #fff;
	font-family: var(--ftsm-head);
	font-size: 15px;
	font-weight: 700;
}

.ftsm-step--luoghi-slow {
	--c: var(--ftsm-luoghi-slow);
	box-shadow: 0 0 0 2px var(--ftsm-ink), 0 6px 16px rgba(24, 32, 28, .3);
}

.ftsm-step--esperienze { --c: var(--ftsm-esperienze); }
.ftsm-step--eventi { --c: var(--ftsm-eventi); }

.ftsm-step--stay {
	border-radius: 12px;
	background: var(--ftsm-ink);
}

.ftsm-step svg,
.ftsm-extra-pin svg,
.ftsm-station-pin svg {
	width: 56%;
	height: 56%;
	fill: none;
	stroke: #fff;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm-extra-pin {
	--c: var(--ftsm-esperienze);
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	border: 2px dashed var(--c);
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 3px 10px rgba(24, 32, 28, .2);
}

.ftsm-extra-pin--eventi { --c: var(--ftsm-eventi); }

.ftsm-extra-pin svg {
	stroke: var(--c);
}

.ftsm-station-pin {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	border: 2px solid #fff;
	border-radius: 8px;
	background: #2F5D8A;
	box-shadow: 0 3px 10px rgba(24, 32, 28, .25);
}

.ftsm-station-pin svg {
	width: 64%;
	height: 64%;
}

@media (prefers-reduced-motion: reduce) {
	.ftsm *,
	.ftsm *::before {
		animation: none !important;
		transition: none !important;
	}
}

/* ---------------------------------------------------------------------
 * Scheda del luogo
 * ------------------------------------------------------------------ */

.ftsm .ftsm-popup .leaflet-popup-content-wrapper {
	padding: 0;
	overflow: hidden;
	border-radius: 20px;
	box-shadow: var(--ftsm-shadow-lg);
}

.ftsm .ftsm-popup .leaflet-popup-content {
	width: 296px !important;
	margin: 0;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-body);
	font-size: 14px;
	line-height: 1.5;
}

.ftsm .ftsm-popup .leaflet-popup-tip {
	box-shadow: none;
}

.ftsm .leaflet-container a.leaflet-popup-close-button {
	top: 10px;
	right: 10px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .95);
	box-shadow: var(--ftsm-shadow);
	color: var(--ftsm-ink);
	font: 300 22px/31px var(--ftsm-body);
	text-align: center;
}

.ftsm-card__media {
	display: block;
	aspect-ratio: 16 / 10;
	background: var(--ftsm-sand);
}

.ftsm-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	border-radius: 0;
	object-fit: cover;
}

.ftsm-card__body {
	padding: 16px 18px 18px;
}

.ftsm-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 10px;
	padding-right: 32px;
}

.ftsm-card__media + .ftsm-card__body .ftsm-card__meta {
	padding-right: 0;
}

.ftsm-tag,
.ftsm-status {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px 10px;
	border-radius: 999px;
	font-family: var(--ftsm-head);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
}

.ftsm-tag {
	--c: var(--ftsm-borghi);
	background: color-mix(in srgb, var(--c) 13%, #fff);
	color: color-mix(in srgb, var(--c) 72%, #000);
}

.ftsm-card--soggiorni .ftsm-tag { --c: var(--ftsm-soggiorni); }
.ftsm-card--esperienze .ftsm-tag { --c: var(--ftsm-esperienze); }
.ftsm-card--eventi .ftsm-tag { --c: var(--ftsm-eventi); }
.ftsm-card--luoghi-slow .ftsm-tag { --c: var(--ftsm-luoghi-slow); }

.ftsm-tag__icon {
	width: 14px;
	height: 14px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm-tag__icon .ftsm-fill {
	fill: currentColor;
	stroke: none;
}

.ftsm-status {
	background: var(--ftsm-sand-soft);
	color: var(--ftsm-ink);
	font-weight: 500;
}

.ftsm-status strong {
	font-weight: 700;
}

.ftsm-status--ongoing strong::before {
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-right: 5px;
	border-radius: 50%;
	background: var(--ftsm-green);
	content: "";
	vertical-align: 1px;
}

.ftsm .ftsm-card__title {
	margin: 0 0 6px;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 19px;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -.01em;
	text-transform: none;
}

.ftsm .ftsm-card__title a {
	color: inherit;
	text-decoration: none;
}

.ftsm .ftsm-card__title a:hover {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.ftsm .ftsm-card__place {
	display: flex;
	gap: 5px;
	align-items: flex-start;
	margin: 0 0 10px;
	color: var(--ftsm-muted);
	font-size: 13px;
	line-height: 1.4;
}

.ftsm-card__pin {
	width: 15px;
	height: 15px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
}

.ftsm .ftsm-card__text {
	display: -webkit-box;
	margin: 0 0 12px;
	overflow: hidden;
	font-size: 14px;
	line-height: 1.55;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.ftsm .ftsm-card__amb {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	margin: 0 0 14px;
	padding: 10px 12px;
	border-radius: 12px;
	background: color-mix(in srgb, var(--ftsm-luoghi-slow) 12%, #fff);
	font-size: 13px;
	line-height: 1.45;
}

.ftsm-card__star {
	width: 17px;
	height: 17px;
	color: var(--ftsm-luoghi-slow);
}

.ftsm-card__star .ftsm-fill {
	fill: currentColor;
}

.ftsm .ftsm-card__amb a {
	color: inherit;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.ftsm-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
}

.ftsm .ftsm-btn,
.ftsm .ftsm-suggest__toggle,
.ftsm .ftsm-form__submit {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	justify-content: center;
	padding: 11px 20px;
	border: 0;
	border-radius: 999px;
	background: var(--ftsm-ink);
	color: #fff;
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color .2s, transform .2s var(--ftsm-ease);
}

.ftsm .ftsm-btn:hover,
.ftsm .ftsm-btn:focus,
.ftsm .ftsm-form__submit:hover {
	background: var(--ftsm-green);
	color: #fff;
	transform: translateY(-1px);
}

.ftsm-btn__icon {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm .ftsm-link {
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: var(--ftsm-line-warm);
	text-underline-offset: 4px;
}

.ftsm .ftsm-link:hover {
	text-decoration-color: currentColor;
}

/* Scheda dal basso sul telefono. */
.ftsm-sheet {
	position: absolute;
	z-index: 900;
	right: 10px;
	bottom: 10px;
	left: 10px;
	max-height: calc(100% - 80px);
	overflow-y: auto;
	overscroll-behavior: contain;
	border-radius: 22px;
	background: var(--ftsm-paper);
	box-shadow: var(--ftsm-shadow-lg);
	animation: ftsm-rise .3s var(--ftsm-ease);
}

@keyframes ftsm-rise {
	from { opacity: 0; transform: translateY(24px); }
}

.ftsm .ftsm-sheet__close {
	position: absolute;
	z-index: 2;
	top: 8px;
	right: 8px;
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--ftsm-sand-soft);
	color: var(--ftsm-ink);
}

.ftsm-sheet__close svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
}

.ftsm-sheet .ftsm-card {
	display: grid;
	grid-template-columns: 84px minmax(0, 1fr);
	gap: 0 14px;
	padding: 14px;
}

.ftsm-sheet .ftsm-card--noimg {
	grid-template-columns: minmax(0, 1fr);
}

.ftsm-sheet .ftsm-card__media {
	width: 84px;
	height: 84px;
	aspect-ratio: auto;
	overflow: hidden;
	border-radius: 14px;
}

.ftsm-sheet .ftsm-card__body {
	padding: 0;
}

.ftsm-sheet .ftsm-card__meta {
	margin-bottom: 6px;
	padding-right: 36px;
}

.ftsm .ftsm-sheet .ftsm-card__title {
	margin-bottom: 4px;
	font-size: 17px;
}

.ftsm .ftsm-sheet .ftsm-card__place {
	margin-bottom: 6px;
}

.ftsm .ftsm-sheet .ftsm-card__text {
	margin-bottom: 10px;
	font-size: 13.5px;
	-webkit-line-clamp: 2;
}

.ftsm .ftsm-sheet .ftsm-card__amb {
	margin-bottom: 12px;
	padding: 8px 10px;
	font-size: 12.5px;
}

.ftsm-sheet .ftsm-card__actions {
	display: grid;
	grid-column: 1 / -1;
	grid-template-columns: 1fr auto;
	gap: 16px;
}

.ftsm-sheet .ftsm-card:not(.ftsm-card--noimg) .ftsm-card__actions {
	margin-left: -98px;
}

.ftsm .ftsm-sheet .ftsm-btn {
	padding: 13px 20px;
	font-size: 15px;
}

/* ---------------------------------------------------------------------
 * Assistente: intestazione e modulo
 * ------------------------------------------------------------------ */

.ftsm-plan-head {
	padding-top: 18px;
}

.ftsm .ftsm-plan-head__kicker {
	display: flex;
	gap: 6px;
	align-items: center;
	margin: 2px 0 8px;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 600;
}

.ftsm-plan-head__spark {
	width: 18px;
	height: 18px;
	fill: var(--ftsm-green);
	stroke: none;
}

.ftsm .ftsm-plan-head__title {
	font-size: 28px;
	line-height: 1.12;
}

.ftsm-planner__head .ftsm-planner__title {
	display: none;
}

.ftsm .ftsm-planner__lead {
	margin: 0 0 20px;
	color: var(--ftsm-muted);
	font-size: 14.5px;
	line-height: 1.55;
}

.ftsm-planner .ftsm-form__grid--3 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.ftsm-planner .ftsm-form__grid--3 .ftsm-field:first-child {
	grid-column: 1 / -1;
}

.ftsm-choice {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 22px 0 0;
	padding: 0;
	border: 0;
}

.ftsm .ftsm-choice legend {
	width: 100%;
	margin-bottom: 10px;
	padding: 0;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 600;
}

/* Ritmo e mezzo: tre scelte affiancate. */
.ftsm-planner .ftsm-choice:not(:last-of-type) {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ftsm .ftsm-pill {
	position: relative;
	display: inline-flex;
	margin: 0;
	cursor: pointer;
}

.ftsm .ftsm-pill input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.ftsm .ftsm-pill span {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	width: 100%;
	min-height: 44px;
	padding: 8px 14px;
	border: 1px solid var(--ftsm-line);
	border-radius: 14px;
	background: #fff;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;
	transition: background-color .15s, border-color .15s, color .15s;
}

.ftsm-planner .ftsm-choice:not(:last-of-type) .ftsm-pill span {
	padding: 8px 8px;
	text-align: center;
}

.ftsm .ftsm-pill span:hover {
	border-color: var(--ftsm-ink);
}

.ftsm .ftsm-pill small {
	color: var(--ftsm-muted);
	font-family: var(--ftsm-body);
	font-size: 11.5px;
	font-weight: 400;
}

.ftsm .ftsm-pill input:checked + span {
	border-color: var(--ftsm-green);
	background: var(--ftsm-green);
	color: #fff;
}

.ftsm .ftsm-pill input:checked + span small {
	color: rgba(255, 255, 255, .78);
}

.ftsm .ftsm-pill input:focus-visible + span {
	outline: 2px solid var(--ftsm-ink);
	outline-offset: 2px;
}

.ftsm-planner .ftsm-field--check {
	margin-top: 22px;
}

.ftsm-planner .ftsm-form__footer {
	position: sticky;
	bottom: -24px;
	z-index: 2;
	margin: 22px -24px 0;
	padding: 14px 24px 22px;
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff 28%);
}

.ftsm-planner .ftsm-form__submit {
	width: 100%;
	padding: 16px 24px;
	background: var(--ftsm-green);
	font-size: 15px;
}

.ftsm-planner .ftsm-form__submit:hover {
	background: var(--ftsm-green-dark);
}

.ftsm .ftsm-beta-note {
	margin: 4px 0 0;
	color: var(--ftsm-muted);
	font-size: 12.5px;
	line-height: 1.5;
}

/* ---------------------------------------------------------------------
 * Assistente: il percorso
 * ------------------------------------------------------------------ */

.ftsm .ftsm-trip__note {
	margin: 0 0 14px;
	padding: 10px 14px;
	border-radius: 12px;
	background: var(--ftsm-sand-soft);
	font-size: 13.5px;
}

.ftsm .ftsm-trip__note--small {
	margin: 0 0 10px 46px;
	padding: 8px 12px;
	font-size: 12.5px;
}

.ftsm-trip__actions {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 6px;
}

.ftsm .ftsm-act {
	display: inline-flex;
	flex-direction: column;
	gap: 6px;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 66px;
	padding: 10px 4px;
	border: 1px solid var(--ftsm-line);
	border-radius: 16px;
	background: #fff;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.15;
	text-align: center;
	transition: background-color .15s, border-color .15s;
}

.ftsm .ftsm-act:hover {
	border-color: var(--ftsm-ink);
	background: #fff;
	color: var(--ftsm-ink);
}

.ftsm .ftsm-act.is-primary {
	border-color: var(--ftsm-ink);
	background: var(--ftsm-ink);
	color: #fff;
}

.ftsm .ftsm-act.is-primary:hover {
	border-color: var(--ftsm-green);
	background: var(--ftsm-green);
}

.ftsm .ftsm-act svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm .ftsm-act:disabled {
	opacity: .55;
	cursor: progress;
}

.ftsm-trip__more {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 2px;
	margin: 10px -8px 0;
}

.ftsm .ftsm-act.is-text {
	flex-direction: row;
	gap: 6px;
	min-height: 0;
	padding: 8px;
	border: 0;
	background: transparent;
	color: var(--ftsm-muted);
	font-size: 13px;
}

.ftsm .ftsm-act.is-text:hover {
	background: transparent;
	color: var(--ftsm-ink);
}

.ftsm .ftsm-act.is-text svg {
	width: 16px;
	height: 16px;
}

.ftsm .ftsm-trip__status {
	margin: 8px 0 0;
	font-size: 13.5px;
}

.ftsm .ftsm-trip__status:empty {
	margin: 0;
}

.ftsm-trip__drawer {
	margin-top: 12px;
	padding: 16px;
	border-radius: 16px;
	background: var(--ftsm-sand-soft);
}

.ftsm-mail {
	display: grid;
	gap: 12px;
}

.ftsm .ftsm-trip__login-text {
	margin: 0 0 12px;
	font-size: 14px;
}

.ftsm-days {
	display: grid;
	gap: 26px;
	margin: 22px 0 0;
	padding: 22px 0 0;
	border-top: 1px solid var(--ftsm-line);
	list-style: none;
}

.ftsm-day__head {
	display: flex;
	gap: 12px;
	align-items: center;
	margin-bottom: 12px;
}

.ftsm-day__num {
	display: grid;
	flex: 0 0 auto;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 11px;
	background: var(--ftsm-sand);
	font-family: var(--ftsm-head);
	font-size: 15px;
	font-weight: 700;
}

.ftsm .ftsm-day__title {
	margin: 0;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.2;
	text-transform: none;
}

.ftsm .ftsm-day__date {
	margin: 1px 0 0;
	color: var(--ftsm-muted);
	font-size: 12.5px;
}

.ftsm .ftsm-transport {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 8px;
	align-items: center;
	margin: 0 0 10px 46px;
	padding: 8px 12px;
	border-radius: 12px;
	background: #EDF2F6;
	color: #23415E;
	font-size: 13px;
	line-height: 1.35;
}

.ftsm-transport__icon {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm-transport__text {
	font-family: var(--ftsm-head);
	font-weight: 600;
}

.ftsm-transport__meta {
	color: #4C6378;
}

.ftsm-day__stops {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ftsm-stop {
	--c: var(--ftsm-borghi);
	display: grid;
	grid-template-columns: 34px minmax(0, 1fr) auto;
	gap: 12px;
	align-items: start;
	padding: 4px 0;
}

.ftsm-stop--luoghi-slow { --c: var(--ftsm-luoghi-slow); }
.ftsm-stop--esperienze { --c: var(--ftsm-esperienze); }
.ftsm-stop--eventi { --c: var(--ftsm-eventi); }

.ftsm .ftsm-stop__num {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--c);
	color: #fff;
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 700;
}

.ftsm-stop--luoghi-slow .ftsm-stop__num {
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--ftsm-ink);
}

.ftsm .ftsm-stop__meta {
	display: flex;
	gap: 5px;
	align-items: center;
	margin: 1px 0;
	color: var(--ftsm-muted);
	font-size: 12px;
}

.ftsm-stop__icon {
	width: 14px;
	height: 14px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm-stop__icon .ftsm-fill {
	fill: currentColor;
	stroke: none;
}

.ftsm .ftsm-stop__title {
	margin: 0 0 3px;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	text-transform: none;
}

.ftsm .ftsm-stop__title a,
.ftsm .ftsm-stop__title button {
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	text-align: left;
	text-decoration: none;
}

.ftsm .ftsm-stop__title a:hover,
.ftsm .ftsm-stop__title button:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ftsm .ftsm-stop__text {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	color: var(--ftsm-ink-soft);
	font-size: 13.5px;
	line-height: 1.5;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.ftsm-stop__img {
	width: 56px;
	height: 56px;
	margin: 2px 0 0;
	border-radius: 12px;
	object-fit: cover;
}

.ftsm-leg {
	margin: 0 0 0 16px;
	padding: 6px 0 6px 28px;
	border-left: 2px dotted var(--ftsm-line-warm);
	color: var(--ftsm-muted);
	font-size: 12px;
}

.ftsm-extras {
	margin: 12px 0 0 46px;
	padding: 12px 14px;
	border-radius: 16px;
	background: var(--ftsm-sand-soft);
}

.ftsm .ftsm-extras__title {
	display: flex;
	gap: 6px;
	align-items: center;
	margin: 0 0 8px;
	color: var(--ftsm-green);
	font-family: var(--ftsm-head);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.ftsm-extras__icon {
	width: 14px;
	height: 14px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.2;
	stroke-linecap: round;
}

.ftsm-extra {
	--c: var(--ftsm-esperienze);
	display: grid;
	grid-template-columns: 28px minmax(0, 1fr);
	gap: 10px;
	align-items: center;
	padding: 5px 0;
}

.ftsm-extra--eventi { --c: var(--ftsm-eventi); }

.ftsm .ftsm-extra__dot {
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	padding: 0;
	border: 1.5px dashed var(--c);
	border-radius: 50%;
	background: #fff;
}

.ftsm-extra__dot svg {
	width: 15px;
	height: 15px;
	fill: none;
	stroke: var(--c);
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm .ftsm-extra__name {
	display: block;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
}

.ftsm .ftsm-extra__name:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ftsm-extra__meta {
	display: block;
	color: var(--ftsm-muted);
	font-size: 12px;
	line-height: 1.35;
}

.ftsm-sleep {
	display: flex;
	gap: 12px;
	align-items: center;
	margin: 12px 0 0;
	padding: 12px 14px;
	border: 1px dashed var(--ftsm-line-warm);
	border-radius: 16px;
}

.ftsm-sleep__icon {
	width: 36px;
	height: 36px;
	padding: 8px;
	border-radius: 11px;
	background: var(--ftsm-ink);
	fill: none;
	stroke: #fff;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm-sleep__body {
	display: grid;
	min-width: 0;
}

.ftsm-sleep__label {
	color: var(--ftsm-muted);
	font-size: 11.5px;
}

.ftsm .ftsm-sleep__name {
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
}

.ftsm .ftsm-sleep__name:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ftsm-sleep__place {
	color: var(--ftsm-muted);
	font-size: 12px;
}

.ftsm .ftsm-trip__disclaimer {
	margin: 24px 0 0;
	color: var(--ftsm-muted);
	font-size: 12px;
	font-style: italic;
}

/* ---------------------------------------------------------------------
 * Legenda sotto la mappa
 * ------------------------------------------------------------------ */

.ftsm-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
	margin-top: 16px;
	padding: 0 6px;
}

.ftsm .ftsm-legend__item {
	display: flex;
	gap: 10px;
	align-items: center;
	margin: 0;
	color: var(--ftsm-muted);
	font-size: 13.5px;
	line-height: 1.4;
}

.ftsm-legend__swatch {
	display: inline-grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
}

.ftsm-legend__swatch svg {
	width: 14px;
	height: 14px;
	fill: none;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm-legend__item--slow .ftsm-legend__swatch {
	border: 2px solid var(--ftsm-ink);
	background: var(--ftsm-luoghi-slow);
	color: #fff;
}

.ftsm-legend__item--slow .ftsm-fill {
	fill: currentColor;
	stroke: none;
}

.ftsm-legend__item--borghi .ftsm-legend__swatch {
	border: 1.5px solid var(--ftsm-borghi);
	background: var(--ftsm-sand-soft);
}

.ftsm-legend__item--borghi svg {
	stroke: var(--ftsm-ink);
	opacity: .75;
}

/* ---------------------------------------------------------------------
 * Campi dei moduli (assistente, segnalazioni, email)
 * ------------------------------------------------------------------ */

.ftsm-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px 20px;
}

.ftsm .ftsm-field {
	display: flex;
	flex-direction: column;
	gap: 7px;
	margin: 0;
}

.ftsm-field--wide {
	grid-column: 1 / -1;
}

.ftsm .ftsm-field > label,
.ftsm .ftsm-photo__label {
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
}

.ftsm-field__opt {
	color: var(--ftsm-muted);
	font-family: var(--ftsm-body);
	font-weight: 400;
}

.ftsm .ftsm-field input[type="text"],
.ftsm .ftsm-field input[type="email"],
.ftsm .ftsm-field input[type="url"],
.ftsm .ftsm-field input[type="date"],
.ftsm .ftsm-field select,
.ftsm .ftsm-field textarea {
	width: 100%;
	min-height: 50px;
	padding: 12px 14px;
	border: 1px solid var(--ftsm-line);
	border-radius: 14px;
	background: #fff;
	color: var(--ftsm-ink);
	font-size: 16px;
	line-height: 1.4;
	outline: none;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color .2s, box-shadow .2s;
}

.ftsm .ftsm-field select {
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2318201C' stroke-width='1.6'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");
	background-position: right 16px center;
	background-repeat: no-repeat;
}

.ftsm .ftsm-field textarea {
	min-height: 120px;
	resize: vertical;
}

.ftsm .ftsm-field input:focus,
.ftsm .ftsm-field select:focus,
.ftsm .ftsm-field textarea:focus {
	border-color: var(--ftsm-ink);
	box-shadow: 0 0 0 4px rgba(24, 32, 28, .06);
}

.ftsm .ftsm-field.has-error input,
.ftsm .ftsm-field.has-error select,
.ftsm .ftsm-field.has-error textarea {
	border-color: #A3402B;
}

.ftsm-field__error {
	color: #A3402B;
	font-size: 13px;
}

.ftsm-field--hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ftsm .ftsm-field--check label {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-family: var(--ftsm-body);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	cursor: pointer;
}

.ftsm .ftsm-field--check input {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin-top: 1px;
	accent-color: var(--ftsm-green);
}

.ftsm .ftsm-field--check a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.ftsm-form__footer {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 20px;
	align-items: center;
	margin-top: 24px;
}

.ftsm .ftsm-form__submit {
	padding: 15px 30px;
	font-size: 15px;
}

.ftsm .ftsm-form__submit:disabled {
	opacity: .6;
	cursor: progress;
}

.ftsm .ftsm-form__msg {
	margin: 0;
	font-size: 14px;
}

.ftsm .ftsm-form__msg:empty {
	display: none;
}

/* ---------------------------------------------------------------------
 * Segnala un luogo lento
 * ------------------------------------------------------------------ */

.ftsm-suggest {
	position: relative;
	margin-top: 36px;
	padding: 40px 44px;
	overflow: hidden;
	border-radius: 28px;
	background: var(--ftsm-sand);
}

.ftsm-suggest__intro {
	position: relative;
	z-index: 1;
	display: flex;
	gap: 24px 40px;
	align-items: center;
	justify-content: space-between;
}

.ftsm .ftsm-suggest__title {
	margin: 0 0 8px;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: clamp(24px, 2.6vw, 32px);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -.02em;
	text-transform: none;
}

.ftsm .ftsm-suggest__lead {
	max-width: 60ch;
	margin: 0;
	color: var(--ftsm-ink-soft);
	font-size: 16px;
}

.ftsm .ftsm-suggest__toggle {
	flex: 0 0 auto;
	padding: 16px 28px;
	font-size: 15px;
}

.ftsm .ftsm-suggest__toggle:hover,
.ftsm-suggest.is-open .ftsm-suggest__toggle {
	background: var(--ftsm-green);
	color: #fff;
}

.ftsm-suggest .ftsm-form {
	position: relative;
	z-index: 1;
	margin-top: 28px;
	padding: 28px;
	border-radius: 22px;
	background: rgba(255, 255, 255, .7);
}

.ftsm-suggest__done {
	position: relative;
	z-index: 1;
	margin-top: 24px;
	padding: 20px 22px;
	border-radius: 18px;
	background: #fff;
	outline: none;
}

.ftsm .ftsm-suggest__done p {
	margin: 0;
	font-size: 15px;
}

.ftsm .ftsm-suggest__done .ftsm-suggest__done-title {
	margin-bottom: 4px;
	color: var(--ftsm-green);
	font-family: var(--ftsm-head);
	font-size: 18px;
	font-weight: 600;
}

.ftsm-photo {
	gap: 8px;
}

.ftsm .ftsm-photo__drop {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 2px 14px;
	align-items: center;
	padding: 18px 20px;
	border: 1.5px dashed var(--ftsm-line-warm);
	border-radius: 16px;
	background: #fff;
	cursor: pointer;
	transition: border-color .15s;
}

.ftsm .ftsm-photo__drop:hover,
.ftsm .ftsm-photo__drop:focus-within {
	border-color: var(--ftsm-green);
}

.ftsm .ftsm-photo__input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: pointer;
}

.ftsm-photo__icon {
	grid-row: span 2;
	width: 40px;
	height: 40px;
	padding: 8px;
	border-radius: 12px;
	background: var(--ftsm-sand-soft);
	fill: none;
	stroke: var(--ftsm-green);
	stroke-width: 1.6;
	stroke-linejoin: round;
}

.ftsm-photo__cta {
	font-family: var(--ftsm-head);
	font-weight: 600;
}

.ftsm-photo__hint {
	color: var(--ftsm-muted);
	font-size: 13px;
}

.ftsm-photo__preview {
	display: flex;
	gap: 14px;
	align-items: center;
	padding: 10px;
	border: 1px solid var(--ftsm-line);
	border-radius: 16px;
	background: #fff;
}

.ftsm .ftsm-photo__img {
	width: 96px;
	height: 72px;
	margin: 0;
	border-radius: 10px;
	object-fit: cover;
}

.ftsm-photo__name {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	font-size: 14px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ftsm .ftsm-photo__remove {
	padding: 8px 14px;
	border: 1px solid var(--ftsm-line);
	border-radius: 999px;
	background: transparent;
	color: var(--ftsm-ink);
	font-size: 13px;
}

.ftsm .ftsm-photo__remove:hover {
	border-color: var(--ftsm-ink);
	background: transparent;
	color: var(--ftsm-ink);
}

/* ---------------------------------------------------------------------
 * [findtheslow_viaggi]
 * ------------------------------------------------------------------ */

.ftsm-trips__list {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ftsm-trips__item {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 24px;
	align-items: center;
	justify-content: space-between;
	padding: 20px 24px;
	border: 1px solid var(--ftsm-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--ftsm-shadow);
}

.ftsm .ftsm-trips__title {
	margin: 0 0 2px;
	font-family: var(--ftsm-head);
	font-size: 18px;
	font-weight: 600;
}

.ftsm .ftsm-trips__meta,
.ftsm .ftsm-trips__empty {
	margin: 0;
	color: var(--ftsm-muted);
	font-size: 14px;
}

.ftsm-trips__actions {
	display: flex;
	gap: 16px;
	align-items: center;
}

.ftsm .ftsm-trips__delete {
	padding: 0;
	border: 0;
	background: none;
}

/* ---------------------------------------------------------------------
 * Schermi medi: pannello più stretto
 * ------------------------------------------------------------------ */

@media (max-width: 1000px) {
	.ftsm {
		--ftsm-side-w: 360px;
	}

	.ftsm .ftsm-item__hit {
		grid-template-columns: 88px minmax(0, 1fr);
	}

	.ftsm-item__media {
		width: 88px;
		height: 88px;
	}
}

/* ---------------------------------------------------------------------
 * Telefono: mappa piena, elenco e assistente salgono dal basso
 * ------------------------------------------------------------------ */

@media (max-width: 640px) {
	.ftsm-map-wrap {
		height: min(var(--ftsm-height, 720px), 82vh);
		height: min(var(--ftsm-height, 720px), 82svh);
		min-height: 560px;
		border-radius: 22px;
	}

	.ftsm-top {
		top: 12px;
		right: 0;
		left: 0;
	}

	.ftsm-chips {
		flex-wrap: nowrap;
		padding: 2px 12px 8px;
		overflow-x: auto;
		pointer-events: auto;
		scrollbar-width: none;
	}

	.ftsm-chips::-webkit-scrollbar {
		display: none;
	}

	.ftsm .ftsm-chip,
	.ftsm .ftsm-region__select {
		height: 40px;
		font-size: 13.5px;
	}

	.ftsm .ftsm-region__select {
		width: 150px;
	}

	.ftsm-chip__dot {
		width: 28px;
		height: 28px;
	}

	.ftsm .leaflet-control-zoom {
		display: none;
	}

	/* I crediti della mappa restano visibili: in alto, sotto i filtri. */
	.ftsm .leaflet-bottom.leaflet-right {
		top: 62px;
		bottom: auto;
	}

	.ftsm .leaflet-control-attribution {
		border-radius: 10px 0 0 10px;
	}

	.ftsm-notice {
		left: 50%;
	}

	.ftsm-side {
		top: auto;
		right: 0;
		bottom: 0;
		left: 0;
		width: auto;
		max-width: none;
		height: 84%;
		border-radius: 24px 24px 0 0;
		transition: height .35s var(--ftsm-ease);
	}

	.ftsm-side.is-collapsed {
		bottom: 0;
		height: auto;
	}

	.ftsm-view__head {
		padding: 24px 16px 12px 20px;
	}

	.ftsm .ftsm-side__grip {
		position: absolute;
		top: 0;
		left: 50%;
		display: block;
		width: 90px;
		height: 22px;
		padding: 0;
		border: 0;
		background: transparent;
		transform: translateX(-50%);
	}

	.ftsm .ftsm-side__grip::before {
		display: block;
		width: 42px;
		height: 5px;
		margin: 9px auto 0;
		border-radius: 999px;
		background: var(--ftsm-line-warm);
		content: "";
	}

	.ftsm .ftsm-view__title {
		font-size: 20px;
	}

	.ftsm .ftsm-plan-head__title {
		font-size: 22px;
	}

	/* Dal basso: freccia giù per ridurre, su per aprire. */
	.ftsm .ftsm-side__collapse {
		width: 40px;
		height: 40px;
		transform: rotate(180deg);
	}

	.ftsm-side.is-collapsed .ftsm-side__collapse {
		transform: none;
	}

	.ftsm .ftsm-plan-head__toggle {
		display: inline-flex;
		flex: 0 0 auto;
		gap: 4px;
		align-items: center;
		height: 38px;
		padding: 0 12px 0 10px;
		border: 0;
		border-radius: 999px;
		background: var(--ftsm-sand-soft);
		color: var(--ftsm-ink);
		font-family: var(--ftsm-head);
		font-size: 13px;
		font-weight: 600;
	}

	.ftsm-side.is-collapsed .ftsm-plan-head__toggle svg {
		transform: rotate(180deg);
	}

	.ftsm-side.is-collapsed .ftsm-view__subtitle {
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.ftsm-side.is-collapsed .ftsm-view--list .ftsm-view__body {
		padding-bottom: 14px;
	}

	.ftsm-side.is-collapsed .ftsm-promo {
		margin: 0;
	}

	.ftsm-view__body {
		padding: 4px 18px 24px;
	}

	.ftsm .ftsm-promo {
		grid-template-columns: 48px minmax(0, 1fr) auto;
		gap: 12px;
		padding: 12px;
	}

	.ftsm-promo__art {
		width: 48px;
		height: 48px;
		border-radius: 14px;
	}

	.ftsm-promo__route {
		width: 24px;
		height: 24px;
	}

	.ftsm-promo__spark {
		width: 24px;
		height: 24px;
	}

	.ftsm .ftsm-promo__title {
		font-size: 15px;
	}

	.ftsm .ftsm-promo__sub {
		font-size: 12.5px;
	}

	.ftsm .ftsm-item__hit {
		grid-template-columns: 84px minmax(0, 1fr);
		padding: 8px;
	}

	.ftsm-item__media {
		width: 84px;
		height: 84px;
	}

	.ftsm-planner .ftsm-form__footer {
		margin: 20px -18px 0;
		padding: 12px 18px 18px;
	}

	.ftsm .ftsm-act {
		min-height: 60px;
		font-size: 11.5px;
	}

	.ftsm-legend {
		gap: 8px;
		margin-top: 12px;
	}

	.ftsm .ftsm-legend__item {
		font-size: 13px;
	}

	.ftsm-suggest {
		margin-top: 24px;
		padding: 28px 20px;
		border-radius: 22px;
	}

	.ftsm-suggest__intro {
		flex-direction: column;
		align-items: stretch;
	}

	.ftsm .ftsm-suggest__toggle,
	.ftsm .ftsm-form__submit {
		width: 100%;
	}

	.ftsm-suggest .ftsm-form {
		padding: 20px 16px;
	}

	.ftsm-form__grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.ftsm-planner .ftsm-form__grid--3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* ---------------------------------------------------------------------
 * "Aggiungi al viaggio" nella scheda del luogo
 * ------------------------------------------------------------------ */

.ftsm .ftsm-add {
	display: flex;
	gap: 8px;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin: 14px 0 0;
	padding: 11px 16px;
	border: 1.5px dashed var(--ftsm-green);
	border-radius: 999px;
	background: var(--ftsm-green-soft);
	color: var(--ftsm-green-dark);
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 600;
	transition: background-color .2s, color .2s;
}

.ftsm .ftsm-add:hover {
	background: var(--ftsm-green);
	color: #fff;
}

.ftsm .ftsm-add.is-in {
	border-style: solid;
	background: var(--ftsm-green);
	color: #fff;
}

.ftsm-add__icon {
	width: 17px;
	height: 17px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* ---------------------------------------------------------------------
 * Modificare il percorso
 * ------------------------------------------------------------------ */

.ftsm-stop__tools {
	display: flex;
	grid-column: 2 / -1;
	gap: 4px;
	margin-top: -2px;
	opacity: .55;
	transition: opacity .15s;
}

.ftsm-stop:hover .ftsm-stop__tools,
.ftsm-stop:focus-within .ftsm-stop__tools {
	opacity: 1;
}

.ftsm .ftsm-tool {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	padding: 0;
	border: 1px solid var(--ftsm-line);
	border-radius: 9px;
	background: #fff;
	color: var(--ftsm-ink);
	transition: border-color .15s, background-color .15s;
}

.ftsm .ftsm-tool:hover {
	border-color: var(--ftsm-ink);
	background: #fff;
	color: var(--ftsm-ink);
}

.ftsm .ftsm-tool--close:hover {
	border-color: #A3402B;
	color: #A3402B;
}

.ftsm .ftsm-tool--add {
	border-color: var(--ftsm-green);
	color: var(--ftsm-green);
}

.ftsm-tool svg {
	width: 15px;
	height: 15px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm-extra {
	grid-template-columns: 28px minmax(0, 1fr) auto;
}

.ftsm .ftsm-day__empty {
	margin: 0 0 6px 46px;
	color: var(--ftsm-muted);
	font-size: 13px;
	font-style: italic;
}

.ftsm-picker {
	margin: 8px 0 0 46px;
}

.ftsm-picker--stay {
	margin-left: 0;
}

.ftsm .ftsm-picker__toggle {
	display: inline-flex;
	gap: 6px;
	align-items: center;
	padding: 6px 12px 6px 8px;
	border: 1px dashed var(--ftsm-line-warm);
	border-radius: 999px;
	background: transparent;
	color: var(--ftsm-ink-soft);
	font-family: var(--ftsm-head);
	font-size: 13px;
	font-weight: 600;
}

.ftsm .ftsm-picker__toggle:hover,
.ftsm .ftsm-picker__toggle[aria-expanded="true"] {
	border-color: var(--ftsm-green);
	background: var(--ftsm-green-soft);
	color: var(--ftsm-green-dark);
}

.ftsm-picker__toggle svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm-picker__list {
	display: grid;
	gap: 4px;
	margin: 8px 0 0;
	padding: 6px;
	border-radius: 14px;
	background: var(--ftsm-sand-soft);
	list-style: none;
}

.ftsm .ftsm-picker__item {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr) auto;
	gap: 8px;
	align-items: center;
	width: 100%;
	padding: 8px 10px;
	border: 0;
	border-radius: 10px;
	background: #fff;
	color: var(--ftsm-ink);
	font-size: 13.5px;
	text-align: left;
}

.ftsm .ftsm-picker__item:hover {
	background: var(--ftsm-green-soft);
	color: var(--ftsm-ink);
}

.ftsm-picker__icon {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: var(--ftsm-muted);
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm-picker__icon .ftsm-fill {
	fill: var(--ftsm-luoghi-slow);
	stroke: none;
}

.ftsm-picker__name {
	overflow: hidden;
	font-family: var(--ftsm-head);
	font-weight: 600;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ftsm-picker__meta {
	color: var(--ftsm-muted);
	font-size: 12px;
	white-space: nowrap;
}

.ftsm .ftsm-picker__empty {
	padding: 8px 10px;
	color: var(--ftsm-muted);
	font-size: 13px;
}

.ftsm .ftsm-day__drop {
	margin: 10px 0 0 46px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ftsm-muted);
	font-size: 12px;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ftsm .ftsm-day__drop:hover {
	background: none;
	color: #A3402B;
}

.ftsm .ftsm-trip__addday {
	display: flex;
	gap: 8px;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin: 22px 0 0;
	padding: 12px;
	border: 1.5px dashed var(--ftsm-line-warm);
	border-radius: 16px;
	background: transparent;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 600;
}

.ftsm .ftsm-trip__addday:hover {
	border-color: var(--ftsm-green);
	background: var(--ftsm-green-soft);
	color: var(--ftsm-green-dark);
}

.ftsm-trip__addday svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
}

.ftsm-toast {
	position: absolute;
	z-index: 950;
	bottom: 24px;
	left: 50%;
	max-width: min(420px, calc(100% - 32px));
	margin: 0;
	padding: 12px 18px;
	border-radius: 14px;
	background: var(--ftsm-ink);
	box-shadow: var(--ftsm-shadow-lg);
	color: #fff;
	font-size: 14px;
	line-height: 1.4;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, 12px);
	transition: opacity .25s, transform .25s var(--ftsm-ease);
}

.ftsm-toast.is-on {
	opacity: 1;
	transform: translate(-50%, 0);
}

@media (min-width: 641px) {
	.ftsm-toast {
		left: calc(50% + var(--ftsm-side-w) / 2);
	}
}

/* Partenza e luoghi scelti nel modulo. */

.ftsm-planner .ftsm-from {
	margin-top: 14px;
}

.ftsm-from__row {
	display: flex;
	gap: 8px;
}

.ftsm .ftsm-from__row input {
	flex: 1 1 auto;
	min-width: 0;
}

.ftsm .ftsm-from__here {
	display: grid;
	flex: 0 0 auto;
	place-items: center;
	width: 50px;
	height: 50px;
	padding: 0;
	border: 1px solid var(--ftsm-line);
	border-radius: 14px;
	background: #fff;
	color: var(--ftsm-ink);
}

.ftsm .ftsm-from__here:hover {
	border-color: var(--ftsm-ink);
	background: #fff;
	color: var(--ftsm-ink);
}

.ftsm-from__here svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
}

.ftsm-pins {
	margin: 0 0 18px;
	padding: 14px;
	border-radius: 16px;
	background: var(--ftsm-green-soft);
}

.ftsm .ftsm-pins__title {
	margin: 0 0 8px;
	color: var(--ftsm-green-dark);
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 600;
}

.ftsm-pins__list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ftsm-pins__item {
	display: inline-flex;
	gap: 6px;
	align-items: center;
	padding: 4px 4px 4px 10px;
	border-radius: 999px;
	background: #fff;
	font-family: var(--ftsm-head);
	font-size: 13px;
	font-weight: 600;
}

.ftsm-pins__icon {
	width: 15px;
	height: 15px;
	fill: none;
	stroke: var(--ftsm-muted);
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ftsm-pins__icon .ftsm-fill {
	fill: var(--ftsm-luoghi-slow);
	stroke: none;
}

.ftsm .ftsm-pins__drop {
	display: grid;
	place-items: center;
	width: 24px;
	height: 24px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--ftsm-sand-soft);
	color: var(--ftsm-ink);
}

.ftsm-pins__drop svg {
	width: 12px;
	height: 12px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.4;
	stroke-linecap: round;
}

.ftsm-origin-pin {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	border: 2px solid #fff;
	border-radius: 50%;
	background: var(--ftsm-ink);
	box-shadow: var(--ftsm-shadow);
}

.ftsm-origin-pin svg {
	width: 60%;
	height: 60%;
	fill: none;
	stroke: #fff;
	stroke-width: 2;
}

/* ---------------------------------------------------------------------
 * Indice dei luoghi (per chi legge e per i motori di ricerca)
 * ------------------------------------------------------------------ */

.ftsm-dir {
	margin-top: 40px;
	padding-top: 32px;
	border-top: 1px solid var(--ftsm-line);
}

.ftsm .ftsm-dir__title {
	margin: 0 0 6px;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: clamp(22px, 2.4vw, 28px);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -.015em;
	text-transform: none;
}

.ftsm .ftsm-dir__lead {
	margin: 0 0 18px;
	color: var(--ftsm-muted);
	font-size: 15px;
}

.ftsm-dir__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
	margin: 0 0 12px;
}

.ftsm-dir__nav-label {
	margin-right: 6px;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 13px;
	font-weight: 600;
}

.ftsm .ftsm-dir__link {
	padding: 5px 12px;
	border: 1px solid var(--ftsm-line);
	border-radius: 999px;
	color: var(--ftsm-ink);
	font-size: 13px;
	text-decoration: none;
	transition: border-color .15s, background-color .15s;
}

.ftsm .ftsm-dir__link span {
	color: var(--ftsm-muted);
}

.ftsm .ftsm-dir__link:hover {
	border-color: var(--ftsm-ink);
	color: var(--ftsm-ink);
}

.ftsm .ftsm-dir__link.is-current {
	border-color: var(--ftsm-ink);
	background: var(--ftsm-ink);
	color: #fff;
}

.ftsm .ftsm-dir__link.is-current span {
	color: rgba(255, 255, 255, .7);
}

.ftsm-dir__groups {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 12px;
	margin-top: 20px;
}

.ftsm-dir__group {
	--c: var(--ftsm-borghi);
	align-self: start;
	padding: 4px 16px;
	border: 1px solid var(--ftsm-line);
	border-radius: 16px;
	background: #fff;
}

.ftsm-dir__group--soggiorni { --c: var(--ftsm-soggiorni); }
.ftsm-dir__group--esperienze { --c: var(--ftsm-esperienze); }
.ftsm-dir__group--eventi { --c: var(--ftsm-eventi); }
.ftsm-dir__group--luoghi-slow { --c: var(--ftsm-luoghi-slow); }

.ftsm-dir__group summary {
	display: flex;
	gap: 10px;
	align-items: center;
	padding: 12px 0;
	font-family: var(--ftsm-head);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.ftsm-dir__group summary::-webkit-details-marker {
	display: none;
}

.ftsm-dir__group summary::after {
	margin-left: auto;
	color: var(--ftsm-muted);
	content: "+";
	font-size: 20px;
	font-weight: 400;
}

.ftsm-dir__group[open] summary::after {
	content: "–";
}

.ftsm-dir__dot {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--c);
}

.ftsm-dir__count {
	color: var(--ftsm-muted);
	font-weight: 500;
}

.ftsm-dir__list {
	display: grid;
	gap: 8px;
	margin: 0 0 14px;
	padding: 0;
	list-style: none;
}

.ftsm-dir__list li {
	display: grid;
	font-size: 14px;
	line-height: 1.35;
}

.ftsm .ftsm-dir__list a {
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-weight: 600;
	text-decoration: none;
}

.ftsm .ftsm-dir__list a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ftsm-dir__list strong {
	font-family: var(--ftsm-head);
	font-weight: 600;
}

.ftsm-dir__list span {
	color: var(--ftsm-muted);
	font-size: 12.5px;
}

@media (max-width: 640px) {
	.ftsm-stop__tools {
		opacity: 1;
	}

	.ftsm-dir {
		margin-top: 28px;
		padding-top: 24px;
	}

	.ftsm-dir__nav {
		flex-wrap: nowrap;
		margin-right: -16px;
		padding-bottom: 4px;
		overflow-x: auto;
		scrollbar-width: none;
	}

	.ftsm-dir__nav-label,
	.ftsm .ftsm-dir__link {
		flex: 0 0 auto;
		white-space: nowrap;
	}
}

/* ---------------------------------------------------------------------
 * Cammini e borghi fantasma: livelli propri della selezione curata
 * ------------------------------------------------------------------ */

.ftsm {
	--ftsm-cammini: #6B7A3A;
	--ftsm-fantasmi: #6F6577;
}

.ftsm-item--cammini,
.ftsm .ftsm-chip--cammini,
.ftsm-pin--cammini,
.ftsm-step--cammini,
.ftsm-card--cammini .ftsm-tag,
.ftsm-stop--cammini,
.ftsm-dir__group--cammini { --c: var(--ftsm-cammini); }

.ftsm-item--fantasmi,
.ftsm .ftsm-chip--fantasmi,
.ftsm-pin--fantasmi,
.ftsm-step--fantasmi,
.ftsm-card--fantasmi .ftsm-tag,
.ftsm-stop--fantasmi,
.ftsm-dir__group--fantasmi { --c: var(--ftsm-fantasmi); }

/* Il cammino si riconosce dal segnavia colorato. */
.ftsm-pin--cammini svg {
	stroke: var(--c);
	stroke-width: 2.1;
	opacity: 1;
}

/* Il borgo fantasma: bordo tratteggiato e toni spenti. */
.ftsm-pin--fantasmi {
	border-style: dashed;
	border-width: 1.5px;
	background: #EFEDEA;
}

.ftsm-pin--fantasmi svg {
	stroke: var(--c);
	opacity: .95;
}

/* ---------------------------------------------------------------------
 * Schermo intero e "Azzera"
 * ------------------------------------------------------------------ */

.ftsm-tools {
	position: absolute;
	z-index: 820;
	top: 16px;
	right: 16px;
	display: flex;
	gap: 8px;
}

.ftsm .ftsm-top {
	right: 72px;
}

.ftsm .ftsm-chip--tool {
	width: 42px;
	padding: 0;
	justify-content: center;
}

/* I pulsanti a destra non sono filtri: mai "spenti" come le pillole disattivate. */
.ftsm .ftsm-tools .ftsm-chip[aria-pressed="false"],
.ftsm .ftsm-tools .ftsm-chip--near {
	background: #fff;
	color: var(--ftsm-ink);
	box-shadow: var(--ftsm-shadow);
}

.ftsm .ftsm-chip--tool[aria-pressed="true"] {
	border-color: var(--ftsm-ink);
	background: var(--ftsm-ink);
	color: #fff;
}

.ftsm .ftsm-chip--reset {
	padding: 0 16px 0 13px;
	border-color: var(--ftsm-ink);
	background: var(--ftsm-ink);
	color: #fff;
	animation: ftsm-fade .25s var(--ftsm-ease);
}

.ftsm .ftsm-chip--reset:hover {
	border-color: var(--ftsm-green);
	background: var(--ftsm-green);
	color: #fff;
}

html.ftsm-locked,
html.ftsm-locked body {
	overflow: hidden !important;
}

.ftsm.is-full {
	position: fixed;
	z-index: 2147483000;
	inset: 0;
	width: auto;
	max-width: none;
	height: 100%;
	margin: 0;
	padding: 0;
	background: var(--ftsm-sand);
}

.ftsm.is-full > :not(.ftsm-map-wrap) {
	display: none !important;
}

.ftsm.is-full .ftsm-map-wrap {
	height: 100% !important;
	min-height: 0;
	border-radius: 0;
	box-shadow: none;
}

.ftsm:fullscreen {
	width: 100%;
	height: 100%;
	background: var(--ftsm-sand);
}

/* ---------------------------------------------------------------------
 * Account: Preferiti, cuore nella scheda, invito ad accedere
 * ------------------------------------------------------------------ */

/* Cuore e freccia indietro non girano come la freccia che apre e chiude il pannello. */
.ftsm .ftsm-side .ftsm-side__favs,
.ftsm .ftsm-side .ftsm-view__back {
	transform: none;
}

.ftsm-side.is-collapsed .ftsm-view--favorites .ftsm-view__body,
.ftsm-side.is-collapsed .ftsm-view--photo .ftsm-view__body {
	display: none;
}

.ftsm .ftsm-side__favs svg {
	fill: none;
}

.ftsm .ftsm-fav {
	display: grid;
	flex: 0 0 auto;
	place-items: center;
	width: 40px;
	height: 40px;
	margin-left: auto;
	padding: 0;
	border: 1px solid var(--ftsm-line);
	border-radius: 50%;
	background: #fff;
	color: var(--ftsm-ink);
	transition: border-color .2s, color .2s, transform .2s var(--ftsm-ease);
}

.ftsm .ftsm-fav:hover {
	border-color: var(--ftsm-ink);
	background: #fff;
	color: var(--ftsm-ink);
}

.ftsm .ftsm-fav.is-on {
	border-color: #B5483A;
	color: #B5483A;
}

.ftsm .ftsm-fav:active {
	transform: scale(.92);
}

.ftsm-fav__icon {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linejoin: round;
}

.ftsm-fav.is-on .ftsm-fav__icon {
	fill: currentColor;
}

.ftsm-login {
	margin: 14px 0 0;
	padding: 16px 18px;
	border-radius: 16px;
	background: var(--ftsm-sand-soft);
}

.ftsm-trip__drawer .ftsm-login {
	margin: 0;
	padding: 0;
	background: none;
}

.ftsm .ftsm-login__text {
	margin: 0 0 12px;
	color: var(--ftsm-ink-soft);
	font-size: 14px;
	line-height: 1.5;
}

.ftsm-login__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
	align-items: center;
}

.ftsm .ftsm-favs__title {
	margin: 18px 0 10px;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 16px;
	font-weight: 600;
	text-transform: none;
}

.ftsm .ftsm-favs__title:first-child {
	margin-top: 0;
}

.ftsm .ftsm-favs__empty {
	margin: 0 0 8px;
	color: var(--ftsm-muted);
	font-size: 14px;
}

.ftsm-favs__trips {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ftsm-favs__trip {
	display: grid;
	gap: 10px;
	padding: 14px 16px;
	border: 1px solid var(--ftsm-line);
	border-radius: 18px;
	background: #fff;
}

.ftsm .ftsm-favs__trip-title {
	margin: 0;
	font-family: var(--ftsm-head);
	font-size: 15.5px;
	font-weight: 600;
	line-height: 1.3;
}

.ftsm .ftsm-favs__trip-meta {
	margin: 2px 0 0;
	color: var(--ftsm-muted);
	font-size: 13px;
}

.ftsm-favs__trip-actions {
	display: flex;
	gap: 16px;
	align-items: center;
}

.ftsm .ftsm-favs__trip-actions .ftsm-btn {
	padding: 9px 18px;
	font-size: 13.5px;
}

.ftsm .ftsm-favs__trip-actions .ftsm-link,
.ftsm .ftsm-trip__status .ftsm-link {
	padding: 0;
	border: 0;
	background: none;
}

.ftsm .ftsm-trips__heading {
	margin: 28px 0 12px;
	font-family: var(--ftsm-head);
	font-size: 18px;
	font-weight: 600;
}

/* ---------------------------------------------------------------------
 * Foto condivise: credito nella scheda, invito nell'elenco, modulo breve
 * ------------------------------------------------------------------ */

.ftsm .ftsm-item__photo {
	display: flex;
	gap: 8px;
	align-items: center;
	width: calc(100% - 146px);
	margin: 2px 10px 10px 136px;
	padding: 6px 12px;
	border: 1px dashed var(--ftsm-line-warm);
	border-radius: 999px;
	background: transparent;
	color: var(--ftsm-muted);
	font-size: 12.5px;
	line-height: 1.3;
	text-align: left;
	transition: border-color .2s, background-color .2s, color .2s;
}

.ftsm .ftsm-item__photo:hover,
.ftsm .ftsm-item__photo:focus-visible {
	border-color: var(--ftsm-green);
	background: var(--ftsm-green-soft);
	color: var(--ftsm-ink);
}

.ftsm .ftsm-item__photo strong {
	color: var(--ftsm-green);
	font-family: var(--ftsm-head);
	font-weight: 600;
}

.ftsm-item__photo-icon {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: var(--ftsm-green);
	stroke-width: 1.7;
	stroke-linejoin: round;
}

.ftsm .ftsm-share {
	display: grid;
	gap: 16px;
}

.ftsm .ftsm-share__lead {
	margin: 0;
	color: var(--ftsm-ink-soft);
	font-size: 14px;
}

.ftsm .ftsm-field__hint {
	color: var(--ftsm-muted);
	font-size: 12.5px;
}

.ftsm .ftsm-share .ftsm-form__footer {
	margin-top: 4px;
}

.ftsm-share__done {
	padding: 18px 20px;
	border-radius: 18px;
	background: var(--ftsm-green-soft);
	outline: none;
}

.ftsm .ftsm-share__done-text {
	margin: 0 0 14px;
	font-size: 15px;
}

@media (max-width: 1000px) {
	.ftsm .ftsm-item__photo {
		width: calc(100% - 122px);
		margin-left: 112px;
	}
}

@media (max-width: 640px) {
	.ftsm-tools {
		top: 12px;
		right: 12px;
	}

	.ftsm .ftsm-top {
		right: 56px;
	}

	.ftsm .ftsm-chip--tool,
	.ftsm .ftsm-tools .ftsm-chip--near {
		width: 40px;
		height: 40px;
	}

	/* I crediti della mappa a sinistra: a destra c'è la colonna dei pulsanti. */
	.ftsm .leaflet-bottom.leaflet-right {
		right: auto;
		left: 0;
	}

	.ftsm .leaflet-control-attribution {
		border-radius: 0 10px 10px 0;
	}

	.ftsm .ftsm-item__photo {
		width: calc(100% - 116px);
		margin: 2px 8px 10px 108px;
		font-size: 12px;
	}

	/* Schermo intero sul telefono: il pannello sale fino quasi in cima. */
	.ftsm.is-full .ftsm-side {
		height: 88%;
	}

	.ftsm.is-full .ftsm-side.is-collapsed {
		height: auto;
	}

	.ftsm-favs__trip-actions .ftsm-btn {
		min-height: 44px;
	}
}

/* ---------------------------------------------------------------------
 * 1.7: borghi rinati, scheda riordinata, galleria, filtri sul telefono
 * ------------------------------------------------------------------ */

.ftsm {
	--ftsm-rinati: #5E8C6A;
}

.ftsm-item--rinati,
.ftsm .ftsm-chip--rinati,
.ftsm-pin--rinati,
.ftsm-step--rinati,
.ftsm-card--rinati .ftsm-tag,
.ftsm-stop--rinati,
.ftsm-dir__group--rinati { --c: var(--ftsm-rinati); }

/* Il borgo rinato: il germoglio verde su fondo chiaro. */
.ftsm-pin--rinati {
	background: #EEF4EF;
}

.ftsm-pin--rinati svg {
	stroke: var(--c);
	stroke-width: 2.1;
	opacity: 1;
}

/* Foto della scheda: il nome di chi l'ha scattata in un angolo. */
.ftsm-card__media {
	position: relative;
	overflow: hidden;
}

.ftsm .ftsm-card__photo {
	position: relative;
	width: 100%;
	height: 100%;
	margin: 0;
}

/* Il nome dell'autore, piccolo e discreto nell'angolo in basso a destra della foto. */
.ftsm .ftsm-card__credit {
	position: absolute;
	right: 6px;
	bottom: 6px;
	display: block;
	max-width: 70%;
	margin: 0;
	padding: 1px 7px;
	overflow: hidden;
	border-radius: 6px;
	background: rgba(24, 32, 28, .4);
	color: rgba(255, 255, 255, .92);
	font-family: var(--ftsm-body);
	font-size: 10.5px;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: .01em;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.ftsm-gallery__track {
	display: flex;
	width: 100%;
	height: 100%;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.ftsm-gallery__track::-webkit-scrollbar {
	display: none;
}

.ftsm-gallery__track:focus-visible {
	outline: 3px solid #fff;
	outline-offset: -3px;
}

.ftsm .ftsm-gallery__slide {
	flex: 0 0 100%;
	scroll-snap-align: start;
}

.ftsm-gallery__count {
	position: absolute;
	top: 10px;
	left: 10px;
	padding: 2px 9px;
	border-radius: 999px;
	background: rgba(24, 32, 28, .62);
	color: #fff;
	font-family: var(--ftsm-head);
	font-size: 12px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.ftsm .ftsm-gallery__nav {
	position: absolute;
	top: 50%;
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: var(--ftsm-ink);
	box-shadow: var(--ftsm-shadow);
	transform: translateY(-50%);
	transition: opacity .2s;
}

.ftsm .ftsm-gallery__nav:hover {
	background: #fff;
	color: var(--ftsm-ink);
}

.ftsm-gallery__nav--prev { left: 8px; }
.ftsm-gallery__nav--next { right: 8px; }

.ftsm-gallery.is-first .ftsm-gallery__nav--prev,
.ftsm-gallery.is-last .ftsm-gallery__nav--next {
	opacity: 0;
	pointer-events: none;
}

.ftsm-gallery__nav svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Azioni subito sotto il titolo: "Aggiungi al viaggio" e "Salva", allineati. */
.ftsm-card__bar {
	display: flex;
	gap: 8px;
	align-items: stretch;
	margin: 12px 0 12px;
}

.ftsm .ftsm-card__bar .ftsm-add {
	flex: 1 1 auto;
	width: auto;
	min-height: 44px;
	margin: 0;
	padding: 9px 14px;
	font-size: 14px;
}

.ftsm .ftsm-fav {
	display: inline-flex;
	flex: 0 0 auto;
	gap: 6px;
	align-items: center;
	width: auto;
	height: auto;
	min-height: 44px;
	margin: 0;
	padding: 0 14px 0 12px;
	border: 1px solid var(--ftsm-line);
	border-radius: 999px;
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 600;
}

/* Sul computer il cuore è tondo, in fondo alla riga di "Scopri" e "Indicazioni". */
.ftsm .ftsm-fav--round {
	justify-content: center;
	width: 40px;
	height: 40px;
	min-height: 0;
	margin-left: auto;
	padding: 0;
	border-radius: 50%;
}

.ftsm .ftsm-card__report {
	display: block;
	margin: 14px 0 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ftsm-muted);
	font-size: 12.5px;
	text-decoration: underline;
	text-decoration-color: var(--ftsm-line-warm);
	text-underline-offset: 3px;
}

.ftsm .ftsm-card__report:hover {
	background: none;
	color: var(--ftsm-ink);
}

/* Sul telefono la scheda sale dal basso: foto in alto, poi tutto in colonna. */
.ftsm .ftsm-sheet .ftsm-card {
	display: block;
	padding: 0;
}

.ftsm .ftsm-sheet .ftsm-card__media {
	width: auto;
	height: auto;
	aspect-ratio: 16 / 7;
	border-radius: 22px 22px 0 0;
}

.ftsm .ftsm-sheet .ftsm-card__body {
	padding: 14px 16px 16px;
}

.ftsm .ftsm-sheet .ftsm-card__actions,
.ftsm .ftsm-sheet .ftsm-card:not(.ftsm-card--noimg) .ftsm-card__actions {
	display: flex;
	margin-left: 0;
}

.ftsm .ftsm-sheet .ftsm-card:not(.ftsm-card--noimg) .ftsm-card__meta {
	padding-right: 0;
}

.ftsm .ftsm-sheet .ftsm-card__bar {
	margin: 10px 0;
}

/* "I miei preferiti" sotto il titolo dell'elenco. */
.ftsm .ftsm-side__favs {
	display: inline-flex;
	gap: 7px;
	align-items: center;
	margin: 8px 0 0;
	padding: 7px 14px 7px 11px;
	border: 1px solid var(--ftsm-line);
	border-radius: 999px;
	background: #fff;
	color: var(--ftsm-ink);
	font-family: var(--ftsm-head);
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.2;
	transition: border-color .2s, background-color .2s;
}

.ftsm .ftsm-side__favs:hover {
	border-color: var(--ftsm-ink);
	background: #fff;
	color: var(--ftsm-ink);
}

.ftsm-side__favs-icon {
	width: 17px;
	height: 17px;
	fill: none;
	stroke: #B5483A;
	stroke-width: 1.9;
	stroke-linejoin: round;
}

/* Filtri: sul computer le pillole, sul telefono un pannello. */
.ftsm .ftsm-chip--filters {
	display: none;
	padding: 0 14px 0 12px;
}

.ftsm-chip__badge {
	display: inline-grid;
	place-items: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--ftsm-ink);
	color: #fff;
	font-size: 11.5px;
}

.ftsm-chip__badge:empty {
	display: none;
}

.ftsm-filters {
	position: absolute;
	z-index: 870;
	top: 62px;
	right: 12px;
	left: 12px;
	max-height: calc(100% - 80px - var(--ftsm-safe-bottom, 0px));
	padding: 16px;
	overflow-y: auto;
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--ftsm-shadow-lg);
	animation: ftsm-rise .25s var(--ftsm-ease);
}

.ftsm .ftsm-filters__title {
	margin: 0 0 8px;
	font-family: var(--ftsm-head);
	font-size: 16px;
	font-weight: 600;
}

.ftsm-filters__list {
	display: grid;
	gap: 2px;
}

.ftsm .ftsm-filters__row {
	--c: var(--ftsm-borghi);
	display: grid;
	grid-template-columns: 22px 30px minmax(0, 1fr) auto;
	gap: 10px;
	align-items: center;
	min-height: 48px;
	padding: 4px 6px;
	border-radius: 12px;
	font-family: var(--ftsm-head);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
}

.ftsm .ftsm-filters__row input {
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--ftsm-green);
}

.ftsm-filters__row:has(input:not(:checked)) {
	color: var(--ftsm-muted);
}

.ftsm-filters__row:has(input:not(:checked)) .ftsm-chip__dot {
	filter: grayscale(1);
	opacity: .35;
}

.ftsm-filters__foot {
	display: flex;
	gap: 12px;
	align-items: center;
	justify-content: space-between;
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--ftsm-line);
}

.ftsm .ftsm-filters__foot .ftsm-link {
	padding: 0;
	border: 0;
	background: none;
}

/* Schermo intero: un impulso leggero e un'etichetta, finché non lo si prova. */
/* L'etichetta sta sotto il pulsante: non copre i filtri. */
.ftsm-tools {
	flex-direction: column;
	align-items: flex-end;
}

/* Con il percorso aperto "Vicino a me" non serve. */
.ftsm.is-planning .ftsm-tools .ftsm-chip--near {
	display: none;
}

.ftsm-tools__tip {
	position: absolute;
	top: 5px;
	right: calc(100% + 8px);
	display: none;
	pointer-events: none;
	padding: 7px 12px;
	border-radius: 999px;
	background: var(--ftsm-ink);
	color: #fff;
	font-family: var(--ftsm-head);
	font-size: 12.5px;
	font-weight: 600;
	white-space: nowrap;
	box-shadow: var(--ftsm-shadow);
	animation: ftsm-fade .3s var(--ftsm-ease);
}

.ftsm-tools.is-hinting .ftsm-tools__tip {
	display: block;
}

.ftsm .ftsm-tools.is-pulsing .ftsm-chip--tool {
	border-color: var(--ftsm-green);
	color: var(--ftsm-green);
	animation: ftsm-pulse 1.8s ease-out 4;
}

/* Chi ha chiesto meno animazioni al sistema vede solo un anello fermo. */
@media (prefers-reduced-motion: reduce) {
	.ftsm-tools.is-pulsing .ftsm-chip--tool {
		box-shadow: 0 0 0 3px rgba(52, 93, 71, .45), var(--ftsm-shadow);
	}
}

/* Finché c'è l'etichetta, i crediti della mappa (in alto sul telefono) si fanno da parte. */
.ftsm-map-wrap:has(.ftsm-tools.is-hinting) .leaflet-control-attribution {
	visibility: hidden;
}

@keyframes ftsm-pulse {
	0% { box-shadow: 0 0 0 0 rgba(52, 93, 71, .55), var(--ftsm-shadow); }
	70% { box-shadow: 0 0 0 14px rgba(52, 93, 71, 0), var(--ftsm-shadow); }
	100% { box-shadow: 0 0 0 0 rgba(52, 93, 71, 0), var(--ftsm-shadow); }
}

/* I luoghi scelti: la barra "Crea il percorso" in fondo all'elenco. */
.ftsm-pinbar {
	display: flex;
	flex: 0 0 auto;
	gap: 12px;
	align-items: center;
	justify-content: space-between;
	padding: 12px 16px 12px 24px;
	border-top: 1px solid var(--ftsm-line);
	background: var(--ftsm-green-soft);
	animation: ftsm-rise .3s var(--ftsm-ease);
}

.ftsm-pinbar__text {
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 600;
}

.ftsm .ftsm-pinbar__go {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	min-height: 44px;
	padding: 0 18px;
	border: 0;
	border-radius: 999px;
	background: var(--ftsm-green);
	color: #fff;
	font-family: var(--ftsm-head);
	font-size: 14px;
	font-weight: 600;
}

.ftsm .ftsm-pinbar__go:hover {
	background: var(--ftsm-green-dark);
	color: #fff;
}

.ftsm-pinbar__go svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
}

/* Aeroporti sulla mappa del percorso. */
.ftsm-station-pin--air {
	border-radius: 50%;
	background: #5B4E8C;
}

.ftsm .ftsm-cycle-tiles {
	mix-blend-mode: multiply;
}

/* Sotto la mappa: raccontare un luogo, segnalare un problema. */
.ftsm-cta {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
	margin-top: 28px;
}

.ftsm .ftsm-cta__card {
	display: flex;
	gap: 16px;
	align-items: center;
	width: 100%;
	padding: 20px 22px;
	border: 1px solid var(--ftsm-line);
	border-radius: 22px;
	background: var(--ftsm-sand-soft);
	color: var(--ftsm-ink);
	text-align: left;
	text-decoration: none;
	transition: border-color .2s, transform .2s var(--ftsm-ease);
}

.ftsm .ftsm-cta__card:hover {
	border-color: var(--ftsm-ink);
	background: var(--ftsm-sand-soft);
	color: var(--ftsm-ink);
	transform: translateY(-1px);
}

.ftsm-cta__icon {
	display: grid;
	flex: 0 0 auto;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #fff;
}

.ftsm-cta__icon svg {
	width: 24px;
	height: 24px;
	fill: none;
	stroke: var(--ftsm-ink);
	stroke-width: 1.7;
	stroke-linejoin: round;
}

.ftsm-cta__card--story .ftsm-cta__icon svg {
	fill: var(--ftsm-luoghi-slow);
	stroke: none;
}

.ftsm-cta__text {
	display: grid;
	flex: 1 1 auto;
	gap: 3px;
}

.ftsm-cta__title {
	font-family: var(--ftsm-head);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.25;
}

.ftsm-cta__sub {
	color: var(--ftsm-muted);
	font-size: 14px;
	line-height: 1.45;
}

.ftsm-cta__go {
	font-size: 20px;
}

@media (min-width: 641px) {
	.ftsm-filters {
		display: none !important;
	}
}

@media (max-width: 640px) {
	/* Sul telefono: "Filtri" al posto delle pillole dei tipi di luogo. */
	.ftsm .ftsm-chip--filters {
		display: inline-flex;
	}

	.ftsm .ftsm-chip--all,
	.ftsm .ftsm-chip--layer,
	.ftsm .ftsm-chips .ftsm-region {
		display: none;
	}

	.ftsm .ftsm-filters__region {
		margin: 0 0 10px;
		box-shadow: none;
	}

	.ftsm .ftsm-filters__region .ftsm-region__select {
		width: 100%;
		height: 46px;
	}

	/* La barra fissa del sito in fondo allo schermo non copre più elenco e scheda. */
	.ftsm-side,
	.ftsm-side.is-collapsed {
		bottom: var(--ftsm-safe-bottom, 0px);
	}

	.ftsm-side {
		height: calc(84% - var(--ftsm-safe-bottom, 0px));
	}

	.ftsm-sheet {
		bottom: calc(10px + var(--ftsm-safe-bottom, 0px));
		max-height: calc(100% - 80px - var(--ftsm-safe-bottom, 0px));
	}

	.ftsm-pinbar {
		padding: 10px 12px 10px 20px;
	}

	.ftsm-tools__tip {
		font-size: 12px;
	}

	.ftsm-cta {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
		margin-top: 20px;
	}

	.ftsm .ftsm-cta__card {
		padding: 16px;
	}
}
