.nav .active { color: var(--red); }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.catalog-hero { min-height: 560px; padding: 8vw 4vw 6vw; background: var(--red); color: #fff; display: grid; grid-template-columns: 1.8fr 1fr; align-items: end; gap: 7vw; }
.catalog-hero .section-index { grid-column: 1 / -1; align-self: start; }
.catalog-hero h1 { margin: 0; font-size: clamp(56px, 9vw, 146px); line-height: .86; }
.catalog-hero p { max-width: 580px; margin: 0 0 10px; font-size: 18px; line-height: 1.65; }

.catalog-layout { padding: 6vw 4vw 8vw; display: grid; grid-template-columns: minmax(220px, 300px) 1fr; gap: 4vw; align-items: start; }
.catalog-filters { position: sticky; top: 112px; padding: 28px; border: 1px solid var(--line); background: #fff; display: grid; gap: 22px; }
.filter-heading { display: flex; align-items: center; justify-content: space-between; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.filter-heading strong { font: 600 18px "Unbounded"; text-transform: uppercase; }
.filter-heading button { padding: 0; border: 0; border-bottom: 1px solid var(--line); background: none; color: var(--muted); cursor: pointer; font-size: 12px; }
.catalog-filters label { display: grid; gap: 8px; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.catalog-filters select { width: 100%; min-width: 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 10px 0; background: transparent; color: var(--ink); font: 500 14px "Manrope"; text-transform: none; letter-spacing: normal; }
.catalog-results { min-width: 0; }
.catalog-results-head { min-height: 62px; display: flex; justify-content: space-between; align-items: start; gap: 25px; border-bottom: 1px solid var(--line); }
.catalog-results-head p { font-weight: 800; }
.catalog-results-head span { max-width: 300px; color: var(--muted); font-size: 11px; line-height: 1.5; text-align: right; }
.catalog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); margin-top: 28px; }
.catalog-car-card { background: var(--paper); }
.catalog-car-card h2 { min-height: 72px; font: 700 15px/1.5 "Manrope"; letter-spacing: 0; text-transform: none; }
.catalog-car-bottom { display: flex; justify-content: space-between; align-items: end; gap: 15px; margin-top: 28px; }
.catalog-request { flex: 0 0 auto; color: var(--red); border-bottom: 1px solid currentColor; font-size: 12px; font-weight: 800; }
.catalog-empty { margin-top: 28px; padding: 70px 30px; border: 1px solid var(--line); text-align: center; }
.catalog-empty h2 { font-size: clamp(28px, 3vw, 46px); }
.catalog-empty p { max-width: 600px; margin: 0 auto 30px; color: var(--muted); line-height: 1.6; }
.catalog-empty .button { display: inline-block; width: auto; }

.catalog-cta { padding: 7vw 4vw; background: var(--red); color: #fff; display: flex; justify-content: space-between; align-items: end; gap: 40px; }
.catalog-cta h2 { margin: 25px 0 0; font-size: clamp(36px, 5vw, 78px); line-height: 1; }
.catalog-cta .button { flex: 0 0 auto; }
.catalog-footer { min-height: 150px; padding: 35px 4vw; display: flex; align-items: center; gap: 40px; border-top: 1px solid var(--line); font-size: 12px; }
.catalog-footer .brand { margin-right: auto; }

@media (max-width: 1180px) {
  .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 780px) {
  .catalog-hero { min-height: 500px; padding: 70px 20px 50px; grid-template-columns: 1fr; gap: 40px; }
  .catalog-hero .section-index { grid-column: auto; }
  .catalog-hero h1 { font-size: clamp(48px, 15vw, 86px); }
  .catalog-hero p { font-size: 16px; }
  .catalog-layout { padding: 55px 20px 80px; grid-template-columns: 1fr; }
  .catalog-filters { position: static; grid-template-columns: 1fr 1fr; }
  .filter-heading { grid-column: 1 / -1; }
  .catalog-results-head { margin-top: 35px; }
  .catalog-grid { grid-template-columns: 1fr; }
  .catalog-cta { padding: 70px 20px; align-items: flex-start; flex-direction: column; }
  .catalog-footer { padding: 40px 20px; align-items: flex-start; flex-direction: column; }
  .catalog-footer .brand { margin: 0 0 20px; }
}

@media (max-width: 480px) {
  .catalog-filters { grid-template-columns: 1fr; }
  .filter-heading { grid-column: auto; }
  .catalog-results-head { flex-direction: column; }
  .catalog-results-head span { text-align: left; }
}
