.edfman-map {
	position: relative;
	max-width: 100%;
}
.edfman-map__canvas {
	position: relative;
}
.edfman-map svg {
	display: block;
	width: 100%;
	height: auto;
}
.edfman-map__country {
	transition: fill 0.15s ease;
}
.edfman-map__country--active {
	cursor: pointer;
	fill: var(--edfman-fill, var(--edfman-default-fill));
}
.edfman-map__country--active.is-hover-group {
	fill: var(--edfman-hover-fill, var(--edfman-default-hover-fill));
}
.edfman-map__marker {
	fill: var(--edfman-marker-fill, #4a90d9);
	stroke: none;
	cursor: pointer;
	transition: transform 0.15s ease, fill 0.15s ease, opacity 0.15s ease;
	transform-box: fill-box;
	transform-origin: center;
}
.edfman-map__marker:hover {
	fill: var(--edfman-marker-hover-fill, #2f6ea3);
	transform: scale(1.4);
}
.edfman-map__marker.is-filtered-out {
	opacity: 0;
	pointer-events: none;
}
.edfman-map__filters {
	display: flex;
	flex-wrap: wrap;
	gap: var(--edfman-filter-gap, 8px);
	margin: 12px 0;
	justify-content: var(--edfman-filter-align, flex-start);
}
.edfman-map__filter {
	padding: var(--edfman-filter-padding-y, 6px) var(--edfman-filter-padding-x, 14px);
	border: var(--edfman-filter-border-width, 1px) solid var(--edfman-filter-border-color, #ccc);
	border-radius: var(--edfman-filter-border-radius, 999px);
	background: #fff;
	cursor: pointer;
	font-size: var(--edfman-filter-font-size, 13px);
	line-height: 1.4;
	flex: 0 0 auto;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.edfman-map__filter.is-active {
	background: var(--edfman-filter-active-bg, #333);
	color: var(--edfman-filter-active-text, #fff);
	border-color: var(--edfman-filter-active-bg, #333);
}
@media (max-width: 600px) {
	.edfman-map__filters {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}
.edfman-map__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin: 12px 0;
	justify-content: var(--edfman-legend-align, flex-start);
	font-size: var(--edfman-legend-font-size, 13px);
}
.edfman-map__legend-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	line-height: 1.4;
}
.edfman-map__legend-swatch {
	display: inline-block;
	width: 12px;
	height: 12px;
	border-radius: 3px;
	flex: 0 0 auto;
}
.edfman-map__popup {
	position: absolute;
	min-width: var(--edfman-popup-min-width, 160px);
	max-width: var(--edfman-popup-max-width, 280px);
	background: var(--edfman-popup-bg, #fff);
	border: 1px solid var(--edfman-popup-border, transparent);
	border-radius: var(--edfman-popup-radius, 6px);
	color: var(--edfman-popup-text, inherit);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.18);
	padding: 14px 16px;
	z-index: 10;
}
.edfman-map__popup[hidden] {
	display: none;
}
.edfman-map__popup--hover {
	pointer-events: none;
}
.edfman-map__popup-close {
	position: absolute;
	top: 2px;
	right: 8px;
	border: 0;
	background: none;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	color: currentColor;
	opacity: 0.6;
}
.edfman-map__popup-close:hover {
	opacity: 1;
}
.edfman-map__popup-title {
	font-weight: 500;
	margin: 0 0 6px;
	padding-right: 16px;
}
.edfman-map__popup-body {
	font-size: 13px;
	line-height: 1.5;
}
