/* ================================================================
   OSM Map — Carte interactive OpenStreetMap
   ================================================================ */

.osm-map {
    width: 100%;
    height: 100%;
    min-height: 300px;
    border-radius: 16px;
    overflow: hidden;
    z-index: 1;
}

/* ── Custom popup ──────────────────────────────────────────────── */
.osm-map .leaflet-popup-content-wrapper {
    border-radius: 12px;
    font-family: var(--font-rubik);
    font-size: 13px;
    color: var(--dark1);
    box-shadow: 0 6px 24px rgba(55, 36, 28, 0.16);
    padding: 0;
    overflow: hidden;
    width: 380px !important;
    max-width: 380px !important;
}

.osm-map .leaflet-popup-content {
    margin: 0 !important;
    width: 380px !important;
}

.osm-map .leaflet-popup-tip {
    box-shadow: 0 4px 16px rgba(55, 36, 28, 0.08);
}

.osm-map .leaflet-popup-close-button {
    width: 28px !important;
    height: 28px !important;
    top: 8px !important;
    right: 8px !important;
    background: var(--white) !important;
    border-radius: 50% !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--dark1) !important;
    line-height: 1 !important;
    z-index: 10;
}

.osm-map .leaflet-popup-close-button:hover {
    background: var(--light-warm) !important;
    color: var(--main-color-orange) !important;
}

/* Popup link wrapper */
.osm-popup__link {
    display: block;
    text-decoration: none;
    color: inherit;
}

/* Image */
.osm-popup__img-wrap {
    width: 100%;
    height: 200px;
    overflow: hidden;
}

.osm-popup__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Body */
.osm-popup__body {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 12px 14px;
}

.osm-popup__title {
    font-weight: 700;
    font-size: 13px;
    color: var(--dark1);
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.osm-popup__location {
    font-size: 11px;
    color: var(--neutral-500);
    display: flex;
    align-items: center;
    gap: 4px;
}

.osm-popup__price {
    font-size: 14px;
    font-weight: 700;
    color: var(--main-color-orange);
    margin-top: 2px;
}

.osm-popup__cta {
    display: inline-block;
    margin-top: 6px;
    font-size: 11px;
    font-weight: 600;
    color: var(--main-color);
}

/* ── Custom marker pin (legacy) ────────────────────────────────── */
.osm-marker-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: var(--dark1);
    border: 3px solid var(--white);
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

.osm-marker-icon i {
    transform: rotate(45deg);
    color: var(--main-color);
    font-size: 12px;
}

/* ── Chalet marker with price ─────────────────────────────────── */
.osm-marker-chalet {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: none !important;
    border: none !important;
}

.osm-marker-chalet__pin {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--white);
    border: 2px solid var(--main-color);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.osm-marker-chalet__img {
    width: 26px;
    height: 26px;
    object-fit: contain;
}

.osm-marker-chalet__price {
    margin-top: 2px;
    padding: 2px 8px;
    background: var(--main-color);
    color: var(--white);
    font-family: var(--font-rubik);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.3;
    border-radius: 10px;
    white-space: nowrap;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
    text-align: center;
}

/* ── Custom zoom controls (counter-btn) ────────────────────────── */
.osm-zoom {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 12px 12px 0 0;
}

.hostings-map-panel.is-fullscreen .osm-zoom {
    margin-right: 28px;
}

.osm-zoom .counter-btn {
    width: 36px;
    height: 36px;
    background: var(--white);
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(55, 36, 28, 0.15);
}

.osm-zoom .counter-btn__ring {
    border-color: var(--main-color);
}

.osm-zoom .counter-btn__icon {
    background: var(--main-color);
}

.osm-zoom .counter-btn--plus .counter-btn__icon {
    width: 12px;
    height: 12px;
    left: 12px;
    top: 12px;
}

.osm-zoom .counter-btn--minus .counter-btn__icon {
    width: 12px;
    height: 2px;
    left: 12px;
    top: 17px;
}

.osm-zoom .counter-btn:hover .counter-btn__ring {
    border-color: var(--dark1);
}

.osm-zoom .counter-btn:hover .counter-btn__icon {
    background: var(--dark1);
}

/* ── Card focus depuis la map ─────────────────────────────────── */
.property-card--map-focus {
    outline: 3px solid var(--main-color-orange);
    outline-offset: 2px;
    border-radius: var(--border-radius-large, 12px);
    transition: outline 0.3s ease;
}
