:root {
  --ink: #071a2b;
  --ink-deep: #04111d;
  --blue: #0c2b49;
  --blue-bright: #134f7c;
  --sky: #dbe8ef;
  --paper: #f5f1e8;
  --paper-warm: #eee7d9;
  --white: #fffef9;
  --gold: #d6ae57;
  --gold-soft: #e8d5a3;
  --coral: #b95443;
  --harvest-plum: #260a35;
  --harvest-purple: #4e135e;
  --harvest-cream: #f3e8cf;
  --text: #102131;
  --muted: #65717a;
  --line: rgba(7, 26, 43, 0.17);
  --line-light: rgba(255, 255, 255, 0.2);
  --font-display: "Bodoni Moda", Georgia, serif;
  --font-body: "Manrope", Arial, sans-serif;
  --shell: 1240px;
  --gutter: clamp(1.25rem, 3.5vw, 4.5rem);
  --header-height: 88px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --shadow: 0 32px 100px rgba(1, 12, 21, 0.24);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--header-height);
}

body {
  margin: 0;
  min-width: 320px;
  overflow-x: clip;
  background: var(--paper);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

body.menu-open {
  overflow: hidden;
}

main,
section {
  position: relative;
}

img,
picture,
iframe {
  display: block;
  max-width: 100%;
}

img {
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
textarea {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 4px;
}

::selection {
  background: var(--gold);
  color: var(--ink);
}

.shell {
  width: min(var(--shell), calc(100% - var(--gutter) - var(--gutter)));
  margin-inline: auto;
}

.shell-wide {
  width: min(1500px, calc(100% - var(--gutter) - var(--gutter)));
  margin-inline: auto;
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.skip-link {
  position: fixed;
  z-index: 9999;
  top: 1rem;
  left: 1rem;
  padding: 0.7rem 1rem;
  transform: translateY(-180%);
  background: var(--white);
  color: var(--ink);
  font-weight: 700;
  transition: transform 180ms ease;
}

.skip-link:focus {
  transform: translateY(0);
}

.eyebrow,
.section-index {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  line-height: 1.3;
  text-transform: uppercase;
}

.section-index {
  color: var(--muted);
}

.section-index-light {
  color: rgba(255, 255, 255, 0.55);
}

.display-xxl,
.display-xl,
.display-lg {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 0.93;
}

.display-xxl {
  font-size: clamp(4.5rem, 11vw, 10rem);
}

.display-xl {
  font-size: clamp(3.7rem, 8.5vw, 8.2rem);
}

.display-lg {
  font-size: clamp(3.2rem, 7vw, 7rem);
}

.display-xxl em,
.display-xl em,
.display-lg em {
  color: var(--gold);
  font-weight: 400;
}

.lead {
  max-width: 38rem;
  font-size: clamp(1.12rem, 1.6vw, 1.4rem);
  line-height: 1.65;
}

.button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.85rem 1.35rem;
  border: 1px solid transparent;
  border-radius: 999px;
  cursor: pointer;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
  transition: color 300ms ease, background-color 300ms ease, border-color 300ms ease, transform 300ms var(--ease);
}

.button:hover {
  transform: translateY(-2px);
}

.button-light {
  background: var(--white);
  color: var(--ink);
}

.button-light:hover {
  background: var(--gold-soft);
}

.button-dark {
  background: var(--ink);
  color: var(--white);
}

.button-dark:hover {
  background: var(--blue-bright);
}

.button-gold {
  background: var(--gold);
  color: var(--ink);
}

.button-gold:hover {
  background: var(--gold-soft);
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding-block: 0.35rem;
  border-bottom: 1px solid currentColor;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
  transition: gap 300ms var(--ease), opacity 300ms ease;
}

.text-link:hover {
  gap: 1rem;
  opacity: 0.7;
}

.text-link-light {
  color: var(--white);
}

.text-link-large {
  margin-top: 1.5rem;
  font-size: 0.9rem;
}

.inline-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.5rem;
}

.reveal {
  opacity: 0;
  transform: translateY(44px);
  transition: opacity 900ms var(--ease), transform 900ms var(--ease);
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* HEADER */
.site-header {
  position: fixed;
  z-index: 1000;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--header-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding-inline: var(--gutter);
  color: var(--white);
  transition: height 350ms var(--ease), background-color 350ms ease, box-shadow 350ms ease;
}

.site-header.is-scrolled,
.site-header-solid {
  height: 74px;
  background: rgba(4, 17, 29, 0.96);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.09);
  backdrop-filter: blur(14px);
}

.brand {
  position: relative;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
}

.brand-logo {
  width: clamp(178px, 16.5vw, 238px);
  height: auto;
  display: block;
  filter: drop-shadow(0 2px 9px rgba(0, 0, 0, 0.18));
}

.header-scripture {
  display: none;
}

.brand-mark {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  color: var(--gold-soft);
  font-family: var(--font-display);
  font-size: 1.45rem;
  line-height: 1;
}

.brand-copy {
  display: grid;
  gap: 0.05rem;
  line-height: 1.1;
}

.brand-copy strong {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 500;
  letter-spacing: 0.01em;
}

.brand-copy small {
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.57rem;
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: clamp(0.9rem, 1.7vw, 1.8rem);
}

.site-nav > a:not(.nav-cta) {
  position: relative;
  padding-block: 0.4rem;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.67rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transition: color 200ms ease;
}

.site-nav > a:not(.nav-cta)::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  transform: scaleX(0);
  background: var(--gold);
  transition: transform 300ms var(--ease);
}

.site-nav > a:hover,
.site-nav > a[aria-current="page"] {
  color: var(--white);
}

.site-nav > a:hover::after,
.site-nav > a[aria-current="page"]::after {
  transform: scaleX(1);
}

.nav-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.7rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 999px;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: background-color 250ms ease, color 250ms ease;
}

.nav-cta:hover {
  background: var(--white);
  color: var(--ink);
}

.menu-toggle {
  position: relative;
  z-index: 3;
  width: 46px;
  height: 46px;
  display: none;
  place-items: center;
  border: 0;
  background: transparent;
  color: white;
  cursor: pointer;
}

.menu-toggle > span:not(.sr-only) {
  position: absolute;
  width: 25px;
  height: 1px;
  background: currentColor;
  transition: transform 300ms var(--ease), top 300ms var(--ease);
}

/* Optional visitor-controlled site soundtrack. Browsers require the first
   play to follow a visitor gesture, so this control is intentionally visible. */
.soundtrack-toggle {
  position: fixed;
  z-index: 900;
  right: var(--gutter);
  bottom: max(1rem, env(safe-area-inset-bottom));
  min-width: 190px;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.65rem;
  padding: 0.48rem 0.65rem 0.48rem 0.48rem;
  border: 1px solid rgba(230, 198, 111, 0.48);
  border-radius: 999px;
  background: rgba(4, 17, 29, 0.9);
  box-shadow: 0 12px 38px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(14px);
  color: var(--white);
  cursor: pointer;
  transition: border-color 200ms ease, background-color 200ms ease, transform 200ms ease;
}

.soundtrack-toggle:hover {
  border-color: var(--gold);
  background: rgba(8, 28, 45, 0.96);
  transform: translateY(-2px);
}

.soundtrack-note {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--gold-soft);
  color: var(--ink-deep);
  font-family: var(--font-display);
  font-size: 1.3rem;
  line-height: 1;
}

.soundtrack-copy {
  min-width: 0;
  display: grid;
  gap: 0.06rem;
  text-align: left;
}

.soundtrack-copy small,
.soundtrack-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.soundtrack-copy small {
  color: rgba(255, 255, 255, 0.56);
  font-size: 0.52rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.soundtrack-copy strong {
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 500;
  line-height: 1.05;
}

.soundtrack-state {
  color: var(--gold-soft);
  font-size: 0.55rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.soundtrack-toggle.is-playing .soundtrack-note {
  animation: soundtrack-pulse 1.5s ease-in-out infinite;
}

@keyframes soundtrack-pulse {
  50% { box-shadow: 0 0 0 6px rgba(230, 198, 111, 0.14); }
}

.menu-toggle > span:nth-child(2) {
  top: 18px;
}

.menu-toggle > span:nth-child(3) {
  top: 28px;
}

.menu-toggle[aria-expanded="true"] > span:nth-child(2) {
  top: 23px;
  transform: rotate(45deg);
}

.menu-toggle[aria-expanded="true"] > span:nth-child(3) {
  top: 23px;
  transform: rotate(-45deg);
}

/* HERO */
.hero {
  min-height: 760px;
  height: 100svh;
  overflow: hidden;
  background: var(--ink-deep);
  color: var(--white);
}

.hero-media,
.hero-shade,
.hero-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero-media img {
  object-fit: cover;
  object-position: center 36%;
  top: -8%;
  bottom: auto;
  height: 118%;
  transform: scale(calc(1.055 + (var(--hero-progress, 0) * 0.055)));
  filter: saturate(0.86) contrast(1.06);
  will-change: transform;
}

.hero-shade {
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(2, 10, 17, 0.64) 0%, rgba(2, 10, 17, 0.04) 28%, rgba(2, 10, 17, 0.25) 58%, rgba(2, 10, 17, 0.91) 100%),
    linear-gradient(90deg, rgba(2, 10, 17, 0.45) 0%, transparent 54%);
}

.hero-content {
  position: relative;
  z-index: 2;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-block: calc(var(--header-height) + 4rem) 7.5rem;
}

.hero-eyebrow {
  position: absolute;
  top: 19%;
  left: 0;
  color: var(--gold-soft);
}

.hero h1 {
  max-width: 12ch;
  margin: 0 0 3.3rem;
  font-family: var(--font-display);
  font-size: clamp(4.25rem, 9.6vw, 9.8rem);
  font-weight: 500;
  letter-spacing: -0.055em;
  line-height: 0.78;
  text-wrap: balance;
}

.hero-title-name {
  display: block;
  color: var(--gold-soft);
  font-size: 0.64em;
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1.2;
}

.hero-title-rest {
  display: block;
}

.hero-bottom {
  display: grid;
  grid-template-columns: 0.72fr 1.1fr auto;
  align-items: end;
  gap: clamp(1.5rem, 4vw, 5rem);
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.38);
}

.hero-location {
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.hero-intro {
  max-width: 33rem;
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: clamp(0.96rem, 1.4vw, 1.18rem);
  line-height: 1.6;
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: 1.3rem;
}

.hero-service {
  position: absolute;
  z-index: 2;
  top: 24%;
  right: var(--gutter);
  display: grid;
  gap: 0.2rem;
  text-align: right;
  text-transform: uppercase;
}

.hero-service span {
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.hero-service strong {
  font-family: var(--font-display);
  font-size: 1.45rem;
  font-weight: 500;
  letter-spacing: 0.02em;
}

.scroll-cue {
  position: absolute;
  z-index: 2;
  right: var(--gutter);
  bottom: 2.6rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.scroll-cue i {
  position: relative;
  width: 1px;
  height: 38px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.3);
}

.scroll-cue i::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--white);
  animation: scroll-line 2.2s ease-in-out infinite;
}

@keyframes scroll-line {
  0% { transform: translateY(-100%); }
  60%, 100% { transform: translateY(100%); }
}

/* OPENING STATEMENT */
.opening-statement {
  padding-block: clamp(7rem, 14vw, 13rem);
  background: var(--paper);
}

.statement-grid {
  display: grid;
  grid-template-columns: minmax(130px, 0.36fr) 1.64fr;
  gap: 4rem;
}

.statement-grid .display-xl {
  color: var(--ink);
}

.statement-copy {
  max-width: 47rem;
  margin: 4rem 0 0 auto;
  font-size: clamp(1.05rem, 1.55vw, 1.35rem);
  line-height: 1.85;
}

/* VISIT */
.visit-section {
  padding-block: clamp(6rem, 11vw, 10rem);
  background: var(--white);
}

.visit-heading {
  display: grid;
  grid-template-columns: minmax(130px, 0.36fr) 1.64fr;
  gap: 4rem;
}

.visit-core {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin-top: clamp(4rem, 8vw, 7rem);
  border-block: 1px solid var(--line);
}

.visit-time,
.visit-address {
  min-height: 360px;
  padding-block: clamp(2.4rem, 5vw, 4.5rem);
}

.visit-time {
  display: flex;
  align-items: flex-end;
  gap: 2rem;
  padding-right: clamp(2rem, 5vw, 5rem);
  border-right: 1px solid var(--line);
}

.giant-day {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(5.2rem, 11vw, 10rem);
  font-weight: 600;
  letter-spacing: -0.08em;
  line-height: 0.7;
}

.visit-time p,
.visit-address p {
  margin: 0;
}

.visit-time p {
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.visit-time strong {
  display: block;
  margin-top: 0.35rem;
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 4rem);
  font-weight: 500;
  line-height: 1;
}

.visit-address {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 2.2rem;
  padding-left: clamp(2rem, 5vw, 5rem);
}

.visit-address > p {
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.6vw, 3.6rem);
  letter-spacing: -0.035em;
  line-height: 1.13;
}

.visit-address small {
  max-width: 35rem;
  color: var(--muted);
  font-size: 0.75rem;
  line-height: 1.6;
}

.first-visit {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: clamp(3rem, 8vw, 8rem);
  margin-top: clamp(6rem, 11vw, 11rem);
}

.visit-visuals {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  align-items: end;
  gap: clamp(1rem, 2vw, 2rem);
  margin-top: clamp(5rem, 9vw, 9rem);
}

.visit-visual {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: var(--sky);
}

.visit-visual-exterior {
  min-height: 700px;
}

.visit-visual-welcome {
  min-height: 510px;
  margin-bottom: 5rem;
}

.visit-visual img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  object-fit: cover;
  filter: saturate(0.88) contrast(1.03);
  transition: transform 1.1s var(--ease), filter 500ms ease;
}

.visit-visual:hover img {
  transform: scale(1.03);
  filter: saturate(1) contrast(1.02);
}

.visit-visual figcaption {
  position: absolute;
  right: 1.25rem;
  bottom: 1.1rem;
  left: 1.25rem;
  color: var(--white);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.75);
  text-transform: uppercase;
}

.first-visit-intro {
  align-self: start;
  position: sticky;
  top: 130px;
}

.first-visit-intro h3 {
  margin: 1.4rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 5vw, 5rem);
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 0.98;
}

.visitor-notes {
  counter-reset: visitor;
}

.visitor-notes article {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 0 1.5rem;
  padding-block: 2.5rem;
  border-top: 1px solid var(--line);
}

.visitor-notes article:last-child {
  border-bottom: 1px solid var(--line);
}

.visitor-notes span {
  grid-row: 1 / span 2;
  color: var(--gold);
  font-size: 0.7rem;
  font-weight: 700;
}

.visitor-notes h4 {
  margin: 0 0 0.7rem;
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 2.5vw, 2.4rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.1;
}

.visitor-notes p {
  max-width: 33rem;
  margin: 0;
  color: var(--muted);
}

/* BLUE INTERLUDE */
.blue-interlude {
  min-height: 92svh;
  display: grid;
  align-items: center;
  overflow: hidden;
  background: var(--blue);
  color: var(--white);
}

.blue-interlude .shell {
  position: relative;
  z-index: 1;
  padding-block: 8rem;
}

.blue-interlude .eyebrow {
  margin-bottom: 3rem;
  color: var(--gold-soft);
}

.interlude-line {
  max-width: 10.8ch;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(3.6rem, 8vw, 8.4rem);
  font-weight: 400;
  letter-spacing: -0.05em;
  line-height: 0.98;
}

.interlude-line em {
  color: var(--gold);
  font-weight: 400;
}

.interlude-orbit {
  position: absolute;
  right: -7vw;
  bottom: -10vw;
  width: 48vw;
  height: 48vw;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 50%;
  color: rgba(255, 255, 255, 0.07);
  font-family: var(--font-display);
  font-size: 6vw;
  letter-spacing: 0.03em;
  white-space: nowrap;
  transform: rotate(-18deg);
}

/* SHEPHERD FEATURE */
.shepherd-feature {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100svh;
  background: var(--paper-warm);
}

.shepherd-portrait {
  position: relative;
  min-height: 820px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--sky);
}

.shepherd-portrait::before {
  content: "";
  position: absolute;
  width: min(75%, 570px);
  aspect-ratio: 1;
  border: 1px solid rgba(7, 26, 43, 0.16);
  border-radius: 50%;
}

.shepherd-portrait img {
  position: relative;
  z-index: 1;
  width: min(76%, 630px);
  aspect-ratio: 4 / 3;
  object-fit: cover;
  box-shadow: var(--shadow);
  filter: saturate(0.82) contrast(1.03);
}

.shepherd-portrait p {
  position: absolute;
  z-index: 2;
  right: 2rem;
  bottom: 2rem;
  margin: 0;
  color: var(--ink);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
}

.shepherd-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(5rem, 9vw, 10rem) clamp(2rem, 7vw, 8rem);
}

.shepherd-copy h2 {
  margin-top: 2.5rem;
}

.shepherd-copy .lead {
  margin: clamp(2.5rem, 5vw, 5rem) 0 0;
}

.shepherd-copy .detail {
  max-width: 33rem;
  margin: 1.5rem 0 0;
  color: var(--muted);
}

/* WORSHIP SCENE */
.worship-scene {
  min-height: 280svh;
  background: var(--ink-deep);
  color: var(--white);
}

.worship-sticky {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
}

.worship-sticky img,
.worship-vignette {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.worship-sticky img {
  object-fit: cover;
  object-position: center 38%;
  top: -8%;
  bottom: auto;
  height: 118%;
  transform: scale(calc(1.02 + (var(--worship-progress, 0) * 0.08)));
  filter: saturate(0.68) contrast(1.08);
  will-change: transform;
}

.worship-vignette {
  background: linear-gradient(90deg, rgba(2, 10, 17, 0.85), rgba(2, 10, 17, 0.12) 55%, rgba(2, 10, 17, 0.4)), linear-gradient(0deg, rgba(2, 10, 17, 0.76), transparent 48%);
}

.worship-label {
  position: absolute;
  right: var(--gutter);
  bottom: 2rem;
  margin: 0;
  color: rgba(255, 255, 255, 0.58);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.worship-beats {
  position: relative;
  z-index: 2;
  margin-top: -100svh;
  pointer-events: none;
}

.worship-beat {
  min-height: 91svh;
  display: flex;
  align-items: center;
}

.worship-beat p {
  max-width: 10ch;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(4rem, 9vw, 9rem);
  letter-spacing: -0.055em;
  line-height: 0.93;
}

.worship-beat span {
  display: block;
  color: var(--gold-soft);
  font-style: italic;
}

/* OUTREACH FEATURE */
.outreach-feature {
  padding-block: clamp(7rem, 12vw, 12rem);
  overflow: hidden;
  background: var(--paper-warm);
}

.outreach-feature-grid {
  display: grid;
  grid-template-columns: 0.78fr 1.22fr;
  align-items: center;
  gap: clamp(4rem, 8vw, 9rem);
}

.outreach-copy .eyebrow {
  margin-top: 3.5rem;
  color: var(--coral);
}

.outreach-copy h2 {
  margin-top: 1.5rem;
}

.outreach-copy .lead {
  max-width: 34rem;
  margin-top: 2.5rem;
}

.outreach-collage {
  min-height: 820px;
  display: grid;
  grid-template-columns: 1.05fr 0.68fr;
  grid-template-rows: 1fr 0.78fr 0.72fr;
  gap: clamp(0.7rem, 1.3vw, 1.25rem);
}

.outreach-photo {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: var(--sky);
}

.outreach-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.9) contrast(1.03);
  transition: transform 1s var(--ease), filter 500ms ease;
}

.outreach-photo:hover img {
  transform: scale(1.035);
  filter: saturate(1) contrast(1.02);
}

.outreach-photo-main {
  grid-row: 1 / span 2;
}

.outreach-photo-handoff {
  grid-row: 1;
}

.outreach-photo-prep {
  grid-row: 2 / span 2;
}

.outreach-photo-load {
  grid-row: 3;
}

/* MINISTRIES */
.ministries-section {
  padding-block: clamp(7rem, 12vw, 12rem);
  overflow: hidden;
  background: var(--blue);
  color: var(--white);
}

.ministries-heading {
  display: grid;
  grid-template-columns: minmax(130px, 0.36fr) 1.64fr;
  gap: 4rem;
}

.ministry-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(1rem, 2vw, 2rem);
  margin-top: clamp(5rem, 9vw, 9rem);
}

.ministry-panel {
  position: relative;
  min-height: 560px;
  overflow: hidden;
  background: var(--ink);
}

.ministry-panel:nth-child(2),
.ministry-panel:nth-child(3) {
  min-height: 420px;
}

.ministry-panel img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.78) contrast(1.08);
  transition: transform 1.1s var(--ease), filter 500ms ease;
}

.ministry-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 48%, rgba(2, 10, 17, 0.86));
}

.ministry-panel:hover img {
  transform: scale(1.035);
  filter: saturate(0.95) contrast(1.04);
}

.ministry-panel > div {
  position: absolute;
  z-index: 1;
  right: 1.6rem;
  bottom: 1.5rem;
  left: 1.6rem;
}

.ministry-panel span {
  font-family: var(--font-display);
  font-size: clamp(2.1rem, 4vw, 4.3rem);
  letter-spacing: -0.045em;
  line-height: 0.95;
}

.ministry-panel p {
  margin: 0.55rem 0 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* MUSIC */
.music-section {
  padding-block: clamp(7rem, 12vw, 12rem);
  overflow: clip;
  background: var(--ink-deep);
  color: var(--white);
}

.music-intro {
  display: grid;
  grid-template-columns: minmax(130px, 0.34fr) 1.18fr 0.48fr;
  align-items: end;
  gap: 3rem;
}

.music-intro h2 {
  grid-column: 2;
}

.music-lead {
  grid-column: 3;
  margin: 0 0 0.7rem;
  color: rgba(255, 255, 255, 0.65);
  font-size: 1.02rem;
}

.music-story {
  display: grid;
  grid-template-columns: minmax(360px, 0.96fr) 1.04fr;
  gap: clamp(4rem, 9vw, 9rem);
  margin-top: clamp(7rem, 13vw, 13rem);
}

.music-art-stack {
  position: sticky;
  top: 12svh;
  height: 76svh;
  min-height: 560px;
  align-self: start;
}

.album-art {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  opacity: 0;
  transform: scale(0.88) rotate(-3deg);
  transition: opacity 700ms ease, transform 900ms var(--ease);
}

.album-art.is-active {
  opacity: 1;
  transform: scale(1) rotate(0deg);
}

.album-art img {
  width: min(100%, 680px);
  aspect-ratio: 1;
  object-fit: cover;
  box-shadow: 0 40px 130px rgba(0, 0, 0, 0.58);
}

.album-art span {
  position: absolute;
  right: 0;
  bottom: 1rem;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.16em;
}

.release-panel {
  min-height: 92svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: 5rem;
  border-top: 1px solid var(--line-light);
}

.release-panel:last-child {
  border-bottom: 1px solid var(--line-light);
}

.release-panel .eyebrow {
  color: var(--gold-soft);
}

.release-panel h3 {
  margin: 1.3rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(3.4rem, 5vw, 5.8rem);
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 0.92;
}

.release-meta {
  margin: 1.2rem 0 0;
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.track-list {
  margin: 2.6rem 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line-light);
}

.track-list li {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) 42px;
  align-items: center;
  gap: 1rem;
  padding-block: 0.8rem;
  border-bottom: 1px solid var(--line-light);
  color: rgba(255, 255, 255, 0.84);
}

.track-number {
  color: var(--gold);
  font-size: 0.68rem;
  font-weight: 700;
}

.track-title {
  min-width: 0;
  color: rgba(255, 255, 255, 0.84);
}

.track-preview {
  --preview-progress: 0deg;
  position: relative;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 50%;
  background:
    radial-gradient(circle at center, var(--ink) 63%, transparent 65%),
    conic-gradient(var(--gold) var(--preview-progress), rgba(255, 255, 255, 0.08) 0deg);
  color: var(--white);
  cursor: pointer;
  transition: border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.track-preview::before {
  content: "";
  width: 0;
  height: 0;
  margin-left: 0.15rem;
  border-top: 0.34rem solid transparent;
  border-bottom: 0.34rem solid transparent;
  border-left: 0.5rem solid currentColor;
}

.track-preview:hover {
  border-color: var(--gold);
  color: var(--gold-soft);
  transform: scale(1.05);
}

.track-preview.is-playing::before {
  width: 0.58rem;
  height: 0.72rem;
  margin-left: 0;
  border: 0;
  background: linear-gradient(90deg, currentColor 0 30%, transparent 30% 70%, currentColor 70% 100%);
}

.track-preview.is-loading::before {
  width: 0.7rem;
  height: 0.7rem;
  margin-left: 0;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: preview-spin 700ms linear infinite;
}

.preview-credit {
  margin: 0.85rem 0 0;
  color: rgba(255, 255, 255, 0.44);
  font-size: 0.62rem;
  letter-spacing: 0.06em;
}

@keyframes preview-spin {
  to { transform: rotate(1turn); }
}

.stream-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1.8rem;
  margin-top: 2.2rem;
}

.stream-links a {
  border-bottom: 1px solid rgba(255, 255, 255, 0.48);
  color: var(--white);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: color 200ms ease, border-color 200ms ease;
}

.stream-links a:hover {
  border-color: var(--gold);
  color: var(--gold-soft);
}

.release-mobile-art {
  display: none;
}

.choir-film {
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
  margin-top: clamp(6rem, 12vw, 12rem);
  padding-top: clamp(4rem, 8vw, 8rem);
  border-top: 1px solid var(--line-light);
}

.choir-film .eyebrow {
  color: var(--gold-soft);
}

.choir-film h3 {
  margin: 1rem 0;
  font-family: var(--font-display);
  font-size: clamp(3.3rem, 6vw, 6.5rem);
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 0.9;
}

.choir-film p:not(.eyebrow) {
  color: rgba(255, 255, 255, 0.62);
}

.video-shell {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #02080d;
}

.video-shell img,
.video-shell iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.video-shell img {
  filter: saturate(0.75) contrast(1.08);
  transition: transform 900ms var(--ease), filter 500ms ease;
}

.video-shell:hover img {
  transform: scale(1.035);
  filter: saturate(0.95) contrast(1.05);
}

.video-shell::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(0deg, rgba(2, 8, 13, 0.82), transparent 56%);
}

.video-shell.is-playing::after,
.video-shell.is-playing img,
.video-shell.is-playing .video-kicker {
  display: none;
}

.media-youtube-fallback {
  position: absolute;
  z-index: 4;
  right: 0.75rem;
  bottom: 0.75rem;
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0.55rem 0.8rem;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 999px;
  background: rgba(2, 8, 13, 0.82);
  color: var(--white);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}

.media-youtube-fallback:hover,
.media-youtube-fallback:focus-visible {
  background: var(--white);
  color: var(--ink);
}

.video-play {
  position: absolute;
  z-index: 2;
  right: 1.5rem;
  bottom: 1.5rem;
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--white);
  cursor: pointer;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.video-play span {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  padding-left: 3px;
  border: 1px solid rgba(255, 255, 255, 0.62);
  border-radius: 50%;
  background: rgba(4, 17, 29, 0.38);
  transition: background-color 300ms ease, color 300ms ease, transform 300ms var(--ease);
}

.video-play:hover span {
  transform: scale(1.08);
  background: var(--white);
  color: var(--ink);
}

/* FILM */
.film-section {
  min-height: 100svh;
  display: grid;
  align-items: center;
  padding-block: clamp(7rem, 12vw, 12rem);
  overflow: hidden;
  background: #181311;
  color: var(--white);
}

.film-ghost {
  position: absolute;
  top: -0.19em;
  left: -0.035em;
  color: rgba(255, 255, 255, 0.025);
  font-family: var(--font-display);
  font-size: 34vw;
  font-weight: 700;
  letter-spacing: -0.08em;
  line-height: 1;
  pointer-events: none;
}

.film-layout {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  align-items: center;
  gap: clamp(4rem, 9vw, 9rem);
}

.film-copy {
  position: relative;
  z-index: 1;
}

.film-copy h2 {
  margin-top: 2.5rem;
}

.film-copy .lead {
  margin-block: 3rem 0;
  color: rgba(255, 255, 255, 0.68);
}

.film-copy cite {
  color: var(--white);
  font-family: var(--font-display);
  font-size: 1.16em;
}

.film-fact {
  margin: 2rem 0;
  color: var(--gold-soft);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.film-frame {
  position: relative;
  display: block;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  box-shadow: var(--shadow);
}

.film-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(12, 8, 7, 0.04), rgba(12, 8, 7, 0.88));
}

.film-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.18);
  filter: sepia(0.14) saturate(0.75) contrast(1.08);
  transition: transform 1.1s var(--ease), filter 600ms ease;
}

.film-frame:hover img {
  transform: scale(1.1);
  filter: sepia(0) saturate(0.95) contrast(1.04);
}

.film-frame-title {
  position: absolute;
  z-index: 2;
  right: 1.8rem;
  bottom: 1.5rem;
  left: 1.8rem;
  color: var(--white);
  font-family: var(--font-display);
  font-size: clamp(4.2rem, 8vw, 8rem);
  font-weight: 600;
  letter-spacing: -0.07em;
  line-height: 0.72;
}

.film-frame-play {
  position: absolute;
  z-index: 2;
  top: 1.5rem;
  right: 1.5rem;
  color: var(--white);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* WATCH */
.watch-section {
  padding-block: clamp(7rem, 12vw, 12rem);
  background: var(--paper);
}

.watch-heading {
  display: grid;
  grid-template-columns: minmax(130px, 0.36fr) 1.64fr;
  gap: 4rem;
}

.watch-grid {
  display: grid;
  grid-template-columns: 1.5fr 0.5fr;
  gap: clamp(2rem, 5vw, 5rem);
  margin-top: clamp(4rem, 8vw, 7rem);
}

.video-kicker {
  position: absolute;
  z-index: 2;
  top: 1.5rem;
  left: 1.5rem;
  color: var(--white);
  font-size: 0.63rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.video-shell-current img {
  object-position: center 36%;
  transform: scale(1.13);
}

.video-shell-current:hover img {
  transform: scale(1.16);
}

.watch-aside {
  display: flex;
  flex-direction: column;
}

.watch-aside > p {
  margin: 0 0 auto;
  color: var(--muted);
}

.watch-aside a {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-block: 1.2rem;
  border-top: 1px solid var(--line);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.watch-aside a:last-child {
  border-bottom: 1px solid var(--line);
}

.watch-aside strong {
  color: var(--gold);
}

.live-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.42fr) minmax(280px, 0.58fr);
  margin-top: clamp(4rem, 8vw, 7rem);
  padding: 0;
  overflow: hidden;
  background: var(--ink);
  color: var(--white);
}

.live-visual {
  position: relative;
  min-height: 620px;
  overflow: hidden;
  background: #02080d;
}

.live-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(2, 8, 13, 0.18), rgba(2, 8, 13, 0.76));
}

.live-visual.is-playing::after {
  display: none;
}

.live-visual img,
.live-visual iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.live-visual img {
  transform: scale(1.08);
  filter: saturate(0.7) contrast(1.1);
  transition: transform 1.2s var(--ease), filter 600ms ease;
}

.live-feature:hover .live-visual img {
  transform: scale(1.12);
  filter: saturate(0.9) contrast(1.05);
}

.live-visual iframe {
  position: absolute;
  inset: 0;
  border: 0;
}

.live-visual-copy {
  position: absolute;
  z-index: 2;
  top: 1.6rem;
  right: 1.6rem;
  left: 1.6rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.live-visual-copy > p {
  margin: 0;
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.live-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.live-badge i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ff4b49;
  box-shadow: 0 0 0 5px rgba(255, 75, 73, 0.18);
}

.live-play {
  position: absolute;
  z-index: 2;
  right: 1.6rem;
  bottom: 1.6rem;
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--white);
  cursor: pointer;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.live-play span,
.service-video-play {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  padding-left: 3px;
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: 50%;
  background: rgba(2, 8, 13, 0.45);
  transition: transform 300ms var(--ease), background-color 300ms ease, color 300ms ease;
}

.live-play:hover span,
.live-play:focus-visible span {
  transform: scale(1.08);
  background: var(--white);
  color: var(--ink);
}

.live-copy {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(2rem, 4vw, 4rem);
}

.live-copy .eyebrow {
  color: var(--gold-soft);
}

.live-copy h3 {
  margin: 1.25rem 0 2rem;
  font-family: var(--font-display);
  font-size: clamp(3.2rem, 5vw, 5.5rem);
  font-weight: 500;
  letter-spacing: -0.055em;
  line-height: 0.88;
}

.live-copy h3 em {
  color: var(--gold-soft);
  font-weight: 400;
}

.live-copy > p:not(.eyebrow) {
  color: rgba(255, 255, 255, 0.62);
}

.live-copy .live-status {
  margin: 1.8rem 0;
  padding-top: 1.2rem;
  border-top: 1px solid var(--line-light);
  color: var(--white);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.live-copy .text-link {
  align-self: flex-start;
  color: var(--white);
}

.recent-services {
  margin-top: clamp(6rem, 11vw, 11rem);
}

.recent-services-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--line);
}

.recent-services-heading h3 {
  margin: 0.8rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(3.2rem, 6vw, 6.4rem);
  font-weight: 500;
  letter-spacing: -0.055em;
  line-height: 0.88;
}

.recent-service-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(360px, 0.82fr);
  gap: clamp(2rem, 4vw, 4rem);
  margin-top: 3rem;
}

.service-video {
  display: grid;
  grid-template-columns: minmax(150px, 0.44fr) minmax(0, 0.56fr);
  align-items: stretch;
  color: var(--ink);
}

.service-video figure {
  position: relative;
  min-height: 170px;
  margin: 0;
  overflow: hidden;
  background: var(--ink);
}

.service-video figure::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(2, 8, 13, 0.62), transparent 60%);
}

.service-video img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.72) contrast(1.08);
  transition: transform 900ms var(--ease), filter 500ms ease;
}

.service-video:hover img {
  transform: scale(1.045);
  filter: saturate(0.95) contrast(1.04);
}

.service-video-play {
  position: absolute;
  z-index: 2;
  right: 1rem;
  bottom: 1rem;
  width: 42px;
  height: 42px;
  color: var(--white);
  font-size: 0.72rem;
}

.service-video-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1.3rem 0 1.3rem clamp(1.3rem, 2.5vw, 2.2rem);
  border-bottom: 1px solid var(--line);
}

.service-video-copy p,
.service-video-copy span {
  margin: 0;
  color: var(--muted);
  font-size: 0.59rem;
  font-weight: 700;
  letter-spacing: 0.075em;
  text-transform: uppercase;
}

.service-video-copy h4 {
  margin: 0.65rem 0 1.25rem;
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 2.4vw, 2.8rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 0.96;
}

.service-video-copy span {
  margin-top: auto;
  color: var(--blue);
}

.service-video-featured {
  grid-template-columns: 1fr;
}

.service-video-featured figure {
  min-height: 510px;
}

.service-video-featured .service-video-copy {
  min-height: 220px;
  padding: 2rem 0;
}

.service-video-featured .service-video-copy h4 {
  font-size: clamp(3.1rem, 5.3vw, 5.8rem);
}

.recent-service-stack {
  display: grid;
  gap: 1.5rem;
}

/* LIFE */
.life-section {
  padding-block: clamp(7rem, 12vw, 12rem);
  background: var(--white);
}

.life-heading {
  display: grid;
  grid-template-columns: minmax(130px, 0.36fr) 1.12fr 0.52fr;
  align-items: end;
  gap: 3rem;
}

.life-heading h2 {
  grid-column: 2;
}

.life-heading > p:last-child {
  margin: 0 0 0.8rem;
  color: var(--muted);
}

.life-mosaic {
  display: grid;
  grid-template-columns: 1.2fr 0.62fr 0.72fr;
  grid-template-rows: auto auto;
  gap: clamp(0.8rem, 1.6vw, 1.6rem);
  margin-top: clamp(5rem, 9vw, 9rem);
}

.life-image {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: var(--sky);
}

.life-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.86) contrast(1.03);
  transition: transform 1s var(--ease), filter 500ms ease;
}

.life-image:hover img {
  transform: scale(1.035);
  filter: saturate(1) contrast(1.02);
}

.life-image figcaption {
  position: absolute;
  right: 0.9rem;
  bottom: 0.8rem;
  left: 0.9rem;
  color: var(--white);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.7);
  text-transform: uppercase;
}

.life-image-a {
  grid-row: 1 / span 2;
  min-height: 820px;
}

.life-image-b,
.life-image-c {
  min-height: 510px;
}

.life-image-d {
  grid-column: 2 / span 2;
  min-height: 360px;
}

.life-filmstrip {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(11, minmax(260px, 1fr));
  gap: 1rem;
  margin-top: clamp(1rem, 2vw, 2rem);
  padding-inline: var(--gutter);
  overflow-x: auto;
  scrollbar-width: thin;
}

.life-filmstrip figure {
  height: clamp(250px, 28vw, 460px);
  margin: 0;
  overflow: hidden;
  background: var(--sky);
}

.life-filmstrip figure:nth-child(even) {
  margin-top: 3rem;
}

.life-filmstrip img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.88) contrast(1.03);
  transition: transform 1s var(--ease), filter 500ms ease;
}

.life-filmstrip figure:hover img {
  transform: scale(1.04);
  filter: saturate(1) contrast(1.02);
}

/* ADULT HARVEST ANNOUNCEMENT + HOMEPAGE FEATURE */
.harvest-notice {
  z-index: 3;
  background: var(--harvest-plum);
  color: var(--white);
}

.harvest-notice-inner {
  min-height: 88px;
  display: grid;
  grid-template-columns: auto 1.25fr auto auto;
  align-items: center;
  gap: clamp(1.2rem, 3vw, 3rem);
}

.harvest-notice-inner > span,
.harvest-notice-inner > strong {
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.harvest-notice-kicker {
  color: var(--gold-soft);
}

.harvest-notice-inner > strong {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2vw, 2rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1;
  text-transform: none;
}

.harvest-notice-theme {
  color: var(--gold-soft);
}

.harvest-notice-theme i {
  display: inline-block;
  margin-left: 0.4rem;
  font-style: normal;
  transition: transform 260ms var(--ease);
}

.harvest-notice-inner:hover .harvest-notice-theme i {
  transform: translateX(0.3rem);
}

.harvest-home {
  padding-block: clamp(7rem, 12vw, 12rem);
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 18%, rgba(214, 174, 87, 0.16), transparent 28%),
    var(--harvest-plum);
  color: var(--white);
}

.harvest-home-grid {
  display: grid;
  grid-template-columns: minmax(320px, 0.78fr) minmax(0, 1.22fr);
  align-items: center;
  gap: clamp(4rem, 9vw, 10rem);
}

.harvest-home-poster {
  position: relative;
  display: block;
  width: min(100%, 620px);
  justify-self: center;
  padding: clamp(0.55rem, 1vw, 0.9rem);
  border: 1px solid rgba(232, 213, 163, 0.42);
  background: rgba(255, 255, 255, 0.04);
  box-shadow: 0 36px 110px rgba(0, 0, 0, 0.42);
}

.harvest-home-poster img {
  width: 100%;
}

.harvest-home-poster > span {
  position: absolute;
  right: 1.2rem;
  bottom: 1.2rem;
  left: 1.2rem;
  display: flex;
  justify-content: space-between;
  padding: 0.9rem 1rem;
  background: rgba(24, 6, 36, 0.9);
  color: var(--white);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.harvest-home-poster i {
  color: var(--gold-soft);
  font-style: normal;
}

.harvest-home-copy > .eyebrow {
  margin-top: 2.5rem;
  color: var(--gold-soft);
}

.harvest-home-copy h2 {
  margin-top: 1.6rem;
}

.harvest-home-copy .lead {
  max-width: 46rem;
  margin-block: 2.6rem;
  color: rgba(255, 255, 255, 0.66);
}

.harvest-home-details {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-block: 2.5rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.harvest-home-details > div {
  min-height: 112px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.2rem;
  background: rgba(255, 255, 255, 0.035);
}

.harvest-home-details span {
  color: rgba(255, 255, 255, 0.46);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.harvest-home-details strong {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2vw, 2rem);
  font-weight: 500;
  line-height: 1.05;
}

.harvest-countdown {
  margin: 0 0 2.2rem;
  color: var(--gold-soft);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

/* REVIEWS */
.reviews-section {
  min-height: 92svh;
  display: grid;
  align-items: center;
  overflow: hidden;
  background: var(--blue);
  color: var(--white);
}

.reviews-section::before {
  content: "“";
  position: absolute;
  top: -0.34em;
  left: -0.04em;
  color: rgba(255, 255, 255, 0.035);
  font-family: var(--font-display);
  font-size: 55vw;
  line-height: 1;
}

.review-shell {
  display: grid;
  grid-template-columns: minmax(130px, 0.3fr) 1.35fr 0.35fr;
  align-items: center;
  gap: 3rem;
  padding-block: 8rem;
}

.review-stage {
  position: relative;
  min-height: 410px;
  display: grid;
  align-items: center;
}

.review {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0;
  opacity: 0;
  transform: translateY(25px);
  pointer-events: none;
  transition: opacity 700ms ease, transform 800ms var(--ease);
}

.review.is-active {
  opacity: 1;
  transform: none;
  pointer-events: auto;
}

.review p {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(3.2rem, 7vw, 7.5rem);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 0.98;
}

.review footer {
  margin-top: 2rem;
  color: var(--gold-soft);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.review-nav {
  align-self: center;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.85rem;
}

.review-nav button {
  width: 42px;
  height: 2px;
  padding: 0;
  border: 0;
  background: rgba(255, 255, 255, 0.28);
  cursor: pointer;
  transition: width 300ms var(--ease), background-color 300ms ease;
}

.review-nav button.is-active {
  width: 72px;
  background: var(--gold);
}

.rating-link {
  grid-column: 2 / span 2;
  display: flex;
  align-items: center;
  gap: 1.3rem;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line-light);
}

.rating-link strong {
  font-family: var(--font-display);
  font-size: 3.5rem;
  font-weight: 500;
  line-height: 1;
}

.rating-link span {
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.63rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  line-height: 1.6;
  text-transform: uppercase;
}

/* SERVICES */
.service-section {
  padding-block: clamp(7rem, 12vw, 12rem);
  background: var(--paper);
}

.service-heading {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  align-items: end;
  gap: clamp(4rem, 8vw, 8rem);
}

.service-heading h2 {
  margin-top: 2.3rem;
}

.service-heading-copy .lead {
  max-width: 37rem;
  margin-top: 2.5rem;
}

.service-heading-time {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: end;
  gap: 0.7rem 1rem;
  padding-block: 2rem;
  border-block: 1px solid var(--line);
}

.service-heading-time > span {
  align-self: start;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.service-heading-time strong {
  grid-column: 1 / span 2;
  font-family: var(--font-display);
  font-size: clamp(5rem, 10vw, 10rem);
  font-weight: 500;
  letter-spacing: -0.08em;
  line-height: 0.75;
}

.service-heading-time em {
  font-family: var(--font-display);
  font-size: 2.5rem;
  line-height: 1;
}

.weekly-schedule {
  margin-top: clamp(5rem, 9vw, 9rem);
  border-top: 1px solid var(--line);
}

.schedule-entry {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  gap: clamp(2rem, 6vw, 7rem);
  padding-block: clamp(2.5rem, 5vw, 4.5rem);
  border-bottom: 1px solid var(--line);
}

.schedule-entry-featured {
  margin-inline: calc(var(--gutter) * -0.5);
  padding-inline: calc(var(--gutter) * 0.5);
  background: var(--white);
}

.schedule-day {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.25rem;
}

.schedule-day span {
  font-family: var(--font-display);
  font-size: clamp(3.2rem, 6vw, 6.2rem);
  letter-spacing: -0.055em;
  line-height: 0.85;
}

.schedule-day time,
.schedule-day strong {
  color: var(--gold);
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.schedule-content {
  align-self: start;
}

.schedule-content > .eyebrow {
  margin-bottom: 1rem;
  color: var(--coral);
}

.schedule-content > h3,
.schedule-service h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.6vw, 3.7rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1;
}

.schedule-content > p,
.schedule-service p {
  max-width: 39rem;
  margin: 1rem 0 0;
  color: var(--muted);
  line-height: 1.7;
}

.schedule-content > .text-link {
  margin-top: 1.6rem;
}

.schedule-service {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: clamp(1.2rem, 3vw, 3rem);
  padding-block: 0 2.4rem;
}

.schedule-service + .schedule-service {
  padding-top: 2.4rem;
  border-top: 1px solid var(--line);
}

.schedule-service:last-child {
  padding-bottom: 0;
}

.schedule-service time {
  color: var(--gold);
  font-size: 0.68rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.09em;
  line-height: 1.5;
  text-transform: uppercase;
}

.schedule-service .eyebrow {
  margin: 0 0 0.8rem;
  color: var(--coral);
}

.schedule-service-monthly {
  margin-top: 0.2rem;
  padding: 2.4rem;
  border: 1px solid var(--line);
  background: var(--paper-warm);
}

.schedule-service-monthly + .schedule-service {
  border-top: 0;
}

.schedule-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  margin-top: 3rem;
}

.schedule-footer > p {
  max-width: 33rem;
  margin: 0;
  color: var(--muted);
  font-size: 0.72rem;
}

/* GIVING INVITATION */
.giving-invitation {
  min-height: 82svh;
  display: grid;
  align-items: center;
  overflow: hidden;
  background: var(--ink-deep);
  color: var(--white);
}

.giving-invitation-image,
.giving-invitation-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.giving-invitation-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 43%;
  filter: saturate(0.66) contrast(1.08);
}

.giving-invitation-shade {
  background:
    linear-gradient(90deg, rgba(3, 12, 21, 0.92), rgba(3, 12, 21, 0.62) 48%, rgba(3, 12, 21, 0.16)),
    linear-gradient(0deg, rgba(3, 12, 21, 0.7), transparent 62%);
}

.giving-invitation-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(130px, 0.34fr) 1.66fr;
  gap: 4rem;
  padding-block: clamp(7rem, 12vw, 12rem);
}

.giving-invitation-copy {
  max-width: 58rem;
}

.giving-invitation-copy > .eyebrow {
  margin-bottom: 2rem;
  color: var(--gold-soft);
}

.giving-invitation-copy blockquote {
  max-width: 32rem;
  margin: 3rem 0;
  padding-left: 1.5rem;
  border-left: 1px solid var(--gold);
}

.giving-invitation-copy blockquote p {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3vw, 3rem);
  line-height: 1.1;
}

.giving-invitation-copy cite {
  display: block;
  margin-top: 0.8rem;
  color: rgba(255, 255, 255, 0.58);
  font-size: 0.65rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* LOCATION */
.location-section {
  display: grid;
  grid-template-columns: 0.78fr 1.22fr;
  min-height: 760px;
  background: var(--ink);
  color: var(--white);
}

.location-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: clamp(5rem, 8vw, 9rem) var(--gutter);
}

.location-copy .eyebrow {
  margin-top: auto;
  color: var(--gold-soft);
}

.location-copy h2 {
  margin-block: 2rem 1rem;
}

.location-copy > p:not(.section-index):not(.eyebrow) {
  margin: 0 0 2rem;
  color: rgba(255, 255, 255, 0.62);
}

.location-copy .text-link {
  margin-top: 1.5rem;
}

.map-wrap {
  position: relative;
  min-height: 100%;
  background: #d8dde0;
}

.map-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  filter: grayscale(0.9) contrast(0.95) sepia(0.1);
}

/* PRAYER / CONTACT */
.contact-section {
  padding-block: clamp(7rem, 12vw, 12rem);
  background: var(--blue);
  color: var(--white);
}

.contact-grid {
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  gap: clamp(4rem, 10vw, 10rem);
}

.prayer-copy h2 {
  margin-top: 2.3rem;
}

.prayer-copy > p:not(.section-index) {
  max-width: 31rem;
  margin: 2.5rem 0 0;
  color: rgba(255, 255, 255, 0.62);
}

.contact-details {
  display: grid;
  gap: 1rem;
  margin-top: 4rem;
  padding-top: 2rem;
  border-top: 1px solid var(--line-light);
}

.contact-details a {
  font-family: var(--font-display);
  font-size: 2rem;
}

.contact-details a[href^="mailto:"] {
  width: fit-content;
  max-width: 100%;
  font-family: var(--font-body);
  font-size: clamp(0.82rem, 1.35vw, 1rem);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.contact-details address {
  color: rgba(255, 255, 255, 0.62);
  font-style: normal;
}

.contact-socials {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1.3rem;
  margin-top: 2rem;
}

.contact-socials a {
  border-bottom: 1px solid rgba(255, 255, 255, 0.26);
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.61rem;
  font-weight: 700;
  letter-spacing: 0.075em;
  text-transform: uppercase;
}

.contact-socials a:hover,
.contact-socials a:focus-visible {
  border-bottom-color: var(--gold-soft);
  color: var(--gold-soft);
}

.prayer-form {
  padding: clamp(2rem, 4vw, 4rem);
  border: 1px solid var(--line-light);
  background: rgba(255, 255, 255, 0.035);
}

.prayer-form > .sr-only {
  display: none !important;
}

.form-protection-note {
  margin: 1.5rem 0 0;
  color: rgba(255, 255, 255, 0.46);
  font-size: 0.66rem;
  letter-spacing: 0.04em;
  line-height: 1.6;
}

.form-row {
  display: grid;
  gap: 0.5rem;
  margin-bottom: 2rem;
}

.form-row label {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.form-row label span {
  color: rgba(255, 255, 255, 0.4);
  text-transform: none;
}

.form-row input,
.form-row textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 0;
  outline: none;
  background: transparent;
  color: var(--white);
  font-size: 1rem;
}

.form-row input {
  height: 44px;
}

.form-row textarea {
  min-height: 130px;
  padding-block: 0.6rem;
  resize: vertical;
}

.form-row input:focus,
.form-row textarea:focus {
  border-color: var(--gold);
  box-shadow: 0 1px 0 var(--gold);
}

/* FOOTER */
.site-footer {
  padding-block: clamp(5rem, 9vw, 8rem) 2rem;
  background: var(--ink-deep);
  color: var(--white);
}

.footer-top {
  display: grid;
  grid-template-columns: 1fr 0.62fr 0.38fr;
  gap: 4rem;
  padding-bottom: clamp(4rem, 8vw, 7rem);
}

.footer-name {
  margin: 0 0 1.6rem;
  font-family: var(--font-display);
  font-size: clamp(3.2rem, 6vw, 6.5rem);
  letter-spacing: -0.055em;
  line-height: 0.83;
}

.footer-name em {
  color: var(--gold-soft);
  font-weight: 400;
}

.footer-top > div:first-child > p:last-child {
  color: rgba(255, 255, 255, 0.48);
  font-size: 0.75rem;
}

.footer-visit,
.footer-links {
  display: flex;
  flex-direction: column;
}

.footer-visit span {
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.footer-visit strong {
  margin-top: 0.5rem;
  font-family: var(--font-display);
  font-size: 3.2rem;
  font-weight: 500;
}

.footer-visit a {
  align-self: flex-start;
  margin-top: 2rem;
  border-bottom: 1px solid var(--gold);
  color: var(--gold-soft);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.footer-visit a + a {
  margin-top: 1rem;
}

.footer-links a {
  display: flex;
  justify-content: space-between;
  padding-block: 0.75rem;
  border-bottom: 1px solid var(--line-light);
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.footer-links a:hover {
  color: var(--gold-soft);
}

.footer-scripture {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 3rem;
  padding-bottom: clamp(4rem, 7vw, 6rem);
}

.footer-scripture blockquote {
  max-width: 24ch;
  margin: 0;
  color: rgba(255, 255, 255, 0.84);
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 4.2rem);
  letter-spacing: -0.035em;
  line-height: 1.08;
}

.footer-scripture cite {
  color: var(--gold-soft);
  font-size: 0.64rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.footer-bottom {
  display: grid;
  grid-template-columns: 1fr 1.5fr auto;
  gap: 2rem;
  padding-top: 2rem;
  border-top: 1px solid var(--line-light);
  color: rgba(255, 255, 255, 0.38);
  font-size: 0.62rem;
}

.footer-bottom p {
  margin: 0;
}

.footer-bottom a:hover {
  color: var(--white);
}

/* GIVING PAGE */
.giving-page {
  background: var(--paper);
}

.giving-hero {
  min-height: 800px;
  height: 100svh;
  overflow: hidden;
  background: var(--ink-deep);
  color: var(--white);
}

.giving-hero-image,
.giving-hero-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.giving-hero-image {
  object-fit: cover;
  object-position: center 40%;
  transform: scale(1.02);
  filter: saturate(0.62) contrast(1.08);
}

.giving-hero-shade {
  background:
    linear-gradient(180deg, rgba(2, 10, 17, 0.75), transparent 34%, rgba(2, 10, 17, 0.88)),
    linear-gradient(90deg, rgba(2, 10, 17, 0.88), rgba(2, 10, 17, 0.18) 68%);
}

.giving-hero-content {
  position: relative;
  z-index: 1;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-block: calc(var(--header-height) + 4rem) 7rem;
}

.giving-hero-content > .eyebrow {
  color: var(--gold-soft);
}

.giving-hero h1 {
  max-width: 10ch;
  margin: 2rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(5.8rem, 12vw, 12rem);
  font-weight: 500;
  letter-spacing: -0.07em;
  line-height: 0.78;
}

.giving-hero h1 em {
  color: var(--gold-soft);
  font-weight: 400;
}

.giving-hero-deck {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 3rem;
  margin-top: 4rem;
  padding-top: 1.4rem;
  border-top: 1px solid rgba(255, 255, 255, 0.38);
}

.giving-hero-deck p {
  max-width: 39rem;
  margin: 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: clamp(1rem, 1.5vw, 1.25rem);
}

.giving-scripture {
  padding-block: clamp(8rem, 15vw, 16rem);
  background: var(--paper);
}

.giving-scripture-grid {
  display: grid;
  grid-template-columns: minmax(130px, 0.34fr) 1.66fr;
  gap: 4rem;
}

.giving-scripture blockquote {
  margin: 0;
}

.giving-scripture blockquote p {
  max-width: 14ch;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(3.4rem, 7.5vw, 7.5rem);
  letter-spacing: -0.055em;
  line-height: 0.98;
}

.giving-scripture blockquote em {
  color: var(--gold);
  font-weight: 400;
}

.giving-scripture cite {
  display: block;
  margin-top: 3rem;
  color: var(--muted);
  font-size: 0.68rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.giving-methods {
  padding-block: clamp(8rem, 14vw, 14rem);
  background: var(--ink-deep);
  color: var(--white);
}

.giving-methods-heading {
  display: grid;
  grid-template-columns: minmax(130px, 0.34fr) 1.66fr;
  gap: 4rem;
}

.giving-methods-heading .eyebrow {
  margin-bottom: 1.6rem;
  color: var(--gold-soft);
}

.giving-method-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  margin-top: clamp(5rem, 9vw, 9rem);
  padding: 1px;
  background: rgba(255, 255, 255, 0.18);
}

.giving-method {
  min-height: 690px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 4rem;
  padding: clamp(2.2rem, 5vw, 5rem);
  background: var(--blue);
}

.giving-method-zelle {
  background: var(--paper-warm);
  color: var(--text);
}

.giving-method-number {
  color: var(--gold);
  font-family: var(--font-display);
  font-size: clamp(4.5rem, 8vw, 8rem);
  line-height: 0.8;
}

.giving-method h3 {
  margin: 1rem 0 1.5rem;
  font-family: var(--font-display);
  font-size: clamp(4rem, 7vw, 7rem);
  font-weight: 500;
  letter-spacing: -0.055em;
  line-height: 0.9;
}

.giving-method p:not(.eyebrow):not(.giving-safety) {
  max-width: 34rem;
  color: rgba(255, 255, 255, 0.64);
}

.giving-method-zelle p:not(.eyebrow):not(.giving-safety) {
  color: var(--muted);
}

.zelle-number {
  display: block;
  margin-top: 0.8rem;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 5vw, 5.3rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1;
}

.giving-safety {
  max-width: 38rem;
  margin-top: 2.3rem;
  padding-top: 1.4rem;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.72rem;
}

.giving-copy-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}

.giving-method-zelle .button-light {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--white);
}

.giving-copy-status {
  min-height: 1.2em;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.giving-stewardship {
  display: grid;
  grid-template-columns: 1.12fr 0.88fr;
  min-height: 90svh;
  background: var(--white);
}

.giving-stewardship-image {
  position: relative;
  min-height: 760px;
  margin: 0;
  overflow: hidden;
  background: var(--sky);
}

.giving-stewardship-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 44%;
  filter: saturate(0.82) contrast(1.05);
}

.giving-stewardship-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: clamp(5rem, 8vw, 9rem);
}

.giving-stewardship-copy h2 {
  margin-top: 2.5rem;
}

.giving-stewardship-copy .lead {
  color: var(--muted);
}

.giving-stewardship-copy > p:not(.section-index):not(.lead) {
  margin-top: 2rem;
  color: var(--muted);
}

.giving-stewardship-copy .inline-actions {
  margin-top: 2rem;
}

/* ADULT HARVEST 2026 PAGE */
.harvest-page {
  background: var(--harvest-cream);
}

.harvest-hero {
  min-height: 100svh;
  display: grid;
  align-items: center;
  overflow: hidden;
  padding-block: calc(var(--header-height) + clamp(4rem, 8vw, 8rem)) clamp(6rem, 10vw, 10rem);
  background:
    radial-gradient(circle at 72% 20%, rgba(214, 174, 87, 0.2), transparent 30%),
    linear-gradient(135deg, #150820, var(--harvest-plum) 62%, #3f104a);
  color: var(--white);
}

.harvest-hero-glow {
  position: absolute;
  top: 15%;
  right: -12vw;
  width: 42vw;
  height: 42vw;
  border: 1px solid rgba(232, 213, 163, 0.22);
  border-radius: 50%;
  box-shadow: 0 0 0 5vw rgba(255, 255, 255, 0.015), 0 0 0 11vw rgba(255, 255, 255, 0.01);
}

.harvest-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.72fr);
  align-items: center;
  gap: clamp(4rem, 8vw, 9rem);
}

.harvest-hero-copy {
  position: relative;
  z-index: 1;
}

.harvest-hero-copy > .eyebrow {
  color: var(--gold-soft);
}

.harvest-hero h1 {
  margin: 2.4rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(5rem, 10vw, 10.5rem);
  font-weight: 500;
  letter-spacing: -0.07em;
  line-height: 0.78;
}

.harvest-hero h1 em {
  color: var(--gold-soft);
  font-weight: 400;
}

.harvest-hero-scripture {
  margin: 2rem 0 0;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.harvest-hero-date {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  max-width: 47rem;
  margin-top: 4rem;
  padding-block: 1.5rem;
  border-block: 1px solid rgba(255, 255, 255, 0.24);
}

.harvest-hero-date time,
.harvest-hero-date p {
  margin: 0;
  color: rgba(255, 255, 255, 0.58);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.harvest-hero-date strong {
  color: var(--white);
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.4vw, 3.8rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.1;
  text-transform: none;
}

.harvest-hero-copy .harvest-countdown {
  margin-top: 2rem;
}

.harvest-hero-poster {
  position: relative;
  z-index: 1;
  width: min(100%, 560px);
  justify-self: end;
  margin: 0;
  padding: clamp(0.55rem, 1vw, 0.9rem);
  border: 1px solid rgba(232, 213, 163, 0.42);
  background: rgba(255, 255, 255, 0.04);
  box-shadow: 0 38px 120px rgba(0, 0, 0, 0.5);
  transform: rotate(1.4deg);
}

.harvest-hero-poster img {
  width: 100%;
}

.harvest-hero-poster figcaption,
.harvest-week-poster figcaption {
  padding: 1rem 0.4rem 0.35rem;
  color: rgba(255, 255, 255, 0.56);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.harvest-intro {
  padding-block: clamp(8rem, 14vw, 15rem);
  background: var(--harvest-cream);
}

.harvest-intro-grid,
.harvest-service-heading,
.harvest-week-heading {
  display: grid;
  grid-template-columns: minmax(130px, 0.34fr) 1.66fr;
  gap: 4rem;
}

.harvest-intro .lead {
  max-width: 50rem;
  margin: 4rem 0 0 auto;
  color: #675a62;
  font-size: clamp(1.08rem, 1.7vw, 1.38rem);
  line-height: 1.8;
}

.harvest-theme-quote {
  max-width: 52rem;
  margin: 5rem 0 0 auto;
  padding: 2rem 0 0 2rem;
  border-top: 1px solid rgba(78, 19, 94, 0.28);
  border-left: 2px solid var(--harvest-purple);
}

.harvest-theme-quote p {
  margin: 0;
  color: var(--harvest-plum);
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 4rem);
  letter-spacing: -0.04em;
  line-height: 1.08;
}

.harvest-theme-quote cite {
  display: block;
  margin-top: 1.5rem;
  color: var(--harvest-purple);
  font-size: 0.62rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.harvest-service {
  padding-block: clamp(7rem, 12vw, 12rem);
  background: var(--blue);
  color: var(--white);
}

.harvest-service-details {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-top: clamp(5rem, 8vw, 8rem);
  padding: 1px;
  background: rgba(255, 255, 255, 0.18);
}

.harvest-service-details article {
  min-height: 390px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(2rem, 4vw, 4rem);
  background: var(--ink);
}

.harvest-service-details span {
  color: var(--gold-soft);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.harvest-service-details strong {
  margin-block: auto;
  color: var(--white);
  font-family: var(--font-display);
  font-size: clamp(2.7rem, 5vw, 5.4rem);
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 0.96;
}

.harvest-service-details p,
.harvest-service-details address {
  margin: 0;
  color: rgba(255, 255, 255, 0.56);
  font-size: 0.75rem;
  font-style: normal;
}

.harvest-week {
  padding-block: clamp(8rem, 14vw, 14rem);
  background: var(--paper);
}

.harvest-week-heading .eyebrow {
  margin-bottom: 1.5rem;
  color: var(--harvest-purple);
}

.harvest-week-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.75fr);
  align-items: start;
  gap: clamp(4rem, 8vw, 9rem);
  margin-top: clamp(5rem, 9vw, 9rem);
}

.harvest-agenda {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
  list-style: none;
}

.harvest-agenda > li {
  display: grid;
  grid-template-columns: minmax(120px, 0.36fr) 1.64fr;
  gap: clamp(1.5rem, 4vw, 4rem);
  padding-block: 2.1rem;
  border-bottom: 1px solid var(--line);
}

.harvest-agenda time {
  color: var(--harvest-purple);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.harvest-agenda time span {
  display: block;
  margin-bottom: 0.4rem;
  color: var(--muted);
}

.harvest-agenda h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.3vw, 3.4rem);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1;
}

.harvest-agenda p {
  margin: 0.7rem 0 0;
  color: var(--muted);
}

.harvest-agenda ul {
  display: grid;
  gap: 0.65rem;
  margin: 1.5rem 0 0;
  padding: 1.5rem 0 0;
  border-top: 1px solid var(--line);
  list-style: none;
}

.harvest-agenda ul li {
  color: var(--muted);
}

.harvest-agenda ul strong {
  display: inline-block;
  min-width: 8.5rem;
  color: var(--harvest-purple);
  font-size: 0.67rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.harvest-agenda-main {
  padding-inline: 1.4rem;
  background: var(--harvest-cream);
}

.harvest-week-poster {
  position: sticky;
  top: calc(var(--header-height) + 2rem);
  margin: 0;
  padding: 0.7rem;
  border: 1px solid rgba(78, 19, 94, 0.22);
  background: var(--harvest-plum);
  box-shadow: var(--shadow);
}

.harvest-week-poster img {
  width: 100%;
}

.harvest-share {
  padding-block: clamp(8rem, 14vw, 14rem);
  background:
    radial-gradient(circle at 20% 80%, rgba(214, 174, 87, 0.15), transparent 28%),
    var(--harvest-plum);
  color: var(--white);
}

.harvest-share-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: clamp(4rem, 9vw, 10rem);
}

.harvest-share h2 {
  margin-top: 2.5rem;
}

.harvest-share .lead {
  max-width: 42rem;
  color: rgba(255, 255, 255, 0.62);
}

.harvest-share-primary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.5rem;
  margin-top: 2.5rem;
}

.harvest-copy-link {
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.harvest-share-status {
  flex-basis: 100%;
  min-height: 1.2em;
  color: var(--gold-soft);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.harvest-share-options {
  align-self: end;
}

.harvest-share-options nav,
.harvest-downloads {
  display: grid;
}

.harvest-share-options a {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  padding-block: 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.harvest-share-options a:hover {
  color: var(--gold-soft);
}

.harvest-downloads {
  margin-top: 3rem;
}

.harvest-downloads a {
  color: var(--gold-soft);
}

.harvest-final {
  min-height: 86svh;
  display: grid;
  align-items: center;
  background:
    linear-gradient(90deg, rgba(4, 17, 29, 0.96), rgba(4, 17, 29, 0.76)),
    url("images/client/congregation-family-hero.jpg") center 42% / cover no-repeat;
  color: var(--white);
}

.harvest-final .shell {
  padding-block: 8rem;
}

.harvest-final .eyebrow {
  color: var(--gold-soft);
}

.harvest-final h2 {
  max-width: 14ch;
  margin-top: 2.5rem;
}

.harvest-final .shell > p:not(.eyebrow) {
  color: rgba(255, 255, 255, 0.65);
}

.harvest-final .inline-actions {
  margin-top: 2.5rem;
}

/* OUTREACH PAGE */
.outreach-page {
  background: var(--paper);
}

.outreach-hero {
  min-height: 800px;
  height: 100svh;
  overflow: hidden;
  background: var(--ink-deep);
  color: var(--white);
}

.outreach-hero-image,
.outreach-hero-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.outreach-hero-image {
  object-fit: cover;
  object-position: center 44%;
  transform: scale(1.02);
  filter: saturate(0.72) contrast(1.08);
}

.outreach-hero-shade {
  background:
    linear-gradient(180deg, rgba(2, 10, 17, 0.72), transparent 31%, rgba(2, 10, 17, 0.18) 55%, rgba(2, 10, 17, 0.88)),
    linear-gradient(90deg, rgba(2, 10, 17, 0.74), rgba(2, 10, 17, 0.12) 62%);
}

.outreach-hero-content {
  position: relative;
  z-index: 1;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-block: calc(var(--header-height) + 4rem) 7rem;
}

.outreach-hero-content > .eyebrow {
  color: var(--gold-soft);
}

.outreach-hero h1 {
  max-width: 8ch;
  margin: 2rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(6rem, 13vw, 13rem);
  font-weight: 500;
  letter-spacing: -0.075em;
  line-height: 0.75;
}

.outreach-hero h1 em {
  color: var(--gold-soft);
  font-weight: 400;
}

.outreach-hero-deck {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 3rem;
  margin-top: 4rem;
  padding-top: 1.4rem;
  border-top: 1px solid rgba(255, 255, 255, 0.38);
}

.outreach-hero-deck p {
  max-width: 37rem;
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: clamp(1rem, 1.5vw, 1.25rem);
}

.outreach-intro {
  padding-block: clamp(8rem, 14vw, 15rem);
  background: var(--paper);
}

.outreach-intro-grid {
  display: grid;
  grid-template-columns: minmax(130px, 0.34fr) 1.66fr;
  gap: 4rem;
}

.outreach-intro-copy {
  max-width: 48rem;
  margin: 4rem 0 0 auto;
  color: var(--muted);
  font-size: clamp(1.05rem, 1.6vw, 1.35rem);
  line-height: 1.8;
}

.outreach-chapter {
  padding-block: clamp(7rem, 12vw, 12rem);
  background: var(--white);
}

.outreach-chapter-heading {
  display: grid;
  grid-template-columns: minmax(130px, 0.36fr) 1.64fr;
  gap: 4rem;
}

.outreach-chapter-heading .eyebrow {
  color: var(--coral);
}

.outreach-pair {
  display: grid;
  grid-template-columns: 1.18fr 0.82fr;
  align-items: end;
  gap: clamp(1rem, 2vw, 2rem);
  margin-top: clamp(5rem, 9vw, 9rem);
}

.outreach-figure,
.outreach-community-pair figure {
  position: relative;
  min-height: 530px;
  margin: 0;
  overflow: hidden;
  background: var(--sky);
}

.outreach-figure-tall {
  min-height: 780px;
}

.outreach-figure img,
.outreach-community-pair img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  object-fit: cover;
  filter: saturate(0.88) contrast(1.03);
  transition: transform 1s var(--ease), filter 500ms ease;
}

.outreach-figure:hover img,
.outreach-community-pair figure:hover img {
  transform: scale(1.035);
  filter: saturate(1) contrast(1.02);
}

.outreach-figure figcaption,
.outreach-community-pair figcaption {
  position: absolute;
  z-index: 1;
  right: 1.2rem;
  bottom: 1rem;
  left: 1.2rem;
  color: var(--white);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.8);
  text-transform: uppercase;
}

.outreach-logistics {
  padding-block: clamp(8rem, 14vw, 14rem);
  overflow: hidden;
  background: var(--blue);
  color: var(--white);
}

.outreach-logistics-copy {
  display: grid;
  grid-template-columns: minmax(130px, 0.3fr) 1.1fr 0.6fr;
  align-items: end;
  gap: 3rem;
}

.outreach-logistics-copy h2 {
  grid-column: 2;
}

.outreach-logistics-copy .lead {
  grid-column: 3;
  margin-bottom: 0.5rem;
  color: rgba(255, 255, 255, 0.64);
}

.outreach-logistics-strip {
  display: grid;
  grid-template-columns: 1.08fr 0.84fr 1.08fr;
  gap: clamp(0.8rem, 1.5vw, 1.5rem);
  margin-top: clamp(5rem, 9vw, 9rem);
  padding-inline: var(--gutter);
}

.outreach-logistics-strip figure {
  height: clamp(430px, 52vw, 730px);
  margin: 0;
  overflow: hidden;
  background: var(--ink);
}

.outreach-logistics-strip figure:nth-child(2) {
  margin-top: 6rem;
}

.outreach-logistics-strip img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.76) contrast(1.08);
  transition: transform 1.1s var(--ease), filter 500ms ease;
}

.outreach-logistics-strip figure:hover img {
  transform: scale(1.035);
  filter: saturate(0.95) contrast(1.04);
}

.outreach-community {
  padding-block: clamp(8rem, 14vw, 14rem);
  background: var(--paper-warm);
}

.outreach-community-grid {
  display: grid;
  grid-template-columns: 0.75fr 1.25fr;
  align-items: center;
  gap: clamp(4rem, 8vw, 9rem);
}

.outreach-community-copy .eyebrow {
  margin-top: 3.5rem;
  color: var(--coral);
}

.outreach-community-copy h2 {
  margin-top: 1.5rem;
}

.outreach-community-main {
  position: relative;
  min-height: 760px;
  margin: 0;
  overflow: hidden;
  background: var(--sky);
}

.outreach-community-main img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.9) contrast(1.03);
}

.outreach-community-pair {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(1rem, 2vw, 2rem);
  margin-top: clamp(5rem, 9vw, 9rem);
}

.outreach-community-pair figure:last-child {
  margin-top: 5rem;
}

.outreach-partnership {
  padding-block: clamp(8rem, 14vw, 14rem);
  background: var(--ink-deep);
  color: var(--white);
}

.outreach-partnership-grid {
  display: grid;
  grid-template-columns: 1fr 0.86fr;
  gap: clamp(4rem, 9vw, 10rem);
}

.outreach-partnership-copy .eyebrow {
  margin-top: 3.5rem;
  color: var(--gold-soft);
}

.outreach-partnership-copy h2 {
  margin-top: 1.5rem;
}

.outreach-partnership-copy .lead {
  max-width: 43rem;
  color: rgba(255, 255, 255, 0.65);
}

.outreach-contact-details {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--line-light);
}

.outreach-contact-details p {
  margin: 0 0 0.5rem;
  color: rgba(255, 255, 255, 0.48);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.outreach-contact-details a {
  color: var(--gold-soft);
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 4vw, 4rem);
}

.outreach-contact-details .outreach-email {
  display: block;
  width: fit-content;
  margin-top: 0.85rem;
  font-family: var(--font-body);
  font-size: clamp(0.82rem, 1.25vw, 1rem);
  font-weight: 700;
  letter-spacing: 0.03em;
}

.outreach-form {
  align-self: start;
}

/* PASTOR PAGE */
.pastor-page {
  background: var(--paper);
}

.pastor-hero {
  min-height: 800px;
  height: 100svh;
  overflow: hidden;
  background: var(--ink-deep);
  color: var(--white);
}

.pastor-hero-image,
.pastor-hero-image img,
.pastor-hero-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.pastor-hero-image img {
  object-fit: cover;
  object-position: 45% center;
  transform: scale(1.02);
  filter: saturate(0.45) contrast(1.08);
}

.pastor-hero-shade {
  background:
    linear-gradient(180deg, rgba(3, 12, 21, 0.94) 0%, rgba(3, 12, 21, 0.68) 12%, transparent 34%),
    linear-gradient(90deg, rgba(3, 12, 21, 0.88) 0%, rgba(3, 12, 21, 0.5) 48%, rgba(3, 12, 21, 0.15) 72%),
    linear-gradient(0deg, rgba(3, 12, 21, 0.78), transparent 55%);
}

.pastor-hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-block: calc(var(--header-height) + 4rem) 7rem;
}

.pastor-hero-content > .eyebrow {
  margin-bottom: 2.5rem;
  color: var(--gold-soft);
}

.pastor-hero h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(5rem, 11vw, 11rem);
  font-weight: 500;
  letter-spacing: -0.065em;
  line-height: 0.76;
}

.pastor-hero h1 span {
  color: var(--gold-soft);
  font-style: italic;
  font-weight: 400;
}

.pastor-role {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-top: 4rem;
  padding-top: 1.4rem;
  border-top: 1px solid rgba(255, 255, 255, 0.4);
}

.pastor-role p {
  margin: 0;
  color: rgba(255, 255, 255, 0.67);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.pastor-role p:last-child {
  justify-self: end;
  text-align: right;
}

.pastor-intro {
  padding-block: clamp(7rem, 14vw, 14rem);
}

.pastor-biography {
  background: var(--paper);
}

.pastor-biography-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
  align-items: start;
  gap: clamp(4rem, 9vw, 10rem);
}

.pastor-biography-heading {
  position: sticky;
  top: calc(var(--header-height) + 3rem);
}

.pastor-biography-heading .eyebrow {
  margin-bottom: 2rem;
  color: var(--gold);
}

.pastor-biography-heading .pastor-deck {
  max-width: 12ch;
  font-size: clamp(3.4rem, 5.8vw, 6.6rem);
}

.pastor-biography-role {
  margin: 2.5rem 0 0;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.7;
  text-transform: uppercase;
}

.pastor-biography-portrait {
  margin: 3.5rem 0 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--sky);
  box-shadow: var(--shadow);
}

.pastor-biography-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 38%;
  filter: saturate(0.76) contrast(1.04);
}

.pastor-biography-copy {
  max-width: 48rem;
  padding-left: clamp(1.5rem, 4vw, 4rem);
  border-left: 1px solid var(--line);
}

.pastor-intro .pastor-biography-copy .lead {
  max-width: none;
  margin: 0;
  color: var(--blue);
  font-size: clamp(1.5rem, 2.5vw, 2.25rem);
  line-height: 1.35;
}

.pastor-biography-copy > p:not(.lead) {
  margin: 2.4rem 0 0;
  color: var(--muted);
  font-size: clamp(1.05rem, 1.35vw, 1.2rem);
  line-height: 1.85;
}

.pastor-biography-copy em {
  color: var(--blue);
}

.pastor-intro-grid {
  display: grid;
  grid-template-columns: minmax(130px, 0.35fr) 1.65fr;
  gap: 4rem;
}

.pastor-deck {
  max-width: 13ch;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(3.5rem, 7.5vw, 7.5rem);
  letter-spacing: -0.055em;
  line-height: 0.97;
}

.pastor-deck em {
  color: var(--gold);
  font-weight: 400;
}

.pastor-intro .lead {
  margin: 4rem 0 0 auto;
}

.pastor-record {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 94svh;
  background: var(--white);
}

.pastor-record-image {
  display: grid;
  place-items: center;
  padding: clamp(3rem, 7vw, 8rem);
  overflow: hidden;
  background: var(--sky);
}

.pastor-record-image img {
  width: min(100%, 760px);
  box-shadow: var(--shadow);
  filter: saturate(0.78) contrast(1.04);
}

.pastor-record-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(5rem, 8vw, 9rem);
}

.pastor-record-copy h2 {
  margin-top: 2.4rem;
}

.pastor-record-copy > p:not(.section-index):not(.source-note) {
  max-width: 37rem;
  margin: 3rem 0 0;
  font-size: 1.15rem;
}

.source-note {
  max-width: 36rem;
  margin: 2rem 0 0;
  padding-top: 1.5rem;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.75rem;
}

.pastor-story {
  padding-block: clamp(8rem, 14vw, 14rem);
  background: var(--ink-deep);
  color: var(--white);
}

.pastor-story-heading {
  display: grid;
  grid-template-columns: minmax(130px, 0.34fr) 1.66fr;
  gap: 4rem;
}

.pastor-story-heading .eyebrow {
  margin-bottom: 1.6rem;
  color: var(--gold-soft);
}

.pastor-story-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-top: clamp(5rem, 9vw, 9rem);
  padding: 1px;
  background: rgba(255, 255, 255, 0.18);
}

.pastor-story-chapter {
  min-height: 620px;
  padding: clamp(2rem, 4vw, 4rem);
  background: var(--ink);
}

.pastor-story-chapter > span {
  color: var(--gold);
  font-family: var(--font-display);
  font-size: clamp(3rem, 5vw, 5rem);
  line-height: 1;
}

.pastor-story-chapter h3 {
  margin: 5rem 0 2rem;
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 4vw, 4.2rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 0.98;
}

.pastor-story-chapter p {
  color: rgba(255, 255, 255, 0.64);
}

.pastor-story-chapter p + p {
  margin-top: 1.5rem;
}

.pastor-story-chapter em {
  color: var(--gold-soft);
}

.pastor-media {
  padding-block: clamp(7rem, 12vw, 12rem);
}

.pastor-media-heading {
  display: grid;
  grid-template-columns: minmax(130px, 0.36fr) 1.64fr;
  gap: 4rem;
}

.pastor-media-grid {
  display: grid;
  grid-template-columns: 1.35fr 0.65fr;
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
  margin-top: clamp(4rem, 8vw, 7rem);
}

.pastor-media-note h3 {
  margin: 1rem 0;
  font-family: var(--font-display);
  font-size: clamp(2.6rem, 4.5vw, 4.7rem);
  font-weight: 500;
  letter-spacing: -0.05em;
  line-height: 0.98;
}

.pastor-media-note p:not(.eyebrow) {
  color: var(--muted);
}

.pastor-photo-essay {
  padding-block: clamp(7rem, 12vw, 12rem);
  overflow: hidden;
  background: var(--ink-deep);
  color: var(--white);
}

.pastor-essay-heading {
  display: grid;
  grid-template-columns: minmax(130px, 0.36fr) 1.64fr;
  gap: 4rem;
}

.pastor-essay-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  grid-template-rows: auto auto auto;
  gap: clamp(0.8rem, 1.5vw, 1.5rem);
  margin-top: clamp(5rem, 9vw, 9rem);
}

.pastor-essay-grid figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: var(--ink);
}

.pastor-essay-main {
  grid-column: 1;
  grid-row: 1 / span 2;
}

.pastor-essay-family {
  grid-column: 1 / span 2;
  grid-row: 3;
  aspect-ratio: 16 / 9;
}

.pastor-essay-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.78) contrast(1.06);
  transition: transform 1.1s var(--ease), filter 500ms ease;
}

.pastor-essay-couple img {
  object-position: center 42%;
}

.pastor-essay-couple {
  aspect-ratio: 3 / 2;
}

.pastor-essay-grid figure:hover img {
  transform: scale(1.035);
  filter: saturate(0.95) contrast(1.03);
}

.pastor-essay-grid figcaption {
  position: absolute;
  right: 1rem;
  bottom: 0.9rem;
  left: 1rem;
  color: var(--white);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.75);
  text-transform: uppercase;
}

.pastor-invitation {
  min-height: 86svh;
  display: grid;
  align-items: center;
  background: var(--ink);
  color: var(--white);
}

.pastor-invitation .shell {
  padding-block: 8rem;
}

.pastor-invitation .eyebrow {
  color: var(--gold-soft);
}

.pastor-invitation h2 {
  max-width: 13ch;
  margin-top: 2.5rem;
}

.pastor-invitation .shell > p:not(.eyebrow) {
  max-width: 40rem;
  color: rgba(255, 255, 255, 0.62);
  font-size: 1.1rem;
}

.pastor-invitation .inline-actions {
  margin-top: 2.5rem;
}

/* TABLET */
@media (max-width: 1080px) {
  :root {
    --header-height: 78px;
  }

  .site-nav {
    gap: 1rem;
  }

  .site-nav > a:not(.nav-cta) {
    font-size: 0.61rem;
  }

  .brand-logo {
    width: 190px;
  }

  .hero-bottom {
    grid-template-columns: 0.7fr 1.3fr;
  }

  .hero-actions {
    grid-column: 2;
  }

  .music-intro {
    grid-template-columns: 0.25fr 1.1fr 0.65fr;
  }

  .music-story {
    grid-template-columns: 0.9fr 1.1fr;
    gap: 4rem;
  }

  .life-heading {
    grid-template-columns: 0.25fr 1.25fr 0.5fr;
  }

  .watch-grid {
    grid-template-columns: 1.3fr 0.7fr;
  }

  .film-layout {
    grid-template-columns: 1fr 0.9fr;
  }
}

/* MOBILE NAV / STACKED EDITORIAL */
@media (max-width: 860px) {
  :root {
    --header-height: 72px;
    --gutter: clamp(1.15rem, 5vw, 2.5rem);
  }

  .site-header,
  .site-header.is-scrolled,
  .site-header-solid {
    height: var(--header-height);
  }

  .menu-toggle {
    display: grid;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 50%;
    background: rgba(4, 17, 29, 0.58);
    backdrop-filter: blur(8px);
  }

  .site-nav {
    position: fixed;
    z-index: 2;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 0;
    padding: calc(var(--header-height) + 2rem) var(--gutter) 3rem;
    background: var(--ink-deep);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-15px);
    transition: opacity 350ms ease, visibility 350ms ease, transform 450ms var(--ease);
  }

  .site-nav.is-open {
    opacity: 1;
    visibility: visible;
    transform: none;
  }

  .site-nav > a:not(.nav-cta) {
    width: 100%;
    padding-block: 0.55rem;
    color: var(--white);
    font-family: var(--font-display);
    font-size: clamp(2.2rem, 8vw, 4rem);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1;
    text-transform: none;
  }

  .site-nav > a:not(.nav-cta)::after {
    display: none;
  }

  .nav-cta {
    margin-top: 2rem;
  }

  .hero {
    min-height: 720px;
  }

  .hero-content {
    padding-bottom: 7rem;
  }

  .hero-eyebrow {
    top: 18%;
  }

  .hero h1 {
    font-size: clamp(4.2rem, 15vw, 7.5rem);
  }

  .hero-bottom {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .hero-intro {
    max-width: 37rem;
  }

  .hero-actions {
    grid-column: auto;
    margin-top: 0.5rem;
  }

  .hero-service {
    top: 19%;
  }

  .scroll-cue {
    display: none;
  }

  .statement-grid,
  .visit-heading,
  .watch-heading,
  .pastor-biography-grid,
  .pastor-intro-grid,
  .pastor-media-heading,
  .pastor-essay-heading,
  .outreach-intro-grid,
  .outreach-chapter-heading,
  .giving-invitation-grid,
  .giving-scripture-grid,
  .giving-methods-heading,
  .pastor-story-heading,
  .harvest-intro-grid,
  .harvest-service-heading,
  .harvest-week-heading {
    grid-template-columns: 1fr;
    gap: 2.2rem;
  }

  .pastor-biography-heading {
    position: static;
  }

  .pastor-biography-heading .pastor-deck {
    max-width: 14ch;
  }

  .pastor-biography-portrait {
    width: min(100%, 720px);
  }

  .pastor-biography-copy {
    max-width: none;
    padding-top: clamp(3rem, 8vw, 6rem);
    padding-left: 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .statement-copy {
    margin-top: 3rem;
  }

  .visit-core {
    grid-template-columns: 1fr;
  }

  .visit-time,
  .visit-address {
    min-height: 290px;
  }

  .visit-time {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .visit-address {
    padding-left: 0;
  }

  .visit-visuals {
    grid-template-columns: 0.8fr 1.2fr;
  }

  .visit-visual-exterior {
    min-height: 560px;
  }

  .visit-visual-welcome {
    min-height: 420px;
    margin-bottom: 3rem;
  }

  .first-visit {
    grid-template-columns: 1fr;
  }

  .first-visit-intro {
    position: static;
  }

  .blue-interlude {
    min-height: 76svh;
  }

  .shepherd-feature,
  .pastor-record {
    grid-template-columns: 1fr;
  }

  .shepherd-portrait {
    min-height: 680px;
  }

  .shepherd-copy {
    min-height: 720px;
  }

  .worship-scene {
    min-height: auto;
  }

  .worship-sticky {
    position: relative;
    height: 85svh;
    min-height: 620px;
  }

  .worship-beats {
    width: 100%;
    margin-top: 0;
    background: var(--ink-deep);
  }

  .worship-beat {
    min-height: auto;
    padding: 5rem var(--gutter);
    border-bottom: 1px solid var(--line-light);
  }

  .worship-beat p {
    font-size: clamp(3.4rem, 13vw, 6.5rem);
  }

  .outreach-feature-grid {
    grid-template-columns: 1fr;
  }

  .outreach-copy {
    max-width: 42rem;
  }

  .outreach-collage {
    min-height: 760px;
  }

  .ministries-heading {
    grid-template-columns: 1fr;
    gap: 2.2rem;
  }

  .ministry-panel,
  .ministry-panel:nth-child(2),
  .ministry-panel:nth-child(3) {
    min-height: 480px;
  }

  .music-intro {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .music-intro h2,
  .music-lead {
    grid-column: auto;
  }

  .music-lead {
    max-width: 31rem;
  }

  .music-story {
    grid-template-columns: 1fr;
    margin-top: 6rem;
  }

  .music-art-stack {
    display: none;
  }

  .release-panel {
    min-height: auto;
    padding-block: 5rem;
  }

  .release-mobile-art {
    width: min(100%, 580px);
    display: block;
    margin-bottom: 3rem;
    box-shadow: var(--shadow);
  }

  .choir-film,
  .film-layout,
  .watch-grid,
  .pastor-media-grid {
    grid-template-columns: 1fr;
  }

  .live-feature,
  .recent-service-grid {
    grid-template-columns: 1fr;
  }

  .live-visual {
    min-height: 520px;
  }

  .live-copy {
    min-height: 480px;
  }

  .service-video-featured figure {
    min-height: 480px;
  }

  .film-frame {
    width: min(100%, 580px);
    justify-self: center;
  }

  .watch-aside > p {
    margin-bottom: 2.5rem;
  }

  .life-heading {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .life-heading h2 {
    grid-column: auto;
  }

  .life-heading > p:last-child {
    max-width: 33rem;
  }

  .life-mosaic {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
  }

  .life-image-a {
    grid-row: auto;
    grid-column: 1 / span 2;
    min-height: 560px;
  }

  .life-image-b,
  .life-image-c {
    min-height: 560px;
  }

  .life-image-d {
    grid-column: 1 / span 2;
    min-height: 420px;
  }

  .harvest-notice-inner {
    grid-template-columns: auto 1fr;
    padding-block: 1.1rem;
  }

  .harvest-notice-theme {
    justify-self: end;
  }

  .harvest-home-grid,
  .harvest-hero-grid,
  .harvest-week-layout,
  .harvest-share-grid {
    grid-template-columns: 1fr;
  }

  .harvest-home-poster,
  .harvest-hero-poster,
  .harvest-week-poster {
    width: min(78%, 580px);
    justify-self: center;
  }

  .harvest-hero-poster {
    transform: none;
  }

  .harvest-hero-copy {
    max-width: 54rem;
  }

  .harvest-service-details {
    grid-template-columns: 1fr;
  }

  .harvest-service-details article {
    min-height: 300px;
  }

  .harvest-week-poster {
    position: static;
  }

  .review-shell {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .review-stage {
    min-height: 440px;
  }

  .review-nav {
    flex-direction: row;
    align-items: center;
  }

  .rating-link {
    grid-column: auto;
  }

  .service-heading,
  .schedule-entry {
    grid-template-columns: 1fr;
  }

  .service-heading-time {
    width: min(100%, 680px);
  }

  .schedule-entry {
    gap: 2.8rem;
  }

  .schedule-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .location-section,
  .contact-grid,
  .outreach-community-grid,
  .outreach-partnership-grid,
  .giving-stewardship {
    grid-template-columns: 1fr;
  }

  .giving-method-grid,
  .pastor-story-grid {
    grid-template-columns: 1fr;
  }

  .giving-method,
  .pastor-story-chapter {
    min-height: 560px;
  }

  .location-copy {
    min-height: 680px;
  }

  .map-wrap {
    min-height: 540px;
  }

  .footer-top {
    grid-template-columns: 1fr 1fr;
  }

  .outreach-logistics-copy {
    grid-template-columns: 1fr;
  }

  .outreach-logistics-copy h2,
  .outreach-logistics-copy .lead {
    grid-column: auto;
  }

  .outreach-logistics-copy .lead {
    max-width: 34rem;
  }

  .outreach-community-main {
    min-height: 620px;
  }

  .footer-links {
    grid-column: 1 / span 2;
  }

  .pastor-essay-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 620px auto auto;
  }

  .pastor-essay-main {
    grid-column: 1 / span 2;
    grid-row: auto;
  }

  .pastor-essay-family {
    grid-column: 1 / span 2;
  }

  .pastor-essay-couple {
    aspect-ratio: 3 / 2;
  }

  .footer-bottom {
    grid-template-columns: 1fr auto;
  }

  .footer-bottom p:nth-child(2) {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .pastor-hero {
    min-height: 740px;
  }

  .pastor-hero-content {
    padding-bottom: 6rem;
  }

  .pastor-hero h1 {
    font-size: clamp(4.5rem, 15vw, 8rem);
  }

  .pastor-record-image {
    min-height: 620px;
  }

  .pastor-record-copy {
    min-height: 700px;
  }

}

/* SMALL PHONES */
@media (max-width: 560px) {
  .display-xxl {
    font-size: clamp(3.7rem, 18vw, 5.4rem);
  }

  .display-xl,
  .display-lg {
    font-size: clamp(3.2rem, 15vw, 4.9rem);
  }

  .brand-logo {
    width: 168px;
  }

  .hero {
    min-height: 690px;
  }

  .outreach-hero {
    min-height: 700px;
  }

  .giving-hero {
    min-height: 720px;
  }

  .outreach-hero-image {
    object-position: 52% center;
  }

  .giving-hero-image {
    object-position: 56% center;
  }

  .outreach-hero-content {
    padding-bottom: 4.5rem;
  }

  .giving-hero-content {
    padding-bottom: 4.5rem;
  }

  .outreach-hero h1 {
    font-size: clamp(5rem, 25vw, 7.5rem);
  }

  .giving-hero h1 {
    font-size: clamp(4.4rem, 21vw, 6.3rem);
  }

  .outreach-hero-deck {
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-top: 3rem;
  }

  .giving-hero-deck {
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-top: 3rem;
  }

  .outreach-hero-deck p {
    max-width: 100%;
    font-size: 0.95rem;
    overflow-wrap: anywhere;
  }

  .hero-media img {
    object-position: 58% center;
  }

  .hero-content {
    padding-bottom: 4.5rem;
  }

  .hero-eyebrow {
    top: 18%;
  }

  .hero h1 {
    margin-bottom: 2rem;
    font-size: clamp(3.7rem, 17.2vw, 5.2rem);
    line-height: 0.81;
  }

  .hero-intro {
    display: none;
  }

  .hero-actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .hero-service {
    display: none;
  }

  .hero-service strong {
    font-size: 1.15rem;
  }

  .opening-statement,
  .visit-section,
  .outreach-feature,
  .ministries-section,
  .music-section,
  .film-section,
  .watch-section,
  .life-section,
  .harvest-home,
  .service-section,
  .contact-section,
  .pastor-intro,
  .pastor-media,
  .pastor-photo-essay,
  .outreach-intro,
  .outreach-chapter,
  .outreach-logistics,
  .outreach-community,
  .outreach-partnership {
    padding-block: 6rem;
  }

  .giving-scripture,
  .giving-methods,
  .pastor-story {
    padding-block: 6rem;
  }

  .harvest-intro,
  .harvest-service,
  .harvest-week,
  .harvest-share {
    padding-block: 6rem;
  }

  .harvest-notice-inner {
    grid-template-columns: 1fr;
    gap: 0.55rem;
    padding-block: 1rem;
  }

  .harvest-notice-kicker {
    display: none;
  }

  .harvest-notice-inner > strong {
    font-size: 1.35rem;
  }

  .harvest-notice-theme {
    justify-self: start;
  }

  .harvest-home-poster,
  .harvest-hero-poster,
  .harvest-week-poster {
    width: 100%;
  }

  .harvest-home-details {
    grid-template-columns: 1fr;
  }

  .harvest-home-details > div {
    min-height: 92px;
  }

  .harvest-hero {
    padding-block: calc(var(--header-height) + 4rem) 6rem;
  }

  .harvest-hero h1 {
    font-size: clamp(4.2rem, 20vw, 6.2rem);
  }

  .harvest-hero-date {
    grid-template-columns: 1fr;
  }

  .harvest-theme-quote {
    padding-left: 1.25rem;
  }

  .harvest-service-details article {
    min-height: 270px;
    padding: 2rem 1.5rem;
  }

  .harvest-agenda > li {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .harvest-agenda time span {
    display: inline;
    margin-right: 0.5rem;
  }

  .harvest-agenda ul strong {
    display: block;
    min-width: 0;
    margin-bottom: 0.2rem;
  }

  .harvest-share-primary {
    align-items: flex-start;
    flex-direction: column;
  }

  .harvest-final {
    min-height: 720px;
  }

  .giving-invitation {
    min-height: 720px;
  }

  .giving-invitation-image img {
    object-position: 62% center;
  }

  .giving-method,
  .pastor-story-chapter {
    min-height: auto;
    padding: 2rem 1.5rem 3rem;
  }

  .pastor-story-chapter h3 {
    margin-top: 3.5rem;
  }

  .giving-stewardship-image {
    min-height: 480px;
  }

  .giving-stewardship-copy {
    padding: 6rem var(--gutter);
  }

  .zelle-number {
    font-size: clamp(2.6rem, 12vw, 4rem);
  }

  .statement-copy {
    margin-top: 2.5rem;
    font-size: 1rem;
  }

  .visit-time {
    min-height: 240px;
    gap: 1rem;
  }

  .giant-day {
    font-size: clamp(4.8rem, 25vw, 7.5rem);
  }

  .visit-address {
    min-height: 320px;
  }

  .visit-address > p {
    font-size: 2.2rem;
  }

  .first-visit {
    margin-top: 6rem;
  }

  .visit-visuals {
    grid-template-columns: 1fr;
    margin-top: 5rem;
  }

  .visit-visual-exterior,
  .visit-visual-welcome {
    min-height: 430px;
    margin-bottom: 0;
  }

  .visit-visual-exterior img {
    object-position: center 36%;
  }

  .outreach-intro-copy {
    margin-top: 2.5rem;
    font-size: 1rem;
  }

  .outreach-pair,
  .outreach-community-pair {
    grid-template-columns: 1fr;
  }

  .outreach-figure,
  .outreach-figure-tall,
  .outreach-community-pair figure,
  .outreach-community-pair figure:last-child {
    min-height: 430px;
    margin-top: 0;
  }

  .outreach-logistics-strip {
    grid-template-columns: repeat(3, 82vw);
    overflow-x: auto;
    scrollbar-width: thin;
  }

  .outreach-logistics-strip figure,
  .outreach-logistics-strip figure:nth-child(2) {
    height: 470px;
    margin-top: 0;
  }

  .outreach-community-main {
    min-height: 480px;
  }

  .outreach-form {
    margin-top: 1rem;
  }

  .visitor-notes article {
    grid-template-columns: 34px 1fr;
    gap: 0 0.8rem;
  }

  .blue-interlude {
    min-height: 70svh;
  }

  .blue-interlude .shell {
    padding-block: 6rem;
  }

  .interlude-line {
    max-width: none;
    font-size: clamp(3.2rem, 15vw, 4.8rem);
  }

  .shepherd-portrait {
    min-height: 520px;
  }

  .shepherd-portrait img {
    width: 86%;
  }

  .shepherd-copy {
    min-height: auto;
    padding-block: 6rem;
  }

  .worship-sticky {
    height: 78svh;
    min-height: 560px;
  }

  .worship-sticky img {
    object-position: 57% center;
  }

  .worship-beat {
    padding-block: 4rem;
  }

  .outreach-collage {
    min-height: 0;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
  }

  .outreach-photo-main {
    grid-column: 1 / span 2;
    grid-row: auto;
    height: 360px;
  }

  .outreach-photo-handoff,
  .outreach-photo-prep,
  .outreach-photo-load {
    grid-row: auto;
    height: 260px;
  }

  .outreach-photo-prep {
    grid-column: 1 / span 2;
  }

  .ministry-grid {
    grid-template-columns: 1fr;
    margin-top: 4rem;
  }

  .ministry-panel,
  .ministry-panel:nth-child(2),
  .ministry-panel:nth-child(3) {
    min-height: 430px;
  }

  .music-story {
    margin-top: 4rem;
  }

  .release-panel {
    padding-block: 4rem;
  }

  .release-panel h3 {
    font-size: clamp(3rem, 14vw, 4.4rem);
  }

  .stream-links {
    align-items: flex-start;
    flex-direction: column;
  }

  .choir-film {
    margin-top: 5rem;
    padding-top: 4rem;
  }

  .video-play {
    right: 1rem;
    bottom: 1rem;
  }

  .video-play span {
    width: 44px;
    height: 44px;
  }

  .film-frame {
    aspect-ratio: 4 / 5;
  }

  .film-frame-title {
    font-size: 22vw;
  }

  .watch-grid {
    margin-top: 3.5rem;
  }

  .live-feature {
    margin-top: 3.5rem;
  }

  .live-visual {
    min-height: 350px;
  }

  .live-visual-copy > p {
    display: none;
  }

  .live-copy {
    min-height: auto;
    padding: 2rem 1.5rem 2.5rem;
  }

  .recent-services-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .service-video,
  .service-video-featured {
    grid-template-columns: 1fr;
  }

  .service-video figure,
  .service-video-featured figure {
    min-height: 0;
    aspect-ratio: 16 / 9;
  }

  .service-video-copy,
  .service-video-featured .service-video-copy {
    min-height: 190px;
    padding: 1.5rem 0;
  }

  .video-kicker {
    top: 1rem;
    left: 1rem;
    font-size: 0.55rem;
  }

  .life-mosaic {
    grid-template-columns: 1fr;
  }

  .life-image-a,
  .life-image-b,
  .life-image-c,
  .life-image-d {
    grid-column: auto;
    min-height: 520px;
  }

  .life-image-a,
  .life-image-d {
    min-height: 360px;
  }

  .life-filmstrip {
    grid-template-columns: repeat(11, 82vw);
  }

  .life-filmstrip figure,
  .life-filmstrip figure:nth-child(even) {
    height: 360px;
    margin-top: 0;
  }

  .pastor-essay-grid {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    margin-top: 4rem;
  }

  .pastor-essay-main,
  .pastor-essay-family {
    grid-column: auto;
  }

  .pastor-essay-grid figure,
  .pastor-essay-main,
  .pastor-essay-family {
    min-height: 430px;
  }

  .pastor-essay-couple {
    min-height: 0 !important;
    aspect-ratio: 3 / 2;
  }

  .review-stage {
    min-height: 370px;
  }

  .review p {
    font-size: clamp(3rem, 14vw, 4.6rem);
  }

  .rating-link {
    align-items: flex-start;
  }

  .rating-link strong {
    font-size: 2.8rem;
  }

  .service-heading-time strong {
    font-size: 24vw;
  }

  .schedule-entry-featured {
    margin-inline: 0;
    padding-inline: 1.25rem;
  }

  .schedule-day span {
    font-size: clamp(3.5rem, 18vw, 5rem);
  }

  .schedule-service {
    grid-template-columns: 1fr;
    gap: 0.8rem;
  }

  .schedule-service-monthly {
    padding: 1.5rem;
  }

  .location-copy {
    min-height: 610px;
  }

  .map-wrap {
    min-height: 430px;
  }

  .prayer-form {
    padding: 1.5rem;
  }

  .footer-top,
  .footer-bottom {
    grid-template-columns: 1fr;
  }

  .footer-scripture {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .footer-links,
  .footer-bottom p:nth-child(2) {
    grid-column: auto;
    grid-row: auto;
  }

  .footer-bottom {
    gap: 1rem;
  }

  .pastor-hero {
    min-height: 700px;
  }

  .pastor-hero-image img {
    object-position: 43% center;
  }

  .pastor-hero-shade {
    background: linear-gradient(0deg, rgba(3, 12, 21, 0.95), rgba(3, 12, 21, 0.25) 72%);
  }

  .pastor-hero h1 {
    font-size: clamp(3.6rem, 15.5vw, 5.8rem);
  }

  .pastor-role {
    grid-template-columns: 1fr;
    margin-top: 3rem;
  }

  .pastor-role p:last-child {
    justify-self: start;
    text-align: left;
  }

  .pastor-deck {
    max-width: none;
    font-size: clamp(3rem, 14vw, 4.8rem);
  }

  .pastor-record-image {
    min-height: 480px;
    padding-inline: var(--gutter);
  }

  .pastor-record-copy {
    min-height: auto;
    padding: 6rem var(--gutter);
  }

  .pastor-invitation {
    min-height: 75svh;
  }
}

@media (max-width: 390px) {
  .hero h1 {
    font-size: clamp(3.6rem, 18vw, 4.5rem);
  }

  .hero-location {
    font-size: 0.6rem;
  }

  .hero-service {
    display: none;
  }

  .button {
    min-height: 48px;
    padding-inline: 1.1rem;
    font-size: 0.67rem;
  }

  .visit-time {
    align-items: center;
  }

  .giant-day {
    font-size: 21vw;
  }

  .visit-time strong {
    font-size: 2rem;
  }

  .video-play {
    font-size: 0.58rem;
  }

  .review p {
    font-size: 12vw;
  }

  .pastor-hero h1 {
    font-size: 15vw;
  }

  .harvest-hero h1 {
    font-size: 17vw;
  }
}

/* PHONE-SPECIFIC REBALANCE
   Desktop keeps the cinematic scale. Phones use a quieter type and spacing
   system so every title, image, form, and action remains fully visible. */
@media (max-width: 600px) {
  :root {
    --header-height: 66px;
    --gutter: clamp(1.1rem, 5vw, 1.5rem);
  }

  body {
    min-width: 0;
    font-size: 15px;
    line-height: 1.62;
  }

  .display-xxl,
  .display-xl,
  .display-lg {
    max-width: 100%;
    font-size: clamp(2.45rem, 10.5vw, 3.35rem);
    letter-spacing: -0.04em;
    line-height: 1;
    text-wrap: balance;
  }

  .display-xxl {
    font-size: clamp(2.75rem, 11.5vw, 3.6rem);
  }

  .lead {
    font-size: 1.02rem;
    line-height: 1.72;
  }

  .eyebrow,
  .section-index {
    font-size: 0.62rem;
    letter-spacing: 0.14em;
  }

  .site-header,
  .site-header.is-scrolled,
  .site-header-solid {
    height: var(--header-height);
  }

  .brand-logo {
    width: 150px;
  }

  .header-scripture {
    position: absolute;
    z-index: 3;
    top: 50%;
    left: calc(var(--gutter) + 156px);
    right: calc(var(--gutter) + 51px);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 0.12rem;
    margin: 0;
    padding-left: 0.5rem;
    border-left: 1px solid rgba(230, 198, 111, 0.38);
    color: rgba(255, 255, 255, 0.8);
    font-family: var(--font-display);
    font-size: 0.49rem;
    font-style: italic;
    letter-spacing: 0.01em;
    line-height: 1.12;
    text-align: center;
    transform: translateY(-50%);
    pointer-events: none;
  }

  .header-scripture span {
    display: block;
  }

  .header-scripture cite {
    color: var(--gold-soft);
    font-family: var(--font-body);
    font-size: 0.38rem;
    font-style: normal;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  body.menu-open .header-scripture {
    opacity: 0;
    visibility: hidden;
  }

  .menu-toggle {
    width: 44px;
    height: 44px;
  }

  .soundtrack-toggle {
    right: var(--gutter);
    bottom: max(0.85rem, env(safe-area-inset-bottom));
    width: 50px;
    min-width: 50px;
    height: 50px;
    grid-template-columns: 1fr;
    gap: 0;
    padding: 4px;
  }

  .soundtrack-note {
    width: 40px;
    height: 40px;
    font-size: 1.2rem;
  }

  .soundtrack-copy,
  .soundtrack-state {
    display: none;
  }

  .menu-toggle > span:nth-child(2) {
    top: 16px;
  }

  .menu-toggle > span:nth-child(3) {
    top: 26px;
  }

  .menu-toggle[aria-expanded="true"] > span:nth-child(2),
  .menu-toggle[aria-expanded="true"] > span:nth-child(3) {
    top: 21px;
  }

  .site-nav {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    min-height: 100svh;
    max-height: 100dvh;
    justify-content: flex-start;
    gap: 0.08rem;
    padding: calc(var(--header-height) + 1rem) var(--gutter) max(1.5rem, env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .site-nav > a:not(.nav-cta) {
    flex: 0 0 auto;
    padding-block: 0.34rem;
    font-size: clamp(1.65rem, 7.2vw, 2.05rem);
    line-height: 1.05;
  }

  .nav-cta {
    flex: 0 0 auto;
    margin-top: 0.9rem;
  }

  /* Some Samsung and in-app browsers treat a blurred fixed header as the
     containing box for its fixed child. Removing that filter while the menu
     is open keeps the navigation overlay at full-viewport height. */
  body.menu-open .site-header,
  body.menu-open .site-header.is-scrolled,
  body.menu-open .site-header-solid {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .button {
    max-width: 100%;
    min-height: 48px;
    padding: 0.8rem 1.15rem;
    font-size: 0.66rem;
    line-height: 1.25;
    text-align: center;
    white-space: normal;
  }

  .text-link {
    max-width: 100%;
    font-size: 0.68rem;
    line-height: 1.45;
  }

  .inline-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 1rem;
  }

  .opening-statement,
  .visit-section,
  .outreach-feature,
  .ministries-section,
  .music-section,
  .film-section,
  .watch-section,
  .life-section,
  .harvest-home,
  .service-section,
  .contact-section,
  .pastor-intro,
  .pastor-media,
  .pastor-photo-essay,
  .outreach-intro,
  .outreach-chapter,
  .outreach-logistics,
  .outreach-community,
  .outreach-partnership,
  .giving-scripture,
  .giving-methods,
  .harvest-intro,
  .harvest-service,
  .harvest-week,
  .harvest-share {
    padding-block: 4.5rem;
  }

  /* Main homepage hero */
  .hero {
    min-height: 0;
    height: auto;
    display: grid;
    grid-template-rows: auto auto;
    padding-top: var(--header-height);
    overflow: visible;
  }

  .hero-media {
    position: relative;
    inset: auto;
    grid-row: 1;
    width: 100%;
    height: auto;
    aspect-ratio: 1.18 / 1;
    overflow: hidden;
    background: var(--ink-deep);
  }

  .hero-media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 52% center;
    transform: none !important;
    filter: saturate(0.9) contrast(1.04);
    will-change: auto;
  }

  .hero-shade {
    display: none;
  }

  .hero-content {
    grid-row: 2;
    min-height: 0;
    align-items: center;
    justify-content: flex-start;
    padding-block: 2.15rem 2.5rem;
    text-align: center;
  }

  .hero-eyebrow {
    position: static;
    width: 100%;
    margin-bottom: 0.8rem;
    text-align: center;
  }

  .hero h1 {
    width: 100%;
    max-width: 100%;
    margin: 0 auto 1.35rem;
    font-size: clamp(3.2rem, 15vw, 4.05rem);
    letter-spacing: -0.05em;
    line-height: 0.86;
    text-align: center;
  }

  .hero h1 span {
    line-height: 1.08;
  }

  .hero-title-name {
    font-size: 0.74em;
  }

  .hero-title-rest {
    font-size: 0.66em;
    letter-spacing: -0.045em;
    line-height: 1;
    white-space: nowrap;
  }

  .hero-bottom {
    width: 100%;
    justify-items: center;
    gap: 0.65rem;
    padding-top: 0.85rem;
  }

  .hero-location {
    font-size: 0.58rem;
    text-align: center;
  }

  .hero-actions {
    width: 100%;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 0.75rem;
    margin-top: 0.2rem;
  }

  .hero-service {
    top: calc(var(--header-height) + 0.75rem);
    right: var(--gutter);
    padding: 0.55rem 0.7rem;
    border: 1px solid rgba(255, 255, 255, 0.26);
    background: rgba(4, 17, 29, 0.68);
    backdrop-filter: blur(8px);
  }

  .harvest-notice-inner {
    min-width: 0;
    gap: 0.45rem;
    padding-block: 0.9rem 1rem;
  }

  .harvest-notice-inner > span,
  .harvest-notice-inner > strong {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .harvest-notice-inner > strong {
    font-size: 1.08rem;
    line-height: 1.15;
  }

  .harvest-notice-inner > span {
    font-size: 0.58rem;
  }

  .statement-copy,
  .outreach-intro-copy {
    margin-top: 1.8rem;
    font-size: 0.98rem;
    line-height: 1.75;
  }

  /* Visit and welcome */
  .visit-core {
    margin-top: 3rem;
  }

  .visit-time,
  .visit-address {
    min-height: auto;
    padding-block: 2.5rem;
  }

  .visit-time {
    align-items: flex-end;
    gap: 1.2rem;
  }

  .giant-day {
    font-size: clamp(3.8rem, 17vw, 5.1rem);
    line-height: 0.78;
  }

  .visit-time strong {
    font-size: 1.9rem;
  }

  .visit-address > p {
    font-size: 1.85rem;
  }

  .first-visit {
    margin-top: 4rem;
  }

  .first-visit-intro h3 {
    font-size: clamp(2.35rem, 10vw, 3rem);
    line-height: 1.02;
  }

  .visitor-notes article {
    padding-block: 1.8rem;
  }

  .visitor-notes h4 {
    font-size: 1.55rem;
  }

  .visit-visuals {
    margin-top: 3.5rem;
  }

  .visit-visual-exterior,
  .visit-visual-welcome {
    min-height: 340px;
  }

  /* Quiet cinematic moments */
  .blue-interlude {
    min-height: auto;
  }

  .blue-interlude .shell {
    padding-block: 5.5rem;
  }

  .blue-interlude .eyebrow {
    margin-bottom: 1.8rem;
  }

  .interlude-line,
  .worship-beat p {
    max-width: 12ch;
    font-size: clamp(2.5rem, 10.5vw, 3.25rem);
    line-height: 1.02;
  }

  .interlude-orbit {
    right: -26vw;
    bottom: -8vw;
    width: 76vw;
    height: 76vw;
    font-size: 9vw;
  }

  .shepherd-portrait {
    min-height: 420px;
  }

  .shepherd-portrait img {
    width: 90%;
  }

  .shepherd-copy {
    min-height: auto;
    padding-block: 4.5rem;
  }

  .worship-sticky {
    height: 58svh;
    min-height: 420px;
    max-height: 560px;
  }

  .worship-beat {
    padding-block: 3.5rem;
  }

  /* Outreach and ministry photography */
  .outreach-collage {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 0.65rem;
  }

  .outreach-photo-main,
  .outreach-photo-handoff,
  .outreach-photo-prep,
  .outreach-photo-load {
    grid-column: 1;
    grid-row: auto;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
  }

  .outreach-photo-main {
    aspect-ratio: 16 / 10;
  }

  .ministry-grid {
    margin-top: 3rem;
  }

  .ministry-panel,
  .ministry-panel:nth-child(2),
  .ministry-panel:nth-child(3) {
    min-height: 360px;
  }

  /* Music, film, and watch */
  .music-story,
  .choir-film {
    margin-top: 3.5rem;
  }

  .release-panel {
    padding-block: 3.5rem;
  }

  .track-list li {
    grid-template-columns: 34px minmax(0, 1fr) 40px;
    gap: 0.75rem;
  }

  .release-mobile-art {
    margin-bottom: 2rem;
  }

  .release-panel h3,
  .choir-film h3,
  .live-copy h3,
  .service-video-featured .service-video-copy h4,
  .pastor-media-note h3 {
    font-size: clamp(2.3rem, 9.5vw, 3rem);
    line-height: 1;
  }

  .film-section {
    min-height: 0;
  }

  .film-copy h2,
  .film-copy .lead {
    margin-top: 1.8rem;
  }

  .film-frame {
    aspect-ratio: 4 / 5;
  }

  .film-frame-title {
    right: 1.2rem;
    bottom: 1.2rem;
    left: 1.2rem;
    font-size: clamp(3.35rem, 15vw, 4.4rem);
    line-height: 0.8;
  }

  .watch-grid,
  .live-feature {
    margin-top: 3rem;
  }

  .live-visual {
    min-height: 290px;
  }

  .live-copy,
  .service-video-copy,
  .service-video-featured .service-video-copy {
    min-height: auto;
  }

  .service-video-copy,
  .service-video-featured .service-video-copy {
    padding: 1.25rem 0 2rem;
  }

  /* Church life and reviews */
  .life-mosaic {
    gap: 0.7rem;
  }

  .life-image-a,
  .life-image-b,
  .life-image-c,
  .life-image-d {
    min-height: 340px;
  }

  .life-image-a,
  .life-image-d {
    min-height: 280px;
  }

  .life-filmstrip {
    grid-template-columns: repeat(11, 78vw);
  }

  .life-filmstrip figure,
  .life-filmstrip figure:nth-child(even) {
    height: 300px;
  }

  .reviews-section {
    min-height: 0;
  }

  .review-shell {
    gap: 1.5rem;
    padding-block: 5rem;
  }

  .review-stage {
    min-height: 280px;
  }

  .review p {
    font-size: clamp(2.25rem, 9.5vw, 3rem);
    line-height: 1.05;
  }

  /* Adult Harvest homepage feature */
  .harvest-home-grid {
    gap: 3rem;
  }

  .harvest-home-copy > .eyebrow {
    margin-top: 0;
  }

  .harvest-home-copy h2 {
    margin-top: 1.1rem;
  }

  .harvest-home-copy .lead {
    margin-block: 1.7rem;
    font-size: 0.98rem;
  }

  .harvest-home-details {
    margin-block: 1.8rem;
  }

  .harvest-home-details > div {
    min-height: 82px;
  }

  /* Weekly schedule, location, and prayer */
  .service-heading-time {
    width: 100%;
  }

  .service-heading-time strong {
    font-size: clamp(3.8rem, 17vw, 5rem);
  }

  .service-heading-time em {
    font-size: 1.8rem;
  }

  .weekly-schedule {
    margin-top: 3.5rem;
  }

  .schedule-entry {
    gap: 1.7rem;
    padding-block: 2.2rem;
  }

  .schedule-day {
    gap: 0.8rem;
  }

  .schedule-day span {
    font-size: clamp(2.55rem, 11vw, 3.35rem);
    line-height: 0.95;
  }

  .schedule-content > h3,
  .schedule-service h3 {
    font-size: clamp(1.65rem, 7.5vw, 2.2rem);
    line-height: 1.05;
  }

  .location-copy {
    min-height: auto;
    padding-block: 4.5rem;
  }

  .location-copy .eyebrow {
    margin-top: 0;
  }

  .map-wrap {
    min-height: 350px;
  }

  .contact-grid {
    gap: 3rem;
  }

  .contact-details {
    margin-top: 2.5rem;
  }

  .contact-details a {
    font-size: 1.65rem;
  }

  .prayer-form {
    padding: 1.25rem;
  }

  /* Giving page */
  .giving-hero,
  .outreach-hero,
  .pastor-hero {
    min-height: max(640px, 100svh);
    height: auto;
  }

  .giving-hero-content,
  .outreach-hero-content,
  .pastor-hero-content {
    min-height: max(640px, 100svh);
    height: auto;
    padding-block: calc(var(--header-height) + 3rem) 3.5rem;
  }

  .giving-hero h1,
  .outreach-hero h1 {
    max-width: 100%;
    margin-top: 1.3rem;
    font-size: clamp(3.5rem, 15.5vw, 4.35rem);
    letter-spacing: -0.055em;
    line-height: 0.88;
  }

  .giving-hero h1 {
    font-size: clamp(3rem, 13.2vw, 3.65rem);
  }

  .giving-hero-deck,
  .outreach-hero-deck {
    gap: 1rem;
    margin-top: 2.3rem;
    padding-top: 1rem;
  }

  .giving-hero-deck p,
  .outreach-hero-deck p {
    font-size: 0.92rem;
    line-height: 1.65;
  }

  .giving-scripture blockquote p {
    font-size: clamp(2.45rem, 10.5vw, 3.15rem);
    line-height: 1.04;
  }

  .giving-method-grid {
    margin-top: 3.5rem;
  }

  .giving-method {
    min-height: auto;
    gap: 3rem;
    padding: 2.2rem 1.4rem;
  }

  .giving-method-number,
  .giving-method h3 {
    font-size: clamp(2.8rem, 12vw, 3.6rem);
    line-height: 0.95;
  }

  .zelle-number {
    font-size: clamp(2.15rem, 10.5vw, 3rem);
  }

  .giving-stewardship-image {
    min-height: 370px;
  }

  .giving-stewardship-copy {
    padding: 4.5rem var(--gutter);
  }

  /* Outreach page */
  .outreach-figure,
  .outreach-figure-tall,
  .outreach-community-pair figure,
  .outreach-community-pair figure:last-child {
    min-height: 340px;
  }

  .outreach-logistics-strip {
    grid-template-columns: repeat(3, 78vw);
    scroll-snap-type: x proximity;
  }

  .outreach-logistics-strip figure,
  .outreach-logistics-strip figure:nth-child(2) {
    height: 360px;
    scroll-snap-align: center;
  }

  .outreach-community-main {
    min-height: 400px;
  }

  .outreach-community-copy .eyebrow,
  .outreach-partnership-copy .eyebrow {
    margin-top: 2rem;
  }

  .outreach-contact-details a {
    font-size: 1.9rem;
  }

  .outreach-contact-details .outreach-email {
    max-width: 100%;
    font-size: 0.8rem;
    overflow-wrap: anywhere;
  }

  /* Shepherd page */
  .pastor-hero h1 {
    max-width: 100%;
    font-size: clamp(2.85rem, 12.3vw, 3.4rem);
    letter-spacing: -0.05em;
    line-height: 0.88;
  }

  .pastor-hero-content > .eyebrow {
    margin-bottom: 1.4rem;
  }

  .pastor-role {
    gap: 1rem;
    margin-top: 2.2rem;
    padding-top: 1rem;
  }

  .pastor-role p {
    font-size: 0.58rem;
    letter-spacing: 0.065em;
    line-height: 1.65;
    overflow-wrap: anywhere;
  }

  .pastor-biography-heading .pastor-deck,
  .pastor-deck {
    max-width: 100%;
    font-size: clamp(2.45rem, 10.5vw, 3.15rem);
    line-height: 1.02;
  }

  .pastor-biography-role {
    margin-top: 1.8rem;
    font-size: 0.6rem;
  }

  .pastor-biography-portrait {
    margin-top: 2.5rem;
  }

  .pastor-biography-copy {
    padding-top: 3rem;
  }

  .pastor-intro .pastor-biography-copy .lead {
    font-size: 1.22rem;
    line-height: 1.5;
  }

  .pastor-biography-copy > p:not(.lead) {
    margin-top: 1.8rem;
    font-size: 0.98rem;
    line-height: 1.75;
  }

  .pastor-essay-grid {
    margin-top: 3rem;
  }

  .pastor-essay-grid figure,
  .pastor-essay-main,
  .pastor-essay-family {
    min-height: 340px;
  }

  .pastor-essay-family {
    min-height: 0 !important;
    aspect-ratio: 2044 / 1363;
  }

  .pastor-essay-family img {
    object-fit: contain;
    object-position: center;
  }

  .pastor-invitation,
  .harvest-final,
  .giving-invitation {
    min-height: 0;
  }

  .pastor-invitation .shell,
  .harvest-final .shell {
    padding-block: 5.5rem;
  }

  /* Dedicated Harvest page */
  .harvest-hero {
    min-height: 0;
    padding-block: calc(var(--header-height) + 3.5rem) 4.5rem;
  }

  .harvest-hero-grid {
    gap: 3.5rem;
  }

  .harvest-hero h1 {
    max-width: 100%;
    margin-top: 1.5rem;
    font-size: clamp(3.15rem, 13.5vw, 4rem);
    letter-spacing: -0.055em;
    line-height: 0.88;
  }

  .harvest-hero-date {
    gap: 1.3rem;
    margin-top: 2.5rem;
  }

  .harvest-hero-date strong {
    font-size: 2rem;
  }

  .harvest-hero-poster,
  .harvest-home-poster,
  .harvest-week-poster {
    width: 100%;
  }

  .harvest-intro .lead,
  .harvest-theme-quote {
    margin-top: 2.5rem;
  }

  .harvest-theme-quote p {
    font-size: clamp(1.8rem, 8vw, 2.35rem);
  }

  .harvest-service-details {
    margin-top: 3.5rem;
  }

  .harvest-service-details article {
    min-height: 220px;
  }

  .harvest-service-details strong {
    font-size: clamp(2.25rem, 9.5vw, 2.9rem);
  }

  .harvest-week-layout {
    gap: 3.5rem;
    margin-top: 3.5rem;
  }

  .harvest-agenda > li {
    padding-block: 1.7rem;
  }

  .harvest-agenda h3 {
    font-size: 1.8rem;
  }

  .harvest-share-grid {
    gap: 3.5rem;
  }

  .harvest-share h2 {
    margin-top: 1.5rem;
  }

  /* Footer */
  .site-footer {
    padding-top: 4.5rem;
  }

  .footer-top {
    gap: 2.5rem;
  }

  .footer-name,
  .footer-scripture blockquote {
    font-size: clamp(1.9rem, 8.5vw, 2.45rem);
  }
}

@media (max-width: 390px) {
  .display-xxl,
  .display-xl,
  .display-lg {
    font-size: clamp(2.35rem, 10.5vw, 2.8rem);
  }

  .display-xxl {
    font-size: clamp(2.6rem, 11.5vw, 3rem);
  }

  .hero h1 {
    font-size: clamp(3.2rem, 15vw, 3.75rem);
  }

  .giving-hero h1 {
    font-size: clamp(2.95rem, 13.2vw, 3.35rem);
  }

  .outreach-hero h1 {
    font-size: clamp(3.2rem, 15vw, 3.8rem);
  }

  .pastor-hero h1 {
    font-size: clamp(2.7rem, 12vw, 3.05rem);
  }

  .harvest-hero h1 {
    font-size: clamp(2.95rem, 13vw, 3.4rem);
  }
}

/* FILM MINISTRY SERIES COLLECTION */
.series-collection {
  margin-top: clamp(6rem, 11vw, 11rem);
  padding-top: clamp(4rem, 7vw, 7rem);
  border-top: 1px solid var(--line-light);
}

.series-collection-heading {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(280px, 0.28fr);
  align-items: end;
  gap: clamp(2.5rem, 7vw, 7rem);
}

.series-collection-heading .eyebrow {
  color: var(--gold-soft);
}

.series-collection-heading h3 {
  margin: 1.15rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(3rem, 6vw, 6rem);
  font-weight: 500;
  letter-spacing: -0.055em;
  line-height: 0.9;
}

.series-collection-heading h3 em {
  color: var(--gold);
  font-weight: 400;
}

.series-collection-heading > p {
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
}

.series-collection-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.25rem, 2.5vw, 2.5rem);
  margin-top: clamp(3rem, 6vw, 6rem);
}

.series-title-card {
  min-width: 0;
  display: block;
}

.series-title-visual {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--ink-deep);
  box-shadow: var(--shadow);
}

.series-title-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: linear-gradient(180deg, transparent 60%, rgba(4, 9, 18, 0.62));
  pointer-events: none;
}

.series-title-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 750ms var(--ease), filter 450ms ease;
}

.series-title-card:hover .series-title-visual img {
  transform: scale(1.03);
  filter: saturate(1.08) contrast(1.04);
}

.series-title-visual i {
  position: absolute;
  z-index: 1;
  right: 1rem;
  bottom: 0.9rem;
  padding: 0.42rem 0.65rem;
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: var(--white);
  font-size: 0.58rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.series-title-copy {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.25rem;
  padding-top: 1.25rem;
}

.series-title-copy strong {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 500;
  letter-spacing: -0.045em;
  line-height: 1;
}

.series-title-copy strong em {
  color: var(--gold);
  font-size: 0.72em;
  font-weight: 400;
}

.series-title-copy small {
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.61rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* FEATURED SERIES PAGES */
.series-teaser {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr);
  align-items: center;
  gap: clamp(2.5rem, 6vw, 6rem);
  margin-top: clamp(6rem, 11vw, 11rem);
  padding-top: clamp(4rem, 7vw, 7rem);
  border-top: 1px solid var(--line-light);
}

.series-teaser-art {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--ink-deep);
  box-shadow: var(--shadow);
}

.series-teaser-art::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: linear-gradient(180deg, transparent 58%, rgba(4, 9, 18, 0.72));
  pointer-events: none;
}

.series-teaser-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 850ms var(--ease), filter 500ms ease;
}

.series-teaser-art:hover img {
  transform: scale(1.025);
  filter: saturate(1.08) contrast(1.04);
}

.series-teaser-play {
  position: absolute;
  z-index: 1;
  right: 1.25rem;
  bottom: 1.1rem;
  padding: 0.45rem 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: var(--white);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.series-teaser-copy .eyebrow {
  color: var(--gold-soft);
}

.series-teaser-copy h3 {
  margin: 1.15rem 0 1.6rem;
  font-family: var(--font-display);
  font-size: clamp(3rem, 6vw, 6rem);
  font-weight: 600;
  letter-spacing: -0.055em;
  line-height: 0.82;
}

.series-teaser-copy h3 em {
  display: block;
  color: var(--gold);
  font-size: 0.55em;
  font-weight: 400;
  letter-spacing: 0;
}

.series-teaser-copy > p:not(.eyebrow) {
  color: rgba(255, 255, 255, 0.66);
}

.series-teaser-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin: 1.7rem 0 2rem;
}

.series-teaser-meta span {
  padding: 0.42rem 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.ipenija-page {
  background: #0d0d10;
}

.gedegede-page {
  background: #0d0d10;
}

.gedegede-page .series-hero h1 {
  font-size: clamp(4.6rem, 11.5vw, 9.5rem);
}

.series-hero {
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  padding-block: calc(var(--header-height) + 5rem) clamp(5rem, 9vw, 8rem);
  background: #080a12;
  color: var(--white);
}

.series-hero-media,
.series-hero-shade {
  position: absolute;
  inset: 0;
}

.series-hero-media {
  inset: var(--header-height) 0 0 42%;
}

.series-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.06);
  filter: saturate(0.84) contrast(1.06) brightness(0.7);
}

.series-hero-shade {
  background: linear-gradient(90deg, rgba(4, 7, 14, 0.96) 0%, rgba(4, 7, 14, 0.78) 42%, rgba(4, 7, 14, 0.22) 78%), linear-gradient(0deg, rgba(4, 7, 14, 0.92), transparent 52%);
}

.series-hero-content {
  position: relative;
  z-index: 1;
}

.series-hero-content > * {
  max-width: 55%;
}

.series-hero-content .eyebrow {
  color: var(--gold-soft);
}

.series-hero h1 {
  max-width: 9ch;
  margin: 1rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(5.5rem, 14vw, 12rem);
  font-weight: 600;
  letter-spacing: -0.075em;
  line-height: 0.78;
}

.series-secondary-title {
  margin: 0.7rem 0 0;
  color: var(--gold);
  font-family: var(--font-display);
  font-size: clamp(2.1rem, 5vw, 4.8rem);
  font-style: italic;
  line-height: 1;
}

.series-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-top: 2.2rem;
}

.series-hero-meta span {
  padding: 0.45rem 0.72rem;
  border: 1px solid rgba(255, 255, 255, 0.3);
  font-size: 0.63rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.series-production-credit {
  margin: 1.8rem 0 0;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.series-hero-description {
  max-width: 39rem;
  margin: 1.1rem 0 1.9rem;
  color: rgba(255, 255, 255, 0.72);
  font-size: clamp(1rem, 1.35vw, 1.16rem);
}

.series-network-credit {
  position: absolute;
  z-index: 1;
  right: var(--gutter);
  bottom: 2rem;
  margin: 0;
  color: rgba(255, 255, 255, 0.58);
  font-size: 0.63rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.series-network-credit strong {
  color: rgba(255, 255, 255, 0.84);
}

.series-intro {
  padding-block: clamp(6rem, 11vw, 11rem);
  background: var(--paper);
}

.series-intro-grid {
  display: grid;
  grid-template-columns: minmax(150px, 0.28fr) minmax(0, 0.72fr);
  gap: clamp(2.5rem, 7vw, 7rem);
}

.series-intro .lead {
  max-width: 50rem;
  margin-top: clamp(2.5rem, 5vw, 5rem);
}

.series-intro cite,
.series-continuation cite {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.15em;
}

.series-credit-ledger {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: clamp(3rem, 6vw, 6rem);
  background: var(--line);
  border: 1px solid var(--line);
}

.series-credit-ledger div {
  min-height: 170px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 2rem;
  padding: 1.5rem;
  background: var(--white);
}

.series-credit-ledger span {
  color: var(--muted);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.series-credit-ledger strong {
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2vw, 1.7rem);
  font-weight: 500;
  line-height: 1.2;
}

.episode-section {
  padding-block: clamp(6rem, 11vw, 11rem);
  background: #0d0d10;
  color: var(--white);
}

.episode-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 0.36fr);
  align-items: end;
  gap: clamp(2.5rem, 7vw, 7rem);
}

.episode-heading h2 {
  margin-top: 2rem;
}

.episode-heading > p {
  margin: 0 0 0.5rem;
  color: rgba(255, 255, 255, 0.58);
}

.episode-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(2rem, 3vw, 3.2rem) clamp(1rem, 2vw, 2rem);
  margin-top: clamp(4rem, 8vw, 8rem);
}

.episode-card {
  min-width: 0;
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: left;
}

.episode-card-visual {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--ink-deep);
}

.episode-card-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, 0.14);
  pointer-events: none;
}

.episode-card-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms var(--ease), filter 450ms ease;
}

.episode-card:hover .episode-card-visual img {
  transform: scale(1.035);
  filter: saturate(1.1) contrast(1.05);
}

.episode-play {
  position: absolute;
  z-index: 2;
  right: 1rem;
  bottom: 1rem;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.48);
  border-radius: 50%;
  background: rgba(4, 9, 18, 0.65);
  color: var(--white);
  font-size: 0.72rem;
  font-style: normal;
  backdrop-filter: blur(8px);
  transition: background-color 250ms ease, color 250ms ease, transform 250ms var(--ease);
}

.episode-card:hover .episode-play {
  transform: scale(1.08);
  background: var(--white);
  color: var(--ink);
}

.episode-placeholder {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(1.2rem, 3vw, 2.4rem);
  background: #101c2d;
}

.episode-placeholder::before {
  content: "";
  position: absolute;
  inset: 12% 9%;
  border-top: 1px solid rgba(214, 174, 87, 0.32);
  border-bottom: 1px solid rgba(214, 174, 87, 0.2);
}

.episode-placeholder b,
.episode-placeholder small {
  position: relative;
  z-index: 1;
}

.episode-placeholder b {
  color: var(--white);
  font-family: var(--font-display);
  font-size: clamp(2rem, 4.2vw, 4rem);
  letter-spacing: -0.06em;
  line-height: 0.82;
}

.episode-placeholder small {
  margin-top: 0.5rem;
  color: var(--gold);
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2vw, 1.8rem);
  font-style: italic;
}

.episode-placeholder-final small {
  font-style: normal;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.episode-card-copy {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: baseline;
  gap: 0.9rem;
  padding-top: 1rem;
}

.episode-card-copy small,
.episode-card-copy em {
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.6rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.episode-card-copy strong {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 500;
}

.series-continuation {
  padding-block: clamp(6rem, 10vw, 10rem);
  background: var(--paper-warm);
}

.series-continuation-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.62fr) minmax(300px, 0.38fr);
  align-items: end;
  gap: clamp(3rem, 8vw, 8rem);
}

.series-continuation h2 {
  margin-top: 2rem;
}

.series-continuation-copy p {
  margin: 0 0 2rem;
  color: var(--muted);
  font-size: 1.08rem;
}

body.series-modal-open {
  overflow: hidden;
}

.series-modal[hidden] {
  display: none;
}

.series-modal {
  position: fixed;
  z-index: 10000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 3vw, 3rem);
}

.series-modal-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: rgba(1, 5, 10, 0.92);
  cursor: pointer;
  backdrop-filter: blur(12px);
}

.series-modal-panel {
  position: relative;
  z-index: 1;
  width: min(1100px, 100%);
  max-height: calc(100svh - 2rem);
  overflow: auto;
  background: #080b11;
  color: var(--white);
  box-shadow: 0 40px 120px rgba(0, 0, 0, 0.62);
}

.series-modal-bar,
.series-modal-footer {
  display: grid;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.25rem;
}

.series-modal-bar {
  grid-template-columns: 1fr auto 1fr;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.series-modal-bar p {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-align: center;
  text-transform: uppercase;
}

.series-modal-bar button,
.series-modal-footer button,
.series-modal-footer a {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--white);
  cursor: pointer;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.series-modal-bar button:first-child {
  justify-self: start;
}

.series-modal-bar button:last-child {
  justify-self: end;
}

.series-modal-bar button:disabled {
  color: rgba(255, 255, 255, 0.24);
  cursor: default;
}

.series-modal-player {
  aspect-ratio: 16 / 9;
  background: #000;
}

.series-modal-player iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.series-modal-footer {
  grid-template-columns: 1fr auto;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.series-modal-footer a {
  color: var(--gold-soft);
}

@media (max-width: 980px) {
  .series-collection-heading {
    grid-template-columns: 1fr;
  }

  .series-collection-heading > p {
    max-width: 40rem;
  }

  .series-teaser,
  .series-intro-grid,
  .episode-heading,
  .series-continuation-grid {
    grid-template-columns: 1fr;
  }

  .series-teaser-art {
    order: 2;
  }

  .series-teaser-copy {
    order: 1;
    max-width: 43rem;
  }

  .series-credit-ledger {
    grid-template-columns: 1fr;
  }

  .series-credit-ledger div {
    min-height: 130px;
  }

  .episode-heading > p {
    max-width: 38rem;
  }

  .episode-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .series-collection {
    margin-top: 4.5rem;
    padding-top: 3.5rem;
  }

  .series-collection-heading h3 {
    font-size: clamp(2.8rem, 13vw, 3.8rem);
  }

  .series-collection-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .series-title-copy {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.7rem;
  }

  .series-title-copy strong {
    font-size: clamp(1.9rem, 9vw, 2.5rem);
  }

  .series-teaser {
    gap: 2.5rem;
    margin-top: 4.5rem;
    padding-top: 3.5rem;
  }

  .series-teaser-copy h3 {
    font-size: clamp(3rem, 15vw, 4.2rem);
  }

  .series-hero {
    min-height: 0;
    padding-block: calc(var(--header-height) + 4rem) 5rem;
  }

  .series-hero-media img {
    object-position: 64% center;
    opacity: 0.6;
  }

  .series-hero-media {
    inset: 0;
  }

  .series-hero-content > * {
    max-width: 100%;
  }

  .series-hero-shade {
    background: linear-gradient(90deg, rgba(4, 7, 14, 0.96), rgba(4, 7, 14, 0.58)), linear-gradient(0deg, rgba(4, 7, 14, 0.96), transparent 58%);
  }

  .series-hero h1 {
    font-size: clamp(3.55rem, 17vw, 5rem);
    line-height: 0.83;
  }

  .gedegede-page .series-hero h1 {
    font-size: clamp(3.05rem, 14.2vw, 4.15rem);
  }

  .series-secondary-title {
    font-size: clamp(2rem, 10vw, 2.8rem);
  }

  .series-hero-description {
    max-width: 31rem;
    font-size: 0.98rem;
  }

  .series-network-credit {
    position: relative;
    right: auto;
    bottom: auto;
    width: min(var(--shell), calc(100% - var(--gutter) - var(--gutter)));
    margin: 2.5rem auto 0;
  }

  .series-credit-ledger div {
    min-height: 112px;
    padding: 1.2rem;
  }

  .episode-grid {
    grid-template-columns: 1fr;
    gap: 2.4rem;
  }

  .episode-card-copy strong {
    font-size: 1.25rem;
  }

  .series-continuation-copy p {
    font-size: 1rem;
  }

  .series-modal {
    padding: 0;
  }

  .series-modal-panel {
    width: 100%;
    max-height: 100svh;
  }

  .series-modal-bar {
    grid-template-columns: 1fr 1fr;
    padding: 0.9rem 1rem;
  }

  .series-modal-bar p {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .series-modal-bar button:first-child,
  .series-modal-bar button:last-child {
    grid-row: 2;
    white-space: nowrap;
  }

  .series-modal-footer {
    padding: 0.9rem 1rem;
  }
}

@media (max-width: 390px) {
  .series-hero h1 {
    font-size: clamp(3.15rem, 16.5vw, 4rem);
  }

  .series-hero-meta {
    align-items: flex-start;
    flex-direction: column;
  }

  .series-production-credit {
    font-size: 0.68rem;
  }

  .episode-placeholder b {
    font-size: 2.6rem;
  }

  .series-modal-bar button,
  .series-modal-footer button,
  .series-modal-footer a {
    font-size: 0.58rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .reveal {
    opacity: 1;
    transform: none;
  }

  .hero-media img,
  .worship-sticky img,
  .film-frame img {
    transform: none !important;
  }

  .series-teaser-art img,
  .series-title-visual img,
  .episode-card-visual img,
  .series-hero-media img {
    transform: none !important;
  }
}
