.leaflet-popup-content { margin:8px 12px; }
          .gallery-image { transition: transform .2s ease; }
          .gallery-image:hover { transform: scale(1.03); }
          .sd-listing-details dl dd { text-align: left !important; }

/* ---------------------------------------------------------------------
   Listing photo lightbox
   ------------------------------------------------------------------ */

.sd-listing-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(0, 0, 0, 0.95);
    cursor: zoom-out;
}

.sd-listing-lightbox__image {
    max-width: 90%;
    max-height: 90%;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

/* =====================================================================
   Listing Detail — template presentation
   Keep presentation out of QWeb markup.
   ===================================================================== */

.sd-listing-primary-image {
    max-height: 400px;
    object-fit: cover;
}

.sd-listing-thumbnail {
    height: 120px;
    object-fit: cover;
}

.sd-listing-more-photos {
    height: 120px;
}

.sd-listing-sell-action {
    height: 120px;
    padding-inline: 1rem;
}

.sd-listing-sell-price {
    font-size: 1.1rem;
    font-weight: 700;
}

.sd-listing-main-price {
    font-size: 2.5rem;
}

.sd-listing-description {
    white-space: pre-wrap;
}

.sd-listing-map {
    height: 300px;
}

.sd-listing-success-icon {
    font-size: 5rem;
}

.sd-listing-gallery-image {
    height: 250px;
    object-fit: cover;
    cursor: pointer;
}

.sd-listing-toast-container {
    z-index: 11000;
}

/* Book-viewing modal validation and success feedback. */
#bookModal .is-invalid {
  border-color: #dc3545 !important;
  background-image: none !important;
}

#bookModal .invalid-feedback {
  font-size: 0.75rem;
  font-weight: 600;
}

#booking_success_container i.fa-check-circle {
  animation: scaleIn 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes scaleIn {
  from { transform: scale(0); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}

/* =========================================================
   LISTING DETAIL — MOBILE SELLER ACTION BAR
   ========================================================= */

.sd-mobile-seller-bar {
    display: none;
}

@media (max-width: 767.98px) {
    body.has-sd-mobile-seller-bar {
        padding-bottom: 76px;
    }

    .sd-mobile-seller-bar {
        position: fixed;
        z-index: 1050;
        right: 0;
        bottom: 0;
        left: 0;
        display: flex;
        gap: .5rem;
        padding: .65rem;
        border-top: 1px solid rgba(0, 0, 0, .14);
        background: #fff;
        box-shadow: 0 -.35rem 1rem rgba(0, 0, 0, .12);
    }

    .sd-mobile-seller-bar .btn {
        flex: 1;
        white-space: nowrap;
    }
}

