:root {
  --navy: #162249;
  --navy-2: #1c2c5c;
  --sky: #d6e7f4;
  --yellow: #ffff00;
  --red: #d7261e;
  --white: #ffffff;
  --ink: #10162f;
  --muted: #65708a;
  --shadow: 0 14px 34px rgba(22, 34, 73, .10);
  --radius: 24px;
  --radius-seal: 4px 28px 4px 28px;
  --seal-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='46' fill='none' stroke='%23162249' stroke-width='2'/%3E%3Cpath d='M50,12 L82.9,69 L17.1,69 Z M50,88 L17.1,31 L82.9,31 Z' fill='none' stroke='%23162249' stroke-width='2.5'/%3E%3Cpath d='M50,38 L50,62 M38,50 L62,50' stroke='%23D7261E' stroke-width='4' stroke-linecap='round'/%3E%3Ccircle cx='50' cy='50' r='4' fill='%23FFFF00'/%3E%3C/svg%3E");
  --seal-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='46' fill='none' stroke='%23FFFFFF' stroke-width='2'/%3E%3Cpath d='M50,12 L82.9,69 L17.1,69 Z M50,88 L17.1,31 L82.9,31 Z' fill='none' stroke='%23FFFFFF' stroke-width='2.5'/%3E%3Cpath d='M50,38 L50,62 M38,50 L62,50' stroke='%23FFFF00' stroke-width='4' stroke-linecap='round'/%3E%3Ccircle cx='50' cy='50' r='4' fill='%23FFFF00'/%3E%3C/svg%3E");

  /* Shared design-system tokens */
  --surface: #ffffff;
  --surface-soft: #f7f8fb;
  --surface-tint: #eef6fb;
  --border-subtle: rgba(22, 34, 73, .12);
  --border-strong: rgba(22, 34, 73, .22);

  --radius-xs: 8px;
  --radius-sm: 12px;
  --radius-md: 16px;
  --radius-lg: 20px;
  --radius-xl: 24px;
  --radius-pill: 999px;
  --radius-card: var(--radius-seal);

  --shadow-xs: 0 1px 2px rgba(22, 34, 73, .06);
  --shadow-sm: 0 4px 14px rgba(22, 34, 73, .08);
  --shadow-md: 0 12px 30px rgba(22, 34, 73, .12);
  --shadow-lg: 0 22px 50px rgba(22, 34, 73, .16);

  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;

  --text-xs: .78rem;
  --text-sm: .875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;

  --control-height: 46px;
  --transition-fast: 160ms ease;
  --transition-base: 240ms ease;
  --focus-ring: 0 0 0 4px rgba(255, 255, 0, .28);

  --section-space: clamp(4.25rem, 7vw, 6.5rem);

  --mother-church-logo: url("assets/logos/mother-church.png");
  --pdcm-logo: url("assets/logos/pdcm-generic.png");
  --ss-font-scale: 1;
}

* {
  box-sizing: border-box
}

html {
  scroll-behavior: smooth
}

body {
  margin: 0;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--white);
  line-height: 1.6;
}

img {
  max-width: 100%;
  display: block
}

a {
  text-decoration: none;
  color: inherit
}

:focus-visible {
  outline: 3px solid var(--yellow);
  outline-offset: 2px
}

.container {
  width: min(1180px, 92%);
  margin-inline: auto
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: var(--red);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .78rem;
}

.eyebrow::before {
  content: "";
  width: 34px;
  height: 3px;
  background: var(--yellow);
  border-radius: 99px
}

h1,
h2,
h3 {
  font-family: 'Fraunces', Georgia, serif;
  line-height: 1.06;
  margin: 0 0 1rem;
  color: var(--navy);
  font-weight: 700;
}

h1 {
  font-size: clamp(3rem, 7vw, 6.2rem);
  letter-spacing: -.02em
}

h2 {
  font-size: clamp(2.1rem, 4vw, 3.8rem);
  letter-spacing: -.01em
}

h3 {
  font-size: 1.28rem;
  font-weight: 600
}

h1 em,
h2 em {
  font-style: italic;
  color: var(--yellow);
  font-weight: 600
}

p {
  margin: 0 0 1rem;
  color: var(--muted)
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: .95rem 1.5rem;
  border-radius: 999px;
  font-weight: 800;
  transition: .25s ease;
  border: 2px solid transparent;
  font-size: .95rem;
}

.btn-primary {
  background: var(--yellow);
  color: var(--navy);
  border-color: var(--yellow)
}

.btn-primary:hover {
  background: var(--navy);
  color: var(--yellow);
  border-color: var(--navy);
  transform: translateY(-2px)
}

.btn-secondary {
  background: var(--muted);
  color: var(--white);
  border-color: rgba(255, 255, 255, .5)
}

.btn-secondary:hover {
  background: var(--yellow);
  color: var(--navy);
  border-color: var(--yellow)
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, .3);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255, 214, 0, .4);
}

.nav {
  min-height: 78px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.brand {
  display: flex;
  align-items: center;
  gap: .8rem;
  font-weight: 800;
  color: var(--navy);
  letter-spacing: -.01em
}

.brand-mark {
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  background-image: var(--seal-dark);
  background-size: contain;
  background-repeat: no-repeat;
}

.footer .brand-mark {
  background-image: var(--seal-light)
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  font-weight: 700;
  color: var(--navy)
}

.nav-links a {
  position: relative
}

.nav-links a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -8px;
  height: 3px;
  background: var(--red);
  transition: .25s
}

.nav-links a:hover::after,
.nav-links a.active::after {
  right: 0
}

.menu-btn {
  display: none;
  border: 0;
  background: none;
  font-size: 1.8rem;
  color: var(--navy)
}

.hero {
  position: relative;
  overflow: hidden;
  background: linear-gradient(160deg, #162249 0%, #1f3270 100%);
  color: white;
}

.hero-grid {
  min-height: 720px;
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  align-items: center;
  gap: 4rem;
  padding: 6rem 0;
}

.hero h1 {
  color: white
}

.hero p {
  color: rgba(255, 255, 255, .76);
  font-size: 1.12rem;
  max-width: 640px
}

.hero-actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 2rem
}

.hero-card {
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 30px;
  padding: 1.2rem;
  box-shadow: var(--shadow)
}

.hero-image {
  min-height: 480px;
  border-radius: 20px;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 25% 15%, rgba(255, 255, 0, .14), transparent 45%),
    radial-gradient(circle at 80% 85%, rgba(215, 38, 30, .20), transparent 40%),
    linear-gradient(160deg, #1c2c5c 0%, #0f1838 100%);
}

.hero-image::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 62%;
  aspect-ratio: 1;
  background-image: var(--seal-light);
  background-size: contain;
  background-repeat: no-repeat;
  opacity: .92;
}

.hero-image::after {
  content: "";
  position: absolute;
  inset: -20%;
  background: repeating-conic-gradient(from 0deg, rgba(255, 255, 0, .06) 0deg 2deg, transparent 2deg 18deg);
  mix-blend-mode: screen;
}

.badge {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  background: rgba(255, 255, 255, .12);
  border: 1px solid rgba(255, 255, 255, .18);
  padding: .55rem .85rem;
  border-radius: 999px;
  font-size: .9rem;
  font-weight: 700;
  margin-bottom: 1.2rem
}

.section {
  padding: 6.5rem 0
}

.section-soft {
  background: var(--sky)
}

.section-dark {
  background: var(--navy)
}

.section-dark h2,
.section-dark h3 {
  color: white
}

.section-dark p {
  color: rgba(255, 255, 255, .72)
}

.section-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 2rem;
  margin-bottom: 2.5rem
}

.section-head p {
  max-width: 620px
}

.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem
}

.card {
  background: white;
  border-radius: var(--radius-seal);
  padding: 1.75rem;
  box-shadow: 0 1px 0 rgba(22, 34, 73, .05);
  border: 1px solid rgba(22, 34, 73, .10);
  position: relative;
  transition: .25s ease;
}

.card:hover {
  transform: translateY(-4px);
  border-color: rgba(255, 255, 0, .55);
  box-shadow: var(--shadow)
}

.card::after {
  content: "";
  position: absolute;
  top: 16px;
  right: 16px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--red);
  opacity: .75;
}

.icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: transparent;
  border: 2px solid var(--navy);
  display: grid;
  place-items: center;
  color: var(--navy);
  font-size: 1.3rem;
  margin-bottom: 1.2rem
}

.section-dark .icon {
  border-color: var(--yellow);
  color: var(--yellow)
}

.stat-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-top: -55px;
  position: relative;
  z-index: 4
}

.stat {
  background: white;
  border-radius: 16px;
  padding: 1.5rem;
  text-align: center;
  box-shadow: var(--shadow);
  border-top: 3px solid var(--yellow);
}

.stat strong {
  display: block;
  font-family: 'Fraunces', serif;
  color: var(--navy);
  font-size: 2rem
}

.campus-card {
  overflow: hidden;
  padding: 0
}

.campus-card::after {
  display: none
}

.campus-image {
  height: 220px;
  background-size: cover;
  background-position: center
}

.campus-body {
  padding: 1.6rem
}

.meta {
  display: flex;
  gap: .8rem;
  flex-wrap: wrap;
  color: var(--red);
  font-weight: 800;
  font-size: .86rem
}

.sermon-card {
  padding: 0;
  overflow: hidden
}

.sermon-card::after {
  display: none
}

.sermon-thumb {
  height: 240px;
  background-size: cover;
  background-position: center;
  position: relative;
}

.sermon-thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(22, 34, 73, .05), rgba(15, 24, 56, .6));
}

.play {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  border: 3px solid var(--yellow);
  display: grid;
  place-items: center;
  color: var(--yellow);
  font-size: 1.2rem;
  font-weight: 900;
  z-index: 2;
  background: rgba(22, 34, 73, .25);
}

.sermon-body {
  padding: 1.5rem
}

.quick-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem
}

.quick-link {
  min-height: 180px;
  border-radius: var(--radius-seal);
  padding: 1.4rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: white;
  border: 1px solid rgba(22, 34, 73, .10);
  transition: .25s;
  position: relative;
}

.quick-link::after {
  content: "";
  position: absolute;
  top: 16px;
  right: 16px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--red);
  opacity: .75;
}

.quick-link:hover {
  transform: translateY(-6px);
  border-color: var(--yellow);
  box-shadow: var(--shadow)
}

.page-hero {
  position: relative;
  overflow: hidden;
  padding: 6rem 0;
  background: linear-gradient(160deg, var(--navy), #243c88);
  color: white;
}

.page-hero h1 {
  font-size: clamp(2.7rem, 6vw, 4.8rem);
  color: white
}

.page-hero p {
  color: rgba(255, 255, 255, .75);
  max-width: 720px
}

.content-grid {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 3rem;
  align-items: start
}

.values {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem
}

.quote {
  background: var(--sky);
  border-left: 4px solid var(--yellow);
  border-radius: var(--radius-seal);
  padding: 2.2rem 2.2rem 2.2rem 2.6rem;
  color: var(--navy);
  position: relative;
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-weight: 600;
  font-size: 1.45rem;
}

.quote::before {
  content: "\201C";
  position: absolute;
  top: -4px;
  left: 18px;
  font-size: 4.2rem;
  color: var(--yellow);
  font-family: 'Fraunces', serif;
  opacity: .8;
}

.footer {
  background: #0f1838;
  color: white;
  padding: 4rem 0 1.5rem;
  border-top: 3px solid var(--yellow)
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr repeat(3, 1fr);
  gap: 2rem
}

.footer h3 {
  color: white;
  font-family: 'Fraunces', serif
}

.footer p,
.footer a {
  color: rgba(255, 255, 255, .68)
}

.footer a:hover {
  color: var(--yellow)
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, .12);
  margin-top: 3rem;
  padding-top: 1.5rem;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  color: rgba(255, 255, 255, .55);
  font-size: .9rem
}

@media(max-width:900px) {

  .hero-grid,
  .content-grid {
    grid-template-columns: 1fr
  }

  .hero-grid {
    min-height: auto;
    padding: 5rem 0
  }

  .hero-image {
    min-height: 340px
  }

  .grid-3,
  .quick-grid {
    grid-template-columns: repeat(2, 1fr)
  }

  .stat-strip {
    grid-template-columns: repeat(2, 1fr);
    margin-top: 1rem
  }

  .footer-grid {
    grid-template-columns: repeat(2, 1fr)
  }

  .nav-links {
    position: absolute;
    left: 4%;
    right: 4%;
    top: 84px;
    background: white;
    border-radius: 18px;
    padding: 1.2rem;
    box-shadow: var(--shadow);
    display: none;
    flex-direction: column;
    align-items: flex-start
  }

  .nav-links.open {
    display: flex
  }

  .menu-btn {
    display: block
  }
}

@media(max-width:600px) {

  .grid-3,
  .quick-grid,
  .values,
  .footer-grid {
    grid-template-columns: 1fr
  }

  .section {
    padding: 4.5rem 0
  }

  .hero-image {
    min-height: 300px
  }

  .section-head,
  .footer-bottom {
    align-items: flex-start;
    flex-direction: column
  }

  h1 {
    font-size: 3.1rem
  }
}

@media(prefers-reduced-motion:reduce) {
  * {
    transition: none !important;
    scroll-behavior: auto !important
  }
}

/* Revised homepage, navigation states and button interactions */
.nav-links a.active:not(.nav-give) {
  color: var(--red)
}

.nav-links a.active:not(.nav-give)::after {
  right: 0;
  background: var(--yellow)
}

.nav-give {
  background: var(--yellow);
  color: var(--navy) !important;
  padding: .65rem 1rem;
  border-radius: 999px;
  border: 2px solid var(--yellow)
}

.nav-give::after {
  display: none !important
}

.nav-give:hover,
.nav-give.active {
  background: var(--red);
  border-color: var(--red);
  color: var(--white) !important;
  transform: translateY(-2px)
}

.btn {
  transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease
}

.btn-primary:hover {
  background: var(--red);
  color: var(--white);
  border-color: var(--red);
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(215, 38, 30, .25)
}

.btn-secondary:hover {
  background: var(--sky);
  color: var(--navy);
  border-color: var(--sky);
  transform: translateY(-3px)
}

.page-hero .btn-secondary:hover,
.hero .btn-secondary:hover {
  background: var(--yellow);
  color: var(--navy);
  border-color: var(--yellow)
}

.text-link:hover {
  color: var(--red);
  border-color: var(--red)
}

.quick-link:hover {
  background: var(--navy);
  color: var(--white);
  border-color: var(--yellow)
}

.quick-link:hover h3,
.quick-link:hover p {
  color: var(--white)
}

.quick-link:hover .icon {
  border-color: var(--yellow);
  color: var(--yellow)
}

.give-option:hover {
  color: var(--yellow);
  padding-left: .35rem
}

.hero-centered {
  min-height: calc(100vh - 78px);
  display: grid;
  place-items: center;
  text-align: center;
  background: radial-gradient(circle at 50% 30%, rgba(255, 255, 0, .12), transparent 25%), radial-gradient(circle at 20% 80%, rgba(215, 38, 30, .18), transparent 30%), linear-gradient(160deg, #162249 0%, #1f3270 100%)
}

.hero-centered::after {
  content: "";
  position: absolute;
  width: min(620px, 80vw);
  aspect-ratio: 1;
  background-image: var(--seal-light);
  background-size: contain;
  background-repeat: no-repeat;
  opacity: .055;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%)
}

.hero-centered-inner {
  position: relative;
  z-index: 2;
  max-width: 980px;
  padding: 6rem 0
}

.hero-centered h1 {
  max-width: 900px;
  margin-inline: auto
}

.hero-centered p {
  max-width: 760px;
  margin-inline: auto
}

.hero-centered .hero-actions {
  justify-content: center
}

.hero-scroll-note {
  margin-top: 3.5rem;
  color: rgba(255, 255, 255, .5);
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-weight: 700
}

.text-link {
  font-weight: 800;
  color: var(--navy);
  border-bottom: 2px solid var(--yellow);
  padding-bottom: .2rem
}

.pastor-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 4rem;
  align-items: center
}

.pastor-photo {
  min-height: 560px;
  background: linear-gradient(145deg, var(--sky), #eef6fb);
  border-radius: var(--radius-seal);
  display: grid;
  place-items: center;
  border: 1px solid rgba(22, 34, 73, .1);
  position: relative;
  overflow: hidden
}

.pastor-photo::before {
  content: "";
  position: absolute;
  width: 70%;
  aspect-ratio: 1;
  background-image: var(--seal-dark);
  background-size: contain;
  opacity: .08
}

.pastor-photo-placeholder {
  position: relative;
  z-index: 2;
  color: var(--muted);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .75rem
}

.pastor-name {
  font-family: 'Fraunces', Georgia, serif;
  color: var(--navy);
  font-size: 1.45rem;
  font-weight: 700;
  margin-bottom: .1rem
}

.pastor-role {
  font-size: .9rem
}

.testimonial-section {
  background: #f9fbfd
}

.testimonial-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem
}

.testimonial-card {
  padding: 2rem;
  border: 1px solid rgba(22, 34, 73, .1);
  border-radius: var(--radius-seal);
  background: white
}

.testimonial-card p {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.18rem;
  color: var(--navy);
  line-height: 1.5
}

.testimonial-mark {
  font-family: 'Fraunces', Georgia, serif;
  color: var(--yellow);
  font-size: 4.5rem;
  line-height: .7
}

.testimonial-card strong {
  display: block;
  color: var(--navy)
}

.testimonial-card span {
  font-size: .85rem;
  color: var(--muted)
}

.featured-testimonial {
  background: var(--navy)
}

.featured-testimonial p,
.featured-testimonial strong {
  color: white
}

.featured-testimonial span {
  color: rgba(255, 255, 255, .65)
}

.quick-grid-3 {
  grid-template-columns: repeat(3, 1fr)
}

.give-banner {
  background: var(--navy);
  color: white
}

.give-banner h2 {
  color: white
}

.give-banner p {
  color: rgba(255, 255, 255, .7);
  max-width: 720px
}

.give-banner-inner {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem
}

.publication-feature {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 2rem;
  align-items: stretch
}

.publication-cover {
  min-height: 500px;
  background: var(--yellow);
  border-radius: var(--radius-seal);
  padding: 2rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between
}

.publication-cover h3 {
  font-size: clamp(3rem, 6vw, 5.5rem);
  line-height: .86
}

.publication-copy {
  background: white;
  border-radius: var(--radius-seal);
  padding: 3rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border: 1px solid rgba(22, 34, 73, .1)
}

.give-page-grid {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 3.5rem;
  align-items: start;
}

.give-trust-badges {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}

.give-trust-badge {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 1rem;
  background: var(--sky, #F3F6FA);
  border-radius: 12px;
  border: 1px solid rgba(11, 27, 61, 0.08);
}

.give-trust-icon {
  font-size: 1.4rem;
  line-height: 1;
  flex-shrink: 0;
}

.give-trust-badge strong {
  display: block;
  font-size: 0.9rem;
  color: var(--navy);
  margin-bottom: 0.15rem;
}

.give-trust-badge p {
  font-size: 0.82rem;
  color: #556277;
  margin: 0;
  line-height: 1.4;
}

.give-form-card {
  background: var(--navy);
  color: white;
  border-radius: var(--radius-seal);
  padding: 2.2rem;
  position: relative;
  overflow: hidden;
  box-shadow: 0 20px 45px rgba(11, 27, 61, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.give-card-header {
  margin-bottom: 1.5rem;
}

.give-card-header h3 {
  color: white;
  font-size: 1.55rem;
  margin: 0.4rem 0 0.3rem 0;
  letter-spacing: -0.01em;
}

.give-card-subtitle {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.9rem;
  margin: 0;
}

/* Giving Channel Tabs */
.give-tabs {
  display: flex;
  gap: 0.4rem;
  background: rgba(255, 255, 255, 0.08);
  padding: 0.35rem;
  border-radius: 999px;
  margin-bottom: 1.6rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.give-tab {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.65rem 0.85rem;
  border-radius: 999px;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.75);
  font-weight: 700;
  font-size: 0.85rem;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
  white-space: nowrap;
}

.give-tab:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
}

.give-tab.active {
  background: var(--yellow);
  color: var(--navy);
  font-weight: 800;
  box-shadow: 0 4px 12px rgba(229, 169, 60, 0.32);
}

.give-tab-pane {
  animation: giveFadeIn 0.25s ease-in-out;
}

@keyframes giveFadeIn {
  from {
    opacity: 0;
    transform: translateY(6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.give-pane-lead {
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.92rem;
  line-height: 1.5;
  margin-bottom: 1.25rem;
}

/* Currency Filter Pills */
.give-currency-filter {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 1.2rem;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.give-currency-label {
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.6);
}

.give-currency-pills {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.give-currency-pill {
  padding: 0.32rem 0.8rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}

.give-currency-pill:hover {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
}

.give-currency-pill.active {
  background: #ffffff;
  color: var(--navy);
  border-color: #ffffff;
  font-weight: 800;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

/* Accounts List & Card */
.give-accounts-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.4rem;
}

.give-account-card {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 14px;
  padding: 1.2rem;
  transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.give-account-card:hover {
  border-color: rgba(229, 169, 60, 0.5);
  background: rgba(255, 255, 255, 0.08);
  transform: translateY(-2px);
}

.give-account-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 0.4rem;
}

.give-account-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #fff;
  margin: 0;
}

.give-account-badge {
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  background: rgba(229, 169, 60, 0.2);
  color: var(--yellow);
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  letter-spacing: 0.05em;
  flex-shrink: 0;
}

.give-bank-name {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.65);
  margin-bottom: 0.75rem;
}

.give-number-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(0, 0, 0, 0.25);
  border-radius: 8px;
  padding: 0.65rem 0.85rem;
  margin-bottom: 0.65rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.give-account-number {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--yellow);
}

.give-copy-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  border: none;
  padding: 0.42rem 0.8rem;
  border-radius: 6px;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}

.give-copy-btn:hover {
  background: var(--yellow);
  color: var(--navy);
}

.give-copy-btn.copied {
  background: #10B981 !important;
  color: #fff !important;
}

.give-account-meta-row {
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.78);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.4rem;
}

.give-account-guide {
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.55);
  font-style: italic;
  margin: 0;
}

/* Narration Callout Box */
.give-narration-box {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
  background: rgba(255, 255, 255, 0.05);
  border-left: 3px solid var(--yellow);
  padding: 0.85rem 1rem;
  border-radius: 0 8px 8px 0;
  margin-bottom: 1.4rem;
  font-size: 0.84rem;
  color: rgba(255, 255, 255, 0.8);
}

.give-narration-icon {
  font-size: 1.2rem;
  line-height: 1;
  flex-shrink: 0;
}

.give-narration-box p {
  margin: 0.2rem 0 0 0;
  line-height: 1.45;
}

.give-narration-box code {
  background: rgba(0, 0, 0, 0.3);
  padding: 0.15rem 0.4rem;
  border-radius: 4px;
  color: var(--yellow);
  font-family: ui-monospace, monospace;
  font-size: 0.84rem;
}

/* WhatsApp / Support Notification Actions */
.give-transfer-actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: stretch;
}

.give-notify-btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 0.85rem 1.25rem;
  font-weight: 700;
  font-size: 0.92rem;
  text-decoration: none;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.2);
  transition: all 0.2s ease;
}

.give-notify-btn:hover {
  background: #25D366;
  border-color: #25D366;
  color: #ffffff;
  transform: translateY(-1px);
}

.give-notify-hint {
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.5);
  text-align: center;
}

/* Tab 2: Online Form */
.give-online-form {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.give-form-group {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.give-form-group label {
  font-size: 0.82rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.88);
}

.give-input {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  color: #ffffff;
  padding: 0.75rem 1rem;
  font-size: 0.95rem;
  font-family: inherit;
  transition: all 0.2s ease;
  width: 100%;
  box-sizing: border-box;
}

.give-input:focus {
  outline: none;
  border-color: var(--yellow);
  background: rgba(255, 255, 255, 0.12);
  box-shadow: 0 0 0 3px rgba(229, 169, 60, 0.22);
}

.give-input option {
  background: #0B1B3D;
  color: #ffffff;
}

.give-amount-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.give-currency-select {
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 6px;
  padding: 0.3rem 0.65rem;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
}

.give-currency-select option {
  background: #0B1B3D;
  color: #ffffff;
}

.give-presets-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(75px, 1fr));
  gap: 0.5rem;
  margin-top: 0.35rem;
  margin-bottom: 0.55rem;
}

.give-preset-chip {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  color: #ffffff;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 0.55rem 0.3rem;
  text-align: center;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}

.give-preset-chip:hover {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.4);
}

.give-preset-chip.active {
  background: var(--yellow);
  color: var(--navy);
  border-color: var(--yellow);
  font-weight: 800;
}

.give-amount-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.give-currency-symbol {
  position: absolute;
  left: 1rem;
  color: var(--yellow);
  font-weight: 800;
  font-size: 1.15rem;
  pointer-events: none;
}

.give-amount-input {
  padding-left: 2.2rem;
  font-size: 1.25rem;
  font-weight: 700;
}

.give-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem;
}

.give-submit-btn {
  width: 100%;
  padding: 0.95rem;
  font-size: 1rem;
  font-weight: 800;
  margin-top: 0.4rem;
  border-radius: 999px;
  cursor: pointer;
}

.give-form-disclaimer {
  font-size: 0.74rem;
  color: rgba(255, 255, 255, 0.5);
  text-align: center;
  margin: 0;
}

/* Tab 3: Special Projects */
.give-projects-grid {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}

.give-project-card {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 14px;
  padding: 1.15rem;
  transition: all 0.2s ease;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.give-project-card:hover {
  border-color: rgba(229, 169, 60, 0.5);
  background: rgba(255, 255, 255, 0.09);
  transform: translateY(-2px);
}

.give-project-badge {
  align-self: flex-start;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  background: rgba(229, 169, 60, 0.2);
  color: var(--yellow);
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  letter-spacing: 0.05em;
}

.give-project-card h4 {
  color: #ffffff;
  font-size: 1.05rem;
  margin: 0;
}

.give-project-card p {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.84rem;
  line-height: 1.45;
  margin: 0;
}

.give-project-action-btn {
  align-self: flex-start;
  margin-top: 0.4rem;
  padding: 0.45rem 0.95rem;
  font-size: 0.78rem;
  font-weight: 700;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.2);
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}

.give-project-action-btn:hover {
  background: var(--yellow);
  color: var(--navy);
  border-color: var(--yellow);
}

/* Toast */
.give-toast {
  position: absolute;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%) translateY(100px);
  background: #10B981;
  color: #ffffff;
  font-size: 0.85rem;
  font-weight: 700;
  padding: 0.6rem 1.25rem;
  border-radius: 999px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.35);
  pointer-events: none;
  opacity: 0;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 30;
  white-space: nowrap;
}

.give-toast.show {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
}

/* Modal */
.give-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(11, 27, 61, 0.75);
  backdrop-filter: blur(5px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 1.5rem;
}

.give-modal-card {
  background: #ffffff;
  color: var(--navy);
  max-width: 460px;
  width: 100%;
  border-radius: 20px;
  padding: 2.2rem;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.35);
  text-align: center;
  animation: giveModalPop 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes giveModalPop {
  from {
    opacity: 0;
    transform: scale(0.92);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.give-modal-icon {
  font-size: 2.6rem;
  margin-bottom: 0.75rem;
  line-height: 1;
}

.give-modal-card h3 {
  color: var(--navy);
  font-size: 1.4rem;
  margin: 0 0 0.75rem 0;
}

.give-modal-body {
  color: #556277;
  font-size: 0.92rem;
  line-height: 1.5;
  margin-bottom: 1.25rem;
}

.give-modal-highlight {
  background: #F3F6FA;
  border-left: 4px solid var(--yellow);
  padding: 0.85rem 1rem;
  border-radius: 0 10px 10px 0;
  text-align: left;
  margin-bottom: 1.5rem;
}

.give-modal-highlight p {
  font-size: 0.85rem;
  color: var(--navy);
  margin: 0;
  line-height: 1.45;
}

.give-modal-actions {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

@media(max-width: 900px) {
  .give-form-row {
    grid-template-columns: 1fr;
  }

  .give-tabs {
    flex-wrap: wrap;
    border-radius: 14px;
  }

  .give-tab {
    flex: 1 1 45%;
    border-radius: 8px;
  }
}

@media(max-width:900px) {

  .pastor-grid,
  .give-page-grid,
  .publication-feature {
    grid-template-columns: 1fr
  }

  .testimonial-grid {
    grid-template-columns: 1fr
  }

  .give-banner-inner {
    align-items: flex-start;
    flex-direction: column
  }
}

@media(max-width:600px) {
  .hero-centered {
    min-height: calc(100vh - 72px)
  }

  .hero-centered-inner {
    padding: 4rem 0
  }

  .quick-grid-3 {
    grid-template-columns: 1fr
  }

  .pastor-photo {
    min-height: 420px
  }

  .nav-give {
    width: 100%;
    text-align: center
  }
}


/* Content-loader utility states */
[data-content-loading="true"] {
  visibility: hidden;
}

.content-error {
  padding: 1rem;
  border: 1px solid var(--red);
  background: #fff5f5;
  color: var(--red);
  border-radius: 12px;
}


/* Official brand assets */
.brand-logo {
  width: 48px;
  height: 48px;
  object-fit: contain;
  flex: 0 0 auto;
}

.footer-logo {
  filter: none;
}

/* Hero slideshow */
.hero-slideshow {
  position: relative;
  min-height: calc(100vh - 78px);
  display: grid;
  place-items: center;
  overflow: hidden;
  text-align: center;
  color: var(--white);
  background: var(--navy);
}

.hero-slides,
.hero-slide,
.hero-overlay,
.hero-radiance {
  position: absolute;
  inset: 0;
}

.hero-slides {
  z-index: 0
}

.hero-slide {
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1.4s ease;
  transform: scale(1.03);
}

.hero-slide.active {
  opacity: 1
}

.hero-overlay {
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(8, 15, 38, .62), rgba(22, 34, 73, .86)),
    linear-gradient(90deg, rgba(22, 34, 73, .22), rgba(22, 34, 73, .22));
}

.hero-radiance {
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 47%, rgba(255, 255, 0, .20), transparent 18%),
    repeating-conic-gradient(from 0deg at 50% 47%,
      rgba(255, 255, 255, .035) 0deg 2deg,
      transparent 2deg 18deg);
  mix-blend-mode: screen;
}

.hero-slideshow .hero-centered-inner {
  position: relative;
  z-index: 3;
  max-width: 980px;
  padding: 6rem 0;
}

.hero-slideshow h1 {
  color: var(--white);
  max-width: 900px;
  margin-inline: auto
}

.hero-slideshow p {
  color: rgba(255, 255, 255, .82);
  max-width: 760px;
  margin-inline: auto
}

.hero-slideshow .hero-actions {
  justify-content: center
}

.hero-slideshow .badge {
  backdrop-filter: blur(10px)
}

/* Chapel logo cards */
.campus-card .campus-logo-wrap {
  min-height: 250px;
  display: grid;
  place-items: center;
  padding: 1.6rem;
  background:
    radial-gradient(circle at 50% 35%, rgba(255, 255, 0, .18), transparent 28%),
    linear-gradient(145deg, var(--sky), #f7fbff);
  overflow: hidden;
  position: relative;
}

.campus-card .campus-logo-wrap::before {
  content: "";
  position: absolute;
  width: 80%;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1px solid rgba(22, 34, 73, .08);
}

.campus-logo {
  position: relative;
  z-index: 2;
  width: 100%;
  max-height: 205px;
  object-fit: contain;
}

.upcoming-card .campus-logo-wrap {
  min-height: 220px
}

/* Pastor image */
.pastor-photo {
  background-size: cover !important;
  background-position: center !important;
}

.pastor-photo::before {
  background:
    radial-gradient(circle at 50% 45%, rgba(255, 255, 0, .15), transparent 25%),
    repeating-conic-gradient(from 0deg, rgba(255, 255, 0, .05) 0deg 2deg, transparent 2deg 18deg);
  opacity: .55;
}

/* Responsive slideshow */
@media(max-width:700px) {
  .hero-slide {
    background-position: center;
  }

  .hero-slideshow .hero-centered-inner {
    padding: 4rem 0;
  }
}

@media(prefers-reduced-motion:reduce) {
  .hero-slide {
    transition: none;
    transform: none
  }
}


/* Branding consistency across all pages */
.brand-mark {
  display: none !important;
}

.brand-logo {
  width: 52px;
  height: 52px;
  object-fit: contain;
  display: block;
}

.footer .brand-logo {
  width: 58px;
  height: 58px;
}

.branded-page-hero {
  position: relative;
}

.page-hero-brand-mark {
  position: absolute;
  right: 4%;
  top: 50%;
  width: min(360px, 34vw);
  aspect-ratio: 1;
  transform: translateY(-50%);
  background-image: var(--mother-church-logo);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: .09;
  pointer-events: none;
  z-index: 0;
}

.branded-page-hero .container {
  position: relative;
  z-index: 1;
}

/* Use PDCM branding more strongly on the chapel page */
body[data-page="chapels"] .page-hero-brand-mark {
  background-image: var(--pdcm-logo);
  width: min(420px, 38vw);
  opacity: .14;
}

body[data-page="chapels"] .page-hero {
  background:
    radial-gradient(circle at 78% 45%, rgba(255, 255, 0, .15), transparent 24%),
    linear-gradient(160deg, var(--navy), #243c88);
}

body[data-page="publications"] .page-hero-brand-mark,
body[data-page="give"] .page-hero-brand-mark {
  opacity: .07;
}

/* Video play button interaction */
.play {
  transition:
    background-color .25s ease,
    color .25s ease,
    border-color .25s ease,
    transform .25s ease,
    box-shadow .25s ease;
}

.sermon-card:hover .play,
.play:hover {
  background: var(--yellow);
  color: var(--navy);
  border-color: var(--yellow);
  transform: scale(1.12);
  box-shadow:
    0 0 0 10px rgba(255, 255, 0, .12),
    0 12px 30px rgba(255, 255, 0, .28);
}

.sermon-card:hover .sermon-thumb::after {
  background:
    linear-gradient(180deg, rgba(22, 34, 73, .08), rgba(15, 24, 56, .42));
}

.sermon-card {
  cursor: pointer;
}

/* Radiating light accent behind branded cards */
.campus-logo-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    repeating-conic-gradient(from 0deg at 50% 45%,
      rgba(255, 255, 0, .05) 0deg 2deg,
      transparent 2deg 18deg);
  pointer-events: none;
}

@media(max-width:700px) {
  .page-hero-brand-mark {
    width: 260px;
    right: -70px;
    opacity: .06;
  }

  body[data-page="chapels"] .page-hero-brand-mark {
    width: 300px;
    right: -90px;
  }
}


/* Expanded publications system */
.publications-page-hero {
  background:
    radial-gradient(circle at 84% 20%, rgba(255, 255, 0, .18), transparent 26%),
    linear-gradient(160deg, var(--navy), #243c88);
}

.publications-showcase {
  background: #f7f8fb;
}

.publication-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.8rem;
}

.publication-issue-card {
  border-radius: 30px;
  overflow: hidden;
  background: var(--white);
  box-shadow: 0 18px 46px rgba(22, 34, 73, .12);
  transition: transform .25s ease, box-shadow .25s ease;
}

.publication-issue-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 26px 60px rgba(22, 34, 73, .18);
}

.publication-issue-cover {
  min-height: 425px;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.publication-issue-cover strong {
  font-family: Inter, system-ui, sans-serif;
  font-size: clamp(3rem, 5vw, 5rem);
  line-height: .95;
  letter-spacing: -.05em;
}

.publication-type,
.publication-issue-cover small {
  font-size: .82rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .09em;
}

.publication-theme-yellow .publication-issue-cover {
  background: var(--yellow);
  color: var(--navy);
}

.publication-theme-navy .publication-issue-cover {
  background: var(--navy);
  color: var(--white);
}

.publication-theme-red .publication-issue-cover {
  background: var(--red);
  color: var(--white);
}

.publication-issue-body {
  padding: 2rem;
  align-items: flex-start;
  height: 350px;
}

.publication-issue-body h3 {
  font-size: 1.7rem;
  margin-bottom: .7rem;
}

.publication-read-link {
  display: inline-flex;
  margin-top: .7rem;
}

.publication-resources-section {
  background: var(--sky);
}

.publication-resource-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}

.publication-resource-card {
  min-height: 390px;
  padding: 2.2rem;
  border-radius: 30px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow);
}

.publication-resource-card::after {
  content: "";
  position: absolute;
  right: -70px;
  bottom: -90px;
  width: 260px;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 30px solid rgba(255, 255, 255, .12);
}

.publication-resource-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 1.65rem;
  font-weight: 900;
  margin-bottom: 2rem;
}

.resource-theme-sky {
  background: var(--white);
  color: var(--navy);
}

.resource-theme-sky .publication-resource-icon {
  background: var(--yellow);
  color: var(--navy);
}

.resource-theme-navy {
  background: var(--navy);
  color: var(--white);
}

.resource-theme-navy h3,
.resource-theme-navy p {
  color: var(--white);
}

.resource-theme-navy p {
  color: rgba(255, 255, 255, .72);
}

.resource-theme-navy .publication-resource-icon {
  background: var(--red);
  color: var(--white);
}

.btn-dark {
  background: var(--navy);
  color: var(--white);
  border-color: var(--navy);
  align-self: flex-start;
}

.btn-dark:hover {
  background: var(--red);
  border-color: var(--red);
  color: var(--white);
  transform: translateY(-3px);
}

@media(max-width:900px) {
  .publication-card-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .publication-resource-grid {
    grid-template-columns: 1fr;
  }
}

@media(max-width:600px) {
  .publication-card-grid {
    grid-template-columns: 1fr;
  }

  .publication-issue-cover {
    min-height: 340px;
  }
}


/* Reordered publications page */
.daily-devotion-section {
  background: var(--navy);
}

.daily-devotion-card {
  min-height: 430px;
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  align-items: center;
  gap: 2rem;
  padding: 3.2rem;
  border-radius: 34px;
  background:
    radial-gradient(circle at 82% 50%, rgba(255, 255, 0, .22), transparent 28%),
    linear-gradient(135deg, #1c2c5c, var(--navy));
  color: var(--white);
  overflow: hidden;
  position: relative;
}

.daily-devotion-card h2,
.daily-devotion-card p {
  color: var(--white);
}

.daily-devotion-card p {
  color: rgba(255, 255, 255, .76);
  max-width: 660px;
}

.daily-devotion-symbol {
  font-size: clamp(8rem, 18vw, 15rem);
  color: var(--yellow);
  text-align: center;
  line-height: 1;
  filter: drop-shadow(0 0 34px rgba(255, 255, 0, .25));
}

.latest-goodnews-section {
  background: var(--sky);
}

.latest-goodnews-feature {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 2rem;
  align-items: stretch;
}

.latest-goodnews-cover {
  min-height: 540px;
  padding: 2.2rem;
  border-radius: 30px 0 0 30px;
  background: var(--yellow);
  color: var(--navy);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.latest-goodnews-cover small,
.latest-goodnews-cover span {
  font-weight: 700;
}

.latest-goodnews-cover h3 {
  font-size: clamp(3.6rem, 7vw, 6.5rem);
  line-height: .84;
  color: var(--navy);
}

.latest-goodnews-copy {
  border-radius: 0 30px 30px 0;
  background: var(--white);
  padding: 3.2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border: 1px solid rgba(22, 34, 73, .08);
}

.latest-goodnews-copy h3 {
  font-size: clamp(2rem, 3vw, 3rem);
}

.latest-goodnews-copy .btn {
  width: 100%;
  margin-top: .5rem;
}

.sunday-school-section {
  background: #f7f8fb;
}

.sunday-school-card {
  min-height: 360px;
  border-radius: 32px;
  padding: 3rem;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2.2rem;
  align-items: center;
  background: var(--navy);
  color: var(--white);
}

.sunday-school-card h2,
.sunday-school-card p {
  color: var(--white);
}

.sunday-school-card p {
  color: rgba(255, 255, 255, .74);
  max-width: 760px;
}

.sunday-school-symbol {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--red);
  color: var(--white);
  font-size: 4rem;
  box-shadow: 0 0 0 18px rgba(255, 255, 255, .05);
}

@media(max-width:900px) {

  .daily-devotion-card,
  .latest-goodnews-feature,
  .sunday-school-card {
    grid-template-columns: 1fr;
  }

  .daily-devotion-symbol {
    font-size: 8rem;
  }

  .latest-goodnews-cover {
    border-radius: 30px 30px 0 0;
  }

  .latest-goodnews-copy {
    border-radius: 0 0 30px 30px;
  }
}

@media(max-width:600px) {

  .daily-devotion-card,
  .sunday-school-card {
    padding: 2rem;
  }

  .latest-goodnews-cover {
    min-height: 420px;
  }

  .latest-goodnews-copy {
    padding: 2rem;
  }

  .sunday-school-symbol {
    width: 110px;
    height: 110px;
    font-size: 3rem;
  }
}


/* Internal page hero cleanup */
.page-hero::after {
  content: none !important;
  display: none !important;
  background: none !important;
}

/* Replace logo watermark with a simplified cross-and-radiance motif */
.page-hero-brand-mark {
  position: absolute;
  right: 5%;
  top: 50%;
  width: min(340px, 32vw);
  aspect-ratio: 1;
  transform: translateY(-50%);
  opacity: .16;
  pointer-events: none;
  z-index: 0;
  background: none !important;
}

.page-hero-brand-mark::before {
  content: "";
  position: absolute;
  inset: 19%;
  background:
    linear-gradient(var(--white), var(--white)) center/15% 74% no-repeat,
    linear-gradient(var(--white), var(--white)) center/64% 15% no-repeat;
  filter: drop-shadow(0 0 14px rgba(255, 255, 255, .12));
}

.page-hero-brand-mark::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    repeating-conic-gradient(from 0deg at 50% 50%,
      rgba(255, 255, 0, .55) 0deg 2deg,
      transparent 2deg 18deg);
  -webkit-mask:
    radial-gradient(circle at center, transparent 0 33%, #000 34% 58%, transparent 59%);
  mask:
    radial-gradient(circle at center, transparent 0 33%, #000 34% 58%, transparent 59%);
}

body[data-page="chapels"] .page-hero-brand-mark {
  opacity: .2;
  width: min(380px, 35vw);
}

body[data-page="chapels"] .page-hero-brand-mark::before {
  background:
    linear-gradient(var(--white), var(--white)) center/15% 74% no-repeat,
    linear-gradient(var(--white), var(--white)) center/64% 15% no-repeat;
}

@media(max-width:700px) {
  .page-hero-brand-mark {
    width: 240px;
    right: -50px;
    opacity: .1;
  }

  body[data-page="chapels"] .page-hero-brand-mark {
    width: 270px;
    right: -70px;
  }
}


/* Exact cross artwork for internal page heroes */
.page-hero-brand-mark {
  position: absolute;
  right: 4%;
  top: 50%;
  width: min(330px, 31vw);
  aspect-ratio: 1;
  transform: translateY(-50%);
  background-image: url("assets/logos/cross-radiance.png") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  opacity: .16;
  pointer-events: none;
  z-index: 0;
}

.page-hero-brand-mark::before,
.page-hero-brand-mark::after {
  content: none !important;
  display: none !important;
}

body[data-page="chapels"] .page-hero-brand-mark {
  background-image: url("assets/logos/cross-radiance.png") !important;
  width: min(360px, 34vw);
  opacity: .18;
}

/* Rich alternating hover states for white cards */
.section:not(.section-dark) .grid-3>.card,
.values>.card,
.testimonial-card:not(.featured-testimonial),
.publication-issue-card,
.publication-resource-card.resource-theme-sky {
  transition:
    transform .25s ease,
    background-color .25s ease,
    color .25s ease,
    border-color .25s ease,
    box-shadow .25s ease;
}

/* Navy hover */
.section:not(.section-dark) .grid-3>.card:nth-child(3n+1):hover,
.values>.card:nth-child(3n+1):hover,
.testimonial-card:not(.featured-testimonial):nth-child(3n+1):hover {
  background: var(--navy);
  border-color: var(--yellow);
  color: var(--white);
  transform: translateY(-7px);
  box-shadow: 0 20px 44px rgba(22, 34, 73, .22);
}

.section:not(.section-dark) .grid-3>.card:nth-child(3n+1):hover h3,
.section:not(.section-dark) .grid-3>.card:nth-child(3n+1):hover p,
.values>.card:nth-child(3n+1):hover h3,
.values>.card:nth-child(3n+1):hover p,
.testimonial-card:not(.featured-testimonial):nth-child(3n+1):hover p,
.testimonial-card:not(.featured-testimonial):nth-child(3n+1):hover strong,
.testimonial-card:not(.featured-testimonial):nth-child(3n+1):hover span {
  color: var(--white);
}

/* Red hover */
.section:not(.section-dark) .grid-3>.card:nth-child(3n+2):hover,
.values>.card:nth-child(3n+2):hover,
.testimonial-card:not(.featured-testimonial):nth-child(3n+2):hover {
  background: var(--red);
  border-color: var(--yellow);
  color: var(--white);
  transform: translateY(-7px);
  box-shadow: 0 20px 44px rgba(215, 38, 30, .22);
}

.section:not(.section-dark) .grid-3>.card:nth-child(3n+2):hover h3,
.section:not(.section-dark) .grid-3>.card:nth-child(3n+2):hover p,
.values>.card:nth-child(3n+2):hover h3,
.values>.card:nth-child(3n+2):hover p,
.testimonial-card:not(.featured-testimonial):nth-child(3n+2):hover p,
.testimonial-card:not(.featured-testimonial):nth-child(3n+2):hover strong,
.testimonial-card:not(.featured-testimonial):nth-child(3n+2):hover span {
  color: var(--white);
}

/* Yellow hover */
.section:not(.section-dark) .grid-3>.card:nth-child(3n):hover,
.values>.card:nth-child(3n):hover,
.testimonial-card:not(.featured-testimonial):nth-child(3n):hover {
  background: var(--yellow);
  border-color: var(--red);
  color: var(--navy);
  transform: translateY(-7px);
  box-shadow: 0 20px 44px rgba(255, 255, 0, .22);
}

.section:not(.section-dark) .grid-3>.card:nth-child(3n):hover h3,
.section:not(.section-dark) .grid-3>.card:nth-child(3n):hover p,
.values>.card:nth-child(3n):hover h3,
.values>.card:nth-child(3n):hover p,
.testimonial-card:not(.featured-testimonial):nth-child(3n):hover p,
.testimonial-card:not(.featured-testimonial):nth-child(3n):hover strong,
.testimonial-card:not(.featured-testimonial):nth-child(3n):hover span {
  color: var(--navy);
}

/* Icon inversion */
.section:not(.section-dark) .grid-3>.card:hover .icon,
.values>.card:hover .icon {
  border-color: var(--yellow);
  color: var(--yellow);
}

.section:not(.section-dark) .grid-3>.card:nth-child(3n):hover .icon,
.values>.card:nth-child(3n):hover .icon {
  border-color: var(--navy);
  color: var(--navy);
}

/* Small corner accent on hover */
.section:not(.section-dark) .grid-3>.card:hover::after,
.values>.card:hover::after {
  background: var(--yellow);
  opacity: 1;
}

.section:not(.section-dark) .grid-3>.card:nth-child(3n):hover::after,
.values>.card:nth-child(3n):hover::after {
  background: var(--red);
}

/* Preserve chapel logos while changing card body tone */
.campus-card:hover .campus-logo-wrap {
  background:
    radial-gradient(circle at 50% 35%, rgba(255, 255, 0, .28), transparent 30%),
    linear-gradient(145deg, #eef6fb, var(--sky));
}

.campus-card:hover .campus-body h3,
.campus-card:hover .campus-body p {
  color: inherit;
}

/* Publication white-card hover refinements */
.publication-issue-card:hover .publication-issue-body {
  background: var(--navy);
}

.publication-issue-card:nth-child(3n+2):hover .publication-issue-body {
  background: var(--red);
}

.publication-issue-card:nth-child(3n):hover .publication-issue-body {
  background: var(--yellow);
}

.publication-issue-card:hover .publication-issue-body h3,
.publication-issue-card:hover .publication-issue-body p,
.publication-issue-card:hover .publication-issue-body .meta,
.publication-issue-card:hover .publication-issue-body .text-link {
  color: var(--white);
}

.publication-issue-card:nth-child(3n):hover .publication-issue-body h3,
.publication-issue-card:nth-child(3n):hover .publication-issue-body p,
.publication-issue-card:nth-child(3n):hover .publication-issue-body .meta,
.publication-issue-card:nth-child(3n):hover .publication-issue-body .text-link {
  color: var(--navy);
}

.publication-issue-body {
  transition: background-color .25s ease, color .25s ease;
}

@media(max-width:700px) {
  .page-hero-brand-mark {
    width: 235px;
    right: -42px;
    opacity: .1;
  }
}


/* Brand name stacked on two lines */
.brand-name-stacked {
  display: inline-block;
  line-height: .92;
  text-align: left;
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 700;
  letter-spacing: -.02em;
}

.site-header .brand-name-stacked {
  font-size: 1.08rem
}

.footer .brand-name-stacked {
  font-size: 1.2rem;
  color: var(--white)
}

/* Red-card hover contrast fix */
.section:not(.section-dark) .grid-3>.card:nth-child(3n+2):hover .meta,
.section:not(.section-dark) .grid-3>.card:nth-child(3n+2):hover .eyebrow,
.section:not(.section-dark) .grid-3>.card:nth-child(3n+2):hover .text-link,
.values>.card:nth-child(3n+2):hover .meta,
.values>.card:nth-child(3n+2):hover .eyebrow,
.values>.card:nth-child(3n+2):hover .text-link,
.testimonial-card:not(.featured-testimonial):nth-child(3n+2):hover .meta,
.testimonial-card:not(.featured-testimonial):nth-child(3n+2):hover .eyebrow,
.testimonial-card:not(.featured-testimonial):nth-child(3n+2):hover .testimonial-mark,
.publication-issue-card:nth-child(3n+2):hover .meta,
.publication-issue-card:nth-child(3n+2):hover .text-link {
  color: var(--yellow) !important;
}

.section:not(.section-dark) .grid-3>.card:nth-child(3n+2):hover,
.section:not(.section-dark) .grid-3>.card:nth-child(3n+2):hover h1,
.section:not(.section-dark) .grid-3>.card:nth-child(3n+2):hover h2,
.section:not(.section-dark) .grid-3>.card:nth-child(3n+2):hover h3,
.section:not(.section-dark) .grid-3>.card:nth-child(3n+2):hover h4,
.section:not(.section-dark) .grid-3>.card:nth-child(3n+2):hover p,
.section:not(.section-dark) .grid-3>.card:nth-child(3n+2):hover strong,
.section:not(.section-dark) .grid-3>.card:nth-child(3n+2):hover span:not(.meta):not(.eyebrow),
.values>.card:nth-child(3n+2):hover,
.values>.card:nth-child(3n+2):hover h3,
.values>.card:nth-child(3n+2):hover p,
.testimonial-card:not(.featured-testimonial):nth-child(3n+2):hover p,
.testimonial-card:not(.featured-testimonial):nth-child(3n+2):hover strong,
.testimonial-card:not(.featured-testimonial):nth-child(3n+2):hover span {
  color: var(--white) !important;
}

.section:not(.section-dark) .grid-3>.card:nth-child(3n+2):hover .icon,
.values>.card:nth-child(3n+2):hover .icon {
  color: var(--yellow) !important;
  border-color: var(--yellow) !important;
}

.section:not(.section-dark) .grid-3>.card:nth-child(3n+2):hover .text-link,
.values>.card:nth-child(3n+2):hover .text-link,
.publication-issue-card:nth-child(3n+2):hover .text-link {
  border-color: var(--yellow) !important;
}


/* Christian Heritage Bible School */
.bible-college-hero {
  background:
    radial-gradient(circle at 78% 38%, rgba(255, 255, 0, .18), transparent 25%),
    linear-gradient(145deg, #101a3c, var(--navy));
}

.bible-college-hero-inner {
  max-width: 900px;
}

.bible-college-hero .hero-actions {
  margin-top: 2rem;
}

.bible-intro-section {
  background: var(--white);
}

.bible-intro-grid {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 4rem;
  align-items: end;
}

.bible-intro-grid p {
  font-size: 1.12rem;
}

.bible-pathway-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.3rem;
}

.bible-pathway-card {
  min-height: 340px;
  border-radius: 30px;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform .25s ease, box-shadow .25s ease;
}

.bible-pathway-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 22px 50px rgba(22, 34, 73, .2);
}

.bible-pathway-icon {
  width: 62px;
  height: 62px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 1.5rem;
  font-weight: 900;
  border: 2px solid currentColor;
}

.bible-pathway-card h3 {
  font-size: 2rem;
  color: inherit;
}

.bible-pathway-card p {
  color: inherit;
  opacity: .78;
}

.bible-pathway-card>a {
  font-weight: 900;
  border-bottom: 2px solid currentColor;
  align-self: flex-start;
}

.pathway-theme-navy {
  background: var(--navy);
  color: var(--white);
}

.pathway-theme-red {
  background: var(--red);
  color: var(--white);
}

.pathway-theme-yellow {
  background: var(--yellow);
  color: var(--navy);
}

.bible-course-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.3rem;
}

.bible-course-card {
  min-height: 285px;
  display: flex;
  flex-direction: column;
}

.bible-course-card .text-link {
  margin-top: auto;
  align-self: flex-start;
}

.bible-services-section {
  background: var(--navy);
}

.bible-services-section h2 {
  color: var(--white);
}

.bible-services-section .section-head p {
  color: rgba(255, 255, 255, .7);
}

.bible-service-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}

.bible-service-card {
  min-height: 245px;
  padding: 1.7rem;
  border-radius: var(--radius-seal);
  border: 1px solid rgba(255, 255, 255, .15);
  background: rgba(255, 255, 255, .06);
  transition: .25s ease;
}

.bible-service-card:hover {
  background: var(--yellow);
  border-color: var(--yellow);
  transform: translateY(-6px);
}

.bible-service-card h3 {
  color: var(--white);
}

.bible-service-card p {
  color: rgba(255, 255, 255, .7);
}

.bible-service-card:hover h3,
.bible-service-card:hover p {
  color: var(--navy);
}

.bible-service-icon {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--red);
  color: var(--white);
  font-weight: 900;
  margin-bottom: 1.2rem;
}

.bible-service-card:hover .bible-service-icon {
  background: var(--navy);
  color: var(--yellow);
}

.bible-registration-section {
  background: var(--sky);
}

.bible-registration-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.bible-registration-steps {
  background: var(--white);
  border-radius: 30px;
  padding: 2.2rem;
  box-shadow: var(--shadow);
}

.bible-registration-step {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 1rem;
  align-items: center;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(22, 34, 73, .12);
}

.bible-registration-step:last-child {
  border-bottom: 0;
}

.bible-registration-step span {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.35rem;
  color: var(--red);
  font-weight: 700;
}

.bible-registration-step p {
  margin: 0;
  color: var(--navy);
  font-weight: 700;
}

.bible-portal-section {
  background: #f7f8fb;
}

.bible-portal-card {
  min-height: 400px;
  border-radius: 34px;
  padding: 3.2rem;
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 3rem;
  align-items: center;
  background:
    radial-gradient(circle at 85% 50%, rgba(255, 255, 0, .2), transparent 28%),
    var(--navy);
  color: var(--white);
  overflow: hidden;
}

.bible-portal-card h2,
.bible-portal-card p {
  color: var(--white);
}

.bible-portal-card p {
  color: rgba(255, 255, 255, .72);
}

.bible-portal-actions {
  display: flex;
  flex-direction: column;
  gap: .9rem;
}

.bible-portal-actions .btn {
  width: 100%;
}

@media(max-width:1100px) {
  .nav-links {
    gap: .85rem;
    font-size: .86rem;
  }
}

@media(max-width:900px) {

  .bible-intro-grid,
  .bible-registration-grid,
  .bible-portal-card {
    grid-template-columns: 1fr;
  }

  .bible-pathway-grid,
  .bible-course-grid,
  .bible-service-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media(max-width:600px) {

  .bible-pathway-grid,
  .bible-course-grid,
  .bible-service-grid {
    grid-template-columns: 1fr;
  }

  .bible-portal-card,
  .bible-registration-steps {
    padding: 2rem;
  }
}


/* ================================================================
   DEVELOP FEATURE: Ministries
   ================================================================ */

/* Dropdown navigation */
.nav-dropdown {
  position: relative;
  display: flex;
  align-items: center;
}

.nav-dropdown-trigger {
  display: flex;
  align-items: center;
}

.nav-submenu-toggle {
  border: 0;
  background: transparent;
  color: var(--navy);
  font: inherit;
  font-size: 1rem;
  padding: .35rem .15rem .35rem .35rem;
  cursor: pointer;
  transition: transform .2s ease, color .2s ease;
}

.nav-dropdown:hover .nav-submenu-toggle,
.nav-dropdown:focus-within .nav-submenu-toggle,
.nav-dropdown.submenu-open .nav-submenu-toggle {
  color: var(--red);
  transform: rotate(180deg);
}

.nav-submenu {
  position: absolute;
  top: calc(100% + 1rem);
  left: -1rem;
  z-index: 1000;
  min-width: 310px;
  max-height: min(70vh, 560px);
  overflow: auto;
  padding: .8rem;
  border: 1px solid rgba(22, 34, 73, .1);
  border-radius: 20px;
  background: var(--white);
  box-shadow: 0 24px 60px rgba(22, 34, 73, .18);
  display: grid;
  gap: .18rem;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity .2s ease, visibility .2s ease, transform .2s ease;
}

.nav-dropdown:hover .nav-submenu,
.nav-dropdown:focus-within .nav-submenu,
.nav-dropdown.submenu-open .nav-submenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.nav-submenu a {
  display: block;
  padding: .72rem .85rem;
  border-radius: 12px;
  color: var(--navy);
  font-size: .88rem;
  line-height: 1.25;
}

.nav-submenu a::after {
  display: none !important;
}

.nav-submenu a:hover,
.nav-submenu a.active {
  background: var(--sky);
  color: var(--red);
}

/* Annual and monthly themes */
.theme-section {
  background: var(--white)
}

.theme-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

.theme-card {
  min-height: 330px;
  padding: 2.5rem;
  border-radius: 30px;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transition: transform .25s ease, box-shadow .25s ease;
}

.theme-card::after {
  content: "";
  position: absolute;
  right: -55px;
  bottom: -65px;
  width: 250px;
  aspect-ratio: 1;
  background: url("assets/logos/cross-radiance.png") center/contain no-repeat;
  opacity: .1;
  pointer-events: none;
}

.theme-card:hover {
  transform: translateY(-7px);
  box-shadow: 0 24px 52px rgba(22, 34, 73, .18);
}

.theme-year {
  background: var(--navy);
  color: var(--white)
}

.theme-month {
  background: var(--red);
  color: var(--white)
}

.theme-year h2,
.theme-year p,
.theme-month h2,
.theme-month p {
  color: var(--white)
}

.theme-year .eyebrow,
.theme-month .eyebrow {
  color: var(--yellow)
}

.theme-card p {
  font-weight: 800;
  letter-spacing: .03em
}


/* Calendar of Lectionary */
.lectionary-section {
  background: var(--white);
}

.lectionary-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 2rem;
  padding: 1.5rem 1.8rem;
  border-radius: 24px;
  background: var(--navy);
}

.lectionary-toolbar h3 {
  margin: 0;
  color: var(--white);
  font-size: 1.8rem;
}

.lectionary-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.4rem;
}

.lectionary-card {
  padding: 2rem;
  border-radius: 28px;
  background: var(--sky);
  border: 1px solid rgba(22, 34, 73, 0.1);
  transition:
    transform 0.25s ease,
    background-color 0.25s ease,
    color 0.25s ease,
    box-shadow 0.25s ease;
}

.lectionary-card:nth-child(3n + 1):hover {
  background: var(--navy);
  color: var(--white);
}

.lectionary-card:nth-child(3n + 2):hover {
  background: var(--red);
  color: var(--white);
}

.lectionary-card:nth-child(3n):hover {
  background: var(--yellow);
  color: var(--navy);
}

.lectionary-card:hover {
  transform: translateY(-7px);
  box-shadow: 0 20px 45px rgba(22, 34, 73, 0.18);
}

.lectionary-card h3 {
  margin: 0.6rem 0 1.4rem;
}

.lectionary-card:hover h3,
.lectionary-card:hover p,
.lectionary-card:hover strong {
  color: inherit;
}

.lectionary-date {
  display: inline-flex;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  background: var(--yellow);
  color: var(--navy);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.lectionary-card:nth-child(3n):hover .lectionary-date {
  background: var(--red);
  color: var(--white);
}

.lectionary-reading-list {
  display: grid;
  gap: 0.75rem;
}

.lectionary-reading-list p {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin: 0;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(22, 34, 73, 0.12);
}

.lectionary-reading-list span {
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.lectionary-reading-list strong {
  color: var(--navy);
  text-align: right;
}

.lectionary-card:hover .lectionary-reading-list p {
  border-color: rgba(255, 255, 255, 0.2);
}

.lectionary-card:nth-child(3n):hover .lectionary-reading-list p {
  border-color: rgba(22, 34, 73, 0.18);
}

@media (max-width: 800px) {
  .lectionary-grid {
    grid-template-columns: 1fr;
  }

  .lectionary-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .lectionary-reading-list p {
    align-items: flex-start;
    flex-direction: column;
  }

  .lectionary-reading-list strong {
    text-align: left;
  }
}


/* Ministries landing */
.ministries-page-hero {
  background:
    radial-gradient(circle at 78% 40%, rgba(255, 255, 0, .16), transparent 24%),
    linear-gradient(150deg, var(--navy), #263e88);
}

.ministry-mission-section {
  background: var(--white)
}

.ministry-vision-card {
  margin: 2rem 0;
  padding: 2rem 2.2rem;
  border-radius: 26px;
  background: var(--navy);
  color: var(--white);
  position: relative;
  overflow: hidden;
}

.ministry-vision-card::after {
  content: "";
  position: absolute;
  right: -45px;
  top: -60px;
  width: 230px;
  aspect-ratio: 1;
  background: url("assets/logos/cross-radiance.png") center/contain no-repeat;
  opacity: .08;
}

.ministry-vision-card span {
  color: var(--yellow);
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-size: .78rem;
}

.ministry-vision-card h3 {
  color: var(--white);
  font-size: clamp(1.7rem, 3vw, 2.7rem);
  max-width: 850px;
}

.ministry-mandate-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

.ministry-mandate-card {
  min-height: 300px;
  padding: 2rem;
  border-radius: 28px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  transition: transform .25s ease, box-shadow .25s ease;
}

.ministry-mandate-card:hover {
  transform: translateY(-7px);
  box-shadow: 0 20px 45px rgba(22, 34, 73, .18);
}

.ministry-mandate-card span {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 3rem;
  font-weight: 800;
  margin-bottom: auto;
}

.ministry-mandate-card h3 {
  font-size: 2rem;
  color: inherit
}

.ministry-mandate-card p {
  color: inherit;
  opacity: .78
}

.mandate-1 {
  background: var(--navy);
  color: var(--white)
}

.mandate-2 {
  background: var(--red);
  color: var(--white)
}

.mandate-3 {
  background: var(--yellow);
  color: var(--navy)
}

.ministry-group-section {
  scroll-margin-top: 100px
}

.ministry-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.35rem;
}

.ministry-card {
  min-height: 440px;
  border-radius: 28px;
  overflow: hidden;
  background: var(--white);
  border: 1px solid rgba(22, 34, 73, .1);
  box-shadow: 0 12px 35px rgba(22, 34, 73, .08);
  display: flex;
  flex-direction: column;
  transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease;
}

.ministry-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 55px rgba(22, 34, 73, .18);
}

.ministry-card:nth-child(3n+1):hover {
  background: var(--navy);
  color: var(--white)
}

.ministry-card:nth-child(3n+2):hover {
  background: var(--red);
  color: var(--white)
}

.ministry-card:nth-child(3n):hover {
  background: var(--yellow);
  color: var(--navy)
}

.ministry-card-image {
  height: 225px;
  background-position: center;
  background-size: cover;
  background-color: var(--sky);
  transition: transform .45s ease;
}

.ministry-card:hover .ministry-card-image {
  transform: scale(1.025)
}

.ministry-card-body {
  padding: 1.6rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.ministry-card h3 {
  font-size: 1.55rem;
  color: inherit
}

.ministry-card p {
  color: inherit;
  opacity: .72
}

.ministry-card .meta {
  color: var(--red)
}

.ministry-card:nth-child(3n+1):hover .meta,
.ministry-card:nth-child(3n+2):hover .meta {
  color: var(--yellow)
}

.ministry-card:nth-child(3n):hover .meta {
  color: var(--red)
}

.ministry-card-link {
  margin-top: auto;
  padding-top: 1rem;
  font-weight: 900;
  color: inherit;
}

/* Ministry detail pages */
.ministry-detail-hero {
  background:
    radial-gradient(circle at 82% 45%, rgba(255, 255, 0, .15), transparent 24%),
    linear-gradient(145deg, var(--navy), #243c88);
}

.ministry-overview-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 4rem;
  align-items: center;
}

.ministry-detail-image {
  min-height: 550px;
  border-radius: 30px;
  background-size: cover;
  background-position: center;
  box-shadow: var(--shadow);
}

.ministry-facts {
  display: grid;
  gap: .75rem;
  margin-top: 1.6rem;
}

.ministry-fact {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(22, 34, 73, .13);
}

.ministry-fact span {
  color: var(--red);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ministry-fact strong {
  color: var(--navy)
}

.ministry-leader-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

.ministry-leader-card {
  min-height: 230px;
  padding: 1.8rem;
  border-radius: 26px;
  background: var(--white);
  border: 1px solid rgba(22, 34, 73, .1);
  transition: .25s ease;
}

.ministry-leader-card:nth-child(3n+1):hover {
  background: var(--navy);
  color: var(--white)
}

.ministry-leader-card:nth-child(3n+2):hover {
  background: var(--red);
  color: var(--white)
}

.ministry-leader-card:nth-child(3n):hover {
  background: var(--yellow);
  color: var(--navy)
}

.ministry-leader-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow)
}

.ministry-leader-card h3 {
  color: inherit
}

.ministry-leader-card p {
  color: inherit;
  opacity: .75
}

.ministry-leader-number {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 2.2rem;
  color: var(--red);
  margin-bottom: 2rem;
}

.ministry-leader-card:nth-child(3n+1):hover .ministry-leader-number,
.ministry-leader-card:nth-child(3n+2):hover .ministry-leader-number {
  color: var(--yellow)
}

.ministry-functions-section {
  background: var(--navy)
}

.ministry-functions-section h2 {
  color: var(--white)
}

.ministry-function-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.ministry-function-card {
  padding: 1.4rem;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, .16);
  background: rgba(255, 255, 255, .06);
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 1rem;
  align-items: start;
  transition: .25s ease;
}

.ministry-function-card:hover {
  background: var(--yellow);
  transform: translateY(-4px)
}

.ministry-function-card span {
  color: var(--yellow);
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.4rem;
}

.ministry-function-card p {
  margin: 0;
  color: rgba(255, 255, 255, .78)
}

.ministry-function-card:hover span,
.ministry-function-card:hover p {
  color: var(--navy)
}

.ministry-back-banner {
  min-height: 260px;
  padding: 2.5rem;
  border-radius: 30px;
  background: var(--white);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

/* House Fellowship directory */
.house-fellowship-hero {
  background:
    radial-gradient(circle at 82% 45%, rgba(255, 255, 0, .15), transparent 24%),
    linear-gradient(145deg, var(--navy), #243c88);
}

.house-directory-toolbar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 2rem;
}

.house-search {
  display: grid;
  gap: .45rem;
  width: min(430px, 100%);
}

.house-search span {
  color: var(--navy);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.house-search input {
  width: 100%;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(22, 34, 73, .18);
  border-radius: 16px;
  background: var(--white);
  color: var(--navy);
  font: inherit;
}

.house-search input:focus {
  outline: 3px solid rgba(255, 255, 0, .45);
  border-color: var(--navy);
}

.house-directory-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}

.house-card {
  min-height: 315px;
  padding: 1.7rem;
  border-radius: 26px;
  background: var(--white);
  border: 1px solid rgba(22, 34, 73, .1);
  transition: .25s ease;
}

.house-card:nth-child(3n+1):hover {
  background: var(--navy);
  color: var(--white)
}

.house-card:nth-child(3n+2):hover {
  background: var(--red);
  color: var(--white)
}

.house-card:nth-child(3n):hover {
  background: var(--yellow);
  color: var(--navy)
}

.house-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow)
}

.house-card h3 {
  font-size: 1.5rem;
  color: inherit
}

.house-card .meta {
  color: var(--red)
}

.house-card:nth-child(3n+1):hover .meta,
.house-card:nth-child(3n+2):hover .meta {
  color: var(--yellow)
}

.house-card-number {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 2.2rem;
  color: var(--red);
  margin-bottom: 1.4rem;
}

.house-card:nth-child(3n+1):hover .house-card-number,
.house-card:nth-child(3n+2):hover .house-card-number {
  color: var(--yellow)
}

.house-card dl {
  display: grid;
  gap: 1rem;
  margin-top: 1.2rem
}

.house-card dl div {
  display: grid;
  gap: .25rem
}

.house-card dt {
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--red);
}

.house-card:nth-child(3n+1):hover dt,
.house-card:nth-child(3n+2):hover dt {
  color: var(--yellow)
}

.house-card dd {
  margin: 0;
  color: inherit;
  font-weight: 700
}

.house-empty-state {
  padding: 2rem;
  text-align: center;
  border-radius: 20px;
  background: var(--sky);
  color: var(--navy);
  font-weight: 800;
}

/* Responsive */
@media(max-width:1050px) {

  .ministry-card-grid,
  .house-directory-grid {
    grid-template-columns: repeat(2, 1fr)
  }

  .ministry-leader-grid {
    grid-template-columns: repeat(2, 1fr)
  }
}

@media(max-width:900px) {
  .nav-dropdown {
    width: 100%;
    display: block;
  }

  .nav-dropdown-trigger {
    width: 100%;
    justify-content: space-between;
  }

  .nav-submenu {
    position: static;
    min-width: 0;
    max-height: none;
    padding: .5rem 0 .5rem 1rem;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    display: none;
    opacity: 1;
    visibility: visible;
    transform: none;
  }

  .nav-dropdown:hover .nav-submenu,
  .nav-dropdown:focus-within .nav-submenu {
    display: none;
  }

  .nav-dropdown.submenu-open .nav-submenu {
    display: grid
  }

  .nav-submenu a {
    background: rgba(214, 231, 244, .5);
  }

  .theme-grid,
  .ministry-overview-grid {
    grid-template-columns: 1fr
  }

  .ministry-mandate-grid {
    grid-template-columns: 1fr
  }

  .ministry-detail-image {
    min-height: 430px
  }

  .house-directory-toolbar {
    align-items: stretch;
    flex-direction: column
  }
}

@media(max-width:650px) {

  .theme-grid,
  .ministry-card-grid,
  .ministry-leader-grid,
  .ministry-function-grid,
  .house-directory-grid {
    grid-template-columns: 1fr
  }

  .theme-card {
    min-height: 270px;
    padding: 2rem
  }

  .ministry-fact {
    grid-template-columns: 1fr;
    gap: .35rem
  }

  .ministry-back-banner {
    align-items: flex-start;
    flex-direction: column
  }
}

/* LECTIONARY FIX BUILD
   The matching .lectionary-* styles are present in this file.
   Keep this file named exactly styles.css beside publications.html. */


/* ================================================================
   DEVELOP FEATURE: Full-year Lectionary + Events Calendar
   ================================================================ */

.lectionary-month-control {
  display: flex;
  align-items: center;
  gap: 1.4rem;
}

.lectionary-month-control label,
.calendar-filter {
  display: grid;
  gap: .3rem;
}

.lectionary-month-control label span,
.calendar-filter span {
  color: rgba(255, 255, 255, .72);
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.lectionary-month-control select,
.calendar-filter select {
  min-width: 170px;
  padding: .72rem .9rem;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 12px;
  background: var(--white);
  color: var(--navy);
  font: inherit;
  font-weight: 800;
}

.lectionary-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.lectionary-week {
  color: var(--red);
  font-weight: 900;
  font-size: .78rem;
}

.lectionary-special-event {
  display: inline-flex;
  margin-top: 1rem;
  padding: .4rem .7rem;
  border-radius: 999px;
  background: var(--red);
  color: var(--white);
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.lectionary-scripture {
  display: grid;
  gap: .45rem;
  padding: 1rem 0;
  border-top: 1px solid rgba(22, 34, 73, .12);
  border-bottom: 1px solid rgba(22, 34, 73, .12);
}

.lectionary-scripture span {
  color: var(--red);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.lectionary-scripture strong {
  color: var(--navy);
}

.lectionary-objective {
  margin-top: 1rem;
}

.lectionary-objective summary {
  cursor: pointer;
  color: var(--navy);
  font-weight: 900;
}

.lectionary-objective p {
  margin-top: .8rem;
}

.lectionary-verification {
  margin-top: 1rem;
  padding: .8rem;
  border-radius: 12px;
  background: #fff5d8;
  color: #6d5200;
  font-size: .82rem;
}

.lectionary-card:hover .lectionary-scripture span,
.lectionary-card:hover .lectionary-scripture strong,
.lectionary-card:hover .lectionary-objective summary,
.lectionary-card:hover .lectionary-week {
  color: inherit;
}

.events-page-hero {
  background:
    radial-gradient(circle at 80% 40%, rgba(255, 255, 0, .18), transparent 25%),
    linear-gradient(150deg, var(--navy), #263e88);
}

.event-watch-section {
  background: var(--white);
}

.event-watch-card {
  min-height: 420px;
  padding: 3rem;
  border-radius: 34px;
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 3rem;
  align-items: center;
  overflow: hidden;
  position: relative;
  background:
    radial-gradient(circle at 82% 50%, rgba(255, 255, 0, .22), transparent 25%),
    var(--navy);
  color: var(--white);
}

.event-watch-card::after {
  content: "";
  position: absolute;
  right: -80px;
  bottom: -100px;
  width: 360px;
  aspect-ratio: 1;
  background: url("assets/logos/cross-radiance.png") center/contain no-repeat;
  opacity: .08;
}

.event-watch-card h2,
.event-watch-card p {
  color: var(--white);
}

.event-watch-card p {
  color: rgba(255, 255, 255, .75);
  max-width: 700px;
}

.event-watch-status {
  margin: .8rem 0;
  color: var(--yellow);
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.event-watch-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem 1.2rem;
  align-items: center;
  color: rgba(255, 255, 255, .78);
  font-weight: 700;
}

.event-watch-meta .text-link {
  color: var(--yellow);
}

.event-countdown {
  min-height: 230px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  align-content: center;
  text-align: center;
  background: var(--yellow);
  color: var(--navy);
  position: relative;
  z-index: 2;
}

.event-countdown strong {
  display: block;
  font-family: 'Fraunces', Georgia, serif;
  font-size: clamp(3rem, 7vw, 6rem);
  line-height: .9;
}

.event-countdown span {
  margin-top: .7rem;
  font-weight: 900;
}

.events-calendar-section {
  background: #f7f8fb;
}

.calendar-theme-banner {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1.2rem;
  padding: 1.25rem 1.5rem;
  border-radius: 20px;
  background: var(--sky);
  color: var(--navy);
}

.calendar-theme-banner span {
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.calendar-theme-banner strong {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.25rem;
}

.calendar-theme-banner em {
  color: var(--red);
  font-weight: 800;
}

.calendar-toolbar {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 1.5rem;
  align-items: center;
  padding: 1.2rem;
  border-radius: 22px 22px 0 0;
  background: var(--navy);
}

.calendar-toolbar h3 {
  margin: 0;
  color: var(--white);
  text-align: center;
  font-size: 1.8rem;
}

.calendar-nav-controls {
  display: flex;
  gap: .45rem;
}

.calendar-control {
  min-width: 44px;
  min-height: 44px;
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 12px;
  background: rgba(255, 255, 255, .08);
  color: var(--white);
  font: inherit;
  font-weight: 900;
  cursor: pointer;
  transition: .2s ease;
}

.calendar-control:hover {
  background: var(--yellow);
  color: var(--navy);
  border-color: var(--yellow);
}

.calendar-today {
  padding-inline: .9rem;
}

.event-calendar {
  overflow: hidden;
  border: 1px solid rgba(22, 34, 73, .12);
  border-top: 0;
  border-radius: 0 0 22px 22px;
  background: var(--white);
}

.calendar-weekdays,
.calendar-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.calendar-weekdays span {
  padding: .8rem;
  background: var(--sky);
  color: var(--navy);
  text-align: center;
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.calendar-day {
  min-height: 145px;
  padding: .65rem;
  border-top: 1px solid rgba(22, 34, 73, .09);
  border-right: 1px solid rgba(22, 34, 73, .09);
  background: var(--white);
}

.calendar-day:nth-child(7n) {
  border-right: 0;
}

.calendar-day.outside-month {
  background: #f5f6f8;
  opacity: .52;
}

.calendar-today-cell {
  box-shadow: inset 0 0 0 3px var(--yellow);
}

.calendar-day-number {
  display: inline-grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  color: var(--navy);
  font-weight: 900;
  font-size: .82rem;
}

.calendar-today-cell .calendar-day-number {
  background: var(--navy);
  color: var(--yellow);
}

.calendar-day-events {
  display: grid;
  gap: .35rem;
  margin-top: .45rem;
}

.calendar-event-chip {
  width: 100%;
  padding: .42rem .48rem;
  border: 0;
  border-radius: 8px;
  background: var(--red);
  color: var(--white);
  text-align: left;
  font: inherit;
  font-size: .68rem;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
}

.calendar-event-chip:hover {
  background: var(--navy);
  color: var(--yellow);
}

.recurring-chip {
  background: var(--sky);
  color: var(--navy);
}

.calendar-more {
  color: var(--muted);
  font-size: .68rem;
  font-weight: 800;
}

.weekly-rhythm-grid,
.upcoming-event-grid,
.catchup-event-grid,
.social-event-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

.weekly-rhythm-card,
.event-list-card {
  min-height: 260px;
  padding: 1.7rem;
  border-radius: 26px;
  border: 1px solid rgba(22, 34, 73, .1);
  background: var(--white);
  transition: .25s ease;
}

.weekly-rhythm-card:hover,
.event-list-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow);
}

.weekly-rhythm-card:nth-child(3n+1):hover,
.event-list-card:nth-child(3n+1):hover {
  background: var(--navy);
  color: var(--white);
}

.weekly-rhythm-card:nth-child(3n+2):hover,
.event-list-card:nth-child(3n+2):hover {
  background: var(--red);
  color: var(--white);
}

.weekly-rhythm-card:nth-child(3n):hover,
.event-list-card:nth-child(3n):hover {
  background: var(--yellow);
  color: var(--navy);
}

.weekly-rhythm-card h3,
.event-list-card h3,
.weekly-rhythm-card p,
.event-list-card p {
  color: inherit;
}

.weekly-rhythm-day {
  color: var(--red);
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
  font-size: .75rem;
}

.weekly-rhythm-card:nth-child(3n+1):hover .weekly-rhythm-day,
.weekly-rhythm-card:nth-child(3n+2):hover .weekly-rhythm-day,
.event-list-card:nth-child(3n+1):hover .meta,
.event-list-card:nth-child(3n+2):hover .meta {
  color: var(--yellow);
}

.weekly-rhythm-card span {
  color: inherit;
  opacity: .72;
  font-size: .82rem;
  font-weight: 800;
}

.event-list-date {
  color: var(--red) !important;
  font-weight: 900;
}

.event-list-card:nth-child(3n+1):hover .event-list-date,
.event-list-card:nth-child(3n+2):hover .event-list-date {
  color: var(--yellow) !important;
}

.event-card-actions,
.event-dialog-links {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem 1.2rem;
  align-items: center;
  margin-top: 1rem;
}

.event-detail-button {
  border: 0;
  background: transparent;
  cursor: pointer;
  font: inherit;
}

.event-catchup-section {
  background: var(--sky);
}

.catchup-toggle {
  display: flex;
  margin: 2rem auto 0;
}

.social-events-section {
  background: var(--navy);
}

.social-events-section h2 {
  color: var(--white);
}

.social-event-card {
  overflow: hidden;
  border-radius: 26px;
  background: var(--white);
  transition: .25s ease;
}

.social-event-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 55px rgba(0, 0, 0, .24);
}

.social-event-thumb {
  height: 220px;
  background-size: cover;
  background-position: center;
}

.social-event-card>div:last-child {
  padding: 1.5rem;
}

.social-event-card span {
  color: var(--red);
  font-weight: 900;
}

.social-feed-empty {
  padding: 2rem;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 24px;
  background: rgba(255, 255, 255, .06);
}

.social-feed-empty h3 {
  color: var(--white);
}

.social-feed-empty p {
  color: rgba(255, 255, 255, .7);
}

.event-empty-state {
  padding: 2rem;
  border-radius: 22px;
  background: var(--sky);
  color: var(--navy);
  text-align: center;
  font-weight: 800;
}

.event-dialog {
  width: min(680px, 92vw);
  padding: 2.5rem;
  border: 0;
  border-radius: 28px;
  box-shadow: 0 30px 90px rgba(15, 24, 56, .35);
}

.event-dialog::backdrop {
  background: rgba(15, 24, 56, .72);
  backdrop-filter: blur(5px);
}

.event-dialog-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 50%;
  background: var(--sky);
  color: var(--navy);
  font-size: 1.6rem;
  cursor: pointer;
}

.event-dialog-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem 1.2rem;
  margin-bottom: 1rem;
  color: var(--red);
  font-weight: 800;
}

.quick-events-cta {
  margin-top: 2rem;
  padding: 2rem;
  border-radius: 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  background: var(--navy);
}

.quick-events-cta h3,
.quick-events-cta p {
  color: var(--white);
}

.quick-events-cta p {
  color: rgba(255, 255, 255, .7);
  max-width: 680px;
}

@media(max-width:1000px) {

  .weekly-rhythm-grid,
  .upcoming-event-grid,
  .catchup-event-grid,
  .social-event-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .calendar-day {
    min-height: 120px;
  }
}

@media(max-width:800px) {
  .event-watch-card {
    grid-template-columns: 1fr;
  }

  .event-countdown {
    min-height: 230px;
    width: min(280px, 100%);
    aspect-ratio: 1;
    margin-inline: auto;
  }

  .calendar-theme-banner,
  .calendar-toolbar {
    grid-template-columns: 1fr;
  }

  .calendar-toolbar h3 {
    text-align: left;
  }

  .calendar-filter select {
    width: 100%;
  }

  .event-calendar {
    overflow-x: auto;
  }

  .calendar-weekdays,
  .calendar-days {
    min-width: 820px;
  }

  .quick-events-cta {
    align-items: flex-start;
    flex-direction: column;
  }

  .lectionary-month-control {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media(max-width:620px) {

  .weekly-rhythm-grid,
  .upcoming-event-grid,
  .catchup-event-grid,
  .social-event-grid {
    grid-template-columns: 1fr;
  }

  .event-watch-card {
    padding: 2rem;
  }

  .calendar-theme-banner {
    gap: .5rem;
  }
}

/* Publication Pagination Styling */
.publication-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.5rem;
  margin-top: 3.5rem;
  padding: 1rem 0;
}

.publication-pagination .btn {
  padding: 0.75rem 1.75rem;
  font-size: 0.95rem;
  font-weight: 700;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.25s ease;
  border: 1px solid rgba(22, 34, 73, 0.15);
  background: var(--white);
  color: var(--navy);
}

.publication-pagination .btn:hover:not([disabled]) {
  background: var(--navy);
  color: var(--white);
  border-color: var(--navy);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(22, 34, 73, 0.12);
}

.publication-pagination .btn[disabled] {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

.pagination-info {
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--navy);
}

/* Publication Detail Page Layout */
.publication-detail-grid {
  display: grid;
  grid-template-columns: 1.4fr 0.8fr;
  gap: 3.5rem;
  align-items: start;
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.pub-main-read {
  background: var(--white);
  border-radius: 32px;
  padding: 3rem;
  border: 1px solid rgba(22, 34, 73, 0.08);
  box-shadow: 0 16px 40px rgba(22, 34, 73, 0.05);
}

.pub-main-read p {
  color: var(--navy);
  font-size: 1.15rem;
  line-height: 1.8;
  margin-bottom: 1.5rem;
}

.pub-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(22, 34, 73, 0.08);
}

.pub-side-rail {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.pub-sidebar-block {
  padding: 2.2rem;
  border-radius: 30px;
  box-shadow: 0 16px 40px rgba(22, 34, 73, 0.08);
}

.pub-scriptures-block {
  background: var(--navy);
  color: var(--white);
}

.pub-scriptures-block h3 {
  color: var(--white);
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
}

.pub-announcements-block {
  background: var(--sky);
  color: var(--navy);
}

.pub-announcements-block h3 {
  color: var(--navy);
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
}

.pub-announcements-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Theme variations for publication detail page hero */
.publication-detail-hero.publication-theme-yellow {
  background: var(--yellow);
  color: var(--navy);
}

.publication-detail-hero.publication-theme-yellow .eyebrow,
.publication-detail-hero.publication-theme-yellow h1,
.publication-detail-hero.publication-theme-yellow p {
  color: var(--navy);
}

.publication-detail-hero.publication-theme-navy {
  background: var(--navy);
  color: var(--white);
}

.publication-detail-hero.publication-theme-navy .eyebrow {
  color: var(--yellow);
}

.publication-detail-hero.publication-theme-navy h1,
.publication-detail-hero.publication-theme-navy p {
  color: var(--white);
}

.publication-detail-hero.publication-theme-red {
  background: var(--red);
  color: var(--white);
}

.publication-detail-hero.publication-theme-red .eyebrow {
  color: var(--yellow);
}

.publication-detail-hero.publication-theme-red h1,
.publication-detail-hero.publication-theme-red p {
  color: var(--white);
}

.publications-showcase .container .section-head {
  color: var(--navy)
}

@media (max-width: 600px) {
  .pub-main-read {
    padding: 2rem 1.5rem;
  }

  .pub-actions {
    flex-direction: column;
  }

  .pub-actions .btn {
    width: 100%;
    text-align: center;
  }
}

/* ==========================================================================
   SUNDAY SCHOOL OUTLINE DETAILS PAGE STYLES
   ========================================================================== */



/* Hero Section */
.sunday-school-hero {
  background: var(--navy);
  color: var(--white);
  padding: 4.5rem 0 3.5rem;
  position: relative;
  overflow: hidden;
}

.sunday-school-hero h1 {
  color: var(--white);
  margin-bottom: 0.8rem;
  font-size: clamp(2.5rem, 5vw, 4.5rem);
}

.sunday-school-hero p {
  color: rgba(255, 255, 255, 0.85);
  font-size: 1.25rem;
  max-width: 800px;
  margin-bottom: 2rem;
}

.hero-meta-badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-bottom: 1.2rem;
}

.ss-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.9rem;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.ss-badge-quarter {
  background: var(--yellow);
  color: var(--navy);
}

.ss-badge-lesson-num {
  background: var(--red);
  color: var(--white);
}

.ss-hero-quick-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1.2rem;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(8px);
  padding: 1.25rem 1.8rem;
  border-radius: 20px;
  margin-top: 1.5rem;
}

.ss-meta-item {
  display: flex;
  flex-direction: column;
}

.ss-meta-label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--yellow);
  font-weight: 700;
}

.ss-meta-item strong {
  font-size: 1.05rem;
  color: var(--white);
  font-weight: 600;
}

/* Sticky Control Toolbar */
.ss-toolbar-wrapper {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(22, 34, 73, 0.12);
  box-shadow: 0 4px 20px rgba(22, 34, 73, 0.06);
  padding: 0.75rem 0;
}

.ss-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.ss-toolbar-left,
.ss-toolbar-center,
.ss-toolbar-right {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.ss-toolbar-label {
  font-size: 0.85rem;
  font-weight: 800;
  color: var(--navy);
}

.ss-lesson-select {
  padding: 0.55rem 1rem;
  border-radius: 999px;
  border: 1.5px solid rgba(22, 34, 73, 0.2);
  background: var(--white);
  color: var(--navy);
  font-weight: 600;
  font-size: 0.88rem;
  cursor: pointer;
  max-width: 320px;
  outline: none;
  transition: border-color 0.2s ease;
}

.ss-lesson-select:focus {
  border-color: var(--navy);
}

.ss-mode-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  border: 1.5px solid rgba(22, 34, 73, 0.2);
  background: var(--white);
  color: var(--navy);
  font-weight: 700;
  font-size: 0.85rem;
  cursor: pointer;
  transition: all 0.25s ease;
}

.ss-mode-btn.active,
body.teacher-mode .ss-mode-btn {
  background: var(--red);
  color: var(--white);
  border-color: var(--red);
  box-shadow: 0 4px 12px rgba(215, 38, 30, 0.25);
}

.ss-audio-player {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  background: rgba(214, 231, 244, 0.4);
  padding: 0.35rem 0.8rem 0.35rem 0.4rem;
  border-radius: 999px;
}

.ss-audio-play-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  border: none;
  background: var(--navy);
  color: var(--yellow);
  font-weight: 800;
  font-size: 0.82rem;
  cursor: pointer;
  transition: transform 0.2s ease, background 0.2s ease;
}

.ss-audio-play-btn.playing {
  background: var(--red);
  color: var(--white);
  animation: ssAudioPulse 1.8s infinite;
}

@keyframes ssAudioPulse {
  0% { box-shadow: 0 0 0 0 rgba(215, 38, 30, 0.4); }
  70% { box-shadow: 0 0 0 7px rgba(215, 38, 30, 0); }
  100% { box-shadow: 0 0 0 0 rgba(215, 38, 30, 0); }
}

.ss-audio-play-btn:hover {
  transform: scale(1.04);
}

.ss-audio-stop-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: none;
  background: rgba(22, 34, 73, 0.1);
  color: var(--navy);
  font-size: 0.72rem;
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.ss-audio-stop-btn:hover {
  background: var(--red);
  color: var(--white);
}

.ss-audio-stop-btn.hidden {
  display: none !important;
}

.ss-audio-status {
  font-size: 0.78rem;
  color: var(--muted);
  font-weight: 600;
  max-width: 240px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ss-font-adjuster {
  display: flex;
  align-items: center;
  background: rgba(22, 34, 73, 0.05);
  border-radius: 999px;
  padding: 0.2rem;
}

.ss-font-btn {
  border: none;
  background: transparent;
  color: var(--navy);
  font-weight: 800;
  font-size: 0.85rem;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  cursor: pointer;
}

.ss-font-btn:hover {
  background: var(--white);
}

.ss-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  border: 1.5px solid rgba(22, 34, 73, 0.2);
  background: var(--white);
  color: var(--navy);
  font-weight: 700;
  font-size: 0.85rem;
  cursor: pointer;
  transition: all 0.2s ease;
}

.ss-action-btn:hover {
  border-color: var(--navy);
  background: var(--navy);
  color: var(--white);
}

.ss-btn-primary {
  background: var(--navy);
  color: var(--white);
  border-color: var(--navy);
}

.ss-btn-primary:hover {
  background: var(--navy-2);
}

/* Multi-Column Main Layout */
.ss-main-section {
  padding: 3rem 0 5rem;
  background: #f8fafc;
}

.ss-grid {
  display: grid;
  grid-template-columns: 240px 1fr 300px;
  gap: 2rem;
  align-items: start;
}

/* Left Table of Contents */
.ss-toc-col {
  position: sticky;
  top: 5.5rem;
  align-self: start;
  z-index: 20;
}

.ss-toc-sticky {
  position: sticky;
  top: 5.5rem;
}

.ss-toc-card {
  background: var(--white);
  border-radius: 20px;
  padding: 1.4rem;
  border: 1px solid rgba(22, 34, 73, 0.08);
  box-shadow: var(--shadow);
  max-height: calc(100vh - 6.5rem);
  overflow-y: auto;
}

.ss-toc-card h3 {
  font-size: 1rem;
  margin-bottom: 0.8rem;
  color: var(--navy);
}

.ss-reading-progress {
  height: 4px;
  background: rgba(22, 34, 73, 0.08);
  border-radius: 999px;
  margin-bottom: 1.2rem;
  overflow: hidden;
}

.ss-progress-bar {
  height: 100%;
  width: 0%;
  background: var(--red);
  transition: width 0.15s ease-out;
}

.ss-toc-nav {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.ss-toc-link {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--muted);
  padding: 0.45rem 0.75rem;
  border-radius: 8px;
  transition: all 0.2s ease;
  border-left: 3px solid transparent;
}

.ss-toc-link:hover,
.ss-toc-link.active {
  color: var(--navy);
  background: rgba(214, 231, 244, 0.4);
  border-left-color: var(--red);
}

.ss-toc-teacher-only {
  display: none;
}

body.teacher-mode .ss-toc-teacher-only {
  display: block;
}

/* Center Reader Area */
.ss-reader-col {
  font-size: calc(1rem * var(--ss-font-scale, 1));
}

.ss-card {
  background: var(--white);
  border-radius: 28px;
  padding: 2.5rem;
  margin-bottom: 2rem;
  border: 1.5px solid rgba(22, 34, 73, 0.08);
  box-shadow: var(--shadow);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

/* Audio Narration Active Card Highlight */
.ss-card.ss-reading-active,
.ss-outline-card.ss-reading-active {
  border-color: rgba(22, 34, 73, 0.4) !important;
  box-shadow: 0 16px 42px rgba(22, 34, 73, 0.16), 0 0 0 3.5px rgba(214, 231, 244, 0.85) !important;
  transform: translateY(-2px);
}

.ss-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid rgba(22, 34, 73, 0.08);
  padding-bottom: 1rem;
}

.ss-card-header h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  margin: 0;
}

/* Memory Verse Card */
.ss-verse-card {
  background: var(--navy);
  color: var(--white);
}

.ss-verse-card h2,
.ss-verse-card p,
.ss-verse-card cite {
  color: var(--white);
}

.ss-drill-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.9rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: var(--yellow);
  font-weight: 700;
  font-size: 0.8rem;
  cursor: pointer;
}

.ss-drill-btn:hover {
  background: rgba(255, 255, 255, 0.25);
}

.ss-verse-quote {
  margin: 0 0 1.5rem;
  padding-left: 1.5rem;
  border-left: 4px solid var(--yellow);
}

.ss-verse-quote p {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.5rem;
  line-height: 1.5;
  font-weight: 600;
  color: var(--white);
  margin-bottom: 0.5rem;
}

.ss-verse-quote cite {
  font-size: 1rem;
  font-weight: 800;
  color: var(--yellow);
  font-style: normal;
}

.hidden {
  display: none !important;
}

.ss-verse-context {
  background: rgba(255, 255, 255, 0.08);
  padding: 1rem 1.25rem;
  border-radius: 14px;
  font-size: 0.95rem;
  margin-bottom: 1.2rem;
  color: rgba(255, 255, 255, 0.9);
}

.ss-golden-text {
  background: rgba(255, 255, 0, 0.12);
  border: 1px solid rgba(255, 255, 0, 0.3);
  padding: 1.2rem 1.5rem;
  border-radius: 16px;
}

.ss-golden-label {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--yellow);
  margin-bottom: 0.3rem;
}

.ss-golden-text p {
  margin: 0;
  font-weight: 600;
  color: var(--white);
}

/* Scripture Readings Grid */
.ss-scriptures-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.25rem;
}

.ss-scripture-item {
  background: rgba(214, 231, 244, 0.25);
  border: 1px solid rgba(22, 34, 73, 0.1);
  padding: 1.4rem;
  border-radius: 18px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.ss-scripture-top {
  display: flex;
  flex-direction: column;
  margin-bottom: 0.8rem;
}

.ss-scripture-tag {
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--red);
  letter-spacing: 0.08em;
}

.ss-scripture-top strong {
  font-size: 1.15rem;
  color: var(--navy);
}

.ss-scripture-snippet {
  font-size: 0.92rem;
  color: var(--ink);
  margin-bottom: 1.2rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ss-open-modal-btn {
  align-self: start;
  background: var(--navy);
  color: var(--white);
  border: none;
  padding: 0.45rem 0.9rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.2s ease, background 0.2s ease;
}

.ss-open-modal-btn:hover {
  background: var(--navy-2);
  transform: translateY(-2px);
}

/* Objectives & Intro */
.ss-objectives-box {
  background: rgba(214, 231, 244, 0.35);
  padding: 1.5rem;
  border-radius: 18px;
  margin-bottom: 1.8rem;
}

.ss-objectives-box h3 {
  font-size: 1.1rem;
  margin-bottom: 1rem;
  color: var(--navy);
}

.ss-objectives-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.ss-objectives-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-weight: 600;
  color: var(--navy);
}

.ss-check-icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--yellow);
  display: grid;
  place-items: center;
  font-size: 0.75rem;
  flex-shrink: 0;
  margin-top: 2px;
}

.ss-intro-text p {
  font-size: 1.1rem;
  line-height: 1.75;
  color: var(--ink);
}

/* Outlines Section */
.ss-outlines-wrapper {
  margin-bottom: 2rem;
}

.ss-section-title {
  margin-bottom: 1.5rem;
}

.ss-outline-card {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.8rem;
}

.ss-outline-number {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 3rem;
  font-weight: 900;
  color: rgba(22, 34, 73, 0.15);
  line-height: 1;
}

.ss-outline-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-bottom: 1rem;
}

.ss-outline-head h3 {
  font-size: 1.35rem;
  margin: 0;
  color: var(--navy);
}

.ss-outline-ref {
  font-size: 0.85rem;
  font-weight: 800;
  color: var(--red);
  background: rgba(215, 38, 30, 0.08);
  padding: 0.3rem 0.8rem;
  border-radius: 999px;
}

.ss-outline-summary {
  font-size: 1.05rem;
  color: var(--navy);
  margin-bottom: 1.2rem;
}

.ss-outline-points {
  padding-left: 1.2rem;
  margin-bottom: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.ss-outline-points li {
  line-height: 1.65;
  color: var(--ink);
}

.ss-insight-box {
  background: #fffbeb;
  border-left: 4px solid var(--yellow);
  padding: 1.1rem 1.4rem;
  border-radius: 0 14px 14px 0;
  font-size: 0.98rem;
  color: var(--navy);
}

/* Discussion Questions Card */
.ss-questions-list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.ss-question-item {
  background: rgba(248, 250, 252, 0.8);
  border: 1px solid rgba(22, 34, 73, 0.08);
  padding: 1.6rem;
  border-radius: 20px;
}

.ss-question-num {
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--red);
  letter-spacing: 0.1em;
  margin-bottom: 0.4rem;
}

.ss-question-item h4 {
  font-size: 1.18rem;
  color: var(--navy);
  margin: 0 0 0.6rem;
}

.ss-question-hint {
  font-size: 0.88rem;
  color: var(--muted);
  margin-bottom: 1rem;
}

.ss-user-note-area {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  position: relative;
}

.ss-user-note-area label {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--navy);
}

.ss-discussion-input {
  width: 100%;
  min-height: 90px;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  border: 1.5px solid rgba(22, 34, 73, 0.15);
  font-family: inherit;
  font-size: 0.95rem;
  resize: vertical;
  outline: none;
  transition: border-color 0.2s ease;
}

.ss-discussion-input:focus {
  border-color: var(--navy);
}

.ss-note-saved-msg {
  position: absolute;
  right: 12px;
  bottom: 12px;
  font-size: 0.75rem;
  font-weight: 700;
  color: #16a34a;
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
}

.ss-note-saved-msg.visible {
  opacity: 1;
}

/* Teacher Mode Card */
.ss-teacher-card {
  display: none;
  background: #fdf2f2;
  border: 2px dashed var(--red);
}

body.teacher-mode .ss-teacher-card {
  display: block;
}

.ss-teacher-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
}

.ss-teacher-box {
  background: var(--white);
  padding: 1.4rem;
  border-radius: 16px;
  box-shadow: 0 4px 12px rgba(215, 38, 30, 0.06);
}

.ss-teacher-box h3 {
  font-size: 1.1rem;
  color: var(--red);
  margin-bottom: 0.8rem;
}

.ss-teacher-box ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  font-size: 0.92rem;
  color: var(--navy);
  font-weight: 600;
}

/* Application Card */
.ss-application-card {
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%);
  color: var(--white);
}

.ss-application-card h2 {
  color: var(--white);
}

.ss-app-content {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.ss-app-icon {
  font-size: 3rem;
  flex-shrink: 0;
}

.ss-app-content p {
  font-size: 1.15rem;
  line-height: 1.7;
  color: var(--white);
  margin: 0;
}

/* Right Side Rail */
.ss-siderail-sticky {
  position: sticky;
  top: 5.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.ss-side-block {
  background: var(--white);
  border-radius: 22px;
  padding: 1.5rem;
  border: 1px solid rgba(22, 34, 73, 0.08);
  box-shadow: var(--shadow);
}

.ss-side-block h3 {
  font-size: 1.1rem;
  margin-bottom: 1rem;
  color: var(--navy);
}

/* Curriculum List */
.ss-lesson-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.ss-lesson-list li a {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.6rem 0.8rem;
  border-radius: 12px;
  transition: background 0.2s ease;
}

.ss-lesson-list li a:hover,
.ss-lesson-list li.active a {
  background: rgba(214, 231, 244, 0.45);
}

.ss-side-num {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--yellow);
  font-weight: 800;
  font-size: 0.75rem;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.ss-side-info {
  display: flex;
  flex-direction: column;
}

.ss-side-info strong {
  font-size: 0.88rem;
  color: var(--navy);
  line-height: 1.2;
}

.ss-side-info small {
  font-size: 0.75rem;
  color: var(--muted);
}

/* Class Schedule */
.ss-schedule-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.ss-schedule-list li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.85rem;
}

.ss-schedule-time {
  background: var(--navy);
  color: var(--white);
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  font-weight: 800;
  font-size: 0.75rem;
  flex-shrink: 0;
}

.ss-schedule-phase {
  color: var(--navy);
  font-weight: 600;
}

/* Quick Notes Side Block */
.ss-notes-help {
  font-size: 0.78rem;
  color: var(--muted);
  margin-bottom: 0.6rem;
}

.ss-quick-notes-input {
  width: 100%;
  min-height: 110px;
  padding: 0.75rem;
  border-radius: 12px;
  border: 1.5px solid rgba(22, 34, 73, 0.15);
  font-family: inherit;
  font-size: 0.88rem;
  resize: vertical;
  outline: none;
}

.ss-notes-status {
  font-size: 0.72rem;
  color: var(--muted);
  text-align: right;
  margin-top: 0.3rem;
  font-weight: 600;
}

/* Scripture Modal Popover */
.ss-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(16, 22, 47, 0.6);
  backdrop-filter: blur(6px);
  display: grid;
  place-items: center;
  padding: 1.5rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}

.ss-modal-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}

.ss-modal-card {
  background: var(--white);
  border-radius: 28px;
  max-width: 650px;
  width: 100%;
  padding: 2.5rem;
  position: relative;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
  transform: translateY(20px);
  transition: transform 0.25s ease;
}

.ss-modal-backdrop.open .ss-modal-card {
  transform: translateY(0);
}

.ss-modal-close {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  border: none;
  background: rgba(22, 34, 73, 0.08);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-size: 1.1rem;
  cursor: pointer;
  display: grid;
  place-items: center;
}

.ss-modal-title {
  font-size: 1.8rem;
  color: var(--navy);
  margin-bottom: 1.2rem;
}

/* Responsive Styles */
@media (max-width: 1100px) {
  .ss-grid {
    grid-template-columns: 1fr 280px;
  }

  .ss-toc-col {
    display: none;
  }
}

@media (max-width: 850px) {
  .ss-grid {
    grid-template-columns: 1fr;
  }

  .ss-siderail-sticky {
    position: static;
  }

  .ss-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .ss-toolbar-left,
  .ss-toolbar-center,
  .ss-toolbar-right {
    justify-content: space-between;
    width: 100%;
  }

  .ss-lesson-select {
    max-width: 100%;
    flex: 1;
  }
}

/* Print Styles */
@media print {

  .site-header,
  .footer,
  .ss-toolbar-wrapper,
  .ss-toc-col,
  .ss-siderail-col,
  .ss-drill-btn,
  .ss-open-modal-btn {
    display: none !important;
  }

  .ss-grid {
    display: block !important;
  }

  .ss-card {
    box-shadow: none !important;
    border: 1px solid #ddd !important;
    break-inside: avoid;
    padding: 1.5rem !important;
  }

  body {
    background: #fff !important;
    color: #000 !important;
  }

  .sunday-school-hero {
    background: #fff !important;
    color: #000 !important;
    padding: 1rem 0 !important;
  }

  .sunday-school-hero h1,
  .sunday-school-hero p {
    color: #000 !important;
  }
}

/* ==========================================================================
   MINISTRY SOCIAL MEDIA FEEDS & HANDLES STYLES
   ========================================================================== */

.social-handles-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-bottom: 2rem;
}

.social-handle-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 1.1rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.88rem;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  border: 1px solid rgba(22, 34, 73, 0.12);
  background: var(--white);
  color: var(--navy);
}

.social-handle-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(22, 34, 73, 0.12);
}

.platform-instagram {
  background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888) !important;
  color: var(--white) !important;
  border: none !important;
}

.platform-youtube {
  background: #ff0000 !important;
  color: var(--white) !important;
  border: none !important;
}

.platform-facebook {
  background: #1877f2 !important;
  color: var(--white) !important;
  border: none !important;
}

.platform-tiktok {
  background: #010101 !important;
  color: var(--white) !important;
  border: none !important;
}

.platform-whatsapp {
  background: #25d366 !important;
  color: var(--white) !important;
  border: none !important;
}

.ministry-social-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 1.8rem;
}

.social-post-card {
  background: var(--white);
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid rgba(22, 34, 73, 0.08);
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.social-post-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(22, 34, 73, 0.15);
}

.social-post-thumb {
  height: 200px;
  background-size: cover;
  background-position: center;
  position: relative;
  padding: 1rem;
}

.social-platform-pill {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 0.35rem 0.8rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}

.social-post-body {
  padding: 1.6rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.social-post-body h3 {
  font-size: 1.2rem;
  margin-bottom: 0.6rem;
  color: var(--white);
}

.social-post-body p {
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--muted);
  margin-bottom: 1.2rem;
  flex-grow: 1;
}

.social-post-link {
  font-weight: 700;
  font-size: 0.88rem;
}

.platform-youtube .social-post-body h3,
.platform-youtube .social-post-body .meta {
  color: var(--yellow) !important;
}

.platform-youtube .social-post-body p,
.platform-youtube .social-post-link {
  color: var(--white) !important;
}

.platform-facebook .social-post-body h3 {
  color: var(--white) !important;
}

.platform-facebook .social-post-body p,
.platform-facebook .social-post-body .meta {
  color: var(--navy) !important;
}

.platform-facebook .social-post-link {
  color: var(--red) !important;
}

.platform-tiktok .social-post-body h3 {
  color: var(--yellow) !important;
}

.platform-tiktok .social-post-body p,
.platform-tiktok .social-post-link {
  color: var(--white) !important;
}

.platform-instagram .social-post-body h3 {
  color: var(--white) !important;
}

.platform-instagram .social-post-body .meta,
.platform-instagram .social-post-body p {
  color: var(--yellow) !important;
}

.platform-instagram .social-post-link {
  color: var(--white) !important;
}

.platform-whatsapp .social-post-body h3 {
  color: var(--white) !important;
}

.platform-whatsapp .social-post-body p,
.platform-whatsapp .social-post-link {
  color: var(--white) !important;
}

.platform-twitter .social-post-body h3 {
  color: var(--white) !important;
}

.platform-twitter .social-post-body p,
.platform-twitter .social-post-link {
  color: var(--white) !important;
}


/* ================================================================
   MERGED FROM FEATURE/PUBLICATION-BLOG
   Keeps the structured publication archive/article experience.
   ================================================================ */

/* Generated event-media placeholders */
.social-placeholder-notice {
  margin-bottom: 1.4rem;
  padding: 1.35rem 1.5rem;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 22px;
  background: rgba(255, 255, 255, .07)
}

.social-placeholder-notice h3 {
  margin: .25rem 0 .45rem;
  color: var(--white)
}

.social-placeholder-notice p {
  margin: 0;
  color: rgba(255, 255, 255, .72)
}

.social-placeholder-card {
  position: relative
}

.social-placeholder-card::after {
  content: "PLACEHOLDER";
  position: absolute;
  top: 1rem;
  right: 1rem;
  padding: .4rem .65rem;
  border-radius: 999px;
  background: var(--yellow);
  color: var(--navy);
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .06em
}

.social-placeholder-card .social-event-thumb {
  filter: saturate(.96)
}

.social-placeholder-card:hover .social-event-thumb {
  filter: saturate(1.1)
}


/* ================================================================
   DEVELOP FEATURE: Publications Blog System
   ================================================================ */

.publications-page-hero {
  background:
    radial-gradient(circle at 80% 42%, rgba(255, 255, 0, .16), transparent 25%),
    linear-gradient(150deg, var(--navy), #263e88);
}

.publication-featured-section {
  background: var(--white);
}

.publication-featured {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 0;
  min-height: 540px;
  overflow: hidden;
  border-radius: 34px;
  background: var(--navy);
  box-shadow: var(--shadow);
}

.publication-featured-copy {
  padding: 3.2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.publication-featured-copy h3 {
  color: var(--white);
  font-size: clamp(2.1rem, 4vw, 3.8rem);
}

.publication-featured-copy p {
  color: rgba(255, 255, 255, .74);
}

.publication-featured-copy .meta {
  color: var(--yellow);
}

.publication-featured-copy .publication-card-tags span {
  color: var(--white);
  border-color: rgba(255, 255, 255, .24);
}

.publication-blog-cover {
  position: relative;
  overflow: hidden;
  min-height: 100%;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  isolation: isolate;
}

.publication-blog-cover::before {
  content: "";
  position: absolute;
  right: -90px;
  bottom: -110px;
  width: 360px;
  aspect-ratio: 1;
  background: url("assets/logos/cross-radiance.png") center/contain no-repeat;
  opacity: .1;
  z-index: -1;
}

.publication-blog-cover>span {
  align-self: flex-start;
  padding: .45rem .7rem;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.publication-blog-cover>strong {
  margin: auto 0;
  font-family: 'Fraunces', Georgia, serif;
  font-size: clamp(5.5rem, 12vw, 10rem);
  line-height: .8;
}

.publication-blog-cover>div small {
  display: block;
  margin-bottom: .55rem;
  font-weight: 800;
}

.publication-blog-cover h3 {
  margin: 0;
  color: inherit;
  font-size: clamp(1.6rem, 3vw, 2.8rem);
}

.publication-cover-navy {
  background: var(--navy);
  color: var(--white);
}

.publication-cover-red {
  background: var(--red);
  color: var(--white);
}

.publication-cover-yellow {
  background: var(--yellow);
  color: var(--navy);
}

.publication-cover-sky {
  background: var(--sky);
  color: var(--navy);
}

.publication-featured-cover {
  min-height: 540px;
}

.publication-blog-toolbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.publication-category-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}

.publication-category-button {
  padding: .75rem 1rem;
  border: 1px solid rgba(22, 34, 73, .14);
  border-radius: 999px;
  background: var(--white);
  color: var(--navy);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  transition: .2s ease;
}

.publication-category-button span {
  display: inline-grid;
  min-width: 24px;
  height: 24px;
  margin-left: .35rem;
  place-items: center;
  border-radius: 50%;
  background: var(--sky);
  font-size: .7rem;
}

.publication-category-button:hover,
.publication-category-button.active {
  background: var(--navy);
  color: var(--yellow);
  border-color: var(--navy);
}

.publication-category-button.active span {
  background: var(--yellow);
  color: var(--navy);
}

.publication-search {
  display: grid;
  gap: .4rem;
  width: min(410px, 100%);
}

.publication-search span {
  color: var(--navy);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.publication-search input {
  width: 100%;
  padding: .95rem 1.05rem;
  border: 1px solid rgba(22, 34, 73, .16);
  border-radius: 14px;
  background: var(--white);
  color: var(--navy);
  font: inherit;
}

.publication-search input:focus {
  outline: 3px solid rgba(255, 240, 0, .45);
  border-color: var(--navy);
}

.publication-post-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.35rem;
}

.publication-blog-card {
  overflow: hidden;
  border-radius: 28px;
  background: var(--white);
  border: 1px solid rgba(22, 34, 73, .1);
  transition: transform .25s ease, box-shadow .25s ease;
}

.publication-blog-card:hover {
  transform: translateY(-7px);
  box-shadow: var(--shadow);
}

.publication-card-cover {
  min-height: 290px;
}

.publication-card-cover>strong {
  font-size: 5.2rem;
}

.publication-card-cover h3 {
  font-size: 1.55rem;
}

.publication-blog-card-body {
  padding: 1.55rem;
}

.publication-card-meta {
  display: flex;
  justify-content: space-between;
  gap: .8rem;
  margin-bottom: .8rem;
  color: var(--red);
  font-size: .74rem;
  font-weight: 900;
}

.publication-blog-card-body h3 {
  font-size: 1.55rem;
}

.publication-card-tags,
.publication-article-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: 1rem 0;
}

.publication-card-tags span,
.publication-article-tags span {
  padding: .36rem .58rem;
  border: 1px solid rgba(22, 34, 73, .16);
  border-radius: 999px;
  color: var(--navy);
  font-size: .68rem;
  font-weight: 800;
}

.publication-empty-state {
  padding: 2rem;
  border-radius: 22px;
  background: var(--white);
  color: var(--navy);
  text-align: center;
  font-weight: 800;
}

.publication-type-section {
  scroll-margin-top: 100px;
}

.publication-goodnews-band {
  background: var(--navy);
}

.publication-goodnews-band h2 {
  color: var(--white);
}

.publication-goodnews-band .text-link {
  color: var(--yellow);
}

.publication-compact-feature {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  min-height: 420px;
  overflow: hidden;
  border-radius: 30px;
  background: var(--white);
  box-shadow: 0 15px 45px rgba(22, 34, 73, .1);
}

.publication-compact-feature>div:last-child {
  padding: 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.publication-compact-feature h3 {
  font-size: clamp(2rem, 4vw, 3.3rem);
}

.publication-compact-cover {
  min-height: 420px;
}

.publication-goodnews-band .publication-compact-feature {
  background: var(--white);
}

/* Article page */
.publication-article-hero {
  padding: 6rem 0;
  background:
    radial-gradient(circle at 78% 45%, rgba(255, 255, 0, .14), transparent 24%),
    var(--navy);
}

.publication-article-hero-grid {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 4rem;
  align-items: center;
}

.publication-article-hero h1 {
  color: var(--white);
  font-size: clamp(3rem, 7vw, 6rem);
}

.publication-article-hero p {
  max-width: 720px;
  color: rgba(255, 255, 255, .72);
  font-size: 1.1rem;
}

.publication-back-link {
  display: inline-block;
  margin-bottom: 1.5rem;
  color: var(--yellow);
  font-weight: 800;
}

.publication-post-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem 1.2rem;
  margin-top: 1.5rem;
  color: rgba(255, 255, 255, .72);
  font-weight: 700;
}

.publication-article-cover {
  min-height: 540px;
  border-radius: 30px;
  box-shadow: 0 25px 70px rgba(0, 0, 0, .25);
}

.publication-reading-section {
  background: #fbfbfc;
}

.publication-reading-grid {
  display: grid;
  grid-template-columns: minmax(0, 760px) minmax(260px, 340px);
  gap: 4rem;
  justify-content: center;
  align-items: start;
}

.publication-article {
  min-width: 0;
}

.publication-article-content>p,
.publication-lead {
  color: #35405f;
  font-size: 1.08rem;
  line-height: 1.85;
}

.publication-lead {
  font-family: 'Fraunces', Georgia, serif;
  color: var(--navy) !important;
  font-size: 1.45rem !important;
  line-height: 1.55 !important;
}

.publication-article-content h2,
.publication-template-section h2 {
  margin-top: 2.5rem;
  font-size: clamp(2rem, 4vw, 3rem);
}

.publication-scripture-block {
  margin: 2rem 0;
  padding: 2rem 2.2rem;
  border: 0;
  border-left: 5px solid var(--yellow);
  border-radius: 0 24px 24px 0;
  background: var(--navy);
}

.publication-scripture-block p {
  color: var(--white);
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.6rem;
  line-height: 1.45;
}

.publication-scripture-block cite {
  color: var(--yellow);
  font-style: normal;
  font-weight: 900;
}

.publication-callout {
  margin: 2rem 0;
  padding: 2rem;
  border-radius: 26px;
  background: var(--yellow);
  color: var(--navy);
}

.publication-callout span {
  color: var(--red);
  font-size: .74rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.publication-callout h3 {
  font-size: 1.8rem;
}

.publication-callout p {
  margin: 0;
  color: var(--navy);
}

.publication-sidebar {
  position: sticky;
  top: 110px;
  display: grid;
  gap: 1rem;
}

.publication-sidebar-card {
  padding: 1.5rem;
  border: 1px solid rgba(22, 34, 73, .1);
  border-radius: 24px;
  background: var(--white);
}

.publication-sidebar-card dl,
.publication-info-list {
  display: grid;
  gap: 0;
}

.publication-sidebar-card dl div,
.publication-info-list div {
  display: grid;
  gap: .3rem;
  padding: .9rem 0;
  border-bottom: 1px solid rgba(22, 34, 73, .1);
}

.publication-sidebar-card dl div:last-child,
.publication-info-list div:last-child {
  border-bottom: 0;
}

.publication-sidebar-card dt,
.publication-info-list span {
  color: var(--red);
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.publication-sidebar-card dd {
  margin: 0;
  color: var(--navy);
  font-weight: 750;
}

.publication-share-card {
  display: grid;
  gap: 1rem;
}

.publication-template-section {
  margin-top: 4rem;
  padding-top: 3rem;
  border-top: 1px solid rgba(22, 34, 73, .12);
}

.publication-edition-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.publication-edition-card {
  min-height: 260px;
  padding: 1.6rem;
  border-radius: 24px;
}

.edition-yellow {
  background: var(--yellow);
  color: var(--navy);
}

.edition-red {
  background: var(--red);
  color: var(--white);
}

.edition-red h3,
.edition-red p,
.edition-red strong {
  color: var(--white);
}

.edition-red .meta {
  color: var(--yellow);
}

.publication-meditation-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
}

.publication-meditation-grid div {
  padding: 1rem;
  border-radius: 16px;
  background: var(--sky);
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.publication-meditation-grid span {
  color: var(--red);
  font-weight: 900;
}

.publication-meditation-grid strong {
  color: var(--navy);
}

.devotion-response-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.devotion-response-card {
  min-height: 260px;
  padding: 1.5rem;
  border-radius: 24px;
}

.devotion-response-card span {
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.devotion-response-card p {
  color: inherit;
}

.devotion-prayer {
  background: var(--navy);
  color: var(--white);
}

.devotion-prayer span {
  color: var(--yellow);
}

.devotion-declaration {
  background: var(--red);
  color: var(--white);
}

.devotion-declaration span {
  color: var(--yellow);
}

.devotion-action {
  background: var(--yellow);
  color: var(--navy);
}

.devotion-action span {
  color: var(--red);
}

.publication-objective-list,
.publication-discussion-section ul {
  padding-left: 1.4rem;
  color: #35405f;
}

.publication-objective-list li,
.publication-discussion-section li {
  margin-bottom: .8rem;
  line-height: 1.7;
}

.publication-outline-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.publication-outline-grid article {
  min-height: 280px;
  padding: 1.5rem;
  border-radius: 24px;
  background: var(--white);
  border: 1px solid rgba(22, 34, 73, .1);
}

.publication-outline-grid article>span {
  display: block;
  margin-bottom: 2rem;
  color: var(--red);
  font-family: 'Fraunces', Georgia, serif;
  font-size: 2.2rem;
  font-weight: 800;
}

.publication-closing-prayer {
  margin-top: 2rem;
  padding: 1.5rem;
  border-radius: 20px;
  background: var(--sky);
}

.publication-closing-prayer strong {
  color: var(--red);
}

.publication-closing-prayer p {
  margin: .5rem 0 0;
  color: var(--navy);
}

.publication-not-found {
  padding-block: 6rem;
  text-align: center;
}

.publication-not-found p {
  max-width: 600px;
  margin-inline: auto;
}

@media(max-width: 1000px) {
  .publication-post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .publication-article-hero-grid,
  .publication-reading-grid {
    grid-template-columns: 1fr;
  }

  .publication-sidebar {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .publication-outline-grid {
    grid-template-columns: 1fr;
  }
}

@media(max-width: 800px) {

  .publication-featured,
  .publication-compact-feature {
    grid-template-columns: 1fr;
  }

  .publication-featured-cover,
  .publication-compact-cover {
    min-height: 420px;
  }

  .publication-blog-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .publication-search {
    width: 100%;
  }

  .publication-edition-grid,
  .devotion-response-grid {
    grid-template-columns: 1fr;
  }
}

@media(max-width: 620px) {

  .publication-post-grid,
  .publication-sidebar,
  .publication-meditation-grid {
    grid-template-columns: 1fr;
  }

  .publication-featured-copy {
    padding: 2rem;
  }

  .publication-article-hero {
    padding: 4.5rem 0;
  }

  .publication-article-cover {
    min-height: 420px;
  }

  .publication-reading-grid {
    gap: 2rem;
  }
}


/* Merge integration helpers */
.publication-section-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  flex-wrap: wrap;
}

.publication-study-mode-cta {
  margin-top: 2rem;
}

@media(max-width:700px) {
  .publication-section-actions {
    justify-content: flex-start;
  }
}


/* ─── Leadership Section ──────────────────────────────────────────────────── */

.leadership-section {
  background: linear-gradient(160deg, #0e1a3d 0%, #162249 55%, #1c2c5c 100%);
  position: relative;
  overflow: hidden;
}

.leadership-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 10% 20%, rgba(255, 255, 0, .06), transparent 50%),
    radial-gradient(circle at 90% 80%, rgba(215, 38, 30, .10), transparent 45%);
  pointer-events: none;
}

.leadership-section .section-head {
  margin-bottom: 3.5rem;
}

.leadership-section .section-head h2 {
  color: var(--white);
  margin-bottom: .6rem;
}

.leadership-section .section-head p {
  color: rgba(255, 255, 255, .65);
  max-width: 580px;
  font-size: 1.05rem;
  margin: 0;
}

.leadership-section .eyebrow {
  color: var(--yellow);
}

.leadership-section .eyebrow::before {
  background: var(--yellow);
}

.leadership-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 2rem;
}

.leader-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.1rem;
  opacity: 0;
  transform: translateY(28px);
  animation: leaderFadeUp .55s ease forwards;
  animation-delay: calc(var(--i, 0) * 80ms + 100ms);
}

@keyframes leaderFadeUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.leader-photo-wrap {
  position: relative;
  width: 148px;
  height: 148px;
  flex-shrink: 0;
}

.leader-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
  border: 3px solid rgba(255, 255, 255, .12);
  transition: transform .35s ease, border-color .35s ease;
}

.leader-card:hover .leader-photo {
  transform: scale(1.04);
  border-color: transparent;
}

.leader-avatar {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: linear-gradient(135deg, #1c2c5c 0%, #253870 100%);
  border: 3px solid rgba(255, 255, 0, .25);
  display: grid;
  place-items: center;
  transition: border-color .35s ease;
}

.leader-card:hover .leader-avatar {
  border-color: transparent;
}

.leader-avatar span {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--yellow);
  line-height: 1;
  letter-spacing: -.02em;
}

.leader-photo-ring {
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 2px solid transparent;
  background:
    linear-gradient(var(--navy), var(--navy)) padding-box,
    conic-gradient(from 0deg, var(--yellow) 0%, var(--red) 40%, transparent 60%) border-box;
  opacity: 0;
  transform: rotate(-30deg) scale(.85);
  transition: opacity .35s ease, transform .35s ease;
}

.leader-card:hover .leader-photo-ring {
  opacity: 1;
  transform: rotate(0deg) scale(1);
}

.leader-info {
  display: flex;
  flex-direction: column;
  gap: .3rem;
}

.leader-name {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--white);
  line-height: 1.2;
}

.leader-position {
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--yellow);
}

@media (max-width: 768px) {
  .leadership-grid {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 1.5rem;
  }

  .leader-photo-wrap {
    width: 120px;
    height: 120px;
  }

  .leader-avatar span {
    font-size: 1.8rem;
  }
}

@media (max-width: 480px) {
  .leadership-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}


/* Separate Chapels landing page */
.chapel-link-card {
  display: block;
  color: inherit;
}

.chapel-link-card .campus-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.chapel-card-link {
  margin-top: .5rem;
}

.chapel-link-card:hover .chapel-card-link {
  color: var(--red);
}

.chapel-card-grid {
  align-items: stretch;
}


/* ================================================================
   Publications page hierarchy refinement
   ================================================================ */

.publication-devotion-lead {
  background:
    radial-gradient(circle at 86% 42%, rgba(255,255,0,.12), transparent 24%),
    var(--navy);
}

.publication-devotion-lead .section-head h2 {
  color: var(--white);
}

.publication-devotion-lead .section-head .text-link {
  color: var(--yellow);
  border-color: var(--yellow);
}

.publication-devotion-lead .publication-compact-feature {
  box-shadow: 0 22px 60px rgba(0,0,0,.22);
}

.publication-highlights-section {
  background: #f8fafc;
}

.publication-highlights-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}

.publication-highlight-panel {
  min-width: 0;
  padding: 1.5rem;
  border-radius: 30px;
  background: var(--white);
  border: 1px solid rgba(22,34,73,.09);
  box-shadow: 0 12px 34px rgba(22,34,73,.07);
  scroll-margin-top: 100px;
}

.publication-highlight-goodnews {
  border-top: 4px solid var(--yellow);
}

.publication-highlight-school {
  border-top: 4px solid var(--red);
}

.publication-highlight-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.publication-highlight-heading h3 {
  max-width: 520px;
  margin-bottom: 0;
  font-size: clamp(1.65rem, 2.4vw, 2.25rem);
}

.publication-highlight-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .55rem;
  flex: 0 0 auto;
}

.publication-highlight-panel .publication-compact-feature {
  grid-template-columns: 1fr;
  min-height: 0;
  border-radius: 24px;
  box-shadow: none;
  border: 1px solid rgba(22,34,73,.08);
}

.publication-highlight-panel .publication-compact-cover {
  min-height: 260px;
}

.publication-highlight-panel .publication-compact-feature > div:last-child {
  padding: 1.5rem;
}

.publication-highlight-panel .publication-compact-feature h3 {
  font-size: clamp(1.7rem, 2.5vw, 2.35rem);
}

#publication-archive {
  scroll-margin-top: 96px;
}

@media(max-width: 900px) {
  .publication-highlights-grid {
    grid-template-columns: 1fr;
  }

  .publication-highlight-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .publication-highlight-actions {
    align-items: flex-start;
  }
}

@media(max-width: 600px) {
  .publication-highlight-panel {
    padding: 1rem;
  }

  .publication-devotion-lead .section-head {
    gap: 1rem;
  }
}


/* --------------------------------------------------------------------------
   Publication long-form reading alignment
   -------------------------------------------------------------------------- */
/*
   Justify only long-form reading content. Headings, metadata, buttons,
   publication cards and short UI copy keep their natural alignment.
*/
.publication-article-content > p,
.publication-lead,
.pub-main-read p,
.ss-intro-text p,
.ss-scripture-snippet,
.ss-outline-summary,
.ss-outline-points li,
.ss-question-hint,
.ss-teacher-box li,
.ss-app-content p {
  text-align: justify;
  text-justify: inter-word;
  text-align-last: left;
  hyphens: auto;
  overflow-wrap: break-word;
}

/* Keep intentionally styled quotation/callout elements readable rather than
   forcing short lines into full justification. */
.publication-scripture-block p,
.publication-callout p,
.devotion-response-card p,
.ss-verse-quote p,
.ss-golden-text p,
.ss-insight-box {
  text-align: left;
  text-align-last: auto;
}

/* Very narrow screens can develop excessive word spacing with justified copy.
   Use normal reading alignment there while retaining justification on larger
   phones, tablets and desktops. */
@media (max-width: 480px) {
  .publication-article-content > p,
  .publication-lead,
  .pub-main-read p,
  .ss-intro-text p,
  .ss-scripture-snippet,
  .ss-outline-summary,
  .ss-outline-points li,
  .ss-question-hint,
  .ss-teacher-box li,
  .ss-app-content p {
    text-align: left;
    text-align-last: auto;
  }
}

/* Future feature / unavailable action state */
.coming-soon-btn,
.coming-soon-link {
  cursor: not-allowed;
  pointer-events: none;
  opacity: .68;
  user-select: none;
}

.coming-soon-btn {
  filter: saturate(.65);
}

.coming-soon-link {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}

/* Repository/navigation cleanup: disabled future-action state */
.coming-soon-quick-link {
  cursor: default;
  opacity: .72;
}

.coming-soon-quick-link:hover {
  transform: none;
}

/* ==========================================================================
   CSS / UI STANDARDIZATION LAYER
   Keeps the existing visual identity while enforcing shared component rules.
   ========================================================================== */

html {
  color-scheme: light;
}

body {
  font-size: var(--text-base);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

button,
input,
select,
textarea {
  font: inherit;
}

button,
.btn,
.calendar-control,
.menu-btn,
.nav-submenu-toggle {
  -webkit-tap-highlight-color: transparent;
}

button:not(:disabled),
.btn:not([aria-disabled="true"]),
.calendar-control:not(:disabled),
.menu-btn:not(:disabled),
.nav-submenu-toggle:not(:disabled) {
  cursor: pointer;
}

:focus-visible {
  outline: 3px solid var(--yellow);
  outline-offset: 3px;
}

.btn {
  min-height: var(--control-height);
  padding: .8rem 1.35rem;
  border-radius: var(--radius-pill);
  line-height: 1.2;
  text-align: center;
  transition:
    transform var(--transition-base),
    background-color var(--transition-base),
    border-color var(--transition-base),
    color var(--transition-base),
    box-shadow var(--transition-base);
}

.btn:hover {
  box-shadow: var(--shadow-sm);
}

.btn:active {
  transform: translateY(0);
}

.btn[disabled],
.btn[aria-disabled="true"],
.coming-soon-btn {
  cursor: not-allowed;
  pointer-events: none;
  opacity: .62;
  filter: saturate(.55);
  transform: none;
  box-shadow: none;
}

.section {
  padding-block: var(--section-space);
}

.section-head {
  margin-bottom: clamp(1.75rem, 4vw, 2.5rem);
}

.card,
.quick-link {
  border-color: var(--border-subtle);
  box-shadow: var(--shadow-xs);
  transition:
    transform var(--transition-base),
    border-color var(--transition-base),
    background-color var(--transition-base),
    color var(--transition-base),
    box-shadow var(--transition-base);
}

.card:hover,
.quick-link:hover {
  box-shadow: var(--shadow-md);
}

.footer-brand {
  color: var(--white);
  margin-bottom: var(--space-4);
}

.footer a {
  transition: color var(--transition-fast);
}

input,
select,
textarea {
  color: var(--ink);
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid rgba(255, 255, 0, .72);
  outline-offset: 2px;
}

.coming-soon-quick-link {
  opacity: .68;
  pointer-events: none;
  user-select: none;
}

@media (max-width: 900px) {
  .section-head {
    align-items: flex-start;
  }
}

@media (max-width: 600px) {
  .btn {
    min-height: 44px;
  }

  .section-head {
    gap: var(--space-4);
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Homepage conditional live-stream experience */
.hero-slideshow.is-live {
  text-align: left;
}

.hero-slideshow .hero-centered-inner.is-live {
  max-width: 1200px;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 4.5rem);
}

.hero-slideshow .hero-centered-inner.is-live .hero-copy-block h1,
.hero-slideshow .hero-centered-inner.is-live .hero-copy-block p {
  margin-inline: 0;
}

.hero-slideshow .hero-centered-inner.is-live .hero-actions {
  justify-content: flex-start;
}

.hero-live-panel {
  position: relative;
  z-index: 1;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: var(--radius-xl);
  background: rgba(8, 15, 38, .78);
  box-shadow: var(--shadow-lg);
  backdrop-filter: blur(16px);
}

.hero-live-head,
.hero-live-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .95rem 1.1rem;
}

.hero-live-head strong {
  color: var(--white);
}

.hero-live-status {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: var(--white);
  font-size: var(--text-sm);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.hero-live-dot {
  width: .62rem;
  height: .62rem;
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 0 0 rgba(215, 38, 30, .55);
  animation: live-dot-pulse 1.8s ease-out infinite;
}

.hero-live-frame {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #000;
}

.hero-live-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.hero-live-footer {
  color: rgba(255, 255, 255, .7);
  font-size: var(--text-sm);
}

.hero-live-youtube-link {
  color: var(--yellow);
  white-space: nowrap;
}

@keyframes live-dot-pulse {
  0% { box-shadow: 0 0 0 0 rgba(215, 38, 30, .55); }
  70% { box-shadow: 0 0 0 .55rem rgba(215, 38, 30, 0); }
  100% { box-shadow: 0 0 0 0 rgba(215, 38, 30, 0); }
}

@media (max-width: 920px) {
  .hero-slideshow .hero-centered-inner.is-live {
    grid-template-columns: 1fr;
    max-width: 780px;
  }

  .hero-slideshow.is-live {
    text-align: center;
  }

  .hero-slideshow .hero-centered-inner.is-live .hero-copy-block h1,
  .hero-slideshow .hero-centered-inner.is-live .hero-copy-block p {
    margin-inline: auto;
  }

  .hero-slideshow .hero-centered-inner.is-live .hero-actions {
    justify-content: center;
  }
}

@media (max-width: 600px) {
  .hero-live-head,
  .hero-live-footer {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-live-dot {
    animation: none;
  }
}

/* About page: editorial / newspaper story treatment */
.about-story-wrap {
  max-width: 1040px;
  margin-inline: auto;
}

.about-story-wrap > h2 {
  max-width: 760px;
  margin-bottom: 1.35rem;
}

.about-story-body {
  display: flow-root;
  font-size: 1.05rem;
}

.about-story-body p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  line-height: 1.86;
  margin: 0 0 1.2rem;
}

.about-story-body p:first-of-type::first-letter {
  float: left;
  margin: .08em .12em 0 0;
  color: var(--red);
  font-family: 'Fraunces', serif;
  font-size: 3.5em;
  font-weight: 700;
  line-height: .78;
}

.about-pull-quote {
  float: right;
  width: min(42%, 400px);
  margin: .15rem 0 1.1rem 2rem;
  padding: 1.5rem 1.6rem 1.45rem;
  border: 0;
  border-top: 5px solid var(--yellow);
  border-bottom: 1px solid rgba(22, 34, 73, .18);
  border-radius: var(--radius-md);
  background:
    linear-gradient(145deg, rgba(214, 231, 244, .92), rgba(255, 255, 255, .98));
  box-shadow: var(--shadow-sm);
  color: var(--navy);
  font-family: 'Fraunces', serif;
  font-size: clamp(1.35rem, 2.2vw, 1.9rem);
  font-style: italic;
  font-weight: 650;
  line-height: 1.35;
  text-align: left;
}

.about-pull-quote::before {
  content: "✦";
  display: block;
  margin-bottom: .45rem;
  color: var(--red);
  font-family: inherit;
  font-size: .9rem;
  font-style: normal;
  letter-spacing: .08em;
}

@media (max-width: 760px) {
  .about-story-body p {
    text-align: left;
    hyphens: none;
  }

  .about-pull-quote {
    float: none;
    width: auto;
    margin: 1.35rem 0 1.5rem;
  }

  .about-story-body p:first-of-type::first-letter {
    font-size: 3em;
  }
}

/* Chapel page standardization: sermons + social continuity */
.chapel-sermons-section {
  background:
    radial-gradient(circle at top right, rgba(214, 231, 244, .55), transparent 34%),
    var(--white);
}

.chapel-sermons-grid:empty {
  display: none;
}

.chapel-sermons-empty {
  padding: 1.25rem 1.4rem;
  border: 1px dashed rgba(22, 34, 73, .22);
  border-radius: var(--radius);
  background: var(--sky);
  color: var(--muted);
  line-height: 1.65;
}

.sermon-chapel-tag {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-bottom: .55rem;
  padding: .28rem .6rem;
  border-radius: 999px;
  background: rgba(22, 34, 73, .08);
  color: var(--navy);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.chapel-social-empty {
  grid-column: 1 / -1;
}

@media (max-width: 700px) {
  .chapel-sermons-all-link {
    width: 100%;
    justify-content: center;
  }
}


/* Multi-Chapel Broadcast Foundation */
.live-pulse-dot{display:inline-block;width:.62rem;height:.62rem;border-radius:50%;background:var(--red);box-shadow:0 0 0 0 rgba(215,38,30,.5);animation:livePulse 1.7s ease-out infinite}
@keyframes livePulse{70%{box-shadow:0 0 0 .55rem rgba(215,38,30,0)}100%{box-shadow:0 0 0 0 rgba(215,38,30,0)}}
.nav-live-now{display:inline-flex!important;align-items:center;gap:.45rem;color:var(--yellow)!important;font-weight:800!important}
.broadcast-channel-pills,.broadcast-live-tabs{display:flex;gap:.65rem;flex-wrap:wrap;margin-bottom:1.5rem}
.broadcast-channel-pill,.broadcast-live-tab{display:inline-flex;align-items:center;gap:.5rem;border:1px solid rgba(22,34,73,.18);border-radius:999px;background:var(--white);color:var(--navy);padding:.65rem 1rem;font:inherit;font-size:.86rem;font-weight:800;cursor:pointer}
.broadcast-channel-pill.active,.broadcast-live-tab.active{background:var(--navy);color:var(--white)}
.broadcast-inline{display:grid;grid-template-columns:minmax(340px,1.1fr) minmax(0,.9fr);gap:clamp(1.5rem,4vw,3rem);align-items:center;padding:clamp(1rem,3vw,1.5rem);border:1px solid rgba(22,34,73,.12);border-radius:var(--radius-xl);background:var(--white);box-shadow:var(--shadow-sm)}
.broadcast-inline-player{aspect-ratio:16/9;overflow:hidden;border-radius:var(--radius-lg);background:#080d1d}.broadcast-inline-player iframe{width:100%;height:100%;border:0}
.broadcast-player-empty{width:100%;height:100%;min-height:240px;display:grid;place-items:center;align-content:center;gap:.5rem;padding:2rem;text-align:center;background:linear-gradient(145deg,#10162f,#162249);color:var(--white)}
.broadcast-player-empty span{color:var(--yellow);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.broadcast-card-topline{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.7rem}.broadcast-state-badge{display:inline-flex;align-items:center;gap:.5rem;width:fit-content;padding:.38rem .72rem;border-radius:999px;background:rgba(22,34,73,.08);font-size:.72rem;font-weight:900;letter-spacing:.06em}.broadcast-countdown{color:var(--muted);font-size:.82rem;font-weight:700}
.broadcast-card{padding:1.35rem;border:1px solid rgba(22,34,73,.12);border-radius:var(--radius-lg);background:var(--white);box-shadow:var(--shadow-sm)}
.sermon-live-section{background:linear-gradient(180deg,rgba(214,231,244,.55),rgba(255,255,255,0))}
@media(max-width:900px){.broadcast-inline{grid-template-columns:1fr}}@media(max-width:600px){.broadcast-channel-pills,.broadcast-live-tabs{flex-wrap:nowrap;overflow-x:auto}.broadcast-channel-pill,.broadcast-live-tab{white-space:nowrap}.broadcast-card-topline{flex-direction:column}}@media(prefers-reduced-motion:reduce){.live-pulse-dot{animation:none}}

