/* Общий план: лейблы располагаются над или под границей дома. */
.item-page__page_project section.imap .places,
section.imap__project .places {
    pointer-events: none;
}
.item-page__page_project section.imap .places > .place,
section.imap__project .places > .place {
    pointer-events: none;
    --map-label-bg: #fff;
}
.item-page__page_project section.imap .places > .place__primary,
section.imap__project .places > .place__primary {
    --map-label-bg: #15ad66;
}
section.imap__project .places > .place.map-label--above {
    transform: translate(-50%, calc(-100% - 8px));
}
section.imap__project .places > .place.map-label--below {
    transform: translate(-50%, 8px);
}
section.imap__project .places > .place.map-label--above::after,
section.imap__project .places > .place.map-label--below::after {
    content: '';
    position: absolute;
    left: var(--map-label-arrow-x, 50%);
    width: 0;
    height: 0;
    transform: translateX(-50%);
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
}
section.imap__project .places > .place.map-label--above::after {
    bottom: -7px;
    /* Two pixels of overlap hide a subpixel seam without moving the arrow tip. */
    border-top: 9px solid var(--map-label-bg);
}
section.imap__project .places > .place.map-label--below::after {
    top: -7px;
    border-bottom: 9px solid var(--map-label-bg);
}
section.imap__project .places.map-labels-live > .place {
    visibility: hidden;
}
section.imap__project .places.map-labels-live > .place.map-label-visible {
    visibility: visible;
}
