:root{
  --lp-primary: var(--bs-primary, var(--color-primary, #0d6efd));
  --lp-text:#0b1220;
  --lp-muted:#6b7280;
  --lp-bg:#f6f7fb;
  --lp-card:#ffffff;
  --lp-radius:16px;
  --lp-shadow-sm:0 6px 20px rgba(0,0,0,.06);
  --lp-shadow-md:0 14px 34px rgba(0,0,0,.12);
}

body{ background: var(--lp-bg); }

/* Hero / résumé */
.lp-subtitle{ color: var(--lp-muted); }

/* Barre filtres */
.filter-bar .form-control,
.filter-bar .form-select{
  border-radius: 999px;
  border:1px solid #e6e8ee;
  transition: box-shadow .2s ease, border-color .2s ease;
  background:#fff;
}
.filter-bar .form-control:focus,
.filter-bar .form-select:focus{
  border-color: rgba(37,99,235,.35);
  box-shadow: 0 0 0 .25rem rgba(37,99,235,.12);
}
.lp-input-icon{
  position:absolute; left:14px; top:50%; transform: translateY(-50%);
  color:#9aa3b2; pointer-events:none;
}

.lp-price-range{
  padding:.85rem 1rem;
  border:1px solid #e6e8ee;
  border-radius:20px;
  background:linear-gradient(180deg, #fff 0%, #fbfcff 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}
.lp-price-range__values,
.lp-price-range__bounds{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
}
.lp-price-range__values{
  margin-bottom:.85rem;
}
.lp-price-range__pill{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  min-width:92px;
  padding:.38rem .78rem;
  border-radius:14px;
  background:#fff;
  border:1px solid rgba(37,99,235,.12);
  color:#0f172a;
  font-size:.8rem;
  font-weight:700;
  box-shadow:0 10px 22px rgba(15,23,42,.05);
  gap:.55rem;
}
.lp-price-range__pill-label{
  color:#64748b;
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.lp-price-range__divider{
  color:#94a3b8;
  font-weight:700;
}
.lp-price-range__slider{
  position:relative;
  height:32px;
  padding:0 4px;
}
.lp-price-range__track,
.lp-price-range__fill{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  height:6px;
  border-radius:999px;
}
.lp-price-range__track{
  left:4px;
  right:4px;
  height:8px;
  background:linear-gradient(90deg, #e8edf6 0%, #dde5f1 100%);
}
.lp-price-range__fill{
  height:8px;
  background:linear-gradient(90deg, var(--lp-primary) 0%, #60a5fa 100%);
  box-shadow:0 6px 14px rgba(37,99,235,.22);
}
.lp-price-range__input{
  position:absolute;
  left:4px;
  top:0;
  width:calc(100% - 8px);
  height:32px;
  margin:0;
  background:transparent;
  pointer-events:none;
  -webkit-appearance:none;
  appearance:none;
  border:0;
  outline:none;
}
.lp-price-range__input::-webkit-slider-runnable-track{
  height:8px;
  background:transparent;
}
.lp-price-range__input::-moz-range-track{
  height:8px;
  background:transparent;
  border:0;
}
.lp-price-range__input::-moz-range-progress{
  background:transparent;
}
.lp-price-range__input::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:20px;
  height:20px;
  margin-top:-6px;
  border:2px solid #fff;
  border-radius:50%;
  background:var(--lp-primary);
  box-shadow:0 0 0 1px rgba(37,99,235,.08), 0 10px 24px rgba(37,99,235,.28);
  cursor:pointer;
  pointer-events:auto;
}
.lp-price-range__input::-moz-range-thumb{
  width:20px;
  height:20px;
  border:2px solid #fff;
  border-radius:50%;
  background:var(--lp-primary);
  box-shadow:0 0 0 1px rgba(37,99,235,.08), 0 10px 24px rgba(37,99,235,.28);
  cursor:pointer;
  pointer-events:auto;
}
.lp-price-range__input:focus::-webkit-slider-thumb{
  box-shadow:0 0 0 6px rgba(37,99,235,.18), 0 10px 24px rgba(37,99,235,.28);
}
.lp-price-range__input:focus::-moz-range-thumb{
  box-shadow:0 0 0 6px rgba(37,99,235,.18), 0 10px 24px rgba(37,99,235,.28);
}
.lp-price-range__input[data-price-input="min"]{
  z-index:2;
}
.lp-price-range__input[data-price-input="max"]{
  z-index:3;
}
.lp-price-range__bounds{
  margin-top:.5rem;
  font-size:.75rem;
}

@media (max-width: 575.98px){
  .lp-price-range{
    padding:.8rem .85rem;
  }
  .lp-price-range__pill{
    min-width:0;
    flex:1 1 0;
    padding:.34rem .62rem;
  }
}

/* Chips */
.lp-chip{ background:#fff; box-shadow: var(--lp-shadow-sm); }

/* Cards produits */
.lp-card{
  background: var(--lp-card);
  box-shadow: var(--lp-shadow-sm);
  transition: transform .18s ease, box-shadow .18s ease;
}
.lp-card:hover{ transform: translateY(-4px); box-shadow: var(--lp-shadow-md); }

.lp-media{ background:#f4f6fb; }
.img-cover{ width:100%; height:100%; object-fit:cover; }
.lp-zoom{ transition: transform .35s ease; }
.lp-media:hover .lp-zoom{ transform: scale(1.05); }

.lp-name{ font-size:.98rem; line-height:1.25; color: var(--lp-text); }
.lp-price{ color: var(--lp-primary); font-size:1.05rem; }

.lp-badge{
  display:inline-block; padding:.3rem .6rem; font-size:.75rem;
  background:#e8fff3; color:#137a37; border-radius:999px; font-weight:600; border:1px solid #bdf0d0;
}

/* Pagination */
.lp-pagination{
  gap:.5rem;
  margin-top:1.25rem;
}
.lp-pagination .page-item{
  display:flex;
}
.lp-pagination .page-link{
  border:1px solid rgba(148,163,184,.18);
  border-radius:14px;
  margin:0;
  box-shadow:0 10px 28px rgba(15,23,42,.06);
  background:rgba(255,255,255,.94);
  color:#0f172a;
  min-width:48px;
  min-height:48px;
  padding:0 .9rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  line-height:1;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease, color .18s ease;
}
.lp-pagination .page-link:hover{
  transform:translateY(-1px);
  border-color:rgba(37,99,235,.22);
  background:#fff;
  color:var(--lp-primary);
  box-shadow:0 14px 30px rgba(37,99,235,.14);
}
.lp-pagination .page-item.active .page-link{
  background: var(--lp-primary);
  color:#fff;
  border-color:transparent;
  box-shadow:0 16px 36px rgba(37,99,235,.24);
}
.lp-pagination .page-item.disabled .page-link,
.lp-pagination .lp-page-gap .page-link{
  transform:none;
  box-shadow:none;
  background:rgba(255,255,255,.72);
  color:#94a3b8;
  border-color:rgba(148,163,184,.14);
}
.lp-pagination .page-item.disabled .page-link{
  opacity:.6;
}
.lp-pagination .lp-page-arrow .page-link{
  font-size:1.05rem;
}
.lp-pagination .lp-page-gap .page-link{
  min-width:40px;
}

/* Accessibilité */
a:focus-visible, button:focus-visible, select:focus-visible{
  outline:3px solid rgba(37,99,235,.45);
  outline-offset:2px; border-radius:8px;
}

/* Responsive */
@media (max-width: 575.98px){
  .lp-price{ font-size:1rem; }
  .lp-pagination{
    gap:.35rem;
    flex-wrap:wrap;
  }
  .lp-pagination .page-link{
    min-width:44px;
    min-height:44px;
    border-radius:12px;
  }
}



