.kp-global-map{
    position:relative;
    display:block;
    width:100%;
    height:70vh;
    min-height:420px;
    max-height:900px;
    margin:0;
    padding:0;
    overflow:hidden;
    background:#e5e7eb;
    box-sizing:border-box;
    isolation:isolate;
}
.kp-global-map,
.kp-global-map *{
    box-sizing:border-box;
}
.kp-global-map__canvas{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    min-width:0;
    min-height:0;
}
.kp-global-map__message{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    min-height:200px;
    padding:24px;
    box-sizing:border-box;
    text-align:center;
    font:14px/1.45 Arial,sans-serif;
    color:#555;
}
.kp-global-map__message--error{
    color:#9b1c1c;
    background:#fff;
}
.kp-global-map__locate{
    position:absolute;
    right:14px;
    bottom:82px;
    z-index:5;
    width:46px;
    height:46px;
    padding:0;
    border:0;
    border-radius:50%;
    background:#fff;
    box-shadow:0 2px 8px rgba(0,0,0,.25);
    font:26px/46px Arial,sans-serif;
    text-align:center;
    cursor:pointer;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
}
.kp-global-map__legend{
    position:absolute;
    left:14px;
    bottom:14px;
    z-index:5;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px 14px;
    max-width:calc(100% - 28px);
    padding:9px 12px;
    background:rgba(255,255,255,.94);
    border-radius:7px;
    box-shadow:0 2px 8px rgba(0,0,0,.2);
    font:12px/1.2 Arial,sans-serif;
}
.kp-dot{
    display:inline-block;
    width:10px;
    height:10px;
    margin-right:5px;
    border-radius:50%;
    vertical-align:-1px;
}
.kp-global-map .kp-dot--member{background:#0B3D91}
.kp-dot--listing{background:#d97706}
.kp-global-map__popup{
    display:flex;
    gap:10px;
    max-width:280px;
    line-height:1.4;
}
.kp-global-map__popup img{
    width:50px;
    height:50px;
    flex:0 0 50px;
    object-fit:cover;
    border-radius:50%;
}
.kp-global-map__popup small{
    display:block;
    margin-bottom:3px;
    opacity:.65;
}
.kp-global-map__popup strong{
    display:block;
    margin-bottom:3px;
}
.kp-global-map__popup a{
    display:inline-block;
    margin-top:7px;
}

@media (max-width:1024px){
    .kp-global-map{
        height:65vh;
        min-height:400px;
        max-height:760px;
    }
}

@media (max-width:767px){
    .kp-global-map{
        width:100%;
        height:68vh;
        height:68dvh;
        min-height:360px;
        max-height:none;
    }
    .kp-global-map__canvas{
        width:100%;
        height:100%;
    }
    .kp-global-map__locate{
        right:12px;
        bottom:76px;
        width:46px;
        height:46px;
        line-height:46px;
    }
    .kp-global-map__legend{
        left:10px;
        bottom:10px;
        max-width:calc(100% - 20px);
        padding:8px 10px;
        gap:8px 12px;
        font-size:11px;
    }
    .kp-global-map__popup{
        max-width:calc(100vw - 80px);
        font-size:13px;
    }
}

@media (max-width:767px) and (orientation:landscape){
    .kp-global-map{
        height:82vh;
        height:82dvh;
        min-height:280px;
    }
}

@supports (padding: env(safe-area-inset-bottom)){
    @media (max-width:767px){
        .kp-global-map__locate{
            bottom:calc(76px + env(safe-area-inset-bottom));
        }
        .kp-global-map__legend{
            bottom:calc(10px + env(safe-area-inset-bottom));
        }
    }
}

@media (prefers-reduced-motion:reduce){
    .kp-global-map *{
        scroll-behavior:auto;
    }
}
