.sort-btn { display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border-radius:20px;font-size:.78rem;font-weight:600;border:1.5px solid #e5e7eb;background:white;cursor:pointer;transition:all .15s;white-space:nowrap;font-family:var(--lw-font); }
.sort-btn:hover,.sort-btn.active { border-color:var(--lw-primary);color:var(--lw-primary);background:var(--lw-primary-soft); }
.results-count { font-size:.83rem;color:#6b7280; }
.results-count strong { color:var(--lw-dark); }
.pagination .page-link { font-family:var(--lw-font);font-size:.83rem;border-radius:8px !important;border:1.5px solid #e5e7eb;color:var(--lw-dark);margin:0 2px; }
.pagination .page-item.active .page-link { background:var(--lw-primary);border-color:var(--lw-primary);color:white; }
.pagination .page-link:hover { background:var(--lw-primary-soft);color:var(--lw-primary);border-color:var(--lw-primary); }
.map-fab { position:fixed;bottom:calc(var(--lw-bnav-h) + 14px);right:16px;z-index:500;background:var(--lw-dark);color:white;border:none;border-radius:30px;padding:10px 18px;font-size:.82rem;font-weight:700;display:flex;align-items:center;gap:8px;box-shadow:0 4px 18px rgba(0,0,0,.2);cursor:pointer;font-family:var(--lw-font); }
@media(min-width:992px){ .map-fab{bottom:20px;} }
.filter-label { font-size:.72rem;font-weight:700;color:#374151;margin-bottom:5px;display:block;text-transform:uppercase;letter-spacing:.04em; }

/* Stepper de budget (offcanvas filtres) : champ texte numerique + chevrons haut/bas */
.lw-price-stepper { position: relative; flex: 1; min-width: 0; }
.lw-price-stepper .form-control { padding-right: 30px; }
.lw-price-stepper-btns { position: absolute; top: 1px; right: 1px; bottom: 1px; width: 26px; display: flex; flex-direction: column; border-left: 1px solid #e5e7eb; border-radius: 0 7px 7px 0; overflow: hidden; }
.lw-price-stepper-btn { flex: 1; border: none; background: #f9fafb; color: #6b7280; font-size: .62rem; display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; line-height: 1; }
.lw-price-stepper-btn:hover { background: var(--lw-primary-soft); color: var(--lw-primary); }
.lw-price-stepper-btn:first-child { border-bottom: 1px solid #e5e7eb; }
.range-slider { width:100%;accent-color:var(--lw-primary); }
.amenity-check { display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:10px;border:1.5px solid #e5e7eb;cursor:pointer;transition:all .15s;font-size:.83rem;font-weight:500; }
.amenity-check:has(input:checked), .amenity-check.checked { border-color:var(--lw-primary);background:var(--lw-primary-soft);color:var(--lw-primary); }

/* Navigation "communes populaires" sous le listing (categorie/commune/mixte) */
.lw-related-nav { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid #f3f4f6; }
.lw-related-nav-title { font-size: 1rem; font-weight: 800; color: var(--lw-dark); margin-bottom: .75rem; }

/* Property details */
.prop-section { margin-bottom: 2rem; padding-bottom: 2rem; border-bottom: 1px solid #f3f4f6; }
.prop-section:last-child { border-bottom: none; }
.rating-bar-row { display:flex;align-items:center;gap:10px;margin-bottom:6px; }
.rating-bar { flex:1;height:6px;border-radius:3px;background:#f3f4f6;overflow:hidden; }
.rating-bar-fill { height:100%;border-radius:3px;background:#facc15;transition:width .4s; }
.calendar-grid { display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center; }
.cal-day { padding:6px 4px;border-radius:8px;font-size:.78rem;cursor:pointer;transition:all .15s; }
.cal-day:hover { background:var(--lw-primary-soft);color:var(--lw-primary); }
.cal-day.selected { background:var(--lw-primary);color:white; }
.cal-day.range { background:var(--lw-primary-soft);color:var(--lw-primary); }
.cal-day.disabled { color:#d1d5db;cursor:default; }
.prop-stat { text-align:center; }
.prop-stat .val { font-size:1.1rem;font-weight:800;color:var(--lw-dark); }
.prop-stat .lab { font-size:.72rem;color:#9ca3af;margin-top:2px; }
.prop-stat:not(:last-child) { border-right: 1px solid #f3f4f6; }
/* Page content override for property - no bottom nav padding since has contact bar */
@media(max-width:991px){ .page-wrap { padding-bottom:90px !important; } }