/*
 * Essential fallback styles only.
 * The Binderberger theme can continue to provide its existing visual design.
 */
.binderberger-worldmap {
    position: relative;
    isolation: isolate;
    width: 100%;
}

.binderberger-worldmap .map-holder {
    position: relative;
}


.binderberger-worldmap .map-holder,
.binderberger-worldmap .list-map-popups,
.binderberger-worldmap .popup-map-block {
    overflow: visible !important;
}

.binderberger-worldmap .map {
    position: relative;
    z-index: 1;
}

.binderberger-worldmap .map svg {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
}

.binderberger-worldmap .list-map-popups {
    position: absolute !important;
    inset: 0 !important;
    z-index: 10 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100%;
    height: 100%;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    pointer-events: none;
}

.binderberger-worldmap .popup-map-block {
    position: absolute !important;
    z-index: 20 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto;
}

.binderberger-worldmap .open-popup-map {
    position: relative;
    z-index: 12;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    transform: translate(-50%, -50%);
    text-decoration: none !important;
    cursor: pointer;
}

.binderberger-worldmap .map-point {
    position: relative;
    display: block !important;
    width: 14px;
    height: 14px;
    overflow: visible;
    border: 3px solid #fff;
    border-radius: 50%;
    background: #f4c430;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
    color: transparent !important;
    font-size: 0 !important;
    line-height: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

.binderberger-worldmap .map-point::before,
.binderberger-worldmap .map-point::after,
.binderberger-worldmap .open-popup-map::before,
.binderberger-worldmap .open-popup-map::after {
    content: none !important;
    display: none !important;
    animation: none !important;
    opacity: 0 !important;
}


.binderberger-worldmap .popup-map {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 12px);
    z-index: 2147483001 !important;
    display: none;
    width: min(320px, calc(100vw - 32px));
    min-width: 250px;
    transform: translateX(-50%);
    text-align: left;
}


/*
 * An open popup must establish the highest stacking level among all point
 * siblings. Otherwise later dots are painted above the contact card even when
 * the card itself has a large z-index (its parent stacking context still wins).
 */
.binderberger-worldmap .popup-map-block.bb-worldmap-open,
.binderberger-worldmap .popup-map-block.active,
.binderberger-worldmap .popup-map-block.is-active {
    z-index: 2147483000 !important;
}

.binderberger-worldmap .popup-map-block.bb-worldmap-open .open-popup-map,
.binderberger-worldmap .popup-map-block.active .open-popup-map,
.binderberger-worldmap .popup-map-block.is-active .open-popup-map {
    z-index: 2147483001 !important;
}

.binderberger-worldmap .popup-map-block.bb-worldmap-open .popup-map-holder,
.binderberger-worldmap .popup-map-block.active .popup-map-holder,
.binderberger-worldmap .popup-map-block.is-active .popup-map-holder {
    position: relative;
    z-index: 2147483002 !important;
}

.binderberger-worldmap .popup-map-block.bb-worldmap-open .popup-map,
.binderberger-worldmap .popup-map-block.active .popup-map,
.binderberger-worldmap .popup-map-block.is-active .popup-map {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.binderberger-worldmap .popup-map-holder {
    position: relative;
    padding: 18px 20px;
    border-radius: 4px;
    background: #fff;
    box-shadow: 0 10px 35px rgba(0, 0, 0, 0.25);
    color: #003357;
}

.binderberger-worldmap .popup-map-holder::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    border: 8px solid transparent;
    border-top-color: #fff;
    transform: translateX(-50%);
}

.binderberger-worldmap .popup-map-holder strong {
    display: block;
}

.binderberger-worldmap .popup-map-holder dl {
    margin: 12px 0 0;
}

.binderberger-worldmap .popup-map-holder dt {
    margin-top: 8px;
    font-weight: 700;
}

.binderberger-worldmap .popup-map-holder dd {
    margin: 0;
}

.binderberger-worldmap .popup-map-holder a {
    overflow-wrap: anywhere;
}

@media (max-width: 767px) {
    .binderberger-worldmap .open-popup-map {
        width: 20px;
        height: 20px;
    }

    .binderberger-worldmap .map-point {
        width: 11px;
        height: 11px;
        border-width: 2px;
    }

    .binderberger-worldmap .popup-map {
        min-width: 220px;
    }
}

/* Restored Binderberger intro section. The site theme remains the primary design source. */
.binderberger-worldmap .section-features {
    position: relative;
    width: 100%;
}

.binderberger-worldmap .section-features .section-title {
    margin-top: 0;
}

.binderberger-worldmap .section-features .btn-container {
    margin-top: 24px;
}

.binderberger-worldmap .section-features .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}


/* Final hardening against theme stacking and pulse styles. */
.binderberger-worldmap .popup-map-block.bb-worldmap-open {
    z-index: 2147483000 !important;
}

.binderberger-worldmap .popup-map-block.bb-worldmap-open .popup-map {
    z-index: 2147483001 !important;
    pointer-events: auto !important;
}

.binderberger-worldmap .popup-map-block.bb-worldmap-open .popup-map-holder {
    z-index: 2147483002 !important;
    background-color: #fff !important;
    opacity: 1 !important;
}
