/* Wijnhuis-kaart frontend — Figma 2068:1713 / 2057:1277 (desktop overlay) / mobile sheet.
   Modals: Filters 1692:2588 / 1692:2654, aanmelden; donate 1696:3076 when enabled.
   Components: Wijnhuis informatie, Card/Clickable, Link, Map Marker, Wijnhuis Tooltip.
   Mobile: bottom sheet (closed / expanded), larger tap targets, search + near-me.

   Kleuren komen uit iws-tokens.css (--iws-color-*); alleen maten en geometrie van de
   kaart zelf staan hier als --iws-wk-*. Er is geen thema meer om tegenaan te vechten:
   selectors blijven kort (`.iws-wijnhuis-kaart …`), en !important staat alleen op
   - [hidden] tegenover een display uit de component zelf,
   - prefers-reduced-motion,
   - de hoogte van het desktoppaneel (inline hoogte van de mobiele sleep-engine). */

/* Build-stempel: de deploy vervangt BUILD door de git-SHA. index.html vergelijkt
   dit met zijn eigen stempel en ververst één keer als een oude cache of service
   worker nog een verouderde versie van dit bestand serveert.
   Achtergrond en spelregels: deploy/CACHE-BUSTING.md. */
:root {
	--iws-wk-build: "368e830";
	/* Schermhoogte voor sheets en container (#53). */
	--iws-wk-vh: 100vh;
	--iws-wk-vh: 100dvh;
}

/* iOS-PWA: de pagina loopt onder de statusbalk door, maar 100(d)vh is het scherm
   min die balk. Zonder deze correctie eindigt de container ~55pt boven de onderrand. */
@media (display-mode: standalone) {
	:root {
		--iws-wk-vh: calc(100dvh + env(safe-area-inset-top, 0px));
	}
}

.iws-wijnhuis-kaart {
	--iws-wk-panel-inset: 16px;
	--iws-wk-panel-gap: 16px;
	--iws-wk-panel-width: max(360px, 33.333%);
	--iws-wk-panel-shadow:
		0 3px 6px rgba(0, 0, 0, 0.05),
		0 10px 20px rgba(0, 0, 0, 0.1);
	--iws-wk-fab-left: calc(
		var(--iws-wk-panel-inset) + var(--iws-wk-panel-width) + var(--iws-wk-panel-gap)
	);
	/* Single source for mobile sheet closed peek + expanded ratio (JS reads these). */
	/* Visible chrome of the closed peek; the safe-area is added on top of it so
	   the handle and title look the same with or without a home indicator. */
	--iws-wk-sheet-closed: 90px;
	--iws-wk-sheet-closed-total: calc(
		var(--iws-wk-sheet-closed) + env(safe-area-inset-bottom, 0px)
	);
	--iws-wk-sheet-half-ratio: 0.5;
	--iws-wk-sheet-expanded-ratio: 0.86;
	--iws-wk-sheet-height: var(--iws-wk-sheet-closed-total);
	/* Shared mobile bottom-sheet chrome (Figma 1568:1294 / 1963:2233). */
	--iws-wk-sheet-radius: 16px;
	--iws-wk-sheet-shadow:
		0 -2px 4px rgba(0, 0, 0, 0.08),
		0 -3px 6px rgba(0, 0, 0, 0.1);
	--iws-wk-sheet-handle: rgba(0, 0, 0, 0.4);
	/* Detail sheet snap ratios vs viewport (Figma 1804:3261 / 1804:3311). */
	--iws-wk-detail-peek-ratio: 0.43;
	--iws-wk-detail-expanded-ratio: 0.75;
	--iws-wk-detail-height: 0px;
	position: relative;
	color: var(--iws-color-text);
	font-family: Lato, sans-serif;
	font-size: 16px;
}

/*
 * Reports what `100dvh` resolves to so the JS drag snap can match the sheets'
 * CSS rest height instead of guessing at it (see dvhPx() in the state module).
 * Carries the same `100vh` fallback as the sheets, so it also tracks browsers
 * without `dvh`. Fixed, so it never adds scrollable overflow.
 */
.iws-wijnhuis-kaart__dvh-probe,
.iws-wijnhuis-kaart__safe-bottom-probe {
	position: fixed;
	top: 0;
	left: 0;
	width: 0;
	visibility: hidden;
	pointer-events: none;
}

.iws-wijnhuis-kaart__dvh-probe {
	height: 100vh;
	height: var(--iws-wk-vh);
}

/* env() is not readable from JS; this reports the inset the browser applied,
   so the closed-peek snap matches --iws-wk-sheet-closed-total. */
.iws-wijnhuis-kaart__safe-bottom-probe {
	height: env(safe-area-inset-bottom, 0px);
}

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

.iws-wijnhuis-kaart__layout {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	min-height: 0;
	position: relative;
}

.iws-wijnhuis-kaart__map {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	min-height: 0;
}

.iws-wijnhuis-kaart__canvas {
	width: 100%;
	height: 100%;
	min-height: 320px;
	overflow: hidden;
	background: var(--iws-color-surface);
}

/* Without JavaScript or WebGL the canvas stays empty, so hide the box and
   leave the plain list as the only content. */
.iws-wijnhuis-kaart:not(.iws-wijnhuis-kaart--js) .iws-wijnhuis-kaart__map {
	display: none;
}

.iws-wijnhuis-kaart:not(.iws-wijnhuis-kaart--js) .iws-wijnhuis-kaart__sheet-handle,
.iws-wijnhuis-kaart:not(.iws-wijnhuis-kaart--js) .iws-wijnhuis-kaart__sheet-close,
.iws-wijnhuis-kaart:not(.iws-wijnhuis-kaart--js) .iws-wijnhuis-kaart__toolbar,
.iws-wijnhuis-kaart:not(.iws-wijnhuis-kaart--js) .iws-wijnhuis-kaart__near-me,
.iws-wijnhuis-kaart:not(.iws-wijnhuis-kaart--js) .iws-wijnhuis-kaart__reset-view,
.iws-wijnhuis-kaart:not(.iws-wijnhuis-kaart--js) .iws-wijnhuis-kaart__detail {
	display: none;
}

.iws-wijnhuis-kaart__panel {
	display: flex;
	flex-direction: column;
	gap: 16px;
	min-height: 0;
	padding: 24px;
	padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
	background: var(--iws-color-surface);
	overflow: hidden;
	box-sizing: border-box;
}

/* Place detail is mobile-only; markup stays in the DOM for the sheet module. */
.iws-wijnhuis-kaart__detail {
	display: none;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__sheet-handle {
	display: none;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin: -8px 0 0;
	padding: 10px 0 4px;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	touch-action: none;
}

.iws-wijnhuis-kaart__sheet-handle-bar {
	display: block;
	width: 40px;
	height: 4px;
	border-radius: 4px;
	background: var(--iws-wk-sheet-handle, var(--iws-color-border));
}

/* Sheet close — same tokens as tooltip close (Figma 1807:688): 32×32 var(--iws-color-neutral). */
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__sheet-close {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 32px;
	height: 32px;
	min-width: 32px;
	min-height: 32px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 80px;
	background: var(--iws-color-neutral);
	background-image: none;
	box-shadow: none;
	color: var(--iws-color-text);
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transform: none;
	transition: none;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__sheet-close:focus {
	background: var(--iws-color-neutral);
	color: var(--iws-color-text);
	box-shadow: none;
	transform: none;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__sheet-close:hover {
		background: var(--iws-color-neutral);
		color: var(--iws-color-text);
		box-shadow: none;
		transform: none;
	}
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__sheet-close:focus-visible {
	outline: 2px solid var(--iws-color-focus);
	outline-offset: 2px;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__sheet-close[hidden] {
	display: none !important;
}

.iws-wijnhuis-kaart__sheet-close .iws-wijnhuis-kaart__sheet-close-icon,
.iws-wijnhuis-kaart__sheet-close .iws-wijnhuis-kaart__popup-close-icon {
	display: block;
	width: 12.8px;
	height: 12.8px;
	flex: 0 0 12.8px;
}

.iws-wijnhuis-kaart__panel-header {
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 0 0 auto;
}

.iws-wijnhuis-kaart__panel-heading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
}

.iws-wijnhuis-kaart__logo {
	display: block;
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	max-width: 40px;
	max-height: 40px;
	object-fit: contain;
	overflow: hidden;
}

.iws-wijnhuis-kaart__list-title {
	margin: 0;
	flex: 1 1 auto;
	min-width: 0;
	font-family: 'Playfair Display', serif;
	font-size: 24px;
	font-weight: 400;
	line-height: normal;
	color: var(--iws-color-text);
}

.iws-wijnhuis-kaart__panel-body {
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 1 1 auto;
	min-height: 0;
}

.iws-wijnhuis-kaart__list-count {
	flex: 0 0 auto;
	margin: 0;
	padding: 0;
	font-family: Lato, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: normal;
	color: var(--iws-color-text-muted);
	white-space: nowrap;
}

.iws-wijnhuis-kaart__list-count[hidden] {
	display: none !important;
}

.iws-wijnhuis-kaart__toolbar {
	display: flex;
	flex-wrap: nowrap;
	gap: 8px;
	flex: 0 0 auto;
	align-items: stretch;
}

/* Filled on mobile by JS (`placeToolbar`); stays empty on desktop. */
.iws-wijnhuis-kaart__map-chrome {
	display: none;
}

.iws-wijnhuis-kaart__search {
	display: flex;
	flex: 1 1 auto;
	align-items: stretch;
	position: relative;
	min-width: 0;
	margin: 0;
}

.iws-wijnhuis-kaart__search-icon {
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--iws-color-text-muted);
	pointer-events: none;
	z-index: 1;
}

.iws-wijnhuis-kaart input.iws-wijnhuis-kaart__search-input {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: 10px 12px 10px 32px;
	min-height: 44px;
	border: 1px solid var(--iws-color-border);
	border-radius: 4px;
	background: var(--iws-color-card);
	color: var(--iws-color-text);
	font-family: Lato, sans-serif;
	font-size: 16px;
	line-height: 1.2;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
}

.iws-wijnhuis-kaart input.iws-wijnhuis-kaart__search-input::placeholder {
	color: var(--iws-color-text-muted);
	opacity: 1;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart input.iws-wijnhuis-kaart__search-input:hover {
		border-color: var(--iws-color-action);
	}
}

.iws-wijnhuis-kaart input.iws-wijnhuis-kaart__search-input:focus,
.iws-wijnhuis-kaart input.iws-wijnhuis-kaart__search-input:focus-visible {
	outline: 2px solid var(--iws-color-action);
	outline-offset: 1px;
	border-color: var(--iws-color-border);
	background: var(--iws-color-card);
	box-shadow: none;
}

.iws-wijnhuis-kaart__wijnstreek {
	position: relative;
	display: flex;
	flex: 0 0 auto;
	align-items: stretch;
	margin: 0;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-toggle:not([data-slot="button"]) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	box-sizing: border-box;
	height: 100%;
	min-height: 44px;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid var(--iws-color-border);
	border-radius: 4px;
	background: var(--iws-color-card);
	color: var(--iws-color-text);
	font-family: Lato, sans-serif;
	font-size: 16px;
	line-height: 1.2;
	box-shadow: none;
	cursor: pointer;
	white-space: nowrap;
	-webkit-appearance: none;
	appearance: none;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-toggle:not([data-slot="button"]) .iws-wijnhuis-kaart__icon {
	display: block;
	flex: 0 0 auto;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-toggle:not([data-slot="button"])[aria-expanded="true"] {
	border-color: var(--iws-color-action);
	color: var(--iws-color-action);
	background: var(--iws-color-card);
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-toggle:not([data-slot="button"]):hover {
		border-color: var(--iws-color-action);
		color: var(--iws-color-action);
		background: var(--iws-color-card);
	}
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-toggle:not([data-slot="button"]):focus,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-toggle:not([data-slot="button"]):focus-visible {
	outline: 2px solid var(--iws-color-action);
	outline-offset: 1px;
}

/* shadcn hover paints the button navy; the Figma icon is a black PNG-style
   SVG, so invert it to match the white label. */
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-toggle[data-slot="button"]:focus-visible .iws-wijnhuis-kaart__icon {
	filter: brightness(0) invert(1);
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-toggle[data-slot="button"]:hover .iws-wijnhuis-kaart__icon {
		filter: brightness(0) invert(1);
	}
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-toggle[hidden] {
	display: none !important;
}

.iws-wijnhuis-kaart__wijnstreek-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 10px;
	background: var(--iws-color-action);
	color: var(--iws-color-action-on);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}

.iws-wijnhuis-kaart__wijnstreek-badge[hidden] {
	display: none !important;
}

.iws-wijnhuis-kaart__filter-modal {
	position: fixed;
	inset: 0;
	/* Boven de kaart, het paneel en de bladen. */
	z-index: 100050;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	padding-top: calc(16px + env(safe-area-inset-top, 0px));
	padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
	box-sizing: border-box;
}

.iws-wijnhuis-kaart__filter-modal[hidden] {
	display: none !important;
}

.iws-wijnhuis-kaart__filter-backdrop {
	position: absolute;
	inset: 0;
	border: 0;
	cursor: pointer;
}

.iws-wijnhuis-kaart__filter-backdrop:not([data-slot="dialog-overlay"]) {
	background: rgba(17, 17, 17, 0.45);
}

.iws-wijnhuis-kaart__filter-dialog {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	width: min(405px, 100%);
	height: auto;
	min-height: 0;
	/* --iws-wk-modal-vh is published by JS while a soft keyboard is up. */
	max-height: min(calc(var(--iws-wk-modal-vh, 100vh) - 48px), 700px);
	max-height: min(calc(var(--iws-wk-modal-vh, 100dvh) - 48px), 700px);
	margin: 0;
	box-sizing: border-box;
	overflow: hidden;
}

.iws-wijnhuis-kaart__filter-dialog:not([data-slot="dialog-content"]) {
	gap: 12px;
	padding: 16px;
	background: var(--iws-color-card);
	border-radius: 8px;
	box-shadow:
		0 3px 6px rgba(0, 0, 0, 0.05),
		0 10px 20px rgba(0, 0, 0, 0.1);
}

.iws-wijnhuis-kaart__filter-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	flex: 0 0 auto;
	padding: 0;
}

.iws-wijnhuis-kaart__filter-title {
	margin: 0;
}

.iws-wijnhuis-kaart__filter-title:not([data-slot="dialog-title"]) {
	font-family: Lato, sans-serif;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--iws-color-text);
}

/* Modal close — Figma circle 40×40, var(--iws-color-neutral), radius 100px. */
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-close:not([data-slot="button"]),
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__submit-close:not([data-slot="button"]),
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__donate-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	min-width: 40px;
	min-height: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 100px;
	background: var(--iws-color-neutral);
	background-image: none;
	box-shadow: none;
	color: var(--iws-color-text);
	font-family: Lato, sans-serif;
	font-size: 24px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	text-shadow: none;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transform: none;
	transition: none;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-close:not([data-slot="button"]):focus,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__submit-close:not([data-slot="button"]):focus,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__donate-close:focus {
	background: var(--iws-color-neutral);
	color: var(--iws-color-text);
	box-shadow: none;
	transform: none;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-close:not([data-slot="button"]):hover,
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__submit-close:not([data-slot="button"]):hover,
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__donate-close:hover {
		background: var(--iws-color-neutral);
		color: var(--iws-color-text);
		box-shadow: none;
		transform: none;
	}
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-close:not([data-slot="button"]):focus-visible,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__submit-close:not([data-slot="button"]):focus-visible,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__donate-close:focus-visible {
	outline: 2px solid var(--iws-color-focus);
	outline-offset: 1px;
}

.iws-wijnhuis-kaart__filter-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 24px;
	min-height: 0;
	padding-bottom: 16px;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	touch-action: pan-y;
}

.iws-wijnhuis-kaart__filter-section {
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 0 0 auto;
	min-width: 0;
}

.iws-wijnhuis-kaart__filter-section--wijnstreek {
	flex: 1 1 auto;
	min-height: 0;
}

.iws-wijnhuis-kaart__filter-section[hidden] {
	display: none !important;
}

.iws-wijnhuis-kaart__filter-section-title {
	margin: 0;
}

.iws-wijnhuis-kaart__filter-section-title:not([data-slot="label"]) {
	font-family: Lato, sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--iws-color-text);
}

.iws-wijnhuis-kaart__wijnstreek-tree,
.iws-wijnhuis-kaart__eigenschap-list {
	min-height: 0;
	overflow: visible;
	padding: 0;
}

/* Geen bolletjes op de lijst. */
.iws-wijnhuis-kaart ul.iws-wijnhuis-kaart__wijnstreek-roots,
.iws-wijnhuis-kaart ul.iws-wijnhuis-kaart__wijnstreek-children,
.iws-wijnhuis-kaart ul.iws-wijnhuis-kaart__eigenschap-options {
	margin: 0;
	padding: 0;
	list-style: none;
}

.iws-wijnhuis-kaart li.iws-wijnhuis-kaart__wijnstreek-node,
.iws-wijnhuis-kaart li.iws-wijnhuis-kaart__eigenschap-node {
	list-style: none;
	list-style-type: none;
}

.iws-wijnhuis-kaart ul.iws-wijnhuis-kaart__wijnstreek-children {
	margin-top: 8px;
	margin-left: 7px;
	padding-left: 12px;
	border-left: 1px solid var(--iws-color-border);
}

/* Hoofdstreek als kop: checkbox + naam links, uitklapknop rechts. */
.iws-wijnhuis-kaart__wijnstreek-row {
	display: flex;
	align-items: center;
	gap: 8px;
}

.iws-wijnhuis-kaart__wijnstreek-row .iws-wijnhuis-kaart__wijnstreek-option {
	flex: 1 1 auto;
	min-width: 0;
}

.iws-wijnhuis-kaart__wijnstreek-row .iws-wijnhuis-kaart__wijnstreek-option > span:not(.iws-wijnhuis-kaart__filter-count) {
	font-weight: 700;
}

.iws-wijnhuis-kaart__wijnstreek-expand {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 32px;
	height: 32px;
	margin: -4px 0;
	padding: 0;
	border: 0;
	border-radius: 4px;
	background: transparent;
	color: #737373;
	cursor: pointer;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart__wijnstreek-expand:hover {
		background: rgba(0, 0, 0, 0.04);
		color: var(--iws-color-text);
	}
}

.iws-wijnhuis-kaart__wijnstreek-expand:focus-visible {
	outline: 2px solid var(--iws-color-focus);
	outline-offset: 1px;
}

.iws-wijnhuis-kaart__wijnstreek-chevron {
	transform: rotate(-90deg);
	transition: transform 150ms ease;
}

.iws-wijnhuis-kaart__wijnstreek-node--group.is-open > .iws-wijnhuis-kaart__wijnstreek-row .iws-wijnhuis-kaart__wijnstreek-chevron {
	transform: rotate(0deg);
}

/* Ingeklapte cluster met een actieve subregio: stipje op de knop. */
.iws-wijnhuis-kaart__wijnstreek-node--group.has-selection:not(.is-open) > .iws-wijnhuis-kaart__wijnstreek-row .iws-wijnhuis-kaart__wijnstreek-expand::after {
	position: absolute;
	top: 3px;
	right: 3px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--iws-color-focus);
	content: "";
}

.iws-wijnhuis-kaart__wijnstreek-node--group + .iws-wijnhuis-kaart__wijnstreek-node--group,
.iws-wijnhuis-kaart__wijnstreek-node--group + .iws-wijnhuis-kaart__wijnstreek-node,
.iws-wijnhuis-kaart__wijnstreek-node + .iws-wijnhuis-kaart__wijnstreek-node--group {
	margin-top: 12px;
}

.iws-wijnhuis-kaart__wijnstreek-option,
.iws-wijnhuis-kaart__eigenschap-option {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-family: Lato, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--iws-color-text);
	cursor: pointer;
}

.iws-wijnhuis-kaart__wijnstreek-option span,
.iws-wijnhuis-kaart__eigenschap-option span {
	color: var(--iws-color-text);
	font-family: Lato, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
}

.iws-wijnhuis-kaart__wijnstreek-option .iws-wijnhuis-kaart__filter-count,
.iws-wijnhuis-kaart__eigenschap-option .iws-wijnhuis-kaart__filter-count {
	margin-left: 0.35em;
	color: #737373;
	font-weight: 400;
	font-variant-numeric: tabular-nums;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart__wijnstreek-option:hover,
	.iws-wijnhuis-kaart__eigenschap-option:hover {
		background: transparent;
	}
}

/* Figma checkbox: 16×16 square, 2px radius, border #717171. */
.iws-wijnhuis-kaart__wijnstreek-option input[type="checkbox"],
.iws-wijnhuis-kaart__eigenschap-option input[type="checkbox"] {
	flex: 0 0 auto;
	box-sizing: border-box;
	width: 16px;
	height: 16px;
	min-width: 16px;
	min-height: 16px;
	margin: 0;
	padding: 0;
	border: 1px solid #717171;
	border-radius: 2px;
	background-color: var(--iws-color-card);
	background-image: none;
	box-shadow: none;
	accent-color: var(--iws-color-focus);
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.iws-wijnhuis-kaart__wijnstreek-option input[type="checkbox"]:checked,
.iws-wijnhuis-kaart__eigenschap-option input[type="checkbox"]:checked {
	border-color: var(--iws-color-focus);
	background-color: var(--iws-color-focus);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E");
	background-position: center;
	background-repeat: no-repeat;
	background-size: 12px 12px;
}

.iws-wijnhuis-kaart__wijnstreek-option input[type="checkbox"]:focus-visible,
.iws-wijnhuis-kaart__eigenschap-option input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--iws-color-focus);
	outline-offset: 1px;
}

.iws-wijnhuis-kaart__wijnstreek-node + .iws-wijnhuis-kaart__wijnstreek-node,
.iws-wijnhuis-kaart__eigenschap-node + .iws-wijnhuis-kaart__eigenschap-node {
	margin-top: 8px;
}

.iws-wijnhuis-kaart__filter-footer {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 0;
	border-top: 0;
}

.iws-wijnhuis-kaart__filter-result-count {
	margin: 0;
	flex: 0 1 auto;
	min-width: 0;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.iws-wijnhuis-kaart__filter-footer-actions {
	display: flex;
	flex: 1 1 auto;
	align-items: stretch;
	gap: 8px;
	margin-left: auto;
	min-width: 0;
}

/* Modal / CTA secondary + primary pills — Figma Button Secondary / Primary. */
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-clear:not([data-slot="button"]),
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__filter-apply:not([data-slot="button"]),
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__submit-send:not([data-slot="button"]),
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__donate-open,
.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__donate-make,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__cta-btn:not([data-slot="button"]) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 12px 24px;
	border-radius: 24px;
	font-family: Lato, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
	text-decoration: none;
	text-shadow: none;
	box-shadow: none;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transform: none;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-clear,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__filter-apply {
	flex: 1 1 0;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-clear:not([data-slot="button"]),
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__donate-open,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__cta-btn:not([data-slot="button"]) {
	border: 2px solid var(--iws-color-focus);
	background: transparent;
	background-image: none;
	color: var(--iws-color-focus);
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-clear:not([data-slot="button"]):focus,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__donate-open:focus,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__cta-btn:not([data-slot="button"]):focus {
	background: rgba(23, 57, 92, 0.06);
	color: var(--iws-color-focus);
	border-color: var(--iws-color-focus);
	box-shadow: none;
	transform: none;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-clear:not([data-slot="button"]):hover,
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__donate-open:hover,
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__cta-btn:not([data-slot="button"]):hover {
		background: rgba(23, 57, 92, 0.06);
		color: var(--iws-color-focus);
		border-color: var(--iws-color-focus);
		box-shadow: none;
		transform: none;
	}
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__filter-apply:not([data-slot="button"]),
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__submit-send:not([data-slot="button"]),
.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__donate-make {
	border: 2px solid var(--iws-color-focus);
	background: var(--iws-color-focus);
	background-image: none;
	color: var(--iws-color-action-on);
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__filter-apply:not([data-slot="button"]):focus,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__submit-send:not([data-slot="button"]):focus,
.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__donate-make:focus {
	background: var(--iws-color-action-hover);
	border-color: var(--iws-color-action-hover);
	color: var(--iws-color-action-on);
	box-shadow: none;
	text-decoration: none;
	transform: none;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__filter-apply:not([data-slot="button"]):hover,
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__submit-send:not([data-slot="button"]):hover,
	.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__donate-make:hover {
		background: var(--iws-color-action-hover);
		border-color: var(--iws-color-action-hover);
		color: var(--iws-color-action-on);
		box-shadow: none;
		text-decoration: none;
		transform: none;
	}
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-clear:not([data-slot="button"]):focus-visible,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__filter-apply:not([data-slot="button"]):focus-visible,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__submit-send:not([data-slot="button"]):focus-visible,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__donate-open:focus-visible,
.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__donate-make:focus-visible,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__cta-btn:not([data-slot="button"]):focus-visible {
	outline: 2px solid var(--iws-color-action);
	outline-offset: 2px;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__submit-send:not([data-slot="button"]):disabled {
	opacity: 0.65;
	cursor: wait;
}

body.iws-wijnhuis-kaart-filter-open {
	overflow: hidden;
}

/* Floating map FABs (Figma 2068:1714): reset + near-me 48×48 / 24px icon. */
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__near-me,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__reset-view {
	position: absolute;
	right: 12px;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 48px;
	height: 48px;
	min-width: 48px;
	min-height: 48px;
	margin: 0;
	padding: 12px;
	border: 0;
	border-radius: 24px;
	background: var(--iws-color-focus);
	color: var(--iws-color-action-on);
	box-shadow: none;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__near-me {
	bottom: 12px;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__reset-view {
	bottom: calc(12px + 48px + 8px);
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__near-me:focus-visible,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__reset-view:focus-visible {
	background: var(--iws-color-focus-strong);
	color: var(--iws-color-action-on);
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__near-me:hover,
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__reset-view:hover {
		background: var(--iws-color-focus-strong);
		color: var(--iws-color-action-on);
	}
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__near-me:focus-visible,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__reset-view:focus-visible {
	outline: 2px solid var(--iws-color-focus);
	outline-offset: 2px;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__near-me:disabled {
	opacity: 0.6;
	cursor: wait;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__near-me[hidden],
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__reset-view[hidden] {
	display: none !important;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__near-me .iws-wijnhuis-kaart__fab-icon,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__reset-view .iws-wijnhuis-kaart__fab-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	overflow: hidden;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__near-me .iws-wijnhuis-kaart__fab-icon img,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__reset-view .iws-wijnhuis-kaart__fab-icon img {
	display: block;
	object-fit: contain;
	pointer-events: none;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__reset-view .iws-wijnhuis-kaart__fab-icon img {
	width: 22.6863px;
	height: 22.9259px;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__near-me .iws-wijnhuis-kaart__fab-icon img {
	width: 21px;
	height: 21px;
}

.iws-wijnhuis-kaart__map-error {
	position: absolute;
	left: 12px;
	right: 12px;
	top: 12px;
	z-index: 4;
	margin: 0;
	padding: 12px 14px;
	border-radius: 4px;
	background: rgba(255, 255, 255, 0.95);
	color: var(--iws-color-text);
	font-size: 14px;
	line-height: 1.4;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.iws-wijnhuis-kaart__status {
	flex: 0 0 auto;
	margin: 0;
	padding-bottom: 0;
	font-size: 13px;
	color: var(--iws-color-text-muted);
}

.iws-wijnhuis-kaart__status[hidden] {
	display: none !important;
}

.iws-wijnhuis-kaart__list {
	display: flex;
	flex-direction: column;
	gap: 48px;
	flex: 1 1 0%;
	margin: 0;
	padding: 0;
	list-style: none;
	min-height: 0;
	max-height: 100%;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	touch-action: pan-y;
}

.iws-wijnhuis-kaart__list[hidden] {
	display: none !important;
}

/* Card / Clickable — Figma 1554:501 (Default / Hover / Selected / Focus).
   Primary action is a native <button> on the name only; website/Maps links
   are siblings outside that button (no nested interactives). Inset box-shadow
   for rings so overflow:hidden does not clip them. */
.iws-wijnhuis-kaart__list-item {
	position: relative;
	flex: 0 0 auto;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 4px;
	background: var(--iws-color-card);
	overflow: visible;
	box-sizing: border-box;
	box-shadow: none;
	transition: background 0.15s ease, box-shadow 0.15s ease;
}

.iws-wijnhuis-kaart__list-item:not(:last-child)::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: -24.5px;
	height: 1px;
	background: var(--iws-color-divider);
	pointer-events: none;
}

.iws-wijnhuis-kaart__list-item[hidden] {
	display: none !important;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart__list-item:hover .iws-wijnhuis-kaart__info-naam {
		text-decoration: underline;
	}
}

.iws-wijnhuis-kaart__list-item--active {
	background: var(--iws-color-card);
	box-shadow: inset 0 0 0 1px var(--iws-color-action);
}

.iws-wijnhuis-kaart__list-item:has(.iws-wijnhuis-kaart__list-focus:focus-visible),
.iws-wijnhuis-kaart__list-item--active:has(.iws-wijnhuis-kaart__list-focus:focus-visible) {
	background: var(--iws-color-card);
	box-shadow: inset 0 0 0 2px var(--iws-color-focus);
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__list-focus {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	text-align: left;
	cursor: pointer;
	color: inherit;
	font: inherit;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__list-focus:focus,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__list-focus:active {
	border: 0;
	background: transparent;
	box-shadow: none;
	outline: none;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__list-focus:hover {
		border: 0;
		background: transparent;
		box-shadow: none;
		outline: none;
	}
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__list-focus:focus-visible {
	outline: none;
}

/* Wijnhuis informatie (list cards + map tooltip) — Figma 1554:541:
   naam + eigenschap-iconen, wijnstreek + tip, Route / Website / Delen pills. */
.iws-wijnhuis-kaart__info {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	width: 100%;
}

/* Tooltip photo only (Figma 1905:1525) — not used on list cards. */
.iws-wijnhuis-kaart__info-image {
	position: relative;
	width: 100%;
	aspect-ratio: 232 / 120;
	border-radius: 2px;
	overflow: hidden;
	flex: 0 0 auto;
}

.iws-wijnhuis-kaart__info-image-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 2px;
	pointer-events: none;
}

.iws-wijnhuis-kaart__info-header {
	display: flex;
	align-items: center;
	gap: 24px;
	width: 100%;
	padding-bottom: 2px;
	font-family: Lato, sans-serif;
	font-size: 16px;
	line-height: normal;
	color: var(--iws-color-text);
}

.iws-wijnhuis-kaart__info-naam {
	flex: 1 1 auto;
	min-width: 0;
	font-weight: 700;
}

.iws-wijnhuis-kaart__info-eigenschappen {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: 2px;
	flex: 0 0 auto;
}

.iws-wijnhuis-kaart__eigenschap {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	min-width: 20px;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__eigenschap-icoon {
	display: block;
	width: 20px;
	height: 20px;
	max-width: 20px;
	max-height: 20px;
	object-fit: contain;
	flex: 0 0 20px;
}

/* List/tooltip eigenschap labels stay SR-only (icons carry the visual). */
.iws-wijnhuis-kaart__eigenschap-label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.iws-wijnhuis-kaart__info-body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 8px;
	width: 100%;
	overflow: hidden;
	font-family: Lato, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: normal;
}

/* Figma 2042:2672 wraps header+details with gap 2px; siblings of .info use 12px. */
.iws-wijnhuis-kaart__info-header + .iws-wijnhuis-kaart__info-body {
	margin-top: -10px;
}

.iws-wijnhuis-kaart__info-wijnstreek {
	margin: 0;
	padding: 0;
	width: 100%;
	color: #666666;
}

/* Figma 1554:662 / 1639:2025 — max 3 lines, then ellipsis. */
.iws-wijnhuis-kaart__info-tip {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
	text-overflow: ellipsis;
	margin: 0;
	width: 100%;
	color: var(--iws-color-text-muted);
}

/* Figma 1554:541 — Route / Website / Delen pills (hug, gap 4 / icon gap 8). */
.iws-wijnhuis-kaart__info-actions {
	display: flex;
	align-items: center;
	gap: 4px;
	width: 100%;
	margin-top: 0;
	flex-wrap: nowrap;
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__info-action,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__info-action {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: auto;
	min-height: 0;
	margin: 0;
	padding: 8px 16px;
	border: 0;
	border-radius: 24px;
	background: var(--iws-color-action);
	color: var(--iws-color-action-on);
	font-family: Lato, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	box-sizing: border-box;
	box-shadow: none;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__info-action:focus-visible,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__info-action:focus-visible {
	opacity: 0.9;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__info-action:hover,
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__info-action:hover {
		opacity: 0.9;
	}
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__info-action:focus-visible,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__info-action:focus-visible {
	outline: 2px solid var(--iws-color-focus);
	outline-offset: 2px;
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__info-action--route {
	border-color: var(--iws-color-focus);
	background: var(--iws-color-focus);
	color: var(--iws-color-action-on);
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__info-action--route:focus-visible {
	background: var(--iws-color-focus-strong);
	border-color: var(--iws-color-focus-strong);
	color: var(--iws-color-action-on);
	opacity: 1;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__info-action--route:hover {
		background: var(--iws-color-focus-strong);
		border-color: var(--iws-color-focus-strong);
		color: var(--iws-color-action-on);
		opacity: 1;
	}
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__info-action--website,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__info-action--share {
	border: 0;
	background: var(--iws-color-action);
	color: var(--iws-color-action-on);
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__info-action--website:focus-visible,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__info-action--share:focus-visible {
	background: var(--iws-color-action-hover);
	color: var(--iws-color-action-on);
	opacity: 1;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__info-action--website:hover,
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__info-action--share:hover {
		background: var(--iws-color-action-hover);
		color: var(--iws-color-action-on);
		opacity: 1;
	}
}

.iws-wijnhuis-kaart__info-action .iws-wijnhuis-kaart__icon {
	display: block;
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
}

.iws-wijnhuis-kaart__empty {
	flex: 0 0 auto;
	margin: 0;
	padding: 16px 0;
	text-align: left;
	color: var(--iws-color-text-muted);
	font-size: 14px;
}

.iws-wijnhuis-kaart__empty[hidden] {
	display: none !important;
}

/* Uitweg onder een lege zoekuitkomst: lijkt op de "Tip ons"-link. */
.iws-wijnhuis-kaart__empty-action {
	display: block;
	margin: 8px 0 0;
	padding: 4px 0;
	border: 0;
	background: none;
	font: inherit;
	font-weight: 700;
	color: var(--iws-color-link);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.iws-wijnhuis-kaart__empty-action:focus-visible {
	outline: 2px solid var(--iws-color-focus);
	outline-offset: 2px;
}

/* Eerste tabstop van de pagina; pas zichtbaar met toetsenbordfocus. */
.iws-wijnhuis-kaart__skip {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 1000;
	padding: 10px 16px;
	border-radius: 8px;
	background: var(--iws-color-card);
	color: var(--iws-color-text, #111);
	font: 700 14px/1.2 Lato, system-ui, sans-serif;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
	transform: translateY(-200%);
}

.iws-wijnhuis-kaart__skip:focus {
	transform: none;
	outline: 2px solid var(--iws-color-focus, var(--iws-color-focus));
}

.iws-wijnhuis-kaart__panel-actions {
	flex: 0 0 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 16px;
	margin: 0;
	padding: 0;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__donate-open {
	flex: 1 1 0;
	min-height: 44px;
	min-width: 0;
	text-align: center;
}

.iws-wijnhuis-kaart__submit-modal,
.iws-wijnhuis-kaart__donate-modal {
	position: fixed;
	inset: 0;
	/* Boven de kaart, het paneel en de bladen. */
	z-index: 100050;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	padding-top: calc(16px + env(safe-area-inset-top, 0px));
	padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
	box-sizing: border-box;
}

.iws-wijnhuis-kaart__submit-modal[hidden],
.iws-wijnhuis-kaart__donate-modal[hidden] {
	display: none !important;
}

.iws-wijnhuis-kaart__submit-backdrop,
.iws-wijnhuis-kaart__donate-backdrop {
	position: absolute;
	inset: 0;
	border: 0;
	cursor: pointer;
}

.iws-wijnhuis-kaart__submit-backdrop:not([data-slot="dialog-overlay"]),
.iws-wijnhuis-kaart__donate-backdrop {
	background: rgba(17, 17, 17, 0.45);
}

.iws-wijnhuis-kaart__submit-dialog,
.iws-wijnhuis-kaart__donate-dialog {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	width: min(405px, 100%);
	height: auto;
	min-height: 0;
	/* --iws-wk-modal-vh is published by JS while a soft keyboard is up. */
	max-height: min(calc(var(--iws-wk-modal-vh, 100vh) - 48px), 700px);
	max-height: min(calc(var(--iws-wk-modal-vh, 100dvh) - 48px), 700px);
	margin: 0;
	box-sizing: border-box;
	overflow: hidden;
}

.iws-wijnhuis-kaart__submit-dialog:not([data-slot="dialog-content"]),
.iws-wijnhuis-kaart__donate-dialog {
	gap: 12px;
	padding: 16px;
	background: var(--iws-color-card);
	border-radius: 8px;
	box-shadow:
		0 3px 6px rgba(0, 0, 0, 0.05),
		0 10px 20px rgba(0, 0, 0, 0.1);
}

.iws-wijnhuis-kaart__submit-dialog {
	width: min(520px, 100%);
}

.iws-wijnhuis-kaart__submit-header,
.iws-wijnhuis-kaart__donate-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	flex: 0 0 auto;
	padding: 0;
}

.iws-wijnhuis-kaart__submit-title {
	margin: 0;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__submit-close[data-slot="button"],
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-close[data-slot="button"] {
	-webkit-appearance: none;
	appearance: none;
	border: 0;
	box-shadow: none;
	flex: 0 0 auto;
	background: transparent;
	color: var(--foreground, #111);
	cursor: pointer;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__submit-close[data-slot="button"]:focus-visible,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-close[data-slot="button"]:focus-visible {
	background: var(--secondary, var(--iws-color-neutral));
	color: var(--foreground, #111);
	opacity: 1;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__submit-close[data-slot="button"]:hover,
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-close[data-slot="button"]:hover {
		background: var(--secondary, var(--iws-color-neutral));
		color: var(--foreground, #111);
		opacity: 1;
	}
}

.iws-wijnhuis-kaart__submit-title:not([data-slot="dialog-title"]),
.iws-wijnhuis-kaart__donate-title {
	font-family: Lato, sans-serif;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--iws-color-text);
}

.iws-wijnhuis-kaart__submit-form {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	gap: 0;
	min-height: 0;
	overflow: hidden;
	padding: 0;
}

.iws-wijnhuis-kaart__submit-honeypot {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.iws-wijnhuis-kaart__submit-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 0;
	min-height: 0;
	padding-bottom: 0;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
}

.iws-wijnhuis-kaart__submit-field {
	margin: 0;
	padding-bottom: 16px;
}

.iws-wijnhuis-kaart__submit-field label {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 6px;
	padding: 0;
}

.iws-wijnhuis-kaart__submit-field label:not([data-slot="label"]) {
	font-family: Lato, sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 24px;
	color: var(--iws-color-text);
}

.iws-wijnhuis-kaart__submit-checkbox-label input[type="checkbox"]:not([data-slot="checkbox"]) {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: var(--iws-color-action, #7a1f2b);
}

.iws-wijnhuis-kaart__submit-checkbox-label input[data-slot="checkbox"] {
	flex: 0 0 auto;
	margin: 2px 0 0;
	accent-color: var(--primary, var(--iws-color-action));
	box-sizing: border-box;
	border: 0;
	box-shadow: none;
}

.iws-wijnhuis-kaart__submit-checkbox-label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	cursor: pointer;
}

.iws-wijnhuis-kaart__submit-checkbox-label:not([data-slot="label"]) {
	font-family: Lato, sans-serif;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.4;
	color: var(--iws-color-text);
}

.iws-wijnhuis-kaart__submit-newsletter {
	margin: 0;
}

.iws-wijnhuis-kaart__submit-privacy {
	margin: 0;
}

.iws-wijnhuis-kaart__submit-required {
	font-weight: 700;
}

/* Marges van de tipformulier-velden. */
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__submit-dialog input[type="text"]:not([data-slot="input"]),
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__submit-dialog input[type="email"]:not([data-slot="input"]),
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__submit-dialog textarea:not([data-slot="textarea"]),
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__submit-field input:not([type="checkbox"]):not([data-slot="input"]),
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__submit-field textarea:not([data-slot="textarea"]) {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	margin-top: 0;
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
	padding: 12px 16px;
	border: 1px solid #aaa;
	border-radius: 4px;
	background: var(--iws-color-card);
	box-shadow: none;
	color: var(--iws-color-text);
	font-family: Lato, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 24px;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__submit-dialog input[type="text"]:not([data-slot="input"]):focus,
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__submit-dialog input[type="email"]:not([data-slot="input"]):focus,
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__submit-dialog textarea:not([data-slot="textarea"]):focus,
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__submit-field input:not([type="checkbox"]):not([data-slot="input"]):focus,
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__submit-field textarea:not([data-slot="textarea"]):focus {
	outline: 2px solid var(--iws-color-focus);
	outline-offset: 1px;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__submit-dialog textarea:not([data-slot="textarea"]),
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__submit-field textarea:not([data-slot="textarea"]) {
	resize: vertical;
	min-height: 80px;
}

.iws-wijnhuis-kaart [data-slot="input"],
.iws-wijnhuis-kaart [data-slot="textarea"] {
	box-sizing: border-box;
	margin: 0;
}

/* One navy border on focus. shadcn ring-1 + border-input draws two
   concentric rounds; UA :focus outline stacks a third after auto-focus. */
.iws-wijnhuis-kaart [data-slot="input"]:focus,
.iws-wijnhuis-kaart [data-slot="input"]:focus-visible,
.iws-wijnhuis-kaart [data-slot="textarea"]:focus,
.iws-wijnhuis-kaart [data-slot="textarea"]:focus-visible {
	outline: none;
	box-shadow: none;
	border-color: var(--ring, var(--iws-color-focus, var(--iws-color-focus)));
}

.iws-wijnhuis-kaart [data-slot="checkbox"]:focus {
	outline: none;
	box-shadow: none;
}

.iws-wijnhuis-kaart [data-slot="checkbox"]:focus-visible {
	outline: 2px solid var(--ring, var(--iws-color-focus, var(--iws-color-focus)));
	outline-offset: 2px;
	box-shadow: none;
}

.iws-wijnhuis-kaart [data-slot="textarea"] {
	resize: vertical;
}

.iws-wijnhuis-kaart__submit-error,
.iws-wijnhuis-kaart__submit-success {
	margin: 0 0 12px;
}

.iws-wijnhuis-kaart__submit-error:not([data-slot="alert"]),
.iws-wijnhuis-kaart__submit-success:not([data-slot="alert"]) {
	padding: 10px 12px;
	border-radius: 4px;
	font-family: Lato, sans-serif;
	font-size: 14px;
	line-height: 1.4;
}

.iws-wijnhuis-kaart__submit-error:not([data-slot="alert"]) {
	background: #fdeaea;
	color: #8a1f1f;
}

.iws-wijnhuis-kaart__submit-success:not([data-slot="alert"]) {
	background: #eaf6ea;
	color: #1f5a1f;
}

.iws-wijnhuis-kaart__submit-error[hidden],
.iws-wijnhuis-kaart__submit-success[hidden],
.iws-wijnhuis-kaart__submit-body[hidden],
.iws-wijnhuis-kaart__submit-footer[hidden] {
	display: none !important;
}

.iws-wijnhuis-kaart__submit-success[data-slot="alert"] {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	margin: 0;
}

.iws-wijnhuis-kaart__submit-footer {
	display: flex;
	flex: 0 0 auto;
	align-items: stretch;
	justify-content: flex-end;
	margin: 0;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__submit-send:not([data-slot="button"]) {
	flex: 0 0 auto;
}

body.iws-wijnhuis-kaart-submit-open,
body.iws-wijnhuis-kaart-donate-open {
	overflow: hidden;
}

.iws-wijnhuis-kaart__donate-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 0;
	min-height: 0;
	padding-bottom: 16px;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	font-family: Lato, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--iws-color-text);
}

.iws-wijnhuis-kaart__donate-body p {
	margin: 0 0 1.5em;
}

.iws-wijnhuis-kaart__donate-body p:last-child {
	margin-bottom: 0;
}

.iws-wijnhuis-kaart__donate-footer {
	display: flex;
	flex: 0 0 auto;
	align-items: stretch;
	justify-content: flex-end;
	margin: 0;
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__donate-make {
	flex: 0 0 auto;
}

/* Mobile: map fills layout; panel is a bottom sheet over the map. */
.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__layout {
	min-height: 520px;
}

.iws-wijnhuis-kaart--js.iws-wijnhuis-kaart--fullscreen .iws-wijnhuis-kaart__layout {
	min-height: 0;
}

.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__map {
	flex: 1 1 auto;
	min-height: 280px;
	display: flex;
	flex-direction: column;
}

.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__canvas {
	flex: 1 1 auto;
	min-height: 280px;
	height: auto;
}

.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel {
	flex: 0 1 auto;
	max-height: 40vh;
}

/* Keep in sync with IWS_Wijnhuis_Kaart_Shortcode::MOBILE_MAX_WIDTH / localize mobileMaxWidth. */
@media (max-width: 899px) {
	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__layout {
		isolation: isolate;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__map {
		flex: 1 1 auto;
		min-height: 0;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__canvas {
		flex: 1 1 auto;
		min-height: 0;
		height: 100%;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel {
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 4;
		flex: none;
		width: 100%;
		max-height: none;
		height: var(--iws-wk-sheet-closed-total);
		gap: 8px;
		padding: 8px 16px calc(12px + env(safe-area-inset-bottom, 0px));
		border-radius: var(--iws-wk-sheet-radius) var(--iws-wk-sheet-radius) 0 0;
		background: var(--iws-color-card);
		box-shadow: var(--iws-wk-sheet-shadow);
		overflow: hidden;
		transition: height 0.22s ease;
		touch-action: none;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel[data-sheet="closed"] {
		height: var(--iws-wk-sheet-closed-total);
	}

	/* Tussenstand: de lijst half open, de kaart blijft erboven bruikbaar. */
	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel[data-sheet="half"] {
		height: calc(var(--iws-wk-sheet-half-ratio) * 100vh);
		height: calc(var(--iws-wk-sheet-half-ratio) * var(--iws-wk-vh));
		gap: 12px;
		padding: 8px 16px calc(16px + env(safe-area-inset-bottom, 0px));
		touch-action: auto;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel[data-sheet="expanded"] {
		height: calc(var(--iws-wk-sheet-expanded-ratio) * 100vh);
		height: calc(var(--iws-wk-sheet-expanded-ratio) * var(--iws-wk-vh));
		gap: 12px;
		padding: 8px 16px calc(16px + env(safe-area-inset-bottom, 0px));
		touch-action: auto;
	}

	/* Search + filter float on the map (Figma 1954:1692 / 1963:2237).
	   Right inset leaves a 44px column for MapLibre zoom in/out. */
	.iws-wijnhuis-kaart__map-chrome {
		display: block;
		position: absolute;
		left: 16px;
		right: calc(8px + 44px + 8px);
		top: calc(40px + env(safe-area-inset-top, 0px));
		z-index: 2;
		pointer-events: none;
	}

	.iws-wijnhuis-kaart__panel .iws-wijnhuis-kaart__toolbar {
		display: none;
	}

	.iws-wijnhuis-kaart__map-chrome .iws-wijnhuis-kaart__toolbar {
		display: flex;
		flex-wrap: nowrap;
		align-items: center;
		gap: 8px;
		width: 100%;
		height: 40px;
		pointer-events: auto;
	}

	.iws-wijnhuis-kaart__map-chrome .iws-wijnhuis-kaart__search {
		box-sizing: border-box;
		flex: 1 1 auto;
		align-items: center;
		height: 40px;
		min-height: 40px;
		max-height: 40px;
		padding: 8px 16px;
		border: 1px solid var(--iws-color-border);
		border-radius: 8px;
		background: var(--iws-color-card);
		gap: 8px;
		overflow: hidden;
	}

	.iws-wijnhuis-kaart__map-chrome .iws-wijnhuis-kaart__search-icon {
		position: static;
		left: auto;
		top: auto;
		transform: none;
		width: 16px;
		height: 16px;
		flex: 0 0 16px;
		color: var(--iws-color-text);
	}

	.iws-wijnhuis-kaart__map-chrome .iws-wijnhuis-kaart__search-icon .iws-wijnhuis-kaart__icon {
		width: 16px;
		height: 16px;
		object-fit: contain;
	}

	.iws-wijnhuis-kaart__map-chrome input.iws-wijnhuis-kaart__search-input {
		flex: 1 1 auto;
		min-width: 0;
		width: auto;
		padding: 0;
		min-height: 0;
		height: 24px;
		border: 0;
		border-radius: 0;
		background: transparent;
		font-size: 16px;
		line-height: 24px;
		color: var(--iws-color-text-muted);
	}

	.iws-wijnhuis-kaart__map-chrome input.iws-wijnhuis-kaart__search-input:focus,
	.iws-wijnhuis-kaart__map-chrome input.iws-wijnhuis-kaart__search-input:focus-visible {
		border: 0;
		outline: none;
		box-shadow: none;
		background: transparent;
	}

	@media (hover: hover) {
		.iws-wijnhuis-kaart__map-chrome input.iws-wijnhuis-kaart__search-input:hover {
			border: 0;
			outline: none;
			box-shadow: none;
			background: transparent;
		}
	}

	.iws-wijnhuis-kaart__map-chrome .iws-wijnhuis-kaart__search:focus-within {
		outline: 2px solid var(--iws-color-action);
		outline-offset: 1px;
	}

	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__wijnstreek-toggle,
	.iws-wijnhuis-kaart__map-chrome button.iws-wijnhuis-kaart__wijnstreek-toggle {
		flex: 0 0 40px;
		width: 40px;
		min-width: 40px;
		height: 40px;
		min-height: 40px;
		padding: 0;
	}

	.iws-wijnhuis-kaart__map-chrome button.iws-wijnhuis-kaart__wijnstreek-toggle .iws-wijnhuis-kaart__icon {
		display: block;
		width: 16px;
		height: 16px;
		flex-shrink: 0;
	}

	.iws-wijnhuis-kaart--js.iws-wijnhuis-kaart--sheet-dragging .iws-wijnhuis-kaart__panel {
		transition: none;
	}

	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__sheet-handle {
		display: flex;
		margin-top: 0;
		padding: 10px 0;
		touch-action: none;
	}

	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__sheet-close {
		display: inline-flex;
	}

	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__sheet-close {
		top: 32px;
		right: 16px;
		width: 24px;
		height: 24px;
		min-width: 24px;
		min-height: 24px;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel-header {
		touch-action: none;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel-heading {
		justify-content: flex-start;
		padding-right: 40px;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__list-title {
		font-family: 'Playfair Display', serif;
		font-size: 22px;
		color: var(--iws-color-text);
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__list-count {
		display: none;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__list {
		gap: 24px;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__list-item:not(:last-child)::after {
		bottom: -12.5px;
	}

	/* Logo is desktop chrome (Figma 2057:1277); keep the 90px peek to title only. */
	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__logo {
		display: none;
	}

	/* Closed peek: chrome only — place detail sheet shows the selected wijnhuis. */
	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel[data-sheet="closed"] .iws-wijnhuis-kaart__list,
	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel[data-sheet="closed"] .iws-wijnhuis-kaart__empty,
	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel[data-sheet="closed"] .iws-wijnhuis-kaart__status,
	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel[data-sheet="closed"] .iws-wijnhuis-kaart__list-count,
	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel[data-sheet="closed"] .iws-wijnhuis-kaart__panel-actions {
		display: none;
	}

	/* List panel stays under the place-detail sheet while a wijnhuis is selected. */
	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel[data-detail-cover="true"] {
		visibility: hidden;
		pointer-events: none;
	}

	/* Place-detail bottom sheet (mobile only) — Figma 1804:3261 / 1804:3311. */
	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__detail {
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 5;
		display: flex;
		flex-direction: column;
		/* Handle carries its own 10px padding for a 24px tap target; the 6px/2px
		   split keeps the bar at 16px and the body at 32px, as in Figma. */
		gap: 2px;
		width: 100%;
		max-height: none;
		height: calc(var(--iws-wk-detail-peek-ratio) * 100vh);
		height: calc(var(--iws-wk-detail-peek-ratio) * var(--iws-wk-vh));
		padding: 6px 16px calc(16px + env(safe-area-inset-bottom, 0px));
		border-radius: var(--iws-wk-sheet-radius) var(--iws-wk-sheet-radius) 0 0;
		background: var(--iws-color-card);
		box-shadow: var(--iws-wk-sheet-shadow);
		box-sizing: border-box;
		overflow: hidden;
		transition: height 0.22s ease;
		touch-action: none;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__detail[hidden] {
		display: none !important;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__detail[data-detail="peek"] {
		height: calc(var(--iws-wk-detail-peek-ratio) * 100vh);
		height: calc(var(--iws-wk-detail-peek-ratio) * var(--iws-wk-vh));
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__detail[data-detail="expanded"] {
		height: calc(var(--iws-wk-detail-expanded-ratio) * 100vh);
		height: calc(var(--iws-wk-detail-expanded-ratio) * var(--iws-wk-vh));
		touch-action: auto;
	}

	.iws-wijnhuis-kaart--js.iws-wijnhuis-kaart--detail-dragging .iws-wijnhuis-kaart__detail {
		transition: none;
	}

	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__detail-handle {
		display: flex;
		flex: 0 0 auto;
		align-items: center;
		justify-content: center;
		width: 100%;
		margin: 0;
		/* 4px bar + 10px/10px = 24px target (WCAG 2.5.8); it is the primary
		   expand/collapse/dismiss control of the sheet. */
		padding: 10px 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		cursor: pointer;
		-webkit-appearance: none;
		appearance: none;
		touch-action: none;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__detail-handle .iws-wijnhuis-kaart__sheet-handle-bar {
		background: var(--iws-wk-sheet-handle);
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__detail-body {
		flex: 1 1 auto;
		min-height: 0;
		overflow-x: hidden;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__detail[data-detail="expanded"] .iws-wijnhuis-kaart__detail-body {
		overflow-y: auto;
	}

	@media (hover: hover) {
	}

	@media (hover: hover) {
	}

	/* Desktop tooltip must not appear on mobile (detail sheet owns selection). */
	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__popup-shell {
		display: none;
	}

	/* Mobile filter control: icon only; size comes from map-chrome (48×40). */
	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__wijnstreek-toggle .iws-wijnhuis-kaart__wijnstreek-toggle-label {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__info-header {
		gap: 12px;
	}

	/* Zoom in/out sit in the column left free by map-chrome, aligned with search. */
	.iws-wijnhuis-kaart--js .maplibregl-ctrl-top-right {
		top: calc(40px + env(safe-area-inset-top, 0px));
		right: 8px;
		margin: 0;
	}

	/* MapLibre's own 10px float margin sits inside that container, so the
	   buttons landed 10px left and 10px low: overlapping the filter knop and
	   out of line with the search field. Zero it and the reserved 44px column
	   holds. */
	.iws-wijnhuis-kaart--js .maplibregl-ctrl-top-right .maplibregl-ctrl {
		margin: 0;
	}

	/* FABs stay on the closed peek and go under an open panel. */
	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__near-me {
		bottom: calc(var(--iws-wk-sheet-closed-total) + 12px);
	}

	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__reset-view {
		bottom: calc(var(--iws-wk-sheet-closed-total) + 12px + 48px + 8px);
	}

	.iws-wijnhuis-kaart--js .maplibregl-ctrl-group button {
		width: 48px;
		height: 48px;
	}

	/*
	 * Modals go fullscreen here: at 360px even a full-width card left the tip
	 * form too little room once a keyboard was up, and the remaining gutter
	 * bought nothing. Still not a bottom sheet — that pattern (drag handle,
	 * snap states) stays with the list and detail panels, so there is one
	 * sheet model on screen and the focus trap never competes with a drag.
	 *
	 * Height comes from --iws-wk-modal-vh, the same var bindKeyboardInset()
	 * publishes: unset it falls back to 100dvh, and while a keyboard overlays
	 * the page the JS sets height/top inline so the dialog follows.
	 * `inset: 0` on the base rule leaves top/bottom/height over-constrained,
	 * which drops `bottom` and lets the height win — what we want here.
	 */
	.iws-wijnhuis-kaart__filter-modal,
	.iws-wijnhuis-kaart__submit-modal,
	.iws-wijnhuis-kaart__donate-modal {
		align-items: stretch;
		padding: 0;
		height: var(--iws-wk-modal-vh, 100vh);
		height: var(--iws-wk-modal-vh, 100dvh);
	}

	/*
	 * The safe-area moves from the overlay to the dialog: the overlay has no
	 * padding left to carry it, and without this the title lands under the
	 * notch and the send button under the home indicator. All four sides —
	 * a phone in landscape insets left and right too.
	 */
	.iws-wijnhuis-kaart__filter-dialog,
	.iws-wijnhuis-kaart__submit-dialog,
	.iws-wijnhuis-kaart__donate-dialog {
		width: 100%;
		max-height: none;
		padding-top: calc(16px + env(safe-area-inset-top, 0px));
		padding-right: calc(16px + env(safe-area-inset-right, 0px));
		padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
		padding-left: calc(16px + env(safe-area-inset-left, 0px));
		border-radius: 0;
		box-shadow: none;
	}

	.iws-wijnhuis-kaart__filter-footer {
		flex-wrap: wrap;
		gap: 16px;
	}

	.iws-wijnhuis-kaart__filter-footer-actions {
		flex: 1 1 100%;
		width: 100%;
		margin-left: 0;
	}

	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-clear,
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__filter-apply {
		flex: 1 1 0;
	}
}

@media (min-width: 900px) {
	/*
	 * Desktop is a single full-bleed map with the list as a left overlay
	 * (Figma 2057:1277). Use a 1×1 grid so map + panel share one cell —
	 * a column flex left a free track under the map where a tip CTA /
	 * panel-actions sibling could paint a beige ~40vh sheet.
	 */
	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__layout {
		display: grid;
		grid-template: minmax(0, 1fr) / minmax(0, 1fr);
		flex-direction: unset;
		min-height: 600px;
		align-items: stretch;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__map {
		grid-area: 1 / 1;
		position: relative;
		flex: unset;
		align-self: stretch;
		justify-self: stretch;
		min-width: 0;
		min-height: 600px;
		width: 100%;
		height: 100%;
		display: flex;
		flex-direction: column;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__canvas {
		flex: 1 1 auto;
		min-width: 0;
		min-height: 0;
		height: 100%;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel {
		grid-area: 1 / 1;
		position: absolute;
		top: var(--iws-wk-panel-inset);
		left: var(--iws-wk-panel-inset);
		bottom: var(--iws-wk-panel-inset);
		right: auto;
		z-index: 4;
		flex: none;
		align-self: stretch;
		justify-self: start;
		width: var(--iws-wk-panel-width);
		min-width: 360px;
		max-height: none;
		/* Beat leftover inline height from the mobile bottom-sheet drag engine. */
		/* Inline height van de sleep-engine (mobiel) mag het desktoppaneel nooit raken. */
		height: auto !important;
		min-height: 0;
		gap: 16px;
		padding: 24px 24px 0;
		border-radius: 12px;
		background: var(--iws-color-card);
		box-shadow: var(--iws-wk-panel-shadow);
		overflow: hidden;
	}

	/*
	 * Tip CTA on desktop is the map FAB (Figma 2063:1357), not a panel footer
	 * or a full-width sheet under the map (Laravel may still inject panel-actions).
	 */
	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel-actions,
	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__layout > .iws-wijnhuis-kaart__panel-actions {
		display: none;
	}

	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__near-me,
	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__reset-view {
		left: var(--iws-wk-fab-left);
		right: auto;
	}

	/*
	 * FAB column (Figma 2068:1714): bottom-aligned stack, 8px gap, top→bottom
	 * zoom reset, near-me, tip pill (167px wide).
	 */
	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__reset-view {
		bottom: calc(var(--iws-wk-panel-inset) + 48px + 8px + 48px + 8px);
	}

	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__near-me {
		bottom: calc(var(--iws-wk-panel-inset) + 48px + 8px);
	}

	.iws-wijnhuis-kaart--js .maplibregl-ctrl-top-right {
		display: none;
	}

	.iws-wijnhuis-kaart--fullscreen {
		background: var(--iws-color-card);
	}

	.iws-wijnhuis-kaart--js input.iws-wijnhuis-kaart__search-input {
		min-height: 0;
		padding: 10px 12px 10px 32px;
		font-size: 14px;
		line-height: normal;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__search-icon .iws-wijnhuis-kaart__icon {
		width: 12px;
		height: 12px;
	}

	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__wijnstreek-toggle:not([data-slot="button"]) {
		min-height: 0;
		height: auto;
		font-size: 14px;
		line-height: normal;
	}

	/* Toolbar row: let the button stretch to the search field instead of h-9. */
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-toggle[data-slot="button"] {
		height: auto;
		align-self: stretch;
	}

	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__wijnstreek-toggle:not([data-slot="button"]) .iws-wijnhuis-kaart__icon {
		display: none;
	}

	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__sheet-handle,
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__sheet-close {
		display: none;
	}

	/* Desktop filter modal: centered dialog over dimmed backdrop. */
	.iws-wijnhuis-kaart__filter-modal {
		align-items: center;
		justify-content: center;
		padding: 24px;
	}

	/* Width and max-height come from the base rule; only the mobile block overrides. */

	.iws-wijnhuis-kaart__filter-dialog {
		width: min(520px, 100%);
	}

	.iws-wijnhuis-kaart__filter-footer {
		justify-content: space-between;
	}

	.iws-wijnhuis-kaart__filter-footer-actions {
		flex: 0 0 auto;
	}

	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__wijnstreek-clear:not([data-slot="button"]),
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__filter-apply:not([data-slot="button"]) {
		flex: 0 0 auto;
	}

	/* Desktop submission / donate modals: same centered card as Figma. */
	.iws-wijnhuis-kaart__submit-modal,
	.iws-wijnhuis-kaart__donate-modal {
		align-items: center;
		justify-content: center;
		padding: 24px;
	}

	/* Width and max-height come from the base rule; only the mobile block overrides. */

	.iws-wijnhuis-kaart__submit-footer,
	.iws-wijnhuis-kaart__donate-footer {
		justify-content: flex-end;
	}

	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__submit-send:not([data-slot="button"]),
	.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__donate-make {
		flex: 0 0 auto;
	}
}

/* Fullscreen (Google Maps-style): fill the viewport under the site header. */
body.iws-wijnhuis-kaart-fullscreen {
	overflow: hidden;
}

.iws-wijnhuis-kaart--fullscreen {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 50;
	width: auto;
	/* Expliciete hoogte in plaats van `bottom: 0` + min-height: iOS Safari/PWA houdt
	   `bottom: 0` op de kleine viewport, en `height: 100%` van de layout binnenin
	   lost dan tegen die kleinere hoogte op, waardoor de sheet-inhoud wordt
	   afgekapt (issue #53). */
	height: 100vh;
	height: var(--iws-wk-vh);
	background: var(--iws-color-surface);
}

/*
 * Host voor de modals: util.portalModals() verhuist ze van de kaartroot hierheen,
 * zodat hun z-index niet beperkt blijft tot een omringende stacking context. Het
 * element draagt de rootklasse (custom properties en `.iws-wijnhuis-kaart …`-regels)
 * en blijft onzichtbaar in de layout; de modals erin zijn fixed.
 */
.iws-wijnhuis-kaart__portal {
	position: static;
	height: 0;
}

.iws-wijnhuis-kaart--fullscreen.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__layout {
	height: 100%;
	min-height: 0;
}

.iws-wijnhuis-kaart--fullscreen.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__map,
.iws-wijnhuis-kaart--fullscreen.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__canvas {
	min-height: 0;
	height: auto;
}

@media (min-width: 900px) {
	.iws-wijnhuis-kaart--fullscreen.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__layout {
		min-height: 0;
		height: 100%;
	}

	.iws-wijnhuis-kaart--fullscreen.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__map,
	.iws-wijnhuis-kaart--fullscreen.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__canvas {
		min-height: 0;
		height: 100%;
	}

	.iws-wijnhuis-kaart--fullscreen.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel {
		/* Inline height van de sleep-engine (mobiel) mag het desktoppaneel nooit raken. */
		height: auto !important;
		max-height: none;
		min-height: 0;
		overflow: hidden;
	}
}

/* MapLibre zet de positie van markers steeds via inline transform. Een
   transition op de marker zelf laat pins achter de kaart aan sleuren bij het
   pannen; de hover-schaal zit daarom op __pin-drop / __cluster-face. */
.iws-wijnhuis-kaart .maplibregl-marker,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__pin,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__cluster {
	transition: none;
}

/* Map Marker — druppel zoals Google Maps: bordeaux, wit wijnglas, punt op de
   coördinaat. Hover/actief: iets groter en dieper rood. Naam naast de pin vanaf
   zoom 9 (class --pin-labels op de root), de actieve pin toont hem altijd. */
/* Geen position hier: MapLibre zet .maplibregl-marker op absolute, en dat is
   ook de bovenliggende box van het naamlabel. */
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__pin {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	box-sizing: border-box;
	width: 36px;
	height: 44px;
	min-width: 36px;
	min-height: 44px;
	margin: 0;
	padding: 0 0 2px;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--iws-color-pin);
	cursor: pointer;
	font-family: Lato, sans-serif;
	line-height: 1;
	overflow: visible;
	-webkit-appearance: none;
	appearance: none;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__pin-drop {
	display: block;
	flex: 0 0 auto;
	filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.3));
	transform-origin: 50% 100%;
	transition: transform 0.15s ease;
	pointer-events: none;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__pin:focus-visible,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__pin--active {
	color: var(--iws-color-pin-active);
	z-index: 2;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__pin:hover {
		color: var(--iws-color-pin-active);
		z-index: 2;
	}
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__pin:focus-visible .iws-wijnhuis-kaart__pin-drop,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__pin--active .iws-wijnhuis-kaart__pin-drop {
	transform: scale(1.2);
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__pin:hover .iws-wijnhuis-kaart__pin-drop {
		transform: scale(1.2);
	}
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__pin:focus-visible {
	outline: 2px solid var(--iws-color-action);
	outline-offset: 2px;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__pin-label {
	position: absolute;
	left: calc(50% + 17px);
	top: 12px;
	display: none;
	max-width: 160px;
	overflow: hidden;
	color: #26231d;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	text-align: left;
	text-overflow: ellipsis;
	white-space: nowrap;
	text-shadow:
		-1px -1px 0 var(--iws-color-surface), 1px -1px 0 var(--iws-color-surface), -1px 1px 0 var(--iws-color-surface), 1px 1px 0 var(--iws-color-surface),
		0 0 4px var(--iws-color-surface);
	pointer-events: none;
}

.iws-wijnhuis-kaart--pin-labels .iws-wijnhuis-kaart__pin-label,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__pin--active .iws-wijnhuis-kaart__pin-label {
	display: block;
}

/* Clusters — same footprint language as Map Marker, numbered */
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__cluster {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 44px;
	height: 44px;
	margin: 0;
	padding: 0 10px;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--iws-color-text);
	font-family: Lato, sans-serif;
	line-height: 1;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	overflow: visible;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__cluster-face {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 24px;
	height: 24px;
	padding: 0 6px;
	border: 2px solid var(--iws-color-card);
	border-radius: 24px;
	background: var(--iws-color-pin);
	color: var(--iws-color-action-on);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	transition: background 0.15s ease, transform 0.15s ease;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__cluster:focus-visible .iws-wijnhuis-kaart__cluster-face,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__cluster:active .iws-wijnhuis-kaart__cluster-face {
	background: var(--iws-color-pin-active);
	transform: scale(1.1667);
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__cluster:hover .iws-wijnhuis-kaart__cluster-face {
		background: var(--iws-color-pin-active);
		transform: scale(1.1667);
	}
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__cluster:focus-visible {
	outline: 2px solid var(--iws-color-action);
	outline-offset: 2px;
}

.iws-wijnhuis-kaart__user-dot {
	width: 16px;
	height: 16px;
	border: 3px solid var(--iws-color-card);
	border-radius: 50%;
	background: var(--iws-color-action);
	box-shadow: 0 0 0 2px rgba(46, 96, 146, 0.35), 0 2px 6px rgba(0, 0, 0, 0.25);
}

/* Wijnhuis Tooltip (Figma 1905:1525) — 333px, 16px padding, info gap 12px. */
.iws-wijnhuis-kaart__popup-shell .maplibregl-popup-content {
	position: relative;
	width: 333px;
	max-width: 333px;
	padding: 0;
	border-radius: 4px;
	overflow: hidden;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08), 0 3px 6px rgba(0, 0, 0, 0.1);
	font-family: Lato, sans-serif;
	box-sizing: border-box;
}

/* No MapLibre tip/tooth — card sits flush below the pin. */
.iws-wijnhuis-kaart__popup-shell .maplibregl-popup-tip {
	display: none;
}

/* Custom close replaces MapLibre’s default × (closeButton: false). */
.iws-wijnhuis-kaart__popup-shell .maplibregl-popup-close-button {
	display: none;
}

.iws-wijnhuis-kaart__popup {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 16px;
	background: var(--iws-color-card);
	color: var(--iws-color-text);
	width: 100%;
	max-width: none;
	box-sizing: border-box;
}

.iws-wijnhuis-kaart__popup .iws-wijnhuis-kaart__info {
	padding: 0;
	box-sizing: border-box;
}

.iws-wijnhuis-kaart__popup .iws-wijnhuis-kaart__info-image {
	border-radius: 2px;
}

.iws-wijnhuis-kaart__popup .iws-wijnhuis-kaart__info-wijnstreek {
	padding-bottom: 0;
}

/* Close — Figma 1807:688: 32×32 var(--iws-color-neutral), inset with 16px tooltip padding. */
.iws-wijnhuis-kaart__popup-shell button.iws-wijnhuis-kaart__popup-close {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 32px;
	height: 32px;
	min-width: 32px;
	min-height: 32px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 80px;
	background: var(--iws-color-neutral);
	background-image: none;
	box-shadow: none;
	color: var(--iws-color-text);
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transform: none;
	transition: none;
}

.iws-wijnhuis-kaart__popup-shell button.iws-wijnhuis-kaart__popup-close:focus {
	background: var(--iws-color-neutral);
	color: var(--iws-color-text);
	box-shadow: none;
	transform: none;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart__popup-shell button.iws-wijnhuis-kaart__popup-close:hover {
		background: var(--iws-color-neutral);
		color: var(--iws-color-text);
		box-shadow: none;
		transform: none;
	}
}

.iws-wijnhuis-kaart__popup-shell button.iws-wijnhuis-kaart__popup-close:focus-visible {
	outline: 2px solid var(--iws-color-focus);
	outline-offset: 2px;
}

.iws-wijnhuis-kaart__popup-close .iws-wijnhuis-kaart__popup-close-icon {
	display: block;
	width: 12.8px;
	height: 12.8px;
	flex: 0 0 12.8px;
}

.iws-wijnhuis-kaart__popup .iws-wijnhuis-kaart__eigenschap-label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Lijstkaarten als Maps-resultaten: één klikvlak met naam, "streek · eigenschappen",
   één regel tip en optioneel een thumbnail; Route als icoonknop (44×44) rechts. */
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__list,
.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__list {
	gap: 0;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__list-item {
	display: flex;
	align-items: center;
	gap: 4px;
	padding: 10px 4px 10px 12px;
	border-radius: 8px;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart .iws-wijnhuis-kaart__list-item:hover {
		background: #f7f5ee;
	}
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__list-item:not(:last-child)::after,
.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__list-item:not(:last-child)::after {
	left: 12px;
	right: 12px;
	bottom: 0;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__list-card {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	width: 100%;
}

.iws-wijnhuis-kaart__list-card-text {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.iws-wijnhuis-kaart__list-card-meta {
	font-size: 14px;
	line-height: 1.35;
	color: var(--iws-color-text-subtle);
}

.iws-wijnhuis-kaart__list-card-distance {
	font-weight: 700;
	color: var(--iws-color-focus);
}

.iws-wijnhuis-kaart__list-card-meta .iws-wijnhuis-kaart__list-card-distance:not([hidden])::after {
	content: '\00b7';
	margin: 0 0.4em;
	font-weight: 400;
	color: var(--iws-color-text-subtle);
}

.iws-wijnhuis-kaart__list-card-distance[hidden] {
	display: none;
}

.iws-wijnhuis-kaart__list-card-tip {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
	line-clamp: 1;
	font-size: 14px;
	line-height: 1.45;
	color: var(--iws-color-text-muted);
}

.iws-wijnhuis-kaart img.iws-wijnhuis-kaart__list-card-thumb {
	flex: 0 0 56px;
	width: 56px;
	height: 56px;
	border-radius: 8px;
	object-fit: cover;
	background: var(--iws-color-border);
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__list-route {
	position: relative;
	display: inline-flex;
	flex: 0 0 44px;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--iws-color-action);
	text-decoration: none;
}

/* Alleen het icoon is zichtbaar; de naam blijft via aria-label bereikbaar. */
.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__list-route span {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__list-route:hover {
		background: var(--iws-color-tint);
	}
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__list-route:active {
	background: var(--iws-color-tint);
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__list-route:focus-visible {
	outline: 2px solid var(--iws-color-focus);
	outline-offset: -2px;
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__list-route svg {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	fill: currentColor;
}

/* Bedieningselementen op Maps-posities: rechtsonder staan locatie, zoom en
   "kaart resetten" in één kolom. De tipknop is geen zwevende pil meer maar een
   regel onderaan de lijst ("Mis je een wijnhuis? Tip ons"). */
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__tip-link {
	display: flex;
	flex: 0 0 auto;
	align-items: baseline;
	justify-content: center;
	gap: 6px;
	box-sizing: border-box;
	width: 100%;
	min-height: 44px;
	margin: 0;
	padding: 10px 12px;
	border: 0;
	border-top: 1px solid var(--iws-color-divider);
	border-radius: 0;
	background: transparent;
	color: var(--iws-color-text-subtle);
	font-family: Lato, sans-serif;
	font-size: 14px;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__tip-link strong {
	color: var(--iws-color-action);
	font-weight: 700;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__tip-link:hover strong {
		text-decoration: underline;
	}
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__tip-link:focus-visible {
	outline: 2px solid var(--iws-color-focus);
	outline-offset: -2px;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__tip-link[hidden] {
	display: none;
}

@media (max-width: 899px) {
	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel[data-sheet="closed"] .iws-wijnhuis-kaart__tip-link {
		display: none;
	}

	/* Zoek en chips mogen nu de volle breedte: de zoomkolom staat rechtsonder. */
	.iws-wijnhuis-kaart__map-chrome {
		right: 16px;
	}

	.iws-wijnhuis-kaart--js .maplibregl-ctrl-top-right {
		top: auto;
		right: 12px;
		bottom: calc(var(--iws-wk-sheet-closed-total) + 12px + 48px + 8px);
	}

	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__reset-view {
		bottom: calc(var(--iws-wk-sheet-closed-total) + 12px + 48px + 8px + 96px + 8px);
	}
}

@media (min-width: 900px) {
	.iws-wijnhuis-kaart--js .maplibregl-ctrl-top-right {
		display: block;
		top: auto;
		right: 16px;
		bottom: calc(32px + 48px + 8px);
		margin: 0;
	}

	.iws-wijnhuis-kaart--js .maplibregl-ctrl-top-right .maplibregl-ctrl {
		margin: 0;
	}

	.iws-wijnhuis-kaart--js .maplibregl-ctrl-group button {
		width: 48px;
		height: 48px;
	}

	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__near-me,
	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__reset-view {
		left: auto;
		right: 16px;
	}

	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__near-me {
		bottom: 32px;
	}

	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__reset-view {
		bottom: calc(32px + 48px + 8px + 96px + 8px);
	}
}

@media (max-width: 899px) {
	/* Het aantal "in beeld" staat in elke stand van het paneel, ook ingeklapt. */
	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__panel-heading {
		align-items: baseline;
		gap: 12px;
	}

	.iws-wijnhuis-kaart--js .iws-wijnhuis-kaart__list-count:not([hidden]) {
		display: block !important;
		color: var(--iws-color-text-subtle);
	}

	/* Halve stand: de bedieningskolom schuift mee omhoog, boven het paneel. */
	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__near-me,
	.iws-wijnhuis-kaart--js button.iws-wijnhuis-kaart__reset-view,
	.iws-wijnhuis-kaart--js .maplibregl-ctrl-top-right {
		transition: bottom 0.22s ease;
	}

	.iws-wijnhuis-kaart[data-sheet="half"] button.iws-wijnhuis-kaart__near-me {
		bottom: calc(var(--iws-wk-sheet-half-ratio) * 100vh + 12px);
		bottom: calc(var(--iws-wk-sheet-half-ratio) * var(--iws-wk-vh) + 12px);
	}

	.iws-wijnhuis-kaart[data-sheet="half"] .maplibregl-ctrl-top-right {
		bottom: calc(var(--iws-wk-sheet-half-ratio) * 100vh + 12px + 48px + 8px);
		bottom: calc(var(--iws-wk-sheet-half-ratio) * var(--iws-wk-vh) + 12px + 48px + 8px);
	}

	.iws-wijnhuis-kaart[data-sheet="half"] button.iws-wijnhuis-kaart__reset-view {
		bottom: calc(var(--iws-wk-sheet-half-ratio) * 100vh + 12px + 48px + 8px + 96px + 8px);
		bottom: calc(var(--iws-wk-sheet-half-ratio) * var(--iws-wk-vh) + 12px + 48px + 8px + 96px + 8px);
	}
}

/* Snelfilters (chips onder de zoekbalk) en de plaatsweergave in het zijpaneel.
   Patroon: Google Maps. Chips = één tik filteren; plaats = detail in het paneel
   met pijl terug. */
.iws-wijnhuis-kaart__chips {
	display: flex;
	flex: 0 0 auto;
	gap: 8px;
	overflow-x: auto;
	padding: 2px 0 4px;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.iws-wijnhuis-kaart__chips::-webkit-scrollbar {
	display: none;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__chips[hidden] {
	display: none;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__chip {
	flex: 0 0 auto;
	box-sizing: border-box;
	min-height: 36px;
	margin: 0;
	padding: 6px 14px;
	border: 1px solid var(--iws-color-border);
	border-radius: 999px;
	background: var(--iws-color-card);
	color: var(--iws-color-text);
	font-family: Lato, sans-serif;
	font-size: 14px;
	line-height: 1.2;
	white-space: nowrap;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__chip:hover {
		border-color: var(--iws-color-action);
		color: var(--iws-color-action);
	}
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__chip[aria-pressed="true"] {
	border-color: var(--iws-color-action);
	background: var(--iws-color-tint);
	color: var(--iws-color-focus);
	font-weight: 700;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__chip:focus-visible {
	outline: 2px solid var(--iws-color-focus);
	outline-offset: 2px;
}

.iws-wijnhuis-kaart__place {
	display: none;
}

@media (max-width: 899px) {
	/* De filterknop is hier alleen een icoon van 48px: de teller hoort als
	   bolletje op de hoek en niet ernaast. */
	.iws-wijnhuis-kaart__map-chrome .iws-wijnhuis-kaart__wijnstreek-toggle {
		position: relative;
	}

	.iws-wijnhuis-kaart__map-chrome .iws-wijnhuis-kaart__wijnstreek-badge:not([hidden]) {
		position: absolute;
		top: -6px;
		right: -6px;
		min-width: 18px;
		height: 18px;
		padding: 0 5px;
		font-size: 11px;
		line-height: 18px;
	}

	/* Zwevend op de kaart, onder de zoekbalk; rechts blijft de zoomkolom vrij. */
	.iws-wijnhuis-kaart__map-chrome .iws-wijnhuis-kaart__chips {
		margin-top: 8px;
		pointer-events: auto;
	}

	.iws-wijnhuis-kaart__map-chrome button.iws-wijnhuis-kaart__chip {
		box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
	}
}

@media (min-width: 900px) {
	/* Laat de chips tot de rand van het paneel doorlopen. */
	.iws-wijnhuis-kaart__panel-header .iws-wijnhuis-kaart__chips {
		margin: 12px -24px 0;
		padding: 2px 24px 4px;
	}

	.iws-wijnhuis-kaart__panel[data-view="place"] .iws-wijnhuis-kaart__panel-body,
	.iws-wijnhuis-kaart__panel[data-view="place"] .iws-wijnhuis-kaart__panel-heading,
	.iws-wijnhuis-kaart__panel[data-view="place"] .iws-wijnhuis-kaart__chips {
		display: none;
	}

	.iws-wijnhuis-kaart .iws-wijnhuis-kaart__place:not([hidden]) {
		display: flex;
		flex: 1 1 auto;
		flex-direction: column;
		gap: 16px;
		min-height: 0;
		overflow-y: auto;
		overscroll-behavior: contain;
	}

	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__place-back {
		display: inline-flex;
		align-self: flex-start;
		align-items: center;
		gap: 8px;
		min-height: 36px;
		margin: 0;
		padding: 6px 14px 6px 10px;
		border: 0;
		border-radius: 999px;
		background: transparent;
		color: var(--iws-color-action);
		font-family: Lato, sans-serif;
		font-size: 14px;
		cursor: pointer;
	}

	@media (hover: hover) {
		.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__place-back:hover {
			background: var(--iws-color-tint);
		}
	}

	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__place-back:focus-visible {
		outline: 2px solid var(--iws-color-focus);
		outline-offset: 2px;
	}

	@media (hover: hover) {
	}

	@media (hover: hover) {
	}

}

/* Eigenschappen als chips met tekst (plaatsweergave en mobiele detailsheet):
   de naam is altijd zichtbaar, een geüpload icoon staat er klein voor. */
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-props {
	display: flex;
	flex-flow: row wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-prop {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	box-sizing: border-box;
	min-height: 32px;
	padding: 4px 12px;
	border: 1px solid var(--iws-color-border);
	border-radius: 999px;
	background: var(--iws-color-card);
	font-size: 14px;
	line-height: 1.2;
	color: var(--iws-color-text);
}

.iws-wijnhuis-kaart img.iws-wijnhuis-kaart__detail-prop-icon {
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	max-width: 18px;
	max-height: 18px;
	object-fit: contain;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-prop-label {
	font-size: 14px;
	color: var(--iws-color-text);
}

@media (prefers-reduced-motion: reduce) {
	.iws-wijnhuis-kaart__wijnstreek-chevron {
		transition: none;
	}

	.iws-wijnhuis-kaart,
	.iws-wijnhuis-kaart *,
	.iws-wijnhuis-kaart *::before,
	.iws-wijnhuis-kaart *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Ronde 2 — kaartbediening als één familie: de zoomknoppen, "alles in beeld" en
   "bij mij in de buurt" zijn allemaal wit met een donker icoon, zoals in Maps.
   De iconen zijn wit aangeleverd; invert(1) maakt ze donker. */
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__near-me,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__reset-view {
	border-radius: 8px;
	background: var(--iws-color-card);
	color: var(--iws-color-text);
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

/* De zoekknoppen zijn net zo groot, rond en schaduwrijk als de twee knoppen erboven en eronder:
   48 breed, 8 afstand, dezelfde rechterrand. */
.iws-wijnhuis-kaart--js .maplibregl-ctrl-group {
	border-radius: 8px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__near-me .iws-wijnhuis-kaart__fab-icon img,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__reset-view .iws-wijnhuis-kaart__fab-icon img {
	filter: invert(1) opacity(0.75);
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__reset-view .iws-wijnhuis-kaart__fab-icon img {
	width: 22px;
	height: 22px;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__near-me:focus-visible,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__reset-view:focus-visible {
	background: var(--iws-color-card);
	color: var(--iws-color-text);
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__near-me:hover,
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__reset-view:hover {
		background: #f1f1ef;
		color: var(--iws-color-text);
	}
}

/* Pin en lijstkaart lichten samen op (JS zet --hover vanaf de andere kant). */
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__pin--hover {
	color: var(--iws-color-pin-active);
	z-index: 2;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__pin--hover .iws-wijnhuis-kaart__pin-drop {
	transform: scale(1.2);
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__list-item--hover {
	background: #f7f5ee;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__list-item--hover .iws-wijnhuis-kaart__info-naam {
	text-decoration: underline;
}

/* Een naam die een andere naam of pin zou raken, blijft meetbaar maar onzichtbaar. */
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__pin-label--hidden {
	visibility: hidden;
}

/* In de kop (mobiel, paneel dicht) staat de uitweg naast het getal. */
.iws-wijnhuis-kaart__list-count .iws-wijnhuis-kaart__empty-action {
	display: inline;
	margin: 0 0 0 8px;
	padding: 12px 0;
}

/* Detail van een wijnhuis — één opbouw voor het mobiele blad en het zijpaneel:
   naam, streek (aantikbaar), acties, foto, tip, eigenschappen, in de buurt.
   Route is de hoofdactie; Website, Delen en Bewaar zijn tonale knoppen.
   Alleen maten verschillen per breakpoint (kopgrootte, foto, ruimte). */
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-content,
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-slot {
	display: flex;
	flex-direction: column;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-title {
	margin: 0;
	font-family: var(--iws-font-display);
	font-weight: 400;
	color: var(--iws-color-text);
}

/* De titel krijgt alleen programmatisch focus (schermlezers, bij het openen):
   een ring zou als een streep onder de hele naam staan. */
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-title:focus,
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-title:focus-visible {
	outline: none;
	box-shadow: none;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-meta {
	display: flex;
	flex-direction: column;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-wijnstreek {
	margin: -12px 0 0;
	font-size: 14px;
	color: var(--iws-color-text-subtle);
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-tip {
	margin: 0;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-image {
	overflow: hidden;
	width: 100%;
	background: var(--iws-color-border);
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-image-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 899px) {
	.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-content {
		gap: 12px;
	}

	.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-slot {
		gap: 24px;
	}

	.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-title {
		padding-right: 40px;
		font-size: 22px;
		line-height: normal;
	}

	.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-meta {
		gap: 8px;
	}

	.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-tip {
		font-size: 14px;
		line-height: normal;
		color: var(--iws-color-text-muted);
	}

	.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-image {
		height: 192px;
		border-radius: 4px;
	}
}

@media (min-width: 900px) {
	.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-content,
	.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-slot {
		gap: 16px;
	}

	.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-title {
		font-size: 28px;
		line-height: 1.15;
	}

	.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-meta {
		gap: 12px;
	}

	.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-tip {
		font-size: 16px;
		line-height: 1.55;
		color: var(--iws-color-text);
	}

	.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-image {
		aspect-ratio: 16 / 9;
		border-radius: 8px;
	}
}

/* Acties */
.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__detail-action,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__detail-action {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	gap: 8px;
	box-sizing: border-box;
	height: auto;
	min-height: 44px;
	margin: 0;
	padding: 8px 18px;
	border: 0;
	border-radius: 999px;
	background: var(--iws-color-tint);
	color: var(--iws-color-focus);
	font-family: Lato, sans-serif;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	box-shadow: none;
	opacity: 1;
	cursor: pointer;
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__detail-action--route {
	background: var(--iws-color-focus);
	color: var(--iws-color-action-on);
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__detail-action:focus-visible,
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__detail-action:focus-visible {
	outline: 2px solid var(--iws-color-focus);
	outline-offset: 2px;
	opacity: 1;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__detail-action:hover,
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__detail-action:hover {
		background: #d3e1ef;
		color: var(--iws-color-focus);
		opacity: 1;
	}

	.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__detail-action--route:hover {
		background: var(--iws-color-focus-strong);
		color: var(--iws-color-action-on);
	}
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-action .iws-wijnhuis-kaart__icon {
	display: block;
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
	fill: currentColor;
}

@media (min-width: 900px) {
	.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__detail-action,
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__detail-action {
		min-height: 40px;
	}
}

/* Streek: de delen zijn links die het filter aanzetten. */
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-wijnstreek {
	margin-top: -12px;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__detail-streek-link {
	display: inline;
	margin: 0;
	padding: 4px 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--iws-color-action);
	font: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__detail-streek-link:focus-visible {
	outline: 2px solid var(--iws-color-focus);
	outline-offset: 2px;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__detail-streek-link:hover {
		color: var(--iws-color-focus);
		text-decoration-thickness: 2px;
	}
}

/* In de buurt: naam links, afstand rechts, elke rij een volle tikvlak. */
.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-nearby {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-nearby-title {
	margin: 0;
	font-family: Lato, sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--iws-color-text);
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-nearby-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-nearby-list li + li {
	border-top: 1px solid var(--iws-color-border);
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__detail-nearby-item {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 12px 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--iws-color-text);
	font: inherit;
	font-size: 15px;
	text-align: left;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__detail-nearby-item:focus-visible {
	outline: 2px solid var(--iws-color-focus);
	outline-offset: -2px;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__detail-nearby-item:hover .iws-wijnhuis-kaart__detail-nearby-name {
		text-decoration: underline;
	}
}

.iws-wijnhuis-kaart .iws-wijnhuis-kaart__detail-nearby-distance {
	flex: 0 0 auto;
	color: var(--iws-color-text-subtle);
	font-size: 14px;
	white-space: nowrap;
}

/* Ronde 4 — filters gelden meteen: het getal staat op de knop ("Toon 31 wijnhuizen"),
   de losse teller blijft alleen voor schermlezers. */
.iws-wijnhuis-kaart__filter-result-count {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.iws-wijnhuis-kaart__filter-footer-actions {
	width: 100%;
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__filter-apply {
	flex: 1 1 auto;
}

/* Ronde 4 — zoeksuggesties onder het zoekveld (combobox). */
.iws-wijnhuis-kaart__toolbar {
	position: relative;
}

.iws-wijnhuis-kaart__suggest {
	position: absolute;
	top: calc(100% + 4px);
	left: 0;
	right: 0;
	z-index: 30;
	margin: 0;
	padding: 4px 0;
	list-style: none;
	overflow: hidden;
	border-radius: 8px;
	background: var(--iws-color-card);
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
	pointer-events: auto;
}

.iws-wijnhuis-kaart__suggest[hidden] {
	display: none !important;
}

.iws-wijnhuis-kaart__suggest-option {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	min-height: 48px;
	box-sizing: border-box;
	padding: 12px 16px;
	color: var(--iws-color-text);
	font-family: Lato, sans-serif;
	font-size: 15px;
	cursor: pointer;
}

.iws-wijnhuis-kaart__suggest-option.is-active {
	background: var(--iws-color-tint);
}

.iws-wijnhuis-kaart__suggest-option--streek .iws-wijnhuis-kaart__suggest-label {
	font-weight: 700;
}

.iws-wijnhuis-kaart__suggest-label {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.iws-wijnhuis-kaart__suggest-detail {
	flex: 0 1 auto;
	min-width: 0;
	overflow: hidden;
	color: var(--iws-color-text-subtle);
	font-size: 13px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart__suggest-option:hover {
		background: #f1f1ef;
	}
}

/* Ronde 4 — bewaren: hartje in het detail, "Bewaard (n)" als snelfilter en één
   route langs alle bewaarde wijnhuizen. Bordeaux hoort bij de pins. */
.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__detail-action--save[aria-pressed="true"] {
	background: #f6e3e8;
	color: var(--iws-color-pin-active);
}

@media (hover: hover) {
	.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__detail-action--save[aria-pressed="true"]:hover {
		background: #efd2da;
		color: var(--iws-color-pin-active);
	}
}

.iws-wijnhuis-kaart button.iws-wijnhuis-kaart__chip--saved[hidden] {
	display: none;
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__saved-route {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 44px;
	margin: 0 0 12px;
	padding: 8px 18px;
	border-radius: 999px;
	background: var(--iws-color-focus);
	color: var(--iws-color-action-on);
	font-family: Lato, sans-serif;
	font-size: 15px;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__saved-route[hidden] {
	display: none;
}

.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__saved-route:focus-visible {
	outline: 2px solid var(--iws-color-focus);
	outline-offset: 2px;
}

@media (hover: hover) {
	.iws-wijnhuis-kaart a.iws-wijnhuis-kaart__saved-route:hover {
		background: var(--iws-color-focus-strong);
	}
}

/* Een open suggestielijst hoort boven de kaartknoppen. */
.iws-wijnhuis-kaart__map-chrome:has( .iws-wijnhuis-kaart__suggest:not( [hidden] ) ) {
	z-index: 8;
}
