.wm-map {
	--wm-map-accent: #9a5d28;
	--wm-map-accent-strong: #754116;
	--wm-map-bg: #f6f2ec;
	--wm-map-surface: #ffffff;
	--wm-map-text: #2c2a27;
	--wm-map-muted: #67615a;
	--wm-map-border: rgba(44, 42, 39, .16);
	--wm-map-radius: 16px;
	--wm-map-height: 440px;
	--wm-map-height-mobile: 400px;
	--wm-map-marker-scale: 1;
	color: var(--wm-map-text);
	font: inherit;
	inline-size: 100%;
}

.wm-map--theme-light {
	--wm-map-accent: #246b78;
	--wm-map-accent-strong: #174b55;
	--wm-map-bg: #f4f7f8;
}

.wm-map--theme-dark {
	--wm-map-accent: #e1ae6c;
	--wm-map-accent-strong: #f2c98f;
	--wm-map-bg: #252728;
	--wm-map-surface: #343637;
	--wm-map-text: #f7f3ed;
	--wm-map-muted: #d1cbc2;
	--wm-map-border: rgba(255, 255, 255, .18);
}

.wm-map--height-compact { --wm-map-height: 320px; }
.wm-map--height-large { --wm-map-height: 560px; }
.wm-map--mobile-height-compact { --wm-map-height-mobile: 320px; }
.wm-map--mobile-height-large { --wm-map-height-mobile: 480px; }
.wm-map--radius-none { --wm-map-radius: 0; }
.wm-map--radius-small { --wm-map-radius: 8px; }
.wm-map--radius-large { --wm-map-radius: 24px; }
.wm-map--marker-small { --wm-map-marker-scale: .84; }
.wm-map--marker-large { --wm-map-marker-scale: 1.16; }

.wm-map__heading {
	color: inherit;
	font: inherit;
	font-size: clamp(1.45rem, 2.5vw, 2.15rem);
	font-weight: 700;
	line-height: 1.15;
	margin: 0 0 1rem;
}

.wm-map__stage {
	background: var(--wm-map-bg);
	border: 1px solid var(--wm-map-border);
	border-radius: var(--wm-map-radius);
	box-shadow: 0 16px 44px rgba(22, 24, 25, .12);
	height: var(--wm-map-height);
	overflow: hidden;
	position: relative;
}

.wm-map__canvas,
.wm-map__placeholder {
	block-size: 100%;
	inline-size: 100%;
}

.wm-map__canvas[hidden],
.wm-map__placeholder[hidden] {
	display: none;
}

.wm-map__placeholder {
	align-items: center;
	background-color: var(--wm-map-bg);
	background-image:
		linear-gradient(30deg, rgba(154, 93, 40, .055) 12%, transparent 12.5%, transparent 87%, rgba(154, 93, 40, .055) 87.5%),
		linear-gradient(150deg, rgba(154, 93, 40, .055) 12%, transparent 12.5%, transparent 87%, rgba(154, 93, 40, .055) 87.5%);
	background-size: 48px 84px;
	display: flex;
	flex-direction: column;
	gap: .9rem;
	justify-content: center;
	padding: clamp(1.25rem, 4vw, 3rem);
	text-align: center;
}

.wm-map__placeholder-icon {
	color: var(--wm-map-accent);
	inline-size: 58px;
}

.wm-map__placeholder-icon svg {
	display: block;
	fill: none;
	inline-size: 100%;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 3;
}

.wm-map__consent-text {
	color: var(--wm-map-muted);
	font-size: .98rem;
	line-height: 1.55;
	margin: 0;
	max-inline-size: 680px;
}

.wm-map__consent-button {
	appearance: none;
	background: var(--wm-map-accent);
	border: 2px solid transparent;
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-weight: 700;
	line-height: 1.2;
	min-block-size: 46px;
	padding: .75rem 1.35rem;
	transition: background-color .18s ease, transform .18s ease;
}

.wm-map__consent-button:hover {
	background: var(--wm-map-accent-strong);
	transform: translateY(-1px);
}

.wm-map__consent-button:focus-visible,
.wm-map__privacy-link:focus-visible,
.wm-map__location-focus:focus-visible,
.wm-map__location-link:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--wm-map-accent) 68%, white);
	outline-offset: 3px;
}

.wm-map__privacy-link {
	color: var(--wm-map-accent-strong);
	font-size: .92rem;
	font-weight: 650;
	text-decoration-thickness: .08em;
	text-underline-offset: .18em;
}

.wm-map__locations {
	display: grid;
	gap: .8rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
}

.wm-map--columns-1 .wm-map__locations { grid-template-columns: minmax(0, 1fr); }
.wm-map--columns-2 .wm-map__locations { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.wm-map__location {
	background: var(--wm-map-surface);
	border: 1px solid var(--wm-map-border);
	border-radius: max(6px, calc(var(--wm-map-radius) * .7));
	display: flex;
	flex-direction: column;
	min-inline-size: 0;
	padding: .45rem;
}

.wm-map__location-focus {
	align-items: flex-start;
	appearance: none;
	background: transparent;
	border: 0;
	color: inherit;
	cursor: pointer;
	display: flex;
	font: inherit;
	gap: .7rem;
	inline-size: 100%;
	padding: .45rem;
	text-align: start;
}

.wm-map__location-focus:disabled {
	cursor: default;
}

.wm-map__location-number {
	align-items: center;
	background: var(--wm-map-accent);
	border-radius: 50%;
	color: #fff;
	display: inline-flex;
	flex: 0 0 2rem;
	font-size: .85rem;
	font-weight: 800;
	block-size: 2rem;
	justify-content: center;
}

.wm-map__location-number--blue { background: #236c9b; }
.wm-map__location-number--green { background: #2f7b50; }
.wm-map__location-number--red { background: #a13b3b; }
.wm-map__location-number--orange { background: #b96322; }
.wm-map__location-number--purple { background: #745297; }
.wm-map__location-number--grey { background: #667078; }
.wm-map__location-number--dark { background: #292d30; }

.wm-map__location-copy {
	display: flex;
	flex-direction: column;
	gap: .18rem;
	line-height: 1.35;
	min-inline-size: 0;
}

.wm-map__location-copy span {
	color: var(--wm-map-muted);
	font-size: .9rem;
}

.wm-map__location-link {
	align-self: flex-start;
	color: var(--wm-map-accent-strong);
	font-size: .87rem;
	font-weight: 700;
	margin: .1rem .45rem .35rem 3.15rem;
}

.wm-map__empty {
	background: var(--wm-map-bg);
	border: 1px dashed var(--wm-map-border);
	border-radius: var(--wm-map-radius);
	color: var(--wm-map-muted);
	margin: 0;
	padding: 1.25rem;
}

.wm-map__sr-only {
	block-size: 1px;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	inline-size: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
}

.wm-map .leaflet-container {
	background: #e6e2db;
	font: inherit;
}

.wm-map .leaflet-control-attribution {
	font-size: 10px;
}

.wm-map .leaflet-control-attribution a {
	color: #174b55;
}

.wm-map-leaflet-icon {
	background: none;
	border: 0;
}

.wm-map-marker {
	--wm-map-marker-color: #9a5d28;
	align-items: center;
	background: var(--wm-map-marker-color);
	border: 3px solid #fff;
	border-radius: 50% 50% 50% 10%;
	box-shadow: 0 5px 13px rgba(0, 0, 0, .3);
	color: #fff;
	display: inline-flex;
	height: 38px;
	justify-content: center;
	position: relative;
	transform: rotate(-45deg) scale(var(--wm-map-marker-scale));
	transform-origin: 50% 100%;
	width: 38px;
}

.wm-map-marker--blue { --wm-map-marker-color: #236c9b; }
.wm-map-marker--green { --wm-map-marker-color: #2f7b50; }
.wm-map-marker--red { --wm-map-marker-color: #a13b3b; }
.wm-map-marker--orange { --wm-map-marker-color: #b96322; }
.wm-map-marker--purple { --wm-map-marker-color: #745297; }
.wm-map-marker--grey { --wm-map-marker-color: #667078; }
.wm-map-marker--dark { --wm-map-marker-color: #292d30; }

.wm-map-marker svg {
	fill: none;
	height: 17px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
	transform: rotate(45deg) translate(-2px, 2px);
	width: 17px;
}

.wm-map-marker__number {
	align-items: center;
	background: #fff;
	border: 1px solid var(--wm-map-marker-color);
	border-radius: 999px;
	color: var(--wm-map-marker-color);
	display: flex;
	font-size: 10px;
	font-weight: 800;
	height: 18px;
	justify-content: center;
	min-width: 18px;
	padding: 0 3px;
	position: absolute;
	right: -8px;
	top: -7px;
	transform: rotate(45deg);
}

.wm-map-popup {
	display: flex;
	flex-direction: column;
	gap: .4rem;
	line-height: 1.4;
	min-inline-size: 180px;
}

.wm-map-popup__title { font-size: 1rem; }
.wm-map-popup__address,
.wm-map-popup__info { white-space: pre-line; }
.wm-map-popup__info { color: #555; font-size: .9rem; }
.wm-map-popup__link { color: #174b55; font-weight: 700; }

@media (max-width: 900px) {
	.wm-map__locations { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
	.wm-map__stage { height: var(--wm-map-height-mobile); }
	.wm-map__locations { grid-template-columns: minmax(0, 1fr); }
	.wm-map__placeholder { padding: 1.15rem; }
	.wm-map__consent-text { font-size: .92rem; }
}

@media (prefers-reduced-motion: reduce) {
	.wm-map *,
	.wm-map *::before,
	.wm-map *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
	.wm-map__consent-button:hover { transform: none; }
}

@media print {
	.wm-map__stage { box-shadow: none; }
	.wm-map__placeholder { background-image: none; }
}
