:root {
  --ivory: #f8f5ee;
  --white: #fffdfc;
  --sage: #8b917e;
  --sage-deep: #646b5b;
  --sage-light: #d9dccf;
  --charcoal: #30322c;
  --gray: #6b6e65;
  --sand: #e9e2d4;
  --danger: #8f332c;
  --line: rgba(48, 50, 44, .14);
  --serif: Georgia, 'Times New Roman', serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --step--1: clamp(.78rem, .75rem + .1vw, .84rem);
  --step-0: clamp(1rem, .96rem + .15vw, 1.08rem);
  --step-1: clamp(1.25rem, 1.1rem + .6vw, 1.55rem);
  --step-2: clamp(1.65rem, 1.35rem + 1.15vw, 2.35rem);
  --step-3: clamp(2.35rem, 1.75rem + 2.4vw, 4.5rem);
  --step-4: clamp(3.1rem, 2.2rem + 4vw, 6.4rem);
  --space-1: .5rem;
  --space-2: .75rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2rem;
  --space-6: 3rem;
  --space-7: 4.5rem;
  --space-8: 7rem;
  --section: clamp(4.5rem, 8vw, 8rem);
  --radius-sm: .75rem;
  --radius: 1.25rem;
  --radius-lg: 2rem;
  --shadow: 0 1.25rem 3.5rem rgba(48, 50, 44, .10);
  --container: 76rem;
  --header-height: 5.7rem;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --fast: 180ms;
  --medium: 360ms;
  --focus: 0 0 0 3px var(--white), 0 0 0 6px #4d5944;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-height); }
body { margin: 0; background: var(--ivory); color: var(--charcoal); font-family: var(--sans); font-size: var(--step-0); line-height: 1.65; text-rendering: optimizeLegibility; }
body.nav-open { overflow: hidden; }
body.large-text { font-size: 118%; }
img { display: block; max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
:focus-visible { outline: 0; box-shadow: var(--focus); }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { color: var(--charcoal); line-height: 1.08; }
h1, h2 { font-family: var(--serif); font-weight: 400; letter-spacing: -.035em; }
h2 { font-size: var(--step-3); margin-bottom: var(--space-4); }
h3 { font-size: var(--step-1); margin-bottom: var(--space-2); }
h4 { font-size: 1.1rem; }
p { margin-bottom: var(--space-3); }
.container { width: min(calc(100% - 2rem), var(--container)); margin-inline: auto; }
.section { padding-block: var(--section); }
.section--sage { background: var(--sage-light); }
.section--sand { background: var(--sand); }
.section--charcoal { background: var(--charcoal); color: #f5f2eb; }
.section--charcoal h2, .section--charcoal h3, .section--charcoal label, .section--charcoal legend { color: #fff; }
.eyebrow { margin-bottom: var(--space-3); color: var(--sage-deep); font-size: var(--step--1); font-weight: 800; letter-spacing: .16em; line-height: 1.2; text-transform: uppercase; }
.lead { font-size: var(--step-1); line-height: 1.55; }
.section-copy { max-width: 39rem; }
.section-heading { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(18rem, .75fr); gap: var(--space-7); align-items: end; margin-bottom: var(--space-6); }
.section-heading p:last-child { max-width: 38rem; color: var(--gray); }
.skip-link { position: fixed; z-index: 3000; top: .75rem; left: .75rem; transform: translateY(-160%); padding: .8rem 1rem; border-radius: var(--radius-sm); background: var(--charcoal); color: white; font-weight: 800; transition: transform var(--fast); }
.skip-link:focus { transform: translateY(0); }
.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; }
.is-hidden { display: none !important; }

.announcement { background: var(--charcoal); color: #f8f5ee; font-size: .84rem; }
.announcement__inner { min-height: 2.25rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.announcement a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .2rem; }
.site-header { position: sticky; z-index: 1000; top: 0; height: var(--header-height); background: rgba(248,245,238,.86); border-bottom: 1px solid transparent; backdrop-filter: blur(16px); transition: background var(--medium), border-color var(--medium), box-shadow var(--medium); }
.site-header.is-scrolled { background: rgba(255,253,252,.95); border-color: var(--line); box-shadow: 0 .75rem 2rem rgba(48,50,44,.06); }
.header__inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); }
.brand { display: inline-flex; align-items: center; gap: .75rem; color: inherit; text-decoration: none; }
.brand img { width: 3.15rem; height: 3.15rem; border-radius: 50%; object-fit: cover; }
.brand span { display: grid; line-height: 1.15; }
.brand strong { font-family: var(--serif); font-size: 1.2rem; font-weight: 500; }
.brand small { color: var(--gray); font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.site-nav { display: flex; align-items: center; gap: clamp(.5rem, 1.4vw, 1.2rem); }
.site-nav > a:not(.button) { position: relative; min-height: 44px; display: inline-flex; align-items: center; color: #4e5149; font-size: .86rem; font-weight: 750; text-decoration: none; }
.site-nav > a:not(.button)::after { content: ''; position: absolute; left: 0; right: 100%; bottom: .4rem; height: 2px; background: var(--sage-deep); transition: right var(--fast) var(--ease); }
.site-nav > a:hover::after, .site-nav > a[aria-current="true"]::after { right: 0; }
.menu-button { display: none; min-width: 48px; min-height: 48px; border: 0; background: transparent; color: var(--charcoal); font-weight: 800; }
.menu-button__icon, .menu-button__icon::before, .menu-button__icon::after { width: 1.45rem; height: 2px; display: block; background: currentColor; transition: transform var(--fast), opacity var(--fast); }
.menu-button__icon { position: relative; }
.menu-button__icon::before, .menu-button__icon::after { content: ''; position: absolute; left: 0; }
.menu-button__icon::before { top: -.45rem; }
.menu-button__icon::after { top: .45rem; }
.menu-button[aria-expanded="true"] .menu-button__icon { background: transparent; }
.menu-button[aria-expanded="true"] .menu-button__icon::before { transform: translateY(.45rem) rotate(45deg); }
.menu-button[aria-expanded="true"] .menu-button__icon::after { transform: translateY(-.45rem) rotate(-45deg); }

.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; padding: .75rem 1.15rem; border: 1px solid var(--sage-deep); border-radius: 999px; background: var(--sage-deep); color: #fff; font-size: .92rem; font-weight: 800; line-height: 1; text-align: center; text-decoration: none; cursor: pointer; transition: transform var(--fast) var(--ease), background var(--fast), border-color var(--fast); }
.button:hover { transform: translateY(-2px); background: #545b4c; }
.button:hover span { transform: translateX(.2rem); }
.button span { transition: transform var(--fast); }
.button--small { min-height: 42px; padding: .65rem 1rem; }
.button--secondary { background: transparent; color: var(--charcoal); border-color: rgba(48,50,44,.32); }
.button--secondary:hover { background: rgba(255,255,255,.55); border-color: var(--sage-deep); }
.button--quiet { background: var(--white); color: var(--charcoal); border-color: var(--line); }
.button--quiet:hover { background: var(--sage-light); }
.text-link { min-height: 44px; display: inline-flex; align-items: center; gap: .4rem; padding: 0; border: 0; background: transparent; color: var(--sage-deep); font-weight: 800; text-decoration: underline; text-decoration-color: rgba(100,107,91,.35); text-underline-offset: .3rem; cursor: pointer; }
.text-link span { transition: transform var(--fast); }
.text-link:hover span { transform: translateX(.2rem); }
.text-link--light { color: #e8eadf; }
.text-link--danger { color: var(--danger); }
.icon-button { min-width: 48px; min-height: 48px; border: 1px solid var(--line); border-radius: 50%; background: var(--white); color: var(--charcoal); font-size: 1.7rem; line-height: 1; cursor: pointer; }

.hero { position: relative; min-height: min(54rem, calc(100svh - 7rem)); display: grid; align-items: end; overflow: hidden; isolation: isolate; background: var(--ivory); }
.hero__art { position: absolute; z-index: -2; inset: 0 0 auto 0; height: clamp(16rem, 42vw, 34rem); opacity: 0; animation: artIn .65s var(--ease) .05s forwards; }
.hero__art::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(248,245,238,0) 55%, var(--ivory) 100%); }
.hero__art img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero__content { padding-block: clamp(19rem, 39vw, 31rem) clamp(4rem, 7vw, 7rem); }
.hero__content h1 { max-width: 12ch; margin-bottom: var(--space-4); font-size: var(--step-4); }
.hero__lead { max-width: 42rem; color: #55584f; }
.hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: var(--space-5); }
.hero__details { max-width: 52rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: var(--space-6); border-block: 1px solid var(--line); }
.hero__details div { display: grid; gap: .15rem; padding: 1rem 1rem 1rem 0; }
.hero__details div + div { padding-left: 1rem; border-left: 1px solid var(--line); }
.hero__details span { color: var(--gray); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.hero__details strong { font-family: var(--serif); font-size: 1.08rem; font-weight: 500; }
.hero-step { opacity: 0; transform: translateY(1rem); animation: riseIn .5s var(--ease) forwards; }
.hero-step--1 { animation-delay: .22s; }.hero-step--2 { animation-delay: .3s; }.hero-step--3 { animation-delay: .42s; }
@keyframes artIn { to { opacity: 1; } }
@keyframes riseIn { to { opacity: 1; transform: none; } }

.service-strip { background: var(--white); border-block: 1px solid var(--line); }
.service-strip__inner { min-height: 10rem; display: grid; grid-template-columns: minmax(15rem, 1.1fr) minmax(22rem, 1fr) auto; gap: var(--space-6); align-items: center; }
.service-strip h2 { margin-bottom: .2rem; font-size: var(--step-2); }
.service-strip p { margin-bottom: 0; color: var(--gray); }
.countdown { display: grid; grid-template-columns: repeat(4, 1fr); }
.countdown div { display: grid; justify-items: center; padding: .5rem .9rem; border-left: 1px solid var(--line); }
.countdown strong { font-family: var(--serif); font-size: clamp(1.8rem, 3vw, 2.8rem); font-weight: 400; line-height: 1; }
.countdown span { color: var(--gray); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.service-strip__actions { display: grid; justify-items: start; }

.intro__grid, .about-grid, .planner-grid, .prayer-grid, .give-grid, .location-grid, .compact-section { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(3rem, 8vw, 8rem); align-items: center; }
.expect-list { display: grid; }
.expect-list article { display: grid; grid-template-columns: 3rem 1fr; gap: var(--space-4); padding-block: var(--space-5); border-top: 1px solid var(--line); }
.expect-list article:last-child { border-bottom: 1px solid var(--line); }
.number { color: var(--sage-deep); font-family: var(--serif); font-size: 1.3rem; }
.expect-list p { margin-bottom: 0; color: var(--gray); }
.brand-panel { position: relative; max-width: 31rem; margin-inline: auto; }
.brand-panel::before { content: ''; position: absolute; inset: 7% -8% -7% 8%; border: 1px solid rgba(48,50,44,.16); border-radius: 50%; }
.brand-panel img { position: relative; aspect-ratio: 1; object-fit: cover; border-radius: 50%; box-shadow: var(--shadow); }
.about-links { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-5); }

.sermon-toolbar { display: grid; grid-template-columns: 1.6fr repeat(3, minmax(8rem, .65fr)) auto; gap: .75rem; align-items: end; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,253,252,.72); }
.field { display: grid; gap: .4rem; color: var(--charcoal); font-size: .84rem; font-weight: 750; }
.field > span { line-height: 1.25; }
.field small { color: var(--gray); font-weight: 500; }
input, textarea, select { width: 100%; min-height: 48px; padding: .75rem .85rem; border: 1px solid rgba(48,50,44,.22); border-radius: .7rem; background: var(--white); color: var(--charcoal); }
textarea { resize: vertical; line-height: 1.5; }
input:focus, textarea:focus, select:focus { border-color: var(--sage-deep); outline: 0; box-shadow: 0 0 0 3px rgba(100,107,91,.18); }
[aria-invalid="true"] { border-color: var(--danger); }
.status-line { min-height: 1.7rem; margin: .75rem 0 1.25rem; color: var(--gray); font-size: .88rem; }
.sermon-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: var(--space-4); transition: opacity var(--fast); }
.sermon-grid.is-updating { opacity: .45; }
.sermon-card { overflow: hidden; display: grid; grid-template-columns: minmax(12rem, .82fr) minmax(0, 1.18fr); min-height: 17rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); box-shadow: 0 .8rem 2.5rem rgba(48,50,44,.07); }
.sermon-card:first-child { grid-row: span 2; grid-template-columns: 1fr; }
.sermon-card__art { position: relative; min-height: 12rem; overflow: hidden; background: var(--sage-light); }
.sermon-card__art img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--medium) var(--ease); }
.sermon-card:hover .sermon-card__art img { transform: scale(1.025); }
.sermon-card__body { display: flex; flex-direction: column; padding: var(--space-4); }
.sermon-card__meta { color: var(--sage-deep); font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sermon-card__body h3 { margin-top: .45rem; }
.sermon-card__body p { color: var(--gray); font-size: .9rem; }
.sermon-card__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: auto; }
.sermon-card__actions .button { min-height: 42px; padding: .6rem .9rem; font-size: .82rem; }
.empty-state { min-height: 17rem; display: grid; place-content: center; justify-items: center; padding: var(--space-5); border: 1px dashed rgba(48,50,44,.25); border-radius: var(--radius-lg); background: rgba(255,255,255,.4); text-align: center; }
.empty-state > span { font-family: var(--serif); font-size: 3rem; color: var(--sage); }

.study-workspace { margin-top: var(--space-7); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--shadow); }
.study-workspace__head { display: flex; justify-content: space-between; gap: 1rem; padding: var(--space-5); }
.study-workspace__head h3 { margin-bottom: .35rem; font-family: var(--serif); font-size: var(--step-2); font-weight: 400; }
.study-workspace__head p { margin-bottom: 0; color: var(--gray); }
.video-frame { aspect-ratio: 16 / 9; background: #171914; }
.video-frame iframe { width: 100%; height: 100%; border: 0; }
.tabs { display: flex; gap: .25rem; overflow-x: auto; padding: .6rem var(--space-5) 0; border-bottom: 1px solid var(--line); scrollbar-width: thin; }
.tabs button { min-height: 48px; flex: 0 0 auto; padding: .7rem 1rem; border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--gray); font-weight: 800; cursor: pointer; }
.tabs button[aria-selected="true"] { border-bottom-color: var(--sage-deep); color: var(--charcoal); }
.tab-panel { padding: var(--space-5); }
.overview-grid, .panel-intro { display: flex; justify-content: space-between; gap: var(--space-5); align-items: start; }
.study-actions { display: flex; flex-wrap: wrap; justify-content: end; gap: .6rem; }
.transcript-toolbar { display: grid; grid-template-columns: 1fr auto auto; gap: .65rem; align-items: end; margin-bottom: 1rem; }
.status-box { padding: 1rem; border-left: 4px solid var(--sage); background: var(--ivory); }
.status-box[data-state="error"] { border-left-color: var(--danger); background: #fff1ef; }
.transcript-list { max-height: 32rem; overflow: auto; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.transcript-line { display: grid; grid-template-columns: 4.5rem 1fr; gap: .75rem; padding: .8rem; border-bottom: 1px solid var(--line); }
.transcript-line:last-child { border-bottom: 0; }
.transcript-time { min-height: 38px; border: 0; border-radius: .5rem; background: var(--sage-light); color: var(--charcoal); font-weight: 800; cursor: pointer; }
.transcript-line mark { background: #ece5b7; color: #222; }
.manual-transcript { margin-top: 1rem; padding: 1rem; border: 1px dashed var(--sage); border-radius: var(--radius); }
.guide-output { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: 1rem; }
.ai-progress{margin:1rem 0;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--cream)}.ai-progress>div{display:flex;align-items:center;justify-content:space-between;gap:1rem}.ai-progress strong{color:var(--forest)}.ai-progress span{font-variant-numeric:tabular-nums;font-weight:800}.ai-progress progress{width:100%;height:.75rem;margin:.7rem 0 .35rem;border:0;border-radius:999px;overflow:hidden;background:#dfe3d8;accent-color:var(--gold)}.ai-progress progress::-webkit-progress-bar{background:#dfe3d8}.ai-progress progress::-webkit-progress-value{border-radius:999px;background:linear-gradient(90deg,var(--sage),var(--gold));transition:width .35s ease}.ai-progress progress::-moz-progress-bar{border-radius:999px;background:linear-gradient(90deg,var(--sage),var(--gold))}.ai-progress p{margin:0;color:var(--gray);font-size:.84rem}body.dark-mode .ai-progress{border-color:rgba(248,244,234,.2);background:#1d281f}body.dark-mode .ai-progress strong{color:#fff9ef}body.dark-mode .ai-progress p{color:#c5cec0}
.guide-card { padding: 1.2rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--ivory); }
.guide-card--wide { grid-column: 1 / -1; }
.guide-card ul { padding-left: 1.1rem; }
.notes-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.notes-fields { display: grid; gap: .85rem; }
.notes-footer { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--gray); font-size: .84rem; }
.notes-footer > div { display: flex; flex-wrap: wrap; gap: 1rem; }
.question-form { display: grid; grid-template-columns: 1fr auto; gap: .75rem; align-items: end; }
.answer-box { margin-top: 1rem; white-space: pre-wrap; }

.ministry-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(48,50,44,.2); border-left: 1px solid rgba(48,50,44,.2); }
.ministry-card { min-height: 19rem; display: flex; flex-direction: column; padding: var(--space-5); border-right: 1px solid rgba(48,50,44,.2); border-bottom: 1px solid rgba(48,50,44,.2); }
.ministry-card__tag { color: var(--sage-deep); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.ministry-card h3 { margin-top: auto; font-family: var(--serif); font-size: var(--step-2); font-weight: 400; }
.ministry-card p { color: #55584f; }
.ministry-card__meta { min-height: 3rem; font-size: .82rem; font-weight: 750; }
.ministry-card .text-link { margin-top: .5rem; }
.compact-section { align-items: stretch; }
.compact-section .empty-state { min-height: 24rem; }
.next-step-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(48,50,44,.2); }
.next-step-grid article { min-height: 18rem; display: flex; flex-direction: column; padding: var(--space-5); border-right: 1px solid rgba(48,50,44,.2); }
.next-step-grid article:last-child { border-right: 0; }
.next-step-grid article > span { color: var(--sage-deep); font-family: var(--serif); font-size: 1.35rem; }
.next-step-grid h3 { margin-top: auto; }
.next-step-grid p { color: #55584f; }

.check-list { padding: 0; list-style: none; }
.check-list li { position: relative; padding: .55rem 0 .55rem 1.6rem; border-bottom: 1px solid rgba(255,255,255,.13); }
.check-list li::before { content: '✓'; position: absolute; left: 0; color: #cfd5c4; font-weight: 800; }
.form-card, .soft-form { padding: clamp(1.25rem, 4vw, 2.5rem); border-radius: var(--radius-lg); background: var(--white); color: var(--charcoal); box-shadow: var(--shadow); }
.soft-form { margin-top: var(--space-5); border: 1px solid var(--line); box-shadow: none; }
.form-card { display: grid; gap: 1rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
fieldset { margin: 0; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius-sm); }
legend { padding-inline: .35rem; color: var(--charcoal); font-size: .84rem; font-weight: 800; }
.check, .radio { min-height: 44px; display: inline-flex; align-items: center; gap: .5rem; margin-right: 1rem; }
.check input, .radio input { width: 1.2rem; min-height: 1.2rem; accent-color: var(--sage-deep); }
.honeypot { position: absolute; left: -9999px; }
.form-status, .form-note { margin: 0; color: var(--gray); font-size: .82rem; }
.form-status[data-state="error"] { color: var(--danger); font-weight: 700; }
.form-status:not([data-state="error"]) { color: var(--charcoal); font-weight: 650; }
form[aria-busy="true"] { opacity: .72; }
form[aria-busy="true"] button[type="submit"] { cursor: wait; }

.prayer-grid { align-items: start; }
.journal { position: sticky; top: 7rem; padding: var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); }
.journal__head { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.journal__head > span { padding: .35rem .6rem; border-radius: 999px; background: var(--sage-light); font-size: .72rem; font-weight: 800; }
.journal form { display: grid; gap: .85rem; }
.journal-list { display: grid; gap: .75rem; margin-top: 1rem; }
.journal-entry { padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--ivory); }
.journal-entry h4 { margin-bottom: .25rem; }
.journal-entry p { white-space: pre-wrap; }
.journal-entry__actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.journal-entry__actions button { min-height: 44px; border: 0; background: transparent; color: var(--sage-deep); font-weight: 800; cursor: pointer; }
.journal-entry.is-answered { opacity: .72; }
.journal-entry.is-answered h4 { text-decoration: line-through; }

.give-note { display: grid; grid-template-columns: 9rem 1fr; gap: var(--space-5); align-items: center; padding: var(--space-5); border: 1px solid rgba(48,50,44,.17); border-radius: var(--radius-lg); background: rgba(255,253,252,.52); }
.give-note img { aspect-ratio: 1; border-radius: 50%; object-fit: cover; }
.location-grid { align-items: stretch; }
.location address { margin-block: 1.5rem; font-style: normal; }
.map-card { min-height: 31rem; overflow: hidden; border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.map-card iframe { width: 100%; height: 100%; border: 0; }

.site-footer { padding-top: var(--space-7); background: #252721; color: #dfe2d8; }
.updates { padding-block: clamp(3rem, 6vw, 5rem); border-top: 1px solid var(--line); background: var(--white); }
.updates__inner { display: flex; justify-content: space-between; align-items: center; gap: var(--space-6); }
.updates__inner > div:first-child { max-width: 45rem; }
.updates h2 { margin-bottom: .75rem; font-size: var(--step-2); }
.site-footer h2 { margin-bottom: 1rem; color: #fff; font-family: var(--sans); font-size: .78rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.site-footer p, .site-footer a { color: #dfe2d8; }
.footer-grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: var(--space-5); }
.brand--footer img { background: #f8f5ee; }
.brand--footer strong, .brand--footer small { color: #fff; }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer li { margin-bottom: .55rem; }
.footer-button { min-height: 44px; display: block; padding: 0; border: 0; background: transparent; color: #dfe2d8; text-decoration: underline; text-underline-offset: .25rem; cursor: pointer; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; margin-top: var(--space-6); padding-block: 1.25rem; border-top: 1px solid rgba(255,255,255,.12); font-size: .78rem; }

.assistant-launcher { position: fixed; z-index: 1100; right: 1.25rem; bottom: 1.25rem; min-height: 58px; display: flex; align-items: center; gap: .65rem; padding: .35rem .9rem .35rem .4rem; border: 1px solid rgba(100,107,91,.26); border-radius: 999px; background: var(--white); color: var(--charcoal); box-shadow: 0 1rem 3rem rgba(48,50,44,.18); cursor: pointer; transition: transform var(--fast) var(--ease), box-shadow var(--fast); }
.assistant-launcher:hover { transform: translateY(-2px); box-shadow: 0 1.2rem 3.2rem rgba(48,50,44,.23); }
.assistant-launcher[aria-expanded="true"],
body.assistant-open .assistant-launcher { opacity: 0; pointer-events: none; }
.nav-open .assistant-launcher, .nav-open .assistant-panel { display: none; }
.assistant-launcher img { width: 2.7rem; height: 2.7rem; border-radius: 50%; object-fit: cover; }
.assistant-launcher > span { display: grid; text-align: left; line-height: 1.1; }
.assistant-launcher strong { font-size: .9rem; }
.assistant-launcher small { margin-top: .15rem; color: var(--gray); font-size: .68rem; font-weight: 700; }
.assistant-live-dot { width: .55rem; height: .55rem; display: inline-block; flex: 0 0 auto; border-radius: 50%; background: #6e8b54; box-shadow: 0 0 0 3px rgba(110,139,84,.14); }
.assistant-panel[data-ai-state="offline"] .assistant-live-dot, .assistant-launcher[data-ai-state="offline"] .assistant-live-dot { background: var(--danger); box-shadow: 0 0 0 3px rgba(165,76,64,.12); }
.assistant-panel[data-ai-state="checking"] .assistant-live-dot, .assistant-launcher[data-ai-state="checking"] .assistant-live-dot { background: #b18d45; animation: assistantPulse 1.4s ease-in-out infinite; }
@keyframes assistantPulse { 50% { opacity: .4; } }
.assistant-panel { position: fixed; z-index: 1200; right: 1.25rem; bottom: 6rem; width: min(29rem, calc(100vw - 2rem)); max-height: min(44rem, calc(100svh - 7.25rem)); overflow: hidden; display: grid; grid-template-rows: auto minmax(9rem, 1fr) auto auto auto; border: 1px solid rgba(100,107,91,.25); border-radius: var(--radius-lg); background: var(--white); box-shadow: 0 2rem 5rem rgba(48,50,44,.24); }
.assistant-panel[hidden] { display: none; }
.assistant-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1rem .9rem; border-bottom: 1px solid var(--line); }
.assistant-panel__head h2 { margin: 0; font-size: 1.75rem; }
.assistant-panel__head p { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; margin: .3rem 0 0; color: var(--gray); font-size: .7rem; }
.assistant-panel__controls { display: flex; align-items: center; gap: .25rem; }
.assistant-clear { min-height: 44px; padding: .45rem .55rem; border: 0; background: transparent; color: var(--sage-deep); font-size: .76rem; font-weight: 800; cursor: pointer; }
.assistant-messages { min-height: 12rem; max-height: 25rem; overflow: auto; display: grid; align-content: start; gap: .9rem; padding: 1rem; background: linear-gradient(180deg, var(--ivory), #fbfaf6); scroll-behavior: smooth; }
.assistant-message { max-width: 91%; display: grid; grid-template-columns: 2rem minmax(0,1fr); gap: .6rem; margin: 0; white-space: pre-wrap; }
.assistant-message > img { width: 2rem; height: 2rem; border: 1px solid var(--line); border-radius: 50%; object-fit: cover; }
.assistant-message > div { padding: .8rem .9rem; border: 1px solid var(--line); border-radius: .35rem 1rem 1rem 1rem; background: var(--white); box-shadow: 0 .4rem 1.2rem rgba(48,50,44,.05); }
.assistant-message p { margin: 0; }
.assistant-message small { display: block; margin-top: .55rem; color: var(--sage-deep); font-size: .67rem; font-weight: 800; }
.assistant-message--user { grid-template-columns: 1fr; margin-left: auto; }
.assistant-message--user > div { border: 0; border-radius: 1rem 1rem .35rem 1rem; background: var(--sage-deep); color: white; box-shadow: none; }
.assistant-message--pending > div { color: var(--gray); }
.assistant-message__retry { min-height: 38px; margin-top: .6rem; padding: .4rem .65rem; border: 1px solid currentColor; border-radius: 999px; background: transparent; color: var(--sage-deep); font-size: .75rem; font-weight: 800; cursor: pointer; }
.assistant-sources{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.65rem}.assistant-sources a{min-height:36px;display:inline-flex;align-items:center;padding:.35rem .55rem;border:1px solid var(--line);border-radius:999px;color:var(--sage-deep);font-size:.72rem;font-weight:800;text-decoration:none}.assistant-sources a:hover{background:var(--sage-light)}
.assistant-suggestions { display: flex; gap: .45rem; overflow-x: auto; padding: .75rem 1rem; border-top: 1px solid var(--line); scrollbar-width: thin; }
.assistant-suggestions button { min-height: 42px; flex: 0 0 auto; padding: .5rem .75rem; border: 1px solid rgba(100,107,91,.4); border-radius: .7rem; background: var(--white); color: var(--sage-deep); font-size: .76rem; font-weight: 800; cursor: pointer; }
.assistant-suggestions button:hover { background: var(--sage-light); }
.assistant-form { display: grid; grid-template-columns: 1fr auto; gap: .5rem; padding: 0 1rem .75rem; }
.assistant-form input { min-width: 0; }
.assistant-form button { min-width: 58px; border: 0; border-radius: .7rem; background: var(--sage-deep); color: white; font-weight: 800; cursor: pointer; }
.assistant-form button:disabled, .assistant-form input:disabled, .assistant-suggestions button:disabled { opacity: .58; cursor: wait; }
.assistant-panel__foot { padding: .65rem 1rem; border-top: 1px solid var(--line); background: #faf9f5; }
.assistant-status { min-height: 1.2rem; margin: 0; color: var(--gray); font-size: .7rem; }

.dialog { width: min(50rem, calc(100% - 2rem)); max-height: min(48rem, calc(100svh - 2rem)); padding: 0; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); color: var(--charcoal); box-shadow: 0 2rem 6rem rgba(48,50,44,.28); }
.dialog::backdrop { background: rgba(28,30,26,.6); backdrop-filter: blur(4px); }
.dialog__head { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: start; gap: 1rem; padding: var(--space-5); border-bottom: 1px solid var(--line); background: var(--white); }
.dialog__head h2 { margin: 0; font-size: var(--step-2); }
.accordion-list { padding: var(--space-5); }
.accordion-list details { border-bottom: 1px solid var(--line); }
.accordion-list summary { min-height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-weight: 800; cursor: pointer; }
.accordion-list summary::after { content: '+'; font-size: 1.3rem; }
.accordion-list details[open] summary::after { content: '−'; }
.scripture { display: block; margin-top: .5rem; color: var(--gray); font-size: .82rem; }
.leader-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; padding: var(--space-5); }
.leader-grid article { display: grid; grid-template-columns: 3.5rem 1fr; gap: .85rem; align-items: center; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius); }
.leader-grid article > span { width: 3.5rem; height: 3.5rem; display: grid; place-items: center; border-radius: 50%; background: var(--sage-light); font-family: var(--serif); font-size: 1.15rem; }
.leader-photo { width: 3.5rem; height: 3.5rem; border: 2px solid var(--sage-light); border-radius: 50%; object-fit: cover; object-position: center 22%; background: var(--sage-light); }
.leader-grid h3, .leader-grid p { margin: 0; }
.leader-grid p { color: var(--gray); font-size: .84rem; }
.offline { min-height: 100svh; display: grid; place-content: center; justify-items: center; padding: 2rem; text-align: center; }
.offline img { width: 8rem; height: 8rem; margin-bottom: 1rem; border-radius: 50%; object-fit: cover; }

.reveal { opacity: 0; transform: translateY(1.25rem); transition: opacity .5s var(--ease), transform .5s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }

body.dark-mode { --ivory: #171914; --white: #22251e; --charcoal: #f4f1e9; --gray: #bec3b7; --sand: #20231d; --sage-light: #30352b; --sage-deep: #b8c1a7; --line: rgba(255,255,255,.14); --focus: 0 0 0 3px #171914, 0 0 0 6px #dce6ca; color-scheme: dark; }
body.dark-mode .announcement, body.dark-mode .section--charcoal, body.dark-mode .site-footer { background: #10120e; }
body.dark-mode .site-header, body.dark-mode .site-header.is-scrolled { background: rgba(23,25,20,.93); }
body.dark-mode .hero__art::after { background: linear-gradient(180deg, rgba(23,25,20,0) 55%, var(--ivory) 100%); }
body.dark-mode .hero__lead, body.dark-mode .ministry-card p { color: var(--gray); }
body.dark-mode .button--secondary { color: var(--charcoal); border-color: var(--line); }
body.dark-mode .button--secondary:hover { background: rgba(255,255,255,.06); }
body.dark-mode .form-card { background: #f8f5ee; color: #30322c; }
body.dark-mode .form-card h2, body.dark-mode .form-card h3, body.dark-mode .form-card label, body.dark-mode .form-card legend { color: #30322c; }

/* 2026 visitor-first brand refresh */
:root { --forest: #172019; --forest-soft: #243127; --gold: #d8b36a; --gold-bright: #e4c578; --cream: #fff9ef; --ink-light: #f8f1e5; }
body { background: var(--cream); }
.announcement { background: #101710; color: var(--ink-light); border-bottom: 1px solid rgba(255,255,255,.13); }
.site-header, .site-header.is-scrolled { height: 5.7rem; background: rgba(23,32,25,.97); border-bottom-color: rgba(255,255,255,.14); box-shadow: none; }
.header__inner { gap: 1rem; }
.brand { position: relative; z-index: 1; gap: .55rem; padding: .28rem .8rem .28rem .35rem; border: 1px solid rgba(216,179,106,.78); border-radius: .72rem; background: var(--cream); color: #172019; box-shadow: 0 .45rem 1.25rem rgba(0,0,0,.18); }
.brand__mark { width: 3.4rem; height: 3.4rem; display: grid; place-items: center; overflow: hidden; border-radius: .48rem; background: #fffdf8; }
.brand img { width: 3.05rem; height: 3.05rem; border-radius: 0; object-fit: contain; }
.brand__wordmark { display: grid; line-height: 1.05; }
.brand strong { color: #1b251c; font-size: 1.27rem; font-weight: 600; letter-spacing: -.025em; }
.brand small { margin-top: .2rem; color: #4c5b4d; font-size: .58rem; font-weight: 850; letter-spacing: .13em; }
.site-nav { gap: clamp(.4rem, 1.25vw, 1rem); }
.site-nav > a:not(.button) { color: #fff8ed; font-size: .82rem; font-weight: 750; }
.site-nav > a:not(.button)::after { background: var(--gold-bright); }
.site-nav > a.button { border-color: var(--cream); background: var(--cream); color: #172019; box-shadow: none; }
.site-nav > a.button:hover { background: var(--gold-bright); border-color: var(--gold-bright); }
.menu-button { color: var(--ink-light); }

.hero { min-height: min(53rem, calc(100svh - 6.75rem)); background: var(--forest); color: var(--ink-light); }
.hero__art { width: 100%; height: auto; aspect-ratio: 2048 / 682; opacity: 1; animation: none; }
.hero__art::after { display: none; }
.hero__art img { display: block; object-fit: contain; object-position: center; }
.hero__content { padding-block: clamp(14rem, 35.5vw, 41rem) clamp(3.5rem, 6vw, 6rem); }
.hero__content h1 { max-width: 11ch; color: #fffaf0; font-size: clamp(3.5rem, 6.6vw, 6.8rem); line-height: .95; }
.hero__lead { max-width: 36rem; color: #f1eadc; font-size: clamp(1.08rem, 1.45vw, 1.27rem); }
.hero .button { border-color: var(--gold); background: var(--gold); color: #182018; }
.hero .button:hover { background: var(--gold-bright); border-color: var(--gold-bright); }
.hero .button--secondary { border-color: rgba(255,249,239,.72); background: transparent; color: #fff9ef; }
.hero .button--secondary:hover { border-color: var(--gold); background: transparent; color: var(--gold-bright); }
.hero__details { max-width: 68rem; margin-top: 3.5rem; border-color: rgba(255,249,239,.26); }
.hero__details div { grid-template-columns: 2.4rem 1fr; grid-template-rows: auto auto; column-gap: .65rem; padding: 1.2rem 1.25rem 1.2rem 0; }
.hero__details div + div { padding-left: 1.25rem; border-left-color: rgba(255,249,239,.26); }
.hero__details .detail-icon { grid-row: span 2; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold-bright); font-size: 1.35rem; line-height: 1; }
.hero__details span:not(.detail-icon) { color: #f9f2e7; font-size: .7rem; }
.hero__details strong { color: #b9c3a5; font-size: 1.18rem; }

.service-strip { background: var(--cream); border-color: rgba(23,32,25,.17); }
.service-strip__inner { min-height: 9.5rem; }
.service-strip .eyebrow { color: #536450; }
.countdown strong { color: #1a251d; }
.countdown div { border-left-color: rgba(23,32,25,.18); }
.service-strip .text-link { color: #314c39; }

.intro { background: #fffdf8; }
.intro__grid { gap: clamp(3rem, 8vw, 8.5rem); }
.intro .section-copy h2 { max-width: 11ch; font-size: clamp(3rem, 5vw, 5.1rem); }
.expect-list { border-top: 1px solid rgba(23,32,25,.17); }
.expect-list article { grid-template-columns: 4.75rem 1fr; gap: 1rem; padding-block: 1.7rem; border-color: rgba(23,32,25,.17); }
.visit-icon { width: 3.15rem; height: 3.15rem; display: grid; place-items: center; border: 1px solid var(--gold); border-radius: 50%; color: #b77b1a; font-size: 1.55rem; line-height: 1; }
.expect-list h3 { margin-bottom: .35rem; font-family: var(--serif); font-size: 1.55rem; font-weight: 400; }

.sunday-guide { padding-block: clamp(3.2rem, 6vw, 5.5rem); background: var(--forest); color: var(--ink-light); }
.sunday-guide h2 { color: #fff9ef; font-size: clamp(2.6rem, 4.8vw, 4.6rem); }
.sunday-guide__details { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 2rem; border-top: 1px solid rgba(255,249,239,.24); border-bottom: 1px solid rgba(255,249,239,.24); }
.sunday-guide__details > div { min-height: 7.25rem; display: grid; grid-template-columns: 4rem 1fr; align-items: center; gap: 1rem; padding: 1.5rem 1.25rem 1.5rem 0; }
.sunday-guide__details > div + div { padding-left: 1.5rem; border-left: 1px solid rgba(255,249,239,.24); }
.sunday-guide__icon { width: 3.2rem; height: 3.2rem; display: grid; place-items: center; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold-bright); font-size: 1.55rem; }
.sunday-guide__details p { margin: 0; color: #fff9ef; font-family: var(--serif); font-size: 1.35rem; line-height: 1.12; }
.sunday-guide__details strong { display: block; margin-top: .35rem; color: #b9c3a5; font-family: var(--sans); font-size: .78rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.sunday-guide__foot { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 1.5rem; }
.sunday-guide__foot p { max-width: 52rem; margin: 0; color: #e5dfd2; }
.text-link--light { color: var(--gold-bright); text-decoration-color: rgba(228,197,120,.55); }

#sermons { background: #1d261f; color: #f8f1e5; }
#sermons h2, #sermons h3, #sermons h4 { color: #fff9ef; }
#sermons .eyebrow, #sermons .sermon-card__meta { color: var(--gold-bright); }
#sermons .section-heading p:last-child, #sermons .status-line { color: #d4d9cc; }
#sermons .sermon-toolbar { border-color: rgba(255,249,239,.24); border-radius: .85rem; background: rgba(255,249,239,.06); }
#sermons .field { color: #fff9ef; }
#sermons input, #sermons select { border-color: rgba(255,249,239,.32); background: #263128; color: #fff9ef; }
#sermons .button--quiet { border-color: rgba(255,249,239,.32); background: transparent; color: #fff9ef; }
#sermons .button--quiet:hover { background: rgba(255,249,239,.1); }
#sermons .sermon-card { border-color: rgba(255,249,239,.18); border-radius: .85rem; background: #263128; box-shadow: none; }
#sermons .sermon-card__body p { color: #d4d9cc; }
#sermons .sermon-card .button { border-color: var(--gold); background: var(--gold); color: #182018; }
#sermons .sermon-card .button--secondary { border-color: rgba(255,249,239,.45); background: transparent; color: #fff9ef; }
#sermons .study-workspace { color: var(--charcoal); }
#sermons .sermon-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
#sermons .sermon-card { grid-template-columns: 1fr; min-height: 0; }
#sermons .sermon-card:first-child { grid-column: span 2; grid-row: span 2; min-height: 35rem; }
#sermons .sermon-card:first-child .sermon-card__art { flex: 1 0 auto; min-height: 0; aspect-ratio: 16 / 9; }
#sermons .sermon-card__art { min-height: 0; aspect-ratio: 16 / 9; }
#sermons .sermon-library-foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid rgba(255,249,239,.2); }
#sermons .sermon-library-foot p { margin: 0; color: #d4d9cc; }
#sermons .sermon-library-foot .text-link { color: var(--gold-bright); }
#sermons .sermon-more { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 1.5rem; padding: 1.25rem; border: 1px solid rgba(255,249,239,.2); border-radius: 1rem; background: rgba(255,249,239,.07); }
#sermons .sermon-more[hidden] { display: none; }
#sermons .sermon-more p { margin: 0; color: #e3e6dc; font-weight: 650; }
#sermons .sermon-more .button--secondary { border-color: var(--gold-bright); background: var(--gold-bright); color: #172019; box-shadow: none; }
#sermons .sermon-more .button--secondary:hover { background: #fff9ef; border-color: #fff9ef; color: #172019; }

#ministries { background: #f3eee4; }
#next-steps { background: #fffdf8; }
#next-steps .section-heading { margin-bottom: 2.6rem; }
#next-steps .next-step-grid { border-color: rgba(23,32,25,.18); }
#next-steps .next-step-grid article { min-height: 15.5rem; padding: 1.8rem 1.35rem; border-color: rgba(23,32,25,.18); }
#next-steps .next-step-grid article > span { color: #274433; font-size: 2.2rem; }
#next-steps .next-step-grid h3 { margin-top: .7rem; font-family: var(--serif); font-size: 1.55rem; font-weight: 400; }

.prayer-section { background: #fffdf8; }
.prayer-section .section-copy h2 { max-width: 10ch; font-size: clamp(3rem, 5vw, 4.8rem); }
.journal { border-color: rgba(23,32,25,.2); border-radius: .8rem; background: #eff0e8; box-shadow: none; }
.journal__head > span { border-radius: .25rem; background: #d9e0d1; color: #304632; }
#give { background: var(--forest); color: #f8f1e5; }
#give h2, #give h3 { color: #fff9ef; }
#give .eyebrow { color: var(--gold-bright); }
#give .section-copy > p:not(.eyebrow), #give .give-note p { color: #e4e7dc; }
#give .button { border-color: var(--gold); background: var(--gold); color: #182018; }
#give .give-note { border-color: rgba(255,249,239,.2); background: rgba(255,249,239,.06); }
.location { background: var(--cream); }
.updates { background: #fffdf8; }
.site-footer { background: #101710; }
.install-dialog{width:min(620px,calc(100% - 2rem));color:var(--charcoal)}.install-dialog__body{padding:0 1.5rem 1.5rem}.install-dialog__body>p{color:var(--gray);line-height:1.7}.install-dialog__body ol{display:grid;gap:.7rem;padding-left:1.4rem}.install-dialog__body li{padding-left:.25rem}.install-dialog__body .button{margin-top:.5rem}
.assistant-launcher { border-color: var(--gold); background: #294434; color: #fff9ef; box-shadow: 0 1rem 3rem rgba(0,0,0,.3); }
.assistant-launcher small { color: #d9e1cf; }
.assistant-launcher img { border: 1px solid var(--gold); background: #fffdf8; }
.assistant-live-dot { background: var(--gold-bright); box-shadow: 0 0 0 3px rgba(228,197,120,.15); }
.assistant-panel { border-color: rgba(23,32,25,.3); }

/* 2026-07-14 visual accessibility and hero repair */
.hero__content { padding-top: clamp(15.5rem, calc(33.3vw + 3rem), 46rem); }

/* The white study surface sits inside a dark sermon section, so it needs its own complete text and form palette. */
#sermons .study-workspace h3,
#sermons .study-workspace h4,
#sermons .study-workspace .eyebrow,
#sermons .study-workspace .field,
#sermons .study-workspace .field > span,
#sermons .study-workspace .field small,
#sermons .study-workspace .tab-panel p,
#sermons .study-workspace .notes-footer { color: #30322c; }
#sermons .study-workspace .eyebrow { color: #536450; }
#sermons .study-workspace .field small,
#sermons .study-workspace .notes-footer { color: #62675e; }
#sermons .study-workspace input,
#sermons .study-workspace textarea,
#sermons .study-workspace select { border-color: rgba(48,50,44,.24); background: #fffdfc; color: #30322c; }
#sermons .study-workspace .button--quiet { border-color: rgba(48,50,44,.2); background: #fffdfc; color: #30322c; }

/* White form cards in dark bands must never inherit the dark-band white label color. */
.section--charcoal .form-card,
.section--charcoal .form-card label,
.section--charcoal .form-card .field,
.section--charcoal .form-card .field > span,
.section--charcoal .form-card legend { color: #30322c; }
.section--charcoal .form-card .field small { color: #62675e; }

/* Keep the actual Oasis mark crisp in the Give panel instead of enlarging and fading it into the dark background. */
#give .give-note { grid-template-columns: 5.75rem 1fr; gap: 1.25rem; }
#give .give-note img { width: 5.75rem; height: 5.75rem; padding: .55rem; border: 1px solid rgba(255,249,239,.35); border-radius: .9rem; background: #fff9ef; object-fit: contain; }

@media print {
  .announcement, .site-header, .site-footer, .assistant-launcher, .assistant-panel, .tabs, .video-frame, .study-workspace__head .icon-button, .notes-footer button { display: none !important; }
  body { background: white; color: black; }
  .study-workspace { border: 0; box-shadow: none; }
  .tab-panel { display: none !important; }
  #panel-notes { display: block !important; }
}

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

/* A complete dark palette: all previously light-only sections, forms, and support panels use readable dark surfaces. */
body.dark-mode {
  --ivory: #111812;
  --white: #1b251d;
  --charcoal: #f8f4ea;
  --gray: #c5cec0;
  --sand: #182119;
  --sage-light: #263229;
  --sage-deep: #c7d2ba;
  --line: rgba(248,244,234,.17);
  --focus: 0 0 0 3px #111812, 0 0 0 6px #e4c578;
  background: #111812;
  color: #f8f4ea;
}
body.dark-mode .intro,
body.dark-mode .section--sage,
body.dark-mode .section--sand,
body.dark-mode #ministries,
body.dark-mode #next-steps,
body.dark-mode .prayer-section,
body.dark-mode .location,
body.dark-mode .updates { background: #182119; color: #f8f4ea; }
body.dark-mode .section--sage,
body.dark-mode .prayer-section { background: #1d281f; }
body.dark-mode .updates { background: #151d16; }
body.dark-mode .section-heading p:last-child,
body.dark-mode .expect-list p,
body.dark-mode .ministry-card p,
body.dark-mode .ministry-card__meta,
body.dark-mode .next-step-grid article p,
body.dark-mode .form-note,
body.dark-mode .form-status,
body.dark-mode .journal-entry small,
body.dark-mode .location p,
body.dark-mode .updates p { color: #c5cec0; }
body.dark-mode .eyebrow { color: #dfe6d4; }
body.dark-mode .text-link { color: #e4c578; text-decoration-color: rgba(228,197,120,.55); }
body.dark-mode .button--secondary { color: #f8f4ea; border-color: rgba(248,244,234,.42); background: transparent; }
body.dark-mode .button--quiet { color: #f8f4ea; border-color: rgba(248,244,234,.28); background: #1b251d; }
body.dark-mode .button--quiet:hover,
body.dark-mode .button--secondary:hover { background: #2a382d; border-color: #e4c578; }
body.dark-mode .expect-list,
body.dark-mode .expect-list article,
body.dark-mode .next-step-grid,
body.dark-mode .next-step-grid article { border-color: rgba(248,244,234,.17); }
body.dark-mode .next-step-grid article > span { color: #e4c578; }
body.dark-mode .journal,
body.dark-mode .journal-entry,
body.dark-mode .give-note,
body.dark-mode .empty-state,
body.dark-mode .sermon-toolbar,
body.dark-mode .soft-form { border-color: rgba(248,244,234,.18); background: #202c22; color: #f8f4ea; }
body.dark-mode .journal__head > span { background: #344334; color: #f8f4ea; }
body.dark-mode input,
body.dark-mode textarea,
body.dark-mode select { border-color: rgba(248,244,234,.3); background: #111812; color: #f8f4ea; }
body.dark-mode input::placeholder,
body.dark-mode textarea::placeholder { color: #aeb9aa; }
body.dark-mode fieldset { border-color: rgba(248,244,234,.22); }
body.dark-mode legend,
body.dark-mode .field,
body.dark-mode .field > span,
body.dark-mode .section--charcoal .form-card,
body.dark-mode .section--charcoal .form-card label,
body.dark-mode .section--charcoal .form-card .field,
body.dark-mode .section--charcoal .form-card .field > span,
body.dark-mode .section--charcoal .form-card legend { color: #f8f4ea; }
body.dark-mode .section--charcoal .form-card { background: #202c22; border-color: rgba(248,244,234,.18); }
body.dark-mode .section--charcoal .form-card .field small { color: #c5cec0; }
body.dark-mode .map-card { box-shadow: 0 1rem 3rem rgba(0,0,0,.32); }
body.dark-mode .map-card iframe { filter: brightness(.78) saturate(.82) contrast(.95); }
body.dark-mode .assistant-panel,
body.dark-mode .assistant-message > div,
body.dark-mode .assistant-suggestions button,
body.dark-mode .assistant-panel__foot,
body.dark-mode .dialog,
body.dark-mode .dialog__head { border-color: rgba(248,244,234,.18); background: #1b251d; color: #f8f4ea; }
body.dark-mode .assistant-messages { background: #151d16; }
body.dark-mode .assistant-panel__head p,
body.dark-mode .assistant-status,
body.dark-mode .assistant-message--pending > div,
body.dark-mode .leader-grid p,
body.dark-mode .scripture { color: #c5cec0; }
body.dark-mode .assistant-suggestions button { color: #e4c578; }
body.dark-mode .assistant-suggestions button:hover { background: #2a382d; }
body.dark-mode .dialog__head h2,
body.dark-mode .leader-grid h3 { color: #f8f4ea; }
body.dark-mode .leader-grid article { border-color: rgba(248,244,234,.18); background: #202c22; }
body.dark-mode .leader-grid article > span { background: #344334; color: #f8f4ea; }
body.dark-mode #sermons .study-workspace { background: #1b251d; color: #f8f4ea; }
body.dark-mode #sermons .study-workspace h3,
body.dark-mode #sermons .study-workspace h4,
body.dark-mode #sermons .study-workspace .eyebrow,
body.dark-mode #sermons .study-workspace .field,
body.dark-mode #sermons .study-workspace .field > span,
body.dark-mode #sermons .study-workspace .tab-panel p,
body.dark-mode #sermons .study-workspace .notes-footer { color: #f8f4ea; }
body.dark-mode #sermons .study-workspace .eyebrow,
body.dark-mode #sermons .study-workspace .field small,
body.dark-mode #sermons .study-workspace .notes-footer { color: #c5cec0; }
body.dark-mode #sermons .study-workspace input,
body.dark-mode #sermons .study-workspace textarea,
body.dark-mode #sermons .study-workspace select,
body.dark-mode #sermons .study-workspace .button--quiet { border-color: rgba(248,244,234,.25); background: #111812; color: #f8f4ea; }

/* Phase two: focused home navigation, Sunday mode, and universal search. */
.site-search-button { display: inline-flex; align-items: center; gap: .3rem; border: 0; padding: .35rem .2rem; color: inherit; background: transparent; font: inherit; font-weight: 750; cursor: pointer; }
.site-search-button:hover, .site-search-button:focus-visible { color: var(--sage-deep); }
.site-header .site-search-button { min-height: 44px; color: #fff8ed; }
.site-header .site-search-button:hover, .site-header .site-search-button:focus-visible { color: var(--gold-bright); }
.sunday-mode { background: var(--forest); color: #fff9ef; }
.sunday-mode[hidden] { display: none; }
.sunday-mode__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 2rem; }
.sunday-mode h2 { max-width: 38rem; margin: .2rem 0 .45rem; color: #fff9ef; font-size: clamp(1.7rem, 3vw, 2.8rem); }
.sunday-mode p:not(.eyebrow) { max-width: 42rem; margin: 0; color: rgba(255,249,239,.78); }
.sunday-mode .eyebrow { color: #e4c578; }
.sunday-mode__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; justify-content: flex-end; }
.explore-more { padding-block: var(--section); background: var(--sand); }
.explore-more__head { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 2.25rem; }
.explore-more__head h2 { margin: .25rem 0 0; }
.explore-more__head > p { max-width: 31rem; margin: 0; color: var(--gray); }
.explore-more__links { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.explore-more__links a { display: grid; gap: .35rem; min-height: 8rem; padding: 1.35rem 1.1rem; color: var(--charcoal); text-decoration: none; transition: background .18s ease, color .18s ease; }
.explore-more__links a + a { border-left: 1px solid var(--line); }
.explore-more__links a:hover, .explore-more__links a:focus-visible { background: var(--sage-light); }
.explore-more__links strong { font-family: var(--serif); font-size: 1.35rem; }
.explore-more__links span { color: var(--gray); font-size: .9rem; }
.site-search-dialog { width: min(42rem, calc(100vw - 2rem)); border: 1px solid var(--line); border-radius: var(--radius); padding: 0; color: var(--charcoal); background: var(--white); box-shadow: 0 1.5rem 4rem rgba(0,0,0,.28); }
.site-search-dialog::backdrop { background: rgba(9, 17, 11, .62); backdrop-filter: blur(3px); }
.site-search-dialog__head { display: flex; justify-content: space-between; align-items: start; gap: 1rem; padding: 1.5rem 1.5rem 0; }
.site-search-dialog__head h2 { margin: .25rem 0 0; }
.site-search-dialog > .field { display: grid; gap: .42rem; padding: 1.25rem 1.5rem 1rem; }
.site-search-results { display: grid; gap: .45rem; min-height: 6rem; max-height: min(48vh, 28rem); overflow: auto; padding: .25rem 1.5rem 1.5rem; }
.site-search-results a { display: grid; gap: .2rem; padding: 1rem; border: 1px solid var(--line); border-radius: .65rem; color: var(--charcoal); text-decoration: none; }
.site-search-results a:hover, .site-search-results a:focus-visible { background: var(--sand); }
.site-search-results strong { font-size: 1rem; }
.site-search-results span, .site-search-results p { margin: 0; color: var(--gray); font-size: .9rem; }
body.dark-mode .site-search-dialog { background: #202c22; border-color: rgba(248,244,234,.18); color: #f8f4ea; }
body.dark-mode .site-search-results a { color: #f8f4ea; border-color: rgba(248,244,234,.18); }
body.dark-mode .site-search-results a:hover, body.dark-mode .site-search-results a:focus-visible { background: #111812; }

/* Dedicated page shell. */
.explore-hero { padding: clamp(8rem, 15vw, 12rem) 0 clamp(3.5rem, 8vw, 6rem); background: var(--forest); color: #fff9ef; }
.explore-hero__back { display: inline-flex; margin-bottom: 2.3rem; color: #e4c578; font-weight: 750; text-decoration: none; }
.explore-hero .eyebrow { color: #e4c578; }
.explore-hero h1 { max-width: 52rem; margin: .35rem 0 .8rem; color: #fff9ef; font-size: clamp(3rem, 7vw, 6.4rem); line-height: .96; }
.explore-hero .lead { max-width: 46rem; margin: 0; color: rgba(255,249,239,.82); font-size: clamp(1.1rem, 2vw, 1.38rem); }
.explore-content { min-height: 46vh; }
.explore-split { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .75fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.explore-split h2, .page-callout h2 { margin-top: 0; }
.explore-split > div > p { max-width: 44rem; font-size: 1.08rem; line-height: 1.75; }
.check-list--page { margin-top: 1.7rem; }
.page-callout, .page-form { display: grid; gap: 1rem; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.page-callout .text-link { width: fit-content; }
.page-note { margin: .5rem 0 0; color: var(--gray); font-size: .9rem; }
.calendar-frame { overflow: hidden; min-height: 38rem; margin-top: clamp(2rem, 6vw, 4rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.calendar-frame iframe { width: 100%; height: 38rem; border: 0; }
.leadership-page-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.leadership-page-grid article { min-height: 20rem; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.leadership-page-grid img, .leader-initials { display: block; width: 100%; aspect-ratio: 1.28; object-fit: cover; background: var(--sage-light); }
.leader-initials { display: grid; place-items: center; color: var(--forest); font-family: var(--serif); font-size: 3rem; font-weight: 700; }
.leadership-page-grid h2, .leadership-page-grid p { margin: 0; padding-inline: 1rem; }
.leadership-page-grid h2 { padding-top: 1rem; font-size: 1.45rem; }
.leadership-page-grid p { padding-block: .35rem 1rem; color: var(--gray); }
.beliefs-page { max-width: 54rem; border-top: 1px solid var(--line); }
.beliefs-page details { padding: 1.2rem 0; border-bottom: 1px solid var(--line); }

/* Calm, consolidated Sunday information. */
.sunday-quick { position: relative; z-index: 2; background: var(--cream); border-block: 1px solid rgba(23,32,25,.16); }
.sunday-quick__inner { min-height: 13.5rem; display: grid; grid-template-columns: minmax(16rem,.82fr) minmax(30rem,1.55fr) auto; gap: clamp(1.5rem,3.5vw,3.75rem); align-items: center; padding-block: 2.2rem; }
.sunday-quick__heading h2 { margin-bottom: .45rem; font-size: clamp(1.75rem,2.6vw,2.7rem); }
.sunday-quick__heading .eyebrow { margin-bottom: .7rem; }
.sunday-quick__countdown { margin: 0; color: #536050; font-size: .92rem; font-weight: 700; }
.sunday-quick__details { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-block: 1px solid rgba(23,32,25,.18); }
.sunday-quick__details > div { min-width: 0; display: grid; grid-template-columns: 2.7rem minmax(0,1fr); gap: .8rem; align-items: center; padding: 1.15rem 1rem; }
.sunday-quick__details > div + div { border-left: 1px solid rgba(23,32,25,.18); }
.sunday-quick__details svg { width: 2.25rem; height: 2.25rem; padding: .42rem; border: 1px solid #c89a3f; border-radius: 50%; fill: none; stroke: #93691b; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.sunday-quick__details span { min-width: 0; display: grid; gap: .18rem; }
.sunday-quick__details strong { color: #1c281f; font-family: var(--serif); font-size: 1.06rem; font-weight: 600; line-height: 1.15; }
.sunday-quick__details small { overflow: hidden; color: #5c665a; font-size: .72rem; font-weight: 750; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.sunday-quick__actions { display: grid; justify-items: start; gap: .35rem; }
.mobile-ministry-more { display: none; margin-top: 1.5rem; }

@supports (height: 100dvh) {
  .assistant-panel { max-height: min(44rem, calc(100dvh - 7.25rem)); }
}

body.dark-mode .sunday-quick { background: #182219; border-color: rgba(248,244,234,.16); }
body.dark-mode .sunday-quick h2,
body.dark-mode .sunday-quick__details strong { color: #fff9ef; }
body.dark-mode .sunday-quick__countdown,
body.dark-mode .sunday-quick__details small { color: #c5cec0; }
body.dark-mode .sunday-quick__details,
body.dark-mode .sunday-quick__details > div + div { border-color: rgba(248,244,234,.16); }
body.dark-mode .sunday-quick__details svg { stroke: #e4c578; border-color: #b98a34; }
.beliefs-page summary { cursor: pointer; color: var(--charcoal); font-family: var(--serif); font-size: clamp(1.3rem, 2vw, 1.7rem); font-weight: 700; }
.beliefs-page p { max-width: 48rem; margin: .8rem 0 0; color: var(--gray); line-height: 1.7; }
body.dark-mode .explore-hero { background: #0c120d; }
body.dark-mode .page-callout, body.dark-mode .page-form, body.dark-mode .leadership-page-grid article, body.dark-mode .calendar-frame { border-color: rgba(248,244,234,.18); background: #202c22; color: #f8f4ea; }
body.dark-mode .explore-split > div > p, body.dark-mode .beliefs-page p, body.dark-mode .leadership-page-grid p { color: #c5cec0; }
body.dark-mode .beliefs-page summary { color: #f8f4ea; }
body.dark-mode .calendar-frame iframe { filter: brightness(.78) saturate(.82) contrast(.95); }

/* Official calendar preview. */
.official-events { display: grid; gap: .8rem; align-content: start; }
.official-events-list { margin-top: clamp(2rem, 6vw, 4rem); }
.official-events-list > h2 { margin: 0 0 1rem; }
.official-events--grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.official-event-card, .official-events-empty { padding: 1.4rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.official-event-card__date { margin: 0 0 .45rem; color: var(--forest); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.official-event-card h3, .official-events-empty h3 { margin: 0; font-size: 1.35rem; }
.official-event-card p:last-child, .official-events-empty p { margin: .5rem 0 0; color: var(--gray); line-height: 1.55; }
body.dark-mode .official-event-card, body.dark-mode .official-events-empty { border-color: rgba(248,244,234,.18); background: #202c22; color: #f8f4ea; }
body.dark-mode .official-event-card__date { color: #e4c578; }
body.dark-mode .official-event-card p:last-child, body.dark-mode .official-events-empty p { color: #c5cec0; }

@media (min-width: 57.01rem) {
  .hero { min-height: min(46rem, calc(100svh - 7.95rem)); align-items: center; }
  .hero__art { inset: 0 0 0 auto; width: min(62%, 58rem); height: 100%; opacity: .14; }
  .hero__art::after { display: block; background: linear-gradient(90deg, var(--forest) 0%, rgba(20,33,23,.72) 38%, rgba(20,33,23,.08) 100%); }
  .hero__art img { height: 100%; object-fit: cover; }
  .hero__content { padding-block: clamp(6rem,10vw,9rem); padding-top: clamp(6rem,10vw,9rem); padding-right: min(40vw,34rem); }
  .hero__content h1 { font-size: clamp(4.7rem,7.2vw,6.75rem); }
}

/* Sermon onboarding and account-aware AI tools. */
.sermon-help { margin: 0 0 1.5rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--cream); }
.sermon-help summary { display: flex; min-height: 3.5rem; align-items: center; gap: .45rem; padding: .85rem 1rem; cursor: pointer; color: var(--forest); font-weight: 750; list-style: none; }
.sermon-help summary::-webkit-details-marker { display: none; }
.sermon-help summary > span:first-child { font-family: var(--serif); font-size: 1.06rem; }
.sermon-help summary > span:last-child { margin-left: auto; font-size: 1.25rem; }
.sermon-help[open] summary > span:last-child { transform: rotate(45deg); }
.sermon-help ol { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin: 0; padding: 0; border-top: 1px solid var(--line); background: var(--line); list-style: none; }
.sermon-help li { display: grid; gap: .35rem; padding: 1rem; background: var(--white); }
.sermon-help li strong { color: var(--charcoal); font-family: var(--serif); }
.sermon-help li span { color: var(--gray); font-size: .84rem; line-height: 1.5; }
.sermon-ai-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1rem 0 1.2rem; }
.sermon-ai-actions .button { min-height: 2.75rem; }
body.dark-mode .sermon-help { border-color: rgba(248,244,234,.18); background: #182219; }
body.dark-mode .sermon-help summary { color: #e4c578; }
body.dark-mode .sermon-help ol { background: rgba(248,244,234,.18); }
body.dark-mode .sermon-help li { background: #202c22; }
body.dark-mode .sermon-help li strong { color: #fff9ef; }
body.dark-mode .sermon-help li span { color: #c5cec0; }
@media (max-width: 56rem) { .sermon-help ol { grid-template-columns: 1fr 1fr; } }
@media (max-width: 36rem) { .sermon-help summary { align-items: flex-start; flex-wrap: wrap; } .sermon-help summary > span:last-child { position: absolute; right: 1.2rem; } .sermon-help ol { grid-template-columns: 1fr; } .sermon-ai-actions { display: grid; } .sermon-ai-actions .button { width: 100%; } }

/* 2026 visitor-first identity: authentic Oasis exterior and a focused latest-sermon preview. */
.hero {
  background: var(--cream);
  color: var(--forest);
}
.hero__content h1 { color: var(--forest); }
.hero__lead { color: #495348; }
.hero__facts {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1.35rem;
  margin-top: 1.35rem;
  color: #344038;
  font-size: .9rem;
  font-weight: 760;
}
.hero__facts span { display: inline-flex; align-items: center; gap: .55rem; }
.hero__facts span::before {
  content: '';
  width: .55rem;
  height: .55rem;
  flex: 0 0 auto;
  border: 2px solid #9a742d;
  border-radius: 50%;
}
.hero .button { border-color: var(--forest); background: var(--forest); color: #fff9ef; }
.hero .button:hover { border-color: #243d2e; background: #243d2e; }
.hero .button--secondary { border-color: rgba(23,32,25,.45); background: transparent; color: var(--forest); }
.hero .button--secondary:hover { border-color: var(--forest); background: transparent; color: var(--forest); }

html:not(.sermon-library-mode) #sermons .sermon-help,
html:not(.sermon-library-mode) #sermons .sermon-toolbar,
html:not(.sermon-library-mode) #sermons .sermon-more { display: none; }
html:not(.sermon-library-mode) #sermons .sermon-grid { grid-template-columns: minmax(0, 1fr); }
html:not(.sermon-library-mode) #sermons .sermon-card:first-child {
  grid-column: auto;
  grid-row: auto;
  grid-template-columns: minmax(17rem,.8fr) minmax(0,1.2fr);
  min-height: 0;
}
html:not(.sermon-library-mode) #sermons .sermon-card:first-child .sermon-card__art { aspect-ratio: 16 / 9; }
html:not(.sermon-library-mode) #sermons .sermon-library-foot { justify-content: flex-start; }

@media (min-width: 57.01rem) {
  .hero { min-height: min(44rem, calc(100svh - 7.95rem)); }
  .hero__art { inset: 0 0 0 auto; width: min(54%, 62rem); height: 100%; opacity: 1; }
  .hero__art::after {
    display: block;
    background: linear-gradient(90deg, var(--cream) 0%, rgba(255,249,239,.92) 10%, rgba(255,249,239,.2) 44%, rgba(255,249,239,0) 70%);
  }
  .hero__art img { height: 100%; object-fit: cover; object-position: 54% center; }
  .hero__content { padding-block: clamp(5.5rem,9vw,8rem); padding-right: min(48vw,39rem); }
  .hero__content h1 { font-size: clamp(4.2rem,6.6vw,6.35rem); }
}

/* Real photography from the Oasis photo library */
.ministry-card__media { margin: 0 0 var(--space-4); }
.ministry-card__media img { aspect-ratio: 3 / 2; width: 100%; object-fit: cover; border-radius: var(--radius-sm); }
.ministry-card h3 { margin-top: var(--space-3); }
.intro__photo { margin: var(--space-5) 0 0; }
.intro__photo img { width: 100%; max-height: 24rem; object-fit: cover; object-position: center 30%; border-radius: var(--radius); box-shadow: var(--shadow); }
.page-photo { margin: 0 0 clamp(2rem, 5vw, 3.5rem); }
.page-photo img { width: 100%; max-height: 26rem; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); }
.page-photo--inline { margin: 1.7rem 0 0; }
.page-photo--inline img { max-height: 19rem; border-radius: var(--radius-sm); }
.page-gallery { display: grid; grid-template-columns: 1.35fr 1fr; gap: 1rem; margin-top: 1.7rem; }
.page-gallery figure { margin: 0; }
.page-gallery img { width: 100%; height: 100%; min-height: 11rem; object-fit: cover; border-radius: var(--radius-sm); }
body.dark-mode .ministry-card__media img, body.dark-mode .page-photo img, body.dark-mode .page-gallery img, body.dark-mode .intro__photo img { filter: brightness(.92); }
@media (max-width: 640px) {
  .page-gallery { grid-template-columns: 1fr; }
  .page-photo img { max-height: 17rem; }
}

/* ===== 2026.2 redesign — unified Oasis design language (forest / gold / cream, Fraunces display) ===== */
:root {
  --serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  --forest: #152b20;
  --forest-soft: #21402f;
  --gold: #d3a752;
  --gold-bright: #e6c477;
  --gold-deep: #a97c26;
  --cream: #fdf9ef;
  --focus: 0 0 0 3px var(--cream), 0 0 0 6px var(--gold-deep);
  --shadow: 0 1.35rem 3.25rem rgba(21, 43, 32, .12);
}
h1, h2 { letter-spacing: -.018em; }
h1, h2, h3, h4 { font-variation-settings: 'opsz' 72; }
.eyebrow { color: #47694f; }
.eyebrow::before { content: ''; display: inline-block; width: 1.35rem; height: 2px; margin-right: .55rem; vertical-align: .22em; background: var(--gold); }
.hero .eyebrow::before, .section--charcoal .eyebrow::before { background: var(--gold-bright); }

.button { border-color: var(--forest); background: var(--forest); color: var(--cream); }
.button:hover { border-color: var(--gold); background: var(--gold); color: #1d2418; }
.button--secondary { background: transparent; color: var(--charcoal); border-color: rgba(23,32,25,.34); }
.button--secondary:hover { background: rgba(21,43,32,.06); border-color: var(--forest); color: var(--charcoal); }
.text-link { color: #245c41; text-decoration-color: rgba(211,167,82,.6); }
.text-link:hover { text-decoration-color: var(--gold-deep); }

.site-header, .site-header.is-scrolled { background: rgba(18,32,24,.97); }
.announcement { background: #0e1a13; }
.announcement a:hover { color: var(--gold-bright); }

.section--sand { background: linear-gradient(180deg, #f4eddc, #ede4cf); }
.section--sage { background: linear-gradient(180deg, #e7ebdc, #dfe5d2); }

.ministry-grid { gap: 1.1rem; }
.ministry-card { min-height: 0; border: 1px solid rgba(23,32,25,.12); border-radius: var(--radius); background: var(--cream); box-shadow: 0 .6rem 1.6rem rgba(21,43,32,.07); transition: transform var(--fast) var(--ease), box-shadow var(--fast) var(--ease); }
.ministry-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.ministry-card__media { margin: calc(var(--space-5) * -1) calc(var(--space-5) * -1) var(--space-4); }
.ministry-card__media img { aspect-ratio: 16 / 10; border-radius: var(--radius) var(--radius) 0 0; transition: filter var(--medium); }
.ministry-card:hover .ministry-card__media img { filter: saturate(1.08) brightness(1.03); }
.ministry-card__tag { color: var(--gold-deep); }

.sermon-card { border-radius: var(--radius); overflow: hidden; transition: transform var(--fast) var(--ease), box-shadow var(--fast) var(--ease); }
.sermon-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }

.next-step-grid article > span { color: var(--gold-deep); font-family: var(--serif); font-size: 1.5rem; }

.intro__photo img, .page-photo img, .brand-panel img { box-shadow: 0 1.1rem 2.6rem rgba(21,43,32,.16); }
.brand-panel::before { border-color: rgba(169,124,38,.4); }

.site-footer { background: var(--forest); color: #f2ecdd; }
.site-footer h2 { color: var(--cream); font-family: var(--serif); font-weight: 500; font-size: 1.15rem; }
.site-footer p, .site-footer a, .site-footer li { color: #d9d4c4; }
.site-footer a:hover { color: var(--gold-bright); }
.brand--footer strong { color: var(--cream); }
.brand--footer small { color: #c9c4b2; }
.footer-button { border-color: rgba(253,249,239,.32); background: transparent; color: #f2ecdd; }
.footer-button:hover { border-color: var(--gold); color: var(--gold-bright); }
.footer-bottom { border-top: 1px solid rgba(253,249,239,.16); color: #c9c4b2; }
.footer-bottom a { color: inherit; }
.footer-bottom a:hover { color: var(--gold-bright); }

.dialog { border-radius: var(--radius-lg); }
.dialog::backdrop { background: rgba(14,26,19,.62); backdrop-filter: blur(3px); }
.assistant-launcher { border: 1px solid rgba(211,167,82,.55); background: var(--forest); color: var(--cream); }
.assistant-launcher strong { color: var(--cream); }
.assistant-launcher small { color: var(--gold-bright); }
.assistant-form button { background: var(--forest); color: var(--cream); }
.assistant-form button:hover { background: var(--gold); color: #1d2418; }

.leader-photo, .leadership-page-grid img { filter: saturate(.96); }
.check-list li::before { color: var(--gold-deep); }

/* Dark mode alignment for the redesign layer */
body.dark-mode { --focus: 0 0 0 3px #111812, 0 0 0 6px var(--gold-bright); }
/* Only the solid primary button turns gold in dark mode. Without the :not()
   guards this rule also repainted .button--secondary and .button--quiet — which
   are meant to stay outlined — because it sits later in the file at the same
   specificity, so it silently won and flattened the button hierarchy. */
body.dark-mode .button:not(.button--secondary):not(.button--quiet) { border-color: var(--gold); background: var(--gold); color: #1d2418; }
body.dark-mode .button:not(.button--secondary):not(.button--quiet):hover { border-color: var(--gold-bright); background: var(--gold-bright); color: #1d2418; }
body.dark-mode .eyebrow { color: #cfd8c4; }
body.dark-mode .eyebrow::before { background: var(--gold-bright); }
body.dark-mode .section--sand, body.dark-mode .section--sage { background: #182119; }
body.dark-mode .ministry-card { border-color: rgba(248,244,234,.15); background: #1c2720; box-shadow: none; }
body.dark-mode .ministry-card:hover { box-shadow: 0 1rem 2.4rem rgba(0,0,0,.4); }
body.dark-mode .ministry-card__tag { color: var(--gold-bright); }
body.dark-mode .next-step-grid article > span { color: var(--gold-bright); }
body.dark-mode .text-link { color: var(--gold-bright); }
body.dark-mode .site-footer { background: #0c1510; }
@media (prefers-reduced-motion: reduce) {
  .ministry-card, .sermon-card, .ministry-card__media img { transition: none; }
  .ministry-card:hover, .sermon-card:hover { transform: none; }
}
/* The hero keeps its light cream treatment in dark mode; keep its text dark and readable there. */
body.dark-mode .hero__lead { color: #495348; }
body.dark-mode .hero__facts { color: #344038; }
/* ...including its buttons. `body.dark-mode .button--secondary` sets near-white
   text, which is invisible on the hero's cream panel, so re-assert the dark
   treatment here with enough specificity to win. */
body.dark-mode .hero .button--secondary { color: #152b20; border-color: rgba(23,32,25,.45); background: transparent; }
body.dark-mode .hero .button--secondary:hover { color: #152b20; border-color: #a97c26; background: rgba(21,43,32,.06); }
/* The hero's primary call to action is stated in literal hex on purpose: it must
   never depend on a custom property resolving, or a failure would leave dark
   text on the dark default and make the main button unreadable. */
body.dark-mode .hero .button:not(.button--secondary):not(.button--quiet) { background: #d3a752; border-color: #d3a752; color: #1d2418; }
body.dark-mode .hero .button:not(.button--secondary):not(.button--quiet):hover { background: #e6c477; border-color: #e6c477; color: #1d2418; }
.site-footer .brand { padding: 0; border: 0; background: transparent; box-shadow: none; }
.site-footer .brand img { background: transparent; }
.ministry-card__tag { color: #8a6215; }
body.dark-mode .ministry-card__tag { color: var(--gold-bright); }

/* ===== 2026.9 — WCAG 2.5.8 touch targets (min 24x24, primary actions 44px) ===== */
/* Footer link lists were 23px tall on desktop; the mobile rule already handled small screens. */
.site-footer li a { min-height: 24px; display: inline-flex; align-items: center; }
/* Announcement bar directions link was 22px. */
.announcement a { min-height: 24px; display: inline-flex; align-items: center; gap: .3rem; }
/* Inline legal links sit in a text run (exempt from 2.5.8) but were only 17px; widen the
   hit area with padding that does not disturb the inline layout. */
.footer-bottom a { padding-block: .25rem; }
/* Primary small CTA ("Plan Your Visit") to the 44px AAA target. */
.button--small { min-height: 44px; }

/* ===== 2026.10 — fix: full-bleed ministry photo must track the card's real padding =====
   The bleed used a hard-coded -2rem while the mobile breakpoint narrows the card's
   padding to 1rem, so the photo hung 16px outside the card on phones. Driving both the
   padding and the negative margin from the same variables keeps them in step, and
   overflow:hidden guarantees the photo can never escape the rounded corners. */
.ministry-card { --pad-y: var(--space-5); --pad-x: var(--space-5); padding: var(--pad-y) var(--pad-x); overflow: hidden; }
.ministry-card__media { margin: calc(var(--pad-y) * -1) calc(var(--pad-x) * -1) var(--space-4); }
@media (max-width: 43rem) {
  #ministries .ministry-card { --pad-y: 1.5rem; --pad-x: 1rem; padding: var(--pad-y) var(--pad-x); }
}

/* ===== 2026.11 — focused visitor journey ===== */
.hero { min-height: clamp(37rem, 70vh, 47rem); }
.hero-step {
  opacity: 1;
  transform: none;
  animation: none;
}
.hero__content { padding-block: clamp(5.5rem, 11vw, 9rem) clamp(3.25rem, 7vw, 5.5rem); }
.hero__lead { max-width: 42rem; }
.section { padding-block: clamp(3.75rem, 7vw, 6rem); }
.sunday-quick__inner { padding-block: clamp(1.1rem, 2.5vw, 1.65rem); }
.intro__grid { align-items: center; }
.intro__photo { max-height: 25rem; overflow: hidden; }
.intro__photo img { height: 100%; object-fit: cover; }
#ministries .ministry-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#ministries .ministry-card:nth-child(n + 4) { display: none; }
#events .compact-section { align-items: center; }
.location .map-card { min-height: min(29rem, 60vw); }
.explore-more { display: none; }
.assistant-launcher { box-shadow: 0 10px 26px rgba(15, 56, 41, .18); }

@media (max-width: 60rem) {
  #ministries .ministry-grid { grid-template-columns: 1fr; max-width: 42rem; margin-inline: auto; }
}

/* Subsplash calendar embed (replaces the old ccbchurch iframe) */
.calendar-embed { margin-top: 2rem; border: 1px solid var(--line); border-radius: 10px; background: var(--paper, #fffdf8); overflow: hidden; }
.calendar-embed > div { min-height: 32rem; }
.calendar-embed iframe { display: block; width: 100%; min-height: 32rem; border: 0; }
.calendar-embed__fallback { margin: 0; padding: 2rem; text-align: center; color: var(--muted); }


/* Connect / Serve / Grow / Go — the four rhythms */
.rhythm-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: clamp(1rem, 2.5vw, 1.75rem); margin-top: clamp(1.5rem, 4vw, 2.5rem); }
.rhythm-card { display: flex; flex-direction: column; gap: .6rem; padding: clamp(1.25rem, 3vw, 1.9rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.rhythm-card__icon { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--forest); color: var(--gold); font-size: 1.35rem; }
.rhythm-card h3 { margin: 0; font-family: var(--serif); font-size: clamp(1.35rem, 3vw, 1.7rem); font-weight: 400; letter-spacing: .01em; }
.rhythm-card p { margin: 0; color: var(--muted); line-height: 1.65; }
.rhythm-card .text-link { margin-top: auto; padding-top: .35rem; }

/* Live stream + app */
.sap-embed-player { position: relative; width: 100%; height: 0; padding-top: 56.25%; border-radius: var(--radius); overflow: hidden; background: #000; }
.sap-embed-player > iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.watch-live__foot { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1rem, 3vw, 2rem); align-items: center; margin-top: clamp(1.25rem, 3vw, 2rem); padding: clamp(1.1rem, 3vw, 1.75rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.watch-live__foot h3 { margin: 0 0 .3rem; font-family: var(--serif); font-size: 1.35rem; font-weight: 400; }
.watch-live__foot p { margin: 0; color: var(--muted); }

/* Subsplash form + app embeds */
.embed-section { margin-top: clamp(2rem, 5vw, 3.25rem); }
.embed-section > h2 { font-family: var(--serif); font-size: clamp(1.5rem, 3.5vw, 2rem); font-weight: 400; }
.embed-section > p { color: var(--muted); max-width: 60ch; }
.subsplash-embed { margin-top: 1.25rem; border-radius: var(--radius); overflow: hidden; }
.subsplash-embed iframe { display: block; width: 100%; border: 0; }
.subsplash-embed--app { margin-top: 0; }
.subsplash-embed__fallback { margin: 0; padding: 1.5rem; border: 1px dashed var(--line); border-radius: var(--radius); color: var(--muted); text-align: center; }

@media (max-width: 46rem) {
  .watch-live__foot { grid-template-columns: 1fr; }
}


/* Statements of faith */
.beliefs-intro { display: grid; gap: 1rem; justify-items: start; padding: clamp(1.1rem, 3vw, 1.75rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); }
.beliefs-intro p { margin: 0; max-width: 62ch; color: var(--muted); }
.beliefs-essentials, .beliefs-full { margin-top: clamp(2rem, 5vw, 3rem); }
.beliefs-essentials > h2, .beliefs-full > h2 { font-family: var(--serif); font-size: clamp(1.5rem, 3.5vw, 2rem); font-weight: 400; }
.essentials-list { counter-reset: essential; display: grid; gap: .75rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
.essentials-list li { position: relative; padding: .9rem 1.1rem .9rem 3.2rem; border: 1px solid var(--line); border-radius: var(--radius-sm, 8px); background: var(--white); line-height: 1.6; }
.essentials-list li::before { counter-increment: essential; content: counter(essential); position: absolute; left: 1rem; top: .85rem; display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--forest); color: var(--gold); font-size: .8rem; font-weight: 800; }
.beliefs-page details { margin-top: .6rem; border: 1px solid var(--line); border-radius: var(--radius-sm, 8px); background: var(--white); }
.beliefs-page summary { display: flex; align-items: baseline; gap: .7rem; min-height: 52px; padding: .85rem 1.1rem; font-weight: 700; cursor: pointer; }
.beliefs-page summary:focus-visible { outline: 3px solid var(--gold); outline-offset: -3px; }
.belief-letter { display: inline-grid; place-items: center; flex: 0 0 1.7rem; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: var(--sage-soft, #eef0e8); color: var(--forest); font-size: .78rem; font-weight: 800; }
.beliefs-page details > p { margin: 0 1.1rem 1rem; max-width: 68ch; line-height: 1.7; }
.belief-subs { display: grid; gap: .9rem; margin: 0 1.1rem 1.1rem; padding-left: 1.2rem; }
.belief-subs li { line-height: 1.7; }
.belief-subs p { margin: 0 0 .4rem; max-width: 66ch; }
.scripture-ref { color: var(--muted); font-size: .86rem; font-style: italic; }


/* Reach and Teach — the Great Commission signs from the lobby */
.reach-teach__photo { margin: clamp(1.5rem, 4vw, 2.5rem) 0 0; border-radius: var(--radius); overflow: hidden; }
.reach-teach__photo img { display: block; width: 100%; height: auto; }
.reach-teach__pair { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: clamp(1rem, 3vw, 1.75rem); margin-top: clamp(1.25rem, 3vw, 2rem); }
.reach-teach__card { display: flex; flex-direction: column; gap: .6rem; margin: 0; padding: clamp(1.25rem, 3vw, 1.9rem); border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: var(--radius); background: var(--white); }
.reach-teach__word { margin: 0; font-family: var(--serif); font-size: clamp(1.6rem, 4vw, 2.2rem); font-weight: 400; letter-spacing: .12em; text-transform: uppercase; color: var(--forest); }
.reach-teach__card p:not(.reach-teach__word) { margin: 0; line-height: 1.7; }
.reach-teach__card cite { color: var(--muted); font-size: .86rem; font-style: normal; font-weight: 700; letter-spacing: .04em; }
