/* Series track pages (polemos, statecraft): scoped under .track-page so
   surfaces.css and the 15 pages sharing it are not affected. Uses palette
   vars from shared.css (do not redefine). */

.track-page .tp-head { padding: 48px 5% 0; max-width: 1100px; margin: 0 auto; }
.track-page .tp-breadcrumb { font-family: var(--body); font-size: 12px; color: var(--grey); margin-bottom: 20px; }
.track-page .tp-breadcrumb a { color: inherit; text-decoration: none; }
.track-page .tp-breadcrumb a:hover { color: var(--gold); }
.track-page .tp-title { font-family: var(--display); font-size: 46px; font-weight: 600; color: var(--slate); line-height: 1.05; margin: 0; }
.track-page .tp-rule { width: 54px; height: 2px; background: var(--gold); margin: 16px 0 18px; }
.track-page .tp-tagline { font-family: var(--body); font-size: 16px; line-height: 1.6; color: var(--grey); max-width: 620px; margin: 0; }
.track-page .tp-count { font-family: var(--body); font-size: 12px; letter-spacing: 0.5px; color: var(--stone); margin-top: 14px; text-transform: uppercase; }

.track-page .tp-controls { max-width: 1100px; margin: 28px auto 0; padding: 0 5%; }
.track-page .tp-search-wrap { display: flex; align-items: center; gap: 10px; border: 1px solid var(--stone); border-radius: 2px; padding: 11px 14px; background: var(--white, #fff); max-width: 420px; }
.track-page .tp-search-wrap:focus-within { border-color: var(--gold); }
.track-page .tp-search-ico { width: 16px; height: 16px; color: var(--grey); flex: none; }
.track-page .tp-search { border: 0; outline: 0; background: transparent; font-family: var(--body); font-size: 14px; color: var(--slate); width: 100%; }
.track-page .tp-search::placeholder { color: var(--grey); }

.track-page .tp-filter { max-width: 1100px; margin: 18px auto 0; padding: 0 5%; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.track-page .tp-filter-label { font-family: var(--body); font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: var(--grey); margin-right: 4px; }
.track-page .tp-pill { font-family: var(--body); font-size: 12px; padding: 6px 14px; border-radius: 100px; border: 1px solid var(--stone); background: transparent; color: var(--slate); cursor: pointer; transition: all .15s; }
.track-page .tp-pill:hover { border-color: var(--gold); color: var(--gold); }
.track-page .tp-pill.active { background: var(--slate); color: var(--bone); border-color: var(--slate); }

.track-page .tp-grid-wrap { max-width: 1100px; margin: 0 auto; padding: 34px 5% 80px; }
.track-page .tp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 28px; }
.track-page .tp-tile { display: flex; flex-direction: column; text-decoration: none; background: transparent; transition: transform .18s; }
.track-page .tp-tile:hover { transform: translateY(-3px); }
.track-page .tp-tile[hidden] { display: none !important; }
.track-page .tp-cover { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; background: var(--parchment); border: 1px solid var(--stone); display: block; }
.track-page .tp-cover-empty { width: 100%; aspect-ratio: 3 / 4; background: var(--parchment); border: 1px solid var(--stone); display: flex; align-items: center; justify-content: center; }
.track-page .tp-cover-empty span { font-family: var(--display); font-size: 15px; color: var(--stone); font-style: italic; }
.track-page .tp-eyebrow { font-family: var(--body); font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gold-dark); margin: 14px 0 7px; }
.track-page .tp-tile-title { font-family: var(--display); font-size: 21px; font-weight: 600; line-height: 1.18; color: var(--slate); margin: 0 0 7px; transition: color .15s; }
.track-page .tp-tile:hover .tp-tile-title { color: var(--gold); }
.track-page .tp-tile-sub { font-family: var(--body); font-size: 13.5px; line-height: 1.45; color: var(--grey); margin: 0; }

.track-page .tp-empty-msg { font-family: var(--body); font-size: 14px; color: var(--grey); padding: 20px 0; }

@media (max-width: 900px) {
  .track-page .tp-grid { grid-template-columns: repeat(2, 1fr); }
  .track-page .tp-title { font-size: 36px; }
}
@media (max-width: 560px) {
  .track-page .tp-grid { grid-template-columns: 1fr; }
}

/* ── Track 0N eyebrow above the title ───────────────────────── */
.track-page .tp-track-eyebrow { font-family: var(--body); font-size: var(--eyebrow-size, 11px); font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gold); margin: 0 0 10px; }

/* ── Title row: title left, cross-track switcher right ──────── */
.track-page .tp-title-row { display: flex; align-items: baseline; justify-content: space-between; gap: 10px 30px; flex-wrap: wrap; }
.track-page .tp-title-row .tp-title { margin: 0; }
.track-page .tp-switch { flex: 0 1 auto; }
.track-page .tp-switch-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 18px; }
.track-page .tp-switch-item { font-family: var(--body); font-size: 13px; letter-spacing: .02em; color: var(--grey); }
.track-page .tp-switch-item a { color: var(--grey); text-decoration: none; padding-bottom: 2px; border-bottom: 1px solid transparent; transition: color .15s, border-color .15s; }
.track-page .tp-switch-item a:hover { color: var(--gold); border-bottom-color: var(--gold); }
.track-page .tp-switch-item--current { color: var(--gold); font-weight: 600; }

/* ── Even tiles: equal rows + clamp title/subtitle ──────────── */
.track-page .tp-grid { grid-auto-rows: 1fr; }
.track-page .tp-tile-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.track-page .tp-tile-sub { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

@media (max-width: 640px) {
  .track-page .tp-title-row { gap: 6px 16px; }
  .track-page .tp-switch-list { justify-content: flex-start; gap: 4px 14px; }
  .track-page .tp-switch-item { font-size: 12px; }
}
