.catalog { padding-block: clamp(1.6rem, 4vw, 4rem); }
.catalog-head p:first-child, .catalog-meta, .catalog-total { color: var(--blue); font: 550 .86rem/1.45 var(--sans); }
.catalog-head h1 { margin: .1em 0 .2em; font: 500 clamp(3rem, 7vw, 6rem)/1 var(--display); letter-spacing: -.05em; }
.catalog-head p:last-child { max-width: 43rem; font: 400 1.25rem/1.45 var(--serif); }
.catalog-filter { display: flex; align-items: end; flex-wrap: wrap; gap: .85rem 1rem; margin: 2rem 0 1.4rem; border-block: 1px solid var(--rule); padding-block: 1rem; }
.catalog-filter label { display: grid; flex: 1 1 10rem; min-width: 0; gap: .3em; font-size: .85rem; }
.catalog-filter input, .catalog-filter select, .catalog-filter button { width: 100%; min-width: 0; max-width: 100%; font: 400 1rem/1.3 var(--sans); padding: .55em; color: var(--ink); border: 1px solid var(--muted); background: var(--paper); }
.catalog-filter button { width: auto; background: var(--ink); color: white; padding-inline: 1.15em; cursor: pointer; }
.catalog-filter a, .catalog-pager a { padding: .55em 0; color: var(--blue); }
.catalog-results { list-style: none; margin: .55rem 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 0 2rem; }
.catalog-results li { padding: 1rem 0 1.35rem; border-top: 1px solid var(--rule); }
.catalog-results h2 { margin: .22em 0; font: 500 clamp(1.35rem, 2vw, 2rem)/1.2 var(--display); }
.catalog-results h2 a { text-decoration: none; }
.catalog-results h2 a:hover { text-decoration: underline; }
.catalog-source { color: var(--muted); font-size: .84rem; }
.catalog-pager { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.3rem; margin: 1.25rem 0; }
.catalog-variants { border-top: 1px solid var(--rule); padding-block: 1.2rem; }
.catalog-variants summary { cursor: pointer; }
