/* =====================================================================
   VISITORS AREA — page-templates/page-visitorsarea.php (2026-10-07)
   The page's own styles on top of the .mwfe system (custom-css/mwf.css,
   frozen): a white ground; four tiles rising over the hero's edge; the
   chip bar that follows the visitor; ghost numerals on the panel heads;
   «Dentro il Kurhaus», the floor plan explorer of inc/mwf-visitors-plan.php
   (the guide in its tab, the big plan lower down); the locations as one
   stage with a rail of thumbnails.
   Scoped to .mwfe-visitors; rem only — the root font-size scales above
   1920 px, a px cap would not follow it.
   ===================================================================== */

.mwfe.mwfe-visitors {
	--mwfv-ink: #2a2224;
	--mwfv-text: #4a4144;
	--mwfv-wine: #671e26;
	--mwfv-wine-soft: #7d2a32;
	--mwfv-brass: #cdad59;
	--mwfv-brass-dark: #8c6d1f;
	--mwfv-line: rgba(42, 34, 36, .14);
	--mwfv-paper: #fbfaf7;
	--mwfv-nav-h: 2.4rem;
	/* the white ground the owner asked to keep (2026-10-07) — no wave art, no fixed attachment */
	background: #ffffff;
}
.mwfe.mwfe-visitors::after { display: none; }

/* ------------------------------------------------------------ hero */
.mwfe-visitors .mwfv-hero { min-height: clamp(24rem, 62svh, 40rem); }
/* the tiles rise over the hero's lower edge: the text keeps clear of them */
.mwfe-visitors .mwfv-hero .mwfe-hero-inner { padding-bottom: clamp(5.5rem, 11vh, 8rem); }
.mwfe-visitors .mwfv-hero .mwfe-hero-lead { margin-top: .2rem; }
.mwfe-visitors .mwfv-hero .mwfe-hero-meta { margin-bottom: 1.1rem; }

/* ------------------------------------------------------- the tiles */
.mwfe-visitors .mwfv-tabs { padding-top: 0; }
.mwfe-visitors .mwfv-tiles {
	position: relative;
	z-index: 3;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	max-width: 80rem;
	margin-top: clamp(-4.5rem, -7vh, -3rem);
	padding-bottom: clamp(1.2rem, 3vh, 2rem);
	gap: clamp(.8rem, 1.8vw, 1.3rem);
}
.mwfe-visitors .mwfv-tiles button {
	gap: .6rem;
	padding: 1.25rem .9rem 1rem;
	border-radius: 1.25rem;
	background: #ffffff;
	border: 1px solid var(--mwfv-line);
	color: var(--mwfv-text);
	font-size: .66rem;
	font-weight: 700;
	letter-spacing: .16em;
	box-shadow: 0 1.25rem 2.5rem -1.5rem rgba(42, 34, 36, .45);
}
.mwfe-visitors .mwfv-tiles button:hover {
	transform: translateY(-.4rem);
	border-color: var(--mwfv-wine);
	box-shadow: 0 1.8rem 2.8rem -1.4rem rgba(103, 30, 38, .35);
}
.mwfe-visitors .mwfv-tiles button.is-active {
	background: #ffffff;
	border-color: var(--mwfv-wine);
	color: var(--mwfv-wine);
	box-shadow: 0 0 0 .2rem rgba(103, 30, 38, .08), 0 1.4rem 2.6rem -1.4rem rgba(103, 30, 38, .4);
}
.mwfe-visitors .mwfv-tile-art {
	display: grid;
	place-items: center;
	width: clamp(5.2rem, 9.5vw, 8.4rem);
	aspect-ratio: 2 / 1.1;
}
.mwfe-visitors .mwfv-tiles button img {
	width: 100%;
	height: auto;
	filter: drop-shadow(0 .5rem .9rem rgba(42, 34, 36, .22));
}
.mwfe-visitors .mwfv-tile-label { position: relative; padding-bottom: .55rem; line-height: 1.3; }
.mwfe-visitors .mwfv-tile-label::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 1.6rem;
	height: 2px;
	background: var(--mwfv-brass);
	transform: translateX(-50%) scaleX(0);
	transition: transform .35s cubic-bezier(.2, .65, .3, 1);
}
.mwfe-visitors .mwfv-tiles button.is-active .mwfv-tile-label::after { transform: translateX(-50%) scaleX(1); }
/* while GSAP brings the tiles in, no CSS transition may fight it (the 2026-09-25 lesson) */
.mwfe-visitors .mwfv-tiles.is-entering button,
.mwfe-visitors .mwfv-tiles.is-entering button img { transition: none !important; }

/* ----------------------------------------------------- the chip bar */
.mwfe-visitors .mwfv-nav-sentinel { height: 1px; margin-top: -1px; }
.mwfe-visitors .mwfv-nav {
	position: sticky;
	top: calc(var(--mwfe-header-h) + .6rem);
	z-index: 24; /* under header.php's bar (30) */
	display: flex;
	justify-content: center;
	margin: 0 0 clamp(1.5rem, 4vh, 2.6rem);
	pointer-events: none;
}
.mwfe-visitors .mwfv-nav-in {
	pointer-events: auto;
	display: flex;
	gap: .15rem;
	max-width: 100%;
	overflow-x: auto;
	scrollbar-width: none;
	background: rgba(255, 255, 255, .88);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	border: 1px solid var(--mwfv-line);
	border-radius: 999px;
	padding: .3rem;
	box-shadow: 0 1rem 2.4rem -1.4rem rgba(42, 34, 36, .35);
	transition: box-shadow .3s, border-color .3s;
}
.mwfe-visitors .mwfv-nav-in::-webkit-scrollbar { display: none; }
.mwfe-visitors .mwfv-nav.is-stuck .mwfv-nav-in {
	border-color: rgba(103, 30, 38, .25);
	box-shadow: 0 1.2rem 2.6rem -1.2rem rgba(42, 34, 36, .5);
}
.mwfe-visitors .mwfv-nav button {
	appearance: none;
	border: 0;
	background: transparent;
	border-radius: 999px;
	padding: .62em 1.05em;
	font-family: var(--mwfe-sans);
	font-size: .66rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: 1.2;
	color: var(--mwfv-text);
	white-space: nowrap;
	cursor: pointer;
	transition: background .3s, color .3s;
}
.mwfe-visitors .mwfv-nav button:hover { color: var(--mwfv-wine); background: rgba(103, 30, 38, .06); }
.mwfe-visitors .mwfv-nav button.is-active { background: var(--mwfv-wine); color: #fcfdde; }

/* ------------------------------------------------------- the panels */
.mwfe-visitors .mwfe-panel {
	/* the shared tabs scroll a chosen panel to here: under the header and the chip bar */
	scroll-margin-top: calc(var(--mwfe-header-h) + 3.8rem);
	padding: clamp(.5rem, 2vh, 1.5rem) 0 clamp(3rem, 8vh, 6rem);
	perspective: 62.5rem;
}
.mwfe-visitors .mwfe-panel-head {
	position: relative;
	padding-top: clamp(3rem, 6.5vw, 4.6rem);
	margin-bottom: clamp(1.8rem, 4vh, 2.8rem);
}
.mwfe-visitors .mwfe-panel-head > * { position: relative; z-index: 1; }
/* the section's number, drawn in outline behind the kicker */
.mwfe-visitors .mwfv-num {
	position: absolute;
	z-index: 0;
	left: 0;
	right: 0;
	top: -.12em;
	text-align: center;
	font-family: var(--mwfe-serif);
	font-weight: 500;
	font-size: clamp(5.5rem, 13vw, 9.5rem);
	line-height: 1;
	letter-spacing: -.02em;
	color: rgba(103, 30, 38, .035);
	-webkit-text-stroke: 1px rgba(103, 30, 38, .3);
	pointer-events: none;
	user-select: none;
}
.mwfe-visitors .mwfe-panel-head .mwfe-kicker { justify-content: center; }
.mwfe-visitors .mwfe-panel-head .mwfe-kicker::after {
	content: "";
	width: 3.2em;
	height: 1px;
	background: var(--mwfe-brass);
	flex: 0 0 auto;
}
.mwfe-visitors .mwfe-panel-head .mwfe-h2 em { color: var(--mwfv-brass-dark); }
.mwfe-visitors .mwfe-panel-head p { font-size: 1.02rem; line-height: 1.6; }
/* while GSAP brings a panel's blocks in, their own hover transitions stay out of it */
.mwfe-visitors .mwfe-panel.is-entering .hotel-card,
.mwfe-visitors .mwfe-panel.is-entering .mwfv-loc-tab,
.mwfe-visitors .mwfe-panel.is-entering .mwfe-reach-card { transition: none !important; }
.mwfe-visitors .mwfv-center { text-align: center; margin: clamp(1rem, 3vh, 2rem) 0 0; }

/* reach us */
.mwfe-visitors .mwfe-reach-card {
	background: #ffffff;
	border: 1px solid var(--mwfv-line);
	border-radius: 1.25rem;
	padding: clamp(1.4rem, 2.6vw, 1.9rem);
	box-shadow: 0 1rem 2.2rem -1.6rem rgba(42, 34, 36, .4);
	transition: border-color .3s, box-shadow .3s;
}
.mwfe-visitors .mwfe-reach-card:hover { border-color: rgba(103, 30, 38, .35); box-shadow: 0 1.4rem 2.6rem -1.6rem rgba(103, 30, 38, .35); }
.mwfe-visitors .mwfe-reach-card h3 { gap: .7rem; font-size: 1.5rem; margin-bottom: .8rem; }
.mwfe-visitors .mwfe-reach-card h3 .mwfe-reach-ico {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background: rgba(103, 30, 38, .07);
	color: var(--mwfv-wine);
	font-size: 0;
	flex: 0 0 auto;
}
.mwfe-visitors .mwfe-reach-card h3 .mwfe-reach-ico svg { width: 1.4rem; height: 1.4rem; }

.mwfe-visitors .mwfe-map {
	border-radius: 1.25rem;
	border: 1px solid var(--mwfv-line);
	box-shadow: 0 1.6rem 3rem -1.8rem rgba(42, 34, 36, .5);
	background: #ece8e1;
	scroll-margin-top: calc(var(--mwfe-header-h) + 3.6rem);
}
/* OSM's tiles carry full colour: toned to the page (was an inline rule on the mwf-common handle) */
main.mwfe-visitors .mwfe-map .leaflet-tile-pane { filter: grayscale(.4) sepia(.06) saturate(.9) brightness(1.03) contrast(.95); }
.mwfe-visitors .mwfe-pin--hotel .mwfe-pin-dot {
	width: 13px;
	height: 13px;
	background: var(--mwfe-bg-deep);
	border-color: var(--mwfe-brass);
	box-shadow: 0 0 0 4px rgba(205, 173, 89, .14), 0 4px 10px rgba(0, 0, 0, .5);
}
.mwfe-visitors .mwfe-map-legend button.is-off { opacity: .45; }
.mwfe-visitors .mwfe-map-legend { margin-top: 1.1rem; }

/* hotels (the [wh_hotels] card contract of mwf.css, on the white ground) */
.mwfe-visitors .hotels-container { padding-top: .5rem; padding-bottom: 1rem; }
.mwfe-visitors .hotel-card {
	border-color: var(--mwfv-line);
	border-radius: 1.1rem;
	box-shadow: 0 .8rem 2rem -1.6rem rgba(42, 34, 36, .4);
}
.mwfe-visitors .hotel-card:hover { border-color: var(--mwfv-wine); box-shadow: 0 1.4rem 2.4rem -1.4rem rgba(103, 30, 38, .4); }

/* ============================================ the locations stage */
/* a rail of four thumbnails; one location open at a time, the picture
   beside the text (sticky while the long texts scroll), so an opened
   description never leaves an empty neighbour */
.mwfe-visitors .mwfv-locs-rail {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(.6rem, 1.5vw, 1rem);
	margin-bottom: clamp(1.4rem, 3.5vh, 2.4rem);
}
.mwfe-visitors .mwfv-loc-tab {
	appearance: none;
	display: grid;
	grid-template-columns: 4rem minmax(0, 1fr);
	gap: .7rem;
	align-items: center;
	padding: .45rem .7rem .45rem .45rem;
	border: 1px solid var(--mwfv-line);
	background: #ffffff;
	border-radius: 1rem;
	text-align: left;
	color: var(--mwfv-text);
	font-family: var(--mwfe-sans);
	cursor: pointer;
	transition: border-color .3s, box-shadow .3s, transform .35s cubic-bezier(.2, .65, .3, 1);
}
.mwfe-visitors .mwfv-loc-tab:hover { border-color: rgba(103, 30, 38, .45); transform: translateY(-.15rem); }
.mwfe-visitors .mwfv-loc-tab.is-active {
	border-color: var(--mwfv-wine);
	box-shadow: 0 0 0 .2rem rgba(103, 30, 38, .08), 0 1rem 2rem -1.4rem rgba(103, 30, 38, .4);
}
.mwfe-visitors .mwfv-loc-thumb { display: block; aspect-ratio: 1; border-radius: .7rem; overflow: hidden; background: var(--mwfv-paper); }
.mwfe-visitors .mwfv-loc-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s cubic-bezier(.2, .65, .3, 1); }
.mwfe-visitors .mwfv-loc-tab:hover .mwfv-loc-thumb img { transform: scale(1.07); }
.mwfe-visitors .mwfv-loc-tab-t { min-width: 0; }
.mwfe-visitors .mwfv-loc-tab-n { display: block; font-size: .58rem; font-weight: 700; letter-spacing: .2em; color: var(--mwfv-brass-dark); margin-bottom: .15rem; }
.mwfe-visitors .mwfv-loc-tab b { display: block; font-family: var(--mwfe-serif); font-weight: 600; font-size: 1.1rem; line-height: 1.15; color: var(--mwfv-wine); }
.mwfe-visitors .mwfv-loc-tab.is-active b::after {
	content: "";
	display: block;
	width: 1.6rem;
	height: 2px;
	margin-top: .35rem;
	background: var(--mwfv-brass);
}

.mwfe-visitors .mwfv-locs-stage { position: relative; }
.mwfe-visitors .mwfv-locx {
	display: none;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(1.4rem, 3vw, 2.8rem);
	/* a short text sits level with the picture's middle; a long one scrolls past the picture, which stays */
	align-items: center;
}
.mwfe-visitors .mwfv-locx.is-active { display: grid; }
.mwfe-visitors .mwfv-locx-media {
	position: sticky;
	top: calc(var(--mwfe-header-h) + 3.3rem);
	align-self: start;
	margin: 0;
	aspect-ratio: 1; /* the four photographs are square */
	border-radius: 1.25rem;
	overflow: hidden;
	border: 1px solid var(--mwfv-line);
	box-shadow: 0 1.6rem 3rem -1.8rem rgba(42, 34, 36, .5);
	background: var(--mwfv-paper);
}
.mwfe-visitors .mwfv-locx-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mwfe-visitors .mwfv-locx-media::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 38%;
	background: linear-gradient(to top, rgba(42, 34, 36, .55), transparent);
	pointer-events: none;
}
.mwfe-visitors .mwfv-locx-num {
	position: absolute;
	right: 1.1rem;
	bottom: .4rem;
	z-index: 1;
	font-family: var(--mwfe-serif);
	font-weight: 500;
	font-size: clamp(3rem, 6vw, 5rem);
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, .8);
	pointer-events: none;
}
.mwfe-visitors .mwfv-locx-body { color: var(--mwfv-text); font-size: .96rem; line-height: 1.68; }
.mwfe-visitors .mwfv-locx-body .mwfe-kicker { margin-bottom: .8rem; }
.mwfe-visitors .mwfv-locx-name {
	font-family: var(--mwfe-serif);
	font-weight: 500;
	font-size: clamp(2rem, 3.6vw, 2.9rem);
	line-height: 1.05;
	color: var(--mwfv-wine);
	margin: 0 0 .45rem;
}
.mwfe-visitors .mwfv-locx-addr {
	font-style: normal;
	font-family: var(--mwfe-sans);
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--mwfv-brass-dark);
	margin: 0 0 1.2rem;
}
.mwfe-visitors .mwfv-locx-intro p { margin: 0 0 1em; }
.mwfe-visitors .mwfv-locx-intro strong,
.mwfe-visitors .mwfv-locx-details strong { color: var(--mwfv-wine); font-weight: 600; }
.mwfe-visitors .mwfv-locx-intro em,
.mwfe-visitors .mwfv-locx-details em { color: var(--mwfv-ink); }
.mwfe-visitors .mwfv-locx-details h4 {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .3rem .6rem;
	font-family: var(--mwfe-serif);
	font-weight: 600;
	font-size: 1.18rem;
	color: var(--mwfv-wine);
	margin: 1.2rem 0 .3rem;
}
.mwfe-visitors .mwfv-locx-details p { margin: 0 0 .9em; }
.mwfe-visitors .mwfv-locx-details > div > *:first-child { margin-top: .2rem; padding-top: 1rem; border-top: 1px dashed rgba(140, 109, 31, .35); }
.mwfe-visitors .mwfv-locx-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-top: 1.2rem; }
.mwfe-visitors .mwfv-onmap,
.mwfe-visitors .mwfv-onplan {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	appearance: none;
	border: 1px solid rgba(140, 109, 31, .45);
	background: #ffffff;
	color: var(--mwfv-brass-dark);
	border-radius: 999px;
	padding: .3em .75em .3em .55em;
	font-family: var(--mwfe-sans);
	font-size: .58rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: 1.2;
	cursor: pointer;
	transition: background .3s, color .3s, border-color .3s;
}
.mwfe-visitors .mwfv-onmap { padding: .62em 1.1em .62em .8em; font-size: .68rem; }
.mwfe-visitors .mwfv-onmap svg,
.mwfe-visitors .mwfv-onplan svg { width: 1.1rem; height: 1.1rem; }
.mwfe-visitors .mwfv-onmap:hover,
.mwfe-visitors .mwfv-onplan:hover { background: var(--mwfv-wine); color: #fcfdde; border-color: var(--mwfv-wine); }

/* ============================================= the floor plan explorer */
/* the guide in its tab: plan beside the list (the renderer's 'map' mode —
   the stage alone with a caption under it — is kept, unused since the big
   plan lower on the page went on 2026-10-08) */

.mwfe-visitors .mwfv-explorer {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(18rem, 23rem);
	gap: clamp(1.2rem, 3vw, 2.4rem);
	align-items: start;
}
.mwfe-visitors .mwfv-board {
	position: sticky;
	top: calc(var(--mwfe-header-h) + 3.3rem);
	z-index: 2;
}
.mwfe-visitors .mwfv-explorer--map { display: block; }
.mwfe-visitors .mwfv-explorer--map .mwfv-board { position: static; }
.mwfe-visitors .mwfv-explorer--map .mwfv-floors { justify-content: center; }

/* floors */
.mwfe-visitors .mwfv-floors { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .9rem; }
.mwfe-visitors .mwfv-floor-btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: .55em;
	border: 1px solid var(--mwfv-line);
	background: #ffffff;
	color: var(--mwfv-text);
	border-radius: 999px;
	padding: .45em 1.1em .45em .45em;
	font-family: var(--mwfe-sans);
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: 1.2;
	cursor: pointer;
	transition: background .3s, color .3s, border-color .3s;
}
.mwfe-visitors .mwfv-floor-n {
	display: grid;
	place-items: center;
	width: 1.7rem;
	height: 1.7rem;
	border-radius: 50%;
	background: rgba(103, 30, 38, .08);
	color: var(--mwfv-wine);
	font-family: var(--mwfe-serif);
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0;
	transition: background .3s, color .3s;
}
.mwfe-visitors .mwfv-floor-btn:hover { border-color: var(--mwfv-wine); color: var(--mwfv-wine); }
.mwfe-visitors .mwfv-floor-btn.is-active { background: var(--mwfv-wine); border-color: var(--mwfv-wine); color: #fcfdde; }
.mwfe-visitors .mwfv-floor-btn.is-active .mwfv-floor-n { background: var(--mwfv-brass); color: var(--mwfv-ink); }

/* the stage: a sheet of plan paper */
.mwfe-visitors .mwfv-stage {
	position: relative;
	aspect-ratio: 2.6 / 1;
	border: 1px solid var(--mwfv-line);
	border-radius: 1.25rem;
	overflow: hidden;
	background-color: var(--mwfv-paper);
	background-image:
		linear-gradient(rgba(103, 30, 38, .055) 1px, transparent 1px),
		linear-gradient(90deg, rgba(103, 30, 38, .055) 1px, transparent 1px);
	background-size: 2rem 2rem;
	background-position: center;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7), 0 1.6rem 3rem -1.8rem rgba(42, 34, 36, .45);
}
.mwfe-visitors .mwfv-explorer--map .mwfv-stage {
	aspect-ratio: 2.45 / 1;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7), 0 2.2rem 4rem -2rem rgba(42, 34, 36, .5);
}
.mwfe-visitors .mwfv-svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	overflow: hidden;
}
.mwfe-visitors g.mwfv-floor { opacity: 0; visibility: hidden; transition: opacity .45s ease, visibility 0s linear .45s; }
.mwfe-visitors .mwfv-explorer[data-level="0"] g.mwfv-floor[data-level="0"],
.mwfe-visitors .mwfv-explorer[data-level="1"] g.mwfv-floor[data-level="1"],
.mwfe-visitors .mwfv-explorer[data-level="2"] g.mwfv-floor[data-level="2"] { opacity: 1; visibility: visible; transition-delay: 0s; }
.mwfe-visitors .mwfv-walls { opacity: .55; pointer-events: none; }
.mwfe-visitors .mwfv-room {
	fill: rgba(103, 30, 38, .07);
	fill-rule: evenodd;
	stroke: rgba(103, 30, 38, .55);
	stroke-width: 1px;
	vector-effect: non-scaling-stroke;
	cursor: pointer;
	outline: none;
	transition: fill .25s, stroke .25s;
}
.mwfe-visitors .mwfv-room--quiet { pointer-events: none; fill: rgba(103, 30, 38, .04); stroke: rgba(103, 30, 38, .3); stroke-dasharray: 3 3; }
.mwfe-visitors .mwfv-room.is-dim { fill: rgba(103, 30, 38, .025); stroke: rgba(103, 30, 38, .22); }
.mwfe-visitors .mwfv-room:focus-visible { stroke: var(--mwfv-brass-dark); stroke-width: 2px; }
@media (hover: hover) {
	.mwfe-visitors .mwfv-room:hover { fill: rgba(205, 173, 89, .38); stroke: var(--mwfv-brass-dark); }
}
.mwfe-visitors .mwfv-room.is-on,
.mwfe-visitors .mwfv-room.is-on:hover { fill: rgba(103, 30, 38, .86); stroke: var(--mwfv-brass); }

/* the numbered pins: sized in screen pixels (js counter-scales their group) */
.mwfe-visitors .mwfv-pin { cursor: pointer; outline: none; }
.mwfe-visitors .mwfv-pin.is-hidden { display: none; }
.mwfe-visitors .mwfv-pin-halo { fill: rgba(103, 30, 38, 0); transition: fill .25s; }
.mwfe-visitors .mwfv-pin-dot { fill: #ffffff; stroke: var(--mwfv-wine); stroke-width: 1.5; transition: fill .25s, stroke .25s; }
.mwfe-visitors .mwfv-pin-n {
	font-family: var(--mwfe-sans);
	font-size: 11px;
	font-weight: 700;
	fill: var(--mwfv-wine);
	text-anchor: middle;
	dominant-baseline: central;
	pointer-events: none;
	user-select: none;
	transition: fill .25s;
}
.mwfe-visitors .mwfv-pin:hover .mwfv-pin-dot,
.mwfe-visitors .mwfv-pin:focus-visible .mwfv-pin-dot { fill: var(--mwfv-brass); }
.mwfe-visitors .mwfv-pin:hover .mwfv-pin-halo { fill: rgba(205, 173, 89, .25); }
.mwfe-visitors .mwfv-pin.is-on .mwfv-pin-dot { fill: var(--mwfv-wine); stroke: var(--mwfv-brass); stroke-width: 2; }
.mwfe-visitors .mwfv-pin.is-on .mwfv-pin-n { fill: #ffffff; }
.mwfe-visitors .mwfv-pin.is-on .mwfv-pin-halo { fill: rgba(103, 30, 38, .12); }
.mwfe-visitors .mwfv-pulse { pointer-events: none; }
.mwfe-visitors .mwfv-pulse-ring { fill: none; stroke: var(--mwfv-brass); stroke-width: 1.5; opacity: 0; }

/* the sheet's title block, the way back, the hint */
.mwfe-visitors .mwfv-sheet {
	position: absolute;
	left: 1rem;
	right: 1rem;
	bottom: .55rem;
	display: flex;
	align-items: baseline;
	gap: .7rem;
	pointer-events: none;
	user-select: none;
}
.mwfe-visitors .mwfv-sheet-num {
	font-family: var(--mwfe-serif);
	font-weight: 500;
	font-size: clamp(2.4rem, 4.5vw, 3.6rem);
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1px rgba(103, 30, 38, .42);
}
.mwfe-visitors .mwfv-sheet-name {
	font-family: var(--mwfe-sans);
	font-size: .62rem;
	font-weight: 700;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--mwfv-brass-dark);
}
.mwfe-visitors .mwfv-sheet-brand {
	margin-left: auto;
	font-family: var(--mwfe-sans);
	font-size: .58rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: rgba(42, 34, 36, .45);
}
.mwfe-visitors .mwfv-whole {
	position: absolute;
	top: .7rem;
	right: .7rem;
	z-index: 2;
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: .45em;
	border: 1px solid rgba(103, 30, 38, .3);
	background: rgba(255, 255, 255, .9);
	color: var(--mwfv-wine);
	border-radius: 999px;
	padding: .5em .95em;
	font-family: var(--mwfe-sans);
	font-size: .62rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: 1.2;
	cursor: pointer;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	transition: background .3s, color .3s;
}
.mwfe-visitors .mwfv-whole[hidden] { display: none; }
.mwfe-visitors .mwfv-whole:hover { background: var(--mwfv-wine); color: #fcfdde; }
.mwfe-visitors .mwfv-hint {
	position: absolute;
	top: .8rem;
	left: 1rem;
	margin: 0;
	font-family: var(--mwfe-sans);
	font-size: .6rem;
	font-weight: 700;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--mwfv-brass-dark);
	pointer-events: none;
	transition: opacity .4s;
}
.mwfe-visitors .mwfv-explorer.has-room .mwfv-hint { opacity: 0; }

/* the rooms, numbered (the guide) */
.mwfe-visitors .mwfv-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.mwfe-visitors .mwfv-list[hidden] { display: none; }
.mwfe-visitors .mwfv-item {
	background: #ffffff;
	border: 1px solid var(--mwfv-line);
	border-radius: 1rem;
	overflow: hidden;
	transition: border-color .3s, box-shadow .3s;
}
.mwfe-visitors .mwfv-item:hover { border-color: rgba(103, 30, 38, .4); }
.mwfe-visitors .mwfv-item.is-open { border-color: var(--mwfv-wine); box-shadow: 0 1.1rem 2.5rem -1.7rem rgba(42, 34, 36, .5); }
.mwfe-visitors .mwfv-item-head {
	appearance: none;
	display: grid;
	grid-template-columns: auto auto minmax(0, 1fr) auto;
	align-items: center;
	gap: .8rem;
	width: 100%;
	padding: .8rem .9rem .8rem .8rem;
	background: none;
	border: 0;
	text-align: left;
	cursor: pointer;
	color: var(--mwfv-ink);
	font-family: var(--mwfe-sans);
}
.mwfe-visitors .mwfv-item-n {
	display: grid;
	place-items: center;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	border: 1px solid var(--mwfv-wine);
	font-size: .72rem;
	font-weight: 700;
	color: var(--mwfv-wine);
	transition: background .3s, color .3s;
}
.mwfe-visitors .mwfv-item.is-open .mwfv-item-n { background: var(--mwfv-wine); color: #ffffff; }
.mwfe-visitors .mwfv-item-ico { display: grid; place-items: center; width: 1.6rem; color: var(--mwfv-brass-dark); }
.mwfe-visitors .mwfv-item-ico svg { width: 1.5rem; height: 1.5rem; }
.mwfe-visitors .mwfv-item-head:not(:has(.mwfv-item-ico)) { grid-template-columns: auto minmax(0, 1fr) auto; }
.mwfe-visitors .mwfv-item-t { min-width: 0; }
.mwfe-visitors .mwfv-item-name {
	display: block;
	font-family: var(--mwfe-serif);
	font-size: 1.18rem;
	font-weight: 600;
	line-height: 1.15;
	color: var(--mwfv-wine);
}
.mwfe-visitors .mwfv-item-chips { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .3rem; }
.mwfe-visitors .mwfv-chip {
	font-family: var(--mwfe-sans);
	font-size: .58rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: 1.2;
	color: var(--mwfv-brass-dark);
	border: 1px solid rgba(140, 109, 31, .4);
	border-radius: 999px;
	padding: .25em .6em;
	white-space: nowrap;
}
.mwfe-visitors .mwfv-chip--warn { color: var(--mwfv-wine); border-color: rgba(103, 30, 38, .4); }
.mwfe-visitors .mwfv-item-plus {
	font-family: var(--mwfe-serif);
	font-weight: 300;
	font-size: 1.5rem;
	line-height: 1;
	color: var(--mwfv-brass-dark);
	transition: transform .4s cubic-bezier(.2, .65, .3, 1);
}
.mwfe-visitors .mwfv-item.is-open .mwfv-item-plus { transform: rotate(45deg); }
.mwfe-visitors .mwfv-item-body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s cubic-bezier(.2, .65, .3, 1); }
.mwfe-visitors .mwfv-item.is-open .mwfv-item-body { grid-template-rows: 1fr; }
.mwfe-visitors .mwfv-item-inner { overflow: hidden; }
.mwfe-visitors .mwfv-item-text {
	padding: 0 1rem 1rem 1rem;
	color: var(--mwfv-text);
	font-size: .93rem;
	line-height: 1.65;
}
.mwfe-visitors .mwfv-item-text p { margin: 0 0 .7em; }
.mwfe-visitors .mwfv-item-text p:last-child { margin-bottom: 0; }
.mwfe-visitors .mwfv-item-text strong { color: var(--mwfv-wine); font-weight: 600; }
.mwfe-visitors .mwfv-hours-h {
	font-family: var(--mwfe-sans);
	font-size: .62rem;
	font-weight: 700;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--mwfv-brass-dark);
	margin: 1rem 0 .3rem;
}
.mwfe-visitors .mwfv-hours { margin: 0 0 1rem; padding: 0; }
.mwfe-visitors .mwfv-hours > div {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: .45rem 0;
	border-top: 1px dashed rgba(140, 109, 31, .35);
	font-size: .88rem;
}
.mwfe-visitors .mwfv-hours > div:last-child { border-bottom: 1px dashed rgba(140, 109, 31, .35); }
.mwfe-visitors .mwfv-hours dt { margin: 0; color: var(--mwfv-ink); }
.mwfe-visitors .mwfv-hours dd { margin: 0; font-weight: 600; color: var(--mwfv-wine); white-space: nowrap; }
.mwfe-visitors .mwfv-btn { font-size: .7rem; padding: .8em 1.5em; margin-top: .2rem; }

/* the caption under the big plan */
.mwfe-visitors .mwfv-caption { max-width: 48rem; margin: 1.2rem auto 0; text-align: center; }
.mwfe-visitors .mwfv-caption-hint {
	margin: 0;
	font-family: var(--mwfe-sans);
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--mwfv-brass-dark);
}
.mwfe-visitors .mwfv-caption-hint[hidden] { display: none; }
.mwfe-visitors .mwfv-caption-card {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 1rem;
	text-align: left;
	background: #ffffff;
	border: 1px solid var(--mwfv-wine);
	border-radius: 1rem;
	padding: 1rem 1.2rem 1.1rem 1rem;
	box-shadow: 0 1.1rem 2.5rem -1.7rem rgba(42, 34, 36, .5);
}
.mwfe-visitors .mwfv-caption-card[hidden] { display: none; }
.mwfe-visitors .mwfv-caption-n {
	display: grid;
	place-items: center;
	width: 1.9rem;
	height: 1.9rem;
	border-radius: 50%;
	background: var(--mwfv-wine);
	color: #ffffff;
	font-family: var(--mwfe-sans);
	font-size: .75rem;
	font-weight: 700;
}
.mwfe-visitors .mwfv-caption-t { min-width: 0; }
.mwfe-visitors .mwfv-caption-name { display: block; font-family: var(--mwfe-serif); font-weight: 600; font-size: 1.3rem; line-height: 1.15; color: var(--mwfv-wine); }
.mwfe-visitors .mwfv-caption-chips { display: flex; flex-wrap: wrap; gap: .3rem; margin: .35rem 0 .55rem; }
.mwfe-visitors .mwfv-caption-chips:empty { display: none; }
.mwfe-visitors .mwfv-caption-note { color: var(--mwfv-text); font-size: .93rem; line-height: 1.62; }
.mwfe-visitors .mwfv-caption-note p { margin: 0 0 .6em; }
.mwfe-visitors .mwfv-caption-note p:last-child { margin-bottom: 0; }
.mwfe-visitors .mwfv-caption-note strong { color: var(--mwfv-wine); font-weight: 600; }
.mwfe-visitors .mwfv-caption-more {
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: .6em;
	margin-top: .8rem;
	border: 1px solid var(--mwfv-wine);
	background: transparent;
	color: var(--mwfv-wine);
	border-radius: 999px;
	padding: .6em 1.2em;
	font-family: var(--mwfe-sans);
	font-size: .66rem;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .3s, color .3s;
}
.mwfe-visitors .mwfv-caption-more[hidden] { display: none; }
.mwfe-visitors .mwfv-caption-more:hover { background: var(--mwfv-wine); color: #fcfdde; }
.mwfe-visitors .mwfv-caption-more .mwfe-arrow { transition: transform .3s; }
.mwfe-visitors .mwfv-caption-more:hover .mwfe-arrow { transform: translateX(4px); }

/* ----------------------------------------------------- the closing band */
.mwfe-visitors .mwfv-band { margin-top: clamp(1rem, 4vh, 3rem); }
.mwfe-visitors .mwfv-actions { justify-content: center; }

/* ------------------------------------------------------------ phones */
@media (max-width: 900px) {
	.mwfe-visitors .mwfv-explorer { grid-template-columns: 1fr; gap: 1rem; }
	/* the plan stays in sight while the list of rooms scrolls under it */
	.mwfe-visitors .mwfv-board {
		top: calc(var(--mwfe-header-h) + 3.3rem);
		z-index: 6;
		margin: 0 calc(-1 * var(--mwfe-gutter));
		padding: .3rem var(--mwfe-gutter) .7rem;
		background: #ffffff;
	}
	.mwfe-visitors .mwfv-explorer--map .mwfv-board { position: static; margin: 0; padding: 0; background: none; }
	.mwfe-visitors .mwfv-stage { aspect-ratio: 1.9 / 1; }
	.mwfe-visitors .mwfv-explorer--map .mwfv-stage { aspect-ratio: 1.7 / 1; }
	/* a room open in the guide: the plan narrows to a strip around it (the
	   camera closes in on the room anyway), so the room's card finds room on
	   the screen under the sticky plan — map and words in sight together
	   (owner, 2026-10-08). js/visitors.js glides the height. */
	.mwfe-visitors .mwfv-explorer--full.has-room .mwfv-stage { aspect-ratio: 2.5 / 1; }
	.mwfe-visitors .mwfv-floors { margin-bottom: .6rem; }
	/* the locations: thumbnails in a strip, the picture above the text */
	.mwfe-visitors .mwfv-locs-rail {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		gap: .6rem;
		margin: 0 calc(-1 * var(--mwfe-gutter)) clamp(1.2rem, 3vh, 1.8rem);
		padding: .25rem var(--mwfe-gutter) .5rem;
	}
	.mwfe-visitors .mwfv-locs-rail::-webkit-scrollbar { display: none; }
	.mwfe-visitors .mwfv-loc-tab { flex: 0 0 11.5rem; scroll-snap-align: start; }
	.mwfe-visitors .mwfv-locx { grid-template-columns: 1fr; gap: 1.1rem; }
	/* relative, not static: the picture's shade and its outlined number are
	   placed inside it — `static` sent both to the stage, a grey band and a
	   stray «01» over the location's words (owner, 2026-10-08: "weird
	   overlays on locations"); `top` back to auto, or relative would shift it */
	.mwfe-visitors .mwfv-locx-media { position: relative; top: auto; aspect-ratio: 16 / 10; }
}
@media (max-width: 760px) {
	.mwfe-visitors .mwfv-hero .mwfe-hero-inner { padding-bottom: clamp(4.5rem, 9vh, 6rem); }
	/* the two chips side by side on a phone */
	.mwfe-visitors .mwfv-hero .mwfe-chip { font-size: .66rem; padding: .5em .85em; letter-spacing: .1em; }
	.mwfe-visitors .mwfv-hero .mwfe-hero-meta { gap: .45rem; }
	/* five tiles two by two, the fifth alone and centred under them (equal cards) */
	.mwfe-visitors .mwfv-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: -2.6rem; }
	.mwfe-visitors .mwfv-tiles button { padding: 1rem .7rem .85rem; font-size: .6rem; }
	.mwfe-visitors .mwfv-tiles button:nth-child(5) { grid-column: 1 / -1; justify-self: center; width: calc(50% - .4rem); }
	.mwfe-visitors .mwfv-num { font-size: clamp(4.5rem, 22vw, 6.5rem); }
}
@media (max-width: 560px) {
	/* the kicker's two hairlines would push its words onto three lines */
	.mwfe-visitors .mwfe-panel-head .mwfe-kicker { font-size: .62rem; letter-spacing: .24em; }
	.mwfe-visitors .mwfe-panel-head .mwfe-kicker::before,
	.mwfe-visitors .mwfe-panel-head .mwfe-kicker::after { width: 1.4em; }
	.mwfe-visitors .mwfv-stage { aspect-ratio: 1.5 / 1; }
	.mwfe-visitors .mwfv-explorer--map .mwfv-stage { aspect-ratio: 1.4 / 1; }
	.mwfe-visitors .mwfv-explorer--full.has-room .mwfv-stage { aspect-ratio: 2.2 / 1; }
	.mwfe-visitors .mwfv-sheet-brand { display: none; }
	/* the three floors on one line (two lines cost the sticky plan ~45px on a
	   375px phone); the floor's number is in its name already */
	.mwfe-visitors .mwfv-floors { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .3rem; }
	.mwfe-visitors .mwfv-floor-btn { justify-content: center; padding: .7em .35em; font-size: .58rem; letter-spacing: .08em; text-align: center; }
	.mwfe-visitors .mwfv-floor-n { display: none; }
	.mwfe-visitors .mwfv-item-head { gap: .6rem; padding: .7rem .75rem .7rem .65rem; }
	.mwfe-visitors .mwfv-hours > div { flex-direction: column; gap: .1rem; }
	.mwfe-visitors .mwfv-loc-tab { flex-basis: 10rem; grid-template-columns: 3.2rem minmax(0, 1fr); }
	.mwfe-visitors .mwfv-loc-tab b { font-size: .98rem; }
	.mwfe-visitors .mwfv-caption-card { grid-template-columns: 1fr; gap: .5rem; }
}

/* «Intorno al Kurhaus»: the sticky map (css/city-map.css) stops under the
   floating chip bar, not behind it — a pin brings its card into sight
   (js/city-map.js), so the page often rests with the map stuck */
@media (min-width: 901px) {
	.mwfe-visitors .mwfk--side .mwfk-board { top: calc(var(--mwfe-header-h, 14vh) + .6rem + var(--mwfv-nav-h, 2.4rem) + .8rem); }
}

/* ------------------------------------------------- JS-only controls */
@media (scripting: none) {
	.mwfe-visitors .mwfv-js { display: none; }
	/* without the script every location shows in turn */
	.mwfe-visitors .mwfv-locx { display: grid; margin-bottom: 2rem; }
}
@media (prefers-reduced-motion: reduce) {
	.mwfe-visitors .mwfv-tiles button,
	.mwfe-visitors .mwfv-tiles button img,
	.mwfe-visitors .mwfv-item-body,
	.mwfe-visitors .mwfv-item-plus,
	.mwfe-visitors .mwfv-loc-tab,
	.mwfe-visitors .mwfv-loc-thumb img,
	.mwfe-visitors g.mwfv-floor { transition: none; }
}
