.catalog-page .article-header { padding-bottom: 32px; }
.catalog-page .page-section { padding-top: 40px; }
.catalog-filter { margin: 28px 0; }
.catalog-filter > label { display: block; font-size: 18px; font-weight: 700; margin: 20px 0 8px; }
.catalog-filter select { width: 100%; min-width: 0; min-height: 48px; padding: 10px 12px; border: 1px solid var(--teal); border-radius: 0; color: var(--ink); background: #fff; font: inherit; font-size: 18px; }
.catalog-reset { margin-top: 18px; }
.catalog-count, .catalog-meta { font-size: 16px; color: var(--muted); }
.catalog-list { padding: 0; margin: 24px 0 0; list-style: none; border-top: 1px solid var(--line); }
.catalog-item { border-bottom: 1px solid var(--line); }
.catalog-article-link { position: relative; display: block; padding: 28px 30px 28px 0; color: inherit; text-decoration: none; }
.catalog-article-link:hover h3 { text-decoration: underline; }
.catalog-article-link > svg { position: absolute; right: 0; top: 50%; width: 20px; height: 20px; color: var(--teal); transform: translateY(-50%); }
.catalog-article-link h3 { color: var(--teal); margin: 16px 0; font-size: 24px; }
.catalog-article-link p { font-size: var(--body-size); }
.catalog-article-image { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; max-height: 300px; object-fit: contain; margin: 20px 0; }
.catalog-article-link--illustrated > svg { top: auto; bottom: 28px; transform: none; }
.catalog-meta { display: flex; flex-direction: column; gap: 6px; line-height: 1.7; }
.catalog-meta > span { color: var(--camel); }
.catalog-topics { margin: 28px 0; border-top: 1px solid var(--line); }
.catalog-topic-link { display: flex; align-items: center; gap: 16px; min-height: 64px; padding: 20px 0; color: var(--teal); text-decoration: none; border-bottom: 1px solid var(--line); }
.catalog-topic-link:hover strong { text-decoration: underline; }
.catalog-topic-link > span { flex: 1; min-width: 0; }
.catalog-topic-link strong, .catalog-topic-link small { display: block; }
.catalog-topic-link small { font-size: 16px; color: var(--muted); }
.catalog-topic-link > svg { width: 22px; height: 22px; flex: none; }
.catalog-empty { margin-top: 28px; }
@media print {
  .catalog-filter, .catalog-reset { display: none !important; }
  .catalog-article-link { break-inside: avoid; padding-block: 12px; }
  .catalog-article-link h3 { font-size: 16pt; }
  .catalog-article-link p { font-size: 12pt; }
}
