/* Interactive World Map — Elementor widget */

.iwm-outer{display:flex;width:100%;}
.iwm-wrap{position:relative;width:100%;max-width:100%;}

.iwm-map{
	--iwm-pin-size:22px;
	position:relative;
	width:100%;
	aspect-ratio:1500/900;
}
/* aspect-ratio fallback */
@supports not (aspect-ratio:1/1){
	.iwm-map{height:0;padding-bottom:60%;}
}

.iwm-map .iwm-svg{
	position:absolute;inset:0;
	width:100%;height:100%;
	display:block;overflow:visible;
}
.iwm-svg .iwm-countries{
	stroke:#fff;stroke-width:.5;
	stroke-linejoin:round;vector-effect:non-scaling-stroke;
}
.iwm-svg .iwm-c{fill:#d6d6d6;transition:fill .25s ease;}
.iwm-svg .iwm-c.is-active{cursor:pointer;}

/* ---------- markers ---------- */
.iwm-markers{position:absolute;inset:0;pointer-events:none;}

.iwm-marker{
	position:absolute;
	/* anchored with margins rather than transform: a transform would create a
	   stacking context per marker and let one pin cover another one's label */
	margin-left:calc(var(--iwm-pin-size) * -.36);
	margin-top:calc(var(--iwm-pin-size) * -1);
	pointer-events:auto;
	text-decoration:none;
	display:block;
	line-height:1;
	/* no z-index here on purpose: pins and labels must compete in ONE stacking
	   context so that a neighbouring pin never covers another country's label */
}
.iwm-marker.iwm-nopin{margin:0;width:0;height:0;}

/* pin */
.iwm-pin{
	position:relative;display:block;
	width:calc(var(--iwm-pin-size) * .72);
	height:var(--iwm-pin-size);
	color:#e01b24;
	transition:color .2s ease,transform .2s ease;
	filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));
	z-index:1;
}
.iwm-pin svg{width:100%;height:100%;display:block;}
.iwm-pin i{
	position:absolute;left:50%;top:34%;
	width:36%;height:0;padding-bottom:36%;
	transform:translate(-50%,-50%);
	background:#fff;border-radius:50%;
}
.iwm-marker:hover .iwm-pin,
.iwm-marker.is-hover .iwm-pin{transform:translateY(-3px) scale(1.08);}

/* label pill */
.iwm-label{
	position:absolute;
	white-space:nowrap;
	font-size:12px;font-weight:700;
	color:#0a1e5a;background:#fff;
	padding:4px 10px;border-radius:20px;
	box-shadow:0 1px 4px rgba(0,0,0,.2);
	transition:background-color .2s ease,color .2s ease,opacity .2s ease;
	pointer-events:auto;
	z-index:3;
}
.iwm-marker:hover .iwm-pin,.iwm-marker.is-hover .iwm-pin{z-index:10;}
.iwm-marker:hover .iwm-label,.iwm-marker.is-hover .iwm-label{z-index:11;}
/* label placement relative to the pin tip (bottom center of marker) */
.iwm-side-right .iwm-label{left:calc(var(--iwm-pin-size) * .72 + 6px);top:calc(var(--iwm-pin-size) * .28);transform:translate(var(--iwm-dx,0px),calc(-50% + var(--iwm-dy,0px)));}
.iwm-side-left  .iwm-label{right:calc(var(--iwm-pin-size) * .72 + 6px);top:calc(var(--iwm-pin-size) * .28);transform:translate(var(--iwm-dx,0px),calc(-50% + var(--iwm-dy,0px)));}
.iwm-side-top   .iwm-label{left:50%;bottom:calc(100% + 6px);transform:translate(calc(-50% + var(--iwm-dx,0px)),var(--iwm-dy,0px));}

.iwm-nopin.iwm-side-right .iwm-label{left:8px;top:50%;}
.iwm-nopin.iwm-side-left  .iwm-label{right:8px;top:50%;}
.iwm-nopin.iwm-side-top   .iwm-label{bottom:8px;}

/* connector line (JS sets width/rotation when the pin is nudged) */
.iwm-line{
	position:absolute;left:50%;bottom:0;
	height:1.5px;width:0;
	background:#e01b24;
	transform-origin:0 50%;
	display:none;
	z-index:0;
	pointer-events:none;
}
.iwm-marker.has-line .iwm-line{display:block;}

/* pin -> label connector (auto layout) */
.iwm-lline{
	position:absolute;left:50%;bottom:0;
	height:1.5px;width:0;
	background:#e01b24;
	transform-origin:0 50%;
	display:none;z-index:0;pointer-events:none;
}
.iwm-marker.has-lline .iwm-lline{display:block;}
.iwm-nopin .iwm-lline,.iwm-nopin .iwm-line{bottom:50%;}

/* label modes */
.iwm-labels-none .iwm-label{display:none;}
.iwm-labels-hover .iwm-label{opacity:0;visibility:hidden;}
.iwm-labels-hover .iwm-marker:hover .iwm-label,
.iwm-labels-hover .iwm-marker.is-hover .iwm-label{opacity:1;visibility:visible;}

/* hover mode: the pill and the tooltip say the same thing — show one of them */
.iwm-hover-tip .iwm-label{display:none;}
.iwm-hover-label .iwm-tip{display:none;}

/* pulse */
.iwm-pulse .iwm-pin:before{
	content:"";position:absolute;left:50%;top:100%;
	width:var(--iwm-pin-size);height:var(--iwm-pin-size);
	margin:calc(var(--iwm-pin-size) * -.5) 0 0 calc(var(--iwm-pin-size) * -.5);
	border-radius:50%;background:currentColor;opacity:.45;
	animation:iwm-pulse 2s ease-out infinite;
	pointer-events:none;
}
@keyframes iwm-pulse{
	0%{transform:scale(.25);opacity:.5;}
	80%,100%{transform:scale(1.4);opacity:0;}
}
@media (prefers-reduced-motion:reduce){
	.iwm-pulse .iwm-pin:before{animation:none;display:none;}
	.iwm-svg .iwm-c,.iwm-pin,.iwm-label{transition:none;}
}

/* ---------- tooltip ---------- */
.iwm-tip{
	position:absolute;left:0;top:0;
	max-width:260px;
	padding:8px 12px;border-radius:6px;
	background:#0a1e5a;color:#fff;
	font-size:13px;line-height:1.45;
	pointer-events:none;
	opacity:0;visibility:hidden;
	transform:translate(-50%,-100%) translateY(-10px);
	transition:opacity .15s ease,transform .15s ease;
	z-index:20;
	box-shadow:0 6px 20px rgba(0,0,0,.28);
}
.iwm-tip:after{
	content:"";position:absolute;left:50%;top:100%;
	margin-left:-6px;border:6px solid transparent;
	border-top-color:#0a1e5a;
}
.iwm-tip.is-on{opacity:1;visibility:visible;transform:translate(-50%,-100%) translateY(-6px);}
.iwm-tip .iwm-tip-t{display:block;font-weight:700;}
.iwm-tip .iwm-tip-d{display:block;margin-top:3px;opacity:.85;font-weight:400;}

/* ---------- responsive ---------- */
@media (max-width:767px){
	.iwm-hide-mobile-labels .iwm-label{display:none;}
	.iwm-map{--iwm-pin-size:16px;}
	.iwm-tip{max-width:200px;font-size:12px;}
}

/* Elementor editor: keep markers clickable but don't fight the editor overlay */
.elementor-editor-active .iwm-marker{pointer-events:auto;}
