/* ─────────────────────────────────────────────────────────────────────────────
   Shared property-card styles.
   Used on index.html (Featured Listings) AND search.html.
   Class prefix: .pcard
   ───────────────────────────────────────────────────────────────────────────── */

.pcard {
    cursor: pointer;
    transition: transform 0.2s;
}
.pcard:hover { transform: translateY(-2px); }

.pcard-img {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    aspect-ratio: 4/3;
    background: var(--bg-elevated);
}
.pcard-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* MLS# top-left */
.pcard-mls {
    position: absolute;
    top: 8px; left: 8px;
    background: rgba(0,0,0,0.65);
    color: #fff;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 0.7rem;
    font-weight: 500;
    backdrop-filter: blur(4px);
}

/* Photo count bottom-right */
.pcard-photo-count {
    position: absolute;
    bottom: 8px; right: 8px;
    background: rgba(0,0,0,0.6);
    color: rgba(255,255,255,0.85);
    padding: 2px 7px;
    border-radius: 4px;
    font-size: 0.67rem;
    font-weight: 500;
    backdrop-filter: blur(3px);
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

/* Top-right corner status pill (shared base for NEW/PENDING/SOLD/price-drop) */
.pcard-corner-tag,
.pcard-badge-new {
    position: absolute;
    top: 8px; right: 8px;
    color: #fff;
    padding: 3px 8px;
    border-radius: 4px;
    font-size: 0.68rem;
    font-weight: 700;
    backdrop-filter: blur(3px);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    line-height: 1;
}
.pcard-badge-new      { background: #2ea84c; }
.pcard-badge-reduced  { background: rgba(201,52,62,0.92); }
.pcard-badge-pending  { background: rgba(240,180,40,0.95); color: #1a1a1a; }
.pcard-badge-sold     { background: rgba(201,52,62,0.95); color: #fff; }

/* Bottom-left status badge ("Listed today" / "Sold MAR 6" / "Pending" / "X days on market") */
.pcard-dom-badge,
.pcard-status-badge {
    position: absolute;
    bottom: 8px; left: 8px;
    padding: 3px 8px;
    border-radius: 4px;
    font-size: 0.7rem;
    font-weight: 600;
    backdrop-filter: blur(3px);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    line-height: 1;
}
.pcard-dom-badge,
.pcard-status-active {
    background: rgba(0,0,0,0.65);
    color: rgba(255,255,255,0.92);
}
.pcard-status-pending {
    background: rgba(240,180,40,0.95);
    color: #1a1a1a;
}
.pcard-status-sold {
    background: rgba(201,52,62,0.95);
    color: #fff;
}

/* Card info block */
.pcard-info { padding: 0.6rem 0.1rem; }
.pcard-price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.2rem;
}
.pcard-price {
    font-size: 1.15rem;
    font-weight: 700;
    color: #fff;
}
.pcard-price-strike {
    color: var(--text-subtle);
    font-size: 0.78rem;
    font-weight: 500;
    text-decoration: line-through;
    margin-left: 0.35rem;
    vertical-align: middle;
}
.pcard-icons {
    display: flex;
    gap: 0.5rem;
}
.pcard-icons i {
    color: var(--text-subtle);
    font-size: 0.9rem;
    cursor: pointer;
    transition: color 0.2s;
}
.pcard-icons i:hover { color: var(--primary); }
.pcard-name {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 0.1rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pcard-address {
    font-size: 0.78rem;
    color: var(--text-muted);
    margin-bottom: 0.35rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pcard-specs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.75rem;
    font-size: 0.78rem;
    color: var(--text-muted);
}
.pcard-specs span {
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}
.pcard-specs i { font-size: 0.72rem; color: var(--text-subtle); }

/* Heart save state */
.pcard-heart { cursor: pointer; transition: color 0.2s, transform 0.15s; }
.pcard-heart:hover { color: var(--primary) !important; transform: scale(1.2); }
.pcard-heart.saved { color: var(--primary) !important; }
