/* Le shortcode est imbriqué dans une rangée Kadence étroite : on remet cette
 * rangée et ses éventuelles rangées parentes à la largeur du contenu du site. */
.kb-row-layout-wrap:has(.fig-hotels-map) > .kt-row-column-wrap {
    width: min(1245px, calc(100% - 48px)) !important;
    max-width: 1245px !important;
    margin-right: auto !important;
    margin-left: auto !important;
}

.fig-hotels-map {
    width: 100%;
    max-width: 1245px;
    margin-right: auto;
    margin-left: auto;
    height: clamp(380px, 42vw, 550px);
    overflow: hidden;
    background: var(--fig-cream, #f3f0e9);
    border: 1px solid rgb(48 77 81 / 12%);
    border-radius: 16px;
    font-family: var(--global-body-font-family, sans-serif);
}

.fig-hotels-map .leaflet-control-zoom {
    display: flex !important;
    flex-direction: column;
    overflow: hidden;
    border: 0;
    border-radius: 10px;
    box-shadow: 0 8px 28px rgb(32 37 35 / 13%);
}

.fig-hotels-map .leaflet-control-zoom a {
    display: grid !important;
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    place-items: center;
    color: var(--fig-green-dark, #203f42);
    background: rgb(250 249 246 / 94%);
    border-color: rgb(48 77 81 / 10%);
    font: 700 22px/1 sans-serif !important;
    text-decoration: none !important;
}

.fig-map-marker,
.fig-map-cluster {
    display: grid;
    place-items: center;
    background: transparent;
}

.fig-hotels-map .fig-map-cluster span {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: #fff !important;
    background: var(--fig-green, #304d51);
    border: 2px solid rgb(255 255 255 / 92%);
    border-radius: 50%;
    box-shadow: 0 7px 20px rgb(32 63 66 / 28%);
    font-size: 13px;
    font-weight: 700;
}

.fig-map-marker svg {
    display: block;
    width: 36px;
    height: 48px;
    overflow: visible;
    filter: drop-shadow(0 7px 8px rgb(32 63 66 / 28%));
}

.fig-map-marker path {
    fill: var(--fig-green, #304d51);
    stroke: rgb(255 255 255 / 94%);
    stroke-width: 1.5;
}

.fig-map-marker circle {
    fill: var(--fig-paper, #faf9f6);
}

.fig-hotels-map .fig-map-cluster span {
    background: var(--fig-green-dark, #203f42);
    box-shadow: 0 0 0 7px rgb(48 77 81 / 14%), 0 8px 24px rgb(32 63 66 / 25%);
}

.fig-hotels-map .leaflet-popup-content-wrapper {
    color: var(--fig-ink, #202523);
    background: var(--fig-paper, #faf9f6);
    border-radius: 10px;
    box-shadow: 0 14px 40px rgb(32 37 35 / 18%);
}

.fig-hotels-map .leaflet-popup-tip {
    background: var(--fig-paper, #faf9f6);
}

.fig-map-popup {
    min-width: 190px;
    padding: 4px 2px;
}

.fig-map-popup__logo {
    display: block;
    width: 92px;
    height: 72px;
    margin: 0 auto 12px;
    object-fit: contain;
}

.fig-map-popup strong {
    display: block;
    color: var(--fig-green-dark, #203f42);
    font-size: 16px;
    line-height: 1.25;
}

.fig-map-popup__stars {
    display: block;
    margin-top: 4px;
    color: var(--fig-green, #304d51);
    font-size: 11px;
    letter-spacing: .08em;
}

.fig-map-popup p {
    margin: 10px 0;
    color: var(--fig-ink, #202523);
    line-height: 1.5;
}

.fig-map-popup a {
    display: inline-flex;
    gap: 8px;
    color: var(--fig-green, #304d51);
    font-weight: 700;
    text-decoration: none;
}

.fig-hotels-map .leaflet-control-attribution {
    color: rgb(32 37 35 / 72%);
    background: rgb(250 249 246 / 78%);
    font-size: 10px;
}

.fig-hotels-map__empty {
    padding: 20px;
    color: var(--fig-muted, #68706c);
    background: var(--fig-cream, #f3f0e9);
    border: 1px dashed var(--fig-line, #d8d8d0);
}

@media (max-width: 600px) {
    .kb-row-layout-wrap:has(.fig-hotels-map) > .kt-row-column-wrap {
        width: calc(100% - 24px) !important;
    }

    .fig-hotels-map {
        width: 100%;
        height: 380px;
        border-radius: 10px;
    }
}
