/* ==========================================================
   SET MINISTRY — VISIBILITY & COLOR BALANCE (2026-10-30)
   Stronger text contrast, white-on-green bands, promoted
   streams, focus states and reduced-motion support.
   Loaded after compact.css.
   ========================================================== */

:root {
  --ink-2: #2b3a30;
  --muted: #4b5a50;
  --line: #dee3d9;
  --line-strong: #c2ccbd;
}

html { scroll-behavior: smooth; }
section[id], [id].hm-radio-bar { scroll-margin-top: 96px; }

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 2000;
  padding: 0.55rem 1rem;
  background: var(--brand);
  color: #fff;
  font-size: 0.85rem;
  border-radius: 0 0 6px 0;
}
.skip-link:focus { left: 0; color: #fff; }

a:focus-visible, button:focus-visible, .btn:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible,
.dropdown-item:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
  border-radius: 3px;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .hm-reveal { opacity: 1 !important; transform: none !important; }
  .set-nav-live-dot { animation: none !important; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

/* Header: Listen Live shortcut */
.set-nav-live {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.24rem 0.6rem;
  margin-left: auto;
  border: 1px solid var(--brand);
  border-radius: 4px;
  color: var(--brand) !important;
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 0.72rem;
  text-decoration: none;
  white-space: nowrap;
  transition: background .15s ease, color .15s ease;
}
.set-nav-live:hover, .set-nav-live:focus {
  background: var(--brand) !important;
  color: #fff !important;
}
.set-nav-live-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #d64545;
  box-shadow: 0 0 0 0 rgba(214, 69, 69, .6);
  animation: setLivePulse 2s ease-out infinite;
}
@keyframes setLivePulse {
  0% { box-shadow: 0 0 0 0 rgba(214, 69, 69, .55); }
  70% { box-shadow: 0 0 0 5px rgba(214, 69, 69, 0); }
  100% { box-shadow: 0 0 0 0 rgba(214, 69, 69, 0); }
}
.set-nav-options { margin-left: 0.25rem; }

/* Inner page hero: green overlay, brighter supporting text */
.page-hero::before {
  background: linear-gradient(135deg, rgba(9, 24, 15, .92) 0%, rgba(20, 107, 49, .72) 100%) !important;
}
.page-hero .lead { opacity: 1 !important; color: rgba(255, 255, 255, .92) !important; }
.page-hero .breadcrumb { color: rgba(255, 255, 255, .85) !important; }

/* Home: radio becomes a deep green on-air band */
.hm-radio {
  background:
    radial-gradient(900px 380px at 88% -10%, rgba(201, 168, 76, .16), transparent 60%),
    linear-gradient(135deg, #0b2115 0%, #0e3a20 55%, #146b31 100%) !important;
  border-top: 1px solid rgba(255, 255, 255, .08) !important;
  border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
  color: #fff !important;
}
.hm-radio .hm-radio-eyebrow { color: #e7c76a !important; }
.hm-radio .hm-radio-eyebrow::before { background: linear-gradient(90deg, #e7c76a, transparent) !important; }
.hm-radio .hm-radio-head h2 { color: #fff !important; }
.hm-radio .hm-radio-head p { color: rgba(255, 255, 255, .78) !important; }
.hm-radio .hm-radio-all { color: #fff !important; opacity: .9; }
.hm-radio .hm-radio-all:hover { color: #e7c76a !important; opacity: 1; }
.hm-radio .hm-station {
  background: rgba(255, 255, 255, .05) !important;
  border-bottom: 1px solid rgba(255, 255, 255, .12) !important;
  border-radius: 8px !important;
  padding: 0.55rem 0.65rem !important;
  margin: 0 0 0.35rem !important;
}
.hm-radio .hm-station:hover { background: rgba(255, 255, 255, .1) !important; }
.hm-radio .hm-station.is-active {
  background: rgba(231, 199, 106, .15) !important;
  border-bottom-color: transparent !important;
}
.hm-radio .hm-station.is-active::before { background: #e7c76a !important; width: 3px; height: 22px; }
.hm-radio .hm-station-mark {
  width: 34px !important;
  height: 34px !important;
  background: rgba(255, 255, 255, .1) !important;
  border-color: rgba(255, 255, 255, .22) !important;
  color: #e7c76a !important;
  border-radius: 8px !important;
  font-size: 0.68rem !important;
}
.hm-radio .hm-station-info h3 { color: #fff !important; font-size: 0.88rem !important; }
.hm-radio .hm-station-info span { color: rgba(255, 255, 255, .66) !important; font-size: 0.72rem !important; }
.hm-radio .hm-station-eq { color: #e7c76a !important; }
.hm-radio .hm-station-share-btn { color: rgba(255, 255, 255, .6) !important; }
.hm-radio .hm-station-share-btn:hover,
.hm-radio .hm-station-share.is-open .hm-station-share-btn {
  background: rgba(255, 255, 255, .12) !important;
  color: #fff !important;
}
.hm-radio .hm-station-play {
  width: 36px !important;
  height: 36px !important;
  background: #fff !important;
  border-color: #fff !important;
  color: var(--brand-700) !important;
  box-shadow: 0 3px 10px rgba(0, 0, 0, .28);
}
.hm-radio .hm-station-play i { font-size: 1.1rem !important; }
.hm-radio .hm-station-play:hover,
.hm-radio .hm-station.is-active .hm-station-play {
  background: #e7c76a !important;
  border-color: #e7c76a !important;
  color: #0d2818 !important;
}

/* Home: Give becomes a green band with white text */
.hm-give {
  background: linear-gradient(160deg, #0f2919 0%, #124d26 100%) !important;
  border-color: rgba(255, 255, 255, .08) !important;
  color: #fff !important;
}
.hm-give .hm-section-hdr .label { color: #e7c76a !important; }
.hm-give .hm-section-hdr h2 { color: #fff !important; }
.hm-give .hm-section-hdr p { color: rgba(255, 255, 255, .78) !important; }
.hm-give .card {
  background: rgba(255, 255, 255, .06) !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
}
.hm-give .card:hover {
  background: rgba(255, 255, 255, .1) !important;
  border-color: rgba(255, 255, 255, .28) !important;
}
.hm-give .card .icon { background: rgba(255, 255, 255, .1) !important; color: #e7c76a !important; }
.hm-give .card h4 { color: #fff !important; }
.hm-give .card p { color: rgba(255, 255, 255, .74) !important; }
.hm-give .card .btn { background: #e7c76a !important; color: #14220f !important; }
.hm-give .card .btn:hover { background: #f0d488 !important; color: #14220f !important; }

/* Home: CTA as a green panel */
.hm-cta { padding: 1.5rem 0 2.4rem !important; }
.hm-cta > .container {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 2.5rem;
  row-gap: 0.35rem;
  padding: 2rem 2.1rem !important;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, #0b2115 0%, #146b31 100%);
}
.hm-cta h3 { grid-column: 1; margin-bottom: 0 !important; }
.hm-cta p { grid-column: 1; margin: 0 !important; }
.hm-cta .btns { grid-column: 2; grid-row: 1 / span 2; justify-content: flex-end !important; margin: 0 !important; }
.hm-cta > .container::after {
  content: "";
  position: absolute;
  right: -70px;
  top: -90px;
  width: 280px;
  height: 280px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(231, 199, 106, .2), transparent 68%);
  pointer-events: none;
}
.hm-cta h3 { color: #fff !important; }
.hm-cta p { color: rgba(255, 255, 255, .82) !important; max-width: 600px; }
.hm-cta .btn-primary {
  background: #e7c76a !important;
  border-color: #e7c76a !important;
  color: #14220f !important;
}
.hm-cta .btn-primary:hover { background: #f0d488 !important; border-color: #f0d488 !important; }
.hm-cta .btn-outline-dark {
  background: transparent !important;
  border-color: rgba(255, 255, 255, .5) !important;
  color: #fff !important;
}
.hm-cta .btn-outline-dark:hover {
  background: rgba(255, 255, 255, .14) !important;
  border-color: #fff !important;
  color: #fff !important;
}

/* Footer: brighter secondary text on green */
.hm-footer-tagline { color: rgba(255, 255, 255, .7) !important; }
.hm-footer-contact-item { color: rgba(255, 255, 255, .78) !important; }
.hm-footer-contact-item a { color: rgba(255, 255, 255, .78) !important; }
.hm-footer-links a { color: rgba(255, 255, 255, .74) !important; }
.hm-footer-invite { color: rgba(255, 255, 255, .74) !important; }
.hm-footer-copy { color: rgba(255, 255, 255, .62) !important; }
.hm-footer-bottom-links a { color: rgba(255, 255, 255, .7) !important; }
.hm-footer-bottom-links a:hover { color: #e7c76a !important; }

/* Live chip on the Explore radio card */
.hm-explorer .card { position: relative; }
.hm-live-chip {
  position: absolute;
  top: 6px;
  left: 6px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 6px;
  border-radius: 3px;
  background: rgba(11, 33, 21, .88);
  color: #fff;
  font-size: 0.55rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.4;
  pointer-events: none;
}
.hm-live-chip > span {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #ff5a5a;
}

/* Blog cards without a featured image */
.blog-thumb-empty {
  height: 200px;
  background: linear-gradient(135deg, var(--brand-050), #e2efe6);
  color: var(--brand);
}
.blog-thumb-empty i { font-size: 1.35rem; }

/* Softer card elevation to match the flat system */
.card.shadow, .card.shadow-sm, .card.shadow-lg {
  box-shadow: var(--shadow-sm) !important;
}

/* Accent cards (about page core beliefs) */
.card.border-primary {
  border: 1px solid var(--line) !important;
  border-top: 3px solid var(--brand) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: none !important;
}

/* Small-text visibility nudges */
.hm-explorer .card p { font-size: 0.72rem !important; }
.hm-leaders .card .role { font-size: 0.7rem !important; }
.hm-blog .card .date { font-size: 0.7rem !important; color: var(--gold-600) !important; }
.hm-newsletter-strip .hm-ns-note { color: #55635a !important; }

/* Radio page: compact, high-visibility stations */
.radio-page section.py-5 { padding: 2.1rem 0 !important; }
.radio-page section.bg-light { background: var(--surface-2) !important; }
.radio-page .row.g-4 { --bs-gutter-x: 1rem; --bs-gutter-y: 1rem; }
.radio-page h2 { font-size: 1.3rem !important; }
.radio-page .display-5 { font-size: 1.9rem !important; color: var(--brand) !important; }
.radio-page .text-muted { color: var(--muted) !important; }
.radio-page .card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: none !important;
  background: #fff !important;
}
.radio-page .card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--brand), var(--gold));
}
.radio-page .card:hover { border-color: var(--line-strong) !important; box-shadow: var(--shadow-sm) !important; }
.radio-page .card-body { padding: 1rem 1rem 1.05rem !important; }
.radio-page .badge.bg-primary {
  background: var(--brand) !important;
  border-radius: 4px !important;
  font-size: 0.6rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.3rem 0.45rem;
}
.radio-page h5 { font-size: 0.98rem !important; color: var(--ink) !important; }
.radio-page .card p.small { font-size: 0.8rem !important; line-height: 1.5 !important; color: var(--muted) !important; }
.radio-page .play-btn {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.5rem 0.8rem !important;
  font-size: 0.82rem !important;
  font-weight: 600;
  border-radius: var(--radius) !important;
}
.radio-page .play-btn i { font-size: 1rem; }
.radio-page .radio-player-bar { padding: 0.6rem 0.9rem; border-top: 2px solid var(--gold); }
.radio-page .radio-player-bar .station-name { font-size: 0.85rem; }

/* Mobile adjustments for new bands */
@media (max-width: 991.98px) {
  .set-nav-live { margin-left: 0; }
}
@media (max-width: 991.98px) {
  .hm-cta > .container { grid-template-columns: 1fr; }
  .hm-cta .btns { grid-column: 1; grid-row: auto; justify-content: flex-start !important; margin-top: 0.9rem !important; }
}
@media (max-width: 767.98px) {
  .hm-cta > .container { padding: 1.5rem 1.2rem !important; }
  .hm-radio .hm-station { padding: 0.5rem 0.55rem !important; }
  .hm-radio .hm-station-play { width: 34px !important; height: 34px !important; }
  .hm-radio .hm-station-info h3 { font-size: 0.84rem !important; }
  .hm-give .card p { font-size: 0.8rem !important; }
}
