/* Liste des produits (voyages organisés, circuits…) — même charte que home.css */
.pl-hero, .pl-results {
    --pl-radius: 5px;
    --pl-accent: #a83489;
    --pl-accent-dark: #8e2b73;
    --pl-accent-soft: #fbeef7;
    --pl-navy: #00315b;
    --pl-text: #1f1f24;
    --pl-muted: #6b6b73;
    --pl-line: #e6e6ec;
    --pl-shadow: 0 1px 3px rgba(0, 49, 91, .08);
    --pl-shadow-hover: 0 18px 40px -14px rgba(0, 49, 91, .28);
    font-family: 'Rethink Sans', sans-serif;
    color: var(--pl-text);
}

/* En-tête */
.pl-hero-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.pl-count { color: var(--pl-muted); font-size: 15px; }
.pl-count strong { color: var(--pl-navy); }

/* Barre de filtres */
.pl-filter {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 24px;
    padding: 12px;
    border: 1px solid var(--pl-line);
    border-radius: var(--pl-radius);
    background: #fff;
    box-shadow: var(--pl-shadow);
}
.pl-filter-label { flex-shrink: 0; padding: 0 6px; color: var(--pl-navy); font-weight: 600; }
.pl-filter-label i { color: var(--pl-accent); margin-right: 4px; }
.pl-filter-field { position: relative; flex: 1; min-width: 0; }
.pl-filter-field > i, .pl-filter-field .selectBox > i {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--pl-muted);
    z-index: 2;
    pointer-events: none;
}
.pl-filter-field .selectBox { position: relative; cursor: pointer; }
.pl-filter .form-control, .pl-filter .form-select {
    height: 46px;
    padding-left: 38px;
    border-color: var(--pl-line);
    border-radius: var(--pl-radius);
    background-color: #fff;
    cursor: pointer;
}
.pl-filter .form-control:focus, .pl-filter .form-select:focus {
    border-color: var(--pl-accent);
    box-shadow: 0 0 0 3px var(--pl-accent-soft);
}
.pl-filter #checkboxes {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    z-index: 20;
    max-height: 260px;
    overflow-y: auto;
    padding: 6px;
    border: 1px solid var(--pl-line);
    border-radius: var(--pl-radius);
    background: #fff;
    box-shadow: var(--pl-shadow-hover);
}
.pl-filter #checkboxes label {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: var(--pl-radius);
    cursor: pointer;
}
.pl-filter #checkboxes label:hover { background: var(--pl-accent-soft); }
.pl-filter #checkboxes input { accent-color: var(--pl-accent); }

/* Boutons */
.pl-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 46px;
    padding: 0 26px;
    border: 1px solid var(--pl-accent);
    border-radius: var(--pl-radius);
    background: var(--pl-accent);
    color: #fff;
    font-weight: 600;
    text-decoration: none;
    transition: background .2s, border-color .2s, color .2s;
}
.pl-btn:hover { background: var(--pl-accent-dark); border-color: var(--pl-accent-dark); color: #fff; }
.pl-btn--ghost { background: #fff; color: var(--pl-accent); }
.pl-btn--ghost:hover { background: var(--pl-accent-soft); border-color: var(--pl-accent); color: var(--pl-accent-dark); }

/* Résultats */
.pl-results { padding: 40px 0 64px; background: #fff; min-height: 50vh; }
.pl-card {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    overflow: hidden;
    border: 1px solid var(--pl-line);
    border-radius: var(--pl-radius);
    background: #fff;
    box-shadow: var(--pl-shadow);
    transition: box-shadow .25s, transform .25s;
}
.pl-card:hover { box-shadow: var(--pl-shadow-hover); transform: translateY(-3px); }
.pl-card-media { position: relative; margin: 0; aspect-ratio: 3 / 2; overflow: hidden; background: #eceef2; }
.pl-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.pl-card:hover .pl-card-media img { transform: scale(1.05); }
.pl-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 4px 10px;
    border-radius: var(--pl-radius);
    background: rgba(255, 255, 255, .95);
    color: var(--pl-navy);
    font-size: 12px;
    font-weight: 700;
}
.pl-badge i { color: var(--pl-accent); margin-right: 3px; }
.pl-card-body { display: flex; flex-direction: column; flex: 1; padding: 18px 18px 16px; }
.pl-card-place { margin: 0 0 6px; color: var(--pl-muted); font-size: 13px; font-weight: 500; }
.pl-card-place i { color: var(--pl-accent); margin-right: 2px; }
.pl-card-title { margin: 0 0 10px; font-size: 18px; font-weight: 700; line-height: 1.3; }
.pl-card-title a { color: var(--pl-navy); text-decoration: none; }
.pl-card:hover .pl-card-title a { color: var(--pl-accent); }
.pl-card-hotel { margin: 0 0 8px; font-size: 13px; }
.pl-card-hotel .bi-building { color: var(--pl-muted); margin-right: 2px; }
.pl-stars { display: inline-flex; gap: 2px; margin-left: 4px; }
.pl-card-promo {
    align-self: flex-start;
    margin: 0 0 8px;
    padding: 3px 9px;
    border-radius: var(--pl-radius);
    background: var(--pl-accent-soft);
    color: var(--pl-accent);
    font-size: 12px;
    font-weight: 600;
}
.pl-card-foot {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px dashed var(--pl-line);
}
.pl-price span { display: block; color: var(--pl-muted); font-size: 12px; }
.pl-price strong { color: var(--pl-navy); font-size: 24px; font-weight: 700; line-height: 1.1; }
.pl-price sup { font-size: 12px; }
.pl-arrow {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--pl-accent-soft);
    color: var(--pl-accent);
    transition: background .2s, color .2s;
}
.pl-card:hover .pl-arrow { background: var(--pl-accent); color: #fff; }

/* État vide (aucun produit / aucun résultat de filtre) */
.pl-empty {
    max-width: 560px;
    margin: 24px auto;
    padding: 48px 32px;
    border: 1px dashed var(--pl-line);
    border-radius: var(--pl-radius);
    background: #fafafc;
    text-align: center;
}
.pl-empty[hidden] { display: none; }
.pl-empty-icon {
    width: 76px;
    height: 76px;
    display: inline-grid;
    place-items: center;
    margin-bottom: 18px;
    border-radius: 50%;
    background: var(--pl-accent-soft);
    color: var(--pl-accent);
    font-size: 34px;
}
.pl-empty h2 { margin: 0 0 8px; color: var(--pl-navy); font-size: 22px; font-weight: 700; }
.pl-empty p { margin: 0 0 22px; color: var(--pl-muted); }
.pl-empty-actions { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; }

@media (max-width: 767.98px) {
    .pl-filter { flex-wrap: wrap; }
    .pl-filter-label { width: 100%; padding: 0; }
    .pl-filter-field { flex: 1 1 calc(50% - 6px); }
    #filtersProducts.pl-btn { width: 100%; }
    .pl-results { padding: 24px 0 40px; }
    .pl-empty { padding: 36px 20px; }
}
