/* bm/store-map — map of Poland + panel. Theme tokens only. */
.bm-store-map {
	--bm-map-land: var(--wp--preset--color--shelf);
	--bm-map-border: var(--wp--preset--color--paper);
	--bm-map-outline: var(--wp--preset--color--line-strong);
	display: grid;
	gap: var(--wp--preset--spacing--50);
	align-items: start;
}
@media (min-width: 1024px) {
	.bm-store-map:not(.bm-store-map--mini) {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		gap: var(--wp--preset--spacing--60);
	}
	.bm-store-map__map { position: sticky; top: var(--wp--preset--spacing--40); }
}
.bm-store-map .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
	overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}

/* Map ----------------------------------------------------------------------- */
.bm-store-map__map { container-type: inline-size; min-width: 0; }
.bm-map { position: relative; }
.bm-map__svg { display: block; width: 100%; height: auto; overflow: visible; }
.bm-map__regions path { fill: var(--bm-map-land); stroke: var(--bm-map-border); stroke-width: 2.5; stroke-linejoin: round; }
.bm-map__outline { fill: none; stroke: var(--bm-map-outline); stroke-width: 2; stroke-linejoin: round; }
.bm-map__leader line { stroke: var(--wp--preset--color--ink-soft); stroke-width: 2; stroke-dasharray: 4 3; }
.bm-map__leader circle { fill: var(--wp--preset--color--crimson); }
.bm-map__leader--l { display: none; }
.bm-map__marker circle { fill: var(--wp--preset--color--crimson); stroke: var(--wp--preset--color--paper); stroke-width: 6; }
.bm-map__marker .bm-map__halo { fill: var(--wp--preset--color--crimson); opacity: .16; stroke: none; }

.bm-map__pins { position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; pointer-events: none; }
.bm-map__pins[hidden] { display: none; }
.bm-map__pins li { margin: 0; }
.bm-map__pin {
	position: absolute; left: var(--xs); top: var(--ys);
	width: var(--ds); height: var(--ds); transform: translate(-50%, -50%);
	display: grid; place-items: center; padding: 0;
	border: 2px solid var(--wp--preset--color--paper); border-radius: 50%;
	background: var(--wp--preset--color--crimson); color: var(--wp--preset--color--white);
	font: 800 var(--wp--preset--font-size--xs)/1 inherit; font-variant-numeric: tabular-nums;
	box-shadow: 0 2px 6px -2px rgb(35 31 32 / .45);
	cursor: pointer; pointer-events: auto;
	transition: background-color var(--wp--custom--speed) var(--wp--custom--ease), transform var(--wp--custom--speed) var(--wp--custom--ease);
}
.bm-map__pin:hover { background: var(--wp--preset--color--crimson-deep); transform: translate(-50%, -50%) scale(1.08); }
.bm-map__pin:focus-visible { outline: 3px solid var(--wp--preset--color--ink); outline-offset: 2px; z-index: 2; }
.bm-map__pin[aria-pressed="true"] { background: var(--wp--preset--color--ink); z-index: 2; }
.bm-map__label {
	position: absolute; left: calc(100% + 6px); top: 50%; transform: translateY(-50%);
	padding: .25rem .5rem; border-radius: var(--wp--custom--radius--sm);
	background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper);
	font-size: var(--wp--preset--font-size--xs); font-weight: 700; white-space: nowrap;
	opacity: 0; visibility: hidden; pointer-events: none;
	transition: opacity var(--wp--custom--speed) var(--wp--custom--ease);
}
.bm-map__pin:hover .bm-map__label,
.bm-map__pin:focus-visible .bm-map__label,
.bm-map__pin[aria-pressed="true"] .bm-map__label { opacity: 1; visibility: visible; }
.bm-map__pin:hover, .bm-map__pin:focus-visible { z-index: 3; }

@container (min-width: 480px) {
	.bm-map__pin { left: var(--xl); top: var(--yl); width: var(--dl); height: var(--dl); font-size: var(--wp--preset--font-size--sm); }
	.bm-map__leader--s { display: none; }
	.bm-map__leader--l { display: inline; }
}

/* Panel --------------------------------------------------------------------- */
.bm-store-map__panel { min-width: 0; }
.bm-store-map__title { margin: 0; font-size: var(--wp--preset--font-size--xl); line-height: 1.1; }
.bm-store-map__lead { margin: var(--wp--preset--spacing--30) 0 0; color: var(--wp--preset--color--ink-soft); max-width: 44ch; }
.bm-store-map__near { display: inline-flex; align-items: center; gap: .5rem; min-height: 48px; margin-top: var(--wp--preset--spacing--50); cursor: pointer; }
.bm-store-map__near[hidden], .bm-store-map__cities[hidden], .bm-store-map__result[hidden], .bm-store-map__error[hidden] { display: none; }
.bm-store-map__near:disabled { opacity: .7; cursor: progress; }
.bm-store-map__error { margin: var(--wp--preset--spacing--30) 0 0; color: var(--wp--preset--color--accent); font-size: var(--wp--preset--font-size--sm); font-weight: 600; }
.bm-store-map__cities { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); margin: var(--wp--preset--spacing--50) 0 0; padding: 0; list-style: none; }
.bm-store-map__city {
	display: inline-flex; align-items: center; gap: .375rem; min-height: 40px; padding: .375rem .75rem;
	border: 1px solid var(--wp--preset--color--line-strong); border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--paper); color: var(--wp--preset--color--ink);
	font: 600 var(--wp--preset--font-size--sm)/1.2 inherit; cursor: pointer;
	transition: border-color var(--wp--custom--speed), background-color var(--wp--custom--speed);
}
.bm-store-map__city:hover { border-color: var(--wp--preset--color--ink); }
.bm-store-map__city:focus-visible { outline: 3px solid var(--wp--preset--color--ink); outline-offset: 2px; }
.bm-store-map__city[aria-pressed="true"] { background: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper); }
.bm-store-map__city-count { font-size: var(--wp--preset--font-size--xs); font-weight: 700; color: inherit; opacity: .7; font-variant-numeric: tabular-nums; }

.bm-store-map__result { margin-top: var(--wp--preset--spacing--50); padding-top: var(--wp--preset--spacing--40); border-top: 2px solid var(--wp--preset--color--ink); scroll-margin-top: var(--wp--preset--spacing--50); }
.bm-store-map__result-head { display: flex; align-items: center; justify-content: space-between; gap: var(--wp--preset--spacing--30); }
.bm-store-map__result-title { margin: 0; font-size: var(--wp--preset--font-size--lg); }
.bm-store-map__close {
	display: grid; place-items: center; width: 44px; height: 44px; flex: none; padding: 0;
	border: 1px solid var(--wp--preset--color--line); border-radius: 50%; background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--ink); font-size: 1.5rem; line-height: 1; cursor: pointer;
}
.bm-store-map__close:hover { border-color: var(--wp--preset--color--ink); }
.bm-store-map__note { margin: var(--wp--preset--spacing--20) 0 0; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-soft); }
.bm-store-map__note[hidden] { display: none; }
.bm-store-map__shops { margin: var(--wp--preset--spacing--30) 0 0; padding: 0; list-style: none; }
.bm-store-map__shop { padding: var(--wp--preset--spacing--40) 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.bm-store-map__shop > * { margin: 0; }
.bm-store-map__shop [hidden] { display: none; }
.bm-store-map__shop-name { font-size: var(--wp--preset--font-size--md); }
.bm-store-map__shop-name a { color: inherit; text-decoration: none; }
.bm-store-map__shop-name a:hover { color: var(--wp--preset--color--accent); text-decoration: underline; }
.bm-store-map__soon { display: inline-block; margin-top: .25rem; padding: .125rem .5rem; background: var(--wp--preset--color--orange); color: var(--wp--preset--color--night); font-size: var(--wp--preset--font-size--xs); font-weight: 700; }
.bm-store-map__distance { margin-top: .25rem !important; font-size: var(--wp--preset--font-size--sm); font-weight: 700; color: var(--wp--preset--color--fresh); font-variant-numeric: tabular-nums; }
.bm-store-map__row { display: flex; gap: .5rem; align-items: flex-start; margin-top: .375rem !important; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-soft); }
.bm-store-map__row a { color: var(--wp--preset--color--ink); font-weight: 600; text-underline-offset: .2em; }
.bm-store-map__hours span:last-child { white-space: pre-line; }
.bm-store-map .bm-ico { width: 1.125rem; height: 1.125rem; flex: none; margin-top: .0625rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.bm-store-map__links { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; margin-top: var(--wp--preset--spacing--30) !important; }
.bm-store-map__route {
	display: inline-flex; align-items: center; gap: .375rem; min-height: 40px; padding: .375rem .875rem;
	border: 2px solid var(--wp--preset--color--ink); border-radius: var(--wp--custom--radius--pill);
	color: var(--wp--preset--color--ink); font-weight: 700; font-size: var(--wp--preset--font-size--sm); text-decoration: none;
}
.bm-store-map__route:hover { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper); }
.bm-store-map__more { font-size: var(--wp--preset--font-size--sm); font-weight: 600; color: var(--wp--preset--color--accent); text-underline-offset: .2em; }

/* Mini (single location) ---------------------------------------------------- */
.bm-store-map--mini { margin: 0; max-width: 320px; }
.bm-store-map--mini .bm-map__svg { width: 100%; }
.bm-store-map__caption { margin-top: var(--wp--preset--spacing--20); font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--ink-soft); text-align: center; }

@media (prefers-reduced-motion: reduce) {
	.bm-map__pin, .bm-map__label { transition: none; }
}
