/*
Theme Name: Illumination Ministries
Theme URI: https://illuminationministries.net
Author: Illumination Ministries
Author URI: https://illuminationministries.net
Description: A premium Christ-centered WordPress theme for Illumination Ministries — featuring cinematic hero sections, refined gold-and-navy aesthetics, and a powerful design that reflects the light of God's Word.
Version: 1.1.0
Requires at least: 5.8
Tested up to: 6.5
Requires PHP: 7.2
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: illumination
Tags: ministry, church, christian, blog, custom-menu, featured-images, full-width-template
*/

/* ============================================================
   CSS VARIABLES
   ============================================================ */
:root {
  --deep-navy:    #0A0E1A;
  --royal-navy:   #0D1526;
  --mid-navy:     #122040;
  --light-navy:   #1A2E5A;
  --gold:         #C9A84C;
  --gold-light:   #E8C96A;
  --gold-pale:    #F5E6B8;
  --cream:        #FDF8EE;
  --white:        #FFFFFF;
  --text-main:    #1A1A2E;
  --text-muted:   #4A5568;
  --text-light:   #718096;
  --border:       rgba(201,168,76,0.2);
  --shadow-gold:  0 8px 40px rgba(201,168,76,0.2);
  --shadow-deep:  0 20px 60px rgba(0,0,0,0.4);
  --font-display: 'Cormorant Garamond','Playfair Display',Georgia,serif;
  --font-heading: 'Cinzel',Georgia,serif;
  --font-body:    'Lato','Helvetica Neue',sans-serif;
  --radius-sm:    6px;
  --radius-md:    12px;
  --radius-lg:    20px;
  --radius-xl:    40px;
  --transition:   0.3s cubic-bezier(0.4,0,0.2,1);
  --trans-slow:   0.6s cubic-bezier(0.4,0,0.2,1);
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { font-size:16px; scroll-behavior:smooth; }
body {
  font-family:var(--font-body);
  color:var(--text-main);
  background:var(--cream);
  line-height:1.7;
  overflow-x:hidden;
}
img { max-width:100%; height:auto; display:block; }
a { text-decoration:none; color:inherit; transition:var(--transition); }
ul { list-style:none; }
p { margin-bottom:1.1em; }
h1,h2,h3,h4,h5,h6 {
  font-family:var(--font-display);
  line-height:1.2;
  color:var(--deep-navy);
}

.container { max-width:1200px; margin:0 auto; padding:0 24px; }
.skip-link { position:absolute; top:-100px; left:1rem; background:var(--gold); color:var(--deep-navy); padding:.5rem 1rem; border-radius:var(--radius-sm); z-index:9999; font-size:.85rem; transition:top .2s; }
.skip-link:focus { top:1rem; }

/* ============================================================
   TYPOGRAPHY HELPERS
   ============================================================ */
.section-label {
  font-family:var(--font-heading);
  font-size:.68rem;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--gold);
  display:block;
  margin-bottom:.8rem;
}
.section-title { font-family:var(--font-display); font-size:clamp(1.9rem,3.5vw,3rem); font-weight:600; color:var(--deep-navy); line-height:1.2; }
.section-title--light { color:var(--white); }
.section-title--gold  { color:var(--gold-light); }
.gold-divider { width:60px; height:2px; background:linear-gradient(90deg,transparent,var(--gold),transparent); margin:1rem 0 1.6rem; }
.gold-divider--center { margin-left:auto; margin-right:auto; }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.85rem 2rem;
  border-radius:var(--radius-sm);
  font-family:var(--font-heading);
  font-size:.73rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  cursor:pointer;
  transition:var(--transition);
  border:none;
  text-decoration:none;
}
.btn-gold  { background:linear-gradient(135deg,var(--gold),var(--gold-light)); color:var(--deep-navy); box-shadow:0 4px 20px rgba(201,168,76,.35); }
.btn-gold:hover  { transform:translateY(-2px); box-shadow:0 8px 30px rgba(201,168,76,.5); color:var(--deep-navy); }
.btn-outline { background:transparent; color:var(--gold-light); border:1.5px solid var(--gold); }
.btn-outline:hover { background:rgba(201,168,76,.12); transform:translateY(-2px); color:var(--gold-light); }
.btn-white  { background:var(--white); color:var(--deep-navy); box-shadow:0 4px 20px rgba(0,0,0,.15); }
.btn-white:hover  { background:var(--cream); transform:translateY(-2px); color:var(--deep-navy); }
.btn-navy   { background:var(--deep-navy); color:var(--gold-light); border:1.5px solid var(--border); }
.btn-navy:hover   { background:var(--light-navy); transform:translateY(-2px); color:var(--gold-light); }
.btn-sm { padding:.55rem 1.2rem; font-size:.68rem; }

/* ============================================================
   TOP BAR
   ============================================================ */
.top-bar { background:var(--deep-navy); padding:8px 0; border-bottom:1px solid rgba(201,168,76,.12); }
.top-bar__inner { display:flex; align-items:center; justify-content:space-between; font-size:.75rem; color:rgba(255,255,255,.6); }
.top-bar__social { display:flex; gap:.6rem; }
.top-bar__social a {
  width:26px; height:26px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(201,168,76,.25);
  border-radius:50%;
  font-size:.65rem; color:var(--gold);
  transition:var(--transition);
}
.top-bar__social a:hover { background:var(--gold); color:var(--deep-navy); }

/* ============================================================
   HEADER
   ============================================================ */
.site-header {
  background:rgba(10,14,26,.97);
  backdrop-filter:blur(12px);
  position:sticky; top:0; z-index:1000;
  border-bottom:1px solid rgba(201,168,76,.15);
  transition:var(--transition);
}
.site-header.scrolled { box-shadow:0 4px 30px rgba(0,0,0,.4); }
.header-inner {
  display:flex; align-items:center;
  justify-content:space-between;
  height:78px;
}
.site-logo { display:flex; align-items:center; gap:12px; }
.logo-icon {
  width:42px; height:42px;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  font-size:1.3rem; color:var(--deep-navy);
}
.logo-name {
  font-family:var(--font-heading);
  font-size:1rem; font-weight:700;
  color:var(--white);
  letter-spacing:.1em;
  text-transform:uppercase;
  display:block;
}
.logo-tag { font-family:'Cormorant Garamond',Georgia,serif; font-size:.66rem; color:var(--gold); font-style:italic; display:block; }

/* nav */
.main-nav ul { display:flex; align-items:center; gap:.1rem; }
.main-nav ul li a {
  font-family:var(--font-heading);
  font-size:.7rem; letter-spacing:.1em;
  text-transform:uppercase;
  color:rgba(255,255,255,.82);
  padding:.5rem .85rem;
  border-radius:var(--radius-sm);
  transition:var(--transition);
  position:relative;
  display:block;
}
.main-nav ul li a::after {
  content:''; position:absolute;
  bottom:2px; left:50%; right:50%;
  height:1.5px; background:var(--gold);
  transition:var(--transition);
}
.main-nav ul li a:hover,
.main-nav ul li.current-menu-item > a { color:var(--gold-light); }
.main-nav ul li a:hover::after,
.main-nav ul li.current-menu-item > a::after { left:.85rem; right:.85rem; }

/* sub-menu */
.main-nav ul li.has-sub { position:relative; }
.main-nav ul li.has-sub .sub-menu {
  display:none; position:absolute;
  top:calc(100% + 8px); left:0;
  background:var(--royal-navy);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  min-width:220px; padding:.5rem;
  box-shadow:var(--shadow-deep); z-index:100;
}
.main-nav ul li.has-sub:hover .sub-menu { display:block; }
.main-nav ul li.has-sub .sub-menu li a { border-radius:var(--radius-sm); font-size:.68rem; }
.main-nav ul li.has-sub .sub-menu li a:hover { background:rgba(201,168,76,.1); }
.menu-arrow { font-size:.5rem; margin-left:2px; }

.header-cta { display:flex; gap:.5rem; align-items:center; }
.menu-toggle {
  display:none; flex-direction:column;
  gap:5px; width:28px; cursor:pointer;
  background:none; border:none; padding:4px;
}
.menu-toggle span {
  height:2px; background:var(--gold);
  border-radius:2px; display:block;
  transition:var(--transition);
}
.menu-toggle span:nth-child(2) { width:80%; }

/* mobile menu */
.mobile-menu {
  display:none; position:fixed; inset:0;
  background:rgba(5,8,16,.97);
  z-index:999;
  flex-direction:column; align-items:center; justify-content:center;
  gap:.4rem;
}
.mobile-menu.open { display:flex; }
.mobile-menu ul { list-style:none; text-align:center; }
.mobile-menu ul li a {
  display:block; padding:.65rem 1.5rem;
  font-family:var(--font-display);
  font-size:1.6rem; color:var(--white);
  transition:var(--transition);
}
.mobile-menu ul li a:hover { color:var(--gold-light); }
.mobile-menu__close {
  position:absolute; top:20px; right:20px;
  font-size:1.5rem; color:var(--gold);
  background:none; border:none; cursor:pointer;
  padding:8px;
}
.mobile-menu-overlay {
  display:none; position:fixed; inset:0;
  background:rgba(0,0,0,.5); z-index:998;
}

/* ============================================================
   HERO
   ============================================================ */
.hero {
  position:relative; min-height:100vh;
  display:flex; align-items:center;
  overflow:hidden; background:var(--deep-navy);
}
.hero__bg {
  position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(ellipse 120% 80% at 50% -10%, rgba(201,168,76,.18) 0%, transparent 60%),
    radial-gradient(ellipse 60% 80% at 80% 50%, rgba(26,46,90,.6) 0%, transparent 70%),
    linear-gradient(160deg,#050810 0%,#0A0E1A 40%,#122040 100%);
}
.hero__glow {
  position:absolute; top:-10%; left:50%;
  transform:translateX(-50%);
  width:800px; height:500px;
  background:radial-gradient(ellipse,rgba(201,168,76,.12) 0%,transparent 70%);
  z-index:1; pointer-events:none;
  animation:glow-pulse 6s ease-in-out infinite;
}
@keyframes glow-pulse {
  0%,100% { opacity:.6; transform:translateX(-50%) scale(1); }
  50%      { opacity:1;  transform:translateX(-50%) scale(1.1); }
}
.hero__content {
  position:relative; z-index:2;
  text-align:center;
  padding:120px 24px 80px;
  max-width:920px; margin:0 auto;
}
.hero__eyebrow {
  font-family:var(--font-heading);
  font-size:.68rem; letter-spacing:.35em;
  text-transform:uppercase; color:var(--gold);
  margin-bottom:1.5rem;
  display:flex; align-items:center; justify-content:center; gap:.7rem;
  animation:fade-up .8s ease both;
}
.hero__eyebrow::before,.hero__eyebrow::after {
  content:''; width:38px; height:1px; background:var(--gold); opacity:.5;
}
.hero__title {
  font-family:var(--font-display);
  font-size:clamp(2.6rem,7vw,5.8rem);
  font-weight:600; line-height:1.08;
  color:var(--white); margin-bottom:1.4rem;
  animation:fade-up .8s .2s ease both;
}
.hero__title em { color:var(--gold-light); font-style:italic; }
.hero__subtitle {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(.95rem,2vw,1.18rem);
  color:rgba(255,255,255,.72);
  max-width:680px; margin:0 auto 2.8rem;
  line-height:1.75;
  animation:fade-up .8s .4s ease both;
}
.hero__cta {
  display:flex; flex-wrap:wrap;
  justify-content:center; gap:1rem;
  margin-bottom:3rem;
  animation:fade-up .8s .5s ease both;
}
.hero__verse {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-style:italic; font-size:.9rem;
  color:rgba(201,168,76,.85);
  border-top:1px solid rgba(201,168,76,.25);
  padding-top:1.8rem; margin-top:2.4rem;
  animation:fade-up .8s .7s ease both;
}
@keyframes fade-up {
  from { opacity:0; transform:translateY(30px); }
  to   { opacity:1; transform:translateY(0); }
}

/* ============================================================
   ABOUT DARK
   ============================================================ */
.about-dark {
  background:linear-gradient(135deg,var(--deep-navy) 0%,var(--mid-navy) 100%);
  padding:100px 0;
  position:relative; overflow:hidden;
}
.about-dark::before {
  content:''; position:absolute;
  top:50%; left:-10%; transform:translateY(-50%);
  width:500px; height:500px; border-radius:50%;
  background:radial-gradient(circle,rgba(201,168,76,.06) 0%,transparent 70%);
  pointer-events:none;
}
.about-dark__grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:5rem; align-items:center;
}
.about-dark__content .section-label { color:var(--gold); }
.about-dark__content .section-title { color:var(--white); }
.about-dark__content p { color:rgba(255,255,255,.75); font-size:.96rem; line-height:1.82; }
.about-dark__img-wrap {
  border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow-deep); position:relative;
}
.about-dark__img-wrap::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(201,168,76,.1) 0%,transparent 60%);
  pointer-events:none;
}
.about-dark__img { width:100%; height:auto; display:block; }

/* ============================================================
   PILLARS
   ============================================================ */
.pillars { padding:100px 0; background:var(--cream); }
.pillars__header { text-align:center; margin-bottom:4rem; }
.pillars__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.8rem; }
.pillar-card {
  background:var(--white);
  border:1px solid rgba(201,168,76,.14);
  border-radius:var(--radius-lg);
  padding:2.4rem;
  transition:var(--transition);
  position:relative; overflow:hidden;
}
.pillar-card::before {
  content:''; position:absolute;
  top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--gold),var(--gold-light));
  transform:scaleX(0); transform-origin:left;
  transition:var(--trans-slow);
}
.pillar-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-gold); }
.pillar-card:hover::before { transform:scaleX(1); }
.pillar-card__icon {
  width:56px; height:56px;
  background:linear-gradient(135deg,rgba(201,168,76,.1),rgba(201,168,76,.04));
  border:1px solid rgba(201,168,76,.28);
  border-radius:var(--radius-md);
  display:flex; align-items:center; justify-content:center;
  font-size:1.5rem; margin-bottom:1.3rem;
}
.pillar-card__title { font-family:var(--font-display); font-size:1.25rem; color:var(--deep-navy); margin-bottom:.55rem; }
.pillar-card__text  { font-size:.9rem; color:var(--text-muted); line-height:1.7; }

/* ============================================================
   VERSE BANNER
   ============================================================ */
.verse-banner {
  background:linear-gradient(135deg,var(--gold) 0%,#b8860b 50%,var(--gold-light) 100%);
  padding:60px 0; text-align:center;
  position:relative; overflow:hidden;
}
.verse-banner::before {
  content:'\201C'; position:absolute; font-size:18rem;
  color:rgba(255,255,255,.08); top:-4rem; left:-2rem;
  font-family:Georgia,serif; line-height:1;
}
.verse-banner__text {
  font-family:var(--font-display);
  font-size:clamp(1.3rem,3vw,2.1rem);
  font-style:italic; color:var(--deep-navy);
  max-width:820px; margin:0 auto 1rem;
  line-height:1.55; position:relative; z-index:1;
}
.verse-banner__ref {
  font-family:var(--font-heading);
  font-size:.7rem; letter-spacing:.2em;
  text-transform:uppercase; color:rgba(10,14,26,.65);
  position:relative; z-index:1;
}

/* ============================================================
   MINISTRIES GRID
   ============================================================ */
.ministries { padding:100px 0; background:var(--cream); }
.ministries__header { text-align:center; margin-bottom:4rem; }
.ministries__grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:2rem;
}
.ministry-card {
  border-radius:var(--radius-lg); overflow:hidden;
  position:relative; min-height:360px;
  display:flex; flex-direction:column; justify-content:flex-end;
  cursor:pointer; transition:var(--trans-slow);
  text-decoration:none;
}
.ministry-card:hover { transform:scale(1.02); box-shadow:var(--shadow-deep); }
.ministry-card__bg {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  transition:transform var(--trans-slow);
}
.ministry-card:hover .ministry-card__bg { transform:scale(1.05); }
.ministry-card__overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(5,8,16,.92) 0%,rgba(5,8,16,.28) 60%,transparent 100%);
}
.ministry-card__content { position:relative; z-index:2; padding:2rem; }
.ministry-card__icon  { font-size:1.8rem; margin-bottom:.5rem; }
.ministry-card__title { font-family:var(--font-display); font-size:1.45rem; color:var(--white); font-weight:600; margin-bottom:.4rem; }
.ministry-card__sub   { font-size:.82rem; color:rgba(255,255,255,.62); margin-bottom:1.1rem; line-height:1.55; }
.ministry-card__link  {
  display:inline-flex; align-items:center; gap:.4rem;
  font-family:var(--font-heading); font-size:.66rem;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold-light); opacity:0;
  transform:translateY(8px); transition:var(--transition);
}
.ministry-card:hover .ministry-card__link { opacity:1; transform:translateY(0); }
/* card bg colours */
.ministry-card--word        .ministry-card__bg { background:linear-gradient(135deg,#0a1628,#1a2e5a); }
.ministry-card--discipleship .ministry-card__bg { background:linear-gradient(135deg,#1a0a08,#3d1a14); }
.ministry-card--leadership  .ministry-card__bg { background:linear-gradient(135deg,#0a1a0a,#1a3d2a); }
.ministry-card--music       .ministry-card__bg { background:linear-gradient(135deg,#1a0a2e,#2e1a4a); }
.ministry-card--films       .ministry-card__bg { background:linear-gradient(135deg,#1a1a0a,#3d3214); }
.ministry-card--resources   .ministry-card__bg { background:linear-gradient(135deg,#0a1a2e,#1a2e3d); }

/* ============================================================
   TEACHINGS
   ============================================================ */
.teachings { padding:100px 0; background:var(--white); }
.teachings__header {
  display:flex; align-items:flex-end;
  justify-content:space-between; margin-bottom:3rem;
  flex-wrap:wrap; gap:1rem;
}
.teachings__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:2rem; }
.teaching-card {
  background:var(--cream); border-radius:var(--radius-md);
  overflow:hidden; transition:var(--transition);
  border:1px solid rgba(201,168,76,.1);
}
.teaching-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,.1); }
.teaching-card__thumb {
  width:100%; padding-bottom:56.25%; position:relative;
  background:linear-gradient(135deg,var(--deep-navy),var(--mid-navy));
}
.teaching-card__thumb img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.teaching-card__thumb--inner {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
}
.teaching-card__play {
  width:52px; height:52px;
  background:rgba(201,168,76,.9); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--deep-navy); font-size:1.2rem; transition:var(--transition);
}
.teaching-card:hover .teaching-card__play { transform:scale(1.1); background:var(--gold-light); }
.teaching-card__body { padding:1.6rem; }
.teaching-card__tag {
  font-family:var(--font-heading); font-size:.62rem;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold); margin-bottom:.5rem;
}
.teaching-card__title {
  font-family:var(--font-display); font-size:1.1rem;
  color:var(--deep-navy); font-weight:600;
  margin-bottom:.55rem; line-height:1.3;
}
.teaching-card__title a { color:inherit; }
.teaching-card__title a:hover { color:var(--gold); }
.teaching-card__excerpt { font-size:.86rem; color:var(--text-muted); line-height:1.65; }

/* ============================================================
   LEADERS
   ============================================================ */
.leaders {
  padding:100px 0;
  background:linear-gradient(160deg,var(--deep-navy),var(--mid-navy));
}
.leaders__header { text-align:center; margin-bottom:4rem; }
.leaders__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:2rem; }
.leader-card {
  text-align:center; padding:2.4rem 1.8rem;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(201,168,76,.14);
  border-radius:var(--radius-lg);
  transition:var(--transition);
}
.leader-card:hover { background:rgba(201,168,76,.06); transform:translateY(-4px); }
.leader-card__avatar {
  width:96px; height:96px; border-radius:50%;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  margin:0 auto 1.3rem;
  display:flex; align-items:center; justify-content:center;
  font-size:2.2rem;
  border:3px solid rgba(201,168,76,.3);
  overflow:hidden;
}
.leader-card__avatar img { width:100%; height:100%; object-fit:cover; }
.leader-card__name  { font-family:var(--font-display); font-size:1.18rem; color:var(--white); font-weight:600; margin-bottom:.3rem; }
.leader-card__role  { font-family:var(--font-heading); font-size:.63rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:.75rem; }
.leader-card__bio   { font-size:.84rem; color:rgba(255,255,255,.6); line-height:1.7; }

/* ============================================================
   BLOG / ARTICLES
   ============================================================ */
.blog-section { padding:100px 0; background:var(--white); }
.blog-section__header { text-align:center; margin-bottom:4rem; }
.blog-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:2rem; }
.article-card {
  background:var(--cream);
  border-radius:var(--radius-md);
  overflow:hidden;
  border:1px solid rgba(201,168,76,.1);
  transition:var(--transition);
}
.article-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,.08); }
.article-card__cat-bar { height:4px; background:linear-gradient(90deg,var(--gold),var(--gold-light)); }
.article-card__body { padding:1.8rem; }
.article-card__meta {
  display:flex; align-items:center; gap:.7rem;
  font-family:var(--font-heading); font-size:.68rem;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--gold); margin-bottom:.75rem;
}
.article-card__title { font-family:var(--font-display); font-size:1.12rem; color:var(--deep-navy); font-weight:600; line-height:1.3; margin-bottom:.65rem; }
.article-card__title a { color:inherit; }
.article-card__title a:hover { color:var(--gold); }
.article-card__excerpt { font-size:.86rem; color:var(--text-muted); line-height:1.65; margin-bottom:1.1rem; }
.article-card__readmore {
  font-family:var(--font-heading); font-size:.65rem;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold); display:inline-flex; align-items:center; gap:.4rem;
}
.article-card__readmore:hover { color:var(--deep-navy); }

/* ============================================================
   PARTNER CTA
   ============================================================ */
.partner-cta {
  padding:120px 0; background:var(--cream);
  text-align:center; position:relative; overflow:hidden;
}
.partner-cta::before {
  content:''; position:absolute;
  top:50%; left:50%; transform:translate(-50%,-50%);
  width:900px; height:500px;
  background:radial-gradient(ellipse,rgba(201,168,76,.07) 0%,transparent 70%);
}
.partner-cta__content { position:relative; z-index:1; max-width:700px; margin:0 auto; }
.partner-cta__icon {
  width:80px; height:80px;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  border-radius:var(--radius-xl);
  display:flex; align-items:center; justify-content:center;
  font-size:2rem; margin:0 auto 2rem;
  box-shadow:0 8px 30px rgba(201,168,76,.35);
}
.partner-cta p { color:var(--text-muted); font-size:1rem; margin-bottom:2rem; line-height:1.8; }
.partner-cta__btns { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer {
  background:var(--deep-navy);
  color:rgba(255,255,255,.75);
  padding:80px 0 0;
  border-top:1px solid rgba(201,168,76,.14);
}
.footer-top {
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:3rem; padding-bottom:3rem;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.footer-brand .site-logo { margin-bottom:1.2rem; }
.footer-brand p { font-size:.88rem; line-height:1.78; opacity:.62; }
.footer-social { display:flex; gap:.55rem; margin-top:1.2rem; }
.footer-social a {
  width:34px; height:34px;
  border:1px solid rgba(201,168,76,.22);
  border-radius:8px;
  display:flex; align-items:center; justify-content:center;
  font-size:.68rem; color:var(--gold);
  transition:var(--transition);
}
.footer-social a:hover { background:var(--gold); color:var(--deep-navy); }
.footer-col h4 {
  font-family:var(--font-heading);
  font-size:.68rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--gold);
  margin-bottom:1.1rem;
}
.footer-col ul li { margin-bottom:.45rem; }
.footer-col ul li a { font-size:.85rem; color:rgba(255,255,255,.58); transition:var(--transition); }
.footer-col ul li a:hover { color:var(--gold-light); padding-left:4px; }
.footer-contact p { font-size:.85rem; color:rgba(255,255,255,.58); display:flex; align-items:flex-start; gap:.5rem; margin-bottom:.5rem; }
.footer-contact a { color:var(--gold-light); }
.footer-bottom {
  padding:1.8rem 0;
  display:flex; align-items:center; justify-content:space-between;
  font-size:.77rem; color:rgba(255,255,255,.38);
  flex-wrap:wrap; gap:.7rem;
}
.footer-bottom a { color:var(--gold); }
.footer-bottom a:hover { color:var(--gold-light); }
.footer-bottom-links { display:flex; gap:1rem; }

/* newsletter */
.newsletter-bar { padding:50px 0; background:linear-gradient(135deg,var(--mid-navy),var(--light-navy)); }
.newsletter-inner { max-width:520px; margin:0 auto; text-align:center; }
.newsletter-inner h3 { font-family:var(--font-display); font-size:1.4rem; color:var(--white); margin-bottom:.5rem; }
.newsletter-inner p { font-size:.85rem; color:rgba(255,255,255,.55); margin-bottom:1.4rem; }
.newsletter-form { display:flex; gap:.5rem; }
.newsletter-form input {
  flex:1; padding:.75rem 1rem;
  background:rgba(255,255,255,.07);
  border:1.5px solid rgba(201,168,76,.25);
  border-radius:var(--radius-sm);
  color:var(--white); font-size:.88rem; outline:none;
  transition:var(--transition);
}
.newsletter-form input:focus { border-color:var(--gold); }
.newsletter-form input::placeholder { color:rgba(255,255,255,.38); }

/* ============================================================
   PAGE HERO (inner pages)
   ============================================================ */
.page-hero {
  background:linear-gradient(135deg,var(--deep-navy),var(--mid-navy));
  padding:100px 0 80px; text-align:center;
  position:relative; overflow:hidden;
}
.page-hero::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(201,168,76,.12),transparent 70%);
}
.page-hero__content { position:relative; z-index:1; }
.page-hero__title { font-family:var(--font-display); font-size:clamp(2rem,5vw,3.5rem); color:var(--white); font-weight:600; margin-bottom:.75rem; }
.page-hero__sub { font-size:1.02rem; color:rgba(255,255,255,.62); max-width:600px; margin:0 auto; font-family:'Cormorant Garamond',Georgia,serif; font-style:italic; }
.breadcrumb {
  display:flex; align-items:center; justify-content:center;
  gap:.5rem; font-family:var(--font-heading);
  font-size:.66rem; letter-spacing:.14em;
  text-transform:uppercase; color:rgba(255,255,255,.4);
  margin-bottom:1.1rem;
}
.breadcrumb a { color:var(--gold); }

/* ============================================================
   FORMS
   ============================================================ */
.form-group { margin-bottom:1.3rem; }
.form-group label {
  display:block; font-family:var(--font-heading);
  font-size:.66rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--text-muted);
  margin-bottom:.45rem;
}
.form-group input,
.form-group textarea,
.form-group select {
  width:100%; padding:.82rem 1rem;
  border:1.5px solid rgba(201,168,76,.2);
  border-radius:var(--radius-sm);
  background:var(--cream); font-family:var(--font-body);
  font-size:.9rem; color:var(--text-main);
  transition:var(--transition); outline:none;
}
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
  border-color:var(--gold); background:var(--white);
  box-shadow:0 0 0 3px rgba(201,168,76,.12);
}
.form-group textarea { resize:vertical; min-height:120px; }

/* ============================================================
   ABOUT PAGE
   ============================================================ */
.about-content__grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:start; }
.beliefs-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(275px,1fr)); gap:1.4rem; margin-top:3rem; }
.belief-item {
  background:var(--white);
  border-left:3px solid var(--gold);
  padding:1.5rem;
  border-radius:0 var(--radius-md) var(--radius-md) 0;
  transition:var(--transition);
}
.belief-item:hover { transform:translateX(4px); box-shadow:4px 0 20px rgba(201,168,76,.14); }
.belief-item h4 { font-family:var(--font-display); font-size:1.08rem; color:var(--deep-navy); margin-bottom:.35rem; }
.belief-item p { font-size:.87rem; color:var(--text-muted); margin-bottom:0; line-height:1.65; }

/* ============================================================
   PARTNER / GIVE PAGE
   ============================================================ */
.partner-ways { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-top:3rem; }
.partner-way {
  text-align:center; padding:2.8rem 2rem;
  background:var(--white);
  border:1px solid rgba(201,168,76,.14);
  border-radius:var(--radius-lg);
  transition:var(--transition);
}
.partner-way:hover { transform:translateY(-6px); box-shadow:var(--shadow-gold); }
.partner-way__icon {
  width:64px; height:64px;
  background:linear-gradient(135deg,rgba(201,168,76,.1),rgba(201,168,76,.03));
  border:1px solid rgba(201,168,76,.28);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:1.7rem; margin:0 auto 1.3rem;
}
.partner-way h3 { font-family:var(--font-display); font-size:1.25rem; color:var(--deep-navy); margin-bottom:.55rem; }
.partner-way p  { font-size:.87rem; color:var(--text-muted); line-height:1.7; }
.give-section { background:linear-gradient(135deg,var(--deep-navy),var(--mid-navy)); padding:80px 0; }
.give-card {
  max-width:600px; margin:0 auto;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(201,168,76,.2);
  border-radius:var(--radius-xl);
  padding:3rem; text-align:center;
}
.give-amounts { display:flex; gap:.7rem; justify-content:center; flex-wrap:wrap; margin:1.8rem 0; }
.give-amounts a {
  padding:.65rem 1.3rem;
  border:1.5px solid rgba(201,168,76,.38);
  border-radius:var(--radius-sm);
  font-family:var(--font-heading);
  font-size:.78rem; letter-spacing:.1em;
  color:var(--gold-light); transition:var(--transition);
  text-decoration:none;
}
.give-amounts a:hover,.give-amounts a.active { background:var(--gold); color:var(--deep-navy); border-color:var(--gold); }

/* ============================================================
   EVENTS
   ============================================================ */
.events-list { display:flex; flex-direction:column; gap:1.4rem; margin-top:3rem; }
.event-item {
  display:grid; grid-template-columns:80px 1fr auto;
  gap:2rem; align-items:center;
  background:var(--white);
  border:1px solid rgba(201,168,76,.14);
  border-radius:var(--radius-md);
  padding:1.5rem 2rem; transition:var(--transition);
}
.event-item:hover { box-shadow:var(--shadow-gold); transform:translateX(4px); }
.event-date {
  text-align:center;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  border-radius:var(--radius-md); padding:.75rem;
  color:var(--deep-navy);
}
.event-date__day   { font-family:var(--font-display); font-size:2rem; font-weight:700; line-height:1; }
.event-date__month { font-family:var(--font-heading); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; }
.event-info h4     { font-family:var(--font-display); font-size:1.08rem; color:var(--deep-navy); margin-bottom:.25rem; }
.event-info p      { font-size:.83rem; color:var(--text-muted); margin-bottom:0; }

/* ============================================================
   CONTACT
   ============================================================ */
.contact-grid { display:grid; grid-template-columns:1fr 1.5fr; gap:4rem; align-items:start; }
.contact-detail { display:flex; gap:1rem; align-items:flex-start; padding:1.1rem 0; border-bottom:1px solid rgba(201,168,76,.1); }
.contact-detail__icon {
  width:40px; height:40px;
  background:linear-gradient(135deg,rgba(201,168,76,.1),rgba(201,168,76,.04));
  border:1px solid rgba(201,168,76,.22);
  border-radius:var(--radius-sm);
  display:flex; align-items:center; justify-content:center;
  font-size:1rem; flex-shrink:0;
}
.contact-detail__text { font-size:.9rem; color:var(--text-muted); }
.contact-detail__text strong { display:block; color:var(--deep-navy); margin-bottom:.1rem; font-family:var(--font-heading); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; }

/* ============================================================
   SCRIPTURE / BLOCKQUOTE
   ============================================================ */
.scripture,.entry-content blockquote {
  border-left:3px solid var(--gold);
  padding:1.3rem 1.7rem;
  margin:2rem 0;
  background:rgba(201,168,76,.05);
  border-radius:0 var(--radius-md) var(--radius-md) 0;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-style:italic;
}
.scripture__text,.entry-content blockquote p { font-size:1.08rem; color:var(--deep-navy); line-height:1.7; }
.scripture__ref,.entry-content blockquote cite { font-family:var(--font-heading); font-size:.68rem; letter-spacing:.15em; text-transform:uppercase; color:var(--gold); font-style:normal; }

/* ============================================================
   PAGINATION
   ============================================================ */
.pagination { text-align:center; margin:3rem 0; }
.pagination .page-numbers { display:inline-flex; gap:.4rem; align-items:center; }
.pagination .page-numbers a,
.pagination .page-numbers span {
  width:38px; height:38px;
  display:flex; align-items:center; justify-content:center;
  border:1.5px solid rgba(201,168,76,.22);
  border-radius:var(--radius-sm);
  font-size:.82rem; color:var(--text-muted);
  transition:var(--transition);
}
.pagination .page-numbers .current,
.pagination .page-numbers a:hover { background:var(--gold); color:var(--deep-navy); border-color:var(--gold); }

/* ============================================================
   WIDGETS
   ============================================================ */
.widget { margin-bottom:2rem; }
.widget-title,.widget .fw-title { font-family:var(--font-heading); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; }

/* ============================================================
   WP CORE CLASSES
   ============================================================ */
.alignleft  { float:left; margin-right:1.5em; }
.alignright { float:right; margin-left:1.5em; }
.aligncenter { text-align:center; }
.alignwide   { max-width:1200px; }
.alignfull   { max-width:100%; }
.wp-block-image img { border-radius:var(--radius-md); }

/* ============================================================
   SCROLL REVEAL ANIMATIONS
   ============================================================ */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease,transform .7s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:.15s; }
.reveal-delay-2 { transition-delay:.3s; }
.reveal-delay-3 { transition-delay:.45s; }

/* ============================================================
   UTILITIES
   ============================================================ */
.text-gold   { color:var(--gold); }
.text-light  { color:rgba(255,255,255,.65); }
.bg-navy     { background:var(--deep-navy); }
.bg-cream    { background:var(--cream); }
.bg-white    { background:var(--white); }
.gold-shimmer {
  background:linear-gradient(90deg,var(--gold) 25%,var(--gold-light) 50%,var(--gold) 75%);
  background-size:200% auto;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:shimmer 4s linear infinite;
}
@keyframes shimmer { to { background-position:-200% center; } }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px) {
  .about-dark__grid   { grid-template-columns:1fr; }
  .about-dark__visual { display:none; }
  .ministries__grid   { grid-template-columns:1fr 1fr; }
  .footer-top         { grid-template-columns:1fr 1fr; }
  .contact-grid       { grid-template-columns:1fr; }
  .partner-ways       { grid-template-columns:1fr 1fr; }
  .about-content__grid { grid-template-columns:1fr; }
}
@media (max-width:768px) {
  .main-nav,.header-cta .btn:not(.btn-sm):not([href*="give"]) { display:none; }
  .menu-toggle { display:flex; }
  .hero__content { padding:80px 16px 60px; }
  .ministries__grid { grid-template-columns:1fr; }
  .teachings__header { flex-direction:column; align-items:flex-start; }
  .footer-top   { grid-template-columns:1fr; }
  .event-item   { grid-template-columns:60px 1fr; }
  .event-item .btn { display:none; }
  .partner-ways { grid-template-columns:1fr; }
  .top-bar__text { display:none; }
  .newsletter-form { flex-direction:column; }
}
@media (max-width:480px) {
  .hero__cta  { flex-direction:column; align-items:center; }
  .hero__title { font-size:2.2rem; }
  .partner-cta__btns { flex-direction:column; align-items:center; }
}

/* ============================================================
   FOOTER — Additional classes used in footer.php
   ============================================================ */
.wrap { max-width:1200px; margin:0 auto; padding:0 24px; }

/* connect / newsletter bar */
.connect-bar { padding:60px 0; background:linear-gradient(135deg,var(--mid-navy),var(--light-navy)); }
.connect-inner { display:flex; align-items:center; justify-content:space-between; gap:3rem; flex-wrap:wrap; }
.connect-text h2 { font-family:var(--font-display); font-size:1.5rem; color:var(--white); margin-bottom:.4rem; }
.connect-text p  { font-size:.86rem; color:rgba(255,255,255,.55); margin-bottom:0; }
.connect-form form { display:flex; gap:.5rem; flex-wrap:wrap; }
.connect-form input[type="email"] {
  flex:1; min-width:220px;
  padding:.75rem 1rem;
  background:rgba(255,255,255,.07);
  border:1.5px solid rgba(201,168,76,.25);
  border-radius:var(--radius-sm);
  color:var(--white); font-size:.88rem; outline:none;
  transition:var(--transition);
}
.connect-form input[type="email"]:focus { border-color:var(--gold); }
.connect-form input[type="email"]::placeholder { color:rgba(255,255,255,.38); }

/* footer columns */
.footer-col ul,.footer-widget ul { list-style:none; padding:0; }
.footer-widget { }
.fw-title { font-family:var(--font-heading); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:1.1rem; }
.footer-widget ul li { margin-bottom:.45rem; }
.footer-widget ul li a { font-size:.85rem; color:rgba(255,255,255,.58); transition:var(--transition); text-decoration:none; }
.footer-widget ul li a:hover { color:var(--gold-light); padding-left:4px; }

/* social row */
.social-row { display:flex; gap:.55rem; margin-top:1.1rem; }
.soc-btn {
  width:36px; height:36px;
  border:1px solid rgba(201,168,76,.22);
  border-radius:8px;
  display:flex; align-items:center; justify-content:center;
  color:var(--gold); transition:var(--transition);
}
.soc-btn svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; }
.soc-btn:hover { background:var(--gold); color:var(--deep-navy); }

/* btn variants used in footer */
.btn--white { background:var(--white); color:var(--deep-navy); }
.btn--white:hover { background:var(--cream); transform:translateY(-2px); }
.btn--lg { padding:1rem 2.2rem; font-size:.8rem; }

/* contact column in footer */
.contact-col h4 { font-family:var(--font-heading); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; }
.contact-col p  { font-size:.85rem; color:rgba(255,255,255,.58); display:flex; align-items:flex-start; gap:.5rem; margin-bottom:.5rem; }
.contact-col a  { color:var(--gold-light); text-decoration:none; }
.contact-col a:hover { color:var(--white); }

