.marker-wrapper {
    position: absolute;
    z-index: 10;
    transform: translate(-50%, -50%)
}

.marker-wrapper:hover {
    cursor: pointer
}

.marker-wrapper:has(.ts-marker-cluster) {
    z-index: 50
}

.marker-cat {
    position: absolute;
    top: 4px;
    right: -10px;
    width: 25px;
    height: 25px;
    background: var(--ts-accent-1);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    --ts-icon-size: 18px
}

.marker-cat i {
    font-size: var(--ts-icon-size);
    color: #fff
}

.marker-cat svg {
    width: var(--ts-icon-size);
    fill: #fff;
    height: var(--ts-icon-size)
}

.ts-map a, .ts-map a:visited {
    outline: none !important
}

.ts-map-nav {
    display: flex;
    justify-content: center;
    padding: 8px
}

.ts-map-nav .ts-icon-btn {
    width: 32px;
    height: 32px;
    margin: 0 2px;
    background: #fff;
    box-shadow: 0 0 5px #7a7a7a;
    border: none
}

.gm-style iframe + div {
    border: none !important
}

.gm-svpc img {
    max-width: none
}

.gm-style .gm-style-iw-tc:after {
    display: none
}

.gm-style-iw-a:not(.ts-marker):has(.gm-style-iw-ch .ts-gmaps-popup-initial) {
    display: none
}

.ts-marker.ts-marker-empty .gm-style-iw-c {
    width: 100px;
    height: 40px;
    opacity: 0;
    visibility: hidden
}

.ts-marker .gm-style-iw-chr, .ts-marker .gm-style-iw-tc {
    display: none
}

.ts-map-drag {
    width: 100%;
    display: inline-flex;
    position: absolute;
    padding: 15px;
    justify-content: center;
    z-index: 50;
    top: 0;
    left: 0;
    pointer-events: none
}

.ts-map-drag .ts-btn {
    pointer-events: all
}

.ts-map-drag .ts-map-btn {
    pointer-events: all;
    width: auto;
    font-size: 14px;
    font-weight: 600;
    background: #fff;
    border-radius: 50px;
    color: var(--ts-shade-2);
    padding: 12px 15px;
    transition: .2s;
    box-shadow: 0 0 5px #7a7a7a;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    height: 40px
}

.ts-map-drag .ts-map-btn svg {
    fill: var(--ts-shade-4);
    width: 20px;
    height: 20px
}

.ts-map-drag .ts-map-btn.active svg {
    fill: var(--ts-accent-1)
}

.ts-nav-anchor {
    width: 100%;
    display: inline-flex;
    position: absolute;
    padding: 15px;
    justify-content: center;
    z-index: 50;
    bottom: 0;
    left: 0
}

.ts-preview-popup {
    width: 280px
}

.gm-style-iw-t {
    animation: gmaps-iw-hide 30ms normal forwards
}

@keyframes gmaps-iw-hide {
    0% {
        opacity: 0
    }
    99% {
        opacity: 0
    }
    to {
        opacity: 1
    }
}

.ts-preview-popup > .elementor, .ts-preview-popup > .ts-map-nav a {
    pointer-events: all
}

.ts-marker, .ts-marker .gm-style-iw-c {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden
}

.ts-marker .gm-style-iw-c {
    padding: 0 !important;
    box-shadow: none !important;
    top: -20px !important;
    max-height: none !important;
    max-width: none !important;
    pointer-events: none;
    background: transparent !important
}

.ts-marker .gm-style-iw-c > button {
    display: none !important
}

.ts-marker .gm-style-iw-d {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    width: 100%;
    padding: 10px 10px 0 !important
}

.ts-marker .gm-style-iw-t:after {
    display: none !important
}

.ts-map .gm-style {
    font: var(--e-global-typography-secondary-font-weight) !important;
    font-size: var(--e-global-typography-text-font-size)
}

.marker-type-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    --ts-icon-size: 18px;
    --ts-icon-color: var(--ts-shade-2);
    --ts-icon-bg: #fff;
    --ts-icon-shadow: #7a7a7a;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 5px var(--ts-icon-shadow)
}

.marker-type-icon i {
    font-size: var(--ts-icon-size)
}

.marker-type-icon svg {
    width: var(--ts-icon-size);
    height: var(--ts-icon-size);
    -o-object-fit: contain;
    object-fit: contain;
    outline: none
}

.marker-type-icon use {
    outline: none
}

.marker-type-icon.mi-static {
    background: var(--ts-icon-bg)
}

.marker-type-icon.mi-static i {
    color: var(--ts-icon-color)
}

.marker-type-icon.mi-static svg {
    fill: var(--ts-icon-color)
}

.marker-type-icon.mi-dynamic {
    --ts-icon-bg: var(--ts-accent-1);
    --ts-icon-shadow: var(--ts-icon-bg);
    background: var(--ts-icon-bg)
}

.marker-type-icon.mi-dynamic i {
    color: #fff
}

.marker-type-icon.mi-dynamic svg {
    fill: #fff
}

.marker-type-text {
    font-weight: 500;
    font-size: var(--e-global-typography-text-font-size);
    font-weight: 600;
    background: #fff;
    padding: 5px 10px;
    border-radius: 50px;
    box-shadow: 0 0 5px #7a7a7a;
    color: var(--ts-shade-2)
}

.map-marker {
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translateZ(0);
    transition: transform .2s ease
}

.marker-type-image {
    width: 40px;
    height: 40px;
    -o-object-fit: cover;
    object-fit: cover;
    overflow: hidden;
    border-radius: 50%;
    box-shadow: 0 0 5px #7a7a7a
}

.marker-type-image img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

.marker-active {
    z-index: 20
}

.marker-active .mi-static {
    --ts-icon-color: var(--ts-accent-1)
}

.marker-active .marker-type-text {
    color: var(--ts-shade-1)
}

.marker-active .mi-dynamic {
    filter: brightness(1.1)
}

.marker-focused .map-marker {
    transform: scale(1.25)
}

.map-circle {
    border-radius: 100%;
    box-shadow: 0 0 0 3000px rgba(40, 46, 49, .3411764706)
}

.map-circle-center {
    --circle-color: #3181ff
}

.map-circle-center, .map-circle-center:before {
    width: 12px;
    height: 12px;
    background: var(--circle-color);
    transform: translate(-50%, -50%);
    z-index: 10;
    border-radius: 50%;
    position: absolute
}

.map-circle-center:before {
    content: "";
    top: 50%;
    left: 50%;
    -webkit-animation: pulsate 1s ease-out;
    -webkit-animation-iteration-count: infinite
}

@keyframes pulsate {
    0% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 0
    }
    50% {
        opacity: .2
    }
    to {
        transform: translate(-50%, -50%) scale(5);
        opacity: 0
    }
}

.ts-loading-popup {
    display: flex;
    justify-content: center;
    padding: 10px
}

.ts-loading-popup .ts-loader {
    width: 20px;
    height: 20px;
    border: 2.5px solid rgba(0, 0, 0, .05);
    border-bottom-color: rgba(0, 0, 0, .7)
}

@keyframes vx-pop-in {
    0% {
        transform: scale(0)
    }
    to {
        transform: scale(1)
    }
}

.ts-marker-cluster {
    width: 28px;
    height: 28px;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 90px;
    font-weight: 600;
    font-size: 13px;
    background-color: var(--ts-accent-1);
    box-shadow: 0 0 9px 0 var(--ts-accent-1);
    animation-name: vx-pop-in;
    animation-fill-mode: forwards;
    animation-duration: .7s;
    animation-iteration-count: 1;
    cursor: pointer
}

.ts-marker-bundle {
    max-width: 300px;
    max-height: 260px;
    pointer-events: all;
    display: flex;
    gap: 5px;
    justify-content: center;
    flex-wrap: wrap;
    padding: 5px
}

.ts-marker-bundle .marker-wrapper {
    transform: none;
    position: relative
}