.kadence-child-world-map {
    position: relative;
    width: 100%;
    --kc-map-ratio: 49.45%;
    --kc-marker-size: clamp(18px, 2.05vw, 26px);
    --kc-marker-color: #b8bdff;
    --kc-tooltip-border-width: 3px;
    --kc-tooltip-padding-unit: clamp(4px, 0.9vw, 14px);
}

.kc-world-map__surface {
    position: relative;
    width: 100%;
    overflow: hidden;
    touch-action: pan-x pan-y;
    will-change: transform;
    transform-origin: center center;
}

.kc-world-map__surface.kc-world-map__surface--touch {
    touch-action: none;
}

.kc-world-map__surface::before {
    content: '';
    display: block;
    padding-bottom: var(--kc-map-ratio, 56.25%);
}

.kc-world-map__image,
.kc-world-map__markers {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

.kc-world-map__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.kc-world-map__markers {
    pointer-events: none;
}

.kc-world-map__marker {
    pointer-events: auto;
    position: absolute;
    left: var(--marker-x);
    top: var(--marker-y);
    transform: translate(-50%, -50%);
    border: 0;
    background: transparent !important;
    padding: 0;
    cursor: pointer;
    font: inherit;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.kc-world-map__marker:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.9);
    outline-offset: 4px;
}

.kc-world-map__icon {
    width: var(--kc-marker-size);
    height: var(--kc-marker-size);
    color: var(--kc-marker-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s ease;
    line-height: 0;
}

.kc-world-map__icon svg {
    width: 100%;
    height: 100%;
    fill: currentColor;
    stroke: #3B3EB6;
    stroke-width: 2px;
    display: block;
}

.kc-world-map__tooltip {
    position: absolute;
    --tooltip-top: calc(100% + 2px);
    --tooltip-bottom: auto;
    --tooltip-left: calc(50% - var(--kc-tooltip-border-width) / 2);
    --tooltip-right: auto;
    --tooltip-offset-horizontal-factor: 0;
    --tooltip-offset-vertical-factor: 0;
    --tooltip-translate-y: 0;
    top: var(--tooltip-top);
    bottom: var(--tooltip-bottom);
    left: var(--tooltip-left);
    right: var(--tooltip-right);
    transform: translateY(var(--tooltip-translate-y));
    background-color: transparent;
    color: #000000;
    font-size: 0.85rem;
    line-height: 1.25;
    font-weight: 400;
    padding: 0.25rem 0.5rem;
    border-radius: 0;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out;
    pointer-events: none;
    border: 0;
}

.kc-world-map__marker:hover .kc-world-map__tooltip,
.kc-world-map__marker:focus-visible .kc-world-map__tooltip,
.kc-world-map__marker.is-active .kc-world-map__tooltip {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.kc-world-map__marker:hover .kc-world-map__icon,
.kc-world-map__marker:focus-visible .kc-world-map__icon,
.kc-world-map__marker.is-active .kc-world-map__icon {
    color: #ffffff;
}

.kc-world-map__tooltip--bottom-right {
    --tooltip-top: calc(100% + 2px);
    --tooltip-left: calc(50% - var(--kc-tooltip-border-width) / 2);
    --tooltip-right: auto;
    --tooltip-translate-y: 50%;
    padding-top: calc(0.25rem + var(--tooltip-offset-vertical-factor) * var(--kc-tooltip-padding-unit));
    padding-left: calc(0.5rem + var(--tooltip-offset-horizontal-factor) * var(--kc-tooltip-padding-unit));
    border-left: var(--kc-tooltip-border-width) solid var(--kc-marker-color);
    border-bottom: var(--kc-tooltip-border-width) solid var(--kc-marker-color);
}

.kc-world-map__tooltip--bottom-left {
    --tooltip-top: calc(100% + 2px);
    --tooltip-left: auto;
    --tooltip-right: calc(50% - var(--kc-tooltip-border-width) / 2);
    --tooltip-translate-y: 50%;
    padding-top: calc(0.25rem + var(--tooltip-offset-vertical-factor) * var(--kc-tooltip-padding-unit));
    padding-right: calc(0.5rem + var(--tooltip-offset-horizontal-factor) * var(--kc-tooltip-padding-unit));
    border-right: var(--kc-tooltip-border-width) solid var(--kc-marker-color);
    border-bottom: var(--kc-tooltip-border-width) solid var(--kc-marker-color);
}

.kc-world-map__tooltip--top-right {
    --tooltip-top: auto;
    --tooltip-bottom: calc(100% + 2px);
    --tooltip-left: calc(50% - var(--kc-tooltip-border-width) / 2);
    --tooltip-right: auto;
    --tooltip-translate-y: -50%;
    padding-bottom: calc(0.25rem + var(--tooltip-offset-vertical-factor) * var(--kc-tooltip-padding-unit));
    padding-left: calc(0.5rem + var(--tooltip-offset-horizontal-factor) * var(--kc-tooltip-padding-unit));
    border-left: var(--kc-tooltip-border-width) solid var(--kc-marker-color);
    border-top: var(--kc-tooltip-border-width) solid var(--kc-marker-color);
}

.kc-world-map__tooltip--top-left {
    --tooltip-top: auto;
    --tooltip-bottom: calc(100% + 2px);
    --tooltip-left: auto;
    --tooltip-right: calc(50% - var(--kc-tooltip-border-width) / 2);
    --tooltip-translate-y: -50%;
    padding-bottom: calc(0.25rem + var(--tooltip-offset-vertical-factor) * var(--kc-tooltip-padding-unit));
    padding-right: calc(0.5rem + var(--tooltip-offset-horizontal-factor) * var(--kc-tooltip-padding-unit));
    border-right: var(--kc-tooltip-border-width) solid var(--kc-marker-color);
    border-top: var(--kc-tooltip-border-width) solid var(--kc-marker-color);
}

@media (max-width: 767px) {
    .kc-world-map__tooltip {
        font-size: 0.75rem;
    }
}
