.mtg-global-map,
.mtg-global-map *,
.mtg-global-map *::before,
.mtg-global-map *::after {
	box-sizing: border-box;
}

.mtg-global-map {
	--mtg-global-map-background: transparent;
	--mtg-global-map-land-color: #e5e5e5;
	--mtg-global-map-dot-opacity: 0.45;
	--mtg-global-map-image-opacity: 0.45;
	--mtg-global-map-image-filter: grayscale(1);
	--mtg-global-map-scale: 1;
	--mtg-global-map-position-x: 0px;
	--mtg-global-map-position-y: 0px;
	--mtg-global-map-boundary-color: rgba(154, 31, 36, 0.35);
	--mtg-global-map-factory-marker-color: #9a1f24;
	--mtg-global-map-factory-marker-scale: 1;
	--mtg-global-map-partner-marker-color: #9a1f24;
	--mtg-global-map-partner-marker-size: 10px;
	--mtg-global-map-installation-marker-color: #d8898d;
	--mtg-global-map-installation-marker-size: 10px;
	--mtg-global-map-marker-border-color: #ffffff;
	--mtg-global-map-marker-border-width: 2px;
	--mtg-global-map-route-color: #9a1f24;
	--mtg-global-map-route-width: 2.5px;
	--mtg-global-map-route-opacity: 0.55;
	--mtg-global-map-route-arrow-scale: 1;
	--mtg-global-map-route-flow-speed: 6s;
	--mtg-global-map-route-stagger-delay: 0.6s;
	--mtg-global-map-label-text-color: #111111;
	--mtg-global-map-label-background: #ffffff;

	width: 100%;
	max-width: 100%;
	min-width: 0;
	background: var(--mtg-global-map-background);
	overflow: hidden;
}

.mtg-global-map--performance {
	contain: layout paint style;
	content-visibility: auto;
	contain-intrinsic-size: 500px;
}

.mtg-global-map-container {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 500px;
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
}

.mtg-global-map-image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: fill;
	opacity: var(--mtg-global-map-image-opacity);
	filter: var(--mtg-global-map-image-filter);
	pointer-events: none;
	user-select: none;
}

.mtg-global-map-overlay {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
	transform: none;
	transform-origin: center center;
}

.mtg-global-map-container svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
	transform:
		translate(var(--mtg-global-map-position-x), var(--mtg-global-map-position-y))
		scale(var(--mtg-global-map-scale));
	transform-origin: center center;
}

.mtg-global-map--mode-image_map .mtg-global-map-container svg {
	transform: none;
}

.mtg-global-map--mode-image_map .mtg-global-map-container svg .mtg-global-map-route-layer,
.mtg-global-map--mode-image_map .mtg-global-map-container svg .mtg-global-map-particle-layer,
.mtg-global-map--mode-image_map .mtg-global-map-container svg .mtg-global-map-marker-layer {
	opacity: 1;
}

.mtg-global-map-container svg .land,
.mtg-global-map-container svg .country,
.mtg-global-map-container svg [id] circle,
.mtg-global-map-container svg [id] path {
	fill: var(--mtg-global-map-land-color);
	opacity: var(--mtg-global-map-dot-opacity);
	stroke: none;
}

.mtg-global-map-boundary-yes .mtg-global-map-container svg .land,
.mtg-global-map-boundary-yes .mtg-global-map-container svg .country,
.mtg-global-map-boundary-yes .mtg-global-map-container svg [id] circle,
.mtg-global-map-boundary-yes .mtg-global-map-container svg [id] path {
	stroke: var(--mtg-global-map-boundary-color);
	stroke-width: 1;
}

.mtg-global-map-route-layer {
	pointer-events: none;
}

.mtg-global-map-route {
	fill: none;
	stroke: var(--mtg-global-map-route-color);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: var(--mtg-global-map-route-width);
	opacity: var(--mtg-global-map-route-opacity);
	vector-effect: non-scaling-stroke;
}

.mtg-global-map-route--base {
	opacity: calc(var(--mtg-global-map-route-opacity) * 0.55);
}

.mtg-global-map-route--flow {
	stroke-dasharray: 10 12;
	stroke-dashoffset: 44;
	animation: mtg-global-map-route-flow var(--mtg-global-map-route-flow-speed) linear infinite;
	animation-delay: var(--mtg-global-map-route-delay, 0s);
	opacity: var(--mtg-global-map-route-opacity);
}

.mtg-global-map--lazy-animation:not(.is-animation-active) .mtg-global-map-route--flow {
	animation-play-state: paused;
}

.mtg-global-map-route-arrow {
	overflow: visible;
}

.mtg-global-map-route-arrow path {
	fill: var(--mtg-global-map-route-color);
	opacity: var(--mtg-global-map-route-opacity);
	stroke: none;
	transform: scale(var(--mtg-global-map-route-arrow-scale));
	transform-box: fill-box;
	transform-origin: center;
}

.mtg-global-map-particle-layer {
	pointer-events: none;
}

.mtg-global-map-route-particle {
	fill: var(--mtg-global-map-route-color);
	filter: drop-shadow(0 0 4px rgba(154, 31, 36, 0.45));
	opacity: 0.95;
}

.mtg-global-map--lazy-animation:not(.is-animation-active) .mtg-global-map-route-particle {
	opacity: 0;
}

.mtg-global-map--editor .mtg-global-map-route--flow,
.mtg-global-map--editor .mtg-global-map-factory-pulse {
	animation: none;
}

.mtg-global-map--animation-disabled .mtg-global-map-route--flow,
.mtg-global-map--animation-disabled .mtg-global-map-factory-pulse {
	animation: none;
}

.mtg-global-map--editor .mtg-global-map-route-particle {
	display: none;
}

.mtg-global-map--animation-disabled .mtg-global-map-route-particle {
	display: none;
}

.mtg-global-map-marker-layer {
	pointer-events: auto;
}

.mtg-global-map-marker-layer * {
	opacity: 1;
}

.mtg-global-map-marker {
	cursor: pointer;
	opacity: 1;
	pointer-events: visiblePainted;
	outline: none;
}

.mtg-global-map-marker-shape {
	transform: scale(var(--mtg-global-map-factory-marker-scale));
	transform-box: fill-box;
	transform-origin: 0 0;
}

.mtg-global-map-marker-pin {
	fill: var(--mtg-global-map-factory-marker-color);
	stroke: var(--mtg-global-map-marker-border-color);
	stroke-width: var(--mtg-global-map-marker-border-width);
	vector-effect: non-scaling-stroke;
}

.mtg-global-map-marker-pin-dot {
	fill: var(--mtg-global-map-marker-border-color);
	stroke: none;
}

.mtg-global-map-factory-pulse {
	fill: none;
	pointer-events: none;
	stroke: var(--mtg-global-map-factory-marker-color);
	stroke-width: 2;
	transform-box: fill-box;
	transform-origin: center;
	animation: mtg-global-map-factory-pulse 3s ease-out infinite;
}

.mtg-global-map-marker-dot {
	stroke: var(--mtg-global-map-marker-border-color);
	stroke-width: var(--mtg-global-map-marker-border-width);
	vector-effect: non-scaling-stroke;
}

.mtg-global-map__marker--partner .mtg-global-map-marker-dot {
	fill: var(--mtg-global-map-partner-marker-color);
	r: var(--mtg-global-map-partner-marker-size);
}

.mtg-global-map__marker--installation .mtg-global-map-marker-dot {
	fill: var(--mtg-global-map-installation-marker-color);
	r: var(--mtg-global-map-installation-marker-size);
}

.mtg-global-map-label-wrap {
	opacity: 0;
	overflow: visible;
	pointer-events: none;
	transition: opacity 160ms ease;
}

.mtg-global-map-label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: max-content;
	max-width: 150px;
	margin: 0 auto;
	padding: 4px 8px;
	color: var(--mtg-global-map-label-text-color);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	white-space: nowrap;
	background: var(--mtg-global-map-label-background);
	border-radius: 4px;
}

.mtg-global-map--labels-always .mtg-global-map-label-wrap,
.mtg-global-map--labels-hover .mtg-global-map-marker:hover .mtg-global-map-label-wrap,
.mtg-global-map--labels-hover .mtg-global-map-marker:focus .mtg-global-map-label-wrap,
.mtg-global-map--labels-hover .mtg-global-map-marker.is-label-active .mtg-global-map-label-wrap {
	opacity: 1;
}

.mtg-global-map--labels-hidden .mtg-global-map-label-wrap {
	display: none;
}

.mtg-global-map-warnings {
	margin-top: 8px;
	font-size: 12px;
	line-height: 1.4;
	color: #9a1f24;
}

@keyframes mtg-global-map-route-flow {
	from {
		stroke-dashoffset: 44;
	}

	to {
		stroke-dashoffset: 0;
	}
}

@keyframes mtg-global-map-factory-pulse {
	0% {
		opacity: 0.45;
		r: 6px;
	}

	100% {
		opacity: 0;
		r: 24px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mtg-global-map-route--flow,
	.mtg-global-map-factory-pulse {
		animation: none;
	}

	.mtg-global-map-route-particle {
		display: none;
	}
}
