/* Category archives share the homepage palette, type and content shell. */
.category-archive { padding: 0; }
.category-hero { padding-block: var(--fb-space-7); background: var(--fb-soft); }
.category-hero__inner { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--fb-space-6); align-items: center; padding-bottom: var(--fb-space-6); border-bottom: 1px solid var(--fb-line); }
.category-hero__inner--image { grid-template-columns: minmax(0, 1fr) 128px; }
.category-hero__copy { min-width: 0; }
.category-hero h1 { margin: 0; font: 400 clamp(2.25rem, 4vw, 3.5rem)/1.06 var(--fb-serif); overflow-wrap: anywhere; }
.category-hero__description { max-width: 70ch; margin-top: var(--fb-space-4); color: var(--fb-muted); font: 400 1rem/1.65 var(--fb-sans); overflow-wrap: anywhere; }
.category-hero__description > :first-child { margin-top: 0; }
.category-hero__description > :last-child { margin-bottom: 0; }
.category-hero__description a { color: var(--fb-accent-text); text-decoration: underline; text-decoration-color: var(--fb-accent); text-underline-offset: 3px; }
.category-hero__image { width: 128px; height: 128px; border-radius: 50%; overflow: hidden; }
.category-hero__image img { width: 100%; height: 100%; object-fit: cover; }
.category-archive__content { padding-block: var(--fb-space-7) var(--fb-space-8); }
.category-stories { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--fb-space-6); }
.category-card { min-width: 0; display: flex; flex-direction: column; border: 1px solid var(--fb-line); background: var(--fb-white); }
.category-card--lead { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: stretch; }
.category-card__image { display: block; flex-shrink: 0; aspect-ratio: 3 / 2; overflow: hidden; background: var(--fb-soft); }
.category-card__image img { width: 100%; height: 100%; object-fit: cover; }
.category-card__copy { min-width: 0; display: flex; flex-direction: column; flex-grow: 1; padding: var(--fb-space-5); }
.category-card--lead .category-card__copy { display: flex; flex-direction: column; justify-content: center; padding: var(--fb-space-6); }
.category-card__title { margin: 0 0 var(--fb-space-4); font: 400 var(--fb-type-major)/1.12 var(--fb-serif); overflow-wrap: anywhere; }
.category-card--lead .category-card__title { font-size: var(--fb-type-feature); }
.category-card__excerpt { margin: 0; color: var(--fb-muted); font: 400 .9375rem/1.55 var(--fb-sans); overflow-wrap: anywhere; }
.category-card .editorial-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin: auto 0 0; padding-top: var(--fb-space-4); color: var(--fb-muted); font: 400 var(--fb-meta-size)/1.5 var(--fb-sans); text-transform: uppercase; letter-spacing: .035em; overflow-wrap: anywhere; }
.category-card__title + .editorial-meta { padding-top: 0; }
.category-stories--pair .category-card__copy { align-self: stretch; }
.category-card .meta-separator { flex: 0 0 3px; width: 3px; height: 3px; margin-inline: 2px; border-radius: 50%; background: var(--fb-accent); }
.category-stories--pair .category-card:not(.category-card--lead) { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); align-items: center; }
.category-stories .category-card--no-image,
.category-stories--pair .category-card--no-image:not(.category-card--lead) { display: flex; }
.category-card--no-image .category-card__copy { max-width: 76ch; }
.category-archive .pagination { margin-top: var(--fb-space-7); }
.category-archive .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--fb-space-2); }
.category-archive .page-numbers { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 8px 14px; border: 1px solid var(--fb-line); font: 400 .875rem/1.4 var(--fb-sans); }
.category-archive .page-numbers.current { background: var(--fb-accent-text); border-color: var(--fb-accent-text); color: var(--fb-white); }
.category-archive a.page-numbers:hover { background: var(--fb-accent); border-color: var(--fb-accent); color: var(--fb-ink); }
.category-archive .page-numbers.dots { border: 0; }
.category-archive__empty { margin: 0; padding-block: var(--fb-space-5); color: var(--fb-muted); }
.category-explore { margin-top: var(--fb-space-8); padding-top: var(--fb-space-6); border-top: 1px solid var(--fb-line); }
.category-explore h2 { margin: 0 0 var(--fb-space-5); font: 400 var(--fb-type-section)/1.12 var(--fb-serif); }
.category-explore__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--fb-space-5); margin: 0; padding: 0; list-style: none; }
.category-explore__list > li { min-width: 0; }
.category-topic { display: flex; align-items: center; gap: var(--fb-space-4); min-width: 0; padding-block: var(--fb-space-4); }
.category-topic__image { flex: 0 0 72px; width: 72px; height: 72px; border-radius: 50%; overflow: hidden; }
.category-topic__image img { width: 100%; height: 100%; object-fit: cover; }
.category-topic__copy { display: grid; gap: 4px; min-width: 0; }
.category-topic__name { color: var(--fb-accent-text); font: 600 .875rem/1.4 var(--fb-sans); overflow-wrap: anywhere; }
.category-topic__count { color: var(--fb-muted); font: 400 .8125rem/1.4 var(--fb-sans); }
.category-topic:hover .category-topic__name, .category-topic:focus-visible .category-topic__name { text-decoration: underline; text-decoration-color: var(--fb-accent); text-underline-offset: 4px; }
@media (max-width: 960px) {
  .category-explore__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .category-hero { padding-block: var(--fb-space-6); }
  .category-hero__inner--image { grid-template-columns: minmax(0, 1fr) 88px; gap: var(--fb-space-4); }
  .category-hero__image { width: 88px; height: 88px; }
  .category-stories { grid-template-columns: minmax(0, 1fr); gap: var(--fb-space-5); }
  .category-card--lead, .category-stories--pair .category-card:not(.category-card--lead) { display: block; }
  .category-card--lead .category-card__copy { padding: var(--fb-space-5); }
  .category-archive__content { padding-block: var(--fb-space-6) var(--fb-space-7); }
}
@media (max-width: 480px) {
  .category-hero__inner--image { grid-template-columns: minmax(0, 1fr); }
  .category-hero__image { grid-row: 1; }
  .category-explore__list { grid-template-columns: minmax(0, 1fr); gap: var(--fb-space-2); }
}
