/*
 * WEB-P14G shared Global Presence map, markers, and metrics.
 * Light mist / dot-matrix treatment. Scoped classes only.
 */
.vc-presence-map {
    position: relative;
    background: #f7f6f2;
    border: 1px solid #e6e1d6;
    overflow: visible;
    min-height: 0;
}
.vc-presence-map__world {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 2 / 1;
}
.vc-presence-map__ocean { fill: #f7f6f2; }
.vc-presence-map__dots { fill: #b3bcc4; }
.vc-presence-map--compact { max-height: none; }

.vc-presence-map__pins {
    list-style: none;
    margin: 0;
    padding: 0;
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.vc-presence-map__pin {
    position: absolute;
    transform: translate(-50%, -50%);
    pointer-events: auto;
    z-index: 2;
}
html body button.vc-presence-pin {
    appearance: none;
    -webkit-appearance: none;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: inherit !important;
    width: 32px;
    height: 32px;
    min-height: 0 !important;
    min-width: 0;
    padding: 0 !important;
    margin: 0;
    cursor: pointer;
    display: flex !important;
    align-items: center;
    justify-content: center;
    position: relative;
    transform: none;
}
.vc-presence-pin__mark {
    display: block;
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    background: var(--vc-bx-gold, #d9ad22);
    transform: rotate(45deg);
    box-shadow: 0 0 0 2px rgba(217, 173, 34, 0.22);
    transition: transform 180ms ease, box-shadow 180ms ease;
}
.vc-presence-pin:hover .vc-presence-pin__mark,
.vc-presence-pin:focus-visible .vc-presence-pin__mark,
.vc-presence-pin.is-active .vc-presence-pin__mark {
    transform: rotate(45deg) scale(1.2);
    box-shadow: 0 0 0 5px rgba(217, 173, 34, 0.28);
}
.vc-presence-pin:focus-visible {
    outline: 2px solid var(--vc-bx-gold, #d9ad22);
    outline-offset: 3px;
}
.vc-presence-pin__leader {
    position: absolute;
    height: 1px;
    background: #c5ccd3;
    pointer-events: none;
}
.vc-presence-pin__label {
    position: absolute;
    white-space: nowrap;
    font-size: 0.6875rem;
    font-weight: 650;
    letter-spacing: 0.04em;
    color: var(--vc-bx-navy, #0b1f33);
    pointer-events: none;
    line-height: 1.2;
}
.vc-presence-map__pin--west .vc-presence-pin__leader {
    right: calc(50% + 6px);
    top: 50%;
    width: 18px;
}
.vc-presence-map__pin--west .vc-presence-pin__label {
    right: calc(50% + 28px);
    top: 50%;
    transform: translateY(-50%);
}
.vc-presence-map__pin--east .vc-presence-pin__leader {
    left: calc(50% + 6px);
    top: 50%;
    width: 18px;
}
.vc-presence-map__pin--east .vc-presence-pin__label {
    left: calc(50% + 28px);
    top: 50%;
    transform: translateY(-50%);
}
.vc-presence-map__pin--south .vc-presence-pin__leader {
    left: 50%;
    top: calc(50% + 6px);
    width: 1px;
    height: 14px;
    background: #c5ccd3;
}
.vc-presence-map__pin--south .vc-presence-pin__label {
    left: 50%;
    top: calc(50% + 22px);
    transform: translateX(-50%);
}

.vc-presence-metrics {
    list-style: none;
    margin: 28px 0 0;
    padding: 24px 0 0;
    border-top: 1px solid #e2e6ea;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px 28px;
}
.vc-presence-metrics__value {
    display: block;
    color: var(--vc-bx-navy, #0b1f33);
    font-size: clamp(2.1rem, 1.5rem + 2vw, 3.35rem);
    font-weight: 650;
    letter-spacing: -0.045em;
    line-height: 0.95;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.vc-presence-metrics__num {
    display: inline-block;
    text-align: right;
}
.vc-presence-metrics__prefix,
.vc-presence-metrics__suffix {
    display: inline;
}
.vc-presence-metrics__label {
    display: block;
    margin-top: 8px;
    color: var(--vc-bx-steel, #4f6475);
    font-size: 0.6875rem;
    font-weight: 650;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    line-height: 1.35;
}

@media (max-width: 900px) {
    .vc-presence-pin__label,
    .vc-presence-pin__leader { display: none; }
    .vc-presence-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
    .vc-presence-metrics { gap: 16px 18px; }
}
