.mdw-poi {
	--mdw-poi-pin: #a97f4a;
	--mdw-poi-pin-active: #26301f;
	--mdw-poi-dot: 22px;
	--mdw-poi-stem: 14px;
	--mdw-poi-stem-w: 1px;
	--mdw-poi-active-s: 1.15;
	--mdw-poi-label-gap: 6px;
	--mdw-poi-photo-x: 0px;
	--mdw-poi-photo-y: 0px;
	--mdw-poi-photo-gap: 8px;
	--mdw-poi-dur: .5s;
	--mdw-poi-dim: .55;
	position: relative;
	width: 100%;
	box-sizing: border-box;
	overflow: hidden;
}
.mdw-poi *,
.mdw-poi *::before,
.mdw-poi *::after { box-sizing: border-box; }

/* ---------- Colonna testi ---------- */
.mdw-poi__content {
	position: relative;
	z-index: 3;
	width: 42%;
	pointer-events: none; /* non intercetta i click sugli hotspot sotto */
}
.mdw-poi__eyebrow {
	text-transform: uppercase;
	letter-spacing: .04em;
	margin: 0 0 40px;
}
.mdw-poi__list {
	list-style: none;
	margin: 0;
	padding: 0;
	transform: translate(0, var(--mdw-list-y, 0px));
}
.mdw-poi__item {
	position: relative;
	list-style: none;
	margin: 0;
	padding: 0;
	line-height: 1.05;
	transition: color var(--mdw-poi-dur) ease;
	pointer-events: none;
}
.mdw-poi__item + .mdw-poi__item { margin-top: 8px; }
.mdw-poi__item::before {
	content: "";
	position: absolute;
	top: 50%;
	left: calc(-1 * var(--mdw-bar-off, 16px));
	width: 1px;
	height: 75%;
	background: #26301f;
	transform: translateY(-50%) scaleY(0);
	transform-origin: 50% 50%;
	transition: transform var(--mdw-poi-dur) cubic-bezier(.22, 1, .36, 1);
}
.mdw-poi__item.is-active::before { transform: translateY(-50%) scaleY(1); }

/* Reset completo bottone (evita sfondo viola del tema) */
.mdw-poi .mdw-poi__btn {
	-webkit-appearance: none;
	appearance: none;
	display: block;
	position: relative;
	z-index: 4;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	outline: none;
	text-align: left;
	text-transform: none;
	letter-spacing: inherit;
	font: inherit;
	line-height: inherit;
	color: inherit;
	cursor: pointer;
	pointer-events: auto;
	transition: transform var(--mdw-poi-dur) cubic-bezier(.22, 1, .36, 1), font-style .2s;
}
.mdw-poi .mdw-poi__btn:hover,
.mdw-poi .mdw-poi__btn:focus,
.mdw-poi .mdw-poi__btn:active {
	background-color: transparent;
	color: inherit;
	box-shadow: none;
	outline: none;
	text-decoration: none;
}
.mdw-poi .mdw-poi__btn:focus-visible { outline: 1px dashed currentColor; outline-offset: 4px; }

/* ---------- Dettaglio ---------- */
.mdw-poi__details {
	display: grid;
	margin-top: 60px;
	padding-top: 40px;
	max-width: 580px;
	border-top: 1px solid #d9c9a8;
	transform: translate(0, var(--mdw-det-y, 0px));
}
.mdw-poi__detail {
	grid-area: 1 / 1;
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity var(--mdw-poi-dur) ease, transform var(--mdw-poi-dur) cubic-bezier(.22, 1, .36, 1), visibility 0s linear var(--mdw-poi-dur);
}
.mdw-poi__detail.is-active {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition-delay: 0s;
}
.mdw-poi__dtitle { text-transform: uppercase; letter-spacing: .04em; margin: 0 0 20px; }
.mdw-poi__times { display: flex; align-items: center; gap: 24px; margin-bottom: 24px; }
.mdw-poi__time { display: inline-flex; align-items: center; gap: 12px; }
.mdw-poi__time svg { width: 30px; height: auto; flex: 0 0 auto; }
.mdw-poi__sep { width: 1px; align-self: stretch; min-height: 28px; background: #d9c9a8; }
.mdw-poi__text { margin: 0; }

/* ---------- Mappa ---------- */
.mdw-poi__map {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 1;
	width: 62%;
	isolation: isolate;
	transform: translate(var(--mdw-map-x, 0px), var(--mdw-map-y, 0px)) scale(var(--mdw-map-s, 1));
	transform-origin: 100% 0;
}
.mdw-poi__map {
	--mdw-tx: 50deg;
	--mdw-rz: -8deg;
	--mdw-par: 18px;
	--mdw-pm: 1.8;
	--mdw-hm: 2.6;
	--mdw-ptilt: 3deg;
	--mdw-mx: 0;
	--mdw-my: 0;
	/* angoli effettivi = base + variazione da mouse (usati anche dai pin per raddrizzarsi) */
	--mdw-etx: calc(var(--mdw-tx) - var(--mdw-my) * var(--mdw-ptilt));
	--mdw-erz: calc(var(--mdw-rz) + var(--mdw-mx) * var(--mdw-ptilt));
	perspective: 1800px;
}
.mdw-poi__map-inner {
	position: relative;
	transform-style: preserve-3d;
	transform: translate3d(calc(var(--mdw-mx) * var(--mdw-par) * -1), calc(var(--mdw-my) * var(--mdw-par) * -1), 0) rotateX(var(--mdw-etx)) rotateZ(var(--mdw-erz));
	transform-origin: 50% 50%;
	will-change: transform;
}
.mdw-poi__corner { position: absolute; width: 0; height: 0; visibility: hidden; pointer-events: none; }
.mdw-poi__img {
	display: block;
	width: 100%;
	height: auto;
	max-width: none;
	user-select: none;
	-webkit-user-drag: none;
	--mdw-fade-x: 25%;
	--mdw-fade-y: 20%;
	-webkit-mask-image: linear-gradient(to right, transparent 0, #000 var(--mdw-fade-x)), linear-gradient(to bottom, transparent 0, #000 var(--mdw-fade-y));
	mask-image: linear-gradient(to right, transparent 0, #000 var(--mdw-fade-x)), linear-gradient(to bottom, transparent 0, #000 var(--mdw-fade-y));
	-webkit-mask-composite: source-in;
	mask-composite: intersect;
}

/* ---------- Marker progetto ---------- */
.mdw-poi__marker {
	position: absolute;
	z-index: 2;
	width: 36px;
	aspect-ratio: 1;
	padding: 5px;
	border-radius: 6px;
	background: #a97f4a;
	transform: translate(-50%, -100%) rotateZ(calc(-1 * var(--mdw-erz))) rotateX(calc(-1 * var(--mdw-etx)));
	transform-origin: 50% 100%;
	pointer-events: none;
}
.mdw-poi__marker img { display: block; width: 100%; height: 100%; object-fit: contain; }

/* ---------- Hotspot ---------- */
.mdw-poi__spot {
	position: absolute;
	z-index: 3;
	width: var(--mdw-poi-dot);
	height: calc(var(--mdw-poi-dot) + var(--mdw-poi-stem));
	transform: translate(-50%, -100%) rotateZ(calc(-1 * var(--mdw-erz))) rotateX(calc(-1 * var(--mdw-etx)));
	transform-origin: 50% 100%;
	cursor: pointer;
	transition: opacity var(--mdw-poi-dur) ease;
}
.mdw-poi__spot.is-active { z-index: 20; }
.mdw-poi.has-active .mdw-poi__spot:not(.is-active) { opacity: var(--mdw-poi-dim); }

/* Ingresso in sequenza */
.mdw-poi[data-entrance="yes"]:not(.is-in) .mdw-poi__pin,
.mdw-poi[data-entrance="yes"]:not(.is-in) .mdw-poi__label,
.mdw-poi[data-entrance="yes"]:not(.is-in) .mdw-poi__arrow { opacity: 0; }
.mdw-poi.is-in .mdw-poi__pin { animation: mdw-poi-drop .8s cubic-bezier(.22, 1, .36, 1) backwards; animation-delay: calc(var(--i, 0) * 90ms); }
.mdw-poi.is-in .mdw-poi__label,
.mdw-poi.is-in .mdw-poi__arrow { animation: mdw-poi-fade .8s ease backwards; animation-delay: calc(var(--i, 0) * 90ms + 250ms); }
@keyframes mdw-poi-drop { from { opacity: 0; transform: translateY(-22px) scale(.5); } }
@keyframes mdw-poi-fade { from { opacity: 0; } }

/* Parallax a profondità: pin/etichette e foto si muovono più della mappa */
.mdw-poi__pin,
.mdw-poi__label,
.mdw-poi__arrow {
	translate: calc(var(--mdw-mx) * var(--mdw-par) * -1 * (var(--mdw-pm) - 1)) calc(var(--mdw-my) * var(--mdw-par) * -1 * (var(--mdw-pm) - 1));
}
.mdw-poi__photo {
	translate: calc(var(--mdw-mx) * var(--mdw-par) * -1 * (var(--mdw-hm) - 1)) calc(var(--mdw-my) * var(--mdw-par) * -1 * (var(--mdw-hm) - 1));
}
.mdw-poi__marker {
	translate: calc(var(--mdw-mx) * var(--mdw-par) * -1 * (var(--mdw-pm) - 1)) calc(var(--mdw-my) * var(--mdw-par) * -1 * (var(--mdw-pm) - 1));
}

/* Editor: drag dei pin */
.mdw-poi.is-editing .mdw-poi__spot { cursor: grab; touch-action: none; }
.mdw-poi.is-editing .mdw-poi__spot.is-dragging { cursor: grabbing; }
.mdw-poi__spot.is-dragging::after {
	content: attr(data-coords);
	position: absolute;
	left: 50%;
	bottom: calc(100% + 6px);
	transform: translateX(-50%);
	padding: 3px 8px;
	border-radius: 4px;
	background: #26301f;
	color: #fff;
	font: 11px/1.4 monospace;
	white-space: nowrap;
	pointer-events: none;
	z-index: 50;
}
.mdw-poi__pin {
	display: block;
	position: relative;
	width: 100%;
	height: 100%;
	transform-origin: 50% 100%;
	transition: transform var(--mdw-poi-dur) cubic-bezier(.22, 1, .36, 1);
}
.mdw-poi__spot.is-active .mdw-poi__pin { transform: scale(var(--mdw-poi-active-s)); }
.mdw-poi__dot {
	display: block;
	width: var(--mdw-poi-dot);
	height: var(--mdw-poi-dot);
	border-radius: 50%;
	background: var(--mdw-poi-pin);
	transition: background-color var(--mdw-poi-dur) ease;
}
.mdw-poi__stem {
	position: absolute;
	left: 50%;
	top: var(--mdw-poi-dot);
	width: var(--mdw-poi-stem-w);
	height: var(--mdw-poi-stem);
	background: var(--mdw-poi-pin);
	transform: translateX(-50%);
	transition: background-color var(--mdw-poi-dur) ease;
}
.mdw-poi__spot.is-active .mdw-poi__dot,
.mdw-poi__spot.is-active .mdw-poi__stem { background: var(--mdw-poi-pin-active); }

/* Etichetta */
.mdw-poi__label {
	position: absolute;
	width: 110px;
	font-size: 14px;
	line-height: 1.25;
	text-align: center;
	color: #a97f4a;
	pointer-events: none;
	transition: color var(--mdw-poi-dur) ease;
}
.mdw-poi__spot[data-lp="bottom"] .mdw-poi__label {
	top: calc(100% + var(--mdw-poi-label-gap));
	left: 50%;
	transform: translateX(-50%);
}
.mdw-poi__spot[data-lp="top"] .mdw-poi__label {
	bottom: calc(100% + var(--mdw-poi-label-gap));
	left: 50%;
	transform: translateX(-50%);
}
.mdw-poi__spot[data-lp="left"] .mdw-poi__label {
	top: calc(var(--mdw-poi-dot) / 2);
	right: calc(100% + var(--mdw-poi-label-gap));
	transform: translateY(-50%);
	text-align: right;
}
.mdw-poi__spot[data-lp="right"] .mdw-poi__label {
	top: calc(var(--mdw-poi-dot) / 2);
	left: calc(100% + var(--mdw-poi-label-gap));
	transform: translateY(-50%);
	text-align: left;
}

/* Freccia (punto fuori mappa) */
.mdw-poi__arrow {
	position: absolute;
	color: var(--mdw-poi-pin);
	font-size: 22px;
	line-height: 1;
	pointer-events: none;
	transition: color var(--mdw-poi-dur) ease;
}
.mdw-poi__spot.is-active .mdw-poi__arrow { color: var(--mdw-poi-pin-active); }
.mdw-poi__spot[data-arrow="left"] .mdw-poi__arrow { top: calc(var(--mdw-poi-dot) / 2); right: calc(100% + 6px); transform: translateY(-50%); }
.mdw-poi__spot[data-arrow="right"] .mdw-poi__arrow { top: calc(var(--mdw-poi-dot) / 2); left: calc(100% + 6px); transform: translateY(-50%); }
.mdw-poi__spot[data-arrow="up"] .mdw-poi__arrow { bottom: calc(100% + 2px); left: 50%; transform: translateX(-50%); }

/* Foto sul pin */
.mdw-poi__photo {
	position: absolute;
	bottom: calc(100% + var(--mdw-poi-photo-gap));
	left: 50%;
	width: 264px;
	height: 184px;
	overflow: hidden;
	border-radius: 18px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translate(
		calc(-50% + var(--mdw-poi-photo-x) + var(--px, 0px) + var(--mdw-clamp, 0px)),
		calc(var(--mdw-poi-photo-y) + var(--py, 0px) + 10px)
	);
	transition: opacity calc(var(--mdw-poi-dur) * .6) ease, transform var(--mdw-poi-dur) cubic-bezier(.22, 1, .36, 1), visibility 0s linear var(--mdw-poi-dur);
}
.mdw-poi__spot.is-active .mdw-poi__photo {
	opacity: 1;
	visibility: visible;
	transform: translate(
		calc(-50% + var(--mdw-poi-photo-x) + var(--px, 0px) + var(--mdw-clamp, 0px)),
		calc(var(--mdw-poi-photo-y) + var(--py, 0px))
	);
	transition-delay: 0s;
}
.mdw-poi__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	clip-path: inset(100% 0 0 0);
	transform: scale(1.18);
	transition: transform calc(var(--mdw-poi-dur) * 1.6) cubic-bezier(.22, 1, .36, 1), clip-path var(--mdw-poi-dur) cubic-bezier(.22, 1, .36, 1);
}
.mdw-poi__spot.is-active .mdw-poi__photo img { transform: scale(1); clip-path: inset(0 0 0 0); }

/* ---------- Tablet / mobile ---------- */
@media (max-width: 767px) {
	.mdw-poi__map { transform-origin: 50% 0; }
}
@media (prefers-reduced-motion: reduce) {
	.mdw-poi * { transition-duration: .01s !important; }
}
