/* Standard theme — optional styles (theme.json `extras`): released only for a site that uses listing variants, page filters,
   search, home tabs or deadlines. Every page works without it. */
.page-title__sub { margin-left: .5em; font-size: .7em; color: var(--c-muted); }
.header-search { font-size: .875rem; font-weight: 700; white-space: nowrap; }
.badge--closed { background: var(--c-text); color: var(--c-bg); }

/* variants */
.listing-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: var(--gap); }
.card--grid .card__image { aspect-ratio: 4 / 3; }
.card--grid .card__body { padding: 12px; }
.card .display-fields { grid-template-columns: 1fr; gap: 0 0; }
.card .display-fields dd { margin: 0 0 6px; overflow-wrap: anywhere; }
.listing-body { margin-top: 8px; font-size: .9rem; }
.listing-body > :first-child { margin-top: 0; }
.listing-body > :last-child { margin-bottom: 0; }
.listing-compact { list-style: none; margin: 0; padding: 0; }
.listing-compact__item { padding: 6px 0; border-bottom: 1px dashed color-mix(in srgb, var(--c-text) 15%, transparent); overflow-wrap: anywhere; }
.listing-compact__item time { color: var(--c-muted); font-size: .85rem; margin-right: .5em; }
.listing__group-desc { margin: 0 0 12px; color: var(--c-muted); }
.listing__group-image { display: block; width: 100%; max-width: 480px; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius); margin: 0 0 12px; }
.listing__companion { margin-top: 40px; }
.listing__companion .section-title { margin-bottom: 16px; }

/* ticker: a plain list without the script or with reduced motion; a slow, pausable line otherwise */
.ticker { position: relative; }
.ticker__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ticker__item { padding: 8px 12px; background: var(--c-bg); border-radius: var(--radius); overflow-wrap: anywhere; }
.ticker__title { font-weight: 700; }
.ticker__text { color: var(--c-muted); }
.ticker__toggle { margin-top: 8px; min-height: 44px; padding: 0 16px; font: inherit; border: 1px solid var(--c-primary); border-radius: var(--radius); background: var(--c-bg); color: var(--c-primary); cursor: pointer; }
.ticker.is-running .ticker__viewport { overflow: hidden; }
.ticker.is-running .ticker__list { display: flex; gap: 24px; width: max-content; animation: ticker-move var(--ticker-duration, 60s) linear infinite; }
.ticker.is-running .ticker__item { white-space: nowrap; max-width: none; }
.ticker.is-running.is-paused .ticker__list, .ticker.is-running:hover .ticker__list, .ticker.is-running:focus-within .ticker__list { animation-play-state: paused; }
@keyframes ticker-move { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* slider */
.slider { position: relative; }
.slider__track { list-style: none; margin: 0; padding: 0; display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; }
.slider__slide { flex: 0 0 min(85%, 640px); scroll-snap-align: start; position: relative; }
.slider__slide img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius); }
.slider__slide a { color: inherit; }
.slider__caption { display: block; margin-top: 6px; font-weight: 700; }
.slider__overlay { position: absolute; left: 12px; right: 12px; bottom: 12px; padding: 8px 12px; border-radius: var(--radius); background: color-mix(in srgb, var(--c-secondary) 82%, transparent); color: var(--c-on-secondary); font-weight: 700; line-height: 1.6; }
.home-section__lead { margin: 0 0 16px; font-size: 1.125rem; font-weight: 700; line-height: 1.7; }
.js .slider[data-slider-ready] .slider__track { display: block; overflow: visible; }
.js .slider[data-slider-ready] .slider__slide { display: none; }
.js .slider[data-slider-ready] .slider__slide.is-current { display: block; }
.slider__controls { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; }
.slider__controls button { min-width: 44px; min-height: 44px; padding: 0 12px; font: inherit; border: 1px solid var(--c-primary); border-radius: var(--radius); background: var(--c-bg); color: var(--c-primary); cursor: pointer; }

/* home tabs */
.tabs__list { display: flex; gap: 4px; overflow-x: auto; margin-bottom: 16px; border-bottom: 2px solid var(--c-primary); scrollbar-width: thin; }
.tabs__tab { flex: none; min-height: 44px; padding: 8px 16px; font: inherit; font-weight: 700; border: 0; border-radius: var(--radius) var(--radius) 0 0; background: var(--c-surface); color: var(--c-text); cursor: pointer; }
.tabs__tab[aria-selected="true"] { background: var(--c-primary); color: var(--c-on-primary); }
.tabs__heading { font-size: 1.1rem; margin: 24px 0 8px; }
.tabs__more { margin: 12px 0 0; text-align: right; }
.tabs.is-ready .tabs__heading, [data-tabs].is-ready .tabs__heading { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* page filters */
.facets { margin: 0 0 20px; padding: 12px 16px; background: var(--c-surface); border-radius: var(--radius); }
.facets__group { border: 0; margin: 0 0 8px; padding: 0; min-width: 0; }
.facets__legend { font-weight: 700; padding: 0; margin-bottom: 6px; }
.facets__chip { min-height: 36px; margin: 0 6px 6px 0; padding: 4px 12px; font: inherit; font-size: .9rem; border: 1px solid var(--c-primary); border-radius: 999px; background: var(--c-bg); color: var(--c-primary); cursor: pointer; }
.facets__chip[aria-pressed="true"] { background: var(--c-primary); color: var(--c-on-primary); }
.facets__chip[aria-pressed="true"]::before { content: "✓ "; }
.facets__count { font-size: .8em; }
.facets__foot { margin: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.facets__clear { min-height: 36px; padding: 4px 12px; font: inherit; border: 0; background: transparent; color: var(--c-primary); text-decoration: underline; cursor: pointer; }

/* search */
.listing-search { display: grid; gap: 6px; margin: 0 0 20px; max-width: 640px; }
.listing-search label { font-weight: 700; }
.listing-search__row { display: flex; gap: 8px; }
.listing-search input { flex: 1; min-width: 0; min-height: 44px; padding: 8px 12px; font: inherit; border: 1px solid color-mix(in srgb, var(--c-text) 35%, transparent); border-radius: var(--radius); }
.listing-search button { min-height: 44px; padding: 0 20px; font: inherit; font-weight: 700; border: 0; border-radius: var(--radius); background: var(--c-primary); color: var(--c-on-primary); cursor: pointer; }
.listing-search__status { color: var(--c-muted); font-size: .9rem; }
.search-results { list-style: none; margin: 0 0 24px; padding: 0; border-top: 1px solid color-mix(in srgb, var(--c-text) 15%, transparent); }
.search-results__item { padding: 12px 0; border-bottom: 1px solid color-mix(in srgb, var(--c-text) 15%, transparent); overflow-wrap: anywhere; }
.search-results__title { font-weight: 700; }
.search-results__meta { display: block; font-size: .85rem; color: var(--c-muted); }
.search-results__snippet { display: block; margin-top: 4px; font-size: .9rem; color: var(--c-muted); }
.search-page__note { color: var(--c-muted); }

@media (max-width: 600px) {
  .listing-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
  .slider__slide { flex-basis: 88%; }
}
@media (prefers-reduced-motion: reduce) {
  .ticker.is-running .ticker__list { animation: none; }
}
