.he-store-map {
	--he-map-accent: #8e7841;
	--he-map-heading: var(--color-content-heading, #29245f);
	--he-map-text: var(--color-content-text, #3f3b54);
	position: relative;
	width: 100%;
	min-height: 20rem;
	overflow: hidden;
	background: #eef1f3;
}
.he-store-map__canvas { position: absolute; inset: 0; }
.he-store-map .maplibregl-map { font: inherit; }
.he-store-map .maplibregl-ctrl-top-right { top: .8rem; right: .8rem; }
.he-store-map .maplibregl-ctrl-group {
	border-radius: .4rem;
	overflow: hidden;
	box-shadow: 0 1px 4px rgba(0,0,0,.16);
}
.he-store-map .maplibregl-ctrl-group button { width: 2.5rem; height: 2.5rem; }
.he-store-map .maplibregl-ctrl-attrib { font-size: .68rem; }
.he-store-map--hide-geolocate .maplibregl-ctrl-geolocate { display: none !important; }

.he-map-pin {
	/* MapLibre positions custom marker elements absolutely. Do not override this with relative positioning. */
	position: absolute;
	width: 2rem;
	height: 2.5rem;
	box-sizing: border-box;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.he-map-pin[hidden] { display: none !important; }
.he-map-pin__shape {
	position: absolute;
	left: 50%;
	top: .25rem;
	width: 1.65rem;
	height: 1.65rem;
	transform: translateX(-50%) rotate(-45deg);
	transform-origin: 50% 50%;
	border-radius: 50% 50% 50% 0;
	background: var(--he-map-heading);
	border: 2px solid #fff;
	box-shadow: 0 2px 7px rgba(0,0,0,.3);
}
.he-map-pin__dot {
	position: absolute;
	left: 50%;
	top: 50%;
	width: .48rem;
	height: .48rem;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: var(--he-map-accent);
}
.he-map-pin:focus-visible .he-map-pin__shape { outline: 3px solid #1a73e8; outline-offset: 2px; }

.he-store-map .maplibregl-popup-content {
	padding: 1rem;
	border-radius: .75rem;
	box-shadow: 0 5px 24px rgba(0,0,0,.2);
}
.he-map-popup__title { display: block; color: var(--he-map-heading); margin-right: 1rem; font-size: 1rem; line-height: 1.35; }
.he-map-popup__address { margin-top: .45rem; color: color-mix(in srgb, var(--he-map-text) 72%, transparent); font-size: .84rem; line-height: 1.45; }
.he-map-popup__actions { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; }
.he-map-popup__detail,
.he-map-popup__phone {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.25rem;
	padding: .5rem .8rem;
	border: 1px solid var(--he-map-heading);
	border-radius: 999px;
	background: transparent;
	color: var(--he-map-heading) !important;
	font-size: .82rem;
	font-weight: 600;
	line-height: 1;
	text-decoration: none !important;
	transition: background .18s ease, color .18s ease, transform .18s ease;
}
.he-map-popup__detail:hover,
.he-map-popup__phone:hover,
.he-map-popup__detail:focus-visible,
.he-map-popup__phone:focus-visible {
	border-color: var(--he-map-heading);
	background: var(--he-map-heading);
	color: #fff !important;
	transform: translateY(-1px);
}
.he-map-popup__detail:focus,
.he-map-popup__phone:focus {
	outline: 0;
}

.he-store-map__status {
	position: absolute;
	z-index: 5;
	left: 50%;
	bottom: 1rem;
	max-width: calc(100% - 2rem);
	transform: translate(-50%, .5rem);
	padding: .62rem .85rem;
	border-radius: .55rem;
	background: rgba(255,255,255,.96);
	box-shadow: 0 2px 12px rgba(0,0,0,.16);
	color: var(--he-map-text);
	font-size: .82rem;
	line-height: 1.35;
	opacity: 0;
	pointer-events: none;
	transition: opacity .18s ease, transform .18s ease;
}
.he-store-map__status.is-visible { opacity: 1; transform: translate(-50%, 0); }

.he-store-map-legacy-message {
	padding: 1rem;
	border: 1px solid rgba(142,120,65,.28);
	background: rgba(142,120,65,.06);
	font-size: .9rem;
}
