:root {
  --red: #8f1d2c;
  --red-dark: #68131e;
  --green: #173f32;
  --green-soft: #315f4e;
  --gold: #c89b48;
  --ink: #17201c;
  --muted: #616963;
  --cream: #f6f0e5;
  --ivory: #fffdf8;
  --white: #ffffff;
  --line: #ddd7ca;
  --shadow: 0 24px 70px rgba(31, 26, 18, 0.12);
  --radius-sm: 0.55rem;
  --radius-md: 1.15rem;
  --radius-lg: 2rem;
  --shell: min(1180px, calc(100% - 2rem));
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, Aptos, "Segoe UI", Arial, sans-serif;
}

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

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--ivory);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}

img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { text-wrap: balance; }
h1, h2 {
  font-family: var(--serif);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1.04;
}
h1 { font-size: clamp(3rem, 7vw, 6.6rem); }
h2 { font-size: clamp(2.2rem, 4.6vw, 4.2rem); }
h3 { font-size: 1.3rem; line-height: 1.25; }

.shell { width: var(--shell); margin-inline: auto; }
.section { padding: clamp(4.5rem, 9vw, 8rem) 0; }
.section--cream { background: var(--cream); }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.skip-link {
  position: fixed;
  left: 1rem;
  top: 1rem;
  z-index: 1000;
  padding: 0.65rem 1rem;
  background: var(--white);
  color: var(--ink);
  border-radius: 0.4rem;
  transform: translateY(-180%);
}
.skip-link:focus { transform: none; }

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

.service-bar {
  background: var(--green);
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.78rem;
  letter-spacing: 0.035em;
}
.service-bar__inner {
  min-height: 2.7rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}
.service-bar p { margin: 0; }
.service-bar a { text-decoration-color: rgba(255,255,255,.4); text-underline-offset: .2em; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 253, 248, 0.94);
  border-bottom: 1px solid rgba(221, 215, 202, 0.75);
  backdrop-filter: blur(16px);
}
.nav-wrap { min-height: 5.7rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .85rem; text-decoration: none; }
.brand img { width: 58px; height: 53px; object-fit: contain; border-radius: 50%; }
.brand__words { display: grid; line-height: 1.05; }
.brand__words strong { font-family: var(--serif); font-size: 1.25rem; font-weight: 600; }
.brand__words small { margin-top: .2rem; color: var(--red); font-size: .68rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.primary-nav { display: flex; align-items: center; gap: clamp(.8rem, 1.55vw, 1.55rem); }
.primary-nav a { position: relative; color: #313833; font-size: .89rem; font-weight: 700; text-decoration: none; }
.primary-nav a:not(.nav-give)::after {
  position: absolute;
  content: "";
  left: 0;
  right: 100%;
  bottom: -.52rem;
  height: 2px;
  background: var(--red);
  transition: right .22s ease;
}
.primary-nav a:hover::after, .primary-nav a[aria-current="page"]::after { right: 0; }
.primary-nav .nav-give { padding: .72rem 1.25rem; border-radius: 99px; background: var(--red); color: var(--white); }
.primary-nav .nav-give:hover { background: var(--red-dark); }
.primary-nav .nav-live { display: inline-flex; align-items: center; gap: .42rem; color: var(--red); }
.mobile-menu-heading, .nav-directions-mobile { display: none; }
.nav-live--active > span, .button__live-dot { width: .5rem; height: .5rem; flex: 0 0 auto; border-radius: 50%; background: #d92d43; box-shadow: 0 0 0 .25rem rgba(217,45,67,.12); }
.menu-button { display: none; width: 44px; height: 44px; border: 0; background: transparent; padding: 10px; cursor: pointer; }
.menu-button__line { display: block; height: 2px; background: var(--ink); margin: 5px 0; border-radius: 2px; }

.hero { position: relative; overflow: hidden; padding: clamp(3.2rem, 8vw, 7.3rem) 0 clamp(4.5rem, 8vw, 7.5rem); }
.hero::before {
  position: absolute;
  content: "";
  width: 38rem;
  height: 38rem;
  left: -24rem;
  bottom: -24rem;
  border: 1px solid rgba(143, 29, 44, .13);
  border-radius: 50%;
  box-shadow: 0 0 0 4rem rgba(143, 29, 44, .035), 0 0 0 8rem rgba(143, 29, 44, .025);
}
.hero__grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(3rem, 7vw, 7rem); }
.hero__copy { position: relative; z-index: 1; }
.hero h1 { max-width: 9ch; margin-bottom: 1.55rem; color: var(--green); }
.eyebrow { margin-bottom: 1rem; color: var(--red); font-size: .75rem; font-weight: 850; letter-spacing: .2em; text-transform: uppercase; }
.eyebrow--light { color: #edc67d; }
.hero__lead { max-width: 40rem; color: var(--muted); font-size: clamp(1.03rem, 1.5vw, 1.2rem); }
.motto { margin: 1.4rem 0 2rem; color: var(--red); font-family: var(--serif); font-size: 1.2rem; font-style: italic; }
.button-row { display: flex; flex-wrap: wrap; gap: .85rem; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  padding: .82rem 1.5rem;
  border: 1px solid transparent;
  border-radius: 99px;
  font-size: .88rem;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button--primary { background: var(--red); color: var(--white); }
.button--primary:hover { background: var(--red-dark); }
.button--ghost { border-color: var(--line); background: transparent; color: var(--ink); }
.button--ghost:hover { border-color: var(--green); color: var(--green); }
.button--light { background: var(--white); color: var(--green); }

.hero__visual { position: relative; padding: 0 .5rem 2.2rem 0; }
.hero__image-wrap { overflow: hidden; min-height: 610px; border-radius: 46% 46% var(--radius-sm) var(--radius-sm); box-shadow: var(--shadow); background: #d7d2c9; }
.hero__image-wrap::after { position: absolute; content: ""; inset: 0 .5rem 2.2rem 0; border-radius: 46% 46% var(--radius-sm) var(--radius-sm); box-shadow: inset 0 -10rem 8rem rgba(19, 29, 24, .12); pointer-events: none; }
.hero__image-wrap img { width: 100%; height: 610px; object-fit: cover; object-position: 43% center; }
.hero__service-card {
  position: absolute;
  right: 0;
  bottom: 0;
  width: min(285px, 72%);
  padding: 1.15rem 1.35rem;
  display: grid;
  background: var(--green);
  color: var(--white);
  border-left: 4px solid var(--gold);
  box-shadow: 0 18px 40px rgba(16, 38, 30, .2);
}
.hero__service-card strong { font-family: var(--serif); font-size: 1.23rem; }
.hero__service-card span { font-size: .78rem; color: rgba(255,255,255,.72); }
.hero__service-card .hero__service-day { color: #edc67d; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.visit-strip { background: var(--red); color: var(--white); }
.visit-grid { min-height: 10rem; display: grid; grid-template-columns: repeat(3, 1fr) auto; align-items: center; }
.visit-grid article { min-height: 5.5rem; display: flex; align-items: flex-start; gap: 1rem; padding: 0 1.6rem; border-right: 1px solid rgba(255,255,255,.22); }
.visit-grid article:first-child { padding-left: 0; }
.visit-grid h2 { margin-bottom: .2rem; font-family: var(--sans); font-size: 1rem; font-weight: 800; letter-spacing: 0; }
.visit-grid p { margin: 0; color: rgba(255,255,255,.76); font-size: .86rem; line-height: 1.45; }
.number-mark { color: #f4c676; font-size: .7rem; font-weight: 900; letter-spacing: .1em; }
.circle-link { width: 3.2rem; height: 3.2rem; display: grid; place-items: center; margin-left: 2rem; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; color: var(--white); font-size: 1.25rem; text-decoration: none; transition: background .2s ease, color .2s ease; }
.circle-link:hover { background: var(--white); color: var(--red); }

.split-layout { display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: clamp(3rem, 8vw, 7rem); }
.image-frame { position: relative; }
.image-frame img { width: 100%; height: clamp(420px, 52vw, 620px); object-fit: cover; border-radius: var(--radius-sm); box-shadow: var(--shadow); }
.image-frame__caption { position: absolute; left: -1.4rem; bottom: 1.5rem; max-width: 14rem; padding: 1rem 1.2rem; background: var(--white); border-left: 3px solid var(--gold); box-shadow: 0 16px 35px rgba(25,25,20,.13); font-family: var(--serif); font-size: 1rem; }
.section-copy h2 { max-width: 10ch; color: var(--green); }
.section-copy p { color: var(--muted); }
.section-copy .large-copy { color: var(--ink); font-family: var(--serif); font-size: 1.24rem; line-height: 1.55; }
.text-link { display: inline-flex; align-items: center; gap: .55rem; color: var(--red); font-size: .86rem; font-weight: 850; text-decoration: none; border-bottom: 1px solid rgba(143,29,44,.3); }
.text-link span { transition: transform .18s ease; }
.text-link:hover span { transform: translateX(4px); }
.text-link--light { color: var(--white); border-color: rgba(255,255,255,.35); }

.weekly-card { display: grid; grid-template-columns: 1fr .9fr; gap: 2rem 4rem; padding: clamp(2rem, 5vw, 4rem); background: var(--white); border-radius: var(--radius-md); box-shadow: 0 18px 55px rgba(51, 40, 24, .08); }
.weekly-card__heading h2 { max-width: 12ch; margin-bottom: 1rem; color: var(--green); }
.weekly-card blockquote { margin: 0; padding: 1.8rem; background: var(--green); color: var(--white); border-radius: var(--radius-sm); }
.weekly-card blockquote p { font-family: var(--serif); font-size: 1.2rem; }
.weekly-card blockquote cite { color: #efcc8a; font-style: normal; font-size: .8rem; font-weight: 800; }
.weekly-card__image { margin: 0; }
.weekly-card__image img { width: 100%; max-height: 340px; object-fit: cover; border-radius: var(--radius-sm); }
.weekly-card__image figcaption, .news-story figcaption { margin-top: .45rem; color: var(--muted); font-size: .8rem; }
.announcement-list { grid-column: 1 / -1; border-top: 1px solid var(--line); padding-top: 1.5rem; }
.announcement-list h3 { margin-bottom: .6rem; }
.announcement-list ul { margin: 0; padding-left: 1.2rem; columns: 2; column-gap: 3rem; }
.announcement-list li { break-inside: avoid; padding: .2rem 0; color: var(--muted); }

.section-heading { margin-bottom: 2.4rem; }
.section-heading h2 { margin-bottom: .7rem; color: var(--green); }
.section-heading p:last-child { color: var(--muted); }
.section-heading--row { display: flex; justify-content: space-between; align-items: end; gap: 2rem; }
.section-heading--center { max-width: 650px; margin-inline: auto; text-align: center; }
.card-grid { display: grid; gap: 1.2rem; }
.card-grid--three { grid-template-columns: repeat(3, 1fr); }
.event-card { min-height: 250px; display: grid; grid-template-columns: auto 1fr; gap: 1.25rem; padding: 1.6rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); }
.event-card h3 { margin-bottom: .65rem; }
.event-card p { color: var(--muted); }
.date-tile { width: 58px; height: 72px; display: grid; place-content: center; text-align: center; background: var(--cream); color: var(--red); border-top: 3px solid var(--red); }
.date-tile strong { font-family: var(--serif); font-size: 1.75rem; line-height: 1; }
.date-tile span { font-size: .66rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.card-kicker { margin-bottom: .5rem; color: var(--red) !important; font-size: .7rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.card-meta { color: var(--muted); font-size: .78rem; font-weight: 700; }
.empty-card, .empty-state { padding: clamp(2rem, 5vw, 4rem); background: var(--cream); border-radius: var(--radius-sm); }

.assistant-band { padding: clamp(4rem, 8vw, 7rem) 0; background: var(--green); color: var(--white); }
.assistant-band__grid { display: grid; grid-template-columns: 1.25fr .75fr; align-items: center; gap: 4rem; }
.assistant-band h2 { margin-bottom: 1rem; }
.assistant-band p:not(.eyebrow) { max-width: 44rem; color: rgba(255,255,255,.7); }
.assistant-band__action { display: grid; justify-items: start; gap: 1.2rem; padding-left: 3rem; border-left: 1px solid rgba(255,255,255,.18); }
.status-pill { display: inline-flex; width: fit-content; padding: .45rem .75rem; border-radius: 99px; background: rgba(23,63,50,.1); color: var(--green); font-size: .7rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.assistant-band .status-pill { background: rgba(255,255,255,.12); color: rgba(255,255,255,.82); }
.status-pill--live::before { content: ""; width: .45rem; height: .45rem; margin: .22rem .45rem 0 0; border-radius: 50%; background: #8fda9f; }

.ministry-card { position: relative; min-height: 240px; padding: 2rem; overflow: hidden; background: var(--white); border-bottom: 4px solid var(--gold); border-radius: var(--radius-sm); }
.ministry-card h3 { font-family: var(--serif); font-size: 1.65rem; }
.ministry-card p { color: var(--muted); }
.ministry-card__number { display: block; margin-bottom: 3rem; color: var(--red); font-size: .75rem; font-weight: 900; letter-spacing: .12em; }
.ministry-card::after { position: absolute; content: ""; width: 9rem; height: 9rem; right: -5rem; bottom: -5rem; border: 1px solid rgba(143,29,44,.12); border-radius: 50%; box-shadow: 0 0 0 1.5rem rgba(143,29,44,.025); }

.giving-callout { background: var(--ivory); }
.giving-callout__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; padding: clamp(2.5rem, 6vw, 5rem); border: 1px solid var(--line); border-radius: var(--radius-md); }
.giving-callout h2 { max-width: 10ch; color: var(--green); }
.giving-callout__inner > div:last-child { align-self: center; }
.giving-callout__inner > div:last-child p { color: var(--muted); }

.page-hero { padding: clamp(5rem, 10vw, 9rem) 0; background: var(--cream); }
.page-hero__narrow { max-width: 830px; margin-inline: auto; text-align: center; }
.page-hero h1 { margin-bottom: 1.3rem; color: var(--green); }
.page-hero p:not(.eyebrow) { color: var(--muted); font-size: 1.13rem; }
.page-hero--image { padding: clamp(3rem, 7vw, 6rem) 0; }
.page-hero__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 4rem; align-items: center; }
.page-hero__grid img { width: 100%; height: 440px; object-fit: cover; border-radius: var(--radius-sm); box-shadow: var(--shadow); }
.prose-grid { display: grid; grid-template-columns: 1fr .75fr; gap: clamp(3rem, 10vw, 8rem); align-items: center; }
.prose-grid h2 { color: var(--green); }
.quote-card { margin: 0; padding: 3rem; background: var(--green); color: var(--white); border-radius: var(--radius-sm); }
.quote-card p { font-family: var(--serif); font-size: 2rem; line-height: 1.3; }
.quote-card span { color: #edc67d; font-size: .75rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }

.event-list { display: grid; gap: 1.2rem; }
.event-listing { display: grid; grid-template-columns: 115px 1fr; gap: 2rem; padding: 2rem 0; border-bottom: 1px solid var(--line); }
.event-listing h2 { margin-bottom: .7rem; color: var(--green); font-size: 2.2rem; }
.date-tile--large { width: 100px; height: 110px; }
.date-tile--large strong { font-size: 2.5rem; }
.sermon-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
.sermon-card { min-height: 330px; padding: 2.2rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); }
.sermon-card h2 { margin-bottom: .45rem; color: var(--green); font-size: 2.2rem; }
.sermon-card__speaker { font-weight: 800; }
.scripture-ref { width: fit-content; padding: .35rem .65rem; background: var(--cream); color: var(--red); font-size: .78rem; font-weight: 800; }

.ask-hero { padding: clamp(4rem, 9vw, 8rem) 0; background: var(--green); color: var(--white); }
.ask-hero__grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(3rem, 8vw, 7rem); }
.ask-hero h1 { margin-bottom: 1.4rem; }
.ask-hero p:not(.eyebrow) { color: rgba(255,255,255,.72); font-size: 1.1rem; }
.disclosure { margin-top: 2rem; padding: 1rem 1.15rem; border: 1px solid rgba(255,255,255,.2); border-radius: var(--radius-sm); color: rgba(255,255,255,.7); font-size: .82rem; }
.disclosure strong { color: var(--white); }
.ask-panel { min-height: 420px; padding: clamp(1.5rem, 4vw, 2.6rem); display: grid; align-content: center; background: var(--ivory); color: var(--ink); border-radius: var(--radius-md); box-shadow: 0 35px 70px rgba(7, 24, 18, .3); }
.question-form { display: grid; gap: .8rem; }
.question-form label { font-family: var(--serif); font-size: 1.5rem; color: var(--green); }
.question-form textarea { width: 100%; resize: vertical; padding: 1rem; border: 1px solid var(--line); border-radius: .6rem; background: var(--white); color: var(--ink); }
.question-form textarea:focus { border-color: var(--gold); outline: 3px solid rgba(200,155,72,.22); }
.question-form__footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .45rem; }
.question-form__footer span { color: var(--muted); font-size: .8rem; }
.coming-soon-panel h2 { margin: 1rem 0; color: var(--green); font-size: 2.4rem; }
.coming-soon-panel p { color: var(--muted) !important; }
.field-errors { color: var(--red); font-size: .82rem; }
.answer-card { max-width: 850px; }
.answer-card__text { font-family: var(--serif); font-size: 1.2rem; }
.answer-card__notice { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .78rem; }
.voice-card { display: grid; grid-template-columns: 1fr .65fr; align-items: center; gap: 4rem; }
.voice-card h2 { color: var(--green); }
.voice-card__status { display: grid; gap: .55rem; padding: 2rem; background: var(--white); border-radius: var(--radius-sm); }
.voice-card__status strong { font-family: var(--serif); font-size: 1.3rem; }
.voice-card__status span { color: var(--red); font-weight: 800; }
.voice-card__status small { color: var(--muted); }

[hidden] { display: none !important; }
.form-trap { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.ask-conversation-hero { padding: clamp(.9rem, 2vw, 1.5rem) 0 clamp(2rem, 4vw, 3rem); background: radial-gradient(circle at 84% 15%, rgba(200,155,72,.2), transparent 24rem), var(--green); }
.ask-conversation-shell { display: grid; gap: clamp(.65rem, 1.4vw, 1rem); }
.ask-page-heading { max-width: 850px; }
.ask-page-heading .eyebrow { margin-bottom: .3rem; }
.ask-page-heading h1 { margin: 0; font-size: clamp(2.25rem, 4vw, 3.8rem); line-height: .98; }
.ask-experience-grid { display: grid; grid-template-areas: "context conversation"; grid-template-columns: minmax(220px, .4fr) minmax(0, 1.6fr); align-items: start; gap: clamp(1.25rem, 2.5vw, 2.25rem); }
.ask-page-context { grid-area: context; padding-top: .15rem; }
.ask-page-context > p:first-child { margin: 0; color: rgba(255,255,255,.82); font-size: clamp(.9rem, 1.2vw, 1rem); line-height: 1.55; }
.ask-page-context .disclosure { margin-top: .75rem; padding: .75rem .85rem; }
.ask-page-context .conversation-privacy { margin: .75rem 0 0; color: rgba(255,255,255,.68); font-size: .76rem; line-height: 1.5; }
.status-pill--light { border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.1); color: var(--white); }
.ask-experience-grid > .coming-soon-panel { grid-area: conversation; }
.bible-conversation { grid-area: conversation; overflow: hidden; width: 100%; max-width: 850px; justify-self: end; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); color: var(--ink); box-shadow: 0 35px 70px rgba(7,24,18,.3); }
.conversation-toolbar { display: grid; grid-template-columns: minmax(170px, 1fr) minmax(260px, .95fr) auto; align-items: center; gap: .9rem; padding: .8rem clamp(1rem, 2.5vw, 1.45rem); border-bottom: 1px solid var(--line); }
.conversation-toolbar__heading { min-width: 0; }
.conversation-toolbar .eyebrow { margin-bottom: .2rem; }
.conversation-toolbar h2 { margin: 0; color: var(--green); font-size: clamp(1.55rem, 2.4vw, 2rem); }
.conversation-toolbar > .text-button { justify-self: end; }
.techaimate-powered { min-width: 0; display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: center; gap: .65rem; padding: .45rem .55rem; border: 1px solid #d9cfb5; border-radius: .7rem; background: #fffaf0; }
.techaimate-powered__logo-link { display: block; width: 72px; border-radius: .45rem; }
.techaimate-powered__logo-link img { display: block; width: 100%; height: auto; border-radius: .45rem; }
.techaimate-powered__copy { min-width: 0; display: grid; gap: .14rem; }
.techaimate-powered__title, .techaimate-powered__visit { width: fit-content; max-width: 100%; overflow-wrap: anywhere; color: var(--green); font-weight: 850; line-height: 1.25; }
.techaimate-powered__title { font-size: .78rem; }
.techaimate-powered__visit { font-size: .74rem; }
.ask-hero .techaimate-powered__copy p { margin: 0; color: #465149; font-size: .72rem; line-height: 1.35; }
.techaimate-powered a:focus-visible { outline: 3px solid rgba(200,155,72,.4); outline-offset: 2px; }
.conversation-instructions { margin: .65rem clamp(1rem, 2.5vw, 1.45rem) .75rem; border: 1px solid #d9cfb5; border-radius: .75rem; background: #fffaf0; }
.conversation-instructions summary { min-height: 48px; padding: .6rem 2.5rem .6rem .85rem; display: grid; align-content: center; gap: .08rem; position: relative; color: var(--green); cursor: pointer; list-style-position: inside; }
.conversation-instructions summary strong { font-size: .86rem; letter-spacing: .035em; text-transform: uppercase; }
.conversation-instructions summary span { color: var(--muted); font-size: .76rem; }
.conversation-instructions ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem 1.4rem; margin: 0; padding: .25rem 1.35rem 1rem 2.35rem; }
.conversation-instructions li { padding-left: .15rem; color: #4b514d; font-size: .78rem; line-height: 1.45; }
.conversation-controls { display: flex; align-items: stretch; gap: .75rem; padding: .7rem clamp(1rem, 2.5vw, 1.45rem); border-top: 1px solid var(--line); }
.voice-response-toggle { position: relative; min-width: 0; flex: 1; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .75rem; min-height: 58px; padding: .65rem .8rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--white); color: var(--green); cursor: pointer; }
.voice-response-toggle input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.voice-response-toggle__track { width: 46px; height: 26px; flex: 0 0 auto; padding: 3px; border-radius: 99px; background: #777d79; transition: background .2s ease; }
.voice-response-toggle__track > span { display: block; width: 20px; height: 20px; border-radius: 50%; background: var(--white); box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .2s ease; }
.voice-response-toggle input:checked + .voice-response-toggle__track { background: var(--green); }
.voice-response-toggle input:checked + .voice-response-toggle__track > span { transform: translateX(20px); }
.voice-response-toggle__copy { min-width: 0; display: grid; gap: .08rem; }
.voice-response-toggle__copy strong { font-size: .82rem; letter-spacing: .03em; }
.voice-response-toggle__copy small { color: #465149; font-size: .78rem; line-height: 1.45; opacity: 1; }
.voice-response-toggle:focus-within { outline: 3px solid rgba(200,155,72,.34); outline-offset: 2px; }
.voice-response-toggle:has(input:disabled) { cursor: not-allowed; opacity: .55; }
.text-button { padding: .55rem .2rem; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--green); font: inherit; font-weight: 800; cursor: pointer; }
button.text-button:disabled { cursor: not-allowed; opacity: .5; }
.stop-audio-button { min-width: 125px; justify-content: center; }
.conversation-status { min-height: 2.5rem; padding: .58rem clamp(1rem, 2.5vw, 1.45rem); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #f4f0e5; color: var(--green); font-size: .8rem; font-weight: 800; }
.conversation-status[data-state="processing"]::before, .conversation-status[data-state="listening"]::before, .conversation-status[data-state="speaking"]::before { display: inline-block; width: .58rem; height: .58rem; margin-right: .5rem; border-radius: 50%; background: var(--gold); content: ""; animation: live-pulse 1.5s ease-out infinite; }
.conversation-status[data-state="error"] { background: #fff1f0; color: var(--red-dark); }
.conversation-history { border-top: 1px solid var(--line); }
.conversation-log { height: clamp(250px, 36vh, 420px); min-height: 250px; max-height: 420px; overflow-y: auto; overscroll-behavior: contain; display: grid; align-content: start; gap: 1rem; padding: clamp(1rem, 3vw, 1.65rem); scroll-behavior: smooth; scroll-margin-block: 1rem; scrollbar-gutter: stable; }
.conversation-log:focus-visible { outline: 3px solid rgba(200,155,72,.34); outline-offset: -3px; }
.conversation-empty { max-width: 580px; margin: auto; padding: 1.75rem 1rem; text-align: center; }
.conversation-empty > span { display: block; margin-bottom: 1rem; color: var(--gold); font-size: 2rem; }
.conversation-empty h3 { color: var(--green); font-family: var(--serif); font-size: 1.55rem; }
.ask-hero .conversation-empty p { margin: 0; color: var(--muted); font-size: .9rem; }
.conversation-message { width: min(82%, 720px); padding: 1.15rem 1.25rem; border-radius: 1rem; }
.conversation-message--user { justify-self: end; border-bottom-right-radius: .25rem; background: var(--green); color: var(--white); }
.conversation-message--assistant { justify-self: start; border: 1px solid var(--line); border-bottom-left-radius: .25rem; background: var(--cream); color: var(--ink); }
.conversation-message--notice { justify-self: center; width: min(94%, 780px); border-left: 4px solid var(--gold); border-radius: .4rem; background: #fff8e7; color: #47391c; }
.conversation-message--safety { border-left-color: var(--red); background: #fff1f0; }
.conversation-message__label { display: block; margin-bottom: .45rem; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.conversation-message--user .conversation-message__label { color: #edc67d; }
.conversation-message__text { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.65; }
.conversation-message__text--pending { color: #465149; font-style: italic; }
.conversation-message__actions { margin-top: .9rem; padding-top: .75rem; border-top: 1px solid var(--line); }
.message-listen-button { padding: .48rem .8rem; border: 1px solid var(--green); border-radius: 99px; background: transparent; color: var(--green); font: inherit; font-size: .78rem; font-weight: 850; cursor: pointer; }
.message-listen-button:hover { background: var(--green); color: var(--white); }
.conversation-composer { display: grid; gap: .5rem; padding: .8rem clamp(1rem, 2.5vw, 1.45rem) .9rem; background: #fbfaf6; }
.conversation-composer label { color: var(--green); font-family: var(--serif); font-size: 1.35rem; font-weight: 800; }
.conversation-composer textarea { width: 100%; min-height: 84px; resize: vertical; padding: .8rem; border: 1px solid #8c918e; border-radius: .75rem; background: var(--white); color: var(--ink); font: inherit; }
.conversation-composer textarea:focus, .mic-button:focus-visible, .message-listen-button:focus-visible, .text-button:focus-visible { outline: 3px solid rgba(200,155,72,.34); outline-offset: 2px; }
.conversation-composer__footer { display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; }
.voice-input-control { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem; }
.voice-input-control small { max-width: 390px; color: #465149; font-size: .82rem; line-height: 1.45; opacity: 1; }
.mic-button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 48px; padding: .68rem 1rem; border: 2px solid var(--green); border-radius: 99px; background: var(--white); color: var(--green); font: inherit; font-size: .86rem; font-weight: 850; cursor: pointer; touch-action: manipulation; }
.mic-button.is-listening { border-color: var(--red); background: #fff1f0; color: var(--red-dark); }
.mic-button[data-microphone-state="denied"] { border-color: var(--red); color: var(--red-dark); }
.mic-button:disabled { opacity: .55; cursor: not-allowed; }
.conversation-send { min-width: 120px; min-height: 48px; }
.conversation-send:disabled { cursor: not-allowed; opacity: .5; transform: none; }
.ask-hero .conversation-composer p.send-instruction { margin: 0; color: #465149; font-size: .82rem; font-weight: 700; line-height: 1.45; opacity: 1; }
.ask-hero .conversation-composer p.send-instruction[data-state="captured"] { color: var(--green); }
.ask-hero .conversation-composer p.composer-note { margin: 0; color: #465149; font-size: .8rem; line-height: 1.45; opacity: 1; }
.promo-code-control { display: grid; gap: .28rem; width: min(100%, 25rem); }
.conversation-composer .promo-code-control label { color: var(--green); font-family: var(--sans); font-size: .84rem; font-weight: 800; }
.promo-code-control label span { color: #58615c; font-weight: 600; }
.promo-code-control input { width: 100%; min-height: 44px; padding: .62rem .72rem; border: 1px solid #8c918e; border-radius: .65rem; background: var(--white); color: var(--ink); font: inherit; }
.promo-code-control input:focus-visible { outline: 3px solid rgba(200,155,72,.34); outline-offset: 2px; }
.promo-code-control small { color: #465149; font-size: .78rem; line-height: 1.4; }
.promo-code-control small[data-state="accepted"] { color: #145c3a; font-weight: 800; }
.promo-code-control small[data-state="invalid"] { color: #9a1c2b; font-weight: 800; }
.question-payment-status { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem clamp(1rem, 2.5vw, 1.45rem); border-top: 1px solid #d9cfb5; background: #fffaf0; color: var(--green); }
.question-payment-status > div:first-child { min-width: 0; display: grid; gap: .12rem; }
.question-payment-status strong { font-size: .84rem; }
.question-payment-status small { color: #465149; font-size: .78rem; line-height: 1.45; }
.question-payment-status__actions { display: flex; align-items: center; gap: .85rem; flex: 0 0 auto; }
.question-payment-status__actions .text-button { min-height: 44px; }
.safety-and-voice-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem, 7vw, 6rem); align-items: start; }
.safety-and-voice-grid h2 { color: var(--green); }
.future-voice-card { padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: var(--radius-md); background: var(--cream); }
.future-voice-card .voice-card__status { margin-top: 1.4rem; border: 1px solid var(--line); }
.coming-soon-panel--centered { max-width: 760px; margin-inline: auto; padding: 3rem; border-radius: var(--radius-md); background: var(--white); text-align: center; }

.giving-grid { display: grid; grid-template-columns: 1fr .7fr; gap: clamp(3rem, 10vw, 8rem); align-items: start; }
.giving-grid h2 { color: var(--green); }
.tax-note { padding-left: 1rem; border-left: 3px solid var(--gold); color: var(--green); font-weight: 800; }
.giving-aside { padding: 2rem; background: var(--cream); border-radius: var(--radius-sm); }
.giving-aside dl { margin: 0; }
.giving-aside dl div { padding: 1rem 0; border-top: 1px solid var(--line); }
.giving-aside dt { color: var(--muted); font-size: .7rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.giving-aside dd { margin: .2rem 0 0; font-weight: 750; }

.giving-methods-section { background: #fbfaf6; }
.giving-methods-section--primary { padding: clamp(2rem, 4vw, 3.75rem) 0 clamp(3.5rem, 7vw, 6rem); }
.giving-intro-row { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 3rem; margin-bottom: 2.5rem; }
.giving-intro-row h1 { margin-bottom: 0; color: var(--green); font-size: clamp(2.5rem, 5vw, 4rem); }
.giving-intro-row .tax-note { max-width: 25rem; margin: 0; }
.giving-method-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; }
.giving-method-card { position: relative; overflow: hidden; padding: clamp(1.5rem, 4vw, 2.6rem); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); box-shadow: 0 22px 55px rgba(35,35,28,.08); }
.giving-method-card::before { position: absolute; content: ""; inset: 0 0 auto; height: 5px; }
.giving-method-card--cashapp::before { background: #00c244; }
.giving-method-card--zelle::before { background: #6d1ed4; }
.giving-method-card > p { color: var(--muted); }
.giving-brand-heading { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.giving-brand-heading .card-kicker, .giving-brand-heading h2 { margin-bottom: 0; }
.giving-brand-heading h2 { color: var(--green); font-size: clamp(2rem, 4vw, 3.1rem); }
.giving-brand-mark { width: 3.6rem; height: 3.6rem; flex: 0 0 auto; display: grid; place-items: center; border-radius: .85rem; color: #fff; font-size: 2rem; font-weight: 900; line-height: 1; }
.giving-brand-mark--cashapp { background: #00c244; }
.giving-brand-mark--zelle { background: #6d1ed4; font-family: var(--serif); }
.giving-identifier { display: grid; gap: .25rem; margin: 1.5rem 0; padding: 1.1rem 1.2rem; border-radius: .75rem; background: var(--cream); }
.giving-identifier span { color: var(--muted); font-size: .7rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.giving-identifier strong { overflow-wrap: anywhere; color: var(--green); font-family: var(--serif); font-size: clamp(1.05rem, 2.1vw, 1.35rem); }
.giving-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.button--cashapp { background: #087f36; color: #fff; }
.button--cashapp:hover { background: #056229; }
.button--copy { border-color: var(--line); background: var(--white); color: var(--green); }
.button--copy:hover { border-color: var(--green); }
.zelle-qr-panel { display: grid; grid-template-columns: 1fr minmax(190px, 250px); align-items: center; gap: 1.25rem; margin-top: 2rem; padding-top: 1.6rem; border-top: 1px solid var(--line); }
.zelle-qr-panel h3 { margin-bottom: .45rem; color: var(--green); }
.zelle-qr-panel p { margin-bottom: 0; color: var(--muted); font-size: .86rem; }
.zelle-qr-image { width: 100%; max-height: 280px; object-fit: contain; border: 1px solid var(--line); border-radius: .7rem; background: #fff; }
.giving-provided-artwork { display: block; width: 100%; height: auto; margin: 1.75rem auto 0; border: 1px solid var(--line); border-radius: .8rem; background: #fff; box-shadow: 0 14px 35px rgba(35,35,28,.08); }
.giving-provided-artwork--cashapp { max-width: 31rem; }
.giving-provided-artwork--zelle { max-width: 250px; margin: 0; justify-self: end; }
.giving-separation-note { margin-top: 2rem; padding: 1.25rem 1.4rem; border-left: 4px solid var(--gold); background: var(--cream); }
.giving-separation-note strong { color: var(--green); }
.giving-separation-note p { margin: .3rem 0 0; color: var(--muted); }
.copy-status { min-height: 1.6rem; margin: 1rem 0 0; color: var(--green); font-weight: 800; text-align: center; }
.giving-empty-state { text-align: center; }
.giving-story { background: radial-gradient(circle at 80% 12%, rgba(200,155,72,.18), transparent 23rem), var(--cream); }
.giving-story__inner { max-width: 830px; margin-inline: auto; text-align: center; }
.giving-story h2 { margin-bottom: 1rem; color: var(--green); }
.giving-story p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 1.08rem; }

.news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.news-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); }
.news-card--featured { border-top: 4px solid var(--gold); }
.news-card > img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.news-card__copy { padding: 1.5rem; }
.news-card__copy h3 { color: var(--green); font-family: var(--serif); font-size: 1.6rem; }
.news-card__copy > p:last-child { margin-bottom: 0; color: var(--muted); }
.news-page-grid { display: grid; gap: 1.4rem; }
.news-story { display: grid; grid-template-columns: minmax(230px, .55fr) 1fr; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); }
.news-story--featured { border-left: 5px solid var(--gold); }
.news-story > img, .news-story > figure img { width: 100%; height: 100%; min-height: 300px; object-fit: cover; }
.news-story > figure { margin: 0; padding: 0 0 .5rem; }
.news-story > figure figcaption { padding-inline: .8rem; }
.news-story > div { padding: clamp(1.7rem, 4vw, 3rem); }
.news-story h2 { color: var(--green); font-size: clamp(2rem, 4vw, 3.1rem); }
.news-story__body { color: var(--muted); }

.event-listing:has(.event-listing__image) { grid-template-columns: minmax(180px, 280px) 100px 1fr; align-items: start; }
.event-listing__image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-sm); }
.event-contact { margin-top: .8rem; color: var(--muted); font-size: .88rem; }
.sermon-card__image { width: calc(100% + 4.4rem); max-width: none; height: 220px; margin: -2.2rem -2.2rem 1.7rem; object-fit: cover; }
.ministry-card__image { width: calc(100% + 4rem); max-width: none; height: 170px; margin: -2rem -2rem 1.5rem; object-fit: cover; }

.preview-banner { padding: .8rem 0; background: #f0c96f; color: #3b2b0b; }
.preview-banner .shell { display: flex; flex-wrap: wrap; gap: .4rem 1rem; }
.editor-content-preview { background: var(--cream); }
.editor-content-preview__card { max-width: 860px; padding: clamp(1.5rem, 5vw, 4rem); border-radius: var(--radius-md); background: var(--white); box-shadow: var(--shadow); }
.editor-content-preview__card h1 { color: var(--green); font-size: clamp(2.5rem, 6vw, 4.8rem); }
.editor-content-preview__card > img { width: 100%; max-height: 520px; margin: 1.5rem 0 2rem; object-fit: cover; border-radius: var(--radius-sm); }
.preview-meta { color: var(--red); font-weight: 800; }
.recording-preview-notice { margin-bottom: 1.5rem; padding: .8rem 1rem; border-radius: .5rem; background: #f0c96f; color: #3b2b0b; }
.ai-payment-separation { padding-left: 1rem; border-left: 3px solid var(--gold); }

.live-hero { padding: clamp(3.5rem, 7vw, 6.5rem) 0 clamp(4rem, 8vw, 7rem); background: radial-gradient(circle at 88% 10%, rgba(200,155,72,.15), transparent 27rem), #102b22; color: var(--white); }
.live-hero__heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2.5rem; }
.live-hero h1 { margin-bottom: 0; font-size: clamp(3.2rem, 7vw, 6.3rem); }
.live-indicator { display: inline-flex; align-items: center; gap: .65rem; padding: .62rem 1rem; border-radius: 99px; background: var(--white); color: var(--red-dark); font-size: .76rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.live-indicator > span { width: .62rem; height: .62rem; border-radius: 50%; background: #d92d43; box-shadow: 0 0 0 .35rem rgba(217,45,67,.14); animation: live-pulse 1.8s ease-out infinite; }
@keyframes live-pulse { 50% { box-shadow: 0 0 0 .6rem rgba(217,45,67,0); } }
.live-stage, .live-offline-card { overflow: hidden; border-radius: var(--radius-md); background: var(--ivory); color: var(--ink); box-shadow: 0 36px 90px rgba(3,17,12,.36); }
.live-stage__details { padding: clamp(1.5rem, 4vw, 2.5rem); }
.live-stage__details h2 { margin-bottom: .65rem; color: var(--green); font-size: clamp(2rem, 4vw, 3.4rem); }
.live-stage__date { color: var(--red); font-weight: 800; }
.live-stage__details > p:last-child { max-width: 60rem; margin-bottom: 0; color: var(--muted); }
.stream-player__frame { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #050807; }
.stream-player__frame iframe, .stream-player__frame video { display: block; width: 100%; height: 100%; border: 0; background: #050807; }
.stream-player__frame video { object-fit: contain; }
.stream-player__unavailable { position: absolute; inset: 0; z-index: 2; display: grid; place-content: center; gap: .35rem; padding: 2rem; background: linear-gradient(145deg, #102b22, #081a14); color: rgba(255,255,255,.76); text-align: center; }
.stream-player__unavailable[hidden] { display: none; }
.stream-player__unavailable strong { color: var(--white); font-family: var(--serif); font-size: clamp(1.5rem, 3vw, 2.5rem); }
.stream-player__unavailable span { max-width: 35rem; }
.stream-player__status { margin: 0; padding: .7rem 1rem; background: #e9eee9; color: #314038; font-size: .8rem; }
.stream-player__help { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border-bottom: 1px solid var(--line); background: var(--white); color: var(--muted); font-size: .8rem; }
.stream-player__help p { margin: 0; }
.text-button { padding: 0; border: 0; background: transparent; color: var(--red); font-size: .8rem; font-weight: 850; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.live-offline-card { display: grid; grid-template-columns: 1.15fr .85fr; }
.live-offline-card__image { position: relative; min-height: 510px; background: #ccd0cb; }
.live-offline-card__image::after { position: absolute; content: ""; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(7,20,15,.42)); pointer-events: none; }
.live-offline-card__image img { width: 100%; height: 100%; object-fit: cover; }
.offline-badge { position: absolute; z-index: 1; left: 1.5rem; bottom: 1.5rem; padding: .55rem .85rem; border-radius: 99px; background: rgba(10,26,20,.88); color: var(--white); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; backdrop-filter: blur(8px); }
.live-offline-card__copy { align-self: center; padding: clamp(2rem, 5vw, 4.5rem); }
.live-offline-card__copy h2 { color: var(--green); font-size: clamp(2.3rem, 4vw, 3.7rem); }
.live-offline-card__copy > p:not(.eyebrow) { color: var(--muted); }
.next-service-time { display: grid; gap: .15rem; margin-top: 2rem; padding: 1.3rem 0 0; border-top: 1px solid var(--line); }
.next-service-time span { color: var(--red); font-size: .7rem; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.next-service-time strong { color: var(--green); font-family: var(--serif); font-size: 1.55rem; }
.next-service-time small { color: var(--muted); }
.live-archive__intro { max-width: 26rem; color: var(--muted); }
.live-archive__empty { padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--cream); text-align: center; }
.live-archive__empty h3 { margin-bottom: .45rem; color: var(--green); font-family: var(--serif); }
.live-archive__empty p { margin: 0; color: var(--muted); }
.recording-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.recording-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); }
.recording-card__image { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--green); }
.recording-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.recording-card:hover .recording-card__image img { transform: scale(1.035); }
.recording-card__play { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 3.5rem; height: 3.5rem; padding-left: .2rem; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--red); box-shadow: 0 12px 35px rgba(0,0,0,.22); transform: translate(-50%, -50%); }
.recording-card__copy { padding: 1.35rem; }
.recording-card__copy h3 { margin-bottom: .45rem; color: var(--green); font-family: var(--serif); font-size: 1.5rem; }
.recording-card__copy h3 a { text-decoration: none; }
.recording-card__copy > p:last-of-type { margin-bottom: 0; color: var(--muted); font-size: .86rem; }
.recording-card__watch { margin-top: .9rem; }
.live-visit-band { padding: clamp(3.5rem, 7vw, 6rem) 0; background: var(--red-dark); color: var(--white); }
.live-visit-band__inner { display: grid; grid-template-columns: 1fr .7fr; align-items: center; gap: 4rem; }
.live-visit-band h2 { margin-bottom: 0; }
.live-visit-band__inner > div:last-child { padding-left: 3rem; border-left: 1px solid rgba(255,255,255,.22); }
.recording-page { min-height: 70vh; padding: clamp(3.5rem, 7vw, 6rem) 0; background: #102b22; color: var(--white); }
.recording-page__inner > .text-link { display: inline-block; margin-bottom: 3rem; }
.recording-page h1 { max-width: 16ch; margin-bottom: 1rem; }
.recording-page__meta { color: #edc67d; font-weight: 750; }
.recording-page__description { max-width: 52rem; color: rgba(255,255,255,.72); }
.recording-page .stream-player { overflow: hidden; margin-top: 2.5rem; border-radius: var(--radius-sm); box-shadow: 0 30px 70px rgba(0,0,0,.32); }
.recording-unavailable { margin-top: 2.5rem; padding: 3rem; border: 1px solid rgba(255,255,255,.2); border-radius: var(--radius-sm); }
.recording-unavailable h2 { font-size: 2rem; }

.messages { position: relative; z-index: 5; padding-top: 1rem; }
.message { padding: .9rem 1rem; border-radius: .5rem; background: var(--cream); border-left: 4px solid var(--gold); }
.message--error, .message--warning { border-color: var(--red); }

.site-footer { padding: 4.5rem 0 1.5rem; background: #102b22; color: rgba(255,255,255,.72); }
.footer-grid { display: grid; grid-template-columns: 1.3fr repeat(3, 1fr); gap: 3rem; }
.footer-grid h2 { color: var(--white); font-family: var(--sans); font-size: .75rem; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.footer-grid a:hover { color: var(--white); }
.footer-brand { display: flex; align-items: flex-start; gap: 1rem; }
.footer-brand img { border-radius: 50%; }
.footer-brand strong { color: var(--white); font-family: var(--serif); font-size: 1.25rem; }
.footer-brand p { font-family: var(--serif); font-style: italic; }
.footer-links { margin: 0; padding: 0; list-style: none; }
.footer-links li { margin: .35rem 0; }
.footer-links a { text-decoration: none; }
.footer-bottom { display: flex; justify-content: space-between; gap: 2rem; margin-top: 3rem; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.13); font-size: .74rem; }
.footer-bottom p { margin: 0; }

.reveal { animation: reveal-up .65s ease both; }
.reveal--delay { animation-delay: .12s; }
@keyframes reveal-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

@media (max-width: 920px) {
  .menu-button {
    display: flex;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    margin-inline-end: max(.25rem, env(safe-area-inset-right));
    border-radius: .45rem;
  }
  .primary-nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    width: 100%;
    max-width: 100%;
    display: none;
    justify-items: stretch;
    padding-top: 1.1rem;
    padding-right: max(1rem, env(safe-area-inset-right));
    padding-bottom: max(1.1rem, env(safe-area-inset-bottom));
    padding-left: max(1rem, env(safe-area-inset-left));
    background: var(--ivory);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 18px 35px rgba(20,24,20,.1);
    max-height: calc(100dvh - 7.6rem);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  .primary-nav.is-open { display: grid; }
  .mobile-menu-heading { display: grid; width: 100%; min-width: 0; gap: .1rem; margin: 0 0 .35rem; color: var(--green); font-weight: 850; }
  .mobile-menu-heading span { color: var(--muted); font-size: .76rem; font-weight: 600; }
  .primary-nav .nav-directions-mobile { display: flex; color: var(--green); }
  .primary-nav a { display: flex; width: 100%; max-width: 100%; min-width: 0; min-height: 48px; align-items: center; padding: .65rem .25rem; line-height: 1.35; overflow-wrap: anywhere; }
  .primary-nav .nav-give { width: fit-content; max-width: 100%; padding: .65rem 1.2rem; }
  .hero__grid, .split-layout, .page-hero__grid, .ask-hero__grid { grid-template-columns: 1fr; }
  .hero h1 { max-width: 11ch; }
  .hero__visual { width: min(700px, 100%); justify-self: center; }
  .visit-grid { grid-template-columns: 1fr 1fr; padding: 1.7rem 0; }
  .visit-grid article { padding: 1rem; border: 0; }
  .visit-grid article:first-child { padding-left: 1rem; }
  .circle-link { margin: 1rem; }
  .assistant-band__grid, .giving-callout__inner { grid-template-columns: 1fr; gap: 2rem; }
  .assistant-band__action { padding: 2rem 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.18); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .live-offline-card { grid-template-columns: 1fr; }
  .live-offline-card__image { min-height: 390px; }
  .recording-grid { grid-template-columns: 1fr 1fr; }
  .giving-method-grid, .news-grid { grid-template-columns: 1fr; }
  .news-story { grid-template-columns: minmax(200px, .65fr) 1fr; }
  .event-listing:has(.event-listing__image) { grid-template-columns: 180px 78px 1fr; }
  .safety-and-voice-grid { grid-template-columns: 1fr; }
  .ask-experience-grid { grid-template-areas: "conversation" "context"; grid-template-columns: 1fr; }
  .bible-conversation { order: 1; max-width: none; justify-self: stretch; }
  .ask-page-context { order: 2; max-width: 720px; padding-top: 0; }
}

@media (max-width: 680px) {
  :root { --shell: min(100% - 1.25rem, 1180px); }
  .service-bar__inner { padding: .5rem 0; display: grid; justify-content: center; text-align: center; gap: .05rem; }
  .service-bar a { display: none; }
  .nav-wrap { min-height: 4.9rem; }
  .brand img { width: 48px; height: 44px; }
  .brand__words strong { font-size: 1.05rem; }
  .hero { padding-top: 3rem; }
  .hero__grid { gap: 2.5rem; }
  .hero__image-wrap { min-height: 435px; }
  .hero__image-wrap img { height: 435px; }
  .visit-grid { grid-template-columns: 1fr; }
  .visit-grid article { border-bottom: 1px solid rgba(255,255,255,.18); }
  .circle-link { justify-self: start; }
  .image-frame__caption { left: .8rem; }
  .weekly-card, .card-grid--three, .sermon-grid, .voice-card, .giving-grid, .prose-grid { grid-template-columns: 1fr; }
  .announcement-list ul { columns: 1; }
  .section-heading--row { display: block; }
  .section-heading--row .text-link { margin-top: 1rem; }
  .giving-callout__inner { padding-inline: 1.5rem; }
  .event-listing { grid-template-columns: 72px 1fr; gap: 1rem; }
  .date-tile--large { width: 68px; height: 84px; }
  .date-tile--large strong { font-size: 2rem; }
  .question-form__footer { align-items: stretch; flex-direction: column; }
  .ask-conversation-hero { padding: .75rem 0 2rem; }
  .ask-conversation-shell { gap: .65rem; }
  .ask-page-heading h1 { font-size: clamp(2rem, 9vw, 2.65rem); }
  .ask-experience-grid { gap: .9rem; }
  .conversation-toolbar { grid-template-areas: "heading" "reset" "powered"; grid-template-columns: minmax(0, 1fr); align-items: start; padding: .7rem .85rem; }
  .conversation-toolbar__heading { grid-area: heading; }
  .conversation-toolbar h2 { font-size: 1.5rem; }
  .conversation-toolbar > .text-button { grid-area: reset; justify-self: start; width: fit-content; max-width: 100%; white-space: normal; }
  .techaimate-powered { grid-area: powered; grid-template-columns: 78px minmax(0, 1fr); width: 100%; }
  .techaimate-powered__logo-link { width: 78px; }
  .conversation-instructions { margin: .6rem .85rem .7rem; }
  .conversation-instructions summary { min-height: 48px; }
  .conversation-instructions ol { grid-template-columns: 1fr; padding-right: 1rem; }
  .conversation-controls { align-items: stretch; flex-direction: column; padding: .65rem .85rem; }
  .stop-audio-button { width: 100%; }
  .bible-conversation { overflow: hidden; border-radius: .85rem; }
  .conversation-message { width: 94%; }
  .voice-input-control { display: grid; }
  .conversation-composer__footer { display: grid; grid-template-columns: 1fr; align-items: start; gap: .65rem; }
  .mic-button { width: 100%; }
  .conversation-send { width: 100%; justify-content: center; }
  .question-payment-status { align-items: stretch; flex-direction: column; padding: .75rem .85rem; }
  .question-payment-status__actions { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
  .question-payment-status__actions .text-button { width: 100%; }
  .message-listen-button, .text-button { min-height: 44px; padding: .65rem .8rem; }
  .conversation-composer { position: relative; padding: .75rem .85rem max(.85rem, env(safe-area-inset-bottom)); }
  .conversation-composer label { font-size: 1.2rem; }
  .conversation-composer textarea { min-height: 84px; font-size: 16px; scroll-margin-bottom: 7rem; }
  .promo-code-control { width: 100%; }
  .promo-code-control input { font-size: 16px; }
  .conversation-log { height: min(42vh, 380px); min-height: 240px; max-height: 380px; }
  .live-hero__heading { display: grid; align-items: start; }
  .live-offline-card__image { min-height: 280px; }
  .stream-player__help { align-items: flex-start; flex-direction: column; }
  .recording-grid, .live-visit-band__inner { grid-template-columns: 1fr; }
  .live-visit-band__inner { gap: 2rem; }
  .live-visit-band__inner > div:last-child { padding: 2rem 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.22); }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { display: grid; }
  .giving-intro-row, .zelle-qr-panel, .news-story { grid-template-columns: 1fr; }
  .giving-intro-row { align-items: start; gap: 1.3rem; }
  .giving-actions { display: grid; }
  .giving-actions .button, .giving-method-card > .button--copy { width: 100%; }
  .zelle-qr-image, .giving-provided-artwork--zelle { width: min(280px, 100%); justify-self: center; }
  .news-story > img, .news-story > figure img { min-height: 220px; }
  .event-listing:has(.event-listing__image) { grid-template-columns: 68px 1fr; }
  .event-listing__image { grid-column: 1 / -1; }
  h1 { font-size: clamp(2.45rem, 11vw, 3.5rem); overflow-wrap: anywhere; }
  h2 { font-size: clamp(2rem, 9vw, 3rem); overflow-wrap: anywhere; }
  .button-row, .page-hero__links { display: grid; grid-template-columns: 1fr; }
  .button-row .button, .page-hero__links .button { width: 100%; padding-inline: 1rem; white-space: normal; text-align: center; }
  .site-footer, main { overflow-wrap: anywhere; }
  .stream-player__unavailable { padding: 1.15rem; }
  .recording-unavailable, .coming-soon-panel--centered { padding: 1.5rem; }
}

@media (max-width: 420px) {
  .question-payment-status__actions { grid-template-columns: 1fr; }
  .brand { gap: .55rem; }
  .brand__words small { max-width: 12rem; letter-spacing: .1em; }
  .hero__service-card { max-width: calc(100% - .75rem); }
}

@media (max-width: 360px) {
  :root { --shell: min(100% - 1rem, 1180px); }
  .brand img { width: 43px; height: 40px; }
  .brand__words strong { font-size: .96rem; }
  .brand__words small { font-size: .58rem; }
  .menu-button { flex: 0 0 48px; }
  .hero__image-wrap, .hero__image-wrap img { min-height: 390px; height: 390px; }
  .conversation-toolbar, .conversation-controls, .conversation-composer { padding-inline: .7rem; }
}

@media (hover: none) and (pointer: coarse) {
  .button:hover { transform: none; }
  .button:active { transform: scale(.98); }
  .primary-nav a, .footer-links a, .text-link { min-height: 44px; }
  .footer-links a, .text-link { display: inline-flex; align-items: center; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Delegated content and media pages */
.content-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}
.content-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--white);
  box-shadow: 0 14px 40px rgba(31, 26, 18, .06);
}
.content-card > a { display: block; }
.content-card > a > img,
.content-card > img,
.video-thumbnail img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.content-card__copy { padding: 1.45rem; }
.content-card__copy h2,
.content-card__copy h3 { margin-bottom: .65rem; }
.content-card__copy h2 { font-size: clamp(1.7rem, 3vw, 2.45rem); }
.content-card__copy h2 a,
.content-card__copy h3 a,
.ministry-card h3 a,
.sermon-card h2 a {
  color: inherit;
  text-decoration: none;
}
.content-card__copy p { color: var(--muted); }
.content-card--text { min-height: 100%; }
.content-label {
  color: var(--green) !important;
  font-size: .78rem;
  font-weight: 800;
}
.section--compact { padding: clamp(2.5rem, 5vw, 4.5rem) 0; }
.section-action { margin: 2rem 0 0; text-align: center; }
.page-hero__links { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.5rem; }
.ministry-contact-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
  padding: clamp(1.5rem, 4vw, 2.6rem);
  border-left: 4px solid var(--gold);
  background: var(--cream);
}
.ministry-section + .ministry-section {
  margin-top: clamp(3rem, 7vw, 6rem);
  padding-top: clamp(3rem, 7vw, 6rem);
  border-top: 1px solid var(--line);
}
.photo-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.photo-card {
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-sm);
  background: var(--cream);
}
.photo-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.photo-card figcaption { padding: .8rem 1rem; color: var(--muted); font-size: .86rem; }
.video-thumbnail { position: relative; }
.video-thumbnail span {
  position: absolute;
  inset: 50% auto auto 50%;
  width: 3.4rem;
  height: 3.4rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(143, 29, 44, .94);
  color: var(--white);
  transform: translate(-50%, -50%);
}
.sermon-transcript {
  margin-top: 2rem;
  padding: 1.25rem;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: var(--radius-sm);
}
.sermon-transcript summary { cursor: pointer; font-weight: 800; }
.sermon-transcript > div { margin-top: 1rem; color: rgba(255,255,255,.82); }

@media (max-width: 920px) {
  .content-card-grid, .photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .content-card-grid, .photo-grid, .ministry-contact-panel { grid-template-columns: 1fr; }
  .content-card__copy { padding: 1.2rem; }
}
