/* ================================================================
   Property Listings Plugin — property-listings.css  v1.2.1
   ALL rules are scoped under .proplisting-wrap to prevent bleed.
   ALL class names use the proplisting__ prefix.
   ================================================================ */

.proplisting-wrap *,
.proplisting-wrap *::before,
.proplisting-wrap *::after {
    box-sizing: border-box !important;
}

/* ================================================================
   GALLERY CARDS  [property_gallery]
   ================================================================ */

.proplisting-wrap.proplisting-gallery--grid {
    display: grid !important;
    gap: 24px !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
    border: none !important;
    list-style: none !important;
}
.proplisting-wrap.proplisting-cols--1 { grid-template-columns: 1fr !important; }
.proplisting-wrap.proplisting-cols--2 { grid-template-columns: repeat(2, 1fr) !important; }
.proplisting-wrap.proplisting-cols--3 { grid-template-columns: repeat(3, 1fr) !important; }
.proplisting-wrap.proplisting-cols--4 { grid-template-columns: repeat(4, 1fr) !important; }

@media (max-width: 900px) {
    .proplisting-wrap.proplisting-cols--3,
    .proplisting-wrap.proplisting-cols--4 {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
@media (max-width: 600px) {
    .proplisting-wrap.proplisting-cols--2,
    .proplisting-wrap.proplisting-cols--3,
    .proplisting-wrap.proplisting-cols--4 {
        grid-template-columns: 1fr !important;
    }
}

/* ── Card container ── */
.proplisting-wrap .proplisting__card {
    background: #ffffff !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 12px rgba(0,0,0,.08) !important;
    transition: box-shadow .2s ease, transform .2s ease !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
}
.proplisting-wrap .proplisting__card:hover {
    box-shadow: 0 6px 24px rgba(0,0,0,.14) !important;
    transform: translateY(-2px) !important;
}

/* ── Card image area ── */
.proplisting-wrap .proplisting__card-imgwrap {
    position: relative !important;
    width: 100% !important;
    padding-top: 62% !important;
    overflow: hidden !important;
    display: block !important;
    margin: 0 !important;
}
.proplisting-wrap .proplisting__card-img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transition: transform .35s ease !important;
    display: block !important;
    border: none !important;
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}
.proplisting-wrap .proplisting__card:hover .proplisting__card-img {
    transform: scale(1.04) !important;
}
.proplisting-wrap .proplisting__card-img-placeholder {
    position: absolute !important;
    inset: 0 !important;
    background: #e8edf2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 52px !important;
    color: #b0bec5 !important;
}

/* ── Price badge ── */
.proplisting-wrap .proplisting__card-badge {
    position: absolute !important;
    bottom: 12px !important;
    left: 12px !important;
    background: #1a73e8 !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    padding: 4px 12px !important;
    border-radius: 20px !important;
    line-height: 1.4 !important;
    letter-spacing: .2px !important;
    text-decoration: none !important;
    margin: 0 !important;
}

/* ── Card body ── */
.proplisting-wrap .proplisting__card-body {
    padding: 16px 18px 20px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    flex: 1 !important;
    background: none !important;
    margin: 0 !important;
    border: none !important;
}
.proplisting-wrap .proplisting__card-title {
    font-size: 17px !important;
    font-weight: 700 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.3 !important;
    color: #1a1a2e !important;
    background: none !important;
    border: none !important;
}
.proplisting-wrap .proplisting__card-address {
    font-size: 13px !important;
    color: #666 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.4 !important;
    background: none !important;
    border: none !important;
}
.proplisting-wrap .proplisting__card-address .proplisting__icon {
    color: #e53935 !important;
    margin-right: 4px !important;
}

/* ── Stats row ── */
.proplisting-wrap .proplisting__stats {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px 16px !important;
    align-items: center !important;
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
    border: none !important;
    list-style: none !important;
}
.proplisting-wrap .proplisting__stat {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    font-size: 14px !important;
    color: #444 !important;
    white-space: nowrap !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
    line-height: 1.4 !important;
}
.proplisting-wrap .proplisting__stat .proplisting__icon {
    color: #1a73e8 !important;
    font-size: 14px !important;
    width: auto !important;
    height: auto !important;
    line-height: 1 !important;
    margin: 0 !important;
}
.proplisting-wrap .proplisting__stat strong {
    font-weight: 700 !important;
    color: inherit !important;
}

/* ── CTA button ── */
.proplisting-wrap .proplisting__card-cta {
    display: inline-block !important;
    margin-top: auto !important;
    padding: 9px 18px !important;
    background: #1a73e8 !important;
    color: #fff !important;
    border-radius: 6px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    text-align: center !important;
    transition: background .2s ease !important;
    align-self: flex-start !important;
    border: none !important;
    cursor: pointer !important;
    line-height: 1.4 !important;
    box-shadow: none !important;
    letter-spacing: normal !important;
}
.proplisting-wrap .proplisting__card-cta:hover {
    background: #1558b0 !important;
    color: #fff !important;
    text-decoration: none !important;
}


/* ================================================================
   ALL LISTINGS PAGE  [property_listings]
   ================================================================ */

.proplisting-wrap.proplisting-listings--all {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
    border: none !important;
}

.proplisting-wrap.proplisting-listings--all .proplisting__listing {
    padding-bottom: 60px !important;
    margin-bottom: 60px !important;
    border-bottom: 2px solid #e8edf2 !important;
    background: none !important;
}
.proplisting-wrap.proplisting-listings--all .proplisting__listing:last-child {
    border-bottom: none !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* ── Gallery ── */
.proplisting-wrap .proplisting__gallery {
    margin-bottom: 24px !important;
}
.proplisting-wrap .proplisting__main-imgwrap {
    position: relative !important;
    width: 100% !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    background: #111 !important;
    aspect-ratio: 16 / 9 !important;
    margin: 0 !important;
    padding: 0 !important;
}
.proplisting-wrap .proplisting__main-img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    transition: opacity .2s !important;
    border: none !important;
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}
.proplisting-wrap .proplisting__no-image {
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 72px !important;
    color: #555 !important;
    background: #1e1e1e !important;
    position: absolute !important;
    inset: 0 !important;
}

/* ── Arrow nav ── */
.proplisting-wrap .proplisting__nav-btn {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    background: rgba(0,0,0,.45) !important;
    border: none !important;
    color: #fff !important;
    width: 42px !important;
    height: 42px !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    font-size: 16px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background .2s ease !important;
    z-index: 2 !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
    box-shadow: none !important;
    text-decoration: none !important;
    outline: none !important;
}
.proplisting-wrap .proplisting__nav-btn:hover {
    background: rgba(0,0,0,.72) !important;
    color: #fff !important;
}
.proplisting-wrap .proplisting__nav-btn--prev { left: 14px !important; }
.proplisting-wrap .proplisting__nav-btn--next { right: 14px !important; }

/* ── Thumbnails ── */
.proplisting-wrap .proplisting__thumbs {
    display: flex !important;
    gap: 8px !important;
    margin-top: 10px !important;
    flex-wrap: wrap !important;
    padding: 0 !important;
    list-style: none !important;
    background: none !important;
    border: none !important;
}
.proplisting-wrap .proplisting__thumb-btn {
    width: 80px !important;
    height: 60px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 2px solid transparent !important;
    border-radius: 6px !important;
    overflow: hidden !important;
    cursor: pointer !important;
    background: none !important;
    opacity: .7 !important;
    transition: border-color .15s, opacity .15s !important;
    flex-shrink: 0 !important;
    display: block !important;
    line-height: 0 !important;
    box-shadow: none !important;
}
.proplisting-wrap .proplisting__thumb-btn img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    border: none !important;
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}
.proplisting-wrap .proplisting__thumb-btn:hover,
.proplisting-wrap .proplisting__thumb-btn.is-active {
    border-color: #1a73e8 !important;
    opacity: 1 !important;
}

/* ── Listing header ── */
.proplisting-wrap .proplisting__header {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 16px !important;
    margin-bottom: 16px !important;
    flex-wrap: wrap !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
}
.proplisting-wrap .proplisting__header-left {
    flex: 1 !important;
    min-width: 0 !important;
}
.proplisting-wrap .proplisting__title {
    font-size: 24px !important;
    font-weight: 700 !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
    color: #1a1a2e !important;
    line-height: 1.25 !important;
    background: none !important;
    border: none !important;
}
.proplisting-wrap .proplisting__address {
    font-size: 14px !important;
    color: #666 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.4 !important;
    background: none !important;
    border: none !important;
}
.proplisting-wrap .proplisting__address .proplisting__icon {
    color: #e53935 !important;
    margin-right: 5px !important;
}
.proplisting-wrap .proplisting__price {
    font-size: 28px !important;
    font-weight: 800 !important;
    color: #1a73e8 !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
}

/* ── Stats bar ── */
.proplisting-wrap .proplisting__stats-bar {
    background: #f4f7fc !important;
    border-radius: 10px !important;
    padding: 14px 20px !important;
    margin-bottom: 24px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px 28px !important;
    align-items: center !important;
    border: none !important;
    list-style: none !important;
}
.proplisting-wrap .proplisting__stats-bar .proplisting__stat {
    font-size: 15px !important;
}
.proplisting-wrap .proplisting__stats-bar .proplisting__stat strong {
    font-size: 18px !important;
    color: #1a1a2e !important;
    font-weight: 700 !important;
}
.proplisting-wrap .proplisting__stats-bar .proplisting__icon {
    font-size: 16px !important;
}

/* ── Description ── */
.proplisting-wrap .proplisting__desc {
    border-top: 1px solid #e8edf2 !important;
    padding-top: 22px !important;
    margin-top: 0 !important;
    background: none !important;
}
.proplisting-wrap .proplisting__desc-heading {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #1a1a2e !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    line-height: 1.3 !important;
    background: none !important;
    border: none !important;
}
.proplisting-wrap .proplisting__desc p {
    font-size: 15px;
    line-height: 1.7;
    color: #444;
    margin: 0 0 12px !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
}
.proplisting-wrap .proplisting__desc ul,
.proplisting-wrap .proplisting__desc ol {
    font-size: 15px;
    line-height: 1.7;
    color: #444;
    margin: 0 0 12px 24px !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
}
.proplisting-wrap .proplisting__desc ul { list-style: disc !important; }
.proplisting-wrap .proplisting__desc ol { list-style: decimal !important; }
.proplisting-wrap .proplisting__desc li {
    margin: 0 0 4px !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
}
.proplisting-wrap .proplisting__desc a {
    color: #1a73e8;
    text-decoration: underline !important;
}
.proplisting-wrap .proplisting__desc a:hover {
    color: #1558b0;
}
.proplisting-wrap .proplisting__desc strong { font-weight: 700 !important; }
.proplisting-wrap .proplisting__desc em { font-style: italic !important; }
.proplisting-wrap .proplisting__desc h2,
.proplisting-wrap .proplisting__desc h3,
.proplisting-wrap .proplisting__desc h4,
.proplisting-wrap .proplisting__desc h5,
.proplisting-wrap .proplisting__desc h6 {
    color: #1a1a2e;
    font-weight: 700;
    line-height: 1.3;
    margin: 18px 0 10px !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
}
.proplisting-wrap .proplisting__desc h2 { font-size: 20px; }
.proplisting-wrap .proplisting__desc h3 { font-size: 17px; }
.proplisting-wrap .proplisting__desc h4 { font-size: 15px; }
.proplisting-wrap .proplisting__desc h5 { font-size: 14px; }
.proplisting-wrap .proplisting__desc h6 { font-size: 13px; }
.proplisting-wrap .proplisting__desc blockquote {
    border-left: 4px solid #1a73e8 !important;
    padding: 4px 0 4px 14px !important;
    margin: 0 0 12px !important;
    color: #555;
    font-style: italic !important;
    background: none !important;
}
.proplisting-wrap .proplisting__desc table {
    border-collapse: collapse !important;
    margin: 0 0 12px !important;
    width: auto;
    max-width: 100%;
}
.proplisting-wrap .proplisting__desc table td,
.proplisting-wrap .proplisting__desc table th {
    border: 1px solid #d0d7de !important;
    padding: 8px 12px !important;
    text-align: left;
}
.proplisting-wrap .proplisting__desc table th {
    background: #f4f7fc;
    font-weight: 700;
}
.proplisting-wrap .proplisting__desc hr {
    border: none !important;
    border-top: 1px solid #e8edf2 !important;
    margin: 18px 0 !important;
    height: 0 !important;
}
.proplisting-wrap .proplisting__desc span { color: inherit; }

/* ── Responsive ── */
@media (max-width: 600px) {
    .proplisting-wrap .proplisting__title  { font-size: 20px !important; }
    .proplisting-wrap .proplisting__price  { font-size: 22px !important; }
    .proplisting-wrap .proplisting__header { flex-direction: column !important; }
    .proplisting-wrap .proplisting__nav-btn { width: 34px !important; height: 34px !important; font-size: 13px !important; }
    .proplisting-wrap .proplisting__thumb-btn { width: 60px !important; height: 46px !important; }
}
