:root {
  --bg: #f4f1ea;
  --paper: #fffdf8;
  --ink: #161616;
  --muted: #67645f;
  --charcoal: #1d1d1b;
  --orange: #d96a2b;
  --orange-dark: #b9511c;
  --line: rgba(22,22,22,.14);
  --radius: 24px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "DM Sans", sans-serif;
  background: var(--bg);
  color: var(--ink);
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.container { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }

.site-header {
  position: fixed;
  top: 0; left: 0; width: 100%;
  z-index: 50;
  background: rgba(15,15,15,.30);
  backdrop-filter: blur(12px);
  color: #fff;
  transition: .3s ease;
}
.site-header.scrolled {
  background: rgba(15,15,15,.92);
  box-shadow: 0 8px 30px rgba(0,0,0,.18);
}
.nav-wrap {
  min-height: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.brand { display: flex; align-items: center; gap: 12px; }
.brand-mark {
  width: 42px; height: 42px; border-radius: 50%;
  background: var(--orange);
  display: grid; place-items: center;
  font: 800 20px/1 "Manrope", sans-serif;
}
.brand-text { display: grid; line-height: 1; }
.brand-text strong { font-family: "Manrope"; font-size: 17px; letter-spacing: .08em; }
.brand-text small { font-size: 9px; letter-spacing: .28em; margin-top: 5px; }
.main-nav { display: flex; gap: 28px; align-items: center; font-size: 14px; font-weight: 600; }
.main-nav a { opacity: .9; }
.main-nav a:hover { opacity: 1; }
.nav-cta {
  padding: 13px 18px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 999px;
}
.menu-toggle { display: none; background:none; border:0; padding:8px; }
.menu-toggle span { display:block; width:26px; height:2px; background:#fff; margin:6px 0; }

.hero {
  min-height: 92vh;
  position: relative;
  display: flex;
  align-items: end;
  color: #fff;
  background:
    linear-gradient(180deg, rgba(0,0,0,.16), rgba(0,0,0,.62)),
    url('images/worship.jpg') center 42%/cover;
}
.hero-overlay { position:absolute; inset:0; background: radial-gradient(circle at 70% 20%, transparent 0, rgba(0,0,0,.12) 52%, rgba(0,0,0,.25) 100%); }
.hero-content { position:relative; z-index:2; padding: 180px 0 100px; }
.eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .22em;
  margin: 0 0 18px;
}
.eyebrow.light { color: rgba(255,255,255,.72); }
.hero h1, h2 {
  font-family: "Manrope", sans-serif;
  letter-spacing: -.045em;
  line-height: .92;
  margin: 0;
}
.hero h1 { font-size: clamp(64px, 11vw, 150px); max-width: 980px; }
.hero-tagline { font-size: clamp(18px,2vw,25px); margin: 28px 0 0; font-weight: 500; }
.button-row { display:flex; gap:14px; margin-top:34px; flex-wrap:wrap; }
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height: 52px;
  padding: 0 24px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .04em;
  transition: .25s ease;
}
.btn-primary { background: var(--orange); color:#fff; }
.btn-primary:hover { background: var(--orange-dark); transform:translateY(-2px); }
.btn-ghost { border:1px solid rgba(255,255,255,.65); color:#fff; }
.btn-ghost:hover { background:#fff; color:#111; }
.btn-light { background:#fff; color:#111; }
.btn-light:hover { transform:translateY(-2px); }
.hero-scroll {
  position:absolute; right:30px; bottom:42px; z-index:2;
  font-size:10px; letter-spacing:.2em; opacity:.7;
  transform:rotate(90deg) translateX(40%);
  transform-origin:right center;
}

section { padding: 110px 0; }
.split { display:grid; grid-template-columns: 1fr 1fr; gap:90px; align-items:start; }
.welcome-section h2, .about-section h2, .ministries-section h2, .plan-section h2, .events-section h2, .give-section h2 { font-size: clamp(48px, 7vw, 96px); }
.intro-copy, .belief-copy { max-width: 520px; font-size: 20px; line-height: 1.55; color: var(--muted); }
.text-link { display:inline-flex; gap:12px; align-items:center; font-weight:700; margin-top:14px; font-size:13px; letter-spacing:.08em; }
.text-link span { transition:.2s; }
.text-link:hover span { transform:translateX(5px); }

.sunday-band { background: var(--orange); color:#fff; }
.sunday-grid { display:grid; grid-template-columns: 1.1fr 1fr auto; gap:60px; align-items:end; }
.sunday-band h2 { font-size: clamp(54px, 7vw, 90px); }
.service-details { display:grid; gap:24px; }
.detail { border-top:1px solid rgba(255,255,255,.28); padding-top:15px; }
.detail-label { display:block; font-size:10px; letter-spacing:.2em; opacity:.72; margin-bottom:7px; }
.detail strong { font-size:17px; }
.sunday-actions { display:grid; gap:16px; }
.text-link.light { color:#fff; }

.section-heading { max-width:900px; margin-bottom:55px; }
.section-heading > p:last-child { max-width:650px; font-size:19px; line-height:1.55; color:var(--muted); }
.row-heading { max-width:none; display:flex; justify-content:space-between; align-items:end; gap:60px; }
.row-heading > p { max-width:460px !important; margin:0; }
.values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.value-card {
  min-height:430px; padding:34px; border-radius:var(--radius);
  background:var(--paper); border:1px solid var(--line);
  display:flex; flex-direction:column;
}
.value-card.dark { background:var(--charcoal); color:#fff; }
.value-card.accent { background:var(--orange); color:#fff; }
.value-num { font-size:12px; opacity:.55; }
.value-card h3 { margin:auto 0 18px; font:800 clamp(34px,4vw,54px)/.92 "Manrope"; letter-spacing:-.04em; }
.value-card p { font-size:16px; line-height:1.55; max-width:320px; opacity:.82; }

.ministries-section { background: var(--paper); }
.ministry-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.ministry-card {
  min-height:290px; border-radius:22px; padding:22px;
  display:flex; justify-content:space-between; align-items:end;
  color:#fff; overflow:hidden; position:relative;
  background-size:cover; background-position:center;
  transition:.3s ease;
}
.ministry-card::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,.72)); }
.ministry-card span,.ministry-card b { position:relative; z-index:1; }
.ministry-card span { font:700 24px "Manrope"; }
.ministry-card b { font-size:22px; }
.ministry-card:hover { transform:translateY(-5px); }
.kids { background-image:url('images/kids.jpg');}
.youth { background-image:url('images/youth.jpg');}
.worship { background-image:url('images/worship.jpg');}
.men { background-image:url('images/men.jpg');}
.women { background-image:url('images/women.jpg');}
.families { background-image:url('images/pastor_ministry.jpg');}
.outreach { background-image:url('images/welcome_team.jpg');}
.groups { background-image:url('images/prayer.jpg');}

.plan-section { background:#e9e5db; }
.plan-grid { align-items:start; }
.lead { font-size:22px; color:var(--muted); margin:24px 0 30px; }
.faq-list details { border-top:1px solid var(--line); padding:24px 0; }
.faq-list summary { cursor:pointer; font:700 20px "Manrope"; list-style:none; position:relative; padding-right:35px; }
.faq-list summary::after { content:"+"; position:absolute; right:4px; top:0; font-size:26px; font-weight:400; }
.faq-list details[open] summary::after { content:"−"; }
.faq-list p { color:var(--muted); line-height:1.6; max-width:620px; }

.watch-section { background:var(--charcoal); color:#fff; }
.watch-section .section-heading > p:last-child { color:rgba(255,255,255,.65); }
.watch-section h2, .beliefs-section h2 { font-size:clamp(50px,7vw,94px); }
.featured-video {
  min-height:520px; border-radius:var(--radius); position:relative; overflow:hidden;
  background:
    linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.72)),
    url('images/prayer_hug.jpg') center/cover;
}
.play-button {
  position:absolute; inset:50% auto auto 50%; transform:translate(-50%,-50%);
  width:78px; height:78px; border-radius:50%; background:#fff; color:#111;
  display:grid; place-items:center; padding-left:4px;
}
.video-caption { position:absolute; left:34px; bottom:32px; }
.video-caption span,.meta { font-size:10px; letter-spacing:.18em; opacity:.68; }
.video-caption h3 { font:700 clamp(28px,4vw,48px) "Manrope"; margin:8px 0; }
.video-caption p { margin:0; opacity:.72; }
.message-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:20px; }
.message-card { padding-bottom:15px; }
.thumb { height:210px; border-radius:18px; background-size:cover; background-position:center; margin-bottom:16px; }
.thumb.one { background-image:url('images/pastor_ministry.jpg'); }
.thumb.two { background-image:url('images/worship.jpg'); }
.thumb.three { background-image:url('images/prayer.jpg'); }
.message-card h3 { font:700 22px "Manrope"; margin:6px 0 0; }

.events-grid { display:grid; gap:0; border-top:1px solid var(--line); }
.event-card {
  display:grid; grid-template-columns:110px 1fr auto; gap:28px; align-items:center;
  padding:28px 0; border-bottom:1px solid var(--line);
}
.event-date { display:grid; width:84px; text-align:center; }
.event-date span { font-size:10px; letter-spacing:.18em; }
.event-date strong { font:800 42px "Manrope"; }
.event-card h3 { font:700 28px "Manrope"; margin:6px 0; }
.event-card p { margin:0; color:var(--muted); }
.event-card > a { font-size:28px; }

.beliefs-section { background:var(--orange); color:#fff; }
.belief-copy { color:rgba(255,255,255,.84); }
.belief-copy .btn { margin-top:18px; }

.give-section { background:var(--paper); }

.final-cta {
  background:
    linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.62)),
    url('images/baptism.jpg') center 32%/cover;
  min-height:650px; display:flex; align-items:center; color:#fff;
}
.final-cta h2 { font-size:clamp(60px,9vw,120px); }
.final-cta p:not(.eyebrow) { font-size:21px; opacity:.85; }

.site-footer { background:#111; color:#fff; padding:80px 0 24px; }
.footer-grid { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:60px; }
.footer-tagline { font:700 28px/1.1 "Manrope"; margin-top:30px; color:rgba(255,255,255,.78); }
.site-footer h4 { font-size:10px; letter-spacing:.18em; color:rgba(255,255,255,.5); }
.site-footer p, .site-footer a { display:block; margin:10px 0; color:rgba(255,255,255,.76); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.12); margin-top:60px; padding-top:20px; display:flex; justify-content:space-between; font-size:12px; }

.reveal { opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity:1; transform:none; }

@media (max-width: 980px) {
  .main-nav {
    position:absolute; top:82px; left:0; width:100%;
    background:#111; padding:28px 20px 32px; display:none; flex-direction:column; align-items:flex-start;
  }
  .main-nav.open { display:flex; }
  .menu-toggle { display:block; }
  .split, .sunday-grid, .footer-grid { grid-template-columns:1fr; gap:45px; }
  .values-grid { grid-template-columns:1fr; }
  .ministry-grid { grid-template-columns:repeat(2,1fr); }
  .row-heading { display:grid; }
  .sunday-actions { max-width:260px; }
  .message-grid { grid-template-columns:1fr; }
}

@media (max-width: 640px) {
  .container { width:min(100% - 28px, 1180px); }
  .nav-wrap { min-height:72px; }
  .main-nav { top:72px; }
  .hero { min-height:86vh; }
  .hero-content { padding:140px 0 72px; }
  .hero h1 { font-size:58px; }
  .hero-scroll { display:none; }
  section { padding:80px 0; }
  .welcome-section h2, .about-section h2, .ministries-section h2, .plan-section h2, .events-section h2, .give-section h2 { font-size:48px; }
  .intro-copy,.belief-copy { font-size:18px; }
  .ministry-grid { grid-template-columns:1fr; }
  .ministry-card { min-height:240px; }
  .featured-video { min-height:430px; }
  .video-caption { left:22px; bottom:22px; right:22px; }
  .event-card { grid-template-columns:78px 1fr auto; gap:14px; }
  .event-card h3 { font-size:21px; }
  .footer-bottom { display:grid; gap:6px; }
}


.brand-logo-wrap {
  display: block;
  width: 220px;
  max-width: 31vw;
}
.brand-logo-wrap img {
  width: 100%;
  height: auto;
  display: block;
}
.footer-brand .brand-logo-wrap {
  width: 260px;
  max-width: 100%;
}


@media (max-width: 980px) {
  .brand-logo-wrap { width: 190px; max-width: 52vw; }
  .pastors-strip { grid-template-columns: 1fr; gap: 20px; }
  
}


.event-note {
  margin-top: 7px !important;
  font-weight: 700;
  color: var(--ink) !important;
}
.event-date.recurring {
  width: 92px;
}
.event-date.recurring span {
  font-size: 9px;
}
.event-date.recurring strong {
  font-size: 24px;
  margin-top: 4px;
}
.weekly-schedule {
  margin-top: 36px;
  border-top: 1px solid var(--line);
  padding-top: 24px;
  max-width: 430px;
}
.weekly-schedule > div {
  display: flex;
  justify-content: space-between;
  gap: 28px;
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
}
.weekly-schedule strong {
  font-size: 14px;
}
.weekly-schedule span {
  text-align: right;
  color: var(--muted);
  font-size: 14px;
}
.merch-section {
  background: var(--orange);
  color: #fff;
}
.merch-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 90px;
  align-items: end;
}
.merch-section h2 {
  font-size: clamp(56px, 8vw, 108px);
}
.merch-copy {
  max-width: 540px;
  font-size: 20px;
  line-height: 1.55;
  color: rgba(255,255,255,.86);
}
.merch-copy .btn {
  margin-top: 18px;
}
@media (max-width: 980px) {
  .merch-grid { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 640px) {
  .weekly-schedule > div {
    display: grid;
    gap: 5px;
  }
  .weekly-schedule span {
    text-align: left;
  }
}


.locations-section {
  background: #efeae0;
}

.featured-video {
  background: #000;
}
.featured-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.video-caption-overlay {
  pointer-events: none;
  text-shadow: 0 2px 12px rgba(0,0,0,.65);
}
.video-caption-overlay a {
  pointer-events: auto;
  color: #fff;
}
@media (max-width: 980px) {
  .location-grid { grid-template-columns: 1fr; }
}


.location-list {
  border-top: 1px solid var(--line);
}
.location-line {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 30px;
  align-items: center;
  padding: 30px 0;
  border-bottom: 1px solid var(--line);
}
.location-line h3 {
  font: 700 clamp(21px, 3vw, 34px)/1.2 "Manrope", sans-serif;
  margin: 7px 0 0;
  letter-spacing: -.03em;
}
.latest-sermon-grid {
  display: grid;
  grid-template-columns: 1.35fr .8fr;
  gap: 18px;
}
.sermon-video {
  position: relative;
  min-height: 520px;
  border-radius: var(--radius);
  overflow: hidden;
  background: #000;
}
.sermon-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.series-card {
  min-height: 520px;
  border-radius: var(--radius);
  overflow: hidden;
  background: #111;
  display: flex;
  flex-direction: column;
}
.series-card img {
  width: 100%;
  height: 58%;
  object-fit: cover;
}
.series-copy {
  padding: 26px;
  margin-top: auto;
}
.series-copy h3 {
  font: 800 clamp(30px, 4vw, 48px)/1 "Manrope", sans-serif;
  margin: 8px 0 12px;
}
.series-copy p:not(.meta) {
  color: rgba(255,255,255,.72);
}
@media (max-width: 980px) {
  .latest-sermon-grid { grid-template-columns: 1fr; }
  .sermon-video, .series-card { min-height: 420px; }
  .location-line { grid-template-columns: 1fr; }
}


.beliefs-page {
  background: var(--paper);
}
.beliefs-hero {
  padding: 180px 0 90px;
  background: var(--charcoal);
  color: #fff;
}
.beliefs-hero h1 {
  font: 800 clamp(68px, 11vw, 150px)/.9 "Manrope", sans-serif;
  letter-spacing: -.055em;
  margin: 0;
}
.beliefs-intro-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  margin-top: 55px;
  align-items: start;
}
.beliefs-intro-grid > p {
  font-size: 23px;
  line-height: 1.55;
  color: rgba(255,255,255,.78);
  margin: 0;
}
.beliefs-intro-grid blockquote {
  margin: 0;
  padding-left: 28px;
  border-left: 3px solid var(--orange);
  font: 600 22px/1.5 "Manrope", sans-serif;
}
.beliefs-intro-grid blockquote span {
  font-size: 14px;
  opacity: .65;
}
.beliefs-content {
  padding: 95px 0 120px;
}
.belief-reading {
  max-width: 900px;
}
.belief-section {
  padding-bottom: 70px;
  margin-bottom: 70px;
  border-bottom: 1px solid var(--line);
}
.belief-section h2 {
  font-size: clamp(42px, 6vw, 72px);
  margin-bottom: 30px;
}
.belief-section > p:not(.eyebrow) {
  font-size: 18px;
  line-height: 1.75;
  color: #45423e;
}
.articles ol {
  padding-left: 28px;
}
.articles li {
  padding-left: 12px;
  margin-bottom: 26px;
  font-size: 17px;
  line-height: 1.7;
  color: #45423e;
}
.articles li::marker {
  font-weight: 800;
  color: var(--orange);
}
.iphc-note {
  margin-top: 50px;
  padding: 30px;
  border-radius: 20px;
  background: #efeae0;
}
.iphc-note p {
  margin-top: 0;
  color: var(--muted);
}
@media (max-width: 980px) {
  .beliefs-nav { display: none; }
  .beliefs-intro-grid { grid-template-columns: 1fr; gap: 36px; }
}
