// ===== assets/css/listing.css =====
.listing-hero {
    background: linear-gradient(135deg, #1a1a2e 0%, #2d1b1b 100%);
    padding: 56px 24px 48px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.listing-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 60% 50%, rgba(198, 40, 40, 0.2) 0%, transparent 70%);
    pointer-events: none;
}

.listing-hero-search-page {
    padding: 40px 24px 36px;
}

.listing-hero-inner {
    max-width: var(--max-width);
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.listing-hero-title {
    font-family: var(--font-titre);
    font-size: clamp(26px, 5vw, 42px);
    font-weight: 900;
    color: #fff;
    line-height: 1.15;
    letter-spacing: -0.5px;
    margin-bottom: 12px;
}

.listing-hero-title-sm {
    font-size: clamp(22px, 4vw, 30px);
}

.listing-hero-title span {
    color: var(--rouge);
}

.listing-hero-sub {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.62);
    max-width: 560px;
    margin: 0 auto;
    line-height: 1.6;
}

.listing-breadcrumb {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    color: rgba(255, 255, 255, 0.35);
    justify-content: center;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.listing-breadcrumb a {
    color: rgba(255, 255, 255, 0.55);
    text-decoration: none;
}

.listing-breadcrumb a:hover {
    color: rgba(255, 255, 255, 0.85);
}

.listing-breadcrumb-sep {
    color: rgba(255, 255, 255, 0.2);
}

.listing-hero-search {
    max-width: 540px;
    margin: 28px auto 0;
}

.listing-hero-search-tight {
    margin-top: 20px;
}

.listing-search-form {
    width: 100%;
}

.listing-search-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    border-radius: var(--radius-full);
    padding: 10px 12px 10px 14px;
    border: 1.5px solid var(--gris-200);
    background: var(--blanc);
    box-shadow: var(--shadow-sm);
}

.listing-search-wrap-dark {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.2);
    box-shadow: none;
}

.listing-search-wrap:focus-within {
    border-color: var(--rouge);
    box-shadow: 0 0 0 3px var(--rouge-border);
}

.listing-search-wrap-dark:focus-within {
    border-color: rgba(255, 255, 255, 0.35);
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.08);
}

.listing-search-icon {
    color: var(--gris-400);
    font-size: 14px;
    flex-shrink: 0;
}

.listing-search-wrap-dark .listing-search-icon {
    color: rgba(255, 255, 255, 0.75);
}

.listing-search-input {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 14px;
    color: var(--noir);
    font-family: var(--font-corps);
}

.listing-search-input::placeholder {
    color: var(--gris-400);
}

.listing-search-input-light {
    color: #fff;
}

.listing-search-input-light::placeholder {
    color: rgba(255, 255, 255, 0.68);
}

.listing-search-submit {
    border: 0;
    border-radius: var(--radius-full);
    background: var(--rouge);
    color: #fff;
    padding: 9px 16px;
    font-size: 13px;
    font-weight: 700;
    font-family: var(--font-corps);
    cursor: pointer;
    flex-shrink: 0;
    transition: var(--transition);
}

.listing-search-submit:hover {
    background: var(--rouge-hover);
}

.listing-body {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 40px 24px 72px;
}

.listing-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    gap: 12px;
    flex-wrap: wrap;
}

.listing-count {
    font-size: 14px;
    color: var(--gris-500);
    font-weight: 500;
}

.listing-count strong {
    color: var(--noir);
}

.listing-filters {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 28px;
}

.listing-filters-center {
    justify-content: center;
    margin-top: 18px;
    margin-bottom: 0;
}

.listing-filter-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: var(--radius-full);
    font-size: 13.5px;
    font-weight: 500;
    text-decoration: none;
    border: 1.5px solid var(--gris-200);
    color: var(--gris-700);
    background: var(--blanc);
    transition: var(--transition);
    cursor: pointer;
}

.listing-filter-tag:hover,
.listing-filter-tag.active {
    border-color: var(--rouge);
    color: var(--rouge);
    background: var(--rouge-pale);
}

.listing-filter-count {
    opacity: 0.55;
    font-size: 11px;
}

.listing-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 40px;
}

.listing-empty {
    text-align: center;
    padding: 72px 24px;
    color: var(--gris-400);
}

.listing-empty i {
    font-size: 44px;
    display: block;
    margin-bottom: 16px;
    opacity: 0.35;
}

.listing-empty p {
    font-size: 15px;
    margin-bottom: 20px;
    color: var(--gris-500);
}

.listing-rating-mini {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: 600;
    color: var(--gris-700);
}

.listing-rating-mini-star {
    color: #fbbf24;
}

.listing-rating-mini-count {
    color: var(--gris-400);
    font-weight: 400;
}

.listing-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    margin-bottom: 56px;
    flex-wrap: wrap;
}

.listing-page-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border-radius: var(--radius-sm);
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    color: var(--gris-700);
    background: #fff;
    border: 1.5px solid var(--gris-200);
    transition: var(--transition);
}

.listing-page-btn:hover {
    border-color: var(--rouge-border);
    color: var(--rouge);
    background: var(--rouge-pale);
}

.listing-page-btn.active {
    background: var(--rouge);
    border-color: var(--rouge);
    color: #fff;
}

.listing-page-btn.disabled {
    color: var(--gris-300);
    pointer-events: none;
}

.listing-page-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    color: var(--gris-400);
    font-size: 14px;
}

.listing-seo-block {
    border-top: 1px solid var(--gris-100);
    padding-top: 48px;
    margin-top: 16px;
}

.listing-seo-block h2 {
    font-family: var(--font-titre);
    font-size: 20px;
    font-weight: 700;
    color: var(--noir);
    margin-bottom: 12px;
}

.listing-seo-block p {
    font-size: 14px;
    color: var(--gris-500);
    line-height: 1.8;
    max-width: 820px;
}

.listing-city-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

.listing-city-pill {
    display: inline-flex;
    align-items: center;
    padding: 5px 14px;
    border-radius: var(--radius-full);
    font-size: 13px;
    color: var(--gris-600);
    background: var(--gris-100);
    text-decoration: none;
    transition: var(--transition);
}

.listing-city-pill:hover {
    background: var(--rouge-pale);
    color: var(--rouge);
}

.card-commerce-img-placeholder {
    width: 100%;
    height: 100%;
    background: var(--gris-100);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 36px;
    color: var(--gris-300);
}

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

@media (max-width: 640px) {
    .listing-hero {
        padding: 40px 20px 36px;
    }

    .listing-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .listing-body {
        padding: 28px 16px 56px;
    }

    .listing-search-wrap {
        flex-wrap: wrap;
        border-radius: var(--radius-lg);
    }

    .listing-search-submit {
        width: 100%;
    }
}

.listing-filters-advanced {
    margin-top: 12px;
    padding: 16px 0 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    justify-content: center;
}

.listing-filter-tag--icon {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.listing-filter-reset {
    border-color: rgba(255, 255, 255, 0.3);
    color: rgba(255, 255, 255, 0.5);
    background: transparent;
}

.listing-filter-reset:hover {
    border-color: var(--rouge-border);
    color: var(--rouge);
    background: var(--rouge-pale);
}

.listing-active-filters {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 16px;
    padding: 12px 16px;
    background: var(--gris-50);
    border: 1px solid var(--gris-100);
    border-radius: var(--radius);
    font-size: 13.5px;
    color: var(--gris-600);
}

.listing-active-filter-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    background: var(--rouge-pale);
    border: 1px solid var(--rouge-border);
    color: var(--rouge-hover);
    border-radius: var(--radius-full);
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
}

.listing-active-filter-badge:hover {
    background: var(--rouge);
    color: #fff;
    border-color: var(--rouge);
}


/* MIAMICH SEO 2026-11-14 : annuaires halal ciblés, styles isolés pour ne pas toucher aux autres pages. */
.seo-cat { background:#f8f9fb; color:#202332; font-family:var(--font-corps, 'DM Sans',sans-serif); }
.seo-cat a { text-decoration:none; }
.seo-cat-hero { color:#fff; padding:56px 0 90px; background: radial-gradient(circle at 96% 4%,rgba(255,255,255,.12),transparent 35%),linear-gradient(135deg,#171c2e,#43302f 75%,#a33528); }
.seo-cat-crumb { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:0 0 32px; color:rgba(255,255,255,.73);font-size:13px; }
.seo-cat-crumb a { color:#fff; }
.seo-cat-eyebrow { display:inline-flex;gap:9px;align-items:center; padding:8px 13px; border-radius:100px; font-size:12px; font-weight:800;letter-spacing:.05em;text-transform:uppercase;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18); }
.seo-cat-hero h1 { font:900 clamp(30px,4vw,54px)/1.13 var(--font-titre, Georgia,serif);max-width:920px;letter-spacing:-.035em;margin:24px 0 16px;color:#fff; }
.seo-cat-hero h1 span { color:#ffccad; }
.seo-cat-intro { color:rgba(255,255,255,.87);max-width:800px;font-size:clamp(15px,1.6vw,18px);line-height:1.78;margin:0; }
.seo-cat-intro strong { color:#fff; }
.seo-cat-hero-links { margin-top:22px;display:flex;gap:10px;flex-wrap:wrap; }
.seo-cat-hero-links a { display:inline-flex;align-items:center;gap:8px;color:white;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.28);padding:10px 16px;border-radius:999px;font-weight:800;font-size:13px;transition:background .2s; }
.seo-cat-hero-links a:hover { background:rgba(255,255,255,.25);color:#fff; }
.seo-cat-content { padding-bottom:65px; }
.seo-cat-filter-card { position:relative;z-index:1;margin-top:-47px;background:#fff;border:1px solid #e9eaf0;border-radius:22px;box-shadow:0 22px 65px rgba(20,23,36,.11);padding:clamp(19px,3vw,30px); }
.seo-cat-filter-heading { display:flex;gap:18px;align-items:center;justify-content:space-between;margin-bottom:19px; }
.seo-cat-kicker { color:#a53628;letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:900; }
.seo-cat-filter-heading h2,.seo-cat-results-head h2 { margin:4px 0 0;font:800 clamp(23px,2.6vw,30px)/1.2 var(--font-titre,Georgia,serif);color:#1f2634; }
.seo-cat-filter-help { display:inline-flex;gap:8px;align-items:center;color:#737783;font-size:12px;font-weight:800; }
.seo-cat-form { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:end; }
.seo-cat-field { min-width:0; }
.seo-cat-field>label { display:block;margin:0 0 7px;color:#4a4e5c;font-size:13px;font-weight:850; }
.seo-cat-field>input,.seo-cat-field>select,.seo-cat-multiselect>summary { box-sizing:border-box;min-height:49px;width:100%;border:1px solid #dde0e7;border-radius:11px;background:#fff;color:#252a38;padding:12px 13px;outline-offset:3px;font-size:14px; }
.seo-cat-field>input:focus,.seo-cat-field>select:focus,.seo-cat-multiselect>summary:focus-visible { border-color:#a53628;box-shadow:0 0 0 3px rgba(165,54,40,.09); }
.seo-cat-multiselect { position:relative; }
.seo-cat-multiselect>summary { display:flex;justify-content:space-between;gap:8px;align-items:center;list-style:none;cursor:pointer;user-select:none;font-weight:650;white-space:nowrap;overflow:hidden; }
.seo-cat-multiselect>summary::-webkit-details-marker { display:none; }
.seo-cat-multiselect[open]>summary { border-color:#a53628; }
.seo-cat-multiselect[open]>summary i { transform:rotate(180deg); }
.seo-cat-multiselect-options { position:absolute;z-index:20;top:calc(100% + 5px);left:0;right:0;min-width:min(280px,83vw);max-height:290px;overflow:auto;border:1px solid #e2e4ec;background:white;box-shadow:0 14px 36px rgba(21,24,37,.16);border-radius:12px;padding:8px 0;margin:0; }
.seo-cat-multiselect-options label { display:flex;align-items:center;gap:9px;margin:0;padding:9px 12px;cursor:pointer;font-weight:650;font-size:13px; }
.seo-cat-multiselect-options label:hover { background:#fff3ef; }
.seo-cat-multiselect-options input { accent-color:#a53628;width:17px;height:17px;flex:0 0 auto; }
.seo-cat-multiselect-options small { margin-left:auto;color:#8f929d; }
.seo-cat-form-actions { display:flex;align-items:center;gap:17px;grid-column:1/-1;margin-top:3px; }
.seo-cat-form-actions button { background:linear-gradient(110deg,#bb4333,#963323);padding:13px 21px;color:#fff;border:0;border-radius:12px;font-weight:900;min-height:48px;box-shadow:0 9px 22px rgba(160,53,37,.18);cursor:pointer; }
.seo-cat-form-actions button:hover { filter:brightness(1.08); }
.seo-cat-form-actions a,.seo-cat-reset { font-weight:850;color:#9b3629;font-size:13px; }
.seo-cat-data-note { margin:15px 0 0;font-size:11px;line-height:1.6;color:#7a7e89; }
.seo-cat-results-head { display:flex;align-items:end;justify-content:space-between;gap:20px;margin:43px 0 20px; }
.seo-cat-results-head h2 { margin:6px 0 9px; }
.seo-cat-results-head p { margin:0;color:#5f6672;font-size:14px; }
.seo-cat-results-head p strong { color:#a53628; }
.seo-cat-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:21px; }
.seo-cat-item { min-width:0;overflow:hidden;border:1px solid #e9eaf1;border-radius:17px;background:#fff;transition:transform .2s,box-shadow .2s; }
.seo-cat-item:hover { transform:translateY(-3px);box-shadow:0 14px 28px rgba(18,24,40,.1); }
.seo-cat-item-link { display:block;height:100%;color:inherit; }
.seo-cat-item-link:hover { color:inherit; }
.seo-cat-item-image { position:relative;aspect-ratio:1.6;background:#f2f3f6;overflow:hidden; }
.seo-cat-item-image img { display:block;width:100%;height:100%;object-fit:cover; }
.seo-cat-no-image { display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:44px;color:#b1b4be; }
.seo-cat-certified { position:absolute;bottom:10px;left:10px;max-width:calc(100% - 20px);border-radius:99px;background:#fff;color:#175a37;padding:6px 10px;font-size:11px;font-weight:900;box-shadow:0 3px 9px #0001; }
.seo-cat-item-body { padding:19px; }
.seo-cat-item-type { font-size:10px;color:#a53628;font-weight:900;text-transform:uppercase;letter-spacing:.08em; }
.seo-cat-item-body h3 { margin:6px 0;font:800 20px/1.3 var(--font-titre,Georgia,serif);color:#202536; }
.seo-cat-item-location { margin:8px 0;color:#737987;font-size:13px;font-weight:650; }
.seo-cat-item-desc { margin:11px 0 18px;font-size:13px;line-height:1.6;color:#6b707c;min-height:42px; }
.seo-cat-item-bottom { display:flex;align-items:center;justify-content:space-between;gap:9px;border-top:1px solid #eeeef1;padding-top:13px;font-size:12px; }
.seo-cat-star { color:#a3372b;font-weight:900; }
.seo-cat-star small { color:#7b8090;font-weight:500; }
.seo-cat-unrated { color:#979ba6; }
.seo-cat-view { color:#a43629;font-weight:900;white-space:nowrap; }
.seo-cat-empty { padding:45px 20px;background:#fff;border:1px solid #eee;border-radius:18px;text-align:center;color:#5b6070; }
.seo-cat-empty h3 { font:800 23px var(--font-titre,Georgia,serif);color:#212538; }
.seo-cat-empty a { color:#a53628;font-weight:900; }
.seo-cat-pages { display:flex;align-items:center;justify-content:center;gap:18px;margin:36px 0;flex-wrap:wrap; }
.seo-cat-pages a { border:1px solid #e2e3ea;border-radius:9px;background:#fff;color:#a53628;font-weight:800;padding:10px 17px; }
.seo-cat-pages span { color:#5a5f6b;font-size:13px; }
.seo-cat-editorial { margin-top:42px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px; }
.seo-cat-editorial section { background:#fff;border:1px solid #e9eaf0;border-radius:17px;padding:clamp(20px,3vw,30px); }
.seo-cat-editorial section:last-child:nth-child(odd) { grid-column:1/-1; }
.seo-cat-editorial h2 { font:800 clamp(21px,2.2vw,27px)/1.27 var(--font-titre,Georgia,serif);color:#202536;margin:0 0 16px; }
.seo-cat-editorial h3 { font-weight:900;font-size:16px;margin:18px 0 7px; }
.seo-cat-editorial p { color:#59606d;font-size:14px;line-height:1.85;margin:0 0 13px; }
.seo-cat-editorial p:last-child { margin-bottom:0; }
.seo-cat-editorial a { color:#a63729;font-weight:850;text-decoration:underline;text-underline-offset:3px; }
@media(max-width:991px) { .seo-cat-form { grid-template-columns:repeat(2,minmax(0,1fr)); } .seo-cat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:620px) { .seo-cat-hero { padding:32px 0 80px; } .seo-cat-hero h1 { font-size:32px; } .seo-cat-crumb { margin-bottom:23px; } .seo-cat-form { grid-template-columns:1fr;gap:12px; } .seo-cat-filter-heading { align-items:start; } .seo-cat-filter-help { display:none; } .seo-cat-form-actions { flex-direction:column;align-items:stretch;gap:12px; } .seo-cat-form-actions button { width:100%; } .seo-cat-form-actions a { text-align:center; } .seo-cat-grid,.seo-cat-editorial { grid-template-columns:1fr; } .seo-cat-results-head { align-items:start;flex-direction:column;gap:10px; } .seo-cat-filter-card { border-radius:18px;padding:20px 16px; } .seo-cat-item-desc { min-height:0; } }
@media(prefers-reduced-motion:reduce) { .seo-cat-item { transition:none; } .seo-cat-item:hover { transform:none; } }

.seo-cat-local { margin:42px 0 10px;padding:clamp(22px,3vw,30px);border:1px solid #e9eaf0;border-radius:17px;background:#fff; }
.seo-cat-local h2 { margin:0 0 12px;font:800 clamp(21px,2.1vw,26px)/1.2 var(--font-titre,Georgia,serif);color:#202536; }
.seo-cat-local p { color:#6b707c;font-size:13px;line-height:1.65;margin:0 0 19px; }
.seo-cat-city-links { display:flex;flex-wrap:wrap;gap:10px; }
.seo-cat-city-links a { display:inline-flex;align-items:center;gap:6px;padding:10px 13px;border:1px solid #e2e3e7;border-radius:999px;color:#983e34;font-weight:750;font-size:12px;background:#fffaf8; }
.seo-cat-city-links a:hover { border-color:#a53628;background:#fff3f0;color:#a53628; }
.seo-cat-city-links a span { color:#80848c;font-weight:500; }
