/* Light Bearers Christian Network — site stylesheet
   Design language mirrors the Wix "Church (Charming)" template:
   pale header band, hanging logo tab, oversized serif headline,
   small-caps eyebrows over hairline rules, paired solid/outline buttons. */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --ink:#161033;
  --ink-soft:#4A4462;
  --cream:#FBF9F4;
  --sand:#EFEADD;
  --band:#F7E7BC;
  --flame-1:#FF6A00;
  --flame-2:#F5B301;
  --gold:#C9992B;
  --rule:#DCD6C6;
  --white:#FFFFFF;

  --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --max: 1200px;
  --gap: clamp(1rem, 2vw, 2rem);
  --section-pad: clamp(3.5rem, 7vw, 6.5rem);
  --radius: 2px;
}

*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; }
}

/* ---------- Scroll reveal (only armed on elements confirmed off-screen at load) ---------- */
.reveal-armed{
  opacity:0; transform:translateY(60px) scale(.96);
  transition:opacity 1s cubic-bezier(.16,.84,.44,1), transform 1s cubic-bezier(.16,.84,.44,1);
}
.reveal-armed[data-reveal-delay="1"]{ transition-delay:.18s; }
.reveal-armed[data-reveal-delay="2"]{ transition-delay:.36s; }
.reveal-armed[data-reveal-delay="3"]{ transition-delay:.54s; }
.reveal-armed.reveal--visible{ opacity:1; transform:translateY(0) scale(1); }

body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:600; line-height:1.08; margin:0; color:var(--ink); }
p{ margin:0; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; }

.wrap{ max-width:var(--max); margin:0 auto; padding-inline:clamp(1.25rem, 4vw, 2.5rem); }
.section{ padding-block:var(--section-pad); }
.section-tight{ padding-block:clamp(2rem,4vw,3.5rem); }

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

/* ---------- Eyebrow / rule primitives ---------- */
.eyebrow{
  display:flex; align-items:center; gap:.75rem;
  font-family:var(--font-body); font-weight:600; font-size:.72rem;
  letter-spacing:.22em; text-transform:uppercase; color:var(--gold);
  margin-bottom:1rem;
}
.eyebrow::after{ content:''; flex:1; height:1px; background:var(--rule); }
.eyebrow.center{ justify-content:center; }
.eyebrow.center::before, .eyebrow.center::after{ content:''; flex:1; height:1px; background:var(--rule); }

.rule{ height:1px; background:var(--rule); border:0; margin:1.5rem 0; }

/* ---------- Buttons ---------- */
.btn-row{ display:flex; flex-wrap:wrap; gap:.85rem; }
.btn-solid, .btn-outline{
  display:inline-flex; align-items:center; justify-content:center;
  padding:.95rem 1.9rem; font-size:.85rem; font-weight:600;
  letter-spacing:.03em; text-decoration:none; white-space:nowrap;
  border:1px solid var(--ink); cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.btn-solid{ background:var(--ink); color:var(--white); }
.btn-solid:hover{ background:var(--flame-1); border-color:var(--flame-1); transform:translateY(-2px); box-shadow:0 10px 20px rgba(255,106,0,.25); }
.btn-outline{ background:transparent; color:var(--ink); }
.btn-outline:hover{ background:var(--ink); color:var(--white); transform:translateY(-2px); box-shadow:0 10px 20px rgba(22,16,51,.18); }
.btn-row .btn-solid, .btn-row .btn-outline{ margin:0; }
.btn-ghost{
  display:inline-flex; align-items:center; gap:.5rem; font-weight:600; font-size:.85rem;
  text-decoration:none; color:var(--ink); border-bottom:1px solid var(--ink); padding-bottom:2px;
  transition:color .2s ease, border-color .2s ease, gap .2s ease;
}
.btn-ghost:hover{ color:var(--flame-1); border-color:var(--flame-1); gap:.75rem; }
.btn-flame{
  display:inline-flex; align-items:center; justify-content:center;
  padding:.95rem 2.1rem; font-size:.85rem; font-weight:700; letter-spacing:.03em;
  color:var(--ink); text-decoration:none; border:1px solid var(--cream);
  background:var(--cream);
  cursor:pointer; transition:background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.btn-flame:hover{ background:var(--flame-1); border-color:var(--flame-1); color:var(--white); transform:translateY(-2px); box-shadow:0 10px 20px rgba(255,106,0,.3); }

/* ---------- Header ---------- */
.site-header{ position:sticky; top:0; z-index:55; }
.header-band{ background:var(--band); border-bottom:1px solid rgba(22,16,51,.08); }
.header-inner{
  max-width:var(--max); margin:0 auto; padding:1rem clamp(1.25rem,4vw,2.5rem);
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1.5rem;
}

.brand{
  grid-column:1; justify-self:start; display:flex; align-items:center; gap:.7rem;
  text-decoration:none; min-width:0;
}
.brand-mark{ width:46px; height:46px; flex:none; display:flex; align-items:center; justify-content:center; transition:transform .3s ease; }
.brand:hover .brand-mark{ transform:rotate(-6deg) scale(1.06); }
.brand-mark img{ width:100%; height:100%; object-fit:contain; }
.brand-mark .logo-fallback{
  width:46px; height:46px; border-radius:50%; background:var(--ink);
  display:flex; align-items:center; justify-content:center;
}
.logo-fallback svg{ width:27px; height:27px; }

.header-right{ grid-column:3; display:flex; align-items:center; justify-self:end; gap:1rem; }
.nav-primary{ grid-column:2; display:flex; align-items:center; justify-content:center; gap:clamp(.85rem, 1.7vw, 1.75rem); }
.nav-primary > a{
  text-decoration:none; font-size:clamp(.72rem, .95vw, .85rem); font-weight:600; letter-spacing:.03em;
  color:var(--ink); text-transform:uppercase; position:relative; padding-bottom:2px;
  white-space:nowrap; font-style:italic;
}
.nav-primary > a::after{
  content:''; position:absolute; left:0; right:0; bottom:-2px; height:1px;
  background:var(--flame-1); transform:scaleX(0); transform-origin:left; transition:transform .2s ease;
}
.nav-primary > a:hover::after, .nav-primary > a[aria-current="page"]::after{ transform:scaleX(1); }
.nav-mobile-only{ display:none; }

.wordmark{
  text-decoration:none; color:var(--ink); text-align:left; font-family:var(--font-body);
  font-weight:700; font-size:.95rem; letter-spacing:.14em; text-transform:uppercase; line-height:1.3;
}
.wordmark small{ display:block; font-size:.62rem; letter-spacing:.2em; font-weight:600; color:var(--ink-soft); margin-top:.1rem; }

.header-give{ text-decoration:none; font-size:.85rem; font-weight:700; letter-spacing:.03em; color:var(--ink); }
.header-give:hover{ color:var(--flame-1); }

.nav-toggle{
  display:none; background:none; border:1px solid var(--ink); width:42px; height:36px;
  align-items:center; justify-content:center; cursor:pointer;
  position:relative; z-index:60;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:''; display:block; width:20px; height:2px; background:var(--ink); position:relative; transition:all .2s ease;
}
.nav-toggle span::before{ position:absolute; top:-6px; }
.nav-toggle span::after{ position:absolute; top:6px; }
.nav-toggle[aria-expanded="true"] span{ background:transparent; }
.nav-toggle[aria-expanded="true"] span::before{ transform:rotate(45deg); top:0; }
.nav-toggle[aria-expanded="true"] span::after{ transform:rotate(-45deg); top:0; }

@media (max-width: 480px){
  .brand-mark, .brand-mark .logo-fallback{ width:38px; height:38px; }
  .logo-fallback svg{ width:22px; height:22px; }
  .wordmark{ font-size:.82rem; }
}
@media (max-width: 380px){
  .wordmark{ letter-spacing:.1em; }
  .wordmark small{ letter-spacing:.14em; white-space:nowrap; }
}

@media (max-width: 900px){
  /* Full-screen menu: the logo, Give and close button stay on top of it */
  .brand, .header-right{ position:relative; z-index:60; }
  .nav-primary{
    position:fixed; z-index:50; inset:0; height:100vh; height:100dvh;
    background:var(--cream); flex-direction:column; align-items:stretch; justify-content:flex-start;
    padding:5.75rem clamp(1.25rem, 6vw, 2.5rem) 2.5rem; gap:0;
    overflow-y:auto; overscroll-behavior:contain;
    opacity:0; visibility:hidden; transform:translateY(-10px);
    transition:opacity .28s ease, transform .28s ease, visibility 0s linear .28s;
  }
  .nav-primary.is-open{
    opacity:1; visibility:visible; transform:none;
    transition:opacity .28s ease, transform .28s ease;
  }
  .nav-primary > a{
    font-family:var(--font-display); font-style:normal; font-weight:500; text-transform:none; letter-spacing:0;
    font-size:1.65rem; line-height:1.2; white-space:normal;
    padding:.7rem 0; border-bottom:1px solid var(--rule);
  }
  .nav-primary > a::after{ display:none; }
  .nav-primary > a[aria-current="page"]{ color:var(--flame-1); }
  .nav-primary.is-open > a{ animation:navIn .5s cubic-bezier(.16,.84,.44,1) both; animation-delay:calc(var(--i, 0) * 35ms + 60ms); }
  .nav-primary.is-open .nav-extra{ animation:navIn .5s cubic-bezier(.16,.84,.44,1) .3s both; }
  .nav-primary .nav-mobile-only{ display:block; }
  .nav-toggle{ display:inline-flex; }
  .header-give{ order:3; }

  .nav-primary .nav-extra{ display:grid; gap:1rem; margin-top:1.75rem; }
  .nav-next{
    display:block; padding:1.1rem 1.25rem; text-decoration:none; color:var(--white);
    background:
      radial-gradient(ellipse 320px 200px at 100% 0%, rgba(255,106,0,.22), transparent 70%),
      var(--ink);
  }
  .nav-next-label{
    display:flex; align-items:center; gap:.5rem;
    font-size:.64rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--flame-2);
  }
  .nav-next-label::before{ content:''; width:7px; height:7px; border-radius:50%; background:currentColor; flex:none; }
  .nav-next.is-live .nav-next-label::before{ background:var(--flame-1); animation:livePulse 1.6s ease-out infinite; }
  .nav-next strong{ display:block; font-family:var(--font-display); font-weight:600; font-size:1.35rem; line-height:1.2; margin:.4rem 0 .15rem; }
  .nav-next-time{ font-size:.85rem; color:rgba(255,255,255,.7); }
  .nav-venue{
    display:flex; align-items:flex-start; gap:.55rem;
    font-size:.88rem; line-height:1.45; color:var(--ink-soft); text-decoration:none;
  }
  .nav-venue svg{ width:18px; height:18px; flex:none; color:var(--flame-1); margin-top:.05rem; }
  .nav-calls{ display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
  .nav-calls a{
    display:flex; align-items:center; justify-content:center; gap:.45rem; padding:.8rem .5rem;
    border:1px solid var(--ink); color:var(--ink); text-decoration:none; font-size:.85rem; font-weight:600;
  }
  .nav-calls svg{ width:16px; height:16px; color:var(--flame-1); }
  .nav-give{ width:100%; }
  .nav-social{ display:flex; justify-content:center; gap:.9rem; padding-top:.5rem; }
  .nav-social a{
    width:40px; height:40px; border-radius:50%; border:1px solid var(--rule);
    display:flex; align-items:center; justify-content:center; color:var(--ink);
  }
}
@keyframes navIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }

/* dim overlay for mobile nav */
.nav-scrim{
  position:fixed; inset:0; background:rgba(22,16,51,.35); opacity:0; pointer-events:none;
  transition:opacity .25s ease; z-index:45;
}
.nav-scrim.is-open{ opacity:1; pointer-events:auto; }

/* ---------- Hero ---------- */
.hero{
  position:relative; background:var(--sand);
  background-size:cover; background-position:center;
  display:flex; align-items:flex-end; min-height:min(78vh,720px);
}
.hero::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(22,16,51,.72) 0%, rgba(22,16,51,.32) 45%, rgba(22,16,51,.12) 75%);
}
.hero-inner{ position:relative; z-index:1; padding-block:clamp(2.5rem,8vw,5rem); color:var(--white); }
.hero-eyebrow{
  font-size:.75rem; font-weight:700; letter-spacing:.28em; text-transform:uppercase;
  color:var(--band); margin-bottom:1rem;
}
.hero h1{
  color:var(--white); font-size:clamp(2.8rem, 8vw, 6.4rem); letter-spacing:-.01em;
}
.hero p.lede{ color:rgba(255,255,255,.88); font-size:clamp(1rem,1.6vw,1.2rem); max-width:42ch; margin-top:1.25rem; }
.hero .btn-row{ margin-top:2rem; }

.page-hero{
  min-height:auto; padding-block:clamp(4rem,10vw,7rem);
  align-items:center; text-align:center;
}
.page-hero .hero-inner{ width:100%; }
.page-hero h1{ font-size:clamp(2.4rem,6vw,4.2rem); }
.page-hero .eyebrow{ justify-content:center; }
.page-hero .eyebrow::before{ content:''; flex:0 0 40px; height:1px; background:rgba(255,255,255,.4); }
.page-hero .eyebrow::after{ background:rgba(255,255,255,.4); flex:0 0 40px; }
.page-hero .eyebrow{ color:var(--band); justify-content:center; }

/* ---------- Coverflow photo carousel ---------- */
.coverflow-section{ overflow:hidden; padding-bottom:2.5rem; }
.coverflow{
  position:relative;
  height:clamp(300px, 36vw, 420px);
  margin-top:clamp(1rem, 3vw, 2.5rem);
  perspective:1400px;
  touch-action:pan-y;
  cursor:grab;
  -webkit-user-select:none; user-select:none;
}
.coverflow.is-dragging{ cursor:grabbing; }
.coverflow-track{ position:absolute; inset:0; transform-style:preserve-3d; }
.coverflow-card{
  position:absolute; top:50%; left:50%;
  width:clamp(180px, 22vw, 280px);
  aspect-ratio:3/4;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 18px 40px rgba(22,16,51,.22);
  opacity:0;
  will-change:transform, opacity;
}
.coverflow-card img{ width:100%; height:100%; object-fit:cover; display:block; pointer-events:none; -webkit-user-drag:none; }
.coverflow-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:42px; height:42px; border-radius:999px; border:1px solid var(--rule);
  background:var(--white); display:flex; align-items:center; justify-content:center;
  color:var(--ink); cursor:pointer; z-index:1200; transition:background .2s ease, color .2s ease;
}
.coverflow-arrow:hover{ background:var(--ink); color:var(--white); }
.coverflow-prev{ left:clamp(.25rem, 2vw, 1.5rem); }
.coverflow-next{ right:clamp(.25rem, 2vw, 1.5rem); }
.coverflow-arrow svg{ width:18px; height:18px; }
@media (max-width:640px){
  .coverflow-arrow{ display:none; }
}

/* ---------- Come as you are / service info ---------- */
.welcome-copy{ max-width:640px; margin-inline:auto; text-align:center; }
.welcome-copy h2{ font-size:clamp(1.5rem,2.4vw,1.9rem); margin-bottom:1rem; }
.welcome-copy p{ color:var(--ink-soft); margin-bottom:1.75rem; }
.service-info h3{ font-size:1.1rem; letter-spacing:.05em; text-transform:uppercase; margin-bottom:1rem; }
.service-info .when{ font-size:1.3rem; font-family:var(--font-display); margin-bottom:.25rem; }
.service-info .where{ color:var(--ink-soft); margin-bottom:1.25rem; }

.asterisk-list li{
  position:relative; padding:.4rem 0 .4rem 1.5rem; color:var(--ink-soft); line-height:1.5;
}
.asterisk-list li::before{
  content:'✳'; color:var(--flame-1); position:absolute; left:0; top:.4rem; line-height:1.5;
}

.venue-block{
  display:flex; flex-direction:column; align-items:center; gap:.5rem;
  margin-top:.75rem;
}
.venue-pin{ width:22px; height:22px; color:var(--flame-1); }
.venue-link{
  color:var(--ink-soft); text-decoration:none;
  border-bottom:1px solid var(--rule); padding-bottom:1px;
  transition:color .2s ease, border-color .2s ease;
}
.venue-link:hover{ color:var(--flame-1); border-color:var(--flame-1); }
.venue-note{ color:var(--ink-soft); }

/* ---------- Schedule (program / time / venue, icon-led) ---------- */
.schedule-venue{
  padding-bottom:1rem; margin-bottom:1rem; border-bottom:1px solid var(--rule);
  color:var(--ink-soft); font-size:.95rem;
}
.schedule-row{ display:flex; align-items:flex-start; gap:.6rem; padding:.15rem 0; }
.schedule-row .sched-icon{ width:17px; height:17px; flex:none; margin-top:.15rem; color:var(--flame-1); }

.schedule-list{ display:grid; grid-template-columns:1fr; }
.schedule-row-wix{
  padding:1.75rem 0; border-bottom:1px solid var(--rule);
  transition:background .25s ease;
}
.schedule-row-wix:last-child{ border-bottom:none; }
.schedule-row-wix:hover{ background:rgba(255,106,0,.04); }
.schedule-meta{
  color:var(--ink-soft); font-size:.8rem; text-transform:uppercase; letter-spacing:.07em;
  margin:0 0 .5rem;
}
.schedule-row-wix h4{
  font-family:var(--font-display); font-weight:600; font-size:clamp(1.4rem,2.8vw,1.9rem);
  color:var(--ink); margin:0;
}
@media (min-width:640px){
  .schedule-list{ grid-template-columns:1fr 1fr; row-gap:1.5rem; }
  .schedule-row-wix{ border-bottom:none; border-left:1px solid var(--rule); padding:.4rem 1.5rem; }
  .schedule-row-wix:nth-child(odd){ border-left:none; padding-left:0; }
}
@media (min-width:900px){
  .schedule-list{ grid-template-columns:repeat(4,1fr); row-gap:0; }
  .schedule-row-wix:nth-child(odd){ border-left:1px solid var(--rule); padding-left:1.5rem; }
  .schedule-row-wix:first-child{ border-left:none; padding-left:0; }
  .schedule-row-wix h4{ font-size:clamp(1.25rem,1.8vw,1.55rem); }
}
.schedule-section{ padding-top:clamp(1rem, 2vw, 1.5rem); }
.schedule-section .service-info h3{ text-align:center; }
.schedule-section .schedule-venue{ justify-content:center; }
.schedule-section .schedule-row-wix{ text-align:center; }
.schedule-section .btn-row{ justify-content:center; margin-top:clamp(2rem,4vw,3rem); }
.schedule-list.schedule-list--stack{ grid-template-columns:1fr; row-gap:0; }
.schedule-list.schedule-list--stack > .schedule-row-wix{
  border-left:none; border-bottom:1px solid var(--rule); padding:1.1rem 0;
}
.schedule-list.schedule-list--stack > .schedule-row-wix:last-child{ border-bottom:none; }
@media (min-width:640px){
  .schedule-section .schedule-row-wix,
  .schedule-section .schedule-row-wix:nth-child(odd),
  .schedule-section .schedule-row-wix:first-child{ padding-left:1.5rem; }
}

/* ---------- Mission band ---------- */
.mission-band{
  padding-block:var(--section-pad);
  background:
    radial-gradient(ellipse 900px 480px at 50% 0%, rgba(255,106,0,.08), transparent 70%),
    var(--ink);
  color:var(--white); text-align:center;
}
.mission-band h2{ color:var(--white); font-size:clamp(1.8rem,3.4vw,2.6rem); max-width:34ch; margin:0 auto 1.25rem; }
.mission-band p{ color:rgba(255,255,255,.78); max-width:62ch; margin:0 auto 2rem; }
.mission-band .eyebrow{ color:var(--flame-2); }
.mission-band .eyebrow::before, .mission-band .eyebrow::after{ background:rgba(255,255,255,.25); }
.mission-vision-grid{ text-align:center; margin-bottom:1rem; }
.mission-vision-grid > div{ padding:0 .5rem; }
@media (min-width:640px){
  .mission-vision-grid{ gap:clamp(2rem,5vw,4rem); align-items:start; }
  .mission-vision-grid > div{
    padding:0 clamp(1rem,2vw,2rem);
    border-left:1px solid rgba(255,255,255,.15);
  }
  .mission-vision-grid > div:first-child{ border-left:none; }
}

/* A page's closing band becomes a dark card on the light page, so a cream
   gap separates it from the (also dark) footer */
main > .mission-band:last-child{
  background:var(--cream); padding-block:clamp(2.5rem, 6vw, 4.5rem);
}
main > .mission-band:last-child > .wrap{
  width:min(var(--max), calc(100% - 2 * clamp(1.25rem, 4vw, 2.5rem)));
  padding:clamp(2.75rem, 6vw, 4.5rem) clamp(1.5rem, 5vw, 4rem);
  border-top:3px solid var(--gold);
  background:
    radial-gradient(ellipse 620px 360px at 100% 0%, rgba(255,106,0,.2), transparent 70%),
    radial-gradient(ellipse 520px 320px at 0% 100%, rgba(245,179,1,.1), transparent 70%),
    var(--ink);
  box-shadow:0 30px 60px rgba(22,16,51,.18);
}

/* ---------- Cards ---------- */
.grid{ display:grid; gap:var(--gap); }
.grid-2{ grid-template-columns:1fr; }
.grid-3{ grid-template-columns:1fr; }
.grid-4{ grid-template-columns:1fr; }
@media (min-width:640px){ .grid-2{ grid-template-columns:1fr 1fr; } .grid-4{ grid-template-columns:1fr 1fr; } }
@media (min-width:900px){ .grid-3{ grid-template-columns:repeat(3,1fr); } .grid-4{ grid-template-columns:repeat(4,1fr); } }

.card{
  background:var(--white); border:1px solid var(--rule); padding:2rem 1.6rem; height:100%;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.card:hover{ transform:translateY(-5px); box-shadow:0 16px 30px rgba(22,16,51,.1); border-color:var(--flame-2); }
.card h3{ font-size:1.2rem; margin-bottom:.75rem; }
.card p{ color:var(--ink-soft); font-size:.95rem; }
.card .card-icon{
  width:52px; height:52px; padding:13px; box-sizing:border-box; border-radius:50%;
  background:rgba(255,106,0,.1); color:var(--flame-1); margin-bottom:1.25rem;
  transition:background .25s ease, transform .3s ease;
}
.card:hover .card-icon{ transform:scale(1.08) rotate(-4deg); }
/* gentle color rotation across grid cards — same brand palette, just cycled */
.grid-3 .card:nth-of-type(3n+2) .card-icon,
.grid-4 .card:nth-of-type(3n+2) .card-icon{ background:rgba(201,153,43,.16); color:var(--gold); }
.grid-3 .card:nth-of-type(3n+3) .card-icon,
.grid-4 .card:nth-of-type(3n+3) .card-icon{ background:rgba(22,16,51,.08); color:var(--ink); }

.person-card{ text-align:center; }
.person-card .avatar{
  width:132px; height:132px; border-radius:50%; margin:0 auto 1.1rem; overflow:hidden;
  background:linear-gradient(145deg, var(--ink), #2a2159);
  display:flex; align-items:center; justify-content:center; color:var(--band);
  font-family:var(--font-display); font-size:1.6rem; font-weight:600;
  transition:transform .3s ease, box-shadow .3s ease;
}
.person-card .avatar img{ width:100%; height:100%; object-fit:cover; }
.person-card:hover .avatar{ transform:scale(1.05); box-shadow:0 0 0 5px rgba(255,106,0,.16); }
.person-card h3{ font-size:1.05rem; margin-bottom:.15rem; }
.person-card .role{ color:var(--gold); font-size:.8rem; letter-spacing:.06em; text-transform:uppercase; }

.quote-card{ padding:2.25rem 1.9rem; position:relative; overflow:hidden; }
.quote-card::before{
  content:'\201C'; position:absolute; top:.35rem; left:1.1rem; font-family:var(--font-display);
  font-size:5rem; color:rgba(201,153,43,.22); line-height:1; pointer-events:none;
}
.quote-card p{ position:relative; font-family:var(--font-display); font-size:1.05rem; color:var(--ink); margin-bottom:1.25rem; }
.quote-card .who{ position:relative; font-size:.85rem; font-weight:600; letter-spacing:.04em; color:var(--ink-soft); }

.section-head{ max-width:640px; margin-bottom:2.75rem; }
.section-head.center{ margin-inline:auto; text-align:center; }
.section-head h2{ font-size:clamp(1.7rem,3vw,2.3rem); margin-bottom:.85rem; }
.section-head p{ color:var(--ink-soft); }

/* ---------- Photo band (full bleed) ---------- */
.photo-band{ position:relative; }
.photo-band img{ width:100%; height:clamp(280px,42vw,460px); object-fit:cover; }
.photo-band .caption{
  position:absolute; left:0; bottom:0; right:0; padding:1.5rem clamp(1.25rem,4vw,2.5rem);
  background:linear-gradient(0deg, rgba(22,16,51,.75), transparent);
  color:var(--white); font-size:.85rem; letter-spacing:.05em; text-transform:uppercase;
}

/* ---------- CTA band ---------- */
.cta-band{
  background:var(--band); display:flex; flex-wrap:wrap; gap:1.5rem;
  align-items:center; justify-content:space-between; padding-block:2rem;
}
.cta-band .when{ font-family:var(--font-display); font-size:1.3rem; }
.cta-band .where{ color:var(--ink-soft); font-size:.9rem; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--ink); color:rgba(255,255,255,.75); }
.footer-grid{
  display:grid; gap:2.5rem; padding-block:3.5rem 2rem;
  grid-template-columns:1fr; text-align:center;
}
@media (min-width:768px){
  .footer-grid{ grid-template-columns:1.3fr 1fr 1fr 1fr; text-align:left; }
}
.footer-brand .wordmark{ color:var(--white); }
.footer-brand p{ margin-top:1rem; margin-inline:auto; color:rgba(255,255,255,.6); font-size:.9rem; max-width:34ch; }
.footer-grid nav a{ display:none; }
@media (min-width:768px){ .footer-brand p{ margin-inline:0; } }
.footer-col h4{
  color:var(--white); font-size:.75rem; letter-spacing:.16em; text-transform:uppercase; margin-bottom:1.1rem;
}
.footer-col ul li{ margin-bottom:.65rem; }
.footer-col a, .footer-col li > span{ text-decoration:none; color:rgba(255,255,255,.75); font-size:.92rem; }
.footer-col a:hover{ color:var(--flame-2); }
@media (max-width:767px){
  .footer-grid{ gap:2.25rem; }
  .footer-col h4{
    display:flex; align-items:center; justify-content:center; gap:.85rem;
    font-size:.68rem; letter-spacing:.24em; color:rgba(247,231,188,.85); margin-bottom:1rem;
  }
  .footer-col h4::before, .footer-col h4::after{
    content:''; flex:0 0 26px; height:1px; background:rgba(247,231,188,.32);
  }
  .footer-links-inline ul{
    display:flex; flex-wrap:wrap; justify-content:center; row-gap:.5rem;
  }
  .footer-links-inline ul li{ margin-bottom:0; display:flex; align-items:baseline; }
  .footer-links-inline ul li:not(:last-child)::after{
    content:'·'; color:var(--gold); margin:0 .8rem; font-size:.95rem;
  }
}
.footer-social{ display:flex; gap:1rem; justify-content:center; }
@media (min-width:768px){ .footer-social{ justify-content:flex-start; } }
.footer-social a{
  width:38px; height:38px; border:1px solid rgba(255,255,255,.25); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--white); text-decoration:none;
}
.footer-social a:hover{ border-color:var(--flame-2); color:var(--flame-2); }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12); padding-block:1.5rem;
  display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between;
  font-size:.8rem; color:rgba(255,255,255,.5);
}
.footer-bottom .legal a{ color:rgba(255,255,255,.5); text-decoration:none; margin-left:1.25rem; }
.footer-bottom .legal a:hover{ color:var(--white); }
@media (max-width:767px){
  .footer-bottom{ flex-direction:column; justify-content:center; text-align:center; gap:.75rem; }
  .footer-bottom .legal{ display:flex; justify-content:center; gap:1.5rem; }
  .footer-bottom .legal a{ margin-left:0; }
}

/* ---------- Forms ---------- */
.form-grid{ display:grid; gap:1.25rem; grid-template-columns:1fr; }
@media (min-width:640px){ .form-grid.two{ grid-template-columns:1fr 1fr; } }
.field{ display:flex; flex-direction:column; gap:.4rem; }
.field label{ font-size:.8rem; font-weight:600; letter-spacing:.03em; }
.field label .req{ color:var(--flame-1); }
.field input, .field textarea{
  border:1px solid var(--rule); background:var(--white); padding:.85rem 1rem;
  font-family:var(--font-body); font-size:.95rem; color:var(--ink);
}
.field input:focus, .field textarea:focus{ outline:2px solid var(--flame-2); outline-offset:1px; }
.field.invalid input, .field.invalid textarea{ border-color:#C0392B; }
.field .error-msg{ display:none; color:#C0392B; font-size:.8rem; }
.field.invalid .error-msg{ display:block; }
.form-status{ margin-top:1rem; font-size:.9rem; font-weight:600; display:none; }
.form-status.show{ display:block; }
.form-status.ok{ color:#1f7a3d; }
.form-status.err{ color:#C0392B; }

/* ---------- Ministry / sermon / event specific ---------- */

/* ---------- Ministries page: photo mosaic + numbered directory ---------- */
.ministry-mosaic{
  display:grid; grid-template-columns:1fr; gap:var(--gap);
  margin-bottom:clamp(3rem, 6vw, 4.5rem);
}
.ministry-feature{
  position:relative; overflow:hidden; isolation:isolate;
  min-height:260px; background:var(--ink);
}
.ministry-feature img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 1.4s cubic-bezier(.16,.84,.44,1);
}
.ministry-feature::after{
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(22,16,51,0) 38%, rgba(22,16,51,.88) 100%);
}
.ministry-feature:hover img{ transform:scale(1.06); }
.ministry-feature-body{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  padding:clamp(1.25rem, 2.5vw, 2rem); color:var(--white);
}
.ministry-tag{
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--band);
  margin:0 0 .5rem;
}
.ministry-feature h3{
  font-family:var(--font-display); font-weight:600; color:var(--white);
  font-size:clamp(1.3rem, 2.2vw, 1.75rem); margin:0; line-height:1.15;
}
.ministry-feature--lg h3{ font-size:clamp(1.8rem, 3vw, 2.5rem); }
.ministry-feature-body p:not(.ministry-tag){
  color:rgba(255,255,255,.82); margin:.7rem 0 0; max-width:42ch; font-size:.95rem;
}
@media (min-width:800px){
  .ministry-mosaic{
    grid-template-columns:1.45fr 1fr;
    grid-template-rows:repeat(3, 1fr);
    height:clamp(640px, 60vw, 780px);
  }
  .ministry-feature{ min-height:0; }
  .ministry-feature--lg{ grid-row:1 / span 3; }
}

.ministry-directory{ display:grid; grid-template-columns:1fr; border-top:1px solid var(--rule); }
@media (min-width:800px){
  .ministry-directory{ grid-template-columns:1fr 1fr; column-gap:clamp(2.5rem, 5vw, 4.5rem); }
}
.ministry-row{
  display:grid; grid-template-columns:auto auto 1fr; column-gap:1.2rem; align-items:start;
  padding:1.9rem .75rem; margin:0 -.75rem; border-bottom:1px solid var(--rule);
  transition:background .25s ease;
}
.ministry-row:hover{ background:rgba(255,106,0,.05); }
.ministry-num{
  font-family:var(--font-display); font-style:italic; font-weight:500; font-size:1.9rem; line-height:1;
  color:var(--gold); min-width:2.4ch; margin-top:-.1rem;
}
.ministry-icon{ width:24px; height:24px; color:var(--flame-1); margin-top:.35rem; }
.ministry-row h3{
  font-family:var(--font-display); font-weight:600; font-size:1.4rem; line-height:1.15;
  margin:.1rem 0 .45rem; transition:color .2s ease;
}
.ministry-row p{ color:var(--ink-soft); font-size:.95rem; margin:0; line-height:1.6; }
.ministry-row:hover h3{ color:var(--flame-1); }
.ministry-scripture{
  margin:0 0 clamp(3rem, 6vw, 4.5rem);
  padding:clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 4vw, 3.5rem);
  background:
    radial-gradient(ellipse 700px 360px at 85% 0%, rgba(255,106,0,.16), transparent 70%),
    radial-gradient(ellipse 600px 320px at 10% 100%, rgba(245,179,1,.12), transparent 70%),
    var(--ink);
  color:var(--white); text-align:center;
}
.ministry-scripture blockquote{
  font-family:var(--font-display); font-style:italic; font-weight:500;
  font-size:clamp(1.3rem, 2.6vw, 1.9rem); line-height:1.35; max-width:30ch; margin:0 auto 1rem;
}
.ministry-scripture cite{
  display:block; font-style:normal; font-size:.75rem; letter-spacing:.16em; text-transform:uppercase; color:var(--band);
}

/* ---------- About page: editorial splits, tenets, schedule descriptions ---------- */
.about-split{
  display:grid; grid-template-columns:1fr; gap:clamp(2.5rem, 5vw, 4.5rem); align-items:center;
}
@media (min-width:900px){
  .about-split{ grid-template-columns:1fr 1.15fr; }
  .about-split--flip .about-photo{ order:2; }
}
.about-photo{ position:relative; aspect-ratio:4/5; isolation:isolate; margin:0 18px 18px 0; }
.about-photo--wide{ aspect-ratio:4/3; }
.about-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.about-photo::before{
  content:''; position:absolute; inset:18px -18px -18px 18px; border:1px solid var(--gold); z-index:-1;
}
.about-statements{ display:grid; gap:clamp(2rem, 4vw, 3rem); }
.about-statement{ padding-left:clamp(1.25rem, 3vw, 2.25rem); border-left:2px solid var(--gold); }
.about-statement h2{ font-size:clamp(1.6rem, 2.8vw, 2.3rem); line-height:1.1; margin:.6rem 0 1rem; }
.about-statement p{ color:var(--ink-soft); }
.about-statement p + p{ margin-top:1rem; }
.about-note{
  max-width:60ch; margin:clamp(2rem, 4vw, 3rem) auto 0; text-align:center;
  font-family:var(--font-display); font-style:italic; font-size:clamp(1.1rem, 1.8vw, 1.35rem);
  line-height:1.5; color:var(--ink-soft);
}
.schedule-row-wix .schedule-desc{ color:var(--ink-soft); font-size:.9rem; line-height:1.55; margin:.6rem 0 0; }

/* ---------- Give page ---------- */
.give-ways{ display:grid; grid-template-columns:1fr; gap:var(--gap); }
@media (min-width:900px){ .give-ways{ grid-template-columns:1.4fr 1fr; } }
.give-zelle{
  display:grid; grid-template-columns:1fr; gap:2rem; align-items:center;
  padding:clamp(2rem, 4vw, 3rem);
  background:
    radial-gradient(ellipse 520px 320px at 100% 0%, rgba(255,106,0,.2), transparent 70%),
    radial-gradient(ellipse 480px 300px at 0% 100%, rgba(245,179,1,.12), transparent 70%),
    var(--ink);
  color:var(--white);
}
@media (min-width:640px){ .give-zelle{ grid-template-columns:1fr auto; } }
.give-zelle h3{
  font-family:var(--font-display); font-weight:600; color:var(--white);
  font-size:clamp(1.9rem, 3.2vw, 2.6rem); line-height:1.1; margin:0 0 .8rem;
}
.give-zelle p:not(.ministry-tag){ color:rgba(255,255,255,.78); margin:0; }
.give-email{
  display:flex; align-items:center; gap:.75rem; flex-wrap:wrap;
  margin:1rem 0 1.6rem; padding:.75rem .9rem;
  border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.04);
}
.give-email span{ flex:1 1 auto; white-space:nowrap; font-weight:600; font-size:.95rem; letter-spacing:.01em; }
.give-copy{
  font:inherit; font-size:.72rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--white); background:transparent; border:1px solid rgba(255,255,255,.4);
  padding:.45rem .85rem; cursor:pointer; transition:border-color .2s ease, color .2s ease;
}
.give-copy:hover{ border-color:var(--flame-2); color:var(--flame-2); }
.give-qr{
  justify-self:center; display:block; width:200px; padding:14px 14px 10px; background:var(--white);
  text-decoration:none; box-shadow:0 22px 44px rgba(0,0,0,.35); transition:transform .3s ease;
}
.give-qr:hover{ transform:translateY(-4px) rotate(-1deg); }
.give-qr img{ width:100%; height:auto; display:block; }
.give-qr span{
  display:block; text-align:center; margin-top:.5rem;
  font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft);
}
.give-inperson{
  display:flex; flex-direction:column; padding:clamp(2rem, 4vw, 3rem);
  background:var(--white); border:1px solid var(--rule); border-top:3px solid var(--gold);
}
.give-inperson .ministry-tag{ color:var(--gold); }
.give-inperson-icon{ width:30px; height:30px; color:var(--flame-1); margin-bottom:1.25rem; }
.give-inperson h3{
  font-family:var(--font-display); font-weight:600; font-size:clamp(1.6rem, 2.6vw, 2rem);
  line-height:1.1; margin:0 0 .8rem;
}
.give-inperson > p:not(.ministry-tag){ color:var(--ink-soft); margin:0; }
.give-inperson-meta{ margin-top:auto; padding-top:1.75rem; }
.give-when{ font-family:var(--font-display); font-size:1.15rem; margin:0 0 .6rem; }
.give-inperson .schedule-venue{ border-bottom:none; margin:0; padding:0; }
.give-faq{ max-width:820px; margin-inline:auto; }

/* ---------- Sermons page ---------- */
.latest-grid{ display:grid; grid-template-columns:1fr; gap:clamp(2.5rem, 5vw, 4rem); align-items:center; }
@media (min-width:960px){ .latest-grid{ grid-template-columns:1.55fr 1fr; } }
.latest-video{
  position:relative; aspect-ratio:16/9; isolation:isolate; margin:0 18px 18px 0;
  background:var(--ink); box-shadow:0 28px 56px rgba(22,16,51,.22);
}
.latest-video::before{
  content:''; position:absolute; inset:18px -18px -18px 18px; border:1px solid var(--gold); z-index:-1;
}
.latest-video iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.latest-copy h2{ font-size:clamp(1.5rem, 2.4vw, 2rem); line-height:1.2; margin:.6rem 0 .5rem; }
.latest-date{
  font-family:var(--font-display); font-style:italic; font-size:1.15rem; color:var(--gold); margin:0 0 1rem;
}
.latest-copy > p:not(.eyebrow):not(.latest-date){ color:var(--ink-soft); }
.latest-actions{ display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.75rem; }

.series + .series{ margin-top:clamp(3rem, 6vw, 4.5rem); }
.series-head{
  display:grid; grid-template-columns:auto 1fr; column-gap:1.25rem; align-items:start;
  padding-bottom:1.4rem; margin-bottom:1.9rem; border-bottom:1px solid var(--rule);
}
.series-head .ministry-num{ font-size:2.6rem; margin-top:-.15rem; }
.series-head .ministry-tag{ color:var(--gold); margin-bottom:.35rem; }
.series-head h3{ font-family:var(--font-display); font-weight:600; font-size:clamp(1.5rem, 2.6vw, 2.1rem); line-height:1.15; margin:0 0 .45rem; }
.series-head p:not(.ministry-tag){ color:var(--ink-soft); margin:0; max-width:62ch; }
.sermon-card--wide{ gap:0; }
@media (min-width:760px){
  .sermon-card.sermon-card--wide{ display:grid; grid-template-columns:1.25fr 1fr; gap:clamp(1.75rem, 3.5vw, 3rem); align-items:center; }
  .sermon-card.sermon-card--wide .sermon-thumb{ margin-bottom:0; }
}
.sermon-card.sermon-card--wide h3{ font-size:clamp(1.4rem, 2.2vw, 1.8rem); }

.sermon-card{ display:flex; flex-direction:column; text-decoration:none; color:inherit; }
.sermon-thumb{ position:relative; aspect-ratio:16/9; overflow:hidden; margin-bottom:1.25rem; background:var(--ink); }
.sermon-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.sermon-card:hover .sermon-thumb img{ transform:scale(1.06); }
.sermon-thumb .play{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(22,16,51,.28); transition:background .3s ease;
}
.sermon-card:hover .sermon-thumb .play{ background:rgba(255,106,0,.3); }
.sermon-thumb .play svg{ width:52px; height:52px; color:var(--white); transition:transform .3s ease; }
.sermon-card:hover .sermon-thumb .play svg{ transform:scale(1.12); }
.sermon-meta{ font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; color:var(--gold); margin-bottom:.5rem; }
.sermon-card h3{ font-size:1.15rem; margin-bottom:.5rem; }
.sermon-card p{ color:var(--ink-soft); font-size:.92rem; }

.event-row{
  display:flex; flex-wrap:wrap; gap:1.75rem; align-items:center; justify-content:space-between;
  padding:2.25rem 0; border-bottom:1px solid var(--rule);
  transition:background .25s ease;
}
.event-row:hover{ background:rgba(255,106,0,.045); }
.event-date{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:74px; height:74px; background:var(--ink); color:var(--white); flex:none;
  transition:background .25s ease, transform .25s ease;
}
.event-row:hover .event-date{ background:var(--flame-1); transform:scale(1.05); }
.event-date .num{ font-family:var(--font-display); font-size:1.5rem; line-height:1; }
.event-date .mon{ font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; }
.event-flyer{ display:block; flex:none; width:74px; height:74px; overflow:hidden; }
.event-flyer img{ width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.event-flyer:hover img{ transform:scale(1.08); }
.event-body{ flex:1; min-width:220px; }
.event-body h3{
  font-family:var(--font-display); font-weight:600; font-size:clamp(1.3rem,2.6vw,1.9rem);
  line-height:1.15; margin-bottom:.5rem;
}
.event-body p{ color:var(--ink-soft); font-size:.95rem; line-height:1.6; }
.event-time{
  font-size:.75rem; color:var(--ink-soft); white-space:nowrap;
  text-transform:uppercase; letter-spacing:.08em;
}
.event-side{ text-align:right; flex:none; }
.event-side .btn-ghost{
  display:inline-flex; margin-top:.75rem;
  background:var(--ink); color:var(--white); border:none;
  padding:.6rem 1.4rem; border-radius:999px; font-size:.8rem;
  transition:background .25s ease, color .25s ease, transform .2s ease;
}
.event-side .btn-ghost:hover{ background:var(--flame-1); color:var(--white); transform:translateY(-2px); }

/* ---------- Add-to-calendar chooser ---------- */
.cal-menu{ position:relative; display:inline-block; }
.cal-toggle{ font-family:inherit; line-height:inherit; cursor:pointer; }
.cal-options{
  position:absolute; right:0; top:calc(100% + .5rem); z-index:50; min-width:240px;
  background:var(--white); border:1px solid var(--rule); box-shadow:0 18px 40px rgba(22,16,51,.14);
  padding:.8rem 1rem; text-align:left;
}
.cal-options-label{
  font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft);
  margin:.6rem 0 .3rem;
}
.cal-options-label:first-child{ margin-top:0; }
.cal-options a{
  display:block; padding:.45rem .5rem; margin:0 -.5rem; text-decoration:none;
  color:var(--ink); font-size:.92rem; font-weight:500; border-radius:4px;
}
.cal-options a:hover{ background:var(--sand); color:var(--flame-1); }
@media (max-width:640px){
  .cal-menu{ display:block; }
  .cal-options{ position:static; margin-top:.75rem; min-width:0; }
}

@media (max-width:640px){
  .event-row{
    display:grid; grid-template-columns:56px minmax(0,1fr); column-gap:1rem; row-gap:.45rem;
    align-items:start; padding-block:1.25rem;
  }
  .event-row > *{ grid-column:2; }
  .event-row > .event-date{ grid-column:1; grid-row:1 / span 2; width:56px; height:56px; }
  .event-row > .event-flyer{ grid-column:1; grid-row:3; width:56px; height:56px; }
  .event-date .num{ font-size:1.3rem; }
  .event-date .mon{ font-size:.62rem; }
  .event-body{ min-width:0; }
  .event-body h3{ font-size:1.25rem; margin-bottom:.15rem; }
  .event-body p{ font-size:.88rem; }
  .event-side{ display:flex; align-items:center; flex-wrap:wrap; gap:.3rem 1.1rem; text-align:left; }
  .event-side .cal-menu.is-open{ flex-basis:100%; }
  .event-side .btn-ghost{
    margin-top:0; padding:0 0 2px; border-radius:0; background:none; color:var(--flame-1);
    border-bottom:1px solid currentColor; font-size:.75rem; letter-spacing:.04em;
  }
  .event-side .btn-ghost:hover{ background:none; color:var(--ink); transform:none; }
}

.faq-item{ border-bottom:1px solid var(--rule); }
.faq-q{
  width:100%; text-align:left; background:none; border:0; padding:1.4rem 0;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  font-family:var(--font-display); font-size:1.05rem; cursor:pointer; color:var(--ink);
  transition:color .2s ease;
}
.faq-q:hover{ color:var(--flame-1); }
.faq-q .plus{ font-size:1.4rem; color:var(--flame-1); transition:transform .2s ease; flex:none; }
.faq-item[aria-expanded="true"] .plus{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .25s ease; }
.faq-a p{ color:var(--ink-soft); padding-bottom:1.4rem; max-width:64ch; }

.give-tiles{ }
.give-tile{
  text-align:center; border:1px solid var(--rule); padding:2.25rem 1.5rem;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.give-tile:hover{ transform:translateY(-5px); box-shadow:0 16px 30px rgba(22,16,51,.1); border-color:var(--gold); }
.give-tile .amt{ font-family:var(--font-display); font-size:2rem; margin-bottom:.5rem; }
.give-tile p{ color:var(--ink-soft); font-size:.9rem; margin-bottom:1.25rem; }

.beliefs-grid{ }
.beliefs-grid .card p{ margin-top:.25rem; }

.scripture{
  font-family:var(--font-display); font-size:clamp(1.3rem,2.6vw,1.75rem); color:var(--ink);
  text-align:center; max-width:48ch; margin:0 auto; line-height:1.4;
}
.scripture cite{ display:block; margin-top:1rem; font-family:var(--font-body); font-style:normal; font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold); }

.bg-sand{ background:var(--sand); }
.bg-white{ background:var(--white); }
.text-center{ text-align:center; }

/* ---------- Events page ---------- */
.next-up{
  display:grid; grid-template-columns:1fr; overflow:visible;
  background:
    radial-gradient(ellipse 620px 360px at 100% 0%, rgba(255,106,0,.22), transparent 70%),
    radial-gradient(ellipse 520px 320px at 0% 100%, rgba(245,179,1,.12), transparent 70%),
    var(--ink);
  color:var(--white); box-shadow:0 30px 60px rgba(22,16,51,.22);
}
@media (min-width:900px){ .next-up{ grid-template-columns:.9fr 1.1fr; } }
.next-up-photo{ position:relative; min-height:280px; overflow:hidden; }
.next-up-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 6s ease; }
.next-up:hover .next-up-photo img{ transform:scale(1.05); }
.next-up-photo::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 55%, rgba(22,16,51,.55));
}
@media (min-width:900px){
  .next-up-photo::after{ background:linear-gradient(90deg, transparent 60%, rgba(22,16,51,.6)); }
}
.next-up-body{ padding:clamp(2rem, 4.5vw, 3.5rem); }
.next-up-label{
  display:flex; align-items:center; gap:.6rem; margin:0 0 1rem;
  font-size:.72rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--flame-2);
}
.next-up-dot{ width:8px; height:8px; border-radius:50%; background:var(--flame-2); flex:none; }
.next-up.is-live .next-up-dot{ background:var(--flame-1); animation:livePulse 1.6s ease-out infinite; }
@keyframes livePulse{
  0%{ box-shadow:0 0 0 0 rgba(255,106,0,.7); }
  100%{ box-shadow:0 0 0 12px rgba(255,106,0,0); }
}
.next-up h2{ color:var(--white); font-size:clamp(2.2rem, 4.6vw, 3.6rem); line-height:1.02; margin:0 0 .9rem; }
.next-up-desc{ color:rgba(255,255,255,.78); max-width:46ch; margin:0 0 1.1rem; }
.next-up-when{ font-family:var(--font-display); font-style:italic; font-size:1.15rem; color:var(--band); margin:0; }
.countdown{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:0;
  margin:1.75rem 0 2rem; max-width:440px;
  border-top:1px solid rgba(255,255,255,.18); border-bottom:1px solid rgba(255,255,255,.18);
}
.countdown[hidden]{ display:none; }
.countdown > div{ text-align:center; padding:1rem .25rem; }
.countdown > div + div{ border-left:1px solid rgba(255,255,255,.18); }
.countdown span{
  display:block; font-family:var(--font-display); font-weight:500;
  font-size:clamp(1.8rem, 3.6vw, 2.6rem); line-height:1; font-variant-numeric:tabular-nums; color:var(--white);
}
.countdown small{
  display:block; margin-top:.45rem; font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.55);
}
.next-up-live{
  margin:1.75rem 0 2rem; padding:1rem 1.2rem; max-width:440px;
  border-left:2px solid var(--flame-1); background:rgba(255,106,0,.1); color:var(--white);
}
.next-up-actions{ display:flex; flex-wrap:wrap; gap:.75rem; align-items:flex-start; }
.next-up .cal-options{ left:0; right:auto; }
.next-up-dir{ color:var(--white); border-color:rgba(255,255,255,.45); }
.next-up-dir:hover{ background:var(--white); color:var(--ink); border-color:var(--white); }
@media (max-width:640px){
  .next-up-actions .cal-menu{ width:100%; }
  .next-up-actions .btn-flame, .next-up-actions .btn-outline{ width:100%; }
}

.week-strip{ display:grid; grid-template-columns:1fr; border-top:1px solid var(--rule); list-style:none; margin:0; padding:0; }
.week-day{
  position:relative; display:grid; grid-template-columns:3.5rem 1fr; column-gap:1rem; align-items:baseline;
  padding:1rem .75rem; border-bottom:1px solid var(--rule); transition:background .25s ease;
}
.week-name{
  font-family:var(--font-display); font-style:italic; font-weight:500; font-size:1.3rem; color:var(--gold);
  grid-row:span 2;
}
.week-event{ font-family:var(--font-display); font-weight:600; font-size:1.2rem; line-height:1.2; }
.week-time{ grid-column:2; font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); margin-top:.25rem; }
.week-rest{ color:var(--rule); font-size:1.2rem; }
.week-day:not(.has-event) .week-name{ color:var(--ink-soft); opacity:.55; }
.week-day.has-event:hover{ background:rgba(255,106,0,.05); }
.week-day.is-today{ background:var(--white); box-shadow:inset 3px 0 0 var(--flame-1); }
.week-day.is-today::after{
  content:'Today'; position:absolute; right:.75rem; top:1.1rem;
  font-size:.62rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--flame-1);
}
@media (min-width:900px){
  .week-strip{ grid-template-columns:repeat(7, 1fr); border-top:none; border-left:1px solid var(--rule); }
  .week-day{
    display:flex; flex-direction:column; align-items:center; text-align:center; gap:.5rem;
    padding:1.75rem .75rem 2rem; min-height:220px;
    border-bottom:none; border-right:1px solid var(--rule);
  }
  .week-name{ font-size:1.5rem; margin-bottom:.75rem; padding-bottom:.9rem; width:100%; border-bottom:1px solid var(--rule); }
  .week-event{ font-size:1.15rem; }
  .week-time{ margin-top:0; line-height:1.5; }
  .week-rest{ margin-top:1.5rem; }
  .week-day.is-today{ box-shadow:inset 0 3px 0 var(--flame-1); }
  .week-day.is-today::after{ position:static; order:-1; margin-bottom:-.25rem; }
}

.upcoming-list{ max-width:960px; margin-inline:auto; border-top:1px solid var(--rule); }

.events-empty{
  max-width:640px; margin:0 auto; text-align:center;
  padding:clamp(2.25rem, 5vw, 3.25rem) clamp(1.5rem, 4vw, 3rem);
  background:var(--white); border:1px solid var(--rule); border-top:3px solid var(--gold);
}
.events-empty-icon{ width:34px; height:34px; color:var(--flame-1); margin:0 auto 1.1rem; }
.events-empty h3{ font-size:clamp(1.5rem, 2.6vw, 1.9rem); margin:0 0 .75rem; }
.events-empty p{ color:var(--ink-soft); max-width:48ch; margin:0 auto; }
.events-empty-social{ display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem 1.5rem; margin-top:1.6rem; }
.events-empty-social a{
  font-size:.78rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; text-decoration:none;
  color:var(--ink); border-bottom:1px solid var(--gold); padding-bottom:2px; transition:color .2s ease, border-color .2s ease;
}
.events-empty-social a:hover{ color:var(--flame-1); border-color:var(--flame-1); }

.venue-map{ position:relative; aspect-ratio:4/3; isolation:isolate; margin:0 18px 18px 0; background:var(--sand); }
.venue-map::before{ content:''; position:absolute; inset:18px -18px -18px 18px; border:1px solid var(--gold); z-index:-1; }
.venue-map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; filter:saturate(.85); }

/* ---------- Prayer & Testimony page ---------- */
.pt-tabs{
  display:grid; grid-template-columns:1fr 1fr; gap:0; max-width:820px; margin:0 auto clamp(2rem, 4vw, 3rem);
  border:1px solid var(--ink);
  scroll-margin-top:110px;
}
.pt-tab{
  display:flex; align-items:center; gap:1rem; text-align:left; cursor:pointer;
  padding:1.25rem clamp(1rem, 2.5vw, 1.75rem); border:0; background:var(--white); color:var(--ink);
  transition:background .3s ease, color .3s ease;
}
.pt-tab + .pt-tab{ border-left:1px solid var(--ink); }
.pt-tab svg{ width:30px; height:30px; flex:none; color:var(--flame-1); transition:color .3s ease, transform .3s ease; }
.pt-tab-text strong{ display:block; font-family:var(--font-display); font-weight:600; font-size:clamp(1.05rem, 2vw, 1.35rem); line-height:1.15; }
.pt-tab-text small{ display:block; margin-top:.2rem; font-size:.82rem; color:var(--ink-soft); transition:color .3s ease; }
.pt-tab:hover svg{ transform:scale(1.1); }
.pt-tab.is-active{ background:var(--ink); color:var(--white); }
.pt-tab.is-active svg{ color:var(--flame-2); }
.pt-tab.is-active .pt-tab-text small{ color:rgba(255,255,255,.65); }
.pt-tab:focus-visible{ outline:2px solid var(--flame-2); outline-offset:-4px; }
@media (max-width:560px){
  .pt-tab{ flex-direction:column; align-items:flex-start; gap:.6rem; }
  .pt-tab-text small{ display:none; }
}

.pt-panel{ display:grid; grid-template-columns:1fr; box-shadow:0 30px 60px rgba(22,16,51,.12); }
.pt-panel[hidden]{ display:none; }
.pt-panel + .pt-panel{ margin-top:2rem; }
.pt-panel[hidden] + .pt-panel, .pt-panel + .pt-panel[hidden]{ margin-top:0; }
@media (min-width:900px){ .pt-panel{ grid-template-columns:.85fr 1.15fr; } }
.pt-panel--in{ animation:ptIn .6s cubic-bezier(.16,.84,.44,1); }
@keyframes ptIn{ from{ opacity:0; transform:translateY(24px); } to{ opacity:1; transform:none; } }
.pt-aside{
  display:flex; flex-direction:column; justify-content:center;
  padding:clamp(2rem, 4.5vw, 3.5rem);
  background:
    radial-gradient(ellipse 520px 320px at 100% 0%, rgba(255,106,0,.22), transparent 70%),
    radial-gradient(ellipse 480px 300px at 0% 100%, rgba(245,179,1,.12), transparent 70%),
    var(--ink);
  color:var(--white);
}
.pt-aside .ministry-tag{ color:var(--flame-2); }
.pt-aside blockquote{
  margin:0 0 1.5rem; font-family:var(--font-display); font-style:italic; font-weight:500;
  font-size:clamp(1.35rem, 2.4vw, 1.8rem); line-height:1.35;
}
.pt-aside p:not(.ministry-tag){ color:rgba(255,255,255,.72); margin:0; padding-top:1.25rem; border-top:1px solid rgba(255,255,255,.18); }
.pt-form{ background:var(--white); padding:clamp(2rem, 4.5vw, 3.5rem); }
.pt-form h2{ font-size:clamp(1.6rem, 2.8vw, 2.2rem); margin:0 0 1.5rem; }
.pt-form textarea{ resize:vertical; }
.pt-form-row{ display:grid; grid-template-columns:1fr; gap:1.25rem; }
@media (min-width:640px){ .pt-form-row{ grid-template-columns:1fr 1fr; } }
.pt-check{ display:flex; align-items:flex-start; gap:.6rem; margin-top:1rem; font-size:.9rem; color:var(--ink-soft); cursor:pointer; }
.pt-check input{ width:auto; margin-top:.3rem; accent-color:var(--flame-1); }

.pt-stories .eyebrow{ margin-bottom:2rem; }
.pt-quotes{ display:grid; max-width:860px; margin:0 auto; }
.pt-quote{
  grid-area:1 / 1; margin:0; opacity:0; transform:translateY(16px);
  transition:opacity .35s ease, transform .35s ease; pointer-events:none;
}
/* the old quote fades out first, then the new one fades in, so they never overlap */
.pt-quote.is-active{ opacity:1; transform:none; pointer-events:auto; transition:opacity .8s ease .35s, transform .8s ease .35s; }
.pt-quote blockquote{
  margin:0 0 1.5rem; font-family:var(--font-display); font-style:italic; font-weight:500; color:var(--white);
  font-size:clamp(1.4rem, 3vw, 2.2rem); line-height:1.35;
}
.pt-quote figcaption{ font-size:.75rem; letter-spacing:.16em; text-transform:uppercase; color:var(--band); }
.pt-dots{ display:flex; justify-content:center; gap:.6rem; margin-top:2rem; }
.pt-dots button{
  width:28px; height:3px; padding:0; border:0; cursor:pointer; background:rgba(255,255,255,.25);
  transition:background .3s ease, width .3s ease;
}
.pt-dots button.is-active{ background:var(--flame-2); width:44px; }
.pt-dots button::before{ content:''; display:block; height:24px; margin-top:-10px; }

.pt-contacts{ display:grid; grid-template-columns:1fr; gap:var(--gap); max-width:980px; margin:0 auto; }
@media (min-width:760px){ .pt-contacts{ grid-template-columns:repeat(3, 1fr); } }
.pt-contact{
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:.3rem;
  padding:2rem 1.5rem; background:var(--white); border:1px solid var(--rule); border-top:3px solid var(--gold);
  text-decoration:none; color:var(--ink);
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.pt-contact:hover{ transform:translateY(-4px); box-shadow:0 20px 40px rgba(22,16,51,.12); border-top-color:var(--flame-1); }
.pt-contact svg{ width:28px; height:28px; color:var(--flame-1); margin-bottom:.6rem; }
.pt-contact .ministry-tag{ color:var(--gold); margin:0; }
.pt-contact strong{ font-family:var(--font-display); font-weight:600; font-size:1.4rem; }
.pt-contact span:last-child{ color:var(--ink-soft); font-size:.95rem; }
.pt-contact-avatar{
  width:72px; height:72px; border-radius:50%; object-fit:cover; margin-bottom:.75rem;
  border:2px solid var(--white); box-shadow:0 0 0 1px var(--gold);
}
.pt-contact strong{ font-size:clamp(1.15rem, 1.6vw, 1.3rem); line-height:1.25; text-wrap:balance; }
.pt-contact .ministry-tag + strong{ margin-top:.1rem; }
.pt-contact{ justify-content:center; }

/* ---------- Admin dashboard ---------- */
.admin-bar{ position:sticky; top:0; z-index:60; background:var(--ink); color:var(--white); }
.admin-bar-inner{
  max-width:var(--max); margin:0 auto; padding:.8rem clamp(1.25rem, 4vw, 2.5rem);
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
.admin-brand{ display:flex; align-items:center; gap:.75rem; text-decoration:none; color:var(--white); }
.admin-brand img{ width:38px; height:38px; border-radius:50%; }
.admin-brand span{ font-weight:700; font-size:.85rem; letter-spacing:.14em; text-transform:uppercase; line-height:1.2; }
.admin-brand small{ display:block; font-weight:600; font-size:.62rem; letter-spacing:.22em; color:var(--flame-2); }
.admin-bar-actions{ display:flex; align-items:center; gap:.5rem; }
.admin-bar-link{
  display:inline-flex; align-items:center; gap:.4rem; padding:.55rem .9rem;
  font:inherit; font-size:.8rem; font-weight:600; color:rgba(255,255,255,.85); text-decoration:none;
  background:transparent; border:1px solid rgba(255,255,255,.25); cursor:pointer;
  transition:border-color .2s ease, color .2s ease, background .2s ease;
}
.admin-bar-link svg{ width:14px; height:14px; }
.admin-bar-link:hover{ color:var(--white); border-color:var(--flame-2); }
.admin-bar-link[hidden]{ display:none; }

.admin-main{ min-height:calc(100vh - 62px); }

.admin-login{
  min-height:calc(100vh - 62px); display:grid; place-items:center; padding:3rem 1.25rem;
  background:
    radial-gradient(ellipse 800px 500px at 50% 0%, rgba(255,106,0,.10), transparent 70%),
    var(--cream);
}
.admin-login[hidden], .admin-dash[hidden]{ display:none; }
.admin-login-card{
  width:100%; max-width:420px; text-align:center;
  padding:clamp(2rem, 5vw, 2.75rem); background:var(--white);
  border:1px solid var(--rule); border-top:3px solid var(--gold); box-shadow:0 30px 60px rgba(22,16,51,.10);
}
.admin-login-logo{ width:64px; height:64px; border-radius:50%; margin:0 auto 1.25rem; }
.admin-login-card .eyebrow{ margin-bottom:.6rem; }
.admin-login-card h1{ font-size:clamp(1.8rem, 4vw, 2.1rem); margin:0 0 .5rem; }
.admin-login-lede{ color:var(--ink-soft); margin:0 0 1.75rem; }
.admin-login-card form{ text-align:left; }
.admin-pw{ position:relative; display:flex; }
.admin-pw input{ flex:1; padding-right:4.5rem; min-width:0; }
.admin-pw-toggle{
  position:absolute; right:.4rem; top:50%; transform:translateY(-50%);
  font:inherit; font-size:.72rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  background:transparent; border:0; color:var(--ink-soft); padding:.4rem .5rem; cursor:pointer;
}
.admin-pw-toggle:hover{ color:var(--flame-1); }
.admin-error{ color:#B3261E; font-size:.88rem; margin:.9rem 0 0; }
.admin-error[hidden]{ display:none; }
.admin-login-note{ margin-top:1.5rem; color:var(--ink-soft); font-size:.75rem; line-height:1.5; }

.admin-dash{ padding-block:clamp(2rem, 4vw, 3rem) clamp(3rem, 6vw, 5rem); }
.admin-welcome{ margin-bottom:1.75rem; }
.admin-today{ font-size:.75rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin:0 0 .35rem; }
.admin-welcome h1{ font-size:clamp(2rem, 4vw, 2.8rem); }

.admin-stats{ display:grid; grid-template-columns:1fr; gap:var(--gap); margin-bottom:2.25rem; }
@media (min-width:700px){ .admin-stats{ grid-template-columns:repeat(2, 1fr); } }
@media (min-width:1080px){ .admin-stats{ grid-template-columns:repeat(4, 1fr); } }
.admin-stat{
  display:flex; align-items:baseline; gap:1rem; text-align:left; cursor:pointer;
  padding:1.4rem 1.5rem; font:inherit; color:var(--white);
  background:
    radial-gradient(ellipse 300px 160px at 100% 0%, rgba(255,106,0,.22), transparent 70%),
    var(--ink);
  border:0; transition:transform .25s ease, box-shadow .25s ease;
}
.admin-stat:hover{ transform:translateY(-3px); box-shadow:0 16px 32px rgba(22,16,51,.2); }
.admin-stat-num{ font-family:var(--font-display); font-weight:500; font-size:2.6rem; line-height:1; color:var(--flame-2); font-variant-numeric:tabular-nums; }
.admin-stat-label{ font-size:.85rem; color:rgba(255,255,255,.8); line-height:1.35; }

.admin-tabs{
  display:flex; gap:.25rem; border-bottom:1px solid var(--rule); margin-bottom:2rem;
  overflow-x:auto; scrollbar-width:none; scroll-margin-top:80px;
}
.admin-tabs::-webkit-scrollbar{ display:none; }
.admin-tab{
  flex:none; display:inline-flex; align-items:center; gap:.55rem;
  padding:.9rem 1.1rem; margin-bottom:-1px; font:inherit; font-weight:600; font-size:.92rem;
  color:var(--ink-soft); background:transparent; border:0; border-bottom:2px solid transparent; cursor:pointer;
  transition:color .2s ease, border-color .2s ease;
}
.admin-tab:hover{ color:var(--ink); }
.admin-tab.is-active{ color:var(--ink); border-bottom-color:var(--flame-1); }
.admin-tab:focus-visible{ outline:2px solid var(--flame-2); outline-offset:-2px; }
.admin-count{
  display:inline-grid; place-items:center; min-width:1.6rem; height:1.35rem; padding:0 .4rem;
  font-size:.72rem; font-weight:700; border-radius:999px; background:var(--sand); color:var(--ink-soft);
}
.admin-tab.is-active .admin-count{ background:var(--ink); color:var(--white); }
.admin-panel[hidden]{ display:none; }

.admin-card{ background:var(--white); border:1px solid var(--rule); padding:clamp(1.5rem, 3vw, 2rem); }
.admin-events-grid{ display:grid; grid-template-columns:1fr; gap:clamp(2rem, 4vw, 3rem); align-items:start; }
@media (min-width:960px){
  .admin-events-grid{ grid-template-columns:minmax(340px, 400px) 1fr; }
  .admin-event-form{ position:sticky; top:84px; }
}
.admin-event-form{ display:grid; grid-template-columns:minmax(0,1fr); gap:1.1rem; border-top:3px solid var(--gold); }
.admin-main .field input, .admin-main .field textarea{ width:100%; min-width:0; }
.admin-event-form h2, .admin-list-title{ font-size:1.4rem; margin:0; }
.admin-list-title{ margin-bottom:1rem; }
.admin-hint{ color:var(--ink-soft); font-size:.85rem; margin:-.6rem 0 0; }
.admin-form-row{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1rem; }
.admin-label{ font-size:.8rem; font-weight:600; letter-spacing:.03em; }
.admin-label small{ font-weight:400; color:var(--ink-soft); }
.admin-drop{
  position:relative; display:grid; place-items:center; min-height:130px; cursor:pointer; overflow:hidden;
  border:1.5px dashed var(--rule); background:var(--cream); transition:border-color .2s ease, background .2s ease;
}
.admin-drop:hover, .admin-drop.is-over{ border-color:var(--flame-1); background:rgba(255,106,0,.04); }
.admin-drop input{ position:absolute; inset:0; opacity:0; cursor:pointer; }
.admin-drop-text{ display:flex; flex-direction:column; align-items:center; gap:.25rem; text-align:center; padding:1rem; pointer-events:none; }
.admin-drop-text[hidden]{ display:none; }
.admin-drop-text svg{ width:28px; height:28px; color:var(--flame-1); margin-bottom:.25rem; }
.admin-drop-text strong{ font-size:.9rem; }
.admin-drop-text small{ font-size:.75rem; color:var(--ink-soft); }
.admin-drop-preview{ width:100%; max-height:260px; object-fit:contain; background:var(--ink); pointer-events:none; }
.admin-drop.has-file{ border-style:solid; }
.admin-link-btn{
  justify-self:start; font:inherit; font-size:.8rem; font-weight:600; color:var(--ink);
  background:none; border:0; padding:0; border-bottom:1px solid var(--gold); cursor:pointer;
}
.admin-link-btn:hover{ color:var(--flame-1); border-color:var(--flame-1); }
.admin-link-btn[hidden]{ display:none; }
.field .admin-link-btn{ margin-top:.5rem; align-self:flex-start; }
.field.invalid input{ border-color:#C0392B; }

.admin-list{ display:grid; gap:.75rem; }
.admin-event{
  display:grid; grid-template-columns:auto 1fr auto; gap:1.1rem; align-items:start;
  padding:1.1rem; background:var(--white); border:1px solid var(--rule);
  transition:border-color .2s ease, box-shadow .2s ease;
}
.admin-event:hover{ border-color:var(--gold); box-shadow:0 10px 24px rgba(22,16,51,.06); }
.admin-event-date{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:58px; height:58px; background:var(--ink); color:var(--white);
}
.admin-event-date span{ font-family:var(--font-display); font-size:1.35rem; line-height:1; }
.admin-event-date small{ font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; margin-top:.15rem; }
.admin-event-flyer{ display:none; }
.admin-event-body h3{ font-size:1.15rem; margin:0 0 .25rem; }
.admin-meta{ font-size:.8rem; color:var(--ink-soft); margin:0; }
.admin-meta a{ color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); }
.admin-meta a:hover{ color:var(--flame-1); }
.admin-desc{ font-size:.9rem; color:var(--ink-soft); margin:.5rem 0 0; }
@media (min-width:560px){
  .admin-event:has(.admin-event-flyer){ grid-template-columns:auto auto 1fr auto; }
  .admin-event-flyer{ display:block; width:58px; height:58px; overflow:hidden; }
  .admin-event-flyer img{ width:100%; height:100%; object-fit:cover; }
}
.admin-del{
  font:inherit; font-size:.75rem; font-weight:600; letter-spacing:.04em; color:#B3261E;
  background:transparent; border:1px solid rgba(179,38,30,.3); padding:.4rem .75rem; cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.admin-del:hover{ background:#B3261E; border-color:#B3261E; color:var(--white); }
.admin-del:disabled{ opacity:.5; cursor:default; }

.admin-past{ margin-top:2rem; }
.admin-past summary{
  display:flex; align-items:center; gap:.6rem; cursor:pointer; list-style:none;
  font-weight:600; font-size:.92rem; padding:.75rem 0; border-top:1px solid var(--rule); color:var(--ink-soft);
}
.admin-past summary::-webkit-details-marker{ display:none; }
.admin-past summary::before{ content:'+'; font-size:1.1rem; width:1rem; color:var(--flame-1); }
.admin-past[open] summary::before{ content:'–'; }
.admin-past .admin-list{ margin-top:.75rem; opacity:.8; }

.admin-toolbar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.25rem; }
.admin-filters{ display:flex; flex-wrap:wrap; gap:.5rem; }
.admin-chip{
  font:inherit; font-size:.8rem; font-weight:600; padding:.5rem .95rem; border-radius:999px; cursor:pointer;
  border:1px solid var(--rule); background:var(--white); color:var(--ink-soft);
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.admin-chip:hover{ border-color:var(--ink); color:var(--ink); }
.admin-chip.is-active{ background:var(--ink); border-color:var(--ink); color:var(--white); }
.admin-search{
  flex:1 1 220px; max-width:320px; padding:.65rem .9rem; font:inherit; font-size:.9rem;
  border:1px solid var(--rule); background:var(--white); color:var(--ink);
}
.admin-search:focus{ outline:2px solid var(--flame-2); outline-offset:1px; }
@media (max-width:560px){ .admin-search{ max-width:none; } }

.admin-list--cards{ gap:1rem; }
.admin-sub{
  padding:1.25rem 1.4rem; background:var(--white); border:1px solid var(--rule); border-left:3px solid var(--rule);
  transition:box-shadow .2s ease;
}
.admin-sub:hover{ box-shadow:0 10px 24px rgba(22,16,51,.06); }
.admin-sub.is-flagged{ border-left-color:var(--gold); }
.admin-sub-head{ display:grid; grid-template-columns:auto 1fr auto; gap:.9rem; align-items:center; }
.admin-avatar{
  display:grid; place-items:center; width:40px; height:40px; border-radius:50%;
  background:var(--sand); color:var(--gold); font-family:var(--font-display); font-weight:600; font-size:1.1rem;
}
.admin-sub-who h3{ font-family:var(--font-body); font-weight:600; font-size:1rem; margin:0 0 .1rem; }
.admin-anon{ color:var(--ink-soft); font-style:italic; font-weight:500; }
.admin-tags{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.35rem; }
.admin-tag{
  font-size:.62rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; white-space:nowrap;
  padding:.3rem .55rem; color:var(--gold); background:rgba(201,153,43,.12);
}
.admin-tag--new{ color:var(--white); background:var(--flame-1); }
.admin-sub-msg{
  margin:1rem 0 0; padding-left:calc(40px + .9rem);
  font-family:var(--font-display); font-size:1.08rem; line-height:1.55; color:var(--ink); white-space:pre-line;
}
.admin-sub-actions{ display:flex; justify-content:flex-end; align-items:center; gap:1.25rem; margin-top:1rem; }
@media (max-width:560px){
  .admin-sub-head{ grid-template-columns:auto 1fr; }
  .admin-tags{ grid-column:1 / -1; justify-content:flex-start; }
  .admin-sub-msg{ padding-left:0; }
  .admin-event{ grid-template-columns:auto 1fr; }
  .admin-event .admin-del-wrap{ grid-column:2; justify-self:start; }
}
.admin-empty{
  padding:2rem 1.25rem; text-align:center; color:var(--ink-soft); font-size:.92rem;
  border:1px dashed var(--rule); background:rgba(255,255,255,.5);
}

.admin-toast{
  position:fixed; left:50%; bottom:1.5rem; z-index:100; transform:translate(-50%, 1rem);
  padding:.75rem 1.2rem; background:var(--ink); color:var(--white); font-size:.88rem; font-weight:600;
  box-shadow:0 14px 30px rgba(22,16,51,.3); opacity:0; pointer-events:none;
  transition:opacity .25s ease, transform .25s ease;
}
.admin-toast.is-show{ opacity:1; transform:translate(-50%, 0); }
.admin-toast.is-error{ background:#B3261E; }
.admin-bar-link, .admin-brand span{ white-space:nowrap; }
@media (max-width:699px){
  .admin-bar-inner{ padding-block:.65rem; }
  .admin-bar-link{ padding:.5rem .7rem; font-size:.75rem; }
  .admin-brand img{ width:32px; height:32px; }
  .admin-brand span{ font-size:.75rem; }
  .admin-stats{ grid-template-columns:repeat(2, 1fr); gap:.6rem; margin-bottom:1.5rem; }
  .admin-stat{ flex-direction:column; gap:.4rem; padding:1rem .85rem; }
  .admin-stat-num{ font-size:2rem; }
  .admin-stat-label{ font-size:.72rem; }
  .admin-tab{ padding:.8rem .6rem; font-size:.85rem; gap:.4rem; }
}
@media (max-width:380px){ .admin-brand span{ display:none; } }
@media (max-width:699px){ .admin-hide-sm{ display:none; } }
@media (max-width:420px){ .admin-form-row{ grid-template-columns:minmax(0,1fr); } }

/* Admin: prayer status + two-step delete */
.admin-sub--open{ border-left-color:var(--flame-1); }
.admin-sub--praying{ border-left-color:var(--gold); }
.admin-sub--answered{ border-left-color:#2E7D4F; }
.admin-sub--answered .admin-sub-msg{ color:var(--ink-soft); }
.admin-sub-actions{ justify-content:space-between; flex-wrap:wrap; gap:.75rem 1.25rem; }
.admin-sub-actions > :last-child{ margin-left:auto; }
.admin-status{ display:inline-flex; border:1px solid var(--rule); background:var(--cream); }
.admin-status-btn{
  font:inherit; font-size:.75rem; font-weight:600; letter-spacing:.03em;
  padding:.45rem .8rem; border:0; background:transparent; color:var(--ink-soft); cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.admin-status-btn + .admin-status-btn{ border-left:1px solid var(--rule); }
.admin-status-btn:hover{ color:var(--ink); background:var(--white); }
.admin-status-btn[aria-pressed="true"]{ color:var(--white); }
.admin-status-btn--open[aria-pressed="true"]{ background:var(--flame-1); }
.admin-status-btn--praying[aria-pressed="true"]{ background:var(--gold); }
.admin-status-btn--answered[aria-pressed="true"]{ background:#2E7D4F; }
.admin-chip span:empty{ display:none; }
.admin-chip span{ margin-left:.2rem; opacity:.7; font-variant-numeric:tabular-nums; }

.admin-del-wrap{ display:inline-flex; align-items:center; }
.admin-del[hidden], .admin-del-confirm[hidden]{ display:none; }
.admin-del-confirm{
  display:inline-flex; align-items:center; gap:.85rem; padding:.35rem .4rem .35rem .8rem;
  background:rgba(179,38,30,.07); border:1px solid rgba(179,38,30,.25);
  animation:ptIn .25s ease;
}
.admin-del-q{ font-size:.8rem; font-weight:600; color:#B3261E; }
.admin-del--confirm{ background:#B3261E; border-color:#B3261E; color:var(--white); }
.admin-del--confirm:hover{ background:#8E1D17; border-color:#8E1D17; }
.admin-del-confirm .admin-link-btn{ border-bottom-color:rgba(179,38,30,.4); }
@media (max-width:560px){
  .admin-sub-actions > :last-child{ margin-left:0; }
  .admin-del-confirm{ flex-wrap:wrap; }
}

/* Admin: editing, notes, publishing, inbox, export */
.admin-form-head, .admin-list-head{ display:flex; align-items:baseline; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.admin-list-head{ margin-bottom:1rem; }
.admin-list-head .admin-list-title{ margin:0; }
.admin-event-form.is-editing{ border-top-color:var(--flame-1); box-shadow:0 0 0 3px rgba(255,106,0,.12); }
.admin-event.is-editing{ border-color:var(--flame-1); box-shadow:0 0 0 3px rgba(255,106,0,.12); }
.admin-event-actions{ display:flex; flex-direction:column; align-items:flex-end; gap:.5rem; }
.admin-edit{
  font:inherit; font-size:.75rem; font-weight:600; letter-spacing:.04em; color:var(--ink);
  background:var(--white); border:1px solid var(--rule); padding:.4rem .9rem; cursor:pointer;
  transition:border-color .2s ease, background .2s ease, color .2s ease;
}
.admin-edit:hover{ border-color:var(--ink); background:var(--ink); color:var(--white); }
@media (max-width:560px){
  .admin-event-actions{ grid-column:2; flex-direction:row; align-items:center; justify-self:start; }
}

.admin-toolbar-right{ display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; flex:1 1 280px; justify-content:flex-end; }
.admin-export{
  display:inline-flex; align-items:center; gap:.4rem; white-space:nowrap;
  font-size:.78rem; font-weight:600; color:var(--ink); text-decoration:none;
  padding:.55rem .85rem; border:1px solid var(--rule); background:var(--white);
  transition:border-color .2s ease, color .2s ease;
}
.admin-export svg{ width:15px; height:15px; color:var(--flame-1); }
.admin-export:hover{ border-color:var(--ink); }
@media (max-width:560px){ .admin-toolbar-right{ justify-content:stretch; } .admin-toolbar-right .admin-search{ flex:1 1 100%; } }

.admin-sub-actions-left{ display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1.25rem; }
.admin-sub-actions > .admin-del-wrap{ margin-left:auto; }

.admin-note{
  margin:1rem 0 0 calc(40px + .9rem); padding:.85rem 1rem;
  background:var(--cream); border-left:2px solid var(--gold);
}
.admin-note:empty{ display:none; }
.admin-note-label{ display:block; font-size:.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); margin-bottom:.35rem; }
.admin-note p{ margin:0; font-size:.9rem; color:var(--ink); white-space:pre-line; }
.admin-note--editing textarea{
  width:100%; padding:.7rem .8rem; font:inherit; font-size:.9rem; color:var(--ink);
  border:1px solid var(--rule); background:var(--white); resize:vertical;
}
.admin-note--editing textarea:focus{ outline:2px solid var(--flame-2); outline-offset:1px; }
.admin-note-actions{ display:flex; justify-content:flex-end; align-items:center; gap:1rem; margin-top:.6rem; }
.admin-save{
  font:inherit; font-size:.78rem; font-weight:600; color:var(--white); background:var(--ink);
  border:1px solid var(--ink); padding:.45rem 1rem; cursor:pointer; transition:background .2s ease;
}
.admin-save:hover{ background:var(--flame-1); border-color:var(--flame-1); }
.admin-save:disabled{ opacity:.6; cursor:default; }
@media (max-width:560px){ .admin-note{ margin-left:0; } }

.admin-switch{
  display:inline-flex; align-items:center; gap:.55rem; padding:0; border:0; background:none; cursor:pointer;
  font:inherit; font-size:.8rem; font-weight:600; color:var(--ink);
}
.admin-switch-track{
  position:relative; width:36px; height:20px; border-radius:999px; background:var(--rule); transition:background .2s ease; flex:none;
}
.admin-switch-track span{
  position:absolute; top:2px; left:2px; width:16px; height:16px; border-radius:50%; background:var(--white);
  box-shadow:0 1px 3px rgba(0,0,0,.25); transition:transform .2s ease;
}
.admin-switch[aria-checked="true"] .admin-switch-track{ background:#2E7D4F; }
.admin-switch[aria-checked="true"] .admin-switch-track span{ transform:translateX(16px); }
.admin-switch:focus-visible{ outline:2px solid var(--flame-2); outline-offset:3px; }
.admin-tag--live{ color:#2E7D4F; background:rgba(46,125,79,.1); }

.admin-sub.is-unread{ border-left-color:var(--flame-1); background:var(--white); }
.admin-sub.is-unread .admin-sub-who h3{ font-weight:700; }
.admin-sub.is-read{ background:rgba(255,255,255,.6); }
.admin-sub.is-read .admin-sub-msg{ color:var(--ink-soft); }
.admin-reply{
  display:inline-flex; align-items:center; font-size:.78rem; font-weight:600; color:var(--white); background:var(--ink);
  text-decoration:none; padding:.45rem .95rem; transition:background .2s ease;
}
.admin-reply:hover{ background:var(--flame-1); }
.admin-event-form{ scroll-margin-top:90px; }
@media (max-width:699px){
  .admin-tabs{ display:grid; grid-template-columns:1fr 1fr; gap:.45rem; border-bottom:0; overflow:visible; margin-bottom:1.5rem; }
  .admin-tab{ justify-content:center; margin:0; padding:.75rem .5rem; border:1px solid var(--rule); background:var(--white); }
  .admin-tab.is-active{ background:var(--ink); color:var(--white); border-color:var(--ink); }
  .admin-tab.is-active .admin-count{ background:var(--flame-1); }
}

/* ---------- Phones ---------- */
.swipe-dots, .action-bar, .call-sheet, .sched-note{ display:none; }

@media (max-width:767px){
  /* Footer: brand + socials on one row, Explore and Connect side by side,
     contact details packed into a small grid, everything left-aligned */
  .footer-grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:2rem 1.5rem;
    padding-block:2.5rem 1.75rem; text-align:left;
  }
  .footer-brand{
    grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.9rem 1rem;
    padding-bottom:1.75rem; border-bottom:1px solid rgba(255,255,255,.1);
  }
  .footer-brand p{ grid-column:1 / -1; grid-row:2; margin:0; max-width:none; font-size:.88rem; text-wrap:balance; }
  .footer-brand .footer-social{ margin-top:0 !important; gap:.55rem; }
  .footer-social a{ width:36px; height:36px; }
  .footer-col h4{ justify-content:flex-start; margin-bottom:.85rem; }
  .footer-col h4::before{ display:none; }
  .footer-col h4::after{ flex:1; }
  .footer-links-inline ul{ display:grid; gap:.6rem; justify-content:start; }
  .footer-links-inline ul li:not(:last-child)::after{ display:none; }
  /* Reach Us is left off on phones: calls and directions live in the bottom bar and menu */
  .footer-col:last-child{ display:none; }
  .footer-col a, .footer-col li > span{ font-size:.88rem; }
  .footer-bottom{ padding-block:1.25rem; font-size:.75rem; }

  /* Bottom action bar: Directions · Call · Give */
  body.has-action-bar .site-footer{ padding-bottom:calc(62px + env(safe-area-inset-bottom)); }
  .action-bar{
    position:fixed; left:0; right:0; bottom:0; z-index:40;
    display:grid; grid-template-columns:repeat(3, 1fr);
    padding-bottom:env(safe-area-inset-bottom);
    background:var(--band); border-top:1px solid rgba(22,16,51,.08);
    box-shadow:0 -10px 30px rgba(22,16,51,.14);
    transition:transform .3s ease;
  }
  .action-bar a, .action-bar button{
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.3rem;
    height:62px; padding:0; border:0; background:none; cursor:pointer;
    color:var(--ink); text-decoration:none; font:inherit;
    font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
    transition:background .2s ease;
  }
  .action-bar > * + *{ box-shadow:inset 1px 0 0 rgba(22,16,51,.1); }
  .action-bar svg{ width:20px; height:20px; color:var(--ink); }
  .action-bar [aria-expanded="true"], .action-bar [aria-current="page"]{ background:rgba(22,16,51,.07); }
  body.nav-open .action-bar, body.is-typing .action-bar{ transform:translateY(110%); }

  .call-sheet:not([hidden]){
    position:fixed; left:12px; right:12px; z-index:41;
    bottom:calc(62px + env(safe-area-inset-bottom) + 10px);
    display:block; padding:.4rem 1.1rem .5rem;
    background:var(--white); border-top:3px solid var(--gold);
    box-shadow:0 24px 60px rgba(22,16,51,.3);
    animation:sheetIn .25s ease both;
  }
  .call-sheet-title{
    padding:.75rem 0 .4rem; font-size:.66rem; font-weight:700; letter-spacing:.18em;
    text-transform:uppercase; color:var(--gold);
  }
  .call-sheet a{
    display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:.85rem;
    padding:.75rem 0; color:var(--ink-soft); text-decoration:none; font-size:.88rem;
  }
  .call-sheet a + a{ border-top:1px solid var(--rule); }
  .call-sheet img{ width:46px; height:46px; border-radius:50%; object-fit:cover; }
  .call-sheet strong{ display:block; font-family:var(--font-display); font-weight:600; font-size:1.02rem; line-height:1.25; color:var(--ink); }
  .call-sheet-btn{
    padding:.55rem 1rem; background:var(--ink); color:var(--white);
    font-size:.72rem; font-weight:600; letter-spacing:.06em;
  }
}
@keyframes dotFill{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
@keyframes sheetIn{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }

@media (max-width:640px){
  /* Tighter rhythm so each screen holds more */
  :root{ --section-pad:3rem; }
  .section-head{ margin-bottom:2rem; }
  .section-head h2, .welcome-copy h2, .mission-band h2, .about-statement h2,
  .latest-copy h2, .series-head h3, .events-empty h3{ text-wrap:balance; }
  .page-hero{ padding-block:3.5rem; }
  .page-hero .eyebrow{ letter-spacing:.16em; gap:.6rem; text-wrap:balance; text-align:center; }
  .page-hero .eyebrow::before, .page-hero .eyebrow::after{ flex-basis:22px; }

  /* Home "Join Us This Week": a 2 × 2 grid of day tiles */
  .schedule-section .service-info h3{ margin-bottom:.75rem; }
  .schedule-section .schedule-venue{ font-size:.9rem; margin-bottom:0; }
  .schedule-list--days{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-auto-rows:1fr; }
  .schedule-list--days .schedule-row-wix{
    display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
    padding:1.1rem .6rem; border-bottom:1px solid var(--rule);
  }
  .schedule-list--days .schedule-row-wix:nth-child(odd){ border-right:1px solid var(--rule); }
  .schedule-list--days .schedule-row-wix:nth-child(n+3){ border-bottom:none; }
  .schedule-list--days .schedule-row-wix::before{
    content:attr(data-short); order:-1; margin-bottom:.15rem;
    font-family:var(--font-display); font-style:italic; font-weight:500; font-size:1.15rem; color:var(--gold);
  }
  .schedule-list--days h4{ font-size:1.15rem; line-height:1.2; text-wrap:balance; }
  .schedule-list--days .schedule-meta{ order:1; margin:.4rem 0 0; font-size:.68rem; letter-spacing:.05em; }
  .schedule-list--days .sched-day{ display:none; }
  .schedule-list--days .sched-note{ display:block; margin-top:.15rem; }
  .schedule-list--days .is-today::before{ content:attr(data-short) " · Today"; color:var(--flame-1); }
  .schedule-section .btn-row{ margin-top:1.75rem; }

  /* Events "Week At A Glance": the four gathering days as a 2 × 2 grid, like the home page */
  .section-head .schedule-venue{ font-size:.86rem; text-align:left; margin-bottom:0; padding-bottom:0; border-bottom:none; }
  .week-strip{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-auto-rows:1fr; }
  .week-day:not(.has-event){ display:none; }
  .week-day{
    display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
    padding:1.1rem .6rem;
  }
  .week-day[data-day="0"], .week-day[data-day="4"]{ border-right:1px solid var(--rule); }
  .week-day[data-day="4"], .week-day[data-day="5"]{ border-bottom:none; }
  .week-name{ font-size:1.15rem; margin-bottom:.15rem; }
  .week-event{ font-size:1.15rem; text-wrap:balance; }
  .week-time{ margin-top:.4rem; font-size:.68rem; letter-spacing:.05em; }
  .week-day.is-today{ background:none; box-shadow:none; }
  .week-day.is-today::after{ display:none; }
  .week-day.is-today .week-name{ color:var(--flame-1); }
  .week-day.is-today .week-name::after{ content:' · Today'; }

  /* About: gathering rhythm as compact rows, day on the left */
  .schedule-list--rows .schedule-row-wix{
    display:grid; grid-template-columns:3.2rem minmax(0,1fr); column-gap:.9rem; align-items:baseline;
    text-align:left; padding:1.1rem 0;
  }
  .schedule-list--rows .schedule-row-wix::before{
    content:attr(data-short); grid-row:1 / span 3;
    font-family:var(--font-display); font-style:italic; font-weight:500; font-size:1.25rem; color:var(--gold);
  }
  .schedule-list--rows h4{ grid-column:2; grid-row:1; font-size:1.25rem; line-height:1.2; }
  .schedule-list--rows .schedule-meta{ grid-column:2; grid-row:2; margin:.3rem 0 0; font-size:.7rem; letter-spacing:.06em; }
  .schedule-list--rows .schedule-desc{ grid-column:2; grid-row:3; margin-top:.4rem; font-size:.86rem; }
  .schedule-list--rows .sched-day{ display:none; }
  .schedule-list--rows .sched-note{ display:inline; }

  /* One slot; the old gathering drifts out left, then the day, name, time and
     description of the next slide in from the right one after another */
  .schedule-list.schedule-list--rotor{
    display:grid; grid-template-columns:minmax(0,1fr); overflow:hidden; touch-action:pan-y;
    border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
  }
  .schedule-list.schedule-list--rotor > .schedule-row-wix{
    grid-area:1 / 1; align-content:start; padding:1.1rem 0 1.3rem; border:0; background:none;
    opacity:1; transform:none; visibility:hidden; transition:visibility 0s linear .6s;
  }
  .schedule-list.schedule-list--rotor > .is-active, .schedule-list.schedule-list--rotor > .is-leaving{ visibility:visible; transition:none; }
  .schedule-list.schedule-list--rotor > .schedule-row-wix::before, .schedule-list.schedule-list--rotor > .schedule-row-wix > *{
    opacity:0; transform:translateX(36px); filter:blur(6px);
    transition:opacity .6s ease, transform .85s cubic-bezier(.16,.84,.44,1), filter .6s ease;
  }
  .schedule-list.schedule-list--rotor > .is-active::before, .schedule-list.schedule-list--rotor > .is-active > *{ opacity:1; transform:none; filter:blur(0); }
  .schedule-list.schedule-list--rotor > .is-active::before{ transition-delay:.3s; }
  .schedule-list.schedule-list--rotor > .is-active > h4{ transition-delay:.38s; }
  .schedule-list.schedule-list--rotor > .is-active > .schedule-meta{ transition-delay:.46s; }
  .schedule-list.schedule-list--rotor > .is-active > .schedule-desc{ transition-delay:.54s; }
  .schedule-list.schedule-list--rotor > .is-leaving::before, .schedule-list.schedule-list--rotor > .is-leaving > *{
    opacity:0; transform:translateX(-28px); filter:blur(4px);
    transition:opacity .3s ease, transform .4s cubic-bezier(.5,0,.75,0), filter .3s ease;
  }
  .schedule-list.schedule-list--rotor > .is-leaving > h4{ transition-delay:.04s; }
  .schedule-list.schedule-list--rotor > .is-leaving > .schedule-meta{ transition-delay:.08s; }
  .schedule-list.schedule-list--rotor > .is-leaving > .schedule-desc{ transition-delay:.12s; }
  /* the active dot fills up over the 4 seconds before the next slide */
  .swipe-dots.is-timed button.is-active{ background:var(--rule); }
  .swipe-dots.is-timed button.is-active::after{
    content:''; position:absolute; inset:0; border-radius:inherit; background:var(--flame-1);
    transform-origin:left; animation:dotFill var(--dot-time, 4s) linear both;
  }
  .schedule-list--rotor + .swipe-dots{ margin-top:1rem; }
  .schedule-section .venue-block{ flex-direction:row; flex-wrap:wrap; justify-content:center; gap:.35rem .45rem; margin-top:.25rem; }
  .schedule-section .venue-pin{ width:18px; height:18px; }
  .schedule-section .venue-link{ font-size:.9rem; }
  .schedule-section .venue-note{ flex-basis:100%; text-align:center; font-size:.9rem; }

  /* About: belief and milestone lists as a 2 × 2 grid of tiles */
  .ministry-directory--tiles{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-auto-rows:1fr; }
  .ministry-directory--tiles .ministry-row{
    grid-template-columns:auto 1fr; grid-template-areas:"num icon" "body body"; align-content:start;
    row-gap:.6rem; padding:1.1rem .9rem 1.25rem;
  }
  .ministry-directory--tiles .ministry-row:nth-child(odd){ border-right:1px solid var(--rule); padding-left:0; }
  .ministry-directory--tiles .ministry-num{ grid-area:num; font-size:1.35rem; }
  .ministry-directory--tiles .ministry-row .ministry-icon{ display:block; grid-area:icon; justify-self:end; width:20px; height:20px; margin:0; }
  .ministry-directory--tiles .ministry-row > div{ grid-area:body; }
  .ministry-directory--tiles .ministry-row h3{ font-size:1.05rem; line-height:1.2; text-wrap:balance; }
  .ministry-directory--tiles .ministry-row p{ font-size:.82rem; line-height:1.5; }

  /* About: tighter statements */
  .about-split{ gap:1.75rem; }
  .about-statements{ gap:1.75rem; }
  .about-statement{ padding-left:1.1rem; }
  .about-statement h2{ font-size:1.5rem; margin:.4rem 0 .75rem; }
  .about-statement p:not(.eyebrow){ font-size:.95rem; }
  .about-note{ font-size:1.05rem; margin-top:1.75rem; }
  .photo-band--short img{ height:170px; }
  .section-head p:not(.eyebrow){ font-size:.95rem; }

  /* Swipe rows */
  .m-swipe{
    display:flex; gap:.85rem; position:relative;
    overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory;
    margin-inline:calc(-1 * clamp(1.25rem, 4vw, 2.5rem));
    padding:.25rem clamp(1.25rem, 4vw, 2.5rem) 1.25rem;
    scroll-padding-inline:clamp(1.25rem, 4vw, 2.5rem);
    scrollbar-width:none;
  }
  .m-swipe::-webkit-scrollbar{ display:none; }
  .m-swipe > *{ flex:0 0 84%; min-width:0; height:auto; scroll-snap-align:start; }
  .m-swipe > .reveal-armed{ opacity:1; transform:none; }
  .m-swipe .card:hover{ transform:none; box-shadow:none; }
  .m-swipe .sermon-thumb{ margin-bottom:.9rem; }
  .swipe-dots{ display:flex; justify-content:center; gap:.45rem; margin-top:.25rem; }
  .swipe-dots button{
    position:relative; width:7px; height:7px; padding:0; border:0; border-radius:999px;
    background:var(--rule); cursor:pointer; transition:width .25s ease, background .25s ease;
  }
  .swipe-dots button::before{ content:''; position:absolute; inset:-10px -5px; }
  .swipe-dots button.is-active{ width:22px; background:var(--flame-1); }

  /* Numbered lists: number + text, no squeezed middle column */
  .ministry-row{ grid-template-columns:2.3rem minmax(0,1fr); column-gap:.85rem; padding:1.3rem 0; margin:0; }
  .ministry-row .ministry-icon{ display:none; }
  .ministry-num{ font-size:1.5rem; min-width:0; }
  .ministry-row h3{ font-size:1.2rem; margin:0 0 .3rem; }
  .ministry-row p{ font-size:.9rem; line-height:1.55; }
  .series-head{ column-gap:.85rem; }
  .series-head .ministry-num{ font-size:1.9rem; }

  /* Ministries: the lead photo card gets room for its text */
  .ministry-feature--lg{ min-height:380px; }
  .ministry-feature::after{ background:linear-gradient(180deg, rgba(22,16,51,0) 25%, rgba(22,16,51,.92) 100%); }

  /* Leaders side by side */
  .leaders-grid{ grid-template-columns:1fr 1fr; gap:1rem; }
  .leaders-grid .avatar{ width:104px; height:104px; }
  .leaders-grid h3{ font-size:1rem; line-height:1.25; text-wrap:balance; }

  /* Forms: 16px text stops iPhones zooming in; full-width submit */
  .field input, .field textarea{ font-size:16px; }
  .form-grid.two.keep-two{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:.85rem; }
  .field input{ width:100%; min-width:0; }
  #contact-form button[type="submit"], .pt-form button[type="submit"]{ width:100%; }
}

@media (max-width:759px){
  /* Prayer page contacts: compact rows with a clear Call button */
  .pt-contacts{ gap:.75rem; }
  .pt-contact{
    display:grid; grid-template-columns:52px minmax(0,1fr) auto; grid-template-areas:"pic name btn" "pic num btn";
    align-items:center; column-gap:1rem; row-gap:.1rem; padding:1rem 1.1rem; text-align:left;
  }
  .pt-contact > :first-child{ grid-area:pic; justify-self:center; margin:0; }
  .pt-contact-avatar{ width:52px; height:52px; }
  .pt-contact .ministry-tag{ display:none; }
  .pt-contact strong{ grid-area:name; font-size:1.05rem; margin:0; }
  .pt-contact .ministry-tag + strong{ margin-top:0; }
  .pt-contact span:last-child{ grid-area:num; font-size:.88rem; }
  .pt-contact[href^="tel"]::after{
    content:'Call'; grid-area:btn; padding:.6rem 1.1rem; background:var(--ink); color:var(--white);
    font-size:.75rem; font-weight:600; letter-spacing:.06em;
  }
  /* Email: a dark card with a gold call to action under the address */
  .pt-contact--email{
    grid-template-columns:52px minmax(0,1fr); grid-template-areas:"pic name" "pic num" "btn btn";
    row-gap:.15rem; padding:1.2rem 1.1rem 1.1rem; color:var(--white);
    border-color:var(--ink); border-top-color:var(--flame-2);
    background:
      radial-gradient(ellipse 260px 180px at 100% 0%, rgba(255,106,0,.28), transparent 70%),
      radial-gradient(ellipse 220px 160px at 0% 100%, rgba(245,179,1,.12), transparent 70%),
      var(--ink);
  }
  .pt-contact--email svg{
    width:52px; height:52px; padding:14px; box-sizing:border-box; border-radius:50%;
    color:var(--flame-2); border:1px solid rgba(245,179,1,.55); background:rgba(255,255,255,.05);
  }
  .pt-contact--email strong{ color:var(--white); }
  .pt-contact--email span:last-child{ color:var(--band); }
  .pt-contact--email::after{
    content:'Send Us An Email'; grid-area:btn; margin-top:1rem; padding:.8rem 1rem; text-align:center;
    background:var(--band); color:var(--ink); font-size:.78rem; font-weight:700; letter-spacing:.06em;
  }
}

