/* ==========================================================================
   Visiting Apartments — mapa Lokalizacji (design-spec §5.10)
   ========================================================================== */

.va-map {
	position: relative;
	height: 100vh;
	height: 100svh;
	min-height: 560px;
	overflow: hidden;
	background:
		repeating-linear-gradient(0deg, transparent 0 79px, rgba(20, 20, 20, .05) 79px 80px),
		repeating-linear-gradient(90deg, transparent 0 79px, rgba(20, 20, 20, .05) 79px 80px),
		var(--va-surface);
}
.admin-bar .va-map { height: calc(100svh - 32px); }

.va-map__canvas {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: transparent;
}

/* Zgoda na mapę */
.va-map__consent {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}
.va-map__consent-box {
	max-width: 440px;
	padding: 40px;
	border: 1px solid var(--va-line);
	background: var(--va-base);
}
.va-map__consent-box > * { margin: 0; }
.va-map__consent-box > * + * { margin-top: 20px; }
.va-map__consent-box p:not(.va-label) { font-size: var(--va-fs-small); }

/* Pływający REZERWUJ (jak pasek na innych stronach) */
.va-map__book {
	position: absolute;
	top: var(--va-top);
	right: 48px;
	z-index: 1000;
	min-width: 172px;
}
.va-scrolled .va-map__book { top: var(--va-top); }

/* Leaflet — wygląd zgodny ze stroną */
.va-map .leaflet-container,
.va-map.leaflet-container { font-family: var(--va-font); font-stretch: var(--va-stretch); background: transparent; }
/* OpenStreetMap (domyślnie): wyciszony, ciepły szary pod paletę strony */
.va-map--osm .leaflet-tile-pane { filter: grayscale(1) sepia(.18) contrast(.88) brightness(1.06); }
.va-map--stadia .leaflet-tile-pane { filter: sepia(.08); }
.va-map .leaflet-container a { color: var(--va-contrast); }
.va-map .leaflet-control-zoom {
	margin: 0 24px 32px 0;
	border: 1px solid var(--va-contrast) !important;
	border-radius: 0;
	box-shadow: none;
}
.va-map .leaflet-control-zoom a {
	width: 36px;
	height: 36px;
	line-height: 34px;
	border-radius: 0 !important;
	background: var(--va-base);
	color: var(--va-contrast);
	font-weight: 300;
}
.va-map .leaflet-control-zoom a:hover { background: var(--va-contrast); color: var(--va-base); }
.va-map .leaflet-control-attribution {
	background: rgba(230, 225, 219, .85);
	font-size: 10px;
}

/* Pinezki */
.va-pin { background: none; border: 0; }
.va-pin svg { display: block; position: relative; z-index: 1; transition: transform var(--va-t-fast) var(--va-ease); transform-origin: 50% 100%; }
.va-pin:hover svg,
.va-pin:focus svg { transform: scale(1.12); }
.va-pin__ring {
	position: absolute;
	left: -12px;
	top: -8px;
	width: 50px;
	height: 50px;
	border: 1px solid var(--va-contrast);
	border-radius: 50%;
}

/* Karta w dymku */
.va-map .leaflet-popup-content-wrapper {
	padding: 0;
	border: 1px solid var(--va-contrast);
	border-radius: 0;
	background: var(--va-base);
	box-shadow: none;
}
.va-map .leaflet-popup-content { width: 240px !important; margin: 0; line-height: 1.4; }
.va-map .leaflet-popup-tip { background: var(--va-base); border: 1px solid var(--va-contrast); box-shadow: none; }
.va-map .leaflet-popup-close-button { color: var(--va-contrast) !important; font-size: 20px !important; top: 4px !important; right: 4px !important; }
.va-pop > * { margin: 0; }
.va-pop__img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--va-surface); }
.va-pop__img img { width: 100%; height: 100%; object-fit: cover; }
.va-pop__name {
	padding: 14px 16px 0;
	font-size: var(--va-fs-small);
	letter-spacing: var(--va-ls-caps);
	text-transform: uppercase;
}
.va-pop__name a { text-decoration: none; }
.va-pop__meta { padding: 4px 16px 0; font-size: 12px; color: var(--va-muted); }
.va-pop__links {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 10px;
	padding: 14px 16px 16px;
	font-size: 12px;
}
.va-pop__links .va-btn { min-height: 32px; padding: 0 12px; font-size: 11px; }
.va-pop__links > a:not(.va-btn) { text-underline-offset: 3px; }
.va-pop__links .va-btn:hover { color: var(--va-base); }

/* Lista apartamentów pod mapą */
.va-map-list {
	padding: 64px 48px var(--va-section-gap) var(--va-gutter);
	max-width: calc(var(--va-content-w) + var(--va-gutter) + 48px);
	box-sizing: border-box;
}
.va-map-list ul {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px 40px;
	margin: 32px 0 0;
	padding: 0;
	list-style: none;
}
.va-map-list li { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.va-map-list li > a {
	font-size: var(--va-fs-small);
	letter-spacing: var(--va-ls-caps);
	text-transform: uppercase;
	text-decoration: none;
}
.va-map-list li.is-active > a { text-decoration: underline; }
.va-map-list li > span { font-size: 12px; color: var(--va-muted); }
.va-map-list__show {
	margin-top: 4px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--va-contrast);
	font: inherit;
	font-size: 12px;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

/* Notki redaktora na mapie: nad mapą, bez przesuwania układu */
.va-main--full .va-content { position: relative; display: flow-root; } /* flow-root: marginesy nie „przeciekają” w górę */
.va-main--full .va-admin-note {
	position: absolute;
	top: 16px;
	left: 16px;
	right: 240px;
	z-index: 1100;
	margin: 0;
	background: var(--va-base);
}
.va-main--full .va-admin-note + .va-admin-note { top: auto; bottom: 16px; }
.va-main--full .va-content .wp-block-post-content > .va-admin-note + *,
.va-main--full .va-admin-note + * { margin-top: 0 !important; }
.va-main--full .wp-block-post-content > .va-map-list { margin-top: 0; }

@media (max-width: 1023px) {
	.va-main--full .va-admin-note { right: 16px; }
	.va-map { height: calc(100svh - var(--va-mbar-h)); min-height: 420px; }
	.va-map__book { display: none; }
	.va-map__consent-box { padding: 28px 24px; }
	.va-map-list { padding: 40px var(--va-page-pad) 64px; }
	.va-map-list ul { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}

/* Kilka apartamentów pod jednym adresem: licznik na pinezce + lista w dymku */
.va-pin__count {
	position: absolute;
	top: -7px;
	right: -9px;
	z-index: 2;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	border: 1px solid var(--va-contrast);
	border-radius: 9px;
	background: var(--va-base);
	color: var(--va-contrast);
	font-size: 10px;
	font-weight: 600;
	line-height: 16px;
	text-align: center;
}
.va-pop__list { margin: 8px 0 0; padding: 0; list-style: none; }
.va-pop__list li { padding: 6px 0; border-top: 1px solid rgba(20, 20, 20, .12); }
.va-pop__list li:first-child { border-top: 0; }
.va-pop__list a { display: block; font-weight: 500; text-decoration: none; }
.va-pop__list a:hover { text-decoration: underline; }
.va-pop__list span { display: block; color: var(--va-muted); font-size: 11px; }
