/* ============================================================
   RGOLF — Reverend George Ojih Legacy Foundation
   Design tokens
   ============================================================ */
:root{
  --navy:        #152341;
  --navy-deep:   #0d1729;
  --gold:        #c69a3e;
  --gold-soft:   #e4c988;
  --ivory:       #faf7f0;
  --ivory-2:     #f2ede1;
  --ink:         #1c1c1c;
  --ink-soft:    #4a4f5a;
  --line:        rgba(21,35,65,0.12);
  --radius:      2px;
  --font-display: 'Fraunces', Georgia, serif;
  --font-body:    'Work Sans', -apple-system, Segoe UI, Roboto, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--ivory);
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4,.display-font{
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--navy-deep);
}
a{ color: var(--navy); text-decoration:none; }
p{ color: var(--ink-soft); line-height:1.75; }

.eyebrow{
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
  display:inline-flex;
  align-items:center;
  gap:0.6rem;
}
.eyebrow::before{
  content:"";
  width: 28px; height: 1px;
  background: var(--gold);
  display:inline-block;
}

/* ---------- Signature motif: the flame rule ----------
   "Though his voice was silenced on earth, the message of his
   life continues to speak." A recurring lit-flame divider marks
   every place the story is carried forward. */
.flame-rule{
  display:flex; align-items:center; justify-content:center;
  gap: 0.9rem; margin: 0 0 1.75rem;
}
.flame-rule::before,.flame-rule::after{
  content:"";
  height:1px; width:64px;
  background: linear-gradient(90deg, transparent, var(--gold-soft));
}
.flame-rule::after{ background: linear-gradient(90deg, var(--gold-soft), transparent); }
.flame-rule svg{ width:18px; height:18px; flex:none; }

/* ---------- Navbar ---------- */
.navbar-rgolf{
  background: var(--ivory);
  border-bottom: 1px solid var(--line);
  padding-top: .9rem; padding-bottom: .9rem;
}
.navbar-rgolf .navbar-brand{
  display:flex; align-items:center; gap:.7rem;
  font-family: var(--font-display);
  font-weight:600; font-size:1.02rem;
  color: var(--navy-deep); line-height:1.15;
}
.navbar-rgolf .navbar-brand img{
  width:44px; height:44px; object-fit:cover; border-radius:50%;
  border: 2px solid var(--gold-soft);
}
.navbar-rgolf .brand-sub{
  display:block; font-family: var(--font-body);
  font-size:.68rem; letter-spacing:.08em; text-transform:uppercase;
  color: var(--ink-soft); font-weight:500;
}
.navbar-rgolf .nav-link{
  font-weight:500; color: var(--navy); margin: 0 .55rem;
  position:relative; padding: .4rem 0 !important;
}
.navbar-rgolf .nav-link.active{ color: var(--navy-deep); font-weight:600; }
.navbar-rgolf .nav-link.active::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px;
  height:2px; background: var(--gold);
}
.btn-donate{
  background: var(--navy-deep); color: var(--ivory);
  border: 1px solid var(--navy-deep);
  padding: .55rem 1.35rem; font-weight:600; font-size:.9rem;
  border-radius: var(--radius); letter-spacing:.02em;
}
.btn-donate:hover{ background: var(--gold); border-color: var(--gold); color: var(--navy-deep); }
.btn-outline-gold{
  border:1px solid var(--gold); color: var(--navy-deep);
  padding:.55rem 1.35rem; font-weight:600; border-radius: var(--radius);
}
.btn-outline-gold:hover{ background: var(--gold); color:var(--navy-deep); }

/* ---------- Hero slider ---------- */
.hero-carousel{ position:relative; }
.hero-carousel .carousel-item{
  min-height: 88vh;
  display:flex; align-items:center;
  color: var(--ivory);
  position: relative;
  overflow: hidden;
}
.hero-carousel .carousel-item::before{
  content:"";
  position:absolute; inset:0;
  pointer-events:none;
}
/* three distinct atmospheres per slide, same signature gold glow */
.hero-slide-1{ background: linear-gradient(135deg,#0d1729 0%, #16233f 55%, #1c2c4d 100%); }
.hero-slide-1::before{ background-image: radial-gradient(circle at 12% 20%, rgba(198,154,62,0.22), transparent 42%), radial-gradient(circle at 88% 85%, rgba(198,154,62,0.14), transparent 45%); }
.hero-slide-2{ background: linear-gradient(135deg,#111c33 0%, #1b2a4a 55%, #24365c 100%); }
.hero-slide-2::before{ background-image: radial-gradient(circle at 85% 15%, rgba(198,154,62,0.2), transparent 42%), radial-gradient(circle at 10% 90%, rgba(198,154,62,0.13), transparent 45%); }
.hero-slide-3{ background: linear-gradient(135deg,#0f1a30 0%, #182746 55%, #223454 100%); }
.hero-slide-3::before{ background-image: radial-gradient(circle at 50% 100%, rgba(198,154,62,0.22), transparent 50%), radial-gradient(circle at 15% 10%, rgba(198,154,62,0.13), transparent 45%); }

.hero-carousel .eyebrow{ color: var(--gold-soft); }
.hero-carousel .eyebrow::before{ background: var(--gold-soft); }
.hero-carousel h1{ color:#fff; font-size: clamp(2.1rem, 4vw, 3.35rem); line-height:1.12; }
.hero-carousel p.lead{ color: rgba(250,247,240,0.82); max-width: 620px; }
.hero-verse{
  border-left:2px solid var(--gold);
  padding-left: 1rem; margin-top:2.2rem;
  font-family: var(--font-display); font-style:italic;
  color: var(--gold-soft); max-width:520px; font-size:1.02rem;
}

.hero-carousel .carousel-indicators{
  bottom: 1.9rem; margin-bottom:0;
}
.hero-carousel .carousel-indicators [data-bs-target]{
  width:34px; height:3px; border-radius:2px;
  background-color: rgba(250,247,240,0.35);
  border:0; opacity:1; margin: 0 5px;
}
.hero-carousel .carousel-indicators .active{ background-color: var(--gold); }

.hero-carousel .carousel-control-prev,
.hero-carousel .carousel-control-next{
  width: 64px; opacity:1;
}
.hero-carousel .carousel-control-prev-icon,
.hero-carousel .carousel-control-next-icon{
  width: 2.4rem; height:2.4rem;
  border-radius: 50%;
  background-color: rgba(250,247,240,0.08);
  border: 1px solid rgba(250,247,240,0.28);
  background-size: 1.1rem;
  transition: background-color .2s ease, border-color .2s ease;
}
.hero-carousel .carousel-control-prev:hover .carousel-control-prev-icon,
.hero-carousel .carousel-control-next:hover .carousel-control-next-icon{
  background-color: var(--gold); border-color: var(--gold);
}
.hero-carousel .carousel-caption-custom{
  position:absolute; left:0; right:0; bottom: 4.6rem;
  font-size:.78rem; letter-spacing:.1em; text-transform:uppercase;
  color: rgba(250,247,240,0.5); text-align:center;
}
@media (max-width: 767.98px){
  .hero-carousel .carousel-item{ min-height: 78vh; }
  .hero-carousel .carousel-control-prev,
  .hero-carousel .carousel-control-next{ width: 44px; }
}

/* subpage header (smaller hero for interior pages) */
.page-header{
  background: var(--navy-deep); color:#fff;
  padding: 3.4rem 0 3.6rem; position:relative; overflow:hidden;
}
.page-header::before{
  content:"";
  position:absolute; inset:0;
  background-image: radial-gradient(circle at 90% 10%, rgba(198,154,62,0.16), transparent 50%);
}
.page-header h1{ color:#fff; }
.page-header p{ color: rgba(250,247,240,0.78); max-width:640px; }

/* ---------- Sections ---------- */
section{ padding: 5rem 0; }
.section-ivory-2{ background: var(--ivory-2); }
.section-navy{ background: var(--navy-deep); color: var(--ivory); }
.section-navy p{ color: rgba(250,247,240,0.75); }
.section-navy h2{ color:#fff; }

.section-head{ max-width: 640px; }
.section-head h2{ font-size: clamp(1.6rem, 2.6vw, 2.2rem); }

/* ---------- Cards ---------- */
.goal-card{
  background:#fff; border:1px solid var(--line);
  padding: 2.1rem 1.8rem; height:100%;
  border-radius: var(--radius);
  transition: transform .25s ease, box-shadow .25s ease;
}
.goal-card:hover{ transform: translateY(-4px); box-shadow: 0 18px 34px rgba(21,35,65,0.09); }
.goal-num{
  font-family: var(--font-display); font-size:.85rem; font-weight:600;
  color: var(--gold); letter-spacing:.06em;
}
.goal-icon{
  width:52px; height:52px; border-radius:50%;
  background: var(--ivory-2); display:flex; align-items:center; justify-content:center;
  margin-bottom:1.1rem; color: var(--navy-deep);
}
.goal-card h3{ font-size:1.12rem; margin-bottom:.6rem; }
.goal-card p{ font-size:.94rem; margin-bottom:0; }

.stat{
  text-align:center; padding: 0 1rem;
}
.stat .num{
  font-family: var(--font-display); font-weight:600;
  font-size: clamp(2.1rem, 3.4vw, 2.9rem); color: var(--gold-soft);
  line-height:1;
}
.stat .label{
  font-size:.82rem; letter-spacing:.06em; text-transform:uppercase;
  color: rgba(250,247,240,0.65); margin-top:.5rem;
}

.leader-card{ text-align:center; }
.leader-photo{
  width:150px; height:150px; border-radius:50%; object-fit:cover;
  margin: 0 auto 1.1rem; border: 3px solid var(--ivory-2);
  box-shadow: 0 10px 24px rgba(21,35,65,0.14);
}
.leader-photo.placeholder{
  display:flex; align-items:center; justify-content:center;
  background: var(--ivory-2); color: var(--gold);
  font-family: var(--font-display); font-size:2rem;
  border: 3px dashed var(--line);
}
.leader-card h4{ font-size:1.05rem; margin-bottom:.15rem; }
.leader-role{
  color: var(--gold); font-size:.8rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.06em; display:block; margin-bottom:.6rem;
}
.leader-card p{ font-size:.9rem; }

.program-card{
  background:#fff; border:1px solid var(--line); border-radius: var(--radius);
  padding: 2rem; height:100%;
}
.program-card .goal-icon{ background: var(--navy-deep); color: var(--gold-soft); }

.quote-block{
  font-family: var(--font-display); font-style:italic;
  font-size: clamp(1.2rem, 2vw, 1.55rem); color: var(--navy-deep);
  max-width: 780px; margin: 0 auto; text-align:center; line-height:1.5;
}
.quote-block cite{
  display:block; font-style:normal; font-family: var(--font-body);
  font-size:.85rem; font-weight:600; letter-spacing:.05em;
  text-transform:uppercase; color: var(--gold); margin-top:1.2rem;
}

/* timeline (biography) */
.timeline{ position:relative; padding-left: 2.1rem; }
.timeline::before{
  content:""; position:absolute; left:6px; top:6px; bottom:6px; width:1px;
  background: var(--line);
}
.timeline-item{ position:relative; padding-bottom: 2rem; }
.timeline-item:last-child{ padding-bottom:0; }
.timeline-item::before{
  content:""; position:absolute; left:-2.1rem; top:.3rem;
  width:11px; height:11px; border-radius:50%;
  background: var(--gold); border:2px solid var(--ivory);
  box-shadow:0 0 0 1px var(--gold);
}
.timeline-item h4{ font-size:1rem; margin-bottom:.2rem; }
.timeline-item .when{
  font-size:.78rem; text-transform:uppercase; letter-spacing:.05em;
  color: var(--gold); font-weight:600;
}
.timeline-item p{ font-size:.92rem; margin-top:.35rem; margin-bottom:0; }

.gallery-ph{
  aspect-ratio:1/1; background: var(--ivory-2); border:1px dashed var(--line);
  border-radius: var(--radius); display:flex; align-items:center; justify-content:center;
  color: var(--ink-soft); font-size:.8rem; text-align:center; padding:1rem;
}

/* CTA band */
.cta-band{
  background: linear-gradient(120deg, var(--navy-deep), var(--navy));
  color:#fff; border-radius: var(--radius); padding: 3rem;
  position:relative; overflow:hidden;
}
.cta-band::after{
  content:""; position:absolute; right:-40px; top:-40px; width:220px; height:220px;
  border-radius:50%; background: radial-gradient(circle, rgba(198,154,62,0.28), transparent 70%);
}

/* Contact page */
.contact-card{
  background:#fff; border:1px solid var(--line); border-radius: var(--radius);
  padding: 2.3rem;
}
.form-control, .form-select{
  border-radius: var(--radius); border:1px solid var(--line);
  padding: .7rem .9rem; font-size:.95rem;
}
.form-control:focus, .form-select:focus{
  border-color: var(--gold); box-shadow: 0 0 0 3px rgba(198,154,62,0.18);
}
.info-row{ display:flex; gap:1rem; align-items:flex-start; margin-bottom:1.6rem; }
.info-row .icon-wrap{
  width:42px; height:42px; border-radius:50%; background: var(--ivory-2);
  display:flex; align-items:center; justify-content:center; flex:none; color: var(--navy-deep);
}
.social-row a{
  width:38px; height:38px; border-radius:50%; border:1px solid var(--line);
  display:inline-flex; align-items:center; justify-content:center;
  color: var(--navy); margin-right:.5rem; transition: all .2s ease;
}
.social-row a:hover{ background: var(--navy-deep); color:#fff; border-color: var(--navy-deep); }

/* ---------- Footer ---------- */
.footer-rgolf{
  background: var(--navy-deep); color: rgba(250,247,240,0.72);
  padding: 4rem 0 1.5rem; font-size:.92rem;
}
.footer-rgolf h5{
  color:#fff; font-family: var(--font-display); font-size:1.05rem; margin-bottom:1.1rem;
}
.footer-rgolf a{ color: rgba(250,247,240,0.72); }
.footer-rgolf a:hover{ color: var(--gold-soft); }
.footer-rgolf ul{ list-style:none; padding:0; margin:0; }
.footer-rgolf li{ margin-bottom:.55rem; }
.footer-brand{
  display:flex; align-items:center; gap:.7rem; margin-bottom:1rem;
}
.footer-brand img{ width:42px; height:42px; border-radius:50%; object-fit:cover; }
.footer-brand span{ font-family: var(--font-display); color:#fff; font-weight:600; }
.footer-bottom{
  border-top:1px solid rgba(250,247,240,0.12); margin-top:2.5rem; padding-top:1.5rem;
  font-size:.82rem; color: rgba(250,247,240,0.5);
}
.footer-social a{
  width:34px; height:34px; border-radius:50%; border:1px solid rgba(250,247,240,0.2);
  display:inline-flex; align-items:center; justify-content:center;
  color: rgba(250,247,240,0.75); margin-right:.5rem;
}
.footer-social a:hover{ background: var(--gold); border-color: var(--gold); color: var(--navy-deep); }

@media (max-width: 991.98px){
  section{ padding: 3.5rem 0; }
  .navbar-rgolf .nav-link{ margin:.15rem 0; }
}
