/* GPCI v14 Template Layout Reset
   Structure inspired by the supplied Wix Virtual Tours template page.
   The layout copies placement discipline, not brand assets.
   GPCI colours, content, logo and abstract background are preserved.
*/

:root {
  --navy: #0B2A55;
  --navy-dark: #071C38;
  --navy-soft: #113D78;
  --gold: #C9A227;
  --gold-light: #F2D26A;
  --cream: #FFF8E8;
  --cream-2: #F7F0DF;
  --paper: #FFFFFF;
  --text: #17243A;
  --muted: #637189;
  --line: rgba(15, 38, 72, 0.13);
  --shadow: 0 18px 44px rgba(10, 36, 73, 0.12);
  --shadow-soft: 0 10px 26px rgba(10, 36, 73, 0.08);
  --radius: 18px;
  --radius-lg: 28px;
  --ease: cubic-bezier(.22,1,.36,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

/* Sitewide anchor offset. Same-page anchor targets clear the sticky header so
   their heading is never hidden beneath it. The header is 74px on desktop and
   68px on phones, so 90px clears both with comfortable breathing space and no
   excessive gap. Layout and normal margins are unaffected. */
:root { --site-header-offset: 90px; }
[id] { scroll-margin-top: var(--site-header-offset); }
body {
  margin: 0;
  background: #fff;
  color: var(--text);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 15.5px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg { max-width: 100%; height: auto; }
a { color: inherit; }
.container { width: min(1120px, calc(100% - 44px)); margin-inline: auto; }
.skip-link { position: absolute; top: -100px; left: 1rem; z-index: 9999; background: #fff; color: var(--navy); padding: .75rem 1rem; border-radius: 999px; }
.skip-link:focus { top: 1rem; }

/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--navy-dark);
  color: #fff;
  border-bottom: 1px solid rgba(201, 162, 39, .28);
  box-shadow: 0 8px 22px rgba(0, 10, 26, .22);
}
.header-inner {
  min-height: 74px;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 1.25rem;
}
.brand { display: flex; align-items: center; gap: .72rem; text-decoration: none; min-width: 0; }
.brand img { width: 46px; height: 46px; object-fit: contain; }
.brand-text { display: grid; gap: .15rem; line-height: 1; min-width: 0; }
.brand-name { font-family: Fraunces, Georgia, serif; color: #fff; font-size: clamp(1.02rem, 1.15vw, 1.22rem); font-weight: 650; letter-spacing: -.01em; white-space: nowrap; }
.site-nav { display: flex; justify-content: flex-end; align-items: center; gap: 1rem; }
.nav-list { display: flex; justify-content: flex-end; align-items: center; gap: .95rem; margin: 0; padding: 0; list-style: none; }
.nav-list a { position: relative; display: inline-flex; align-items: center; min-height: 38px; padding: 0; color: rgba(255,255,255,.88); font-size: .81rem; font-weight: 700; text-decoration: none; line-height: 1; }
.nav-list a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 5px; height: 2px; background: var(--gold-light); border-radius: 999px; transform: scaleX(0); opacity: 0; transition: transform .2s var(--ease), opacity .2s var(--ease); }
.nav-list a:hover, .nav-list a:focus-visible, .nav-list .active a { color: #fff; }
.nav-list a:hover::after, .nav-list a:focus-visible::after, .nav-list .active a::after { transform: scaleX(1); opacity: 1; }
.nav-actions { display: flex; align-items: center; gap: .55rem; }
.nav-toggle { display: none; color: #fff; background: transparent; border: 1px solid rgba(242,210,106,.46); border-radius: 999px; padding: .55rem .85rem; font-weight: 800; }

/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .42rem; min-height: 40px; padding: .68rem 1rem; border-radius: 999px; border: 1px solid transparent; font-size: .86rem; font-weight: 800; line-height: 1; text-decoration: none; cursor: pointer; transition: transform .18s var(--ease), box-shadow .18s var(--ease), background .18s var(--ease), border-color .18s var(--ease); }
.btn:hover, .btn:focus-visible { transform: translateY(-2px); }
.btn-gold, .btn-give { background: linear-gradient(135deg, #F6DA76, var(--gold)); color: var(--navy-dark); border-color: rgba(255,235,170,.78); box-shadow: 0 10px 22px rgba(201,162,39,.22); }
.btn-gold:hover, .btn-give:hover, .btn-gold:focus-visible, .btn-give:focus-visible { box-shadow: 0 14px 28px rgba(201,162,39,.28); }
.btn-watch, .btn-hero-ghost { color: #fff; background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.34); }
.btn-ghost, .btn-ghost-navy, .btn-navy { color: var(--navy-dark); background: #fff; border-color: rgba(11,42,85,.18); box-shadow: 0 8px 18px rgba(11,42,85,.06); }
.btn-row, .hero-cta { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; }

/* Template inspired hero layout: text block left, visual panel right */
.hero { position: relative; overflow: hidden; isolation: isolate; }
.hero-bg, .hero-scrim, .hero-sweep { display: none; }
.hero-home {
  background: linear-gradient(180deg, var(--cream) 0%, #fff 100%);
  min-height: auto;
  padding: clamp(3.8rem, 7vw, 6.5rem) 0;
  color: var(--text);
}
.hero-home .hero-inner {
  width: min(1120px, calc(100% - 44px));
  margin-inline: auto;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(420px, 1.12fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
  text-align: left;
}
.hero-home .hero-inner::after {
  content: "";
  display: block;
  min-height: clamp(380px, 46vw, 560px);
  border-radius: 26px;
  background:
    linear-gradient(180deg, rgba(7,28,56,.18), rgba(7,28,56,.30)),
    url('/assets/images/bg/home.jpg') center / cover no-repeat;
  border: 1px solid rgba(201,162,39,.32);
  box-shadow: 0 28px 70px rgba(7,28,56,.20);
}
.hero-logo { width: 64px; height: auto; margin: 0 0 1.1rem; filter: drop-shadow(0 8px 18px rgba(201,162,39,.18)); }
.hero-title { margin: 0; color: var(--navy-dark); font-family: Fraunces, Georgia, serif; line-height: 1.05; letter-spacing: -.032em; }
.ht-small { display: block; margin-bottom: .45rem; color: var(--gold); font-family: Inter, system-ui, sans-serif; font-size: .8rem; font-weight: 900; letter-spacing: .22em; text-transform: uppercase; line-height: 1.2; }
.ht-main { display: block; max-width: 620px; font-size: clamp(2.65rem, 4.8vw, 4.65rem); font-weight: 650; }
.hero-rule { width: 150px; height: 1px; margin: 1.4rem 0 .95rem; background: linear-gradient(90deg, var(--gold), transparent); }
.hero-lower { margin: 0; color: var(--navy); font-size: .94rem; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.home-lead, .hero-lead { max-width: 580px; margin: .95rem 0 0; color: var(--muted); font-size: 1rem; line-height: 1.7; }
.hero-home .hero-cta { margin-top: 1.7rem; }
.hero-scroll-cue { display: none; }

/* Inner page hero follows the same text plus visual panel discipline */
.hero-page, .hero-policy {
  background: #fff;
  color: var(--text);
  min-height: auto;
  padding: clamp(3.2rem, 6vw, 5.4rem) 0;
  border-bottom: 1px solid rgba(11,42,85,.08);
}
.hero-page .hero-inner, .hero-policy .hero-inner {
  width: min(1120px, calc(100% - 44px));
  margin-inline: auto;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(380px, 1fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
  text-align: left;
}
.hero-page .hero-inner::after, .hero-policy .hero-inner::after {
  content: "";
  min-height: 320px;
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(7,28,56,.12), rgba(7,28,56,.26)), url('/assets/images/bg/home.jpg') center / cover no-repeat;
  border: 1px solid rgba(201,162,39,.25);
  box-shadow: var(--shadow);
}
.hero-bg-newhere .hero-inner::after { background-image: linear-gradient(180deg, rgba(7,28,56,.06), rgba(7,28,56,.18)), url('/assets/images/bg/new-here.jpg'); }
.hero-bg-teaching .hero-inner::after { background-image: linear-gradient(180deg, rgba(7,28,56,.10), rgba(7,28,56,.24)), url('/assets/images/bg/teaching.jpg'); }
.hero-bg-community .hero-inner::after { background-image: linear-gradient(180deg, rgba(7,28,56,.10), rgba(7,28,56,.24)), url('/assets/images/bg/community.jpg'); }
.hero-bg-locations .hero-inner::after { background-image: linear-gradient(180deg, rgba(7,28,56,.10), rgba(7,28,56,.24)), url('/assets/images/bg/locations.jpg'); }
.hero-bg-connect .hero-inner::after { background-image: linear-gradient(180deg, rgba(7,28,56,.10), rgba(7,28,56,.24)), url('/assets/images/bg/connect.jpg'); }
.hero-bg-about .hero-inner::after { background-image: linear-gradient(180deg, rgba(7,28,56,.06), rgba(7,28,56,.16)), url('/assets/images/bg/about.jpg'); }
.hero-bg-give .hero-inner::after { background-image: linear-gradient(180deg, rgba(7,28,56,.10), rgba(7,28,56,.24)), url('/assets/images/bg/give.jpg'); }
.hero-bg-online .hero-inner::after { background-image: linear-gradient(180deg, rgba(7,28,56,.10), rgba(7,28,56,.24)), url('/assets/images/bg/online.jpg'); }
.hero-page .eyebrow, .hero-policy .eyebrow { margin-bottom: .7rem; }
.hero-page h1, .hero-policy h1 { margin: 0; color: var(--navy-dark); font-family: Fraunces, Georgia, serif; font-size: clamp(2.25rem, 4.3vw, 4rem); font-weight: 650; line-height: 1.07; letter-spacing: -.032em; max-width: 620px; }
.hero-page .hero-lead, .hero-policy .hero-lead { color: var(--muted); }
.hero-page .hero-cta, .hero-policy .hero-cta { margin-top: 1.45rem; }
.hero-page .btn-ghost, .hero-policy .btn-ghost { color: var(--navy-dark); background: #fff; border-color: rgba(11,42,85,.18); }

/* Section rhythm */
.band { padding: clamp(3.5rem, 6vw, 5.8rem) 0; background: #fff; }
.band-grey { background: var(--cream); }
.band + .band { border-top: 1px solid rgba(11,42,85,.06); }
.band-head { max-width: 760px; margin: 0 auto clamp(2rem, 4vw, 3rem); text-align: center; }
.eyebrow { margin: 0 0 .6rem; color: var(--gold); font-size: .74rem; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
h1, h2, h3 { color: var(--navy-dark); }
.band-head h2, .band h2, .prose h2 { margin: 0 0 .75rem; font-family: Fraunces, Georgia, serif; font-weight: 650; line-height: 1.15; letter-spacing: -.024em; }
.band-head h2 { font-size: clamp(1.95rem, 3.4vw, 3.25rem); }
.band h2 { font-size: clamp(1.7rem, 2.8vw, 2.55rem); }
h3 { font-size: clamp(1.1rem, 1.55vw, 1.32rem); line-height: 1.2; }
p { margin-top: 0; }
.band-sub, .feature-text, .place-meta, .branch-sub, .person-role, .founder-role, .notice p, .prose p, .sunday-sub { color: var(--muted); }
.center { text-align: center; }

/* Feature card arrangement like a clean template */
.grid-2, .grid-3, .grid-4 { display: grid; gap: 1rem; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.feature, .place-card, .person, .founder-mini, .netcard, .branch-card, .bank-card, .teach-latest, .teach-series, .form-card, .notice, .quote-block, .prose {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
}
.feature, .place-card, .netcard, .branch-card, .teach-latest, .teach-series, .form-card, .notice { padding: clamp(1.1rem, 2.2vw, 1.6rem); }
.feature { min-height: 178px; display: flex; flex-direction: column; justify-content: space-between; text-decoration: none; }
.feature-navy, .feature-gold { background: #fff; color: var(--text); }
.feature-navy .feature-title, .feature-navy .feature-text, .feature-navy .feature-label, .feature-navy .feature-go { color: inherit; }
.feature-title, .place-name, .branch-name, .founder-name, .f-name { color: var(--navy-dark); font-family: Fraunces, Georgia, serif; font-weight: 650; line-height: 1.12; }
.feature-title { font-size: 1.28rem; }
.feature-label, .feature-go { color: var(--gold); font-size: .78rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.feature-text { font-size: .95rem; line-height: 1.6; }
.feature-ic, .teach-ic { color: var(--gold); margin-bottom: .8rem; }
.feature, .place-card, .netcard, .branch-card, .teach-latest, .teach-series, .btn, .person, .founder-mini { transition: transform .22s var(--ease), box-shadow .22s var(--ease), border-color .22s var(--ease); }
.feature:hover, .feature:focus-visible, .place-card:hover, .place-card:focus-visible, .netcard:hover, .branch-card:hover, .teach-latest:hover, .teach-series:hover, .person:hover, .founder-mini:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: rgba(201,162,39,.30); }

/* Sunday and split panels */
.sunday-card, .founders-home, .founder-feature, .split-feature, .give-wrap, .teach-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.4rem, 3.5vw, 2.4rem); align-items: center; }
.sunday-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: clamp(1.4rem, 3vw, 2.6rem); box-shadow: var(--shadow); }
.sunday-card h2 { font-size: clamp(1.8rem, 3vw, 2.7rem); }
.sunday-facts, .detail-list, .times { display: grid; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.sunday-facts li, .detail-list li, .times li, .check-row { display: flex; gap: .85rem; align-items: flex-start; padding: .95rem; background: #F6F8FB; border: 1px solid rgba(11,42,85,.08); border-radius: 15px; }
.sf-ic, .acc-ic { display: grid; place-items: center; flex: 0 0 38px; width: 38px; height: 38px; border-radius: 50%; color: var(--gold); background: #fff; box-shadow: 0 8px 18px rgba(201,162,39,.14); }
.sf-ic svg, .feature-ic svg, .teach-ic svg { width: 22px; height: 22px; }

/* Teaching panels */
.teach-latest { background: var(--navy-dark); color: #fff; border-color: rgba(201,162,39,.24); }
.teach-latest h3, .teach-latest p, .teach-latest .eyebrow { color: #fff; }
.teach-series { background: #fff; }

/* People and media */
.founder-mini, .person { padding: 1rem; }
.founder-photo, .person-photo, .branch-photo, .portrait-editorial { overflow: hidden; border-radius: 16px; background: var(--navy-dark); border: 1px solid rgba(201,162,39,.26); }
.founder-photo img, .person-photo img, .branch-photo img, .portrait-editorial img { display: block; width: 100%; height: auto; }
.founder-mono, .person-mono, .branch-mono, .founder-mono-lg { display: grid; place-items: center; min-height: 220px; color: var(--gold-light); background: linear-gradient(135deg, var(--navy-dark), var(--navy-soft)); font-weight: 900; }

/* Forms and accordions */
.gpci-form, .form-card form { display: grid; gap: 1rem; }
.form-card, .gpci-form { padding: clamp(1.2rem, 2.6vw, 2rem); }
label { display: grid; gap: .4rem; color: var(--navy-dark); font-weight: 800; }
input, textarea, select { width: 100%; min-height: 46px; padding: .8rem .95rem; border: 1px solid rgba(11,42,85,.18); border-radius: 12px; background: #fff; color: var(--text); font: inherit; }
textarea { min-height: 140px; }
input:focus, textarea:focus, select:focus { outline: none; border-color: rgba(201,162,39,.72); box-shadow: 0 0 0 4px rgba(201,162,39,.14); }
.privacy-note, .req { color: var(--muted); font-size: .92rem; }
.accordion { display: grid; gap: .7rem; }
.acc-item { background: #fff; border: 1px solid var(--line); border-radius: 15px; overflow: hidden; }
.acc-trig { width: 100%; display: flex; align-items: center; justify-content: space-between; padding: 1rem; background: transparent; border: 0; color: var(--navy-dark); text-align: left; cursor: pointer; font-weight: 850; }
.acc-panel { padding: 0 1rem 1rem; color: var(--muted); }

/* Dark callout section used sparingly */
.band-final, .band-scripture { background: var(--navy-dark); color: #fff; }
.band-final h2, .band-final p, .band-scripture h2, .band-scripture p, .band-scripture footer, .band-scripture .scripture { color: #fff; }

/* Footer */
.site-footer { background: var(--navy-dark); color: rgba(255,255,255,.82); }
.footer-cta { border-bottom: 1px solid rgba(201,162,39,.22); }
.footer-cta-inner, .footer-main, .footer-bottom { padding-block: clamp(1.4rem, 3vw, 2.25rem); }
.footer-main { display: grid; grid-template-columns: 1.2fr repeat(3, 1fr); gap: 1.4rem; }
.footer-main h2, .footer-main h3, .f-name { color: #fff; }
.footer-main a, .footer-bottom a { color: rgba(242,210,106,.94); text-decoration: none; }
.f-founder { color: rgba(255,255,255,.68); font-size: .92rem; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); display: flex; flex-wrap: wrap; justify-content: space-between; gap: .8rem; font-size: .88rem; }

/* Motion */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .58s var(--ease), transform .58s var(--ease); }
.reveal.in { opacity: 1; transform: none; }
@keyframes fadePanel { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
.hero-home .hero-logo, .hero-home .hero-title, .hero-home .hero-lower, .hero-home .home-lead, .hero-home .hero-cta { animation: fadePanel .62s var(--ease) both; }
.hero-home .hero-title { animation-delay: .08s; }
.hero-home .hero-lower { animation-delay: .16s; }
.hero-home .home-lead { animation-delay: .22s; }
.hero-home .hero-cta { animation-delay: .28s; }

/* Responsive */
@media (max-width: 1080px) {
  .nav-toggle { display: inline-flex; justify-self: end; }
  .site-nav { position: absolute; top: 100%; left: 0; right: 0; display: grid; gap: 1rem; padding: 1rem 1.35rem 1.2rem; background: var(--navy-dark); border-bottom: 1px solid rgba(201,162,39,.24); box-shadow: 0 18px 34px rgba(0,10,26,.23); opacity: 0; visibility: hidden; transform: translateY(-8px); pointer-events: none; transition: opacity .22s var(--ease), transform .22s var(--ease), visibility .22s; }
  .site-nav[data-open="true"] { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
  .nav-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .25rem 1rem; }
  .nav-list a { justify-content: center; }
  .nav-actions { justify-content: center; }
}
@media (max-width: 900px) {
  .hero-home .hero-inner, .hero-page .hero-inner, .hero-policy .hero-inner { grid-template-columns: 1fr; }
  .hero-home .hero-inner::after, .hero-page .hero-inner::after, .hero-policy .hero-inner::after { min-height: 330px; order: -1; }
  .sunday-card, .founders-home, .founder-feature, .split-feature, .give-wrap, .teach-split, .grid-2 { grid-template-columns: 1fr; }
  .grid-3, .grid-4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .footer-main { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .container, .hero-home .hero-inner, .hero-page .hero-inner, .hero-policy .hero-inner { width: min(100% - 28px, 1120px); }
  .header-inner { min-height: 68px; }
  .brand img { width: 40px; height: 40px; }
  .brand-name { max-width: 218px; overflow: hidden; text-overflow: ellipsis; font-size: .98rem; }
  .hero-home { padding: 2.8rem 0 3.4rem; }
  .hero-logo { width: 54px; }
  .ht-main { font-size: clamp(2.2rem, 11vw, 3.2rem); }
  .hero-page h1, .hero-policy h1 { font-size: clamp(2rem, 10vw, 3rem); }
  .hero-home .hero-inner::after, .hero-page .hero-inner::after, .hero-policy .hero-inner::after { min-height: 250px; border-radius: 20px; }
  .grid-3, .grid-4, .nav-list, .nav-actions, .footer-main { grid-template-columns: 1fr; }
  .hero-cta .btn, .nav-actions .btn { width: 100%; }
  .footer-bottom { display: grid; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}


/* =========================================================
   GPCI v15 Elite Checked Layout Corrections
   Purpose: exact structure discipline, text visibility, controlled placement.
   ========================================================= */
:root{
  --gold-text:#8A6500;
  --hero-panel-shadow:0 24px 60px rgba(7,28,56,.18);
}

/* Stop pseudo-image layout. v15 uses real .hero-copy and .hero-media columns. */
.hero-home .hero-inner::after,
.hero-page .hero-inner::after,
.hero-policy .hero-inner::after{content:none !important;display:none !important;}

.hero-copy{min-width:0;}
.hero-media{display:block;min-width:0;}

/* Header remains simple, but slightly lighter and more spacious. */
.site-header{background:#071C38;border-bottom:1px solid rgba(201,162,39,.22);box-shadow:0 6px 18px rgba(0,10,26,.18);}
.header-inner{min-height:70px;}
.brand img{width:42px;height:42px;}
.brand-name{font-size:1.05rem;}
.nav-list{gap:.85rem;}
.nav-list a{font-size:.80rem;font-weight:700;min-height:36px;}
.nav-actions .btn{min-height:38px;padding:.58rem .88rem;font-size:.82rem;}

/* Hero home: actual Wix-inspired structure, not a banner. */
.hero-home{background:linear-gradient(180deg,#FFF8E8 0%,#FFFFFF 100%) !important;color:var(--text);padding:clamp(3.8rem,7vw,6.4rem) 0;min-height:auto;}
.hero-home .hero-bg,.hero-home .hero-sweep,.hero-home .hero-scrim{display:none !important;}
.hero-home .hero-inner{width:min(1120px,calc(100% - 44px));margin-inline:auto;padding:0;display:grid;grid-template-columns:minmax(0,.82fr) minmax(420px,1.18fr);gap:clamp(2.2rem,5vw,4.25rem);align-items:center;text-align:left;}
.hero-home .hero-copy{display:block;max-width:560px;}
.hero-home .hero-media{min-height:clamp(390px,42vw,560px);border-radius:30px;background:linear-gradient(180deg,rgba(7,28,56,.10),rgba(7,28,56,.26)),url('/assets/images/bg/home.jpg') center/cover no-repeat;border:1px solid rgba(201,162,39,.30);box-shadow:var(--hero-panel-shadow);position:relative;overflow:hidden;}
.hero-home .hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 20%,rgba(255,230,150,.10) 48%,transparent 72%);}
.hero-logo{width:58px;margin:0 0 1rem;filter:drop-shadow(0 7px 16px rgba(201,162,39,.16));}
.hero-title{color:#071C38;text-shadow:none;line-height:1.05;letter-spacing:-.027em;}
.ht-small{color:var(--gold-text);font-size:.75rem;letter-spacing:.19em;margin-bottom:.45rem;}
.ht-main{font-size:clamp(2.35rem,4.1vw,3.95rem);max-width:560px;font-weight:650;}
.hero-rule{width:132px;margin:1.25rem 0 .9rem;background:linear-gradient(90deg,var(--gold),transparent);}
.hero-lower{color:#0B2A55;font-size:.86rem;letter-spacing:.16em;}
.hero-lead,.home-lead{font-size:1rem;line-height:1.7;color:#59677c;max-width:520px;margin:.9rem 0 0;}
.hero-home .hero-cta{margin-top:1.55rem;gap:.65rem;justify-content:flex-start;}
.hero-home .btn-hero-ghost{background:#fff;color:#071C38;border-color:rgba(11,42,85,.20);box-shadow:0 8px 18px rgba(11,42,85,.06);}

/* Inner page heroes: same discipline, smaller than homepage. */
.hero-page,.hero-policy{background:#fff !important;color:var(--text);padding:clamp(3.3rem,6vw,5.4rem) 0;border-bottom:1px solid rgba(11,42,85,.08);min-height:auto;}
.hero-page .hero-bg,.hero-page .hero-scrim,.hero-page .hero-sweep,.hero-policy .hero-bg,.hero-policy .hero-scrim,.hero-policy .hero-sweep{display:none !important;}
.hero-page .hero-inner,.hero-policy .hero-inner{width:min(1120px,calc(100% - 44px));margin-inline:auto;padding:0;display:grid;grid-template-columns:minmax(0,.85fr) minmax(360px,1fr);gap:clamp(2rem,5vw,4rem);align-items:center;text-align:left;}
.hero-page .hero-copy,.hero-policy .hero-copy{max-width:590px;}
.hero-page .hero-media,.hero-policy .hero-media{min-height:300px;border-radius:26px;background:linear-gradient(180deg,rgba(7,28,56,.10),rgba(7,28,56,.24)),url('/assets/images/bg/home.jpg') center/cover no-repeat;border:1px solid rgba(201,162,39,.24);box-shadow:var(--shadow);}
.hero-bg-newhere .hero-media{background-image:linear-gradient(180deg,rgba(7,28,56,.05),rgba(7,28,56,.16)),url('/assets/images/bg/new-here.jpg');}
.hero-bg-teaching .hero-media{background-image:linear-gradient(180deg,rgba(7,28,56,.09),rgba(7,28,56,.22)),url('/assets/images/bg/teaching.jpg');}
.hero-bg-community .hero-media{background-image:linear-gradient(180deg,rgba(7,28,56,.09),rgba(7,28,56,.22)),url('/assets/images/bg/community.jpg');}
.hero-bg-locations .hero-media{background-image:linear-gradient(180deg,rgba(7,28,56,.09),rgba(7,28,56,.22)),url('/assets/images/bg/locations.jpg');}
.hero-bg-connect .hero-media{background-image:linear-gradient(180deg,rgba(7,28,56,.09),rgba(7,28,56,.22)),url('/assets/images/bg/connect.jpg');}
.hero-bg-about .hero-media{background-image:linear-gradient(180deg,rgba(7,28,56,.04),rgba(7,28,56,.14)),url('/assets/images/bg/about.jpg');}
.hero-bg-give .hero-media{background-image:linear-gradient(180deg,rgba(7,28,56,.09),rgba(7,28,56,.22)),url('/assets/images/bg/give.jpg');}
.hero-bg-online .hero-media{background-image:linear-gradient(180deg,rgba(7,28,56,.09),rgba(7,28,56,.22)),url('/assets/images/bg/online.jpg');}
.hero-page .eyebrow,.hero-policy .eyebrow{color:var(--gold-text);margin-bottom:.65rem;}
.hero-page h1,.hero-policy h1{color:#071C38;font-size:clamp(2.05rem,3.75vw,3.45rem);line-height:1.09;letter-spacing:-.028em;max-width:590px;}
.hero-page .hero-lead,.hero-policy .hero-lead{font-size:1rem;color:#59677c;max-width:560px;}
.hero-page .hero-cta,.hero-policy .hero-cta{margin-top:1.35rem;justify-content:flex-start;}
.hero-page .btn-ghost,.hero-policy .btn-ghost{background:#fff;color:#071C38;border-color:rgba(11,42,85,.18);}

/* Text visibility and elegant rhythm. */
body{font-size:15.5px;color:#17243A;background:#fff;}
.eyebrow{color:var(--gold-text);font-size:.72rem;letter-spacing:.16em;}
.band{padding:clamp(3.3rem,5.4vw,5.2rem) 0;background:#fff;}
.band-grey{background:#FFF8E8;}
.band-head{max-width:720px;margin-bottom:clamp(1.8rem,3.4vw,2.7rem);}
.band-head h2{font-size:clamp(1.9rem,3.05vw,2.95rem);}
.band h2{font-size:clamp(1.65rem,2.55vw,2.35rem);}
h3{font-size:clamp(1.08rem,1.45vw,1.25rem);}
p,.prose p,.prose li{font-size:1rem;line-height:1.7;}
.band-sub,.feature-text,.place-meta,.branch-sub,.person-role,.founder-role,.notice p,.prose p,.sunday-sub{color:#59677c;}

/* Cards should be readable, not heavy blue blocks. */
.feature,.place-card,.netcard,.branch-card,.teach-series,.form-card,.notice,.quote-block,.prose,.sunday-card,.person,.founder-mini{background:#fff;border:1px solid rgba(15,38,72,.12);box-shadow:0 10px 26px rgba(10,36,73,.07);}
.feature-navy,.feature-gold{background:#fff;color:#17243A;}
.feature-navy .feature-title,.feature-navy .feature-text,.feature-navy .feature-label,.feature-navy .feature-go{color:inherit;}
.feature-label,.feature-go{color:var(--gold-text);}
.feature{min-height:168px;}
.feature-title{font-size:1.22rem;}
.teach-latest{background:#071C38;color:#fff;border-color:rgba(201,162,39,.25);}
.teach-latest h3,.teach-latest p,.teach-latest .eyebrow{color:#fff;}
.teach-latest .btn-navy{background:#fff;color:#071C38;border-color:#fff;}

/* Keep dark final CTA legible. */
.band-final,.band-scripture{background:#071C38;color:#fff;}
.band-final h2,.band-final p,.band-final .eyebrow,.band-scripture h2,.band-scripture p,.band-scripture footer,.band-scripture .scripture{color:#fff;}
.band-final .btn-ghost,.band-scripture .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.45);}

/* Forms and lists. */
input,textarea,select{font-size:1rem;color:#17243A;background:#fff;}
label{color:#071C38;}
.sunday-facts li,.detail-list li,.times li,.check-row{background:#F6F8FB;color:#17243A;}

/* Responsive placement. */
@media(max-width:980px){
  .hero-home .hero-inner,.hero-page .hero-inner,.hero-policy .hero-inner{grid-template-columns:1fr;gap:1.7rem;text-align:left;}
  .hero-home .hero-copy,.hero-page .hero-copy,.hero-policy .hero-copy{max-width:680px;}
  .hero-home .hero-media{min-height:340px;}
  .hero-page .hero-media,.hero-policy .hero-media{min-height:260px;}
  .site-nav{gap:.75rem;}
}
@media(max-width:580px){
  .container,.hero-home .hero-inner,.hero-page .hero-inner,.hero-policy .hero-inner{width:min(100% - 30px,1120px);}
  .hero-home{padding:3rem 0 3.5rem;}
  .hero-page,.hero-policy{padding:2.7rem 0 3.2rem;}
  .ht-main{font-size:clamp(2.1rem,10.5vw,3.05rem);}
  .hero-page h1,.hero-policy h1{font-size:clamp(2rem,9vw,2.85rem);}
  .hero-home .hero-media{min-height:280px;border-radius:22px;}
  .hero-page .hero-media,.hero-policy .hero-media{min-height:220px;border-radius:22px;}
  .hero-cta .btn{width:100%;}
  .brand-name{max-width:215px;overflow:hidden;text-overflow:ellipsis;}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important;}
  .reveal{opacity:1 !important;transform:none !important;}
}
