/* Hotel result map: primary markers by default, neutral markers on hover. */
body.page-id-95 :is(#map-search-form, #map-search-form-mb) .stt-price-label {
    cursor: pointer !important;
}

/* MarkerWithLabel renders an opaque visual label and a transparent mouse target.
 * Let pointer events pass through the visual copy so every click reaches the
 * Google marker listener on the mouse-target copy. */
body.page-id-95 :is(#map-search-form, #map-search-form-mb) .stt-price-label:not([style*="opacity: 0.01"]) {
    pointer-events: none !important;
}

body.page-id-95 :is(#map-search-form, #map-search-form-mb) .stt-price-label .inner {
    cursor: pointer !important;
    color: #ffffff !important;
    background: #0b5b91 !important;
    border: 1px solid #0b5b91;
    box-shadow: 0 6px 18px rgba(11, 79, 131, 0.24) !important;
}

body.page-id-95 :is(#map-search-form, #map-search-form-mb) .stt-price-label .inner::after {
    border-top-color: #0b5b91 !important;
}

body.page-id-95 :is(#map-search-form, #map-search-form-mb) .stt-price-label:is(.hover, .c-hover, .exibre-marker-hover) {
    z-index: 9999 !important;
}

body.page-id-95 :is(#map-search-form, #map-search-form-mb) .stt-price-label:is(.hover, .c-hover, .exibre-marker-hover) .inner {
    color: #111827 !important;
    background: #ffffff !important;
    border-color: #d7dee8;
    box-shadow: 0 8px 22px rgba(17, 29, 63, 0.18) !important;
}

body.page-id-95 :is(#map-search-form, #map-search-form-mb) .stt-price-label:is(.hover, .c-hover, .exibre-marker-hover) .inner::after {
    border-top-color: #ffffff !important;
}

/* Keep the existing Traveler hotel popup visually clear above the map. */
body.page-id-95 :is(#map-search-form, #map-search-form-mb) .infoBox {
    filter: drop-shadow(0 14px 28px rgba(17, 29, 63, 0.22));
}

body.page-id-95 :is(#map-search-form, #map-search-form-mb) .infoBox > div {
    overflow: hidden;
    border: 1px solid #dfe5ee;
    border-radius: 14px !important;
}

/* Make Traveler's existing map-popup close control visible and usable. */
body.page-id-95 .infoBox .close-popup-on-map {
    position: absolute !important;
    top: -13px !important;
    right: -13px !important;
    z-index: 10020 !important;
    display: flex !important;
    width: 36px !important;
    height: 36px !important;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
    color: #0b4f83 !important;
    background: #ffffff !important;
    border: 1px solid #d7e0eb !important;
    border-radius: 50% !important;
    box-shadow: 0 7px 20px rgba(17, 29, 63, 0.22) !important;
    cursor: pointer !important;
}

body.page-id-95 .infoBox .close-popup-on-map::before {
    content: "\00d7";
    display: block;
    font-family: Arial, sans-serif;
    font-size: 28px;
    font-weight: 400;
    line-height: 1;
    transform: translateY(-1px);
}

body.page-id-95 .infoBox .close-popup-on-map .stt-icon {
    display: none !important;
}

body.page-id-95 .infoBox .close-popup-on-map:hover,
body.page-id-95 .infoBox .close-popup-on-map:focus-visible {
    color: #ffffff !important;
    background: #0b5b91 !important;
    border-color: #0b5b91 !important;
    outline: none;
}

/* Deterministic hotel card used for price-marker clicks. Traveler's InfoBox
 * occasionally drops the click during delayed map initialization; this card
 * uses the already-rendered result data and is independent of that race. */
body.page-id-95 .exibre-map-popup-host {
    position: relative;
}

body.page-id-95 .exibre-map-hotel-popup {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 10010;
    width: min(360px, calc(100% - 32px));
    overflow: visible;
    background: #ffffff;
    border: 1px solid #dfe5ee;
    border-radius: 20px;
    box-shadow: 0 20px 54px rgba(17, 29, 63, 0.28);
    transform: translate(-50%, -50%) scale(0.5625);
    transform-origin: center;
}

body.page-id-95 .exibre-map-hotel-popup__link {
    display: block;
    overflow: hidden;
    color: #111d3f;
    text-decoration: none;
    border-radius: inherit;
}

body.page-id-95 .exibre-map-hotel-popup__image {
    display: block;
    width: 100%;
    height: 190px;
    object-fit: cover;
}

body.page-id-95 .exibre-map-hotel-popup__content {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 22px 24px 24px;
}

body.page-id-95 .exibre-map-hotel-popup__title {
    font-size: 23px;
    font-weight: 700;
    line-height: 1.25;
}

body.page-id-95 .exibre-map-hotel-popup__address {
    color: #61708a;
    font-size: 15px;
    line-height: 1.55;
}

body.page-id-95 .exibre-map-hotel-popup__price {
    padding-top: 14px;
    color: #0b4f83;
    border-top: 1px solid #e3e8ef;
    font-size: 22px;
    font-weight: 700;
}

body.page-id-95 .exibre-map-hotel-popup__action {
    align-self: flex-start;
    color: #0b5b91;
    font-size: 14px;
    font-weight: 700;
}

body.page-id-95 .exibre-map-hotel-popup__close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
    display: flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: #0b4f83;
    background: #ffffff;
    border: 1px solid #d7e0eb;
    border-radius: 50%;
    box-shadow: 0 7px 20px rgba(17, 29, 63, 0.28);
    cursor: pointer;
    font: 400 28px/1 Arial, sans-serif;
}

body.page-id-95 .exibre-map-hotel-popup__close:hover,
body.page-id-95 .exibre-map-hotel-popup__close:focus-visible {
    color: #ffffff;
    background: #0b5b91;
    border-color: #0b5b91;
    outline: none;
}

/* Trade-fair reference marker popup. Its content comes from the selected
 * event-page fields: featured image, map_location and event dates. */
body.page-id-95 .exibre-map-event-popup {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 10011;
    width: min(360px, calc(100% - 32px));
    overflow: visible;
    background: #ffffff;
    border: 1px solid #dfe5ee;
    border-radius: 20px;
    box-shadow: 0 20px 54px rgba(17, 29, 63, 0.28);
    transform: translate(-50%, -50%) scale(0.5625);
    transform-origin: center;
}

body.page-id-95 .exibre-map-event-popup__logo-wrap {
    display: flex;
    height: 164px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: linear-gradient(135deg, #f4f7fc 0%, #f8f2fa 100%);
    border-radius: 20px 20px 0 0;
}

body.page-id-95 .exibre-map-event-popup__logo {
    display: block;
    width: auto;
    max-width: 68%;
    height: auto;
    max-height: 104px;
    object-fit: contain;
}

body.page-id-95 .exibre-map-event-popup__content {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 22px 24px 24px;
}

body.page-id-95 .exibre-map-event-popup__label {
    align-self: flex-start;
    padding: 6px 10px;
    color: #7d2f86;
    background: #f8f0f9;
    border: 1px solid #e7d4e9;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}

body.page-id-95 .exibre-map-event-popup__title {
    color: #111d3f;
    font-size: 23px;
    font-weight: 700;
    line-height: 1.25;
}

body.page-id-95 .exibre-map-event-popup__address {
    color: #61708a;
    font-size: 15px;
    line-height: 1.5;
}

body.page-id-95 .exibre-map-event-popup__dates {
    padding-top: 12px;
    color: #0b4f83;
    border-top: 1px solid #e3e8ef;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
}

body.page-id-95 .exibre-map-event-popup__close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
    display: flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: #0b4f83;
    background: #ffffff;
    border: 1px solid #d7e0eb;
    border-radius: 50%;
    box-shadow: 0 7px 20px rgba(17, 29, 63, 0.28);
    cursor: pointer;
    font: 400 28px/1 Arial, sans-serif;
}

body.page-id-95 .exibre-map-event-popup__close:hover,
body.page-id-95 .exibre-map-event-popup__close:focus-visible {
    color: #ffffff;
    background: #0b5b91;
    border-color: #0b5b91;
    outline: none;
}

@media (max-width: 767px) {
    body.page-id-95 .exibre-map-hotel-popup {
        top: auto;
        bottom: 22px;
        transform: translateX(-50%) scale(0.5625);
        transform-origin: center bottom;
    }

    body.page-id-95 .exibre-map-event-popup {
        top: auto;
        bottom: 22px;
        transform: translateX(-50%) scale(0.5625);
        transform-origin: center bottom;
    }

    body.page-id-95 .exibre-map-hotel-popup__image {
        height: 150px;
    }
}
