/*
Theme Name: Vida Nueva TV
Theme URI: https://vidanuevatv.local
Author: Connecto Systems
Description: Custom TV-first WordPress theme for Vida Nueva TV.
Version: 0.1.0
Text Domain: vida-nueva-radio
*/
:root {
  --color-brand: #0f766e;
  --color-brand-dark: #0b3b3c;
  --color-accent: #f59e0b;
  --color-accent-hover: #d97706;
  --color-accent-text: #92400e;
  --color-surface: #ffffff;
  --color-surface-subtle: #f6f7fb;
  --color-surface-inverse: #0f172a;
  --color-foreground: #0f172a;
  --color-on-surface-inverse: #f8fafc;
  --color-on-primary: #f8fafc;
  --color-divider: #d9e2ec;
  --gradient-accent: linear-gradient(135deg, #0f766e 0%, #f59e0b 100%);
  --gradient-surface: linear-gradient(180deg, #ffffff 0%, #f3f8f8 100%);
  --gradient-border: linear-gradient(135deg, #0f766e 0%, #0b3b3c 100%);
  --radius-card: 24px;
  --radius-button: 999px;
  --radius-chips: 999px;
  --radius-pill: 999px;
  --shadow-card: 0 18px 40px rgba(15, 23, 42, 0.08);
  --shadow-float: 0 24px 60px rgba(15, 23, 42, 0.12);
  --shadow-glow: 0 26px 60px rgba(2, 8, 23, 0.28);
  --spacing-card: 1.6rem;
  --spacing-gap: 1.5rem;
  --spacing-section: 5rem;
  --spacing-header: 1rem;
  --font-display: Georgia, "Times New Roman", serif;
  --font-body: "Trebuchet MS", "Segoe UI", sans-serif;
  --font-ui: "Trebuchet MS", "Segoe UI", sans-serif;
  --max-width: 1200px;

  --theme-bg: var(--color-surface);
  --theme-bg-wash: color-mix(in srgb, var(--color-brand) 4%, transparent);
  --theme-header-bg: color-mix(in srgb, var(--color-surface) 88%, transparent);
  --theme-header-border: color-mix(in srgb, var(--color-divider) 78%, transparent);
  --theme-panel-bg: color-mix(in srgb, var(--color-surface) 94%, white);
  --theme-panel-bg-soft: color-mix(in srgb, var(--color-surface-subtle) 92%, white);
  --theme-panel-border: color-mix(in srgb, var(--color-divider) 82%, white);
  --theme-panel-shadow: var(--shadow-card);
  --theme-panel-shadow-strong: var(--shadow-float);
  --theme-hero-bg: color-mix(in srgb, var(--color-surface-inverse) 90%, black);
  --theme-hero-glow: color-mix(in srgb, var(--color-on-surface-inverse) 12%, transparent);
  --theme-on-dark-muted: color-mix(in srgb, var(--color-on-surface-inverse) 84%, transparent);
  --theme-on-dark-soft: color-mix(in srgb, var(--color-on-surface-inverse) 90%, transparent);
  --theme-accent-soft: color-mix(in srgb, var(--color-brand) 10%, transparent);
  --theme-accent-softer: color-mix(in srgb, var(--color-brand) 6%, transparent);
  --theme-accent-border: color-mix(in srgb, var(--color-brand) 14%, transparent);
  --theme-scripture-border: color-mix(in srgb, var(--color-accent) 88%, var(--color-brand-dark) 12%);
  --theme-button-secondary-bg: color-mix(in srgb, var(--color-on-surface-inverse) 14%, transparent);
  --theme-button-secondary-border: color-mix(in srgb, var(--color-on-surface-inverse) 22%, transparent);
  --theme-button-shadow: 0 14px 28px color-mix(in srgb, var(--color-surface-inverse) 18%, transparent);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--color-foreground);
  background: var(--theme-bg-wash), var(--theme-bg);
  line-height: 1.65;
}
.admin-bar .mobile-contact-bar { bottom: 0; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1rem; }
.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  backdrop-filter: blur(14px);
  background: color-mix(in srgb, var(--color-surface-inverse) 94%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--color-on-surface-inverse) 12%, transparent);
}
.site-shell,.section-inner,.site-footer-inner { width: min(calc(100% - 2rem), var(--max-width)); margin: 0 auto; }
.site-shell { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: clamp(0.85rem, 2vw, 1.35rem) 0; }
.site-brand { display: inline-flex; align-items: center; gap: 0.85rem; }
.site-brand-logo {
  width: auto;
  height: 4.9rem;
  max-width: 20rem;
  object-fit: contain;
  display: block;
}
.site-nav { display: flex; align-items: center; gap: 0.8rem; flex-wrap: wrap; justify-content: flex-end; }
.site-nav--desktop { position: static; }
.nav-item { position: static; }
.nav-trigger {
  padding: 0.55rem 0.95rem;
  border-radius: var(--radius-button);
  color: color-mix(in srgb, var(--color-on-surface-inverse) 88%, transparent);
  font-family: var(--font-ui);
  font-size: 0.95rem;
  background: transparent;
  border: 0;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.nav-trigger:hover,
.nav-trigger:focus-visible,
.nav-trigger.is-active {
  background: color-mix(in srgb, var(--color-on-surface-inverse) 12%, transparent);
  color: var(--color-on-surface-inverse);
  transform: translateY(-1px);
}
.mega-panel {
  position: absolute;
  top: calc(100% - 3rem);
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  width: min(64rem, calc(100vw - 2rem));
  padding: 1.4rem;
  display: none;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr);
  gap: 1.5rem;
  z-index: 40;
}
.nav-item.is-open > .mega-panel { display: grid; }
.mega-panel-primary {
  display: grid;
  gap: 1rem;
}
.mega-panel-main {
  display: grid;
  gap: 0.85rem;
  align-content: start;
}
.mega-panel-main h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.65rem;
  line-height: 1.08;
}
.mega-panel-main p {
  margin: 0;
  color: color-mix(in srgb, var(--color-foreground) 74%, white 26%);
}
.mega-panel .button,
.mobile-mega-content .button {
  background: var(--color-accent);
  color: var(--color-on-primary);
  box-shadow: var(--theme-button-shadow);
}
.mega-panel .button:hover,
.mobile-mega-content .button:hover {
  background: var(--color-accent-hover);
}
.mega-eyebrow {
  display: inline-flex;
  padding: 0.38rem 0.7rem;
  border-radius: var(--radius-chips);
  background: var(--theme-accent-soft);
  color: var(--color-brand-dark);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.mega-panel-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.mega-group {
  display: grid;
  gap: 0.55rem;
  padding: 1rem;
  border-radius: var(--radius-card);
  background: var(--theme-panel-bg-soft);
  border: 1px solid var(--theme-panel-border);
}
.mega-group strong,
.mobile-mega-links span {
  display: block;
  font-size: 0.9rem;
  font-weight: 800;
}
.mega-group a,
.mobile-mega-links a {
  color: color-mix(in srgb, var(--color-foreground) 78%, white 22%);
}
.mega-group a:hover,
.mobile-mega-links a:hover {
  color: var(--color-brand-dark);
}
.mega-panel-secondary {
  display: grid;
  gap: 0.9rem;
  padding: 1rem;
  border-radius: var(--radius-card);
  background: color-mix(in srgb, var(--color-brand) 4%, var(--color-surface) 96%);
  border: 1px solid var(--theme-panel-border);
}
.mega-panel-secondary--support {
  align-content: start;
}
.mega-panel-secondary__header {
  display: grid;
  gap: 0.45rem;
}
.mega-panel-secondary__header strong {
  font-size: 1rem;
  line-height: 1.3;
  color: var(--color-foreground);
}
.mega-panel-secondary__body,
.mega-panel-secondary__caption {
  margin: 0;
  color: color-mix(in srgb, var(--color-foreground) 76%, white 24%);
}
.mega-panel-secondary__caption {
  font-size: 0.88rem;
}
.mega-panel-secondary__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.mega-panel-secondary__actions .button,
.mega-panel-secondary__actions .button-secondary {
  margin: 0;
}
.mega-church-grid {
  display: grid;
  gap: 0.8rem;
}
.mega-church-card {
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr);
  gap: 0.8rem;
  align-items: center;
  padding: 0.85rem;
  border-radius: calc(var(--radius-card) * 0.85);
  background: color-mix(in srgb, var(--color-surface) 92%, white 8%);
  border: 1px solid var(--theme-panel-border);
  transition: border-color 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
}
.mega-church-card:hover,
.mega-church-card:focus-visible,
.mobile-mega-church-card:hover,
.mobile-mega-church-card:focus-visible {
  border-color: var(--color-brand);
  transform: translateY(-1px);
}
.mega-church-card__logo-wrap,
.mobile-mega-church-card__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 4.4rem;
  padding: 0.45rem;
  border-radius: calc(var(--radius-card) * 0.75);
  background: color-mix(in srgb, var(--color-surface) 96%, white 4%);
  border: 1px solid color-mix(in srgb, var(--color-divider) 58%, transparent);
}
.mega-church-card__logo {
  width: 100%;
  max-height: 3.4rem;
  object-fit: contain;
}
.mega-church-card__logo--fallback {
  font-size: 0.8rem;
  font-weight: 700;
  text-align: center;
}
.mega-church-card__copy,
.mobile-mega-church-card__copy {
  display: grid;
  gap: 0.18rem;
}
.mega-church-card__copy strong,
.mobile-mega-church-card__copy strong {
  font-size: 0.95rem;
  line-height: 1.25;
  color: var(--color-foreground);
}
.mega-church-card__copy span,
.mega-church-card__copy em,
.mobile-mega-church-card__copy span {
  font-size: 0.82rem;
  color: color-mix(in srgb, var(--color-foreground) 74%, white 26%);
}
.mega-church-card__copy em {
  font-style: normal;
}
.mobile-menu-toggle {
  display: none;
  min-height: 2.8rem;
  padding: 0.7rem 1rem;
  border-radius: var(--radius-button);
  border: 1px solid color-mix(in srgb, var(--color-on-surface-inverse) 16%, transparent);
  background: color-mix(in srgb, var(--color-on-surface-inverse) 10%, transparent);
  color: var(--color-on-surface-inverse);
  font-family: var(--font-ui);
  font-weight: 700;
}
.mobile-mega-menu {
  width: min(calc(100% - 2rem), var(--max-width));
  margin: 0 auto 1rem;
  padding: 1rem;
}
.mobile-mega-menu__header {
  display: grid;
  gap: 0.75rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--theme-panel-border);
  margin-bottom: 1rem;
}
.mobile-mega-menu__header p {
  margin: 0;
  color: color-mix(in srgb, var(--color-foreground) 74%, white 26%);
}
.mobile-mega-menu__logo {
  width: auto;
  height: 3.1rem;
  max-width: 12rem;
  object-fit: contain;
}
.mobile-mega-section + .mobile-mega-section { margin-top: 0.75rem; }
.mobile-mega-section summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  list-style: none;
  cursor: pointer;
  font-weight: 800;
  padding: 0.85rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--color-divider) 68%, transparent);
}
.mobile-mega-section summary::-webkit-details-marker { display: none; }
.mobile-mega-content {
  display: grid;
  gap: 0.8rem;
  padding: 0.8rem 0 0.25rem;
}
.mobile-mega-links {
  display: grid;
  gap: 0.45rem;
  padding-top: 0.4rem;
}
.mobile-mega-churches {
  display: grid;
  gap: 0.7rem;
  padding-top: 0.75rem;
  border-top: 1px solid color-mix(in srgb, var(--color-divider) 62%, transparent);
}
.mobile-mega-churches > span {
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--color-foreground) 70%, white 30%);
}
.mobile-mega-church-card {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr);
  gap: 0.75rem;
  align-items: center;
  padding: 0.75rem;
  border-radius: calc(var(--radius-card) * 0.8);
  background: color-mix(in srgb, var(--color-surface) 96%, white 4%);
  border: 1px solid var(--theme-panel-border);
}
.mobile-mega-church-card__logo {
  width: 100%;
  height: 3.8rem;
  object-fit: contain;
}
.mobile-mega-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--theme-panel-border);
}
.mobile-mega-actions__link {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 2.9rem;
  padding: 0.7rem 0.9rem;
  border-radius: var(--radius-button);
  background: color-mix(in srgb, var(--color-brand) 10%, transparent);
  color: var(--color-brand-dark);
  font-size: 0.88rem;
  font-weight: 700;
  text-align: center;
}
.mobile-contact-bar {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 28;
  padding: 0.45rem 1rem env(safe-area-inset-bottom, 0px);
  background: color-mix(in srgb, var(--color-surface-inverse) 92%, transparent);
  border-top: 1px solid color-mix(in srgb, var(--color-on-surface-inverse) 12%, transparent);
  backdrop-filter: blur(16px);
}
.mobile-contact-bar__inner {
  width: min(calc(100% - 0.25rem), var(--max-width));
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}
.mobile-contact-bar__action {
  min-width: 0;
  display: grid;
  gap: 0.12rem;
  padding: 0.62rem 0.8rem;
  border-radius: calc(var(--radius-card) * 0.65);
  border: 1px solid color-mix(in srgb, var(--color-on-surface-inverse) 10%, transparent);
  color: var(--color-on-surface-inverse);
  box-shadow: var(--theme-button-shadow);
}
.mobile-contact-bar__action--call {
  background: linear-gradient(135deg, color-mix(in srgb, var(--color-accent) 92%, white 8%) 0%, color-mix(in srgb, var(--color-accent-hover) 88%, black 12%) 100%);
}
.mobile-contact-bar__action--prayer {
  background: linear-gradient(135deg, color-mix(in srgb, var(--color-brand) 90%, white 10%) 0%, color-mix(in srgb, var(--color-brand-dark) 92%, black 8%) 100%);
}
.mobile-contact-bar__label {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--color-on-surface-inverse) 78%, transparent);
}
.mobile-contact-bar__action strong {
  font-size: 0.8rem;
  line-height: 1.15;
}
.section-block { padding: var(--spacing-section) 0; }
.section-block--compact { padding: calc(var(--spacing-section) * 0.8) 0; }
.section-surface-flat { background: transparent; }
.section-surface-gradient-surface { background-image: var(--gradient-surface); }
.section-surface-gradient-accent { background-image: var(--gradient-accent); color: var(--color-on-surface-inverse); }
.section-surface-gradient-accent .section-kicker,
.section-surface-gradient-accent .section-body,
.section-surface-gradient-accent .hero-meta,
.section-surface-gradient-accent .player-note,
.section-surface-gradient-accent .promo-copy,
.section-surface-gradient-accent .link-card p,
.section-surface-gradient-accent .scripture-accent,
.section-surface-gradient-accent .section-caption { color: var(--theme-on-dark-soft); }
.section-surface-gradient-border {
  background: linear-gradient(var(--color-surface), var(--color-surface)) padding-box, var(--gradient-border) border-box;
  border: 1px solid transparent;
}
.surface-neutral,
.surface-neutral-soft,
.surface-brand,
.surface-inverse {
  border-radius: var(--radius-card);
  box-shadow: var(--theme-panel-shadow);
}
.surface-neutral {
  background: var(--theme-panel-bg);
  border: 1px solid var(--theme-panel-border);
  color: var(--color-foreground);
}
.surface-neutral-soft {
  background: var(--theme-panel-bg-soft);
  border: 1px solid var(--theme-panel-border);
  color: var(--color-foreground);
}
.surface-brand {
  background: color-mix(in srgb, var(--color-brand) 10%, var(--theme-panel-bg-soft) 90%);
  border: 1px solid var(--theme-accent-border);
  color: var(--color-foreground);
}
.surface-inverse {
  background: color-mix(in srgb, var(--color-surface-inverse) 94%, black);
  border: 1px solid color-mix(in srgb, var(--color-on-surface-inverse) 12%, transparent);
  color: var(--color-on-surface-inverse);
  box-shadow: var(--shadow-float);
}
.tone-default { color: var(--color-foreground); }
.tone-default .section-body,
.tone-default .section-caption,
.tone-default .scripture-accent {
  color: color-mix(in srgb, var(--color-foreground) 74%, white 26%);
}
.tone-inverse { color: var(--color-on-surface-inverse); }
.tone-inverse .section-title,
.tone-inverse .button-secondary,
.tone-inverse .hero-trust-item strong,
.tone-inverse .hero-trust-item span {
  color: var(--color-on-surface-inverse);
}
.tone-inverse .section-body,
.tone-inverse .section-caption,
.tone-inverse .scripture-accent {
  color: var(--theme-on-dark-soft);
}
.tone-inverse .section-kicker {
  background: color-mix(in srgb, var(--color-on-surface-inverse) 12%, transparent);
  color: var(--color-on-surface-inverse);
}
.tone-inverse .scripture-accent {
  background: color-mix(in srgb, var(--color-on-surface-inverse) 10%, transparent);
}
.tone-inverse .button-secondary {
  background: color-mix(in srgb, var(--color-on-surface-inverse) 10%, transparent);
  border-color: color-mix(in srgb, var(--color-on-surface-inverse) 24%, transparent);
}
.effect-accent,
.effect-surface {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.effect-accent::before,
.effect-surface::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.effect-accent > *,
.effect-surface > * {
  position: relative;
  z-index: 1;
}
.effect-accent::before {
  background: var(--gradient-accent);
  opacity: 0.16;
}
.effect-surface::before {
  background: var(--gradient-surface);
  opacity: 0.52;
}
.effect-border {
  background: linear-gradient(var(--theme-panel-bg), var(--theme-panel-bg)) padding-box, var(--gradient-border) border-box;
  border: 1px solid transparent;
}
.surface-panel-soft {
  background: var(--theme-panel-bg-soft);
  border: 1px solid var(--theme-panel-border);
  box-shadow: var(--theme-panel-shadow);
}
.surface-panel-brand {
  background: color-mix(in srgb, var(--color-brand) 8%, var(--theme-panel-bg-soft) 92%);
  border: 1px solid var(--theme-accent-border);
  box-shadow: var(--theme-panel-shadow);
}
.surface-accent-wash {
  background: color-mix(in srgb, var(--color-brand) 10%, var(--theme-panel-bg) 90%);
  border: 1px solid color-mix(in srgb, var(--color-brand) 16%, transparent);
}
.surface-atmosphere-dark {
  color: var(--color-on-surface-inverse);
  box-shadow: var(--shadow-glow);
}
.surface-atmosphere-dark .section-kicker,
.surface-atmosphere-dark .promo-copy,
.surface-atmosphere-dark .section-body,
.surface-atmosphere-dark .scripture-accent {
  color: var(--theme-on-dark-soft);
}
.surface-atmosphere-dark .section-title,
.surface-atmosphere-dark .hero-metric strong,
.surface-atmosphere-dark .hero-metric span,
.surface-atmosphere-dark .button,
.surface-atmosphere-dark .button-secondary {
  color: var(--color-on-surface-inverse);
}
.surface-atmosphere-dark .scripture-accent {
  background: color-mix(in srgb, var(--color-on-surface-inverse) 10%, transparent);
}
.surface-atmosphere-dark .section-kicker {
  background: color-mix(in srgb, var(--color-on-surface-inverse) 12%, transparent);
  color: var(--color-on-surface-inverse);
}
.surface-atmosphere-dark--hero {
  background: var(--theme-hero-bg);
}
.surface-atmosphere-dark--cta {
  background: color-mix(in srgb, var(--color-surface-inverse) 88%, var(--color-brand-dark) 12%);
}
.section-frame { border-radius: var(--radius-card); }
.section-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.42rem 0.78rem;
  border-radius: var(--radius-chips);
  background: var(--theme-accent-soft);
  color: var(--color-brand-dark);
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.section-title {
  margin: 1rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 4vw, 4.7rem);
  line-height: 0.98;
  letter-spacing: -0.02em;
}
.section-body {
  max-width: 48rem;
  margin-top: 1rem;
  color: color-mix(in srgb, var(--color-foreground) 74%, white 26%);
  font-size: 1.08rem;
}
.section-caption {
  margin-top: 1rem;
  color: color-mix(in srgb, var(--color-foreground) 74%, white 26%);
  font-size: 0.95rem;
}
.section-heading-row { margin-bottom: 1.5rem; }
.hero-section--with-background {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: #0b0b0b;
  background-image: var(--hero-bg-image);
  background-position: center;
  background-size: cover;
}
.hero-section--with-background::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(90deg, rgb(8 11 18 / 0.84) 0%, rgb(8 11 18 / 0.72) 42%, rgb(8 11 18 / 0.48) 100%),
    linear-gradient(180deg, rgb(0 0 0 / 0.12) 0%, rgb(0 0 0 / 0.38) 100%);
}
.hero-section--with-background::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    radial-gradient(circle at top right, rgb(250 174 60 / 0.24) 0%, transparent 28%),
    radial-gradient(circle at bottom left, rgb(0 0 0 / 0.2) 0%, transparent 42%);
  pointer-events: none;
}
.hero-section--with-background > .section-inner {
  position: relative;
  z-index: 1;
}
.hero-shell {
  position: relative;
  isolation: isolate;
  border-radius: var(--radius-card);
  padding: calc(var(--spacing-card) * 1.35);
}
.hero-shell--transparent {
  background: transparent;
  min-height: min(78vh, 52rem);
}
.hero-layout {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.28fr) minmax(320px, 0.72fr);
  gap: var(--spacing-gap);
  align-items: stretch;
}
.hero-shell--solo .hero-layout {
  grid-template-columns: minmax(0, 1fr);
}
.hero-content {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.hero-kicker {
  align-self: flex-start;
}
.hero-title {
  max-width: 13ch;
}
.hero-title .hero-title-accent {
  color: color-mix(in srgb, var(--color-accent) 88%, white 12%);
}
.hero-title .hero-title-strong {
  color: var(--color-on-surface-inverse);
}
.hero-body {
  max-width: 40rem;
}
.hero-body p,
.hero-support-copy,
.hero-media figcaption {
  margin: 0;
}
.hero-actions {
  display: flex;
  gap: 0.85rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}
.hero-primary-button {
  background: var(--color-accent);
  color: var(--color-on-primary);
}
.hero-primary-button:hover {
  background: var(--color-accent-hover);
}
.hero-trust-list {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
  margin: 1.75rem 0 0;
  padding: 0;
}
.hero-trust-item {
  min-width: 0;
  padding: 1rem;
  border-radius: var(--radius-card);
  background: color-mix(in srgb, var(--color-on-surface-inverse) 9%, transparent);
  border: 1px solid color-mix(in srgb, var(--color-on-surface-inverse) 14%, transparent);
}
.hero-trust-item strong {
  display: block;
  font-size: 1rem;
  margin-bottom: 0.35rem;
}
.hero-trust-item span {
  display: block;
  color: var(--theme-on-dark-soft);
  font-size: 0.96rem;
}
.hero-support {
  display: grid;
  gap: 1rem;
  align-content: start;
}
.hero-support-card,
.hero-media {
  padding: calc(var(--spacing-card) * 1.05);
}
.hero-shell--transparent .hero-support-card {
  background: color-mix(in srgb, var(--color-surface) 88%, white 12%);
  backdrop-filter: blur(8px);
}
.hero-support-badge {
  display: inline-flex;
  align-self: flex-start;
  padding: 0.42rem 0.74rem;
  border-radius: var(--radius-chips);
  background: var(--color-accent);
  color: var(--color-on-primary);
  font-family: var(--font-ui);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.hero-support-title {
  margin: 1rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(1.45rem, 2.4vw, 2rem);
  line-height: 1.02;
}
.hero-support-copy {
  margin-top: 0.9rem;
  color: color-mix(in srgb, var(--color-foreground) 72%, white 28%);
}
.hero-support-list {
  display: grid;
  gap: 0.8rem;
  margin-top: 1.1rem;
}
.hero-support-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem 1rem;
  border-radius: var(--radius-card);
  background: var(--theme-accent-softer);
  border: 1px solid var(--theme-accent-border);
}
.hero-support-item--static {
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--color-surface) 96%, white) 0%,
      color-mix(in srgb, var(--color-surface-subtle) 94%, var(--color-accent) 6%) 100%
    );
  box-shadow: var(--shadow-card);
  text-decoration: none;
}
.hero-support-item-copy {
  min-width: 0;
}
.hero-support-item-copy strong {
  display: block;
  font-size: 0.98rem;
  margin-bottom: 0.3rem;
}
.hero-support-item-copy span {
  display: block;
  color: color-mix(in srgb, var(--color-foreground) 72%, white 28%);
  font-size: 0.9rem;
}
.hero-support-item-mark {
  display: inline-flex;
  flex: 0 0 2.2rem;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 999px;
  background: var(--gradient-accent);
  color: var(--color-on-primary);
  font-weight: 700;
}
.hero-support-footer {
  margin: 1rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid color-mix(in srgb, var(--color-foreground) 14%, white 86%);
  color: color-mix(in srgb, var(--color-foreground) 76%, white 24%);
  font-size: 0.94rem;
}
.hero-media {
  display: grid;
  gap: 0.75rem;
}
.hero-media img {
  width: 100%;
  display: block;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: calc(var(--radius-card) - 0.2rem);
}
.hero-media figcaption {
  color: color-mix(in srgb, var(--color-foreground) 68%, white 32%);
  font-size: 0.92rem;
}
.hero-grid,.player-grid,.promo-grid,.links-grid,.content-feature-grid,.pastor-grid,.church-grid,.ministry-grid,.spotlight-grid,.install-grid,.contact-grid,.prayer-bar-grid,.content-grid { display: grid; gap: var(--spacing-gap); }
.hero-grid { grid-template-columns: minmax(0, 1.3fr) minmax(320px, 0.7fr); align-items: stretch; }
.player-grid,.promo-grid,.links-grid,.content-feature-grid,.pastor-grid,.church-grid,.contact-grid,.prayer-bar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hero-panel,.player-panel,.promo-panel,.link-card,.hero-sidecard,.content-card,.pastor-card,.church-card,.ministry-card,.spotlight-card,.install-step-card,.contact-card,.contact-copy-card,.contact-form-card,.content-grid-card,.content-grid-empty {
  border-radius: var(--radius-card);
  padding: var(--spacing-card);
  box-shadow: var(--theme-panel-shadow);
  background: var(--theme-panel-bg);
}
.hero-panel.surface-atmosphere-dark--hero {
  background: var(--theme-hero-bg);
}
.promo-panel.surface-atmosphere-dark--cta,
.promo-panel--deep.surface-atmosphere-dark--cta {
  background: color-mix(in srgb, var(--color-surface-inverse) 88%, var(--color-brand-dark) 12%);
}
.hero-panel,
.hero-sidecard {
  color: var(--color-foreground);
  position: relative;
  overflow: hidden;
}
.hero-panel {
  padding: calc(var(--spacing-card) * 1.35);
  color: var(--color-on-surface-inverse);
}
.hero-panel::after {
  content: "";
  position: absolute;
  inset: auto -4rem -4rem auto;
  width: 14rem;
  height: 14rem;
  border-radius: 999px;
  background: var(--theme-hero-glow);
}
.hero-panel .section-body { color: var(--theme-on-dark-muted); max-width: 40rem; }
.hero-sidecard {
  color: var(--color-foreground);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1.25rem;
  padding: calc(var(--spacing-card) * 1.1);
}
.hero-sidecard-badge,
.promo-panel-badge {
  display: inline-flex;
  align-self: flex-start;
  padding: 0.42rem 0.74rem;
  border-radius: var(--radius-chips);
  background: var(--theme-accent-soft);
  color: var(--color-brand-dark);
  font-family: var(--font-ui);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.hero-sidecard p { color: color-mix(in srgb, var(--color-foreground) 74%, white 26%); }
.hero-sidecard-links {
  display: grid;
  gap: 0.8rem;
}
.hero-sidecard-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem 1rem;
  border-radius: var(--radius-card);
  background: var(--theme-accent-softer);
  border: 1px solid var(--theme-accent-border);
}
.hero-sidecard-link strong { margin: 0; font-size: 0.98rem; }
.hero-sidecard-link span { color: color-mix(in srgb, var(--color-foreground) 72%, white 28%); font-size: 0.9rem; }
.hero-sidecard-link-mark {
  display: inline-flex;
  flex: 0 0 2.2rem;
  width: 2.2rem;
  height: 2.2rem;
  min-width: 2.2rem;
  min-height: 2.2rem;
  aspect-ratio: 1 / 1;
  align-items: center;
  align-self: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--gradient-accent);
  color: var(--color-on-primary);
  font-weight: 700;
}
.section-surface-gradient-accent .player-panel,
.section-surface-gradient-accent .promo-panel,
.section-surface-gradient-accent .link-card,
.section-surface-gradient-accent .content-card,
.section-surface-gradient-accent .pastor-card,
.section-surface-gradient-accent .church-card,
.section-surface-gradient-accent .ministry-card,
.section-surface-gradient-accent .spotlight-card,
.section-surface-gradient-accent .install-step-card,
.section-surface-gradient-accent .contact-card,
.section-surface-gradient-accent .contact-copy-card,
.section-surface-gradient-accent .contact-form-card {
  background: color-mix(in srgb, var(--color-surface-inverse) 18%, transparent);
  box-shadow: var(--shadow-glow);
}
.hero-actions,.player-actions,.promo-actions,.church-actions { display: flex; gap: 0.85rem; flex-wrap: wrap; margin-top: 1.5rem; }
.button,.button-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0.8rem 1.25rem;
  border-radius: var(--radius-button);
  font-family: var(--font-ui);
  font-weight: 700;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
.button:hover,.button-secondary:hover { transform: translateY(-2px); }
.button {
  background: var(--color-surface-inverse);
  color: var(--color-on-surface-inverse);
  box-shadow: var(--theme-button-shadow);
}
.button-secondary {
  background: var(--theme-button-secondary-bg);
  color: inherit;
  border: 1px solid var(--theme-button-secondary-border);
}
.surface-atmosphere-dark .button-secondary {
  background: color-mix(in srgb, var(--color-on-surface-inverse) 10%, transparent);
  border-color: color-mix(in srgb, var(--color-on-surface-inverse) 24%, transparent);
}
.hero-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
  margin-top: 1.9rem;
}
.hero-metric {
  padding: 1rem;
  border-radius: var(--radius-card);
  background: color-mix(in srgb, var(--color-on-surface-inverse) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--color-on-surface-inverse) 14%, transparent);
}
.surface-atmosphere-dark .hero-metric {
  color: var(--color-on-surface-inverse);
}
.hero-metric strong,
.hero-sidecard strong,
.player-panel strong,
.link-card strong,
.promo-panel strong,
.content-card strong,
.content-grid-card strong,
.pastor-card strong,
.church-card strong,
.ministry-card strong,
.spotlight-card strong,
.install-step-card strong,
.contact-card strong,
.contact-form-card strong {
  display: block;
  font-size: 1.05rem;
  margin-bottom: 0.35rem;
}
.church-card-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.1rem 1.1rem 0.4rem;
    width: 100%;
}
.church-card-logo img {
    display: block;
    width: 100%;
    max-width: 100%;
    max-height: 12rem;
    object-fit: contain;
}
.church-card--with-logo {
    padding: 0;
    overflow: hidden;
}
.church-card-content {
    padding: 0 1.35rem 1.35rem;
}
.pastor-card-image {
  margin-bottom: 0.95rem;
  border-radius: calc(var(--radius-card) - 4px);
  overflow: hidden;
  background: color-mix(in srgb, var(--color-surface-2) 88%, transparent);
}
.pastor-card-image img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}
.player-panel {
  color: var(--color-on-surface-inverse);
  padding: calc(var(--spacing-card) * 1.15);
  display: grid;
  gap: 1rem;
  align-content: start;
  border-width: var(--border-width-card);
  border-color: color-mix(in srgb, var(--color-on-surface-inverse) 16%, transparent);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--color-surface-inverse) 92%, var(--color-brand-dark) 8%) 0%, color-mix(in srgb, var(--color-surface-inverse) 98%, black 2%) 100%);
  box-shadow:
    var(--shadow-card),
    inset 0 1px 0 color-mix(in srgb, white 12%, transparent);
}
.player-copy-column {
  display: grid;
  align-content: start;
  gap: 0.7rem;
}
.player-copy-column .section-title {
  max-width: 18ch;
  margin-bottom: 0.35rem;
}
.player-copy-column .section-body {
  max-width: 40ch;
}
.player-copy-column .section-body p {
  font-size: 1.08rem;
  line-height: 1.62;
  font-weight: 600;
}
.player-embed {
  min-height: 300px;
  border-radius: var(--radius-card);
  display: grid;
  gap: 0.85rem;
  padding: 1.15rem;
  align-content: start;
  border: 1px solid color-mix(in srgb, var(--color-on-surface-inverse) 12%, transparent);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--color-surface-inverse) 86%, var(--color-brand-dark) 14%) 0%, color-mix(in srgb, var(--color-surface-inverse) 94%, black 6%) 100%);
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, white 10%, transparent),
    0 16px 36px color-mix(in srgb, black 22%, transparent);
}
.player-brand-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.player-brand-logo {
  display: block;
  width: auto;
  height: 2.7rem;
  max-width: min(100%, 12rem);
  object-fit: contain;
}
.player-status-badge {
  display: inline-flex;
  padding: 0.38rem 0.7rem;
  border-radius: var(--radius-chips);
  background: color-mix(in srgb, var(--color-brand) 20%, transparent);
  color: var(--color-on-surface-inverse);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.player-brand-tagline {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.4;
  font-weight: 700;
  color: color-mix(in srgb, var(--color-on-surface-inverse) 86%, white 14%);
}
.live-video-player {
  width: 100%;
  aspect-ratio: 16 / 9;
  display: block;
  border: 1px solid color-mix(in srgb, var(--color-on-surface-inverse) 12%, transparent);
  border-radius: var(--radius-card);
  background: color-mix(in srgb, var(--color-surface-inverse) 96%, black);
}
.player-copy { text-align: left; }
.player-copy strong {
  font-size: 1.18rem;
  margin-bottom: 0.45rem;
  color: var(--color-on-surface-inverse);
}
.player-caption {
  margin-top: 0.4rem;
  color: color-mix(in srgb, var(--color-on-surface-inverse) 70%, white 30%);
  font-size: 0.9rem;
}
.player-panel .player-note {
  color: color-mix(in srgb, var(--color-on-surface-inverse) 78%, white 22%);
}
.player-note,.promo-copy,.link-card p,.spotlight-card p,.contact-card p,.contact-form-card p,.install-step-card p,.content-grid-card p,.content-grid-empty p { color: color-mix(in srgb, var(--color-foreground) 74%, white 26%); }
.card-title-offset { margin-top: 0.9rem; }
.player-actions--panel {
  margin-top: 0;
  padding-top: 0.4rem;
  border-top: 1px solid color-mix(in srgb, var(--color-on-surface-inverse) 10%, transparent);
  justify-content: center;
}
.player-actions--panel .button,
.player-actions--panel .button-secondary {
  min-width: 10.5rem;
  justify-content: center;
}
.player-actions--panel .button-secondary {
  color: var(--color-on-surface-inverse);
  border-color: color-mix(in srgb, var(--color-on-surface-inverse) 20%, transparent);
  background: color-mix(in srgb, var(--color-on-surface-inverse) 4%, transparent);
}
.promo-grid { align-items: stretch; }
.promo-panel {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1rem;
  padding: calc(var(--spacing-card) * 1.15);
}
.promo-panel--deep {
  color: var(--color-on-surface-inverse);
}
.promo-panel--deep .promo-copy { color: var(--theme-on-dark-muted); }
.promo-panel-support {
  color: var(--color-foreground);
}
.promo-support-media {
  position: relative;
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  overflow: visible;
}
.promo-support-media img {
  display: block;
  width: min(100%, 18rem);
  margin-inline: auto;
  height: auto;
  object-fit: contain;
  border-radius: calc(var(--radius-card) * 1.1);
  filter: drop-shadow(0 18px 38px color-mix(in srgb, var(--color-brand-dark) 22%, transparent));
}
.promo-panel-support strong {
  font-size: clamp(1.2rem, 2.2vw, 1.45rem);
}
.promo-panel-support .promo-copy {
  max-width: 34ch;
}
#donor-banner-after-player .promo-panel-support,
#donor-banner-before-events .promo-panel-support {
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0.7rem;
  padding: 0.9rem;
  background:
    radial-gradient(circle at top, color-mix(in srgb, var(--color-accent) 14%, transparent), transparent 62%),
    color-mix(in srgb, var(--color-surface) 92%, white 8%);
  border: 1px solid color-mix(in srgb, var(--color-accent) 18%, var(--color-divider));
}
#donor-banner-after-player .promo-support-media,
#donor-banner-before-events .promo-support-media {
  width: 100%;
  aspect-ratio: 1 / 1;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  overflow: visible;
}
#donor-banner-after-player .promo-support-media img,
#donor-banner-before-events .promo-support-media img {
  width: 100%;
  height: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
#donor-banner-after-player .promo-panel-badge,
#donor-banner-before-events .promo-panel-badge {
  align-self: flex-start;
}
#donor-banner-after-player .section-caption,
#donor-banner-before-events .section-caption {
  max-width: 28ch;
}
#donor-banner-after-player .promo-panel--deep,
#donor-banner-before-events .promo-panel--deep {
  position: relative;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
  padding-top: calc(var(--spacing-card) * 1.8);
}
#donor-banner-after-player .promo-panel--deep .section-kicker,
#donor-banner-before-events .promo-panel--deep .section-kicker {
  position: absolute;
  top: var(--spacing-card);
  left: var(--spacing-card);
  margin: 0;
}
#donor-banner-after-player .promo-actions,
#donor-banner-before-events .promo-actions {
  display: none;
}
.prayer-bar-copy,
.prayer-bar-form {
  padding: calc(var(--spacing-card) * 1.1);
}
.prayer-bar-copy {
  color: var(--color-on-surface-inverse);
}
.prayer-bar-copy .section-body p {
  color: var(--theme-on-dark-muted);
  max-width: 42ch;
}
.prayer-bar-form-shell {
  display: grid;
  gap: 1rem;
}
.prayer-bar-form-shell .ff-el-group {
  margin-bottom: 0;
}
.prayer-bar-form-shell .ff-t-cell,
.prayer-bar-form-shell .ff-el-input--label {
  color: color-mix(in srgb, var(--color-foreground) 78%, white 22%);
  font-size: 0.9rem;
  font-weight: 700;
}
.prayer-bar-form-shell .ff-el-group,
.prayer-bar-form-shell .ff-el-form-control,
.prayer-bar-form-shell .ff-btn {
  width: 100%;
}
.prayer-bar-form-shell .ff-el-form-control {
  border: 1px solid color-mix(in srgb, var(--color-divider) 82%, white 18%);
  border-radius: calc(var(--radius-card) * 0.8);
  background: color-mix(in srgb, var(--color-surface) 94%, white 6%);
  color: var(--color-foreground);
  padding: 0.95rem 1rem;
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--color-surface-subtle) 80%, white 20%);
}
.prayer-bar-form-shell textarea.ff-el-form-control {
  min-height: 8.75rem;
  resize: vertical;
}
.prayer-bar-form-shell .ff-el-form-control:focus {
  outline: none;
  border-color: color-mix(in srgb, var(--color-brand) 56%, white 44%);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-brand) 14%, transparent);
}
.prayer-bar-form-shell .ff-btn,
.prayer-bar-form-shell .ff-btn-submit {
  min-height: 3.15rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.4rem;
  border: 0;
  border-radius: var(--radius-button);
  background: var(--gradient-accent);
  color: var(--color-on-primary);
  font-family: var(--font-ui);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  box-shadow: var(--theme-button-shadow);
}
.prayer-bar-form-shell .ff-btn:hover,
.prayer-bar-form-shell .ff-btn-submit:hover {
  transform: translateY(-1px);
  filter: saturate(1.05);
}
.prayer-bar-form-shell .ff_submit_btn_wrapper {
  margin-top: 0.25rem;
}
.prayer-bar-form-shell ::placeholder {
  color: color-mix(in srgb, var(--color-foreground) 42%, white 58%);
}
.contact-form-shell {
  display: grid;
  gap: 1rem;
}
.contact-form-shell .ff-el-group,
.contact-form-shell .ff-el-form-control,
.contact-form-shell .ff-btn,
.contact-form-shell .magic-login-inline-login-form,
.contact-form-shell .magic-login-submit {
  width: 100%;
}
.contact-form-shell .ff-t-cell,
.contact-form-shell .ff-el-input--label,
.contact-form-shell label {
  color: color-mix(in srgb, var(--color-foreground) 78%, white 22%);
  font-size: 0.9rem;
  font-weight: 700;
}
.contact-form-shell .ff-el-group {
  margin-bottom: 0;
}
.contact-form-shell .ff-el-form-control,
.contact-form-shell .magic-login-inline-login-form .input,
.contact-form-shell input[type="text"],
.contact-form-shell input[type="email"],
.contact-form-shell input[type="url"],
.contact-form-shell input[type="password"],
.contact-form-shell textarea {
  border: 1px solid color-mix(in srgb, var(--color-divider) 82%, white 18%);
  border-radius: calc(var(--radius-card) * 0.8);
  background: color-mix(in srgb, var(--color-surface) 94%, white 6%);
  color: var(--color-foreground);
  padding: 0.95rem 1rem;
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--color-surface-subtle) 80%, white 20%);
  min-height: 3.15rem;
}
.contact-form-shell textarea.ff-el-form-control,
.contact-form-shell textarea {
  min-height: 8.75rem;
  resize: vertical;
}
.contact-form-shell .ff-el-form-control:focus,
.contact-form-shell .magic-login-inline-login-form .input:focus,
.contact-form-shell input:focus,
.contact-form-shell textarea:focus {
  outline: none;
  border-color: color-mix(in srgb, var(--color-brand) 56%, white 44%);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-brand) 14%, transparent);
}
.contact-form-shell .ff-btn,
.contact-form-shell .ff-btn-submit,
.contact-form-shell .magic-login-submit,
.contact-form-shell input[type="submit"] {
  min-height: 3.15rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.4rem;
  border: 0;
  border-radius: var(--radius-button);
  background: var(--gradient-accent);
  color: var(--color-on-primary);
  font-family: var(--font-ui);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  box-shadow: var(--theme-button-shadow);
}
.contact-form-shell .ff-btn:hover,
.contact-form-shell .ff-btn-submit:hover,
.contact-form-shell .magic-login-submit:hover,
.contact-form-shell input[type="submit"]:hover {
  transform: translateY(-1px);
  filter: saturate(1.05);
}
.contact-form-shell .magic-login-form-header {
  display: none;
}
.contact-form-shell .magic-login-inline-login-form {
  display: grid;
  gap: 0.9rem;
}
.contact-form-shell .magic-login-inline-login-form p {
  margin: 0;
}
.contact-form-shell .magic-login-inline-login-form .submit {
  margin: 0;
}
.contact-form-shell ::placeholder {
  color: color-mix(in srgb, var(--color-foreground) 42%, white 58%);
}
.prayer-bar-form-shell--placeholder label {
  display: grid;
  gap: 0.45rem;
}
.prayer-bar-form-shell--placeholder span {
  font-size: 0.88rem;
  font-weight: 700;
  color: color-mix(in srgb, var(--color-foreground) 78%, white 22%);
}
.prayer-bar-placeholder-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}
.prayer-bar-form-shell--placeholder input,
.prayer-bar-form-shell--placeholder textarea {
  width: 100%;
  border: 1px solid color-mix(in srgb, var(--color-divider) 74%, white 26%);
  border-radius: calc(var(--radius-card) * 0.8);
  background: color-mix(in srgb, var(--color-surface) 90%, white 10%);
  color: var(--color-foreground);
  padding: 0.95rem 1rem;
}
.prayer-bar-form-shell--placeholder textarea {
  resize: vertical;
  min-height: 8.5rem;
}
.prayer-bar-form .section-caption {
  margin-top: 0.2rem;
}
.link-card {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding: calc(var(--spacing-card) * 0.95);
  border: 1px solid var(--theme-accent-border);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.link-card:hover { transform: translateY(-3px); box-shadow: var(--theme-panel-shadow-strong); }
.links-grid--threeup { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ecosystem-shell {
  color: var(--color-foreground); padding: calc(var(--spacing-card) * 1.15); }
.content-card--primary {
  color: var(--color-foreground); }
.content-card--support {
  color: var(--color-foreground);
  display: flex;
  flex-direction: column;
}
.content-card-support-copy {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: center;
  gap: 0.9rem;
}
.content-card-badge { display: inline-flex; align-self: flex-start; margin-bottom: 1rem; padding: 0.42rem 0.74rem; border-radius: var(--radius-chips); background: var(--theme-accent-soft); color: var(--color-brand-dark); font-family: var(--font-ui); font-size: 0.76rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.links-grid--spaced { margin-top: 1.75rem; }
.button--align-end { margin-top: auto; }
.link-card-tag,.pastor-role,.ministry-tag,.church-tag,.spotlight-tag,.content-grid-tag {
  display: inline-flex;
  align-self: flex-start;
  padding: 0.35rem 0.7rem;
  border-radius: var(--radius-chips);
  background: var(--theme-accent-soft);
  color: var(--color-brand-dark);
  font-family: var(--font-ui);
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.ministry-grid,.spotlight-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 1.75rem; }
.spotlight-card,.contact-card,.install-step-card { display: flex; flex-direction: column; gap: 0.9rem; }
.content-grid { margin-top: 1.75rem; }
.content-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.content-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.content-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.content-grid--rows {
  grid-template-columns: 1fr;
  gap: 1rem;
}
.content-grid-featured {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 1.2rem;
  align-items: stretch;
  margin-top: 1.75rem;
  margin-bottom: 1.25rem;
  overflow: hidden;
}
.content-grid-featured--text {
  grid-template-columns: 1fr;
}
.content-grid-featured-media {
  min-height: 100%;
  overflow: hidden;
  border-radius: calc(var(--radius-card) - 10px);
  background: var(--theme-panel-bg-soft);
}
.content-grid-featured-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.content-grid-featured-copy {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  justify-content: center;
  padding: 1rem 1.15rem;
}
.content-grid-featured-copy strong {
  display: block;
  font-size: clamp(1.7rem, 3.4vw, 2.35rem);
  line-height: 1.02;
}
.content-grid-featured-copy p {
  font-size: 1rem;
  line-height: 1.68;
}
.content-grid-featured-cta {
  align-self: flex-start;
  min-height: 0;
  padding: 0.2rem 0;
  background: transparent;
  color: var(--color-brand-dark);
  box-shadow: none;
  border-radius: 0;
  border-bottom: 2px solid color-mix(in srgb, var(--color-brand) 55%, transparent);
}
.content-grid-featured-cta:hover {
  transform: none;
  background: transparent;
}
.content-grid-card { display: flex; flex-direction: column; gap: 1rem; overflow: hidden; }
.content-grid-card--row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.25rem;
  align-items: center;
  padding: 1.1rem 1.2rem;
}
.content-grid-card--row .content-grid-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem 1.25rem;
  align-items: center;
}
.content-grid-card--row .content-grid-tag,
.content-grid-card--row .content-grid-meta,
.content-grid-card--row strong,
.content-grid-card--row p {
  grid-column: 1;
}
.content-grid-card--row .button {
  grid-column: 2;
  grid-row: 1 / span 4;
  align-self: center;
  min-width: 9.5rem;
  white-space: nowrap;
}
.content-grid-card--row strong {
  font-size: 1.18rem;
}
.content-grid-card--row p {
  margin: 0;
}
.content-grid-media { aspect-ratio: 16 / 10; overflow: hidden; border-radius: calc(var(--radius-card) - 10px); background: var(--theme-panel-bg-soft); }
.content-grid-media img { width: 100%; height: 100%; object-fit: cover; }
.content-grid-card .content-grid-media {
  border-radius: max(16px, calc(var(--radius-card) - 8px));
}
.content-grid-card .content-grid-media img {
  border-radius: inherit;
}
.content-grid-media--logo {
  aspect-ratio: 1 / 1;
  display: grid;
  place-items: center;
  padding: clamp(0.9rem, 2vw, 1.35rem);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--theme-panel-bg-soft) 92%, white 8%), color-mix(in srgb, var(--theme-panel-bg-soft) 84%, black 16%));
  border: 1px solid color-mix(in srgb, var(--color-divider) 72%, white 28%);
}
.content-grid-media--logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 10px 18px rgb(0 0 0 / 0.12));
}
.content-grid-copy { display: flex; flex-direction: column; gap: 0.8rem; }
.content-grid-meta { margin: 0; font-size: 0.85rem; color: color-mix(in srgb, var(--color-foreground) 60%, white 40%); }
.content-grid-empty { margin-top: 1.75rem; }
.section-accent-title {
  position: relative;
  display: inline-block;
}
.section-accent-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.2rem;
  width: clamp(4rem, 18%, 7rem);
  height: 0.32rem;
  border-radius: 999px;
  background: var(--gradient-accent);
  box-shadow: 0 8px 20px color-mix(in srgb, var(--color-accent) 28%, transparent);
}
#en-vivo .section-kicker,
#iglesias-asociadas .section-kicker,
#palabra .section-kicker,
#eventos .section-kicker {
  background: color-mix(in srgb, var(--color-accent) 18%, var(--color-surface));
  color: color-mix(in srgb, var(--color-accent) 72%, var(--color-brand-dark) 28%);
  border: 1px solid color-mix(in srgb, var(--color-accent) 24%, transparent);
  box-shadow: 0 10px 24px color-mix(in srgb, var(--color-accent) 14%, transparent);
}
#en-vivo .section-title,
#iglesias-asociadas .section-title,
#palabra .section-title,
#eventos .section-title {
  position: relative;
  display: inline-block;
}
#en-vivo .section-title::after,
#iglesias-asociadas .section-title::after,
#palabra .section-title::after,
#eventos .section-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.22rem;
  width: clamp(4.5rem, 20%, 7.5rem);
  height: 0.34rem;
  border-radius: 999px;
  background: var(--gradient-accent);
  box-shadow: 0 10px 22px color-mix(in srgb, var(--color-accent) 30%, transparent);
}
#en-vivo .player-panel,
#iglesias-asociadas .content-grid-card,
#palabra .content-grid-card,
#eventos .content-grid-card,
#palabra .content-grid-featured {
  position: relative;
  overflow: hidden;
}
#en-vivo .player-panel::before,
#iglesias-asociadas .content-grid-card::before,
#palabra .content-grid-card::before,
#eventos .content-grid-card::before,
#palabra .content-grid-featured::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 0.24rem;
  background: var(--gradient-accent);
  opacity: 0.92;
}
#en-vivo .player-panel {
  box-shadow:
    var(--shadow-card),
    inset 0 1px 0 color-mix(in srgb, white 12%, transparent),
    0 0 0 1px color-mix(in srgb, var(--color-accent) 14%, transparent);
}
#iglesias-asociadas .content-grid-card,
#palabra .content-grid-card,
#eventos .content-grid-card,
#palabra .content-grid-featured {
  box-shadow:
    var(--theme-panel-shadow),
    0 0 0 1px color-mix(in srgb, var(--color-accent) 10%, transparent);
}
#iglesias-asociadas .content-grid-tag,
#palabra .content-grid-tag,
#eventos .content-grid-tag {
  background: color-mix(in srgb, var(--color-accent) 14%, var(--color-surface));
  color: color-mix(in srgb, var(--color-accent) 76%, var(--color-brand-dark) 24%);
  border: 1px solid color-mix(in srgb, var(--color-accent) 18%, transparent);
}
#en-vivo .player-status-badge {
  background: color-mix(in srgb, var(--color-accent) 28%, transparent);
  box-shadow: 0 10px 22px color-mix(in srgb, var(--color-accent) 22%, transparent);
}
#en-vivo .player-brand-tagline {
  color: color-mix(in srgb, var(--color-accent) 28%, var(--color-on-surface-inverse) 72%);
}
.install-grid { grid-template-columns: 0.95fr 1.05fr; align-items: start; }
.install-steps-grid { display: grid; gap: 1rem; }
.install-step-index {
  display: inline-flex;
  width: 2rem;
  height: 2rem;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--gradient-accent);
  color: var(--color-on-primary);
  font-weight: 700;
  margin-bottom: 0.75rem;
}
.contact-card-list { display: grid; gap: 1rem; margin-top: 1.5rem; }
.contact-form-shell { margin-top: 1rem; }
.scripture-accent {
  margin-top: 1.3rem;
  padding: 1rem 1.1rem;
  border-left: 4px solid var(--theme-scripture-border);
  background: color-mix(in srgb, var(--color-on-surface-inverse) 10%, transparent);
  border-radius: var(--radius-card);
  color: color-mix(in srgb, var(--color-foreground) 74%, white 26%);
}
.scripture-accent p { margin: 0; font-style: italic; }
.scripture-accent strong {
  display: block;
  margin-top: 0.6rem;
  font-size: 0.9rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.site-footer {
  padding: 2.4rem 0 3rem;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--color-surface-inverse) 96%, black 4%) 0%, var(--color-surface-inverse) 100%);
  color: var(--color-on-surface-inverse);
}
.site-footer-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto;
  gap: 1.5rem;
  align-items: start;
}
.site-footer-brand {
  display: grid;
  gap: 1rem;
}
.site-footer-logo {
  width: auto;
  height: 4rem;
  max-width: 16rem;
  object-fit: contain;
}
.site-footer-copy {
  margin: 0;
  max-width: 34rem;
  color: color-mix(in srgb, var(--color-on-surface-inverse) 82%, transparent);
}
.site-footer-contact {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.site-footer-contact a,
.site-footer-inline-link {
  color: var(--color-on-surface-inverse);
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, var(--color-on-surface-inverse) 28%, transparent);
  text-underline-offset: 0.2rem;
}
.site-footer-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.site-footer-group {
  display: grid;
  gap: 0.55rem;
}
.site-footer-group strong {
  font-size: 0.9rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.site-footer-group a {
  color: color-mix(in srgb, var(--color-on-surface-inverse) 80%, transparent);
}
.site-footer-group a:hover,
.site-footer-group a:focus-visible,
.site-footer-contact a:hover,
.site-footer-contact a:focus-visible,
.site-footer-inline-link:hover,
.site-footer-inline-link:focus-visible {
  color: var(--color-on-surface-inverse);
}
.site-footer-actions {
  display: grid;
  gap: 0.8rem;
  justify-items: start;
}
.site-footer-bottom {
  background: rgba(8, 11, 27, 0.92);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: 0.8rem 0 calc(0.8rem + env(safe-area-inset-bottom));
}
.site-footer-bottom__inner {
  width: min(calc(100% - 2rem), var(--max-width));
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.site-footer-bottom__links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.9rem 1.25rem;
}
.site-footer-bottom__copy,
.site-footer-bottom__link {
  color: rgba(245, 247, 255, 0.74);
  font-size: 0.84rem;
}
.site-footer-bottom__link:hover,
.site-footer-bottom__link:focus-visible {
  color: #ffffff;
}
@media (max-width: 900px) {
  .links-grid--threeup { grid-template-columns: 1fr; }
  .hero-layout,.hero-grid,.player-grid,.promo-grid,.links-grid,.content-feature-grid,.pastor-grid,.church-grid,.ministry-grid,.spotlight-grid,.install-grid,.contact-grid,.prayer-bar-grid,.content-grid,.hero-meta,.mega-panel-groups,.mega-panel {
    grid-template-columns: 1fr;
  }
  .hero-trust-list { grid-template-columns: 1fr; }
  .site-brand-logo { height: 3.5rem; max-width: 14rem; }
  .site-shell { align-items: center; }
  .site-nav--desktop { display: none; }
  .mobile-menu-toggle { display: inline-flex; align-items: center; justify-content: center; }
  body { padding-bottom: 5.25rem; }
  .mobile-contact-bar { display: block; }
  .mobile-mega-menu {
    position: fixed;
    top: calc(4.9rem + env(safe-area-inset-top, 0px));
    left: 1rem;
    right: 1rem;
    width: auto;
    margin: 0;
    z-index: 29;
    max-height: calc(100dvh - 4.9rem - 5.4rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  .mobile-mega-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .site-footer-inner,
  .site-footer-links { grid-template-columns: 1fr; }
  .site-footer-bottom {
    padding-bottom: calc(6.1rem + env(safe-area-inset-bottom));
  }
  .site-footer-bottom__inner {
    flex-direction: column;
    align-items: flex-start;
  }
  .site-footer-bottom__links {
    justify-content: flex-start;
  }
  .hero-shell,.hero-panel,.hero-sidecard,.player-panel,.promo-panel,.prayer-bar-copy,.prayer-bar-form { padding: 1.5rem; }
  .player-copy-column .section-title {
    max-width: 13ch;
  }
  .player-copy-column .section-body p {
    font-size: 1rem;
    line-height: 1.7;
  }
  .player-brand-logo {
    height: 2.4rem;
    max-width: 10.5rem;
  }
}
@media (max-width: 1024px) and (min-width: 641px) {
  .hero-layout,
  .player-grid {
    grid-template-columns: 1fr;
  }
  .hero-shell--transparent {
    min-height: auto;
  }
  .hero-content,
  .player-copy-column {
    max-width: none;
  }
  .hero-title,
  .player-copy-column .section-title {
    max-width: none;
  }
  .hero-body,
  .player-copy-column .section-body {
    max-width: none;
  }
  .hero-title {
    font-size: clamp(3rem, 6vw, 4.35rem);
    line-height: 0.94;
    letter-spacing: -0.04em;
  }
  .hero-body p,
  .player-copy-column .section-body p {
    max-width: 56ch;
  }
}
@media (max-width: 640px) {
  .hero-section--with-background {
    background-position: center top;
  }
  .hero-shell,
  .hero-panel,
  .hero-sidecard,
  .player-panel,
  .promo-panel,
  .prayer-bar-copy,
  .prayer-bar-form {
    padding: 1.15rem;
    border-radius: 1.25rem;
  }
  .prayer-bar-placeholder-row {
    grid-template-columns: 1fr;
  }
  .mobile-mega-menu {
    top: calc(4.6rem + env(safe-area-inset-top, 0px));
    left: 0.75rem;
    right: 0.75rem;
    max-height: calc(100dvh - 4.6rem - 4.9rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
    padding: 0.9rem;
  }
  .mobile-mega-actions {
    gap: 0.5rem;
  }
  .mobile-mega-actions__link {
    min-height: 2.55rem;
    padding: 0.58rem 0.45rem;
    font-size: 0.78rem;
  }
  .mobile-contact-bar {
    padding: 0.35rem 0.75rem env(safe-area-inset-bottom, 0px);
  }
  .mobile-contact-bar__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem;
  }
  .mobile-contact-bar__action {
    padding: 0.5rem 0.65rem;
  }
  .mobile-contact-bar__label {
    font-size: 0.58rem;
  }
  .mobile-contact-bar__action strong {
    font-size: 0.74rem;
  }
  .content-grid-featured {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .content-grid-card--row {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .content-grid-card--row .content-grid-copy {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }
  .content-grid-card--row .button {
    grid-column: auto;
    grid-row: auto;
    justify-self: start;
  }
  .hero-shell--transparent {
    min-height: auto;
  }
  .promo-support-media img {
    width: min(100%, 14rem);
  }
  .hero-layout {
    gap: 0.95rem;
  }
  .hero-kicker {
    font-size: 0.72rem;
    letter-spacing: 0.22em;
  }
  .hero-title {
    max-width: 9ch;
    font-size: clamp(2.35rem, 12vw, 3.55rem);
    line-height: 0.95;
    letter-spacing: -0.035em;
  }
  .hero-body {
    max-width: none;
  }
  .hero-body p {
    font-size: 0.98rem;
    line-height: 1.55;
  }
  .hero-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    align-items: stretch;
  }
  .hero-actions .button,
  .hero-actions .button-secondary {
    width: 100%;
    justify-content: center;
    text-align: center;
    padding-inline: 1rem;
  }
  .hero-support {
    gap: 0.85rem;
  }
  .hero-shell--transparent .hero-support-card {
    background: color-mix(in srgb, var(--color-surface) 84%, white 16%);
    backdrop-filter: blur(10px);
  }
  .hero-support-badge {
    font-size: 0.7rem;
  }
  .hero-support-title {
    font-size: clamp(1.28rem, 6vw, 1.7rem);
    line-height: 1.02;
  }
  .hero-support-copy {
    font-size: 0.95rem;
    line-height: 1.5;
  }
  .hero-support-list {
    gap: 0.7rem;
  }
  .hero-support-item {
    padding: 0.85rem 0.9rem;
    gap: 0.85rem;
  }
  .hero-support-item-copy strong {
    font-size: 0.94rem;
  }
  .hero-support-item-copy span {
    font-size: 0.84rem;
    line-height: 1.45;
  }
  .hero-support-item-mark {
    width: 2rem;
    height: 2rem;
    flex-basis: 2rem;
    font-size: 0.74rem;
  }
  .content-grid-featured-copy strong {
    font-size: clamp(1.4rem, 7vw, 2rem);
  }
  .content-grid-featured-copy p {
    font-size: 0.96rem;
    line-height: 1.58;
  }
  .content-grid-featured-copy {
    padding: 0.85rem 0.95rem 0.95rem;
  }
  .content-grid-featured-cta {
    padding-bottom: 0.15rem;
  }
  .player-copy-column .section-title {
    max-width: none;
  }
  .player-copy-column .section-body {
    max-width: none;
  }
  .player-copy-column .section-body p {
    font-size: 1rem;
  }
  .player-brand-row {
    gap: 0.75rem;
  }
  .player-brand-logo {
    height: 2.1rem;
    max-width: 8.75rem;
  }
  .player-brand-tagline {
    font-size: 0.9rem;
    line-height: 1.45;
  }
  .player-actions--panel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .player-actions--panel .button,
  .player-actions--panel .button-secondary {
    width: 100%;
    min-width: 0;
  }
}
@media (min-width: 901px) {
  .mobile-mega-menu { display: none !important; }
}

.event-gallery-list {
  display: grid;
  gap: 1.5rem;
}

.event-gallery-event {
  display: grid;
  gap: 1.25rem;
  padding: 1.15rem;
}

.event-gallery-event-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
}

.event-gallery-event-copy {
  display: grid;
  gap: 0.55rem;
  max-width: 46rem;
}

.event-gallery-event-copy h3 {
  margin: 0;
  font-size: clamp(1.2rem, 2.2vw, 1.7rem);
  line-height: 1.1;
}

.event-gallery-event-copy p {
  margin: 0;
}

.event-gallery-event-meta {
  color: var(--color-text-muted);
  font-size: 0.84rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.event-gallery-event-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.event-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

.event-gallery-thumb {
  display: block;
  border-radius: var(--radius-card);
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: var(--color-surface-2);
  border: 1px solid var(--color-border-soft);
}

.event-gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 180ms ease;
}

.event-gallery-thumb:hover img,
.event-gallery-thumb:focus-visible img {
  transform: scale(1.03);
}

.gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 1.5rem;
}

.gallery-lightbox[hidden] {
  display: none;
}

.gallery-lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 10, 16, 0.8);
  backdrop-filter: blur(8px);
}

.gallery-lightbox-dialog {
  position: relative;
  z-index: 1;
  width: min(92vw, 70rem);
}

.gallery-lightbox-figure {
  margin: 0;
  display: grid;
  gap: 0.75rem;
}

.gallery-lightbox-figure img {
  width: 100%;
  max-height: 82vh;
  object-fit: contain;
  border-radius: var(--radius-card);
  background: rgba(255, 255, 255, 0.06);
}

.gallery-lightbox-figure figcaption {
  color: #fff;
  text-align: center;
  font-size: 0.94rem;
}

.gallery-lightbox-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 2;
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(10, 10, 16, 0.5);
  color: #fff;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}

.gallery-lightbox-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  transform: translateY(-50%);
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(10, 10, 16, 0.55);
  color: #fff;
  font-size: 2.2rem;
  line-height: 1;
  cursor: pointer;
}

.gallery-lightbox-nav--prev {
  left: 1rem;
}

.gallery-lightbox-nav--next {
  right: 1rem;
}

.gallery-lightbox-nav[disabled] {
  opacity: 0.35;
  cursor: default;
}

body.has-gallery-lightbox-open {
  overflow: hidden;
}

@media (max-width: 900px) {
  .event-gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .event-gallery-event {
    padding: 0.95rem;
  }

  .event-gallery-grid {
    grid-template-columns: 1fr;
  }

  .event-gallery-event-actions {
    width: 100%;
  }

  .event-gallery-event-actions .button,
  .event-gallery-event-actions .button-secondary {
    width: 100%;
  }

  .gallery-lightbox-nav {
    width: 2.85rem;
    height: 2.85rem;
    font-size: 1.9rem;
  }
}

.single-reading-band__inner {
  max-width: min(880px, 100%);
}

.single-reading-band__article {
  display: grid;
  gap: 1.5rem;
}

.single-reading-band__media img {
  width: 100%;
  display: block;
  border-radius: var(--radius-card);
  object-fit: cover;
}

.single-reading-band__content {
  display: grid;
  gap: 1rem;
  color: var(--text-strong);
}

.single-reading-band__content > * {
  margin: 0;
}

.single-reading-band__content p,
.single-reading-band__content li {
  color: var(--text-muted);
  line-height: 1.8;
}

.single-reading-band__content h2,
.single-reading-band__content h3,
.single-reading-band__content h4 {
  color: var(--text-strong);
  margin-top: 0.5rem;
}
