/* ---- PAGE-SPECIFIC: LISTINGS ---- */

    /* Hero compact */
    .listings-hero {
      background: var(--white); padding: 140px 0 72px;
      border-bottom: 1px solid var(--border);
    }
    .listings-hero h1 { color: var(--navy); }

    /* Main listings section */
    .listings-section {
      background: var(--off-white); padding: 72px 0 100px;
    }

    /* Layout: sidebar + grid */
    .listings-layout {
      display: grid;
      grid-template-columns: 280px 1fr;
      gap: 36px;
      align-items: start;
    }

    /* Sidebar */
    .listings-sidebar {
      background: var(--white);
      border-radius: var(--radius-lg);
      padding: 28px 24px 32px;
      box-shadow: var(--shadow-sm);
      border: 1px solid var(--border);
      position: sticky;
      top: 90px;
    }
    .sidebar-title {
      font-size: .6875rem; font-weight: 600;
      letter-spacing: .14em; text-transform: uppercase;
      color: var(--navy); margin-bottom: 24px;
      padding-bottom: 14px; border-bottom: 1px solid var(--border);
    }
    .filter-group {
      margin-bottom: 22px;
    }
    .filter-label {
      display: block;
      font-size: .6875rem; font-weight: 600;
      letter-spacing: .1em; text-transform: uppercase;
      color: var(--slate); margin-bottom: 8px;
    }
    .filter-select {
      width: 100%; padding: 11px 14px;
      border: 1.5px solid var(--border-dk);
      border-radius: var(--radius); background: var(--white);
      font-family: var(--font-sans); font-size: .875rem; color: var(--navy);
      transition: border-color var(--transition); outline: none;
      -webkit-appearance: none; cursor: pointer;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23a5abbd' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 12px center;
      padding-right: 32px;
    }
    .filter-select:focus { border-color: var(--bronze); }

    /* Range sliders */
    .range-val {
      font-size: .8125rem; font-weight: 600; color: var(--navy);
      margin-bottom: 8px; display: block;
    }
    input[type="range"] {
      width: 100%; -webkit-appearance: none; appearance: none;
      height: 4px; border-radius: 2px;
      background: linear-gradient(to right, var(--navy) 0%, var(--navy) var(--pct, 50%), var(--border-dk) var(--pct, 50%), var(--border-dk) 100%);
      outline: none; cursor: pointer;
    }
    input[type="range"]::-webkit-slider-thumb {
      -webkit-appearance: none; appearance: none;
      width: 18px; height: 18px; border-radius: 50%;
      background: var(--white); border: 2px solid var(--navy);
      cursor: pointer; box-shadow: var(--shadow-sm);
      transition: border-color var(--transition), transform var(--transition);
    }
    input[type="range"]::-webkit-slider-thumb:hover {
      border-color: var(--bronze); transform: scale(1.15);
    }
    input[type="range"]::-moz-range-thumb {
      width: 18px; height: 18px; border-radius: 50%;
      background: var(--white); border: 2px solid var(--navy);
      cursor: pointer; box-shadow: var(--shadow-sm);
    }

    .sidebar-actions {
      margin-top: 28px; display: flex; flex-direction: column; gap: 10px;
    }
    .sidebar-reset {
      text-align: center; font-size: .75rem; font-weight: 500;
      letter-spacing: .08em; text-transform: uppercase;
      color: var(--slate); cursor: pointer;
      transition: color var(--transition); padding: 6px 0;
    }
    .sidebar-reset:hover { color: var(--bronze); }

    /* Results header */
    .results-header {
      display: flex; align-items: center; justify-content: space-between;
      margin-bottom: 28px; flex-wrap: wrap; gap: 12px;
    }
    .results-count {
      font-size: .8125rem; font-weight: 500; color: var(--slate);
      letter-spacing: .06em;
    }
    .results-count strong { color: var(--navy); font-weight: 600; }
    .results-sort {
      display: flex; align-items: center; gap: 8px;
      font-size: .75rem; font-weight: 500; color: var(--slate);
      letter-spacing: .08em; text-transform: uppercase;
    }
    .results-sort select {
      font-family: var(--font-sans); font-size: .75rem; font-weight: 500;
      color: var(--navy); background: none; border: none; outline: none;
      cursor: pointer; -webkit-appearance: none; letter-spacing: .08em;
    }

    /* Properties grid */
    .properties-grid {
      display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px;
    }

    /* Property card image ratio for listings */
    .listings-section .property-card-img { aspect-ratio: 4/3; }

    /* Type badge variant */
    .badge-type { background: var(--navy); }

    /* DPE/GES badges masqués sur listings */
    .property-dpe, .property-ges { display: none; }

    /* Responsive */
    @media (max-width: 960px) {
      .listings-layout { grid-template-columns: 1fr; }
      .listings-sidebar {
        position: static;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 0 24px;
      }
      .sidebar-title { grid-column: 1 / -1; }
      .sidebar-actions { grid-column: 1 / -1; flex-direction: row; align-items: center; }
      .sidebar-actions .btn { flex: 1; justify-content: center; }
    }
    @media (max-width: 640px) {
      .listings-sidebar { grid-template-columns: 1fr; }
      .properties-grid { grid-template-columns: 1fr; }
    }
    @media (max-width: 480px) {
    }