/* ── TOTO Airport Map [toto_custom_airport_map] ── */

.toto-custom-airport-map,
.toto_custom_airport_map {
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	box-sizing: border-box;
}

.toto-custom-airport-map .map_wrapper,
.toto_custom_airport_map .map_wrapper {
	width: 100% !important;
	max-width: 100% !important;
}

.toto-custom-airport-map .map_box,
.toto_custom_airport_map .map_box {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 auto !important;
}

/* Desktop: aspect ratio */
.toto-custom-airport-map .map_aspect_ratio,
.toto_custom_airport_map .map_aspect_ratio {
	width: 100% !important;
	max-width: 100% !important;
	position: relative !important;
	height: 0 !important;
	padding-top: 52% !important;
}

.toto-custom-airport-map .map_wrapper,
.toto_custom_airport_map .map_wrapper {
	min-height: 280px;
}

.toto-custom-airport-map .map_container,
.toto_custom_airport_map .map_container {
	position: absolute !important;
	inset: 0 !important;
	overflow: hidden !important;
}

.toto-custom-airport-map .map_render,
.toto_custom_airport_map .map_render {
	width: 100% !important;
	height: 100% !important;
}

.toto-custom-airport-map .map_render svg,
.toto_custom_airport_map .map_render svg {
	width: 100% !important;
	height: 100% !important;
}

.toto-airport-mobile-list {
	display: none;
}

/* ── Mobile: fit map height to content (no empty bands) + text list below ── */
@media (max-width: 768px) {
	.toto-custom-airport-map,
	.toto_custom_airport_map {
		width: 100%;
		max-width: 100%;
		padding: 0 10px;
		box-sizing: border-box;
		overflow: visible;
	}

	/* World map ≈ 2:1 — height tracks width, no fixed tall box */
	.toto-custom-airport-map .map_aspect_ratio,
	.toto_custom_airport_map .map_aspect_ratio {
		height: 0 !important;
		padding-top: 56% !important;
		min-height: 0 !important;
	}

	.toto-custom-airport-map .map_wrapper,
	.toto_custom_airport_map .map_wrapper {
		min-height: 0 !important;
		height: auto !important;
		margin-bottom: 0;
	}

	.toto-custom-airport-map .map_container,
	.toto_custom_airport_map .map_container {
		overflow: hidden !important;
	}

	.toto-custom-airport-map .map_render,
	.toto_custom_airport_map .map_render {
		width: 100% !important;
		height: 100% !important;
	}

	/* Hide on-map labels — list is in panel below */
	.toto-custom-airport-map .imapsLabel-group,
	.toto_custom_airport_map .imapsLabel-group,
	.toto-custom-airport-map .imapsLabel,
	.toto_custom_airport_map .imapsLabel,
	.toto-custom-airport-map g[class*="imapsLabel"],
	.toto_custom_airport_map g[class*="imapsLabel"] {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
	}

	.toto-airport-mobile-list {
		display: block;
		width: 100%;
		max-width: 100%;
		margin: 14px 0 0;
		padding: 14px 16px;
		background: #f3f4f6;
		border-radius: 12px;
		box-sizing: border-box;
		font-family: 'GothamSSm', 'Helvetica Neue', Arial, sans-serif;
		font-size: 12px;
		line-height: 1.65;
		color: #0a0a0a;
		word-break: break-word;
		overflow-wrap: anywhere;
		white-space: pre-line;
		overflow: visible;
	}

	.toto-airport-mobile-list:empty {
		display: none !important;
	}

	.toto-airport-mobile-list strong,
	.toto-airport-mobile-list b {
		display: block;
		font-size: 13px;
		font-weight: 700;
		margin-bottom: 8px;
		text-transform: uppercase;
		letter-spacing: 0.04em;
	}

	.toto-airport-mobile-list p {
		margin: 0 0 8px;
		padding: 0;
	}

	.toto-airport-mobile-list * {
		max-width: 100% !important;
		word-break: break-word !important;
		overflow-wrap: anywhere !important;
		white-space: pre-line !important;
	}
}

@media (max-width: 480px) {
	.toto-custom-airport-map .map_aspect_ratio,
	.toto_custom_airport_map .map_aspect_ratio {
		padding-top: 58% !important;
	}

	.toto-airport-mobile-list {
		font-size: 11px;
		padding: 12px 14px;
	}
}
