/* Season browse — the liturgical shelves. Shares the program-page header and
 * body shell (.ps-head / .ps-body) so the library reads as one system. */

.sn-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-5); }
@media (max-width: 980px) { .sn-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .sn-grid { grid-template-columns: 1fr; } }

.sn-section { margin-bottom: var(--sp-7); }
.sn-section .ps-toolbar h2 { font-size: var(--text-xl); }
.sn-section .ps-toolbar h2 a { text-decoration: none; color: var(--ink); }
.sn-section .ps-toolbar h2 a:hover { color: var(--navy); }

.sn-card {
  display: flex; flex-direction: column; background: var(--card);
  border: 1px solid var(--line); border-radius: var(--radius-lg);
  box-shadow: var(--shadow); overflow: hidden; text-decoration: none; color: inherit;
  transition: box-shadow 140ms, transform 140ms;
}
.sn-card:hover { box-shadow: var(--shadow-lift); transform: translateY(-2px); }
.sn-card__thumb { position: relative; padding-top: 52%; background: #1c1512; }
.sn-card__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sn-card__thumb::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(13,31,58,0) 45%, rgba(13,31,58,.78) 100%);
}
.sn-card__count {
  position: absolute; z-index: 2; left: var(--sp-4); bottom: var(--sp-3);
  color: #fff; font-size: .78rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
}
.sn-card__body { padding: var(--sp-4) var(--sp-5) var(--sp-5); flex: 1; }
.sn-card__eyebrow { font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-deep); margin: 0 0 var(--sp-1); }
.sn-card__title { font-family: var(--font-serif); font-size: var(--text-lg); margin: 0 0 var(--sp-2); line-height: 1.3; }
.sn-card__blurb { font-size: var(--text-sm); color: var(--ink-soft); margin: 0; }

.sn-now {
  background: var(--ok-wash); color: var(--ok); font-weight: 700;
  font-size: .78rem; letter-spacing: .06em; text-transform: uppercase;
  padding: .15rem .6rem; border-radius: 999px;
}
