/* ===================================================================
   WATCH — /watch/
   Page-specific components only. Everything that already exists in
   style.css is reused as-is: .hero, .sermon (latest message),
   .play / .play--sm, .events-head, .about-pastor (podcast),
   .about-story, .giving-cta. Built on the same tokens (--navy,
   --red, --slate, --cream, --line, --line-light) so this page reads
   as the same site. Containers 10px, buttons inherit 6px.
   =================================================================== */

/* --- fragment stacks --------------------------------------------
   The church's copy is written one sentence per line ("Join us
   online. / No commute required."). Held to a narrow measure so the
   short lines read as intentional rather than as a wrapping bug. --- */
.watch-lines {
  max-width: 34rem;
  margin: 1.15rem 0 0;
  font-size: clamp(1.02rem, 1.5vw, 1.2rem);
  font-weight: 500;
  line-height: 1.85;
  color: var(--slate);
}
.watch-lines--center { margin-inline: auto; }
.watch-lines--light { color: rgba(255, 255, 255, 0.82); }

/* --- archive search ----------------------------------------------
   NON-FUNCTIONAL. See the DRAFT comment in watch.njk — this exists
   to hold the expectation "the searchable sermon archive" sets, and
   is styled disabled-by-default until it is wired up. --- */
.msg-search {
  display: flex;
  gap: 0.6rem;
  align-items: center;
  max-width: 34rem;
  margin: 0 0 clamp(2rem, 4vw, 2.75rem);
}
.msg-search-input {
  flex: 1 1 auto;
  min-width: 0;
  font: inherit;
  font-size: 0.95rem;
  color: var(--navy);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0.7rem 1rem;
}
.msg-search-input::placeholder { color: var(--muted); }
.msg-search-input:disabled,
.msg-search .btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

/* --- message cards ---
   MOVED to style.css on 2026-09-10. These are now shared by /watch/,
   /sermons/ and /sermons/<slug>/, and each page loads only one extraCss —
   so leaving them here meant the sermon pages rendered the grid unstyled
   (one column, full-bleed thumbnails). Anything used by more than one
   page belongs in style.css. --- */

/* --- livestream (on .section--navy) ------------------------------ */

.live-intro {
  margin: 0 0 clamp(1.25rem, 2.5vw, 1.75rem);
  text-align: center;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
}

.live-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1rem, 2vw, 1.5rem);
}
.live-card {
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--line-light);
  border-radius: 10px;
  padding: clamp(1.25rem, 2vw, 1.6rem);
}
.live-campus {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--cream);
}
.live-times {
  list-style: none;
  margin: 0.85rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.live-times li {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.82);
}
.live-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: auto;
  padding-top: 1.35rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--cream);
}
.live-link span { font-size: 1.1rem; line-height: 0; transition: transform 0.18s ease; }
.live-link:hover span { transform: translateX(3px); }

@media (max-width: 62rem) { .live-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 34rem) { .live-grid { grid-template-columns: 1fr; } }

/* --- podcast subscribe row --------------------------------------
   .about-pastor-body only styles a single trailing button, and the
   podcast needs three. --- */
.podcast-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.75rem;
}

/* --- second podcast ("The Riff") -----------------------------------
   Set apart from the message-audio buttons above rather than added as a
   third button, because it is a different show — a third button in that
   row would read as another way to hear the same content. */
.podcast-second {
  margin-top: clamp(1.75rem, 3vw, 2.5rem);
  padding-top: clamp(1.5rem, 2.5vw, 2rem);
  border-top: 1px solid var(--line);
}
.podcast-second-title {
  margin: 0;
  font-size: 0.72rem; font-weight: 800; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--red);
}
.podcast-second-copy {
  margin: 0.6rem 0 1.25rem;
  font-size: 1rem; line-height: 1.7; color: var(--slate);
}
