/*
 * CoreListing Listings — default styles
 * --------------------------------------
 * Override anything below by adding rules to your theme's stylesheet
 * (Appearance → Customize → Additional CSS) targeting these classes:
 *   .corelisting-grid, .corelisting-card, .corelisting-photo,
 *   .corelisting-name, .corelisting-address, .corelisting-price,
 *   .corelisting-stat, .corelisting-status, .corelisting-empty,
 *   .corelisting-error
 * Wider page than your theme's default? Add:
 *   .corelisting-grid { max-width: none !important; }
 */
.corelisting-grid {
    display: grid;
    gap: 24px;
    margin: 24px 0;
    width: 100%;
}
.corelisting-cols-1 { grid-template-columns: 1fr; }
.corelisting-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.corelisting-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.corelisting-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.corelisting-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.corelisting-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 1024px) {
    .corelisting-cols-3, .corelisting-cols-4, .corelisting-cols-5, .corelisting-cols-6 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .corelisting-grid { grid-template-columns: 1fr !important; }
}
.corelisting-card {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
    transition: box-shadow .15s ease, transform .15s ease;
}
.corelisting-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.08); transform: translateY(-2px); }
.corelisting-card-link { display: block; color: inherit; text-decoration: none; }
.corelisting-photo {
    aspect-ratio: 16 / 10;
    background-size: cover;
    background-position: center;
    background-color: #f3f4f6;
}
.corelisting-photo-empty { background-color: #f3f4f6; }
.corelisting-body { padding: 14px 16px 16px; }
.corelisting-name { font-size: 1.05rem; margin: 0 0 6px; line-height: 1.3; }
.corelisting-address { color: #6b7280; font-size: .9rem; margin: 0 0 10px; }
.corelisting-meta { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.corelisting-price { font-weight: 600; color: #111827; }
.corelisting-type { font-size: .8rem; color: #6b7280; text-transform: uppercase; letter-spacing: .03em; }
.corelisting-empty, .corelisting-error {
    padding: 16px; border-radius: 6px; background: #f9fafb; color: #6b7280;
}
.corelisting-error { background: #fef2f2; color: #b91c1c; }
.corelisting-photo { position: relative; }
.corelisting-status {
    position: absolute; top: 10px; left: 10px;
    background: rgba(17,24,39,.85); color: #fff;
    font-size: .72rem; font-weight: 600; letter-spacing: .04em;
    padding: 4px 8px; border-radius: 4px; text-transform: uppercase;
}
.corelisting-stats {
    list-style: none; padding: 0; margin: 10px 0 0;
    display: flex; flex-wrap: wrap; gap: 6px;
}
.corelisting-stat {
    font-size: .78rem; color: #374151;
    background: #f3f4f6; padding: 3px 8px; border-radius: 999px;
}
