@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');

:root {
  --ink: #171916;
  --ink-2: #22251f;
  --paper: #fbfaf6;
  --sand: #f1eee6;
  --gold: #d8a545;
  --gold-deep: #b77a19;
  --sage: #55705c;
  --sage-pale: #dce6dd;
  --line: rgba(23, 25, 22, 0.12);
  --muted: #687066;
  --white: #fffdf9;
  --shadow: 0 18px 45px rgba(21, 24, 18, 0.12);
  --serif: 'Playfair Display', Georgia, serif;
  --sans: 'DM Sans', Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.55;
}
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { cursor: pointer; }
img { display: block; max-width: 100%; }
.shell { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--gold-deep);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: .115em;
  text-transform: uppercase;
}
.eyebrow::before { content: ''; width: 22px; height: 2px; background: currentColor; }
.eyebrow.light { color: #f3d69e; }
.eyebrow.light::before { background: #f3d69e; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 30px; }
.section-head h2, .display { margin: 7px 0 0; font-family: var(--serif); font-weight: 600; letter-spacing: -.035em; line-height: .98; }
.section-head h2 { font-size: clamp(2rem, 4vw, 3.35rem); max-width: 660px; }
.section-head p { max-width: 360px; margin: 0; color: var(--muted); }
.section { padding: 88px 0; }
.section-tight { padding: 68px 0; }
.tag { display: inline-flex; padding: 6px 10px; border: 1px solid rgba(255,255,255,.45); border-radius: 999px; font-size: .77rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

.site-header { position: absolute; z-index: 5; width: 100%; border-bottom: 1px solid rgba(255,255,255,.22); color: #fff; }
.site-header.solid { position: relative; color: var(--ink); background: var(--paper); border-bottom-color: var(--line); }
.nav { display: flex; align-items: center; justify-content: space-between; min-height: 80px; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 10px; font-size: 1.04rem; font-weight: 700; letter-spacing: -.03em; }
.brand-mark { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid currentColor; border-radius: 10px; font-family: var(--serif); font-size: .88rem; font-weight: 600; letter-spacing: -.1em; }
.nav-links { display: flex; align-items: center; gap: 25px; font-size: .89rem; font-weight: 600; }
.nav-links a { opacity: .78; transition: opacity .2s ease; }
.nav-links a:hover, .nav-links a[aria-current='page'] { opacity: 1; }
.nav-give { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 17px; border-radius: 999px; background: var(--gold); color: #27200f; font-size: .87rem; font-weight: 800; }
.nav-toggle { display: none; padding: 8px; border: 0; color: inherit; background: transparent; }
.nav-toggle span { display: block; width: 22px; height: 2px; margin: 4px; background: currentColor; }

.hero { position: relative; overflow: hidden; min-height: 720px; color: #fff; background: #141612; }
.hero::before { position: absolute; inset: 0; content: ''; background: linear-gradient(90deg, rgba(12,14,11,.94) 0%, rgba(12,14,11,.75) 34%, rgba(12,14,11,.21) 71%, rgba(12,14,11,.22) 100%); z-index: 1; }
.hero::after { position: absolute; inset: auto 0 0; height: 34%; content: ''; background: linear-gradient(transparent, rgba(12,14,11,.72)); z-index: 1; }
.hero-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-content { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; min-height: 720px; padding: 135px 0 105px; }
.hero-copy { max-width: 630px; }
.hero-copy h1 { margin: 16px 0 24px; max-width: 620px; font-family: var(--serif); font-size: clamp(3.35rem, 7.2vw, 6.55rem); font-weight: 600; letter-spacing: -.06em; line-height: .88; }
.hero-copy h1 em { color: #f2cc79; font-weight: 500; }
.hero-copy p { max-width: 540px; margin: 0; color: rgba(255,255,255,.82); font-size: 1.12rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 51px; padding: 0 21px; border: 1px solid transparent; border-radius: 999px; font-weight: 700; transition: transform .2s ease, background .2s ease, border-color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button.gold { color: #29200d; background: var(--gold); }
.button.light { color: #fff; border-color: rgba(255,255,255,.58); background: rgba(255,255,255,.07); }
.button.ink { color: #fff; background: var(--ink); }
.button.outline { color: var(--ink); border-color: var(--line); background: transparent; }
.hero-meta { display: flex; align-items: center; gap: 18px; margin-top: 68px; color: rgba(255,255,255,.75); font-size: .87rem; }
.hero-meta strong { color: #fff; }
.hero-meta .rule { width: 40px; height: 1px; background: rgba(255,255,255,.45); }

.impact-strip { background: var(--ink); color: #fff; }
.impact-strip-grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 0; }
.impact-intro, .impact-stat { padding: 31px 28px; border-right: 1px solid rgba(255,255,255,.15); }
.impact-stat:last-child { border: 0; }
.impact-intro p { margin: 0; color: rgba(255,255,255,.73); }
.impact-stat strong { display: block; color: #f2cc79; font-family: var(--serif); font-size: 2rem; font-weight: 600; letter-spacing: -.04em; }
.impact-stat span { color: rgba(255,255,255,.68); font-size: .84rem; }

.giving { background: var(--paper); }
.giving-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 52px; align-items: start; }
.giving-copy { position: sticky; top: 28px; }
.giving-copy h2 { margin: 12px 0 18px; font-family: var(--serif); font-size: clamp(2.6rem, 4vw, 4rem); font-weight: 600; letter-spacing: -.055em; line-height: .96; }
.giving-copy p { max-width: 410px; color: var(--muted); font-size: 1.04rem; }
.payment-note { display: flex; align-items: center; gap: 9px; margin-top: 30px; color: var(--muted); font-size: .82rem; }
.payment-note svg { width: 17px; height: 17px; color: var(--sage); }
.gift-panel { padding: 10px; border: 1px solid var(--line); border-radius: 24px; background: #fff; box-shadow: var(--shadow); }
.gift-switch { display: flex; padding: 5px; border-radius: 16px; background: var(--sand); }
.gift-switch button { flex: 1; padding: 12px 10px; border: 0; border-radius: 12px; color: var(--muted); background: transparent; font-weight: 700; font-size: .86rem; }
.gift-switch button[aria-pressed='true'] { color: var(--ink); background: #fff; box-shadow: 0 2px 7px rgba(20,20,14,.07); }
.gift-content { padding: 29px 24px 24px; }
.gift-label { color: var(--gold-deep); font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.gift-title { margin: 9px 0 20px; font-family: var(--serif); font-size: 2rem; letter-spacing: -.04em; }
.gift-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.gift-option { min-height: 98px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); background: #fff; text-align: left; transition: .2s ease; }
.gift-option:hover, .gift-option.selected { border-color: var(--gold); background: #fffaf0; box-shadow: 0 6px 16px rgba(103,70,18,.09); }
.gift-option span { display: block; color: var(--muted); font-size: .74rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.gift-option strong { display: block; margin-top: 7px; font-family: var(--serif); font-size: 1.38rem; letter-spacing: -.04em; }
.gift-option.wide { grid-column: span 3; min-height: auto; display: flex; align-items: center; justify-content: space-between; }
.gift-option.wide strong { margin: 0; font-size: 1.1rem; }
.gift-cta { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--line); }
.gift-summary { font-size: .88rem; }
.gift-summary strong { display: block; }
.gift-summary span { color: var(--muted); }

.gifts-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 48px; align-items: start; }
.activity { padding: 2px 0; border-top: 1px solid var(--line); }
.activity-item { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 13px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.initial { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: #fff; background: var(--sage); font-size: .83rem; font-weight: 800; }
.activity-item:nth-child(2) .initial { color: #35240b; background: #e2c986; }
.activity-item:nth-child(3) .initial { background: #273a30; }
.activity-name { font-size: .92rem; font-weight: 700; }
.activity-detail { color: var(--muted); font-size: .78rem; }
.activity-amount { font-family: var(--serif); font-size: 1.18rem; font-weight: 600; }
.quote-card { position: relative; overflow: hidden; padding: 42px; border-radius: 24px; color: #fff; background: var(--sage); }
.quote-card::after { position: absolute; right: -34px; bottom: -100px; content: '“'; color: rgba(255,255,255,.11); font-family: var(--serif); font-size: 20rem; line-height: 1; }
.quote-card p { position: relative; margin: 16px 0 22px; font-family: var(--serif); font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 500; letter-spacing: -.04em; line-height: 1.15; }
.quote-card small { position: relative; color: rgba(255,255,255,.75); font-size: .83rem; }

.sermon-section { padding: 88px 0; color: #fff; background: #20231e; }
.sermon-section .section-head p { color: rgba(255,255,255,.65); }
.sermon-rail { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.sermon-card { min-height: 260px; padding: 25px; border: 1px solid rgba(255,255,255,.18); border-radius: 18px; color: #fff; background: linear-gradient(145deg, rgba(255,255,255,.11), rgba(255,255,255,.025)); }
.sermon-card.featured { background: linear-gradient(145deg, #8b6b2e, #3f341e); }
.sermon-card .sermon-number { display: block; color: rgba(255,255,255,.65); font-size: .77rem; font-weight: 700; letter-spacing: .1em; }
.sermon-card h3 { margin: 56px 0 13px; font-family: var(--serif); font-size: 1.8rem; letter-spacing: -.045em; line-height: 1.04; }
.sermon-card p { margin: 0; color: rgba(255,255,255,.68); font-size: .83rem; }
.sermon-card a { display: inline-block; margin-top: 22px; color: #f5d891; font-size: .84rem; font-weight: 700; }

.live-callout { padding: 82px 0; background: var(--sand); }
.live-card { display: grid; grid-template-columns: 1.12fr .88fr; overflow: hidden; border-radius: 25px; background: var(--ink); color: #fff; box-shadow: var(--shadow); }
.live-card-main { padding: 50px; }
.live-card-main h2 { max-width: 530px; margin: 14px 0 18px; font-family: var(--serif); font-size: clamp(2.4rem, 4.5vw, 4.2rem); font-weight: 600; letter-spacing: -.055em; line-height: .95; }
.live-card-main p { max-width: 490px; color: rgba(255,255,255,.72); }
.live-card-aside { display: flex; flex-direction: column; justify-content: end; gap: 12px; padding: 35px; color: var(--ink); background: #f3d68e; }
.live-card-aside span { font-size: .77rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.live-card-aside strong { font-family: var(--serif); font-size: 2rem; font-weight: 600; line-height: 1; letter-spacing: -.04em; }

.events { background: var(--paper); }
.events-grid { display: grid; grid-template-columns: 1.1fr .9fr .9fr; gap: 16px; }
.event-card { min-height: 320px; display: flex; flex-direction: column; justify-content: space-between; padding: 28px; border: 1px solid var(--line); border-radius: 19px; background: #fff; }
.event-card.primary { color: #fff; border-color: #2f4436; background: #2e4537; }
.event-meta { color: var(--gold-deep); font-size: .77rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.primary .event-meta { color: #f1cf7e; }
.event-card h3 { margin: 10px 0; font-family: var(--serif); font-size: 2rem; letter-spacing: -.05em; line-height: 1.02; }
.event-card p { margin: 0; color: var(--muted); font-size: .9rem; }
.primary p { color: rgba(255,255,255,.7); }
.event-card a { margin-top: 25px; color: var(--gold-deep); font-size: .85rem; font-weight: 800; }
.primary a { color: #f4d891; }

.site-footer { padding: 52px 0 25px; color: #fff; background: #171916; }
.footer-grid { display: grid; grid-template-columns: 1.2fr .8fr .8fr .9fr; gap: 32px; padding-bottom: 42px; }
.footer-brand p { max-width: 290px; color: rgba(255,255,255,.62); font-size: .88rem; }
.footer-col h4 { margin: 0 0 13px; color: #f0d18d; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.footer-col a, .footer-col span { display: block; margin: 7px 0; color: rgba(255,255,255,.67); font-size: .86rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 12px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.5); font-size: .76rem; }

.page-hero { position: relative; overflow: hidden; min-height: 440px; padding: 128px 0 65px; color: #fff; background: #20251f; }
.page-hero::after { position: absolute; inset: 0; content: ''; background: linear-gradient(100deg, rgba(21,25,20,.97), rgba(21,25,20,.66)); }
.page-hero .shell { position: relative; z-index: 1; }
.page-hero h1 { max-width: 710px; margin: 14px 0 18px; font-family: var(--serif); font-size: clamp(3rem, 6vw, 5.4rem); font-weight: 600; letter-spacing: -.06em; line-height: .91; }
.page-hero p { max-width: 610px; margin: 0; color: rgba(255,255,255,.75); font-size: 1.08rem; }
.page-hero.kit { background: linear-gradient(135deg, #5e4830, #20251f); }
.page-hero.live { background: linear-gradient(135deg, #3a4c3c, #1b211c); }
.page-hero.events { background: linear-gradient(135deg, #7a5e2b, #25261f); }
.page-hero.portal { background: linear-gradient(135deg, #2b4134, #171916); }

.watch-layout { display: grid; grid-template-columns: 1.18fr .82fr; gap: 28px; align-items: stretch; }
.video-shell { position: relative; display: flex; flex-direction: column; justify-content: end; min-height: 440px; padding: 36px; overflow: hidden; border-radius: 23px; color: #fff; background: linear-gradient(135deg, #294033, #111611); }
.video-shell::before { position: absolute; top: 32px; left: 32px; content: ''; width: 12px; height: 12px; border-radius: 50%; background: #ee6f54; box-shadow: 0 0 0 7px rgba(238,111,84,.13); }
.video-shell::after { position: absolute; inset: 0; content: ''; background: radial-gradient(circle at 75% 25%, rgba(239,203,126,.28), transparent 31%); }
.video-shell > * { position: relative; z-index: 1; }
.play-mark { display: grid; place-items: center; width: 78px; height: 78px; margin-bottom: auto; border: 1px solid rgba(255,255,255,.6); border-radius: 50%; background: rgba(255,255,255,.1); }
.play-mark::after { margin-left: 4px; content: ''; border-top: 10px solid transparent; border-bottom: 10px solid transparent; border-left: 15px solid #fff; }
.video-shell h2 { max-width: 520px; margin: 0 0 8px; font-family: var(--serif); font-size: 2.4rem; letter-spacing: -.05em; line-height: 1; }
.video-shell p { margin: 0; color: rgba(255,255,255,.72); }
.stream-info { display: flex; flex-direction: column; justify-content: space-between; padding: 35px; border: 1px solid var(--line); border-radius: 23px; background: #fff; }
.stream-info h2 { margin: 10px 0 15px; font-family: var(--serif); font-size: 2.15rem; letter-spacing: -.045em; line-height: 1; }
.stream-info p { color: var(--muted); }
.schedule-list { margin: 23px 0; padding: 0; list-style: none; }
.schedule-list li { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 12px 0; border-top: 1px solid var(--line); font-size: .9rem; }
.schedule-list li:last-child { border-bottom: 1px solid var(--line); }
.schedule-list time { color: var(--muted); }

.filter-row { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 31px; }
.filter-row button { padding: 9px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: transparent; font-size: .84rem; font-weight: 700; }
.filter-row button.active { color: #fff; border-color: var(--ink); background: var(--ink); }
.sermon-library { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.library-card { display: flex; flex-direction: column; min-height: 278px; padding: 24px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.library-card .series { color: var(--gold-deep); font-size: .73rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.library-card h2 { margin: 42px 0 10px; font-family: var(--serif); font-size: 1.75rem; font-weight: 600; letter-spacing: -.045em; line-height: 1.02; }
.library-card p { margin: 0; color: var(--muted); font-size: .84rem; }
.library-card a { margin-top: auto; padding-top: 22px; color: var(--sage); font-size: .84rem; font-weight: 800; }

.gala-feature { display: grid; grid-template-columns: 1.1fr .9fr; overflow: hidden; border-radius: 25px; color: #fff; background: #23251e; }
.gala-copy { padding: 49px; }
.gala-copy h2 { max-width: 510px; margin: 12px 0 18px; font-family: var(--serif); font-size: clamp(2.5rem, 4vw, 4.25rem); font-weight: 600; letter-spacing: -.06em; line-height: .94; }
.gala-copy p { max-width: 500px; color: rgba(255,255,255,.72); }
.gala-brief { display: grid; align-content: center; gap: 18px; padding: 42px; color: var(--ink); background: #eed28c; }
.gala-brief span { font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.gala-brief strong { font-family: var(--serif); font-size: 1.8rem; letter-spacing: -.04em; line-height: 1; }
.gala-brief p { margin: 0; font-size: .91rem; }
.sponsor-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.sponsor-card { display: flex; flex-direction: column; min-height: 260px; padding: 25px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.sponsor-card.featured { border-color: var(--gold); background: #fff9eb; }
.sponsor-card h3 { margin: 7px 0; font-family: var(--serif); font-size: 1.7rem; letter-spacing: -.04em; }
.sponsor-card .amount { color: var(--gold-deep); font-family: var(--serif); font-size: 2.1rem; font-weight: 600; letter-spacing: -.05em; }
.sponsor-card p { color: var(--muted); font-size: .87rem; }
.sponsor-card a { margin-top: auto; color: var(--sage); font-size: .84rem; font-weight: 800; }

.portal-wrap { display: grid; grid-template-columns: .9fr 1.1fr; min-height: 630px; overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: #fff; }
.portal-intro { display: flex; flex-direction: column; justify-content: space-between; padding: 46px; color: #fff; background: #2d4435; }
.portal-intro h2 { margin: 16px 0; font-family: var(--serif); font-size: 3.2rem; font-weight: 600; letter-spacing: -.06em; line-height: .94; }
.portal-intro p { max-width: 345px; color: rgba(255,255,255,.72); }
.portal-intro small { color: rgba(255,255,255,.55); }
.portal-form { padding: 54px; }
.portal-form h2 { margin: 0 0 9px; font-family: var(--serif); font-size: 2.55rem; letter-spacing: -.05em; }
.portal-form > p { margin: 0 0 31px; color: var(--muted); }
.field { display: grid; gap: 8px; margin: 18px 0; }
.field label { font-size: .86rem; font-weight: 700; }
.field input { width: 100%; min-height: 51px; padding: 0 14px; border: 1px solid var(--line); border-radius: 11px; color: var(--ink); background: var(--paper); }
.form-row { display: flex; align-items: center; justify-content: space-between; gap: 13px; margin: 15px 0 25px; color: var(--muted); font-size: .82rem; }
.form-row a { color: var(--sage); font-weight: 700; }

.toast { position: fixed; right: 22px; bottom: 22px; z-index: 20; width: min(360px, calc(100% - 44px)); transform: translateY(140%); padding: 16px 18px; border-radius: 14px; color: #fff; background: var(--ink); box-shadow: 0 18px 42px rgba(0,0,0,.23); font-size: .89rem; opacity: 0; transition: .25s ease; }
.toast.show { transform: translateY(0); opacity: 1; }
.modal[hidden] { display: none; }
.modal { position: fixed; inset: 0; z-index: 30; display: grid; place-items: center; padding: 24px; background: rgba(15,17,14,.7); }
.modal-panel { width: min(550px, 100%); padding: 35px; border-radius: 22px; color: var(--ink); background: #fff; }
.modal-panel h2 { margin: 10px 0; font-family: var(--serif); font-size: 2.25rem; letter-spacing: -.05em; }
.modal-panel p { color: var(--muted); }
.modal-close { float: right; border: 0; color: var(--muted); background: transparent; font-weight: 800; }

@media (max-width: 900px) {
  .nav-links { gap: 14px; font-size: .81rem; }
  .impact-strip-grid { grid-template-columns: 1fr 1fr; }
  .impact-intro { grid-column: span 2; }
  .impact-stat:nth-child(3) { border-right: 0; }
  .giving-layout, .gifts-grid, .live-card, .watch-layout, .gala-feature, .portal-wrap { grid-template-columns: 1fr; }
  .giving-copy { position: static; }
  .live-card-aside { min-height: 200px; }
  .sermon-rail, .sermon-library, .sponsor-grid { grid-template-columns: repeat(2, 1fr); }
  .events-grid { grid-template-columns: 1fr 1fr; }
  .event-card.primary { grid-column: span 2; }
  .footer-grid { grid-template-columns: 1.25fr 1fr 1fr; }
  .footer-brand { grid-column: span 3; }
}
@media (max-width: 680px) {
  .shell { width: min(100% - 32px, 1180px); }
  .section { padding: 64px 0; }
  .section-head { display: block; }
  .section-head p { margin-top: 16px; }
  .site-header { background: rgba(22,24,20,.86); backdrop-filter: blur(14px); }
  .site-header.solid { background: var(--paper); }
  .nav { min-height: 68px; }
  .nav-toggle { display: block; }
  .nav-links { position: absolute; top: 68px; left: 0; right: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 12px 16px 18px; color: var(--ink); background: var(--paper); border-bottom: 1px solid var(--line); }
  .nav-links.open { display: flex; }
  .nav-links a { padding: 11px 0; }
  .nav-give { margin-top: 6px; }
  .hero, .hero-content { min-height: 640px; }
  .hero-content { padding: 135px 0 55px; }
  .hero-copy h1 { font-size: clamp(3.3rem, 15vw, 4.9rem); }
  .hero-copy p { font-size: 1rem; }
  .hero-meta { margin-top: 40px; }
  .impact-intro, .impact-stat { padding: 24px 17px; }
  .impact-stat strong { font-size: 1.55rem; }
  .giving-layout { gap: 32px; }
  .gift-content { padding: 23px 15px 17px; }
  .gift-options { grid-template-columns: 1fr; }
  .gift-option.wide { grid-column: auto; }
  .gift-cta { align-items: stretch; flex-direction: column; }
  .gift-cta .button { width: 100%; }
  .sermon-rail, .sermon-library, .sponsor-grid, .events-grid { grid-template-columns: 1fr; }
  .event-card.primary { grid-column: auto; }
  .live-card-main, .gala-copy, .portal-intro, .portal-form { padding: 34px 26px; }
  .live-card-aside, .gala-brief { padding: 30px 26px; }
  .video-shell { min-height: 380px; padding: 26px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: span 2; }
  .footer-bottom { display: block; }
  .footer-bottom span + span { display: block; margin-top: 4px; }
}

/* FaithBanc identity: restrained marks, consistent with the original design. */
.brand-eagle {width:42px;height:42px;object-fit:contain;flex:none;}
.brand-name {letter-spacing:.01em;font-weight:700;}
.faith-lockup {width:96px;height:auto;margin-bottom:18px;border-radius:4px;}
.footer-signature h4 {margin-bottom:8px;}
.brand-plaque {display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid rgba(183,122,25,.25);border-radius:7px;width:fit-content;margin-bottom:24px;}
.brand-plaque img {object-fit:contain;flex:none;}
.brand-plaque span {font-size:.875rem;letter-spacing:.035em;font-weight:700;}
.gala-brief .brand-plaque {margin-bottom:4px;background:rgba(255,255,255,.18);}
.broadcast-signature {position:absolute;right:24px;top:24px;color:#f3d69e;font-size:.875rem;letter-spacing:.07em;}
@media(max-width:680px) {.brand-eagle{width:36px;height:36px}.brand-plaque{padding:8px 10px}.brand-plaque span{letter-spacing:0}.footer-signature{grid-column:span 2}.faith-lockup{width:82px}}

[data-giving-panel][hidden], .field-error[hidden] {display:none!important}
.gift-amounts {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.amount-option {min-height:48px;padding:8px 5px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-size:1rem;font-weight:700}
.amount-option:hover,.amount-option.selected {border-color:var(--gold-deep);background:#fff5df}
.gift-custom {margin-top:22px}
.money-input {display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.money-input>span {padding-left:14px;color:var(--muted)}
.money-input input {border:0;background:transparent;min-width:0}
.money-input:focus-within {outline:2px solid var(--gold-deep);outline-offset:2px}
.tithe-calculator {margin-top:22px;border-top:1px solid var(--line);padding-top:18px}
.tithe-calculator summary {cursor:pointer;font-weight:700;font-size:1rem}
.tithe-calculator summary>span {display:block;margin:5px 0 0 18px;font-weight:400;font-size:.875rem;color:var(--muted)}
.calculator-content .field {margin-bottom:8px}
.calculator-note {font-size:.8125rem;color:var(--muted);margin:0 0 20px}
.tithe-result {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;border-radius:12px;background:var(--sand)}
.tithe-result span {display:block;font-size:.875rem;color:var(--muted)}
.tithe-result output {display:block;font-size:1.65rem;font-weight:700}
.tithe-result button {min-height:44px;font-size:.875rem;background:#fff}
button:disabled {opacity:.45;cursor:default;transform:none!important}
.field-error {font-size:.875rem;color:#a52222}
.gift-cta {flex-wrap:wrap}
@media(max-width:430px) {.gift-amounts{grid-template-columns:repeat(3,minmax(0,1fr))}.tithe-result{align-items:stretch;flex-direction:column}.gift-content{padding:22px 14px}.gift-options{grid-template-columns:1fr}}

/* Keep the FaithBanc identity and navigation available while scrolling. */
.site-header {position:fixed;top:0;left:0;z-index:50;background:rgba(23,25,22,.94);backdrop-filter:blur(14px)}
.site-header.solid {position:fixed;background:rgba(251,250,246,.97)}
body:has(>.site-header.solid) {padding-top:80px}
html {scroll-padding-top:100px}
.giving-frequency {display:flex;gap:6px;padding:5px;background:var(--sand);border-radius:12px;margin-top:20px}
.giving-frequency button {flex:1;min-height:44px;padding:8px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:.875rem;font-weight:700}
.giving-frequency button[aria-pressed='true'] {background:var(--ink);color:#fff}
.frequency-note {margin:9px 0 0;font-size:.875rem;color:var(--muted)}
.tithe-result .auto-tithe-note {max-width:155px;font-size:.875rem;color:var(--muted);line-height:1.4}
@media(max-width:680px) {body:has(>.site-header.solid){padding-top:68px}html{scroll-padding-top:84px}.site-header{background:rgba(23,25,22,.96)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.sermon-player {width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 48px);overflow:auto;padding:32px;border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}
.sermon-player::backdrop {background:rgba(15,17,14,.72)}
.sermon-player h2 {font-family:var(--serif);font-size:2rem;line-height:1.12;margin:16px 0}
.audio-close {display:block;margin:0 0 18px auto;min-height:44px;padding:8px 16px;border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--ink);font-weight:700}
.audio-demo-note,.audio-status {font-size:.875rem;color:var(--muted)}
.sermon-player audio {display:block;width:100%;margin:24px 0 12px}
.audio-download {font-size:.875rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.audio-transcript {border-top:1px solid var(--line);padding-top:18px;margin-top:24px}
.audio-transcript summary {cursor:pointer;font-weight:700}
.audio-transcript p {font-size:1rem;line-height:1.65}
@media(max-width:480px){.sermon-player{padding:22px}.sermon-player h2{font-size:1.65rem}}

/* A quiet invitation to explore the Shining Stars Gala. */
.gala-invitation {display:flex;align-items:center;justify-content:space-between;gap:28px;margin-top:40px;padding:30px 36px;border:1px solid var(--line);border-left:3px solid var(--gold-deep);border-radius:12px;background:var(--sand)}
.gala-invitation h2 {font-family:var(--serif);font-size:clamp(1.65rem,3vw,2.1rem);line-height:1.2;margin:8px 0}
.gala-invitation p {margin:0;color:var(--muted);font-size:.9375rem}
.gala-invitation .button {flex:none;border:1px solid var(--gold-deep);background:transparent;color:var(--ink);gap:16px}
.gala-invitation .button:hover {background:var(--paper)}
@media(max-width:680px){.gala-invitation{align-items:flex-start;flex-direction:column;padding:24px;gap:22px;margin-top:24px}}
