/* ================================================================
   Listing Section — Layout, grille et état vide
   Filtres → voir css/components/filters/filter-bar.css
   ================================================================ */

.listing-section {
    padding: 48px 40px 64px;
    max-width: 1360px;
    margin: 0 auto;
}

/* ── Header ─────────────────────────────────────────────────────── */
.listing-section__header {
    margin-bottom: 36px;
}

.listing-section__title {
    font-family: var(--font-rubik);
    font-weight: 700;
    font-size: 32px;
    color: var(--dark1);
    margin: 0 0 8px;
    line-height: 1.25;
}

.listing-section__subtitle {
    font-family: var(--font-rubik);
    font-size: 15px;
    color: var(--neutral-500);
    margin: 0;
    line-height: 1.6;
}

/* ── Grid ───────────────────────────────────────────────────────── */
.listing-section__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

/* ── Empty state — override contextuel (styles dans empty-state.css) ── */
.listing-section__empty {
    grid-column: 1 / -1;
}

/* ================================================================
   Responsive
   ================================================================ */

@media (max-width: 1200px) {
    .listing-section__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 900px) {
    .listing-section {
        padding: 36px 20px 48px;
    }

    .listing-section__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
}

@media (max-width: 560px) {
    .listing-section {
        padding: 24px 16px 40px;
    }

    .listing-section__grid {
        grid-template-columns: 1fr;
    }

    .listing-section__title {
        font-size: 24px;
    }
}
