.gv-mapbox {
	position: relative;
	width: 100%;
	min-height: 220px;
	border-radius: 12px;
	overflow: hidden;
}
.gv-mapbox .mapboxgl-popup-content {
	border-radius: 10px;
	padding: 12px 16px;
	box-shadow: 0 6px 20px rgba(0, 0, 0, .15);
}
.gv-mapbox .mapboxgl-ctrl-group { border-radius: 8px; overflow: hidden; }

.gvmb-popup strong { display: block; font: 600 14px/1.4 system-ui, -apple-system, sans-serif; color: #1a1a1a; }
.gvmb-popup span { display: block; margin-top: 2px; font: 400 13px/1.45 system-ui, -apple-system, sans-serif; color: #555; }
.gvmb-popup .gvmb-links { margin-top: 6px; font-weight: 600; }
.gvmb-popup .gvmb-links a { text-decoration: none; }

.gvmb-marker-img { width: 46px; height: 46px; background-size: contain; background-repeat: no-repeat; background-position: center bottom; cursor: pointer; }

/* Accessible fallback shown before the map loads / when WebGL is unavailable */
.gvmb-fallback {
	display: flex; flex-direction: column; justify-content: center; gap: 4px;
	height: 100%; padding: 16px 20px; box-sizing: border-box;
	background: #eef1f4; color: #333;
	font: 400 14px/1.5 system-ui, -apple-system, sans-serif;
}
.gvmb-fallback p { margin: 0; }
.gvmb-fallback a { color: inherit; }

/* Consent gate */
.gvmb-consent {
	position: absolute; inset: 0; z-index: 3;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
	padding: 20px; text-align: center; box-sizing: border-box;
	background: #e9edf1; color: #333;
	font: 400 14px/1.5 system-ui, -apple-system, sans-serif;
}
.gvmb-consent button {
	padding: 9px 18px; border: 0; border-radius: 8px; cursor: pointer;
	background: #2563eb; color: #fff; font: 600 14px system-ui, sans-serif;
}

/* Category filter legend */
.gvmb-legend {
	position: absolute; left: 10px; bottom: 10px; z-index: 2;
	display: flex; flex-wrap: wrap; gap: 6px; max-width: calc(100% - 20px);
	background: rgba(255, 255, 255, .92); padding: 6px; border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
}
.gvmb-legend-item {
	display: inline-flex; align-items: center; gap: 6px;
	border: 0; background: transparent; cursor: pointer;
	font: 500 12px system-ui, sans-serif; color: #333; padding: 3px 6px; border-radius: 6px;
	opacity: .4;
}
.gvmb-legend-item.is-active { opacity: 1; background: #f0f3f7; }
.gvmb-legend .gvmb-swatch { width: 12px; height: 12px; border-radius: 50%; display: inline-block; }

.gv-mapbox-error {
	padding: 12px 16px; background: #fff3cd; border: 1px solid #ffe69c; border-radius: 8px;
	color: #664d03; font: 14px/1.5 system-ui, -apple-system, sans-serif;
}
