/* archive.css - the archive family (category / tag / author / date / index), the News river, the designed
   empty state, pagination, the 404 and static pages. Loaded after the shared layers on archive, search,
   404 and plain page templates (inc/assets.php). Design refinement 2026-10, 02-SHAPE.md section 8.
   Read mode: editorial discovery. Tokens only; zero radius; section accent via data-section. */

/* ---- Archive header --------------------------------------------------------------------------------- */
.archive-head { padding-bottom: var(--space-6); margin-bottom: var(--space-6); border-bottom: var(--rule); }
.archive-head:has(+ .river-layout) { border-bottom: 0; padding-bottom: 0; }
/* Page 2+: the head's own rule is the list's top rule - one rule, not two stacked ~34px apart. */
.archive-head:has(+ .archive-list) { margin-bottom: 0; }
.archive-head__title { max-width: none; font-size: var(--fs-archive-h1); line-height: var(--lh-tight); text-transform: uppercase; text-wrap: balance; overflow-wrap: break-word; }
.archive-head__title::after { content: ""; display: block; width: 5rem; height: 0.4rem; margin-top: var(--space-3); background: var(--accent); }
.archive-head__desc { max-width: 60ch; margin-top: var(--space-4); font-size: var(--fs-lede); line-height: var(--lh-body); color: var(--ink-2); }
.archive-head__desc > :last-child { margin-bottom: 0; }
.archive-head__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-5); margin-top: var(--space-4); font-family: var(--font-body); font-weight: var(--weight-label); font-size: var(--fs-label); letter-spacing: var(--tracking-label); text-transform: uppercase; display: flex; flex-wrap: wrap; align-items: center; }
.archive-head__meta:empty { display: none; }
.archive-head__kind { color: var(--accent); }
.archive-head__count { color: var(--ink-2); }
.archive-head__back { display: inline-flex; align-items: center; gap: var(--space-2); min-height: 2.75rem; text-decoration: none; color: var(--ink); }
.archive-head__back:hover { color: var(--accent); }
.archive-head__browse { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--space-4); margin-top: var(--space-3); padding-top: var(--space-2); border-top: var(--rule-thin); }
.archive-head__browse-label { color: var(--ink-3); }
.archive-head__browse ul { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
.archive-head__browse li + li::before { content: "\00b7"; padding-inline: var(--space-3); color: var(--ink-3); }
.archive-head__browse li { display: inline-flex; align-items: center; }
.archive-head__browse a { display: inline-flex; align-items: center; min-height: 2.75rem; font-family: var(--font-display); font-weight: 600; font-size: var(--fs-1); letter-spacing: var(--tracking-caps); text-transform: uppercase; text-decoration: none; }
.archive-head__browse a:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 0.25em; }

/* ---- Page 1: feature + 3-column standard grid + compact remainder ------------------------------------ */
.archive-feature { margin-bottom: var(--space-7); }
.archive-feature .card--feature { gap: var(--space-4); }
.archive-feature .card--feature .card__title { font-size: var(--fs-feature); text-wrap: balance; line-height: 1.15; }
.archive-feature .card--feature .card__excerpt { max-width: 52ch; }
/* Typographic feature: no image -> the headline is the picture. */
.archive-feature .card--feature:has(.media__placeholder) .card__media-link { display: none; }
.archive-feature .card--feature:has(.media__placeholder) { padding-block: var(--space-5); border-bottom: var(--rule); }
.archive-feature .card--feature:has(.media__placeholder) .card__title { font-size: var(--fs-feature-typo); }
.archive-feature .card--feature:has(.media__placeholder) .card__excerpt { max-width: 60ch; }
@media (min-width: 64rem) {
  .archive-feature .card--feature { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-6); align-items: center; }
  .archive-feature .card--feature:has(.media__placeholder) { grid-template-columns: minmax(0, 1fr); }
}

.archive-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.archive-grid .card__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
/* Below 48rem a long stack of big images is hostile: standard cards become a ruled thumb list. */
@media (max-width: 47.999rem) {
  .archive-grid .card--standard { grid-template-columns: 6.5rem minmax(0, 1fr); align-items: start; gap: var(--space-3); padding-block: var(--space-3); border-top: var(--rule-thin); }
  .archive-grid .card--standard:first-child { border-top: 0; }
  .archive-grid .card--standard .media { aspect-ratio: var(--ratio-thumb); }
  .archive-grid .card--standard .card__title { font-size: var(--fs-2); }
  .archive-grid .card--standard .card__excerpt { display: none; }
}
@media (min-width: 48rem) {
  .archive-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6) var(--gutter); }
}
.archive-rest { max-width: 52rem; margin-top: var(--space-6); border-top: var(--rule); }
.archive-rest .card--compact:first-child { border-top: 0; }
.archive-grid + .archive-rest { margin-top: var(--space-7); }

/* ---- Page 2+: two-column ruled thumb list ------------------------------------------------------------ */
.archive-list { display: grid; grid-template-columns: minmax(0, 1fr); }
.archive-list .card--thumb { padding-block: var(--space-4); }
@media (min-width: 48rem) {
  .archive-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-7); }
  .archive-list .card--thumb { grid-template-columns: 7.5rem minmax(0, 1fr); gap: var(--space-4); }
  .archive-list .card--thumb:nth-child(2) { border-top: 0; }
}

/* ---- News river: thumb items grouped by day, sticky aside at >= 64rem -------------------------------- */
.river-layout { display: grid; gap: var(--space-7); }
.river__day { margin-bottom: var(--space-6); padding-top: var(--space-3); border-top: 2px solid var(--ink); }
.river-layout .river__day:first-child { margin-top: 0; }
.river__day-title { margin: 0 0 var(--space-1); font-size: var(--fs-sub); color: var(--ink); font-family: var(--font-display); font-weight: var(--weight-story); letter-spacing: var(--tracking-story); line-height: var(--lh-story); }
.river__item { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); gap: var(--space-3); align-items: start; border-top: 1px solid var(--paper-3); }
.river__item:first-child { border-top: 0; }
.river__item .card--thumb { border-top: 0; padding-block: 1rem; grid-template-columns: 6rem minmax(0, 1fr); gap: var(--space-3); }
.river__item .card--thumb .media { aspect-ratio: 1 / 1; }
.river__item .card--thumb .card__title {  font-size: var(--fs-3); font-family: var(--font-display); font-weight: var(--weight-story); letter-spacing: var(--tracking-story); line-height: var(--lh-story); }
.river__item .card__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; margin: 0; font-size: var(--fs-1); line-height: 1.4; color: var(--ink-2); }
.river__time { padding-top: calc(1rem + 0.2em); font-variant-numeric: tabular-nums; color: var(--accent); font-family: var(--font-body); font-weight: var(--weight-label); font-size: var(--fs-label); letter-spacing: var(--tracking-label); text-transform: uppercase; font-variant-numeric: tabular-nums; }
@media (min-width: 48rem) {
  .river__item { grid-template-columns: 4.5rem minmax(0, 1fr); gap: var(--space-4); }
}
.river-aside { display: grid; gap: var(--space-6); align-content: start; min-width: 0; }
.river-aside__title { margin: 0 0 var(--space-2); padding-top: var(--space-3); border-top: 2px solid var(--ink); text-transform: uppercase; font-size: var(--fs-rail-head); }
@media (min-width: 64rem) {
  .river-layout { grid-template-columns: minmax(0, 44rem) 20rem; justify-content: space-between; align-items: start; }
  .river-aside { position: sticky; top: calc(var(--header-sticky-h) + 1.5rem); max-height: calc(100vh - var(--header-sticky-h) - 3rem); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
}

/* ---- Pagination ------------------------------------------------------------------------------------- */
.archive-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3) var(--space-5); margin-top: var(--space-7); padding-top: var(--space-5); border-top: var(--rule); }
.archive-pagination__status { margin: 0; color: var(--ink-3); font-family: var(--font-body); font-weight: var(--weight-label); font-size: var(--fs-label); letter-spacing: var(--tracking-label); text-transform: uppercase; }
.archive-pagination__list { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.archive-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-width: 2.75rem; min-height: 2.75rem; padding-inline: var(--space-3); border: 2px solid var(--ink); font-family: var(--font-display); font-weight: 600; font-size: var(--fs-2); text-decoration: none; font-variant-numeric: tabular-nums; }
.archive-pagination a.page-numbers:hover { background: var(--ink); color: var(--paper-2); }
.archive-pagination .page-numbers.current { background: var(--ink); color: var(--paper-2); }
.archive-pagination .page-numbers.dots { border-color: transparent; min-width: 1.5rem; padding-inline: 0; }
.archive-pagination .page-numbers.prev, .archive-pagination .page-numbers.next { padding-inline: var(--space-4); font-size: var(--fs-1); letter-spacing: 0.06em; text-transform: uppercase; }
@media (max-width: 47.999rem) {
  .archive-pagination__list li.is-num, .archive-pagination__list li.is-dots { display: none; }
  .archive-pagination { justify-content: center; text-align: center; }
  .archive-pagination__status { flex-basis: 100%; }
}

/* ---- Empty state + shared blocks (404, empty archive) ------------------------------------------------ */
.archive-empty__msg { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: 1.5rem; line-height: var(--lh-snug); text-transform: uppercase; text-wrap: balance; } /* quieter than the H1 above it */
.archive-empty__block, .error-page__block { margin-top: var(--space-7); }
.archive-block__title { margin-bottom: var(--space-4); padding-top: var(--space-3); border-top: var(--rule); font-size: var(--fs-3); text-transform: uppercase; }
.archive-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.archive-chips a { display: inline-flex; align-items: center; gap: var(--space-2); min-height: 2.75rem; padding-inline: var(--space-4); border: 2px solid var(--ink); border-bottom: 4px solid var(--accent); font-family: var(--font-display); font-weight: 600; font-size: var(--fs-1); letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; }
.archive-chips a:hover { background: var(--ink); color: var(--paper-2); }
.archive-chips__count { font-family: var(--font-body); font-weight: 400; letter-spacing: 0; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.archive-chips a:hover .archive-chips__count { color: var(--paper-3); }

/* ---- 404: rock-poster moment ------------------------------------------------------------------------- */
.error-page__head { padding-block: var(--space-5) var(--space-6); }
.error-page__code { margin: 0 0 var(--space-4); font-family: var(--font-display); font-weight: 700; font-size: var(--fs-404); line-height: 0.8; letter-spacing: -0.02em; color: transparent; -webkit-text-stroke: clamp(2px, 0.5vw, 5px) var(--ink); user-select: none; }
.error-page__title { font-size: var(--fs-5); line-height: var(--lh-snug); text-transform: uppercase; text-wrap: balance; }
.error-page__title::after { content: ""; display: block; width: 5rem; height: 0.4rem; margin-top: var(--space-3); background: var(--red); }
.error-page__deck { max-width: 52ch; margin: var(--space-4) 0 0; font-size: var(--fs-lede); color: var(--ink-2); }
.error-page__search { display: flex; flex-wrap: wrap; align-items: stretch; gap: var(--space-3); max-width: 56rem; }
.error-page__search .search-field { flex: 1 1 16rem; min-width: 0; min-height: 4rem; }
.error-page__search .btn { min-height: 3.25rem; align-self: center; }

/* ---- Static pages (About, Contact...) ------------------------------------------------------------------ */
.page-single__head { margin-bottom: var(--space-6); padding-bottom: var(--space-5); border-bottom: var(--rule); }
.page-single__title { max-width: none; font-size: clamp(2.5rem, 6vw, 4.5rem); line-height: var(--lh-tight); text-transform: uppercase; text-wrap: balance; }
.page-single__title::after { content: ""; display: block; width: 5rem; height: 0.4rem; margin-top: var(--space-3); background: var(--red); }
.page-single .page-single__body { max-width: var(--article-measure); }
