/* ══════════════════════════════════════════
   RESET & ROOT
══════════════════════════════════════════ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
:root {
  --green:        #1B6B2F;
  --green-dark:   #134D22;
  --green-mid:    #2E8B42;
  --green-light:  #E8F5E9;
  --green-xlight: #F1FAF2;
  --red:          #C0392B;
  --yellow:       #E6A817;
  --yellow-light: #FFF8E1;
  --white:        #FFFFFF;
  --off-white:    #F7F9F7;
  --grey-light:   #F0F4F0;
  --grey-mid:     #A8B4A8;
  --grey-text:    #4A5E4A;
  --dark-text:    #1A2B1A;
  --border:       #D4E8D4;
  --nav-h:        72px;
  --font-display: 'Bebas Neue', sans-serif;
  --font-script:  'Pacifico', cursive;
  --font-head:    'DM Sans', sans-serif;
  --font-body:    'DM Sans', sans-serif;
  --font-ui:      'DM Sans', sans-serif;
}
html { scroll-behavior:smooth; overflow-x:hidden; }
body {
  background:var(--white);
  color:var(--dark-text);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.75;
  overflow-x:hidden;
  cursor:none;
}

/* ══ SCROLLBAR ══ */
::-webkit-scrollbar { width:5px; }
::-webkit-scrollbar-track { background:var(--grey-light); }
::-webkit-scrollbar-thumb { background:var(--green-mid); border-radius:3px; }

/* ══ CUSTOM CURSOR ══ */
.cur-dot {
  width:9px; height:9px;
  background:var(--green);
  border-radius:50%;
  position:fixed; top:0; left:0;
  pointer-events:none; z-index:99999;
  transform:translate(-50%,-50%);
  transition:background .2s, width .2s, height .2s;
}
.cur-ring {
  width:38px; height:38px;
  border:2px solid var(--green);
  border-radius:50%;
  position:fixed; top:0; left:0;
  pointer-events:none; z-index:99998;
  transform:translate(-50%,-50%);
  transition:width .18s ease, height .18s ease, border-color .2s;
  opacity:.7;
}
body:has(a:hover) .cur-ring,
body:has(button:hover) .cur-ring {
  width:54px; height:54px;
  border-color:var(--yellow);
  opacity:.9;
}
body:has(a:hover) .cur-dot,
body:has(button:hover) .cur-dot {
  background:var(--yellow);
}

/* ══ UTILITY ══ */
.container { max-width:1180px; margin:0 auto; padding:0 1.8rem; }
.section-tag {
  display:inline-block; font-family:var(--font-ui);
  font-size:.68rem; font-weight:600; letter-spacing:.3em;
  text-transform:uppercase; color:var(--green);
  padding:.28rem .9rem; background:var(--green-light);
  border-radius:100px; margin-bottom:.9rem;
  border:1px solid rgba(27,107,47,.15);
}
.section-title {
  font-family:var(--font-display);
  font-size:clamp(2.6rem,5.5vw,4.2rem);
  font-weight:400; line-height:1.05; color:var(--dark-text);
  letter-spacing:.02em;
}
.section-sub {
  font-size:1rem; color:var(--grey-text); margin-top:.6rem;
  font-style:italic; font-family:var(--font-body); font-weight:300;
}
/* Script accent label (like CCI "Our Pastors" handwritten labels) */
.script-label {
  font-family:var(--font-script);
  font-size:1.4rem; color:var(--green);
  display:block; margin-bottom:.4rem; font-weight:400;
}
.section-header { text-align:center; margin-bottom:3.5rem; }
.green-text  { color:var(--green); }
.red-text    { color:var(--red); }
.yellow-text { color:var(--yellow); }
.white-text  { color:var(--white); }

/* ══ BUTTONS ══ */
.btn {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.82rem 2rem; font-family:var(--font-ui);
  font-size:.82rem; font-weight:700; letter-spacing:.07em;
  text-transform:uppercase; text-decoration:none;
  border:2px solid transparent; cursor:none; border-radius:6px;
  transition:all .25s ease; position:relative; overflow:hidden;
}
.btn-green  { background:var(--green); color:var(--white); border-color:var(--green); }
.btn-green:hover  { background:var(--green-dark); border-color:var(--green-dark); transform:translateY(-2px); box-shadow:0 8px 22px rgba(27,107,47,.3); }
.btn-yellow { background:var(--yellow); color:var(--white); border-color:var(--yellow); }
.btn-yellow:hover { background:#C9930E; border-color:#C9930E; transform:translateY(-2px); box-shadow:0 8px 22px rgba(230,168,23,.35); }
.btn-red    { background:var(--red); color:var(--white); border-color:var(--red); }
.btn-red:hover    { background:#A93226; transform:translateY(-2px); }
.btn-white  { background:var(--white); color:var(--green); border-color:var(--white); }
.btn-white:hover { background:var(--green-light); border-color:var(--green-light); }
.btn-outline-white { background:transparent; color:var(--white); border-color:rgba(255,255,255,.7); }
.btn-outline-white:hover { background:rgba(255,255,255,.15); border-color:var(--white); }

/* ══ REVEALS ══ */
.reveal   { opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.reveal.visible   { opacity:1; transform:translateY(0); }
.reveal-l { opacity:0; transform:translateX(-36px); transition:opacity .7s ease, transform .7s ease; }
.reveal-l.visible { opacity:1; transform:translateX(0); }
.reveal-r { opacity:0; transform:translateX(36px); transition:opacity .7s ease, transform .7s ease; }
.reveal-r.visible { opacity:1; transform:translateX(0); }

/* ══════════════════════════════════════════
   NAV — starts transparent, solidifies on scroll
══════════════════════════════════════════ */
nav {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  height:var(--nav-h);
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background .4s ease, border-color .4s ease, box-shadow .4s ease;
}
nav.scrolled {
  background:var(--white);
  border-bottom:2px solid var(--green);
  box-shadow:0 4px 24px rgba(0,0,0,.1);
}
.nav-inner {
  display:flex; align-items:center; justify-content:space-between;
  max-width:1180px; margin:0 auto; padding:0 1.8rem; height:100%;
}
/* Logo */
.nav-logo { display:flex; align-items:center; gap:.8rem; text-decoration:none;}
/*.nav-logo-circle {
  width:44px; height:44px; border-radius:50%;
  background:var(--yellow);
  display:flex; align-items:center; justify-content:center;
  font-size:1.2rem; flex-shrink:0;
  box-shadow:0 4px 14px rgba(230,168,23,.35);
  transition:background .4s;
}*/
.nav-logo-words .top {
  display:block; font-family:var(--font-head); font-size:1rem;
  font-weight:700; color:var(--white); line-height:1.1;
  transition:color .4s;
}
.nav-logo-words .btm {
  display:block; font-family:var(--font-ui); font-size:.52rem;
  font-weight:700; letter-spacing:.24em; text-transform:uppercase;
  color:rgba(255,255,255,.7); margin-top:.04rem; transition:color .4s;
}
nav.scrolled .nav-logo-words .top { color:var(--green); }
nav.scrolled .nav-logo-words .btm { color:var(--grey-text); }
/* Links */
.nav-links { display:flex; align-items:center; gap:.1rem; list-style:none; }
.nav-links a {
  font-family:var(--font-ui); font-size:.74rem; font-weight:700;
  letter-spacing:.07em; text-transform:uppercase;
  color:rgba(255,255,255,.88); text-decoration:none;
  padding:.42rem .85rem; border-radius:5px; transition:all .25s;
}
.nav-links a:hover { color:var(--white); background:rgba(255,255,255,.15); }
nav.scrolled .nav-links a { color:var(--grey-text); }
nav.scrolled .nav-links a:hover { color:var(--green); background:var(--green-light); }
/* CTA */
.nav-cta { display:flex; gap:.7rem; align-items:center; }
/* Hamburger */
.hamburger {
  display:none; flex-direction:column; gap:5px;
  background:none; border:none; cursor:none; padding:4px;
}
.hamburger span {
  display:block; width:24px; height:2.5px;
  background:var(--white); border-radius:2px; transition:all .3s;
}
nav.scrolled .hamburger span { background:var(--green); }
.hamburger.open span:nth-child(1){ transform:rotate(45deg) translate(5px,5px); }
.hamburger.open span:nth-child(2){ opacity:0; }
.hamburger.open span:nth-child(3){ transform:rotate(-45deg) translate(5px,-5px); }
/* Mobile menu */
.mob-menu {
  display:none; position:fixed; inset:0;
  background:var(--white); z-index:999;
  flex-direction:column; align-items:center; justify-content:center;
  gap:2rem; opacity:0; transition:opacity .3s;
  border-top:4px solid var(--green);
}
.mob-menu.open { display:flex; opacity:1; }
.mob-menu a {
  font-family:var(--font-head); font-size:1.55rem; font-weight:700;
  color:var(--dark-text); text-decoration:none; transition:color .25s;
}
.mob-menu a:hover { color:var(--green); }
.mob-menu-close {
  position:absolute; top:1.2rem; right:1.5rem;
  font-size:1.8rem; color:var(--grey-text); background:none; border:none;
  cursor:none; transition:color .25s; font-family:var(--font-ui);
}
.mob-menu-close:hover { color:var(--red); }

/* ══════════════════════════════════════════
   HERO SLIDER
══════════════════════════════════════════ */
#hero {
  position:relative; width:100%; height:100vh;
  min-height:560px; overflow:hidden;
}
.slide {
  position:absolute; inset:0;
  opacity:0; transition:opacity 1s ease;
}
.slide.active { opacity:1; }
.slide-bg {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  background-repeat:no-repeat;
  transform:scale(1.04);
  transition:transform 7s ease;
}
.slide.active .slide-bg { transform:scale(1); }
.slide-overlay {
  position:absolute; inset:0;
  background:linear-gradient(160deg,
    rgba(19,77,34,.82) 0%,
    rgba(10,40,18,.70) 55%,
    rgba(19,77,34,.88) 100%);
}
.slide-content {
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  text-align:center; padding:0 2rem;
  z-index:2; padding-top:var(--nav-h);
}
.slide-verse {
  font-family:var(--font-head); font-size:clamp(.85rem,1.8vw,1.1rem);
  font-style:italic; font-weight:300;
  color:rgba(255,255,255,.8); margin-bottom:1.5rem;
  opacity:0; transform:translateY(-18px);
  transition:opacity .8s ease .3s, transform .8s ease .3s;
}
.slide.active .slide-verse { opacity:1; transform:translateY(0); }
.slide-verse em { color:var(--yellow-light); font-style:normal; font-weight:400; }
.slide-title {
  font-family:var(--font-head);
  font-size:clamp(2.6rem,7vw,5.8rem);
  font-weight:900; line-height:1.06; color:var(--white);
  margin-bottom:1rem;
  opacity:0; transform:translateY(22px);
  transition:opacity .8s ease .5s, transform .8s ease .5s;
}
.slide.active .slide-title { opacity:1; transform:translateY(0); }
.slide-title .accent { display:block; color:var(--yellow); }
.slide-sub {
  font-family:var(--font-head); font-size:clamp(1rem,2vw,1.25rem);
  font-style:italic; font-weight:300;
  color:rgba(255,255,255,.78); margin-bottom:2.5rem;
  opacity:0; transform:translateY(18px);
  transition:opacity .8s ease .7s, transform .8s ease .7s;
}
.slide.active .slide-sub { opacity:1; transform:translateY(0); }
.slide-btn-wrap {
  opacity:0; transform:translateY(16px);
  transition:opacity .8s ease .9s, transform .8s ease .9s;
}
.slide.active .slide-btn-wrap { opacity:1; transform:translateY(0); }

/* ARROWS */
.hero-arrow {
  position:absolute; top:50%; transform:translateY(-50%);
  z-index:10; width:50px; height:50px; border-radius:50%;
  background:rgba(255,255,255,.18);
  border:2px solid rgba(255,255,255,.5);
  color:var(--white); font-size:1.3rem;
  cursor:none; display:flex; align-items:center; justify-content:center;
  transition:all .25s; backdrop-filter:blur(4px);
}
.hero-arrow:hover { background:var(--green); border-color:var(--green); transform:translateY(-50%) scale(1.1); }
.hero-arrow-left  { left:1.6rem; }
.hero-arrow-right { right:1.6rem; }

/* DOTS */
.hero-dots-bar {
  position:absolute; bottom:2rem; left:50%;
  transform:translateX(-50%); z-index:10;
  display:flex; gap:.65rem;
}
.h-dot {
  width:10px; height:10px; border-radius:50%;
  background:rgba(255,255,255,.35); border:none;
  cursor:none; transition:all .3s; padding:0;
}
.h-dot.active { background:var(--yellow); transform:scale(1.3); }

/* SCROLL HINT */
.hero-scroll {
  position:absolute; bottom:2.2rem; right:2.5rem;
  z-index:10; display:flex; flex-direction:column;
  align-items:center; gap:.4rem;
}
.hero-scroll span {
  font-family:var(--font-ui); font-size:.55rem; font-weight:700;
  letter-spacing:.28em; text-transform:uppercase; color:rgba(255,255,255,.4);
}
.scroll-line {
  width:1px; height:46px;
  background:linear-gradient(to bottom,rgba(255,255,255,.55),transparent);
  animation:spl 2s ease infinite;
}
@keyframes spl{0%{transform:scaleY(0);transform-origin:top;opacity:1}100%{transform:scaleY(1);transform-origin:top;opacity:0}}

/* ══════════════════════════════════════════
   STATS BAR
══════════════════════════════════════════ */
#stats {
  background:var(--white);
  border-bottom:1px solid var(--border);
  padding:3.2rem 0;
}
.stats-grid {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1.5rem; text-align:center;
}
.stat-item { padding:1.2rem .8rem; }
.stat-icon-wrap {
  width:54px; height:54px; border-radius:50%;
  background:var(--yellow);
  display:flex; align-items:center; justify-content:center;
  font-size:1.35rem; margin:0 auto .9rem;
  box-shadow:0 6px 18px rgba(230,168,23,.28);
  transition:transform .3s;
}
.stat-item:hover .stat-icon-wrap { transform:scale(1.1); }
.stat-num {
  font-family:var(--font-head); font-size:2.7rem;
  font-weight:700; color:var(--dark-text); line-height:1; margin-bottom:.35rem;
}
.stat-label {
  font-family:var(--font-ui); font-size:.7rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--grey-text);
}

/* TICKER */
.ticker {
  background:var(--green); padding:.78rem 0;
  overflow:hidden; position:relative; z-index:5;
}
.ticker-track {
  display:flex; gap:4rem; white-space:nowrap;
  animation:ticker 30s linear infinite;
}
.ticker-item {
  display:inline-flex; align-items:center; gap:.7rem;
  font-family:var(--font-ui); font-size:.68rem; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  color:rgba(255,255,255,.9); flex-shrink:0;
}
.ticker-item .dot { color:var(--yellow); font-size:.9rem; }
@keyframes ticker{ from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ══════════════════════════════════════════
   AMBASSADORS
══════════════════════════════════════════ */
#ambassadors { padding:6rem 0; background:var(--white); }
.ambassadors-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem;
}
.ambassador-card {
  background:var(--white); border-radius:14px; overflow:hidden;
  border:1px solid var(--border);
  box-shadow:0 2px 14px rgba(0,0,0,.07);
  transition:transform .35s, box-shadow .35s;
}
.ambassador-card:hover {
  transform:translateY(-7px);
  box-shadow:0 18px 42px rgba(27,107,47,.16);
}
.ambassador-photo {
  height:240px; position:relative; overflow:hidden;
}
.ambassador-photo img {
  width:100%; height:100%; object-fit:cover;
  transition:transform .45s ease; display:block;
}
.ambassador-card:hover .ambassador-photo img { transform:scale(1.06); }
.a-photo-grad {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(19,77,34,.75) 0%,transparent 55%);
}
.a-role-tag {
  position:absolute; top:.85rem; left:.85rem;
  font-family:var(--font-ui); font-size:.56rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  padding:.26rem .75rem; border-radius:100px;
}
.tag-green  { background:var(--green);  color:var(--white); }
.tag-yellow { background:var(--yellow); color:var(--white); }
.tag-red    { background:var(--red);    color:var(--white); }
.ambassador-body { padding:1.3rem 1.4rem 1.5rem; }
.a-name {
  font-family:var(--font-head); font-size:1rem;
  font-weight:700; color:var(--dark-text); margin-bottom:.2rem;
}
.a-role {
  font-family:var(--font-ui); font-size:.62rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase; margin-bottom:.7rem;
}
.a-desc { font-size:.86rem; color:var(--grey-text); line-height:1.7; margin-bottom:.9rem; }
.a-link {
  font-family:var(--font-ui); font-size:.65rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
  color:var(--green); text-decoration:none;
  display:inline-flex; align-items:center; gap:.4rem;
  transition:gap .25s; border-bottom:1px solid transparent;
}
.a-link:hover { gap:.7rem; border-bottom-color:var(--green); }

/* ══════════════════════════════════════════
   UPCOMING EVENTS
══════════════════════════════════════════ */
#events { padding:6rem 0; background:var(--green-xlight); }
.events-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.8rem;
}
.event-card {
  background:var(--white); border-radius:14px; overflow:hidden;
  border:1px solid var(--border);
  box-shadow:0 2px 14px rgba(0,0,0,.07);
  transition:transform .35s, box-shadow .35s;
}
.event-card:hover { transform:translateY(-5px); box-shadow:0 16px 40px rgba(0,0,0,.12); }
.event-img { height:200px; position:relative; overflow:hidden; }
.event-img img {
  width:100%; height:100%; object-fit:cover;
  transition:transform .45s ease; display:block;
}
.event-card:hover .event-img img { transform:scale(1.06); }
.event-badge {
  position:absolute; top:.85rem; left:.85rem;
  font-family:var(--font-ui); font-size:.58rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase;
  padding:.28rem .85rem; border-radius:100px;
  background:rgba(103,58,183,.85); color:var(--white);
}
.event-body { padding:1.4rem; }
.event-name {
  font-family:var(--font-head); font-size:1.05rem;
  font-weight:700; color:var(--dark-text); margin-bottom:.35rem;
}
.event-blurb { font-size:.85rem; color:var(--grey-text); margin-bottom:1rem; }
.event-meta { display:flex; flex-direction:column; gap:.4rem; margin-bottom:1.3rem; }
.event-meta-row {
  display:flex; align-items:center; gap:.6rem;
  font-size:.83rem; color:var(--grey-text);
}

/* ══════════════════════════════════════════
   GALLERY
══════════════════════════════════════════ */
#gallery { padding:6rem 0; background:var(--white); }
.gallery-tabs {
  display:flex; justify-content:center; gap:.55rem;
  margin-bottom:2.5rem; flex-wrap:wrap;
}
.g-tab {
  padding:.46rem 1.3rem; font-family:var(--font-ui); font-size:.7rem;
  font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  border:2px solid var(--border); background:var(--white);
  color:var(--grey-text); border-radius:100px; cursor:none; transition:all .25s;
}
.g-tab.active, .g-tab:hover { background:var(--green); color:var(--white); border-color:var(--green); }
.gallery-panel { display:none; }
.gallery-panel.active { display:block; }
.gallery-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:.9rem;
}
.g-item {
  border-radius:10px; overflow:hidden;
  aspect-ratio:4/3; position:relative; cursor:none;
}
.g-item img {
  width:100%; height:100%; object-fit:cover;
  transition:transform .4s ease; display:block;
}
.g-item:hover img { transform:scale(1.08); }
.g-overlay {
  position:absolute; inset:0;
  background:rgba(27,107,47,0);
  display:flex; align-items:center; justify-content:center;
  transition:background .3s;
}
.g-item:hover .g-overlay { background:rgba(27,107,47,.32); }
.g-overlay span {
  font-family:var(--font-ui); font-size:.68rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase; color:var(--white);
  opacity:0; transition:opacity .3s; background:rgba(0,0,0,.3);
  padding:.35rem .85rem; border-radius:100px;
}
.g-item:hover .g-overlay span { opacity:1; }

/* ══════════════════════════════════════════
   TESTIMONIALS
══════════════════════════════════════════ */
#testimonials { padding:6rem 0; background:var(--green); }
.testimonials-header { text-align:center; margin-bottom:3.5rem; }
.testimonials-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; }
.t-card {
  padding:2.2rem 1.8rem; background:rgba(255,255,255,.1);
  border-radius:14px; border:1px solid rgba(255,255,255,.2);
  transition:transform .3s, background .3s;
  position:relative; overflow:hidden;
}
.t-card::before {
  content:'"'; position:absolute; top:-1rem; left:1rem;
  font-family:var(--font-head); font-size:7rem; line-height:1;
  color:rgba(255,255,255,.06); pointer-events:none;
}
.t-card:hover { transform:translateY(-4px); background:rgba(255,255,255,.16); }
.t-stars { display:flex; gap:.2rem; margin-bottom:1rem; }
.t-star { color:var(--yellow); font-size:.95rem; }
.t-text {
  font-family:var(--font-head); font-style:italic; font-weight:300;
  font-size:.97rem; color:rgba(255,255,255,.88);
  line-height:1.8; margin-bottom:1.4rem;
}
.t-author { display:flex; align-items:center; gap:.9rem; }
.t-avatar {
  width:42px; height:42px; border-radius:50%;
  background:var(--yellow); display:flex; align-items:center;
  justify-content:center; font-family:var(--font-head);
  font-size:.95rem; font-weight:700; color:var(--white); flex-shrink:0;
}
.t-name { font-family:var(--font-ui); font-size:.85rem; font-weight:700; color:var(--white); }
.t-role { font-size:.7rem; color:rgba(255,255,255,.5); margin-top:.1rem; }

/* ══════════════════════════════════════════
   NEWSLETTER
══════════════════════════════════════════ */
#newsletter {
  padding:5rem 0; background:var(--yellow-light);
  border-top:3px solid var(--yellow);
  border-bottom:3px solid var(--yellow);
}
.nl-inner { max-width:540px; margin:0 auto; text-align:center; }
.nl-eyebrow {
  font-family:var(--font-ui); font-size:.68rem; font-weight:700;
  letter-spacing:.3em; text-transform:uppercase; color:var(--yellow); margin-bottom:.7rem;
}
.nl-title {
  font-family:var(--font-head); font-size:clamp(1.6rem,3.2vw,2.3rem);
  font-weight:700; color:var(--dark-text); margin-bottom:.9rem;
}
.nl-desc {
  font-size:.93rem; color:var(--grey-text); margin-bottom:1.8rem;
  font-family:var(--font-head); font-style:italic; font-weight:300;
}
.nl-form { display:flex; gap:.7rem; max-width:400px; margin:0 auto; }
.nl-input {
  flex:1; padding:.78rem 1.1rem;
  background:var(--white); border:2px solid var(--border);
  border-radius:6px; color:var(--dark-text);
  font-family:var(--font-body); font-size:.88rem; outline:none; transition:border-color .25s;
}
.nl-input::placeholder { color:var(--grey-mid); }
.nl-input:focus { border-color:var(--green); }

/* ══════════════════════════════════════════
   FOOTER
══════════════════════════════════════════ */
footer {
  background:var(--green-dark);
  border-top:4px solid var(--green);
  padding:4.5rem 0 2rem;
}
.footer-grid {
  display:grid; grid-template-columns:2fr 1fr 1fr 1.2fr;
  gap:3.5rem; margin-bottom:3.5rem;
}
.footer-logo-wrap { display:flex; align-items:center; gap:.8rem; text-decoration:none; margin-bottom:1.1rem; }
.footer-logo-circle { width:38px; height:38px; border-radius:50%; background:var(--yellow); display:flex; align-items:center; justify-content:center; font-size:1rem; }
.footer-brand-name { font-family:var(--font-head); font-size:.92rem; font-weight:700; color:var(--white); }
.footer-brand-sub { display:block; font-family:var(--font-ui); font-size:.5rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-top:.05rem; }
.footer-desc { font-size:.83rem; color:rgba(255,255,255,.52); line-height:1.8; margin-bottom:1.4rem; }
.footer-socials { display:flex; gap:.65rem; }
.social-btn { width:37px; height:37px; border-radius:8px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center; font-size:.9rem; color:rgba(255,255,255,.52); text-decoration:none; transition:all .25s; cursor:none; }
.social-btn:hover { background:var(--yellow); border-color:var(--yellow); color:var(--white); }
.footer-col-title { font-family:var(--font-ui); font-size:.72rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--yellow); margin-bottom:1.2rem; }
.footer-links { list-style:none; display:flex; flex-direction:column; gap:.6rem; }
.footer-links a { font-size:.83rem; color:rgba(255,255,255,.52); text-decoration:none; transition:color .25s; display:flex; align-items:center; gap:.4rem; font-family:var(--font-ui); }
.footer-links a::before { content:'›'; color:var(--yellow); opacity:0; transition:opacity .25s; }
.footer-links a:hover { color:var(--white); }
.footer-links a:hover::before { opacity:1; }
.contact-row { display:flex; align-items:center; gap:.7rem; font-size:.83rem; color:rgba(255,255,255,.52); margin-bottom:.6rem; font-family:var(--font-ui); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; padding-top:1.8rem; border-top:1px solid rgba(255,255,255,.1); flex-wrap:wrap; gap:1rem; }
.footer-copy { font-family:var(--font-ui); font-size:.75rem; color:rgba(255,255,255,.32); }

/* ══════════════════════════════════════════
   MODAL
══════════════════════════════════════════ */
.modal-overlay {
  position:fixed; inset:0; z-index:9000;
  background:rgba(0,0,0,.5); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center; padding:2rem;
  opacity:0; visibility:hidden; transition:all .35s;
}
.modal-overlay.open { opacity:1; visibility:visible; }
.modal {
  background:var(--white); border-radius:16px;
  border-top:5px solid var(--green); padding:2.8rem;
  max-width:500px; width:100%;
  transform:translateY(22px) scale(.97); transition:all .35s;
  position:relative; box-shadow:0 30px 80px rgba(0,0,0,.2);
}
.modal-overlay.open .modal { transform:translateY(0) scale(1); }
.modal-close { position:absolute; top:1.1rem; right:1.1rem; background:var(--grey-light); border:none; border-radius:50%; width:33px; height:33px; display:flex; align-items:center; justify-content:center; cursor:none; color:var(--grey-text); font-size:1rem; transition:all .25s; }
.modal-close:hover { background:var(--red); color:var(--white); }
.modal-title { font-family:var(--font-head); font-size:1.4rem; font-weight:700; color:var(--dark-text); margin-bottom:.35rem; }
.modal-sub { font-size:.86rem; color:var(--grey-text); margin-bottom:1.8rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; }
.form-group { display:flex; flex-direction:column; gap:.38rem; margin-bottom:.85rem; }
.form-label { font-family:var(--font-ui); font-size:.62rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--grey-text); }
.form-input { padding:.76rem 1rem; background:var(--off-white); border:2px solid var(--border); border-radius:7px; color:var(--dark-text); font-family:var(--font-body); font-size:.88rem; outline:none; width:100%; transition:border-color .25s; }
.form-input::placeholder { color:var(--grey-mid); }
.form-input:focus { border-color:var(--green); background:var(--white); }
.form-textarea { padding:.76rem 1rem; min-height:105px; resize:vertical; background:var(--off-white); border:2px solid var(--border); border-radius:7px; color:var(--dark-text); font-family:var(--font-body); font-size:.88rem; outline:none; width:100%; transition:border-color .25s; }
.form-textarea::placeholder { color:var(--grey-mid); }
.form-textarea:focus { border-color:var(--green); background:var(--white); }

/* ── Scroll offset so fixed nav never hides section headings ── */
#hero, #stats, #ambassadors, #events, #gallery,
#testimonials, #newsletter, #contact-section {
  scroll-margin-top: var(--nav-h);
}

/* SCROLL TOP */
.scroll-top { position:fixed; bottom:1.8rem; right:1.8rem; z-index:800; width:44px; height:44px; border-radius:50%; background:var(--green); border:none; color:var(--white); font-size:1.05rem; cursor:none; display:flex; align-items:center; justify-content:center; opacity:0; transform:translateY(14px); transition:all .3s; box-shadow:0 6px 18px rgba(27,107,47,.3); }
.scroll-top.visible { opacity:1; transform:translateY(0); }
.scroll-top:hover { background:var(--green-dark); transform:translateY(-3px); }

/* ══ WHATSAPP FLOAT BUTTON ══ */
.wa-float {
  position:fixed; bottom:5.8rem; right:1.8rem; z-index:801;
  width:54px; height:54px; border-radius:50%;
  background:#25D366;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 22px rgba(37,211,102,.45);
  text-decoration:none; cursor:none;
  transition:transform .3s ease, box-shadow .3s ease;
  animation:waPulse 2.5s ease infinite;
}
.wa-float:hover {
  transform:scale(1.12);
  box-shadow:0 10px 30px rgba(37,211,102,.6);
  animation:none;
}
@keyframes waPulse {
  0%,100% { box-shadow:0 6px 22px rgba(37,211,102,.45); }
  50%      { box-shadow:0 6px 30px rgba(37,211,102,.75), 0 0 0 8px rgba(37,211,102,.12); }
}
.wa-icon {
  width:28px; height:28px; flex-shrink:0;
  fill:var(--white);
}
/* Tooltip */
.wa-tooltip {
  position:absolute; right:64px; bottom:50%;
  transform:translateY(50%);
  background:var(--white);
  border-radius:10px;
  padding:.65rem 1rem;
  box-shadow:0 8px 28px rgba(0,0,0,.14);
  white-space:nowrap;
  display:flex; flex-direction:column; gap:.15rem;
  opacity:0; pointer-events:none;
  transition:opacity .25s ease, transform .25s ease;
  transform:translateY(50%) translateX(6px);
  border-left:3px solid #25D366;
}
.wa-float:hover .wa-tooltip {
  opacity:1;
  transform:translateY(50%) translateX(0);
}
.wa-tooltip strong {
  font-family:var(--font-ui); font-size:.82rem;
  font-weight:700; color:var(--dark-text);
}
.wa-tooltip span {
  font-family:var(--font-ui); font-size:.74rem;
  color:var(--grey-text); font-weight:400;
}
/* Arrow on tooltip */
.wa-tooltip::after {
  content:'';
  position:absolute; right:-8px; top:50%;
  transform:translateY(-50%);
  border:8px solid transparent;
  border-left-color:var(--white);
  border-right:none;
}

/* ══ Fix email link colour in footer contact rows ══ */
.contact-row a {
  color:inherit;
  text-decoration:none;
}
.contact-row a:hover {
  color:var(--yellow);
  text-decoration:underline;
}

/* ══════════════════════════════════════════
   CCI-INSPIRED TRANSITIONS & ANIMATIONS
══════════════════════════════════════════ */

/* ── 1. Word-by-word headline reveal ── */
.word-reveal-wrap { overflow:hidden; display:inline-block; }
.word-reveal {
  display:inline-block;
  transform:translateY(110%);
  opacity:0;
  transition:transform .65s cubic-bezier(.16,1,.3,1), opacity .5s ease;
}
.word-reveal.in {
  transform:translateY(0);
  opacity:1;
}

/* ── 2. Clip-path section wipe (left→right) ── */
.clip-reveal {
  clip-path:inset(0 100% 0 0);
  transition:clip-path .85s cubic-bezier(.16,1,.3,1);
}
.clip-reveal.in { clip-path:inset(0 0% 0 0); }

/* ── 3. Slide-up with fade (staggered cards) ── */
.slide-up {
  opacity:0;
  transform:translateY(55px);
  transition:opacity .7s ease, transform .7s cubic-bezier(.16,1,.3,1);
}
.slide-up.in { opacity:1; transform:translateY(0); }

/* ── 4. Slide-in from left ── */
.slide-left {
  opacity:0; transform:translateX(-60px);
  transition:opacity .75s ease, transform .75s cubic-bezier(.16,1,.3,1);
}
.slide-left.in { opacity:1; transform:translateX(0); }

/* ── 5. Slide-in from right ── */
.slide-right {
  opacity:0; transform:translateX(60px);
  transition:opacity .75s ease, transform .75s cubic-bezier(.16,1,.3,1);
}
.slide-right.in { opacity:1; transform:translateX(0); }

/* ── 6. Scale-up reveal ── */
.scale-up {
  opacity:0; transform:scale(.88);
  transition:opacity .7s ease, transform .7s cubic-bezier(.16,1,.3,1);
}
.scale-up.in { opacity:1; transform:scale(1); }

/* ── 7. Image overlay wipe reveal ── */
.img-reveal-wrap { position:relative; overflow:hidden; display:block; }
.img-reveal-wrap img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.img-reveal-wrap::after {
  content:'';
  position:absolute; inset:0;
  background:var(--green);
  transform:scaleX(1);
  transform-origin:left;
  transition:transform .85s cubic-bezier(.16,1,.3,1);
}
.img-reveal-wrap.in::after { transform:scaleX(0); transform-origin:right; }
.img-reveal-wrap.in img { transform:scale(1); }

/* ── 8. Marquee band (large scrolling text strip) ── */
.marquee-band {
  background:var(--green);
  padding:1.1rem 0;
  overflow:hidden;
  white-space:nowrap;
  border-top:2px solid rgba(255,255,255,.1);
  border-bottom:2px solid rgba(255,255,255,.1);
  position:relative; z-index:4;
}
.marquee-track {
  display:inline-flex; gap:0;
  animation:marqueeScroll 22s linear infinite;
}
.marquee-track:hover { animation-play-state:paused; }
.marquee-item {
  font-family:var(--font-display);
  font-size:clamp(1.6rem,3vw,2.4rem);
  letter-spacing:.05em;
  color:rgba(255,255,255,.92);
  padding:0 2.5rem;
  display:inline-flex; align-items:center; gap:1.5rem;
  flex-shrink:0;
}
.marquee-item .sep {
  color:var(--yellow);
  font-size:1.2rem;
}
@keyframes marqueeScroll {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}

/* ── 9. Stats bar — count-up with pop ── */
.stat-num {
  transition:transform .3s ease;
}
.stat-item:hover .stat-num { transform:scale(1.08); color:var(--green); }

/* ── 10. Hero slide Ken-Burns already applied; add content stagger ── */
.slide-verse,
.slide-title,
.slide-sub,
.slide-btn-wrap {
  will-change:transform, opacity;
}

/* ── 11. Section divider lines that grow on scroll ── */
.grow-line {
  display:block; height:3px;
  background:linear-gradient(90deg, var(--green), var(--yellow));
  width:0; border-radius:2px;
  transition:width .9s cubic-bezier(.16,1,.3,1);
  margin:1.2rem 0 2rem;
}
.grow-line.in { width:80px; }
.grow-line.center { margin-left:auto; margin-right:auto; }

/* ── 12. Ambassador card stagger delay helpers ── */
.ambassador-card { transition-delay:0s; }
.ambassador-card:nth-child(1){ transition-delay:.05s; }
.ambassador-card:nth-child(2){ transition-delay:.14s; }
.ambassador-card:nth-child(3){ transition-delay:.23s; }
.ambassador-card:nth-child(4){ transition-delay:.32s; }
.ambassador-card:nth-child(5){ transition-delay:.41s; }
.ambassador-card:nth-child(6){ transition-delay:.50s; }

/* ── 13. Gallery item stagger ── */
.g-item.slide-up:nth-child(1) { transition-delay:.04s; }
.g-item.slide-up:nth-child(2) { transition-delay:.09s; }
.g-item.slide-up:nth-child(3) { transition-delay:.14s; }
.g-item.slide-up:nth-child(4) { transition-delay:.19s; }
.g-item.slide-up:nth-child(5) { transition-delay:.24s; }
.g-item.slide-up:nth-child(6) { transition-delay:.29s; }
.g-item.slide-up:nth-child(7) { transition-delay:.34s; }
.g-item.slide-up:nth-child(8) { transition-delay:.39s; }
.g-item.slide-up:nth-child(9) { transition-delay:.44s; }
.g-item.slide-up:nth-child(10){ transition-delay:.49s; }
.g-item.slide-up:nth-child(11){ transition-delay:.54s; }
.g-item.slide-up:nth-child(12){ transition-delay:.59s; }

/* ── 14. Testimonial card parallax tilt ── */
.t-card {
  transform-style:preserve-3d;
  will-change:transform;
}

/* ── 15. Nav logo slight bounce on load ── */
@keyframes logoBounce {
  0%   { transform:scale(.6) rotate(-15deg); opacity:0; }
  70%  { transform:scale(1.1) rotate(3deg); opacity:1; }
  100% { transform:scale(1) rotate(0deg); opacity:1; }
}
.nav-logo-circle {
  animation:logoBounce .8s cubic-bezier(.16,1,.3,1) .3s both;
}

/* ── 16. Section header script label animation ── */
.script-label {
  opacity:0; transform:translateX(-20px);
  transition:opacity .6s ease, transform .6s ease;
}
.script-label.in { opacity:1; transform:translateX(0); }

/* ── 17. Hero display font ── */
.slide-title {
  font-family:var(--font-display);
  letter-spacing:.03em;
}

/* ── 18. Slide-sub uses DM Sans italic ── */
.slide-sub { font-family:var(--font-body); font-style:italic; font-weight:300; }

/* ── 19. Nav links DM Sans ── */
.nav-links a { font-family:var(--font-ui); font-weight:600; }

/* ── 20. Ambassador name Bebas Neue ── */
.a-name { font-family:var(--font-display); font-size:1.35rem; letter-spacing:.04em; font-weight:400; }
.event-name { font-family:var(--font-display); font-size:1.6rem; letter-spacing:.04em; font-weight:400; }
.stat-num { font-family:var(--font-display); letter-spacing:.02em; }
.footer-brand-name { font-family:var(--font-display); font-size:1.3rem; letter-spacing:.06em; font-weight:400; }
.t-name { font-family:var(--font-display); font-size:1.1rem; letter-spacing:.04em; font-weight:400; }
.nl-title { font-family:var(--font-display); font-size:clamp(2.2rem,4vw,3.2rem); letter-spacing:.03em; font-weight:400; }

/* ── reveal = slide-up alias for remaining elements ── */
.reveal {
  opacity:0; transform:translateY(28px);
  transition:opacity .7s ease, transform .7s ease;
}
.reveal.visible, .reveal.in { opacity:1; transform:translateY(0); }

/* ── Stat item stagger delays ── */
.stat-item:nth-child(1){ transition-delay:.05s; }
.stat-item:nth-child(2){ transition-delay:.15s; }
.stat-item:nth-child(3){ transition-delay:.25s; }
.stat-item:nth-child(4){ transition-delay:.35s; }

/* ── Fix ambassador photo z-index when doubled as img-reveal-wrap ── */
.ambassador-photo.img-reveal-wrap { height:240px; }
.ambassador-photo.img-reveal-wrap::after { z-index:2; }
.ambassador-photo.img-reveal-wrap .a-photo-grad { z-index:3; }
.ambassador-photo.img-reveal-wrap .a-role-tag   { z-index:4; }
/* ── Fix event image ── */
.event-img.img-reveal-wrap { height:200px; }
.event-img.img-reveal-wrap::after { z-index:2; }
.event-img.img-reveal-wrap .event-badge { z-index:4; }

/* ══════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════ */
@media (max-width:1100px) {
  .ambassadors-grid { grid-template-columns:1fr 1fr; }
  .gallery-grid     { grid-template-columns:repeat(3,1fr); }
  .testimonials-grid { grid-template-columns:1fr 1fr; }
  .footer-grid      { grid-template-columns:1fr 1fr; gap:2.5rem; }
  .stats-grid       { grid-template-columns:1fr 1fr; gap:1.4rem; }
}
@media (max-width:768px) {
  :root { --nav-h:64px; }
  .nav-links, .nav-cta  { display:none; }
  .hamburger            { display:flex; }
  .ambassadors-grid     { grid-template-columns:1fr; max-width:440px; margin:0 auto; }
  .gallery-grid         { grid-template-columns:repeat(2,1fr); }
  .testimonials-grid    { grid-template-columns:1fr; max-width:480px; margin:0 auto; }
  .footer-grid          { grid-template-columns:1fr; gap:2rem; }
  .nl-form              { flex-direction:column; }
  .form-row             { grid-template-columns:1fr; }
  .hero-arrow           { width:40px; height:40px; font-size:1.1rem; }
  .hero-arrow-left      { left:.8rem; }
  .hero-arrow-right     { right:.8rem; }
  .hero-scroll          { display:none; }
}
@media (max-width:520px) {
  .stats-grid   { grid-template-columns:1fr 1fr; }
  .gallery-grid { grid-template-columns:1fr 1fr; gap:.7rem; }
  .slide-title  { font-size:clamp(2.2rem,9vw,3.5rem); }
}
@media (max-width:380px) {
  .container    { padding:0 1rem; }
  .slide-title  { font-size:2rem; }
  .gallery-grid { grid-template-columns:1fr 1fr; gap:.5rem; }
}
