/* Faith Baptist Church of Green Cove Springs — site styles
   Palette pulled from the church logo. Lead color is the logo's bright sky blue (per the pastor),
   with the gold sunrise as accent. Deep blue is only used where text needs contrast. */

@font-face { font-family: "Lora"; src: url("../fonts/Lora-Variable.woff") format("woff"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Lora"; src: url("../fonts/Lora-Italic-Variable.woff") format("woff"); font-weight: 400 700; font-style: italic; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("../fonts/Poppins-Regular.woff") format("woff"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("../fonts/Poppins-Medium.woff") format("woff"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("../fonts/Poppins-Bold.woff") format("woff"); font-weight: 600 700; font-display: swap; }

:root {
  --navy: #0B5DA3;        /* deep logo-blue: headings, text accents, solid buttons */
  --navy-deep: #084A84;
  --blue: #0A7FD6;        /* the logo's blue: big color fields */
  --blue-ink: #0868B4;    /* logo blue darkened just enough for small text on cream */
  --blue-field: linear-gradient(180deg, #0C82D8 0%, #0A74C6 55%, #0A6BB8 100%);
  --sky: #E6F2FC;
  --gold: #F5B000;
  --gold-deep: #C98F00;
  --ember: #F08A24;
  --cream: #FBF8F2;
  --paper: #FFFFFF;
  --ink: #18223A;
  --muted: #535E75;
  --line: #E6E0D4;
  --serif: "Lora", Georgia, "Times New Roman", serif;
  --sans: "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif;
  --radius: 18px;
  --shadow: 0 18px 50px -20px rgba(8, 74, 132, .32);
  --wrap: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--sans); font-size: 1.0625rem; line-height: 1.7; color: var(--ink); background: var(--cream); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--blue-ink); text-underline-offset: 3px; }
a:hover { color: var(--navy); }
h1, h2, h3 { font-family: var(--serif); font-weight: 600; line-height: 1.15; color: var(--navy); margin: 0 0 .5em; letter-spacing: -.01em; }
h1 { font-size: clamp(2.4rem, 5.4vw, 4.2rem); }
h2 { font-size: clamp(1.8rem, 3.4vw, 2.7rem); }
h3 { font-size: 1.35rem; }
h1 em, h2 em { font-style: italic; color: var(--gold); font-weight: 500; }
p { margin: 0 0 1em; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.skip { position: absolute; left: -999px; top: 8px; background: var(--gold); color: var(--navy); padding: 8px 14px; border-radius: 8px; z-index: 100; }
.skip:focus { left: 12px; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; border-radius: 4px; }

.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }
.narrow { max-width: 780px; }
.center { text-align: center; }
.section { padding: clamp(64px, 9vw, 112px) 0; position: relative; }
.tint { background: var(--paper); border-block: 1px solid var(--line); }
.section-head { margin-bottom: 48px; }
.section-head.center { max-width: 760px; margin-inline: auto; }
.kicker { font-family: var(--sans); font-size: .8rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--blue-ink); margin: 0 0 14px; display: inline-flex; align-items: center; gap: 8px; }
.kicker-light { color: #fff; }
.kicker-gold { color: var(--gold); }
.muted { color: var(--muted); }
.big { font-size: 1.3rem; line-height: 1.6; color: var(--navy); font-family: var(--serif); }
.h-sm { font-size: 1.6rem; }

/* ---------- buttons */
.btn { display: inline-flex; align-items: center; gap: 10px; font: 600 .98rem/1 var(--sans); padding: 16px 26px; border-radius: 999px; text-decoration: none; border: 2px solid transparent; transition: transform .2s, background .2s, color .2s, box-shadow .2s; cursor: pointer; }
.btn:hover { transform: translateY(-2px); }
.btn-sm { padding: 11px 20px; font-size: .9rem; }
.btn-gold { background: var(--gold); color: var(--navy-deep); box-shadow: 0 10px 24px -10px rgba(245,176,0,.7); }
.btn-gold:hover { background: #FFC21F; color: var(--navy-deep); }
.btn-navy { background: var(--blue-ink); color: #fff; }
.btn-navy:hover { background: var(--navy-deep); color: #fff; }
.btn-ghost { border-color: var(--navy); color: var(--navy); background: transparent; }
.btn-ghost:hover { background: var(--navy); color: #fff; }
.btn-outline-light { border-color: rgba(255,255,255,.55); color: #fff; }
.btn-outline-light:hover { background: #fff; color: var(--navy); }
.btn-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.btn-row.center { justify-content: center; }
.text-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; text-decoration: none; color: var(--blue-ink); }
.text-link svg { transition: transform .2s; }
.text-link:hover svg { transform: translateX(4px); }
.text-link.light { color: var(--gold); }

/* ---------- header */
.site-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid transparent; transition: border-color .3s, box-shadow .3s; }
/* The frosted-glass effect lives on a pseudo-element: putting backdrop-filter on the header itself
   makes it the containing block for the fixed mobile menu, which squashes the menu to 0px on iOS Safari. */
.site-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(251,248,242,.92); backdrop-filter: saturate(1.4) blur(12px); -webkit-backdrop-filter: saturate(1.4) blur(12px); }
.nav-open .site-header::before { background: var(--cream); }
.site-header.scrolled { border-color: var(--line); box-shadow: 0 6px 24px -18px rgba(8,74,132,.5); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 78px; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.brand img { width: 52px; height: 52px; }
.brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.brand-name { font-family: var(--serif); font-weight: 700; font-size: 1.22rem; color: var(--navy); }
.brand-sub { font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-top: 3px; }
.site-nav { display: flex; align-items: center; gap: 22px; }
.site-nav ul { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; }
.site-nav ul a { display: block; padding: 8px 12px; font-size: .94rem; font-weight: 500; color: var(--ink); text-decoration: none; border-radius: 999px; transition: background .2s, color .2s; }
.site-nav ul a:hover { background: var(--sky); color: var(--navy); }
.site-nav ul a[aria-current="page"] { color: var(--navy); background: var(--sky); }
.nav-toggle { display: none; background: none; border: 0; color: var(--navy); padding: 8px; cursor: pointer; }
.nav-toggle .i-close { display: none; }

@media (max-width: 1120px) {
  .nav-toggle { display: inline-flex; }
  .site-nav { position: fixed; top: 78px; left: 0; right: 0; height: calc(100vh - 78px); height: calc(100dvh - 78px); z-index: 60; flex-direction: column; align-items: stretch; gap: 16px; padding: 18px 24px 28px; background: var(--cream); border-bottom: 1px solid var(--line); box-shadow: 0 30px 40px -30px rgba(13,29,58,.4); transform: translateY(-12px); opacity: 0; visibility: hidden; transition: .25s; max-height: calc(100vh - 78px); overflow: auto; }
  .site-nav ul { flex-direction: column; gap: 2px; }
  .site-nav ul a { padding: 13px 14px; font-size: 1.05rem; border-radius: 12px; }
  .site-nav .btn { justify-content: center; padding: 15px; }
  .nav-open .site-nav { transform: none; opacity: 1; visibility: visible; }
  .nav-open .nav-toggle .i-open { display: none; }
  .nav-open .nav-toggle .i-close { display: inline; }
}
@media (max-width: 420px) { .brand-sub { display: none; } .brand-name { font-size: 1.08rem; } .brand img { width: 44px; height: 44px; } }

/* ---------- sunrise rays (echo the logo) */
.rays { position: absolute; inset: 0; pointer-events: none; overflow: hidden;
  background: repeating-conic-gradient(from -90deg at 50% 118%, rgba(255,255,255,.07) 0deg 2.2deg, transparent 2.2deg 7.5deg);
  -webkit-mask-image: radial-gradient(ellipse 80% 90% at 50% 110%, #000 20%, transparent 75%);
          mask-image: radial-gradient(ellipse 80% 90% at 50% 110%, #000 20%, transparent 75%); }

/* ---------- home hero */
.hero { position: relative; background: var(--blue-field); color: #fff; padding: clamp(56px, 8vw, 96px) 0 0; isolation: isolate; }
.hero-bg { position: absolute; inset: 0; overflow: hidden; z-index: -1; }
.hero-sun { position: absolute; left: 50%; bottom: -380px; width: 900px; height: 700px; transform: translateX(-50%); border-radius: 50%;
  background: radial-gradient(closest-side, rgba(255,255,255,.30), rgba(255,214,102,.16) 45%, transparent 72%); animation: rise 2.4s ease-out both; }
@keyframes rise { from { transform: translate(-50%, 60px); opacity: 0; } to { transform: translate(-50%, 0); opacity: 1; } }
.hero .rays { animation: fade 3s ease-out both; }
@keyframes fade { from { opacity: 0; } }
.hero-inner { text-align: center; position: relative; }
.hero-logo { width: clamp(130px, 16vw, 188px); margin: 0 auto 26px; filter: drop-shadow(0 18px 40px rgba(0,0,0,.35)); }
.hero h1 { color: #fff; max-width: 17ch; margin-inline: auto; }
.hero-lede { font-size: clamp(1.05rem, 1.6vw, 1.24rem); max-width: 40rem; margin: 0 auto; color: #fff; }
.hero .btn-row { margin-top: 34px; }
.hero-times { position: relative; margin-top: clamp(48px, 7vw, 80px); transform: translateY(50%); margin-bottom: 0; }
.ht-inner { background: var(--paper); color: var(--ink); border-radius: var(--radius); box-shadow: var(--shadow); padding: 22px 28px; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 24px; }
.ht-head { display: flex; align-items: center; gap: 10px; font-family: var(--serif); font-weight: 600; font-size: 1.15rem; color: var(--navy); padding-right: 24px; border-right: 1px solid var(--line); white-space: nowrap; }
.ht-head svg { color: var(--gold-deep); }
.page-index .pillars { padding-top: clamp(130px, 14vw, 170px); }

.times { list-style: none; margin: 0; padding: 0; }
.times li { display: grid; grid-template-columns: 7.5rem 1fr auto; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.times li:first-child { border-top: 1px solid var(--line); }
.t-day { font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--blue-ink); }
.t-name { font-family: var(--serif); font-size: 1.2rem; font-weight: 600; color: var(--navy); }
.t-name small { display: block; font-family: var(--sans); font-size: .85rem; font-weight: 400; color: var(--muted); }
.t-time { font-weight: 600; color: var(--navy); white-space: nowrap; }
.times-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.times-strip li { display: flex; flex-direction: column; gap: 2px; border: 0 !important; padding: 4px 8px; }
.times-strip .t-name { font-size: 1.02rem; line-height: 1.3; }
.times-strip .t-name small { display: none; }
.times-strip .t-time { font-size: 1.05rem; color: var(--ink); font-weight: 500; }

@media (max-width: 900px) {
  .ht-inner { grid-template-columns: 1fr; gap: 10px; }
  .ht-head { border-right: 0; border-bottom: 1px solid var(--line); padding: 0 0 12px; }
  .times-strip { grid-template-columns: repeat(2, 1fr); row-gap: 14px; }
  .hero { padding-bottom: 36px; }
  .hero-times { transform: none; margin-top: 44px; }
  .page-index .pillars { padding-top: clamp(64px, 9vw, 112px); }
}
@media (max-width: 520px) { .times li { grid-template-columns: 1fr auto; } .times .t-day { grid-column: 1 / -1; margin-bottom: -10px; } }

/* ---------- pillars */
.pillar-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.pillar { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 34px 30px 30px; position: relative; overflow: hidden; transition: transform .3s, box-shadow .3s; }
.pillar::after { content: ""; position: absolute; left: 30px; right: 30px; top: 0; height: 4px; border-radius: 0 0 4px 4px; background: linear-gradient(90deg, var(--gold), var(--blue)); }
.pillar:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.p-num { font-family: var(--serif); font-style: italic; font-size: 1rem; color: var(--gold-deep); }
.pillar h3 { font-size: 1.9rem; margin: 6px 0 12px; }
.pillar p { color: var(--muted); }
@media (max-width: 860px) { .pillar-grid { grid-template-columns: 1fr; } }

/* ---------- pastor feature */
.pastor-feature { background: var(--paper); border-block: 1px solid var(--line); }
.pf-grid { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 6vw, 80px); align-items: center; }
.pf-photo { margin: 0; position: relative; }
.pf-photo::before { content: ""; position: absolute; inset: 22px -22px -22px 22px; border-radius: var(--radius); background: var(--gold); z-index: 0; }
.pf-photo img { position: relative; border-radius: var(--radius); box-shadow: var(--shadow); aspect-ratio: 1; object-fit: cover; }
.pf-copy blockquote { margin: 0 0 18px; font-family: var(--serif); font-size: clamp(1.4rem, 2.4vw, 1.9rem); line-height: 1.4; color: var(--navy); font-style: italic; }
.pf-name { font-weight: 600; color: var(--navy); margin-bottom: 26px; }
@media (max-width: 820px) { .pf-grid { grid-template-columns: 1fr; } .pf-photo { max-width: 420px; margin-right: 22px; } }

/* ---------- forge */
.forge-feature, .forge-hero { background: radial-gradient(ellipse 60% 70% at 85% 110%, rgba(240,138,36,.35), transparent 60%), radial-gradient(ellipse 50% 60% at 10% 120%, rgba(245,176,0,.18), transparent 60%), #1E1A17; color: rgba(255,255,255,.86); overflow: hidden; }
.forge-feature h2, .forge-hero h1 { color: #fff; }
.forge-grid { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(32px, 6vw, 72px); align-items: center; position: relative; }
.verse { font-family: var(--serif); font-style: italic; font-size: 1.25rem; line-height: 1.5; color: var(--gold); }
.verse cite { display: block; font-family: var(--sans); font-style: normal; font-size: .85rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.6); margin-top: 6px; }
.upcoming-card { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: var(--radius); padding: 28px; backdrop-filter: blur(6px); }
.upcoming-card h3 { color: #fff; display: flex; align-items: center; gap: 10px; font-size: 1.3rem; }
.upcoming-card h3 svg { color: var(--gold); }
.upcoming { list-style: none; margin: 8px 0 20px; padding: 0; }
.upcoming li { display: grid; grid-template-columns: 3.4rem 1fr; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.upcoming .u-date { text-align: center; line-height: 1.05; }
.upcoming .u-date b { display: block; font-family: var(--serif); font-size: 1.5rem; color: #fff; }
.upcoming .u-date span { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); }
.upcoming .u-name { color: #fff; font-weight: 500; }
.upcoming .u-name small { display: block; color: rgba(255,255,255,.6); font-weight: 400; }
.upcoming .up-fallback { display: block; }
.upcoming .up-fallback a { color: var(--gold); }
.embers { position: absolute; inset: 0; pointer-events: none;
  background-image: radial-gradient(2px 2px at 20% 80%, rgba(245,176,0,.7), transparent), radial-gradient(1.5px 1.5px at 70% 60%, rgba(240,138,36,.8), transparent), radial-gradient(2px 2px at 85% 85%, rgba(245,176,0,.6), transparent), radial-gradient(1.5px 1.5px at 40% 90%, rgba(240,138,36,.6), transparent), radial-gradient(1px 1px at 55% 75%, rgba(255,210,120,.8), transparent), radial-gradient(1.5px 1.5px at 92% 55%, rgba(245,176,0,.5), transparent);
  animation: float 9s linear infinite alternate; }
@keyframes float { to { transform: translateY(-40px); opacity: .6; } }
@media (max-width: 860px) { .forge-grid { grid-template-columns: 1fr; } }

/* ---------- theme band */
.theme-band { background: linear-gradient(180deg, var(--sky), var(--cream)); text-align: center; }
.theme-inner { max-width: 820px; }
.theme-band h2 em { color: var(--gold-deep); }
.theme-band .verse { color: var(--navy); }
.theme-band .verse cite { color: var(--muted); }

/* ---------- visit band */
.visit-band { background: var(--paper); border-top: 1px solid var(--line); }
.visit-grid { display: grid; grid-template-columns: 5fr 6fr; gap: clamp(32px, 5vw, 64px); align-items: center; }
.contact-list { list-style: none; padding: 0; margin: 20px 0 0; }
.contact-list li { display: flex; align-items: center; gap: 12px; padding: 8px 0; }
.contact-list svg { color: var(--gold-deep); flex: none; }
.contact-list a { color: var(--ink); text-decoration: none; font-weight: 500; }
.contact-list a:hover { color: var(--blue); text-decoration: underline; }
.map-frame { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); aspect-ratio: 4 / 3; background: var(--sky); border: 6px solid #fff; }
.map-frame iframe { width: 100%; height: 100%; border: 0; display: block; }
@media (max-width: 860px) { .visit-grid { grid-template-columns: 1fr; } }

/* ---------- page hero (inner pages) */
.page-hero { position: relative; background: var(--blue-field); color: #fff; padding: clamp(72px, 10vw, 120px) 0 clamp(64px, 8vw, 96px); text-align: center; overflow: hidden; }
.page-hero h1 { color: #fff; max-width: 20ch; margin-inline: auto; }
.page-hero .kicker { color: #fff; opacity: .92; }
.forge-hero .kicker { color: var(--gold); opacity: 1; }
.page-hero .lede { max-width: 42rem; margin: 0 auto; font-size: 1.15rem; color: #fff; }
.page-hero .wrap { position: relative; }
.verse-lg { font-family: var(--serif); font-style: italic; font-size: 1.35rem !important; color: var(--gold) !important; }
.verse-lg cite { display: block; font-family: var(--sans); font-style: normal; font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.6); margin-top: 8px; }

/* ---------- general layouts */
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 80px); align-items: start; }
.card-soft { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(24px, 4vw, 36px); }
.addr { font-family: var(--serif); font-size: 1.35rem; color: var(--navy); line-height: 1.4; }
.note { margin-top: 20px; display: flex; gap: 10px; align-items: flex-start; color: var(--muted); }
.note svg { color: var(--ember); flex: none; margin-top: 4px; }
@media (max-width: 860px) { .two-col { grid-template-columns: 1fr; } }

.expect-grid, .ministry-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.ministry-grid { grid-template-columns: repeat(3, 1fr); }
.expect, .ministry { background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius); padding: 30px; }
.expect > svg, .ministry > svg { width: 46px; height: 46px; padding: 11px; border-radius: 14px; background: var(--sky); color: var(--blue-ink); margin-bottom: 18px; }
.expect p, .ministry p { color: var(--muted); margin-bottom: .6em; }
@media (max-width: 960px) { .ministry-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .expect-grid, .ministry-grid { grid-template-columns: 1fr; } }

/* ---------- about */
.about-intro { display: grid; grid-template-columns: 5fr 6fr; gap: clamp(32px, 6vw, 80px); }
.prose p { color: #2C3650; }
@media (max-width: 860px) { .about-intro { grid-template-columns: 1fr; } }
.bbb { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--cream); }
.bbb > div { padding: 36px 32px; border-right: 1px solid var(--line); }
.bbb > div:last-child { border-right: 0; }
.bbb span { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--gold); color: var(--navy-deep); font-weight: 700; margin-bottom: 14px; }
.bbb h3 { font-size: 1.7rem; }
.bbb p { color: var(--muted); margin: 0; }
@media (max-width: 820px) { .bbb { grid-template-columns: 1fr; } .bbb > div { border-right: 0; border-bottom: 1px solid var(--line); } }
.belief-list { list-style: none; margin: 0; padding: 0; }
.belief-list li { padding: 22px 0 22px 28px; border-left: 3px solid var(--gold); position: relative; }
.belief-list li + li { border-top: 0; }
.belief-list li::before { content: ""; position: absolute; left: -8px; top: 30px; width: 13px; height: 13px; border-radius: 50%; background: var(--paper); border: 3px solid var(--navy); }
.belief-list h3 { font-size: 1.25rem; margin-bottom: 6px; }
.belief-list p { margin: 0; color: var(--muted); }

/* ---------- pastor page */
.pastor-grid { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 6vw, 80px); align-items: start; }
.pastor-photo { margin: 0; position: sticky; top: 110px; }
.pastor-photo img { border-radius: var(--radius); box-shadow: var(--shadow); }
.pastor-photo figcaption { margin-top: 14px; font-family: var(--serif); font-style: italic; color: var(--muted); text-align: center; }
.letter .dropcap::first-letter { float: left; font-family: var(--serif); font-size: 4.2rem; line-height: .85; padding: 6px 10px 0 0; color: var(--gold-deep); font-weight: 600; }
.letter .sig { font-family: var(--serif); font-style: italic; font-size: 1.3rem; color: var(--navy); }
@media (max-width: 820px) { .pastor-grid { grid-template-columns: 1fr; } .pastor-photo { position: static; max-width: 440px; } }

/* ---------- forge page */
.forge-hero { text-align: center; }
.forge-hero .wrap { position: relative; }
.forge-dates { list-style: none; padding: 0; margin: 18px 0 22px; display: grid; grid-template-columns: repeat(auto-fill, minmax(68px, 1fr)); gap: 10px; }
.forge-dates li { text-align: center; background: var(--cream); border: 1px solid var(--line); border-radius: 12px; padding: 10px 4px; line-height: 1.1; }
.forge-dates .fd-m { display: block; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ember); font-weight: 600; }
.forge-dates .fd-d { font-family: var(--serif); font-size: 1.5rem; font-weight: 600; color: var(--navy); }
.forge-dates li.past { opacity: .4; }
.forge-dates li.next { background: var(--blue); border-color: var(--blue); }
.forge-dates li.next .fd-d { color: #fff; }
.forge-dates li.next .fd-m { color: var(--gold); }

/* ---------- calendar */
.cal-intro { max-width: 46rem; margin: 0 auto 26px; text-align: center; font-size: 1.15rem; color: var(--muted); }
.cal-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-bottom: 44px; }
.lg { font-size: .82rem; font-weight: 600; letter-spacing: .06em; padding: 7px 16px; border-radius: 999px; }
.lg.root { background: var(--sky); color: var(--navy); }
.lg.fruit { background: #FFF3D1; color: #7A5600; }
.months { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.month { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; transition: opacity .3s; }
.month header { padding: 20px 24px 16px; border-bottom: 1px solid var(--line); position: relative; }
.month header::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--blue); }
.month.fruit header::before { background: var(--gold); }
.month h2 { font-size: 1.55rem; margin: 0; }
.month header p { margin: 2px 0 0; font-family: var(--serif); font-style: italic; color: var(--blue); }
.month.fruit header p { color: var(--gold-deep); }
.month ul { list-style: none; margin: 0; padding: 10px 24px 18px; }
.month li { display: grid; grid-template-columns: 3.2rem 1fr; gap: 10px; padding: 9px 0; border-bottom: 1px dashed var(--line); }
.month li:last-child { border-bottom: 0; }
.ev-d { font-weight: 600; color: var(--navy); }
.ev-n small { display: block; color: var(--muted); font-size: .86rem; }
.month li.past { color: #9aa1b0; }
.month li.past .ev-d { color: #9aa1b0; }
.month li.next { background: #FFF6DD; margin: 0 -12px; padding: 9px 12px; border-radius: 10px; border-bottom-color: transparent; }
.month li.next .ev-n::after { content: "Up next"; margin-left: 8px; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; background: var(--gold); color: var(--navy-deep); padding: 2px 8px; border-radius: 999px; vertical-align: 2px; }
.month.done { opacity: .62; }
.month.current { border-color: var(--blue); box-shadow: var(--shadow); }
@media (max-width: 960px) { .months { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .months { grid-template-columns: 1fr; } }

/* ---------- know god */
.gospel .scripture { margin: 30px 0; padding: 26px 30px; background: var(--paper); border-left: 4px solid var(--gold); border-radius: 0 var(--radius) var(--radius) 0; font-family: var(--serif); font-style: italic; font-size: 1.25rem; color: var(--navy); }
.gospel .scripture cite { display: block; font-family: var(--sans); font-style: normal; font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-top: 8px; }
.steps { list-style: none; counter-reset: s; padding: 0; margin: 50px 0; }
.steps li { counter-increment: s; position: relative; padding: 0 0 36px 76px; }
.steps li::before { content: counter(s); position: absolute; left: 0; top: -4px; width: 52px; height: 52px; border-radius: 50%; background: var(--blue); color: var(--gold); display: grid; place-items: center; font-family: var(--serif); font-size: 1.5rem; font-weight: 600; }
.steps li::after { content: ""; position: absolute; left: 25px; top: 56px; bottom: 6px; width: 2px; background: var(--line); }
.steps li:last-child::after { display: none; }
.steps h2 { font-size: 1.65rem; }
.prayer { background: var(--blue-field); color: #fff; border-radius: var(--radius); padding: clamp(28px, 5vw, 48px); margin: 20px 0 30px; position: relative; overflow: hidden; }
.prayer .kicker { color: var(--gold); }
.prayer p { color: rgba(255,255,255,.85); }
.prayer-text { font-family: var(--serif); font-style: italic; font-size: 1.2rem; line-height: 1.7; color: #fff !important; margin: 0; }
.decision { background: var(--blue-field); color: #fff; overflow: hidden; }
.decision h2 { color: #fff; }
.decision .wrap { position: relative; }
@media (max-width: 560px) { .steps li { padding-left: 0; padding-top: 66px; } .steps li::after { display: none; } }

/* ---------- footer */
.site-footer { position: relative; background: linear-gradient(180deg, #0A72C4, #0864AE); color: rgba(255,255,255,.9); padding: 80px 0 28px; overflow: hidden; font-size: .97rem; }
.site-footer .rays { opacity: .6; }
.footer-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 48px; position: relative; }
.f-brand img { width: 84px; margin-bottom: 16px; }
.f-name { font-family: var(--serif); font-size: 1.3rem; color: #fff; line-height: 1.3; }
.f-tag { color: var(--gold); letter-spacing: .12em; text-transform: uppercase; font-size: .8rem; font-weight: 600; }
.f-tag i { font-style: normal; opacity: .6; margin: 0 4px; }
.f-h { font-family: var(--sans); font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); margin-bottom: 16px; }
.f-times { list-style: none; padding: 0; margin: 0; }
.f-times li { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { color: var(--gold); }
.f-social { display: inline-flex; align-items: center; gap: 8px; }
.f-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-top: 56px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.1); font-size: .86rem; position: relative; }
.f-bottom p { margin: 0; }
.credit a { color: var(--gold); }
@media (max-width: 860px) { .footer-grid { grid-template-columns: 1fr; gap: 36px; } }

/* ---------- reveal on scroll */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal { opacity: 1; transform: none; }
  html { scroll-behavior: auto; }
}

/* ---------- mobile quick-action bar */
.mobile-bar { display: none; }
.show-past { display: none; }

/* ================================================================
   Phones & small tablets
   ================================================================ */
@media (max-width: 1120px) {
  .site-nav { max-height: calc(100dvh - 78px); }
  body.nav-open { overflow: hidden; }
}

@media (max-width: 760px) {
  body { font-size: 1rem; }
  .wrap { padding: 0 20px; }
  .section { padding: 60px 0; }
  .section-head { margin-bottom: 32px; }
  .kicker, .f-h, .f-tag { font-size: .82rem; letter-spacing: .13em; }
  .brand-sub { font-size: .78rem; }
  .big { font-size: 1.18rem; }

  /* comfortable tap targets (44px) */
  .text-link { min-height: 44px; }
  .contact-list li { padding: 0; }
  .contact-list a { display: inline-block; padding: 11px 0; }
  .site-footer p a, .f-social { display: inline-block; padding: 9px 0; }
  .f-social { display: inline-flex; }
  .credit a { display: inline-block; padding: 10px 0; }
  .btn { min-height: 50px; justify-content: center; }
  .btn-row { gap: 12px; }
  .btn-row .btn { flex: 1 1 100%; }
  .hero .btn-row .btn { flex: 1 1 auto; }

  /* hero */
  .hero { padding-top: 40px; }
  .hero-logo { width: 118px; margin-bottom: 18px; }
  .hero h1 { font-size: clamp(2.1rem, 9vw, 2.7rem); }
  .hero-times { margin-top: 36px; }
  .ht-inner { padding: 18px 20px; }

  /* cards */
  .pillar, .expect, .ministry { padding: 26px 22px; }
  .pillar:hover { transform: none; }
  .pf-photo::before { inset: 14px -14px -14px 14px; }
  .pf-photo { margin-right: 14px; }
  .upcoming-card { padding: 22px 20px; }
  .card-soft { padding: 24px 20px; }

  /* page heroes */
  .page-hero { padding: 56px 0 52px; }
  .page-hero h1 { font-size: clamp(2rem, 8.5vw, 2.6rem); }
  .page-hero .lede { font-size: 1.04rem; }

  /* map: shorter, and keep page scroll from getting trapped */
  .map-frame { aspect-ratio: 16 / 11; border-width: 4px; }

  /* calendar: tuck finished months behind a button */
  .show-past:not([hidden]) { display: flex; width: 100%; margin: -16px 0 20px; }
  .months.hide-past .month.done { display: none; }
  .cal-legend { margin-bottom: 30px; }

  /* know god */
  .gospel .scripture { padding: 20px 20px; font-size: 1.12rem; }
  .prayer-text { font-size: 1.1rem; }

  /* footer */
  .site-footer { padding-top: 60px; }
  .f-bottom { flex-direction: column; margin-top: 36px; }

  /* sticky quick actions */
  .mobile-bar { display: grid; grid-template-columns: repeat(3, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
    background: rgba(8, 100, 174, .97); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    border-top: 1px solid rgba(255,255,255,.12); padding: 6px 8px calc(6px + env(safe-area-inset-bottom)); }
  .mobile-bar a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-height: 52px;
    color: #fff; text-decoration: none; font-size: .78rem; font-weight: 500; border-radius: 12px; }
  .mobile-bar a:active { background: rgba(255,255,255,.1); }
  .mobile-bar svg { color: var(--gold); width: 20px; height: 20px; }
  .site-footer { padding-bottom: calc(94px + env(safe-area-inset-bottom)); }
  body.nav-open .mobile-bar { display: none; }
}

@media (max-width: 380px) {
  .wrap { padding: 0 16px; }
  .times-strip { grid-template-columns: 1fr 1fr; column-gap: 4px; }
  .times-strip li { padding: 4px 2px; }
  .brand-name { font-size: 1rem; }
}

/* touch devices: no hover lift */
@media (hover: none) {
  .btn:hover, .pillar:hover { transform: none; }
}

/* any touch screen (phones and tablets): 44px tap targets */
@media (pointer: coarse) {
  .text-link { min-height: 44px; }
  .contact-list li { padding: 0; }
  .contact-list a { display: inline-block; padding: 11px 0; }
  .site-footer p a, .credit a { display: inline-block; padding: 9px 0; }
  .f-social { display: inline-flex; padding: 9px 0; }
}
.forge-dates .fd-m, .upcoming .u-date span { font-size: .76rem; }

/* ---------- blue-field adjustments (gold text is too faint on the logo blue) */
.hero h1 em, .page-hero:not(.forge-hero) h1 em, .decision h2 em { color: #fff; text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: .07em; text-underline-offset: .14em; }
.decision .kicker-gold { color: #fff; }
.f-h { color: #fff; opacity: .8; }
.f-tag { color: #FFE29A; }
.credit a { color: #fff; text-decoration: underline; text-decoration-color: var(--gold); }
.mobile-bar svg { color: #FFE29A; }
.site-footer .rays { opacity: .5; }
.hero .rays, .page-hero .rays, .decision .rays { background: repeating-conic-gradient(from -90deg at 50% 118%, rgba(255,255,255,.10) 0deg 2.2deg, transparent 2.2deg 7.5deg); }

/* ---------- give */
.give-grid { display: grid; grid-template-columns: 7fr 5fr; gap: 24px; align-items: start; }
.give-side { display: grid; gap: 24px; }
.give-card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(24px, 4vw, 40px); }
.give-main { background: var(--sky); border-color: #CDE5F8; }
.give-icon { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: var(--blue); color: #fff; margin-bottom: 18px; }
.give-side .give-icon { width: 46px; height: 46px; border-radius: 14px; background: var(--sky); color: var(--blue-ink); }
.give-card h2 { font-size: clamp(1.8rem, 3vw, 2.3rem); }
.give-card p { color: #2C3650; }
.venmo-handle { font-family: var(--serif); font-size: 1.5rem; font-weight: 600; color: var(--navy) !important; margin: 4px 0 18px; }
.btn-venmo { background: #008CFF; color: #fff; font-size: 1.05rem; padding: 18px 30px; box-shadow: 0 12px 26px -12px rgba(0,140,255,.8); }
.btn-venmo:hover { background: #0074D4; color: #fff; }
.venmo-qr { margin: 28px 0 0; display: inline-block; background: #fff; padding: 14px; border-radius: 16px; border: 1px solid #CDE5F8; text-align: center; }
.venmo-qr figcaption { font-size: .85rem; color: var(--muted); margin-top: 6px; }
.addr-sm { font-family: var(--serif); font-size: 1.15rem; color: var(--navy) !important; line-height: 1.45; margin: 0; }
@media (max-width: 860px) { .give-grid { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .btn-venmo { width: 100%; } .venmo-qr { display: none; } }

/* four-part motto */
.pillar-grid { grid-template-columns: repeat(4, 1fr); gap: 20px; }
.pillar { padding: 30px 24px 26px; }
.pillar::after { left: 24px; right: 24px; }
.pillar h3 { font-size: 1.7rem; }
.bbb { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px) { .pillar-grid { grid-template-columns: repeat(2, 1fr); } .bbb { grid-template-columns: repeat(2, 1fr); } .bbb > div:nth-child(2) { border-right: 0; } .bbb > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); } }
@media (max-width: 640px) { .pillar-grid { grid-template-columns: 1fr; } .bbb { grid-template-columns: 1fr; } .bbb > div { border-right: 0; border-bottom: 1px solid var(--line); } }

/* ---------- desktop nav: the logo is the Home link, so hide the word (stays in the phone menu) */
@media (min-width: 1121px) { .site-nav li.nav-home { display: none; } }

/* ---------- prayer */
.prayer-grid { display: grid; grid-template-columns: 7fr 4fr; gap: clamp(24px, 4vw, 48px); align-items: start; }
.prayer-form-card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(24px, 4vw, 44px); box-shadow: 0 24px 60px -40px rgba(8,74,132,.45); scroll-margin-top: 100px; }
.prayer-side { display: grid; gap: 20px; }
.prayer-side h3 { font-size: 1.3rem; }
.prayer-side .contact-list { margin-top: 8px; }
.side-verse { margin: 4px 0 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--gold); font-family: var(--serif); font-style: italic; font-size: 1.08rem; line-height: 1.6; color: var(--navy); }
.side-verse cite { display: block; margin-top: 8px; font-family: var(--sans); font-style: normal; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.prayer-form { margin-top: 22px; display: grid; gap: 18px; }
.field { display: grid; gap: 7px; margin: 0; min-width: 0; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.field label, .choice legend { font-weight: 600; font-size: .95rem; color: var(--ink); }
.req { color: #B4231B; }
.opt { font-weight: 400; color: var(--muted); font-size: .88rem; }
.prayer-form input[type=text], .prayer-form input[type=tel], .prayer-form input[type=email], .prayer-form textarea {
  width: 100%; font: inherit; font-size: 1rem; /* 16px+ keeps iOS from zooming in */ color: var(--ink);
  background: var(--cream); border: 1.5px solid #D9D2C3; border-radius: 12px; padding: 13px 15px; transition: border-color .2s, box-shadow .2s, background .2s; }
.prayer-form textarea { resize: vertical; min-height: 150px; line-height: 1.6; }
.prayer-form input:focus, .prayer-form textarea:focus { outline: none; border-color: var(--blue); background: #fff; box-shadow: 0 0 0 4px rgba(10,127,214,.18); }
.choice { border: 0; padding: 0; }
.choice legend { padding: 0; margin-bottom: 8px; }
.radio, .check { display: flex; gap: 12px; align-items: flex-start; padding: 13px 15px; border: 1.5px solid var(--line); border-radius: 12px; cursor: pointer; background: #fff; transition: border-color .2s, background .2s; }
.radio + .radio { margin-top: 10px; }
.radio:has(input:checked), .check:has(input:checked) { border-color: var(--blue); background: var(--sky); }
.radio input, .check input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--blue); flex: none; }
.radio, .check { font-weight: 400 !important; }
.radio span, .check span { font-size: .97rem; line-height: 1.5; }
.contact-hint { margin: -8px 0 0; font-size: .9rem; color: #8A5A00; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.btn-submit { justify-content: center; font-size: 1.02rem; padding: 17px 28px; border: 0; }
.btn-submit[disabled] { opacity: .7; cursor: progress; }
.fine { font-size: .86rem; color: var(--muted); margin: 0; }
.form-status { display: flex; gap: 14px; align-items: flex-start; border-radius: 14px; padding: 16px 18px; margin-bottom: 22px; line-height: 1.55; }
.form-status[hidden] { display: none; }
.form-status.ok { background: #E7F6EC; color: #145A2E; border: 1px solid #BFE5CB; }
.form-status.ok svg { color: #1E8A46; flex: none; margin-top: 2px; }
.form-status.err { background: #FDECEA; color: #8A1F17; border: 1px solid #F5C6C1; }
.form-status a { color: inherit; font-weight: 600; }

.prayer-cta { background: var(--sky); border-block: 1px solid #CDE5F8; padding: 40px 0; }
.pc-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.pc-inner h2 { font-size: clamp(1.6rem, 3vw, 2.1rem); margin-bottom: 4px; }
.pc-inner p { margin: 0; color: var(--muted); }

@media (max-width: 900px) { .prayer-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .field-row { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .pc-inner .btn { width: 100%; } .prayer-cta { padding: 34px 0; } }

/* ---------- home hero: real photo of the church behind the blue */
.hero { background: #0A74C6 url("../images/church-building.jpg") center 62% / cover no-repeat; }
.hero-bg::before { content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(12,130,216,.84) 0%, rgba(10,116,198,.78) 45%, rgba(10,107,184,.88) 100%); }
@media (max-width: 760px) { .hero { background-image: url("../images/church-building-800.jpg"); background-position: 50% 55%; } }
.hero h1, .hero-lede, .hero .kicker { text-shadow: 0 1px 14px rgba(6,60,110,.35); }

/* ---------- The Forge: the church's own emblem + sparks photo */
.forge-feature, .forge-hero { position: relative; isolation: isolate; }
.forge-feature::before, .forge-hero::before { content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(20,16,13,.82), rgba(20,16,13,.9)), url("../images/forge-sparks.jpg") center / cover no-repeat; }
.forge-feature::before { background: linear-gradient(90deg, rgba(20,16,13,.95) 0%, rgba(20,16,13,.86) 55%, rgba(20,16,13,.7) 100%), url("../images/forge-sparks.jpg") center / cover no-repeat; }
.forge-emblem { display: block; width: 100%; max-width: 340px; height: auto; border-radius: 14px; margin: 0 0 22px;
  box-shadow: 0 22px 50px -18px rgba(0,0,0,.75), 0 0 0 1px rgba(255,255,255,.08); }
.forge-emblem-lg { max-width: 560px; margin: 0 auto 26px; }
.forge-when { justify-content: center; }
.sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
@media (max-width: 760px) { .forge-emblem { max-width: 300px; } .forge-emblem-lg { max-width: 90vw; } }

/* ================================================================
   Mobile polish (Oct 2026): balanced headlines, tighter cards,
   service times as clean rows
   ================================================================ */
h1, h2, h3, .f-name, .pf-copy blockquote { text-wrap: balance; }
p, li { text-wrap: pretty; }
.motto span { white-space: nowrap; }

@media (max-width: 760px) {
  /* "Join us this week" card: one tidy row per service */
  .ht-inner { padding: 18px 20px 8px; gap: 4px; }
  .ht-head { padding-bottom: 12px; }
  .times-strip { display: block; }
  .times-strip li { display: grid !important; grid-template-columns: 1fr auto; grid-template-areas: "day time" "name time";
    align-items: center; column-gap: 12px; row-gap: 2px; padding: 12px 0 !important; border-bottom: 1px solid var(--line) !important; }
  .times-strip li:last-child { border-bottom: 0 !important; }
  .times-strip .t-day { grid-area: day; font-size: .72rem; }
  .times-strip .t-name { grid-area: name; font-size: 1.08rem; line-height: 1.25; }
  .times-strip .t-time { grid-area: time; font-size: 1.05rem; font-weight: 600; color: var(--navy); white-space: nowrap; }

  /* full Service Times list on Plan a Visit */
  .times li { padding: 14px 0; }
  .times .t-day { margin-bottom: -6px; }

  /* headings a touch smaller so they don't break into orphans */
  h2 { font-size: clamp(1.6rem, 7vw, 2rem); }
  .section-head { margin-bottom: 26px; }
  .page-hero .lede { font-size: .98rem; line-height: 1.6; }

  /* Believe / Belong / Become / Build cards: number beside the title, less padding */
  .pillar-grid { gap: 14px; }
  .pillar { padding: 22px 20px 18px; display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: baseline; }
  .pillar::after { left: 20px; right: 20px; }
  .pillar .p-num { grid-row: 1; font-size: .95rem; }
  .pillar h3 { grid-row: 1; font-size: 1.5rem; margin: 4px 0 6px; }
  .pillar p, .pillar .text-link { grid-column: 1 / -1; }
  .pillar p { margin-bottom: 4px; }
  .pillar .text-link { min-height: 40px; }

  .bbb > div { padding: 20px 20px; display: grid; grid-template-columns: auto 1fr; column-gap: 14px; align-items: center; }
  .bbb span { width: 34px; height: 34px; margin: 0; font-size: .9rem; }
  .bbb h3 { font-size: 1.45rem; margin: 0; }
  .bbb p { grid-column: 1 / -1; margin-top: 8px; }

  /* What to expect / Ministries / Give cards: icon beside the title */
  .expect-grid, .ministry-grid { gap: 14px; }
  .expect, .ministry { padding: 20px; display: grid; grid-template-columns: auto 1fr; column-gap: 14px; align-items: center; }
  .expect > svg, .ministry > svg { width: 40px; height: 40px; padding: 9px; border-radius: 12px; margin: 0; }
  .expect h3, .ministry h3 { margin: 0; font-size: 1.25rem; }
  .expect p, .ministry p, .ministry .text-link { grid-column: 1 / -1; }
  .expect p, .ministry p { margin: 10px 0 0; }
  .ministry .text-link { margin-top: 4px; }
  .give-card { padding: 22px 20px; }
  .give-side .give-icon { width: 40px; height: 40px; margin-bottom: 12px; }

  /* What we believe list */
  .belief-list li { padding: 16px 0 16px 24px; }

  /* footer: less air between lines */
  .site-footer p { margin: 0 0 .25em; }
  .footer-grid { gap: 30px; }
  .f-times li { padding: 9px 0; }
}
@media (max-width: 760px) { .f-name { margin-bottom: 10px !important; } }

/* One-on-one discipleship card spans two columns so the 5 ministries fill the grid */
.ministry.wide { grid-column: span 2; background: var(--sky); border-color: #CDE5F8; }
@media (max-width: 640px) { .ministry.wide { grid-column: auto; } }

/* ---------- "I trusted Christ today" form on the Know God page */
.decision-form-wrap { position: relative; max-width: 760px; margin-top: 34px; }
.decision-card { color: var(--ink); text-align: left; }
.decision-card h2 { color: var(--navy); }
.decision-card .btn-submit { justify-content: center; }
.field-row.three { grid-template-columns: 2fr 1fr 1fr; }
.address { border: 1.5px solid var(--line); border-radius: 12px; padding: 14px 16px 16px; margin: 0; display: grid; gap: 14px; background: #fff; }
.address[hidden] { display: none; }
.address legend { padding: 0 6px; font-weight: 600; font-size: .95rem; }
@media (max-width: 560px) { .field-row.three { grid-template-columns: 1fr 1fr; } .field-row.three .field:first-child { grid-column: 1 / -1; } }

/* ---------- Altar decision card (unlisted worker page) */
.page-altar { background: var(--sky); }
.altar-top { background: var(--blue-field); color: #fff; padding: 14px 0 calc(14px); }
.altar-top-inner { display: flex; align-items: center; gap: 12px; }
.altar-top img { width: 44px; height: 44px; background: #fff; border-radius: 50%; }
.altar-church { margin: 0; font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; opacity: .9; }
.altar-top h1 { color: #fff; font-size: 1.35rem; margin: 0; }
.altar-main { padding: 22px 0 60px; }
.altar-wrap { max-width: 720px; }
.altar-group { border: 1.5px solid var(--line); border-radius: 14px; padding: 14px 16px 16px; margin: 0; display: grid; gap: 14px; background: #fff; }
.altar-group legend { padding: 0 6px; font-weight: 700; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--blue-ink); }
.prayer-form select { width: 100%; font: inherit; font-size: 1rem; color: var(--ink); background: var(--cream); border: 1.5px solid #D9D2C3; border-radius: 12px; padding: 13px 15px; min-height: 50px; }
.prayer-form input[type=date] { width: 100%; font: inherit; font-size: 1rem; color: var(--ink); background: var(--cream); border: 1.5px solid #D9D2C3; border-radius: 12px; padding: 12px 15px; min-height: 50px; }
.decision-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.decision-opt { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border: 1.5px solid var(--line); border-radius: 12px; cursor: pointer; background: var(--cream); min-height: 64px; }
.decision-opt input { width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--blue); flex: none; }
.decision-opt strong { display: block; font-size: 1.02rem; color: var(--navy); }
.decision-opt small { display: block; font-size: .82rem; color: var(--muted); line-height: 1.35; margin-top: 2px; }
.decision-opt:has(input:checked) { border-color: var(--blue); background: #fff; box-shadow: 0 0 0 3px rgba(10,127,214,.15); }
.choice-hint { margin: 0; font-size: .9rem; color: #B4231B; font-weight: 600; }
.page-altar .btn-submit { width: 100%; min-height: 56px; font-size: 1.05rem; }
@media (max-width: 420px) { .decision-grid { grid-template-columns: 1fr; } }

.decision-opt, .decision-opt small { font-weight: 400 !important; }
.decision-opt strong { font-weight: 600; }

/* The Forge is for everyone — make that line easy to see */
.forge-who { display: inline-block; margin: 4px auto 18px; padding: 8px 16px; border-radius: 999px; background: rgba(245,176,0,.14); border: 1px solid rgba(245,176,0,.45); color: #FFE29A; font-weight: 600; font-size: .98rem; }
.forge-who-inline { color: #FFE29A; font-weight: 600; }
@media (max-width: 760px) { .forge-who { font-size: .9rem; padding: 8px 14px; } }
.forge-hero .forge-when { display: flex; }
.forge-who { display: table; margin: 6px auto 18px; }

/* ---------- Zelle giving */
.zelle-steps { margin: 18px 0 0; padding-left: 1.3em; display: grid; gap: 10px; color: #2C3650; }
.zelle-steps li::marker { color: var(--blue-ink); font-weight: 700; }
.zelle-id { display: inline-block; font-family: var(--serif); font-size: 1.25rem; font-weight: 600; color: var(--navy); background: #fff; border: 1.5px solid #CDE5F8; border-radius: 10px; padding: 4px 12px; margin: 4px 6px 4px 0; word-break: break-all; }
.copy-btn { font: 600 .85rem var(--sans); color: var(--blue-ink); background: #fff; border: 1.5px solid var(--blue); border-radius: 999px; padding: 8px 16px; min-height: 38px; cursor: pointer; vertical-align: middle; }
.copy-btn.done { background: var(--blue); color: #fff; }
