/**
 * Variant CSS: locations--map-pins-overview
 *
 * Full-width faux "map" panel (pure CSS: water, park, district plots, roads and
 * three positioned numbered pins) as the dominant element, with a horizontal
 * 3-up legend strip below it. Pin numbers map to legend keys. Map-dominant
 * vertical stack — distinct from the side-by-side map-beside-list split. Text
 * stays --ink (polarity-aware); pins/accents take --accent (KI-020 safe).
 */

body.aibt-universal .universal-locations--map-pins-overview {
	padding-block: calc(clamp(3rem, 7vw, 5rem) * var(--density, 1));
}

/* Intro. */
body.aibt-universal .universal-locations--map-pins-overview .universal-locations__intro {
	margin-bottom: clamp(2rem, 4.5vw, 3rem);
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__kicker {
	font-family: var(--font-body) !important;
	font-size: var(--text-xs) !important;
	font-weight: 600 !important;
	letter-spacing: var(--tracking-widest) !important;
	text-transform: uppercase !important;
	color: var(--accent) !important;
	margin: 0 auto var(--space-sm) auto !important;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__headline {
	font-family: var(--font-display) !important;
	color: var(--ink) !important;
	margin: 0 auto var(--space-sm) auto !important;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__headline em {
	color: var(--accent) !important;
	font-style: italic;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__deck {
	font-family: var(--font-body) !important;
	font-size: var(--text-base) !important;
	color: var(--ink) !important;
	opacity: 0.74;
	margin: 0 auto !important;
}

/* Faux map canvas. */
body.aibt-universal .universal-locations--map-pins-overview .universal-locations__map {
	margin-bottom: clamp(1.6rem, 3.5vw, 2.6rem) !important;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__canvas {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 7;
	border-radius: var(--decor-radius, 16px);
	overflow: hidden;
	background:
		color-mix(in srgb, var(--ink) 4%, var(--bg-main, #f4f1ea));
	border: 1px solid color-mix(in srgb, var(--ink) 12%, transparent);
	box-shadow: 0 30px 60px -38px rgba(0, 0, 0, 0.4);
}

/* Water body — soft accent-tinted shape, lower-left. */
body.aibt-universal .universal-locations--map-pins-overview .universal-locations__water {
	position: absolute;
	left: -6%;
	bottom: -14%;
	width: 46%;
	height: 56%;
	background: color-mix(in srgb, var(--accent) 16%, transparent);
	border-radius: 48% 52% 60% 40% / 55% 45% 55% 45%;
}

/* Green park block, upper-right. */
body.aibt-universal .universal-locations--map-pins-overview .universal-locations__park {
	position: absolute;
	right: 8%;
	top: 10%;
	width: 22%;
	height: 30%;
	background: color-mix(in srgb, var(--ink) 9%, transparent);
	border-radius: 30% 40% 36% 44% / 40% 30% 44% 36%;
}

/* Roads — hairline strokes forming a loose grid. */
body.aibt-universal .universal-locations--map-pins-overview .universal-locations__road {
	position: absolute;
	background: color-mix(in srgb, var(--ink) 14%, transparent);
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__road--h1 {
	left: 0;
	right: 0;
	top: 34%;
	height: 6px;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__road--h2 {
	left: 0;
	right: 0;
	top: 68%;
	height: 4px;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__road--v1 {
	top: 0;
	bottom: 0;
	left: 30%;
	width: 6px;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__road--v2 {
	top: 0;
	bottom: 0;
	left: 64%;
	width: 4px;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__road--diag {
	left: 38%;
	top: -20%;
	width: 5px;
	height: 150%;
	transform: rotate(28deg);
	transform-origin: top center;
	background: color-mix(in srgb, var(--accent) 22%, transparent);
}

/* District plots — faint filled blocks for texture. */
body.aibt-universal .universal-locations--map-pins-overview .universal-locations__plot {
	position: absolute;
	background: color-mix(in srgb, var(--ink) 6%, transparent);
	border-radius: 6px;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__plot--a {
	left: 6%;
	top: 8%;
	width: 18%;
	height: 18%;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__plot--b {
	left: 40%;
	top: 44%;
	width: 16%;
	height: 16%;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__plot--c {
	left: 70%;
	top: 72%;
	width: 14%;
	height: 16%;
}

/* Pins — teardrop accent markers with a numbered disc. */
body.aibt-universal .universal-locations--map-pins-overview .universal-locations__pin {
	position: absolute;
	width: clamp(30px, 4vw, 42px);
	height: clamp(30px, 4vw, 42px);
	background: var(--accent);
	border-radius: 50% 50% 50% 0;
	transform: translate(-50%, -100%) rotate(-45deg);
	box-shadow: 0 8px 18px -6px color-mix(in srgb, var(--accent) 60%, rgba(0, 0, 0, 0.5));
	display: grid;
	place-items: center;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__pin-num {
	transform: rotate(45deg);
	font-family: var(--font-body);
	font-weight: 700;
	font-size: var(--text-sm);
	line-height: 1;
	color: var(--cta-text-primary, var(--on-dark, #fff));
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__pin--1 {
	left: 24%;
	top: 30%;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__pin--2 {
	left: 58%;
	top: 52%;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__pin--3 {
	left: 80%;
	top: 78%;
}

/* Legend strip — 3-up keyed list under the map. */
body.aibt-universal .universal-locations--map-pins-overview .universal-locations__legend {
	gap: clamp(1.2rem, 3vw, 2rem) !important;
	align-items: stretch !important;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__key {
	padding: clamp(1.1rem, 2.4vw, 1.5rem) !important;
	border-radius: var(--decor-radius, 16px);
	background: color-mix(in srgb, var(--ink) 3%, var(--bg-main, transparent));
	border: 1px solid color-mix(in srgb, var(--ink) 10%, transparent);
	display: flex;
	flex-direction: column;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__key-head {
	gap: 0.7rem !important;
	margin-bottom: var(--space-sm) !important;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__key-num {
	flex: 0 0 auto;
	width: 1.9rem;
	height: 1.9rem;
	display: grid;
	place-items: center;
	border-radius: var(--decor-radius-pill, 999px);
	background: var(--accent);
	color: var(--cta-text-primary, var(--on-dark, #fff)) !important;
	font-family: var(--font-body) !important;
	font-weight: 700 !important;
	font-size: var(--text-sm) !important;
	line-height: 1 !important;
	margin: 0 !important;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__name {
	font-family: var(--font-display) !important;
	font-size: clamp(1.15rem, 2.2vw, 1.4rem) !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	color: var(--ink) !important;
	margin: 0 !important;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__address {
	font-family: var(--font-body) !important;
	font-size: var(--text-sm) !important;
	line-height: var(--leading-relaxed) !important;
	color: var(--ink) !important;
	opacity: 0.8;
	margin: 0 0 0.35rem 0 !important;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__hours {
	font-family: var(--font-body) !important;
	font-size: var(--text-sm) !important;
	color: var(--ink) !important;
	opacity: 0.66;
	margin: 0 0 0.35rem 0 !important;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__phone {
	font-family: var(--font-body) !important;
	font-size: var(--text-base) !important;
	font-weight: 600 !important;
	color: var(--accent) !important;
	margin: 0 0 var(--space-md) 0 !important;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__link-wrap {
	margin-top: auto !important;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__link .wp-block-button__link {
	padding: 0 !important;
	background: transparent !important;
	color: var(--accent) !important;
	font-family: var(--font-body) !important;
	font-weight: 600 !important;
	font-size: var(--text-sm) !important;
	border: none !important;
}

body.aibt-universal .universal-locations--map-pins-overview .universal-locations__link .wp-block-button__link:hover {
	color: var(--accent-hover, var(--accent)) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Keyboard focus ring (a11y) — nav link lacks a visible focus state. */
body.aibt-universal .universal-locations--map-pins-overview .universal-locations__link .wp-block-button__link:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
	border-radius: var(--decor-radius, 6px);
}

/* Tablet — legend wraps to 2-up, then 1-up; taller map. */
@media (max-width: 781px) {
	body.aibt-universal .universal-locations--map-pins-overview .universal-locations__canvas {
		aspect-ratio: 4 / 3;
	}

	body.aibt-universal .universal-locations--map-pins-overview .universal-locations__key {
		flex-basis: calc(50% - 1rem) !important;
	}
}

@media (max-width: 600px) {
	body.aibt-universal .universal-locations--map-pins-overview .universal-locations__key {
		flex-basis: 100% !important;
	}
}
