.wsusam-map-wrap {
	width: 100%;
	max-width: 960px;
	margin: 0 auto;
	--wsusam-base: #7fa1c2;
	--wsusam-hover: #ff5b5f;
	--wsusam-label: #ffffff;
}

.wsusam-map-stage {
	position: relative;
	width: 100%;
	min-height: 280px;
	aspect-ratio: 16 / 10;
}

.wsusam-map {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

.wsusam-state {
	fill: var(--wsusam-base);
	stroke: #ffffff;
	stroke-width: 1.4;
	vector-effect: non-scaling-stroke;
	transition: fill 160ms ease, filter 160ms ease;
}

.wsusam-state-link {
	cursor: default;
	outline: none;
}

.wsusam-state-link.is-linked {
	cursor: pointer;
}

.wsusam-state-link:hover .wsusam-state,
.wsusam-state-link:focus .wsusam-state,
.wsusam-state-link.is-active .wsusam-state {
	fill: var(--wsusam-hover);
	filter: drop-shadow(0 4px 8px rgba(17, 24, 39, 0.18));
}

.wsusam-state-link:focus .wsusam-state {
	stroke: #111827;
	stroke-width: 2.2;
}

.wsusam-label {
	fill: var(--wsusam-label);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0;
	text-anchor: middle;
	dominant-baseline: central;
	pointer-events: none;
	paint-order: stroke;
	stroke: rgba(31, 56, 78, 0.28);
	stroke-width: 3px;
}

.wsusam-label.is-small {
	font-size: 12px;
}

.wsusam-loading {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	color: #526476;
	font-size: 15px;
	font-weight: 600;
}

.wsusam-tooltip {
	position: absolute;
	z-index: 5;
	left: 0;
	top: 0;
	display: flex;
	align-items: flex-start;
	gap: 10px;
	width: min(330px, calc(100% - 24px));
	padding: 10px;
	border: 1px solid rgba(17, 24, 39, 0.24);
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 12px 32px rgba(15, 23, 42, 0.22);
	color: #111827;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.35;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, calc(-100% - 12px));
	transition: opacity 130ms ease;
}

.wsusam-tooltip.is-visible {
	opacity: 1;
}

.wsusam-tooltip-flag {
	display: block;
	flex: 0 0 auto;
	width: 78px;
	height: 78px;
	object-fit: cover;
	border: 1px solid rgba(17, 24, 39, 0.12);
	border-radius: 4px;
	background: #f8fafc;
}

.wsusam-tooltip-content {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.wsusam-tooltip-name {
	display: block;
	color: #000000;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
}

.wsusam-tooltip-state,
.wsusam-tooltip-phone,
.wsusam-tooltip-address,
.wsusam-tooltip-email {
	display: block;
	color: #111827;
	overflow-wrap: anywhere;
}

.wsusam-tooltip-email {
	color: #0645d8;
}

@media (max-width: 640px) {
	.wsusam-map-stage {
		min-height: 220px;
	}

	.wsusam-label {
		font-size: 11px;
		stroke-width: 2.2px;
	}

	.wsusam-label.is-small {
		font-size: 9px;
	}

	.wsusam-tooltip {
		width: min(300px, calc(100% - 18px));
		font-size: 12px;
	}

	.wsusam-tooltip-flag {
		width: 62px;
		height: 62px;
	}
}
