.cities-page,
.categories-page { background: #f6f6f6; color: var(--color-title); }
.categories-hero { padding: 176px 0 42px; background: #fff; border-bottom: 1px solid rgba(21,21,21,.22); }
.city-hero-breadcrumbs { margin-bottom: 24px; }
.categories-hero-grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(320px,.65fr); gap: 64px; align-items: end; margin-top: 42px; }
.categories-title { margin: 0; font: 540 clamp(58px,7.2vw,112px)/.87 var(--font-title); letter-spacing: -.065em; }
.categories-title em { color: var(--color-primary); font-weight: 400; }
.categories-hero-copy { max-width: 520px; padding-bottom: 8px; }
.categories-hero-copy > p { color: #555960; font-size: 18px; line-height: 1.6; }
.categories-stats { display: flex; gap: 46px; margin-top: 34px; }
.categories-stats div { display: flex; align-items: baseline; gap: 9px; }
.categories-stats dt { color: var(--color-title); font: 600 30px/1 var(--font-title); letter-spacing: -.04em; }
.categories-stats dd { color: #7b7e84; font-size: 13px; }
.catalog-search-wrap { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 24px; align-items: center; margin-top: 64px; }
.catalog-search { min-height: 72px; display: grid; grid-template-columns: 24px minmax(0,1fr) auto; align-items: center; gap: 16px; padding: 0 24px; border: 1px solid rgba(21,21,21,.28); border-radius: 0; background: #fff; transition: border-color .2s ease, box-shadow .2s ease; }
.catalog-search:focus-within { border-color: var(--color-primary); box-shadow: inset 4px 0 0 var(--color-primary); }
.catalog-search svg { color: var(--color-primary); }
.catalog-search input { width: 100%; font-size: clamp(17px,1.35vw,21px); border: none !important; outline: none !important; box-shadow: none !important; background: transparent; }
.catalog-search input:focus { border: none !important; outline: none !important; box-shadow: none !important; }
.catalog-search input::-webkit-search-cancel-button { display: none; appearance: none; }
.catalog-search input::placeholder { color: #9b9da2; }
.catalog-search-clear { color: var(--color-primary); font-size: 13px; font-weight: 650; }
.catalog-search-clear:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 4px; }
.catalog-search-status { min-width: 150px; color: #777a80; font: 500 12px/1.3 'Iosevka Charon Mono',monospace; text-transform: uppercase; letter-spacing: .07em; text-align: right; }
.category-jump-nav { display: flex; gap: 8px; margin-top: 18px; padding-bottom: 6px; overflow-x: auto; scrollbar-width: thin; }
.category-jump-nav a { flex: 0 0 auto; padding: 8px 12px; border: 1px solid rgba(21,21,21,.16); color: #5b5e64; font-size: 13px; line-height: 1; }
.category-jump-nav a:hover,
.category-jump-nav a:focus-visible { color: #fff; background: var(--color-title); border-color: var(--color-title); outline: 0; }
.catalog-section { padding: 74px 0 120px; }
.catalog-table-head { display: grid; grid-template-columns: minmax(260px,25%) minmax(0,1fr); padding: 0 0 14px; border-bottom: 1px solid rgba(21,21,21,.42); color: #7a7d83; font: 500 11px/1 'Iosevka Charon Mono',monospace; letter-spacing: .1em; text-transform: uppercase; }
.catalog-table-head span:last-child { padding-left: 34px; }
.catalog-row { position: relative; display: grid; grid-template-columns: minmax(260px,25%) minmax(0,1fr); border-bottom: 1px solid rgba(21,21,21,.28); scroll-margin-top: 110px; }
.catalog-row::before { content: ''; position: absolute; top: -1px; left: 0; width: 42px; height: 2px; background: var(--color-primary); transition: width .38s cubic-bezier(.16,1,.3,1); }
.catalog-row:hover::before,
.catalog-row:focus-within::before { width: 25%; }
.catalog-row > header { padding: 32px 34px 34px 0; border-right: 1px solid rgba(21,21,21,.18); }
.catalog-count { display: block; margin-bottom: 18px; color: #92949a; font: 500 11px/1 'Iosevka Charon Mono',monospace; letter-spacing: .06em; text-transform: uppercase; }
.catalog-row h2 { max-width: 300px; margin: 0; font: 650 clamp(24px,2.1vw,35px)/1.04 var(--font-title); letter-spacing: -.045em; }
.catalog-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-content: start; padding: 22px 0 24px 34px; }
.catalog-links a,
.catalog-link-unavailable { position: relative; min-height: 52px; display: grid; grid-template-columns: minmax(0,1fr) 16px; align-items: center; gap: 8px; margin-right: 22px; padding: 11px 8px 11px 0; border-bottom: 1px solid rgba(21,21,21,.11); color: #505359; font-size: 16px; font-weight: 500; line-height: 1.25; }
.catalog-link-unavailable { color: #92949a; cursor: not-allowed; }
.catalog-links a::after { content: '↗'; color: var(--color-primary); font-size: 12px; opacity: 0; transform: translate(-4px,4px); transition: opacity .2s ease, transform .2s ease; }
.catalog-links a:hover,
.catalog-links a:focus-visible { padding-left: 8px; color: var(--color-primary); background: rgba(245,27,36,.05); outline: 0; }
.catalog-links a:hover::after,
.catalog-links a:focus-visible::after { opacity: 1; transform: translate(0,0); }
.catalog-sub { grid-column: 1 / -1; padding: 28px 0 10px; color: #5f6268; font: 700 13px/1.3 var(--font-body); letter-spacing: 0; text-transform: none; }
.catalog-sub:first-child { padding-top: 2px; }
.catalog-sub[hidden] { display: none; }
.catalog-row[hidden],
.catalog-links a[hidden],
.catalog-link-unavailable[hidden] { display: none; }
.catalog-empty { padding: 72px 0; text-align: center; border-bottom: 1px solid rgba(21,21,21,.28); }
.catalog-empty strong { display: block; color: var(--color-title); font-size: 28px; }
.catalog-empty p { margin-top: 8px; color: #74777d; }
.catalog-empty button { margin-top: 22px; padding: 12px 18px; color: #fff; background: var(--color-primary); font-weight: 650; }
.catalog-empty button:focus-visible { outline: 2px solid var(--color-title); outline-offset: 4px; }
@media (max-width: 1050px) {
  .categories-hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .categories-hero-copy { max-width: 700px; }
  .catalog-links { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 720px) {
  .categories-hero { padding: 130px 0 30px; }
  .categories-title { font-size: clamp(48px,16vw,76px); }
  .categories-hero-grid { margin-top: 28px; }
  .catalog-search-wrap { grid-template-columns: 1fr; gap: 12px; margin-top: 42px; }
  .catalog-search { min-height: 62px; padding: 0 16px; }
  .catalog-search-status { text-align: left; }
  .catalog-section { padding: 52px 0 80px; }
  .catalog-table-head { display: none; }
  .catalog-row { display: block; }
  .catalog-row > header { padding: 28px 0 22px; border-right: 0; }
  .catalog-row h2 { max-width: none; }
  .catalog-links { grid-template-columns: 1fr; padding: 0 0 24px; }
  .catalog-links a,
  .catalog-link-unavailable { margin-right: 0; }
  .catalog-row:hover::before,
  .catalog-row:focus-within::before { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .catalog-row::before,
  .catalog-links a,
  .catalog-links a::after { transition: none; }
}
