.catalog-hero{
  padding:64px 0 40px;
  border-bottom:1px solid var(--rule);
}
.catalog-hero h1{font-size:clamp(1.9rem, 3.5vw, 2.6rem);}
.catalog-hero p{margin-top:14px; color:var(--text-muted); max-width:50ch;}

.catalog-body{padding:56px 0 96px;}
.catalog-grid{
  display:grid;
  grid-template-columns:260px 1fr;
  gap:48px;
  align-items:start;
}

/* ---------- Filters sidebar ---------- */
.filters{
  background:var(--surface);
  border:1px solid var(--rule);
  padding:24px;
  position:sticky;
  top:88px;
}
.filters-head{
  display:flex; justify-content:space-between; align-items:center;
  font-family:'Newsreader', serif;
  font-size:1.1rem;
  margin-bottom:20px;
  padding-bottom:16px;
  border-bottom:1px solid var(--rule);
}
.filters-reset{
  background:none; border:none; color:var(--brass);
  font-family:'IBM Plex Sans', sans-serif;
  font-size:0.78rem; cursor:pointer;
}
.filters-reset:hover{text-decoration:underline;}

.filter-group{margin-bottom:24px;}
.filter-group:last-child{margin-bottom:0;}
.filter-label{
  font-size:0.78rem;
  color:var(--text-muted);
  margin-bottom:10px;
}

.filter-pills{display:flex; flex-wrap:wrap; gap:8px;}
.pill{
  background:none;
  border:1px solid var(--rule);
  color:var(--text);
  font-family:'IBM Plex Sans', sans-serif;
  font-size:0.82rem;
  padding:6px 12px;
  cursor:pointer;
  transition:background .15s, border-color .15s, color .15s;
}
.pill:hover{border-color:var(--brass-dim);}
.pill.active{background:var(--brass); border-color:var(--brass); color:var(--ink);}

.filter-checks{display:flex; flex-direction:column; gap:8px;}
.filter-checks label{
  display:flex; align-items:center; gap:8px;
  font-size:0.88rem; color:var(--text);
  cursor:pointer;
}
.filter-checks input[type=checkbox]{accent-color:var(--brass);}
.filter-checks .filter-empty{
  color:var(--text-muted); font-size:0.82rem; font-style:italic;
}

.filter-range{display:flex; align-items:center; gap:8px;}
.filter-range input{
  width:100%;
  background:var(--ink);
  border:1px solid var(--rule);
  color:var(--text);
  padding:9px 10px;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:0.85rem;
}
.filter-range input:focus{outline:none; border-color:var(--brass);}
.filter-range span{color:var(--text-muted); font-size:0.8rem;}

/* ---------- Results ---------- */
.results-count{
  font-size:0.85rem;
  color:var(--text-muted);
  margin-bottom:24px;
}
.results-count span#results-number{color:var(--brass); font-family:'Newsreader', serif;}

.car-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:24px;
}

.car-card{
  background:var(--surface);
  border:1px solid var(--rule);
  display:flex;
  flex-direction:column;
  transition:border-color .15s;
}
.car-card:hover{border-color:var(--brass-dim);}
.car-card-media{
  aspect-ratio:4/3;
  background:linear-gradient(135deg, var(--surface-raised), var(--ink));
  display:flex; align-items:center; justify-content:center;
  border-bottom:1px solid var(--rule);
  color:var(--text-muted);
  font-size:0.78rem;
}
.car-card-body{padding:18px 20px 20px; display:flex; flex-direction:column; flex:1;}
.car-card-tag{
  display:inline-block;
  font-size:0.7rem;
  color:var(--steel);
  border:1px solid var(--steel);
  padding:2px 8px;
  align-self:flex-start;
  margin-bottom:10px;
}
.car-card-name{
  font-family:'Newsreader', serif;
  font-size:1.15rem;
  color:var(--text);
  margin-bottom:6px;
}
.car-card-meta{
  font-size:0.82rem;
  color:var(--text-muted);
  margin-bottom:14px;
}
.car-card-price{
  font-family:'Newsreader', serif;
  font-size:1.2rem;
  color:var(--brass);
  margin-bottom:16px;
}
.car-card-actions{
  display:flex; gap:10px;
  margin-top:auto;
}
.car-card-actions a{
  flex:1;
  text-align:center;
  padding:10px 14px;
  font-size:0.85rem;
}
.car-card-actions .btn-primary{flex:1;}
.car-card-actions .btn-secondary{flex:1;}

.catalog-empty{
  border:1px solid var(--rule);
  padding:56px 32px;
  text-align:center;
}
.catalog-empty h3{font-size:1.3rem; margin-bottom:12px;}
.catalog-empty p{color:var(--text-muted); max-width:44ch; margin:0 auto 24px;}
.catalog-empty .btn-primary{display:inline-block;}

@media (max-width:860px){
  .catalog-grid{grid-template-columns:1fr;}
  .filters{position:static;}
}
