/* ═══════════════════════════════════════════════════════════════════════════
   africa-connect.css — Self-contained styling for the Africa Connect page
   ─────────────────────────────────────────────────────────────────────────
   WHY ITS OWN STYLESHEET: this page previously reused .cpt-hero (from
   cpt-display.css, loaded only in CPT context) and .tdp-* (from homepage.css,
   loaded only on the front page). Neither stylesheet loads on a Page template,
   so the page rendered as unstyled HTML. Everything here is scoped to .ac-
   and ships with the page, so it cannot break again.

   Inherits the brand palette; introduces no global selectors.
═══════════════════════════════════════════════════════════════════════════ */

.ac{
  --ac-gold:#c8b28a;
  --ac-gold-lt:#e8d4a8;
  --ac-ink:#f5f1e8;
  --ac-muted:rgba(245,241,232,.62);
  --ac-bg:#0b1310;
  --ac-panel:rgba(255,255,255,.04);
  --ac-line:rgba(200,178,138,.18);
  --ac-serif:"Cormorant Garamond",Georgia,serif;
  background:var(--ac-bg);
  color:var(--ac-ink);
  position:relative;
  z-index:2;
}
.ac *{ box-sizing:border-box; }
.ac__wrap{ width:min(1180px,92vw); margin:0 auto; }

/* ── HERO ─────────────────────────────────────────────────────────────── */
.ac-hero{
  position:relative; min-height:min(88vh,760px);
  display:flex; align-items:flex-end;
  padding:clamp(3rem,9vw,7rem) 0 clamp(2.5rem,5vw,4rem);
  overflow:hidden;
}
.ac-hero__bg{
  position:absolute; inset:0; background:#0b1310 center/cover no-repeat;
  transform:scale(1.04); animation:acDrift 26s ease-in-out infinite alternate;
}
@keyframes acDrift{ to{ transform:scale(1.12) translateY(-1.5%); } }
.ac-hero__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(to top, #0b1310 4%, rgba(11,19,16,.72) 40%, rgba(11,19,16,.35) 100%),
    linear-gradient(to right, rgba(11,19,16,.85) 0%, transparent 65%);
}
.ac-hero__inner{ position:relative; z-index:2; width:min(1180px,92vw); margin:0 auto; }
.ac-crumb{ font-size:.78rem; letter-spacing:.1em; color:var(--ac-muted); margin-bottom:1.4rem; }
.ac-crumb a{ color:var(--ac-gold); text-decoration:none; }
.ac-kick{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.68rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--ac-gold); margin-bottom:1rem;
}
.ac-kick::before{
  content:''; width:6px; height:6px; border-radius:50%;
  background:var(--ac-gold); box-shadow:0 0 0 4px rgba(200,178,138,.18);
}
.ac-hero__title{
  font-family:var(--ac-serif); font-weight:300; line-height:.94;
  font-size:clamp(3rem,9vw,7rem); margin:0 0 1.4rem; color:#fff;
  text-shadow:0 4px 40px rgba(0,0,0,.5);
}
.ac-hero__title em{ font-style:italic; color:var(--ac-gold-lt); display:block; }
.ac-hero__lede{
  font-size:clamp(1rem,1.6vw,1.2rem); line-height:1.75;
  color:rgba(245,241,232,.85); max-width:60ch; margin:0 0 2rem;
}

/* ── BUTTONS ──────────────────────────────────────────────────────────── */
.ac-btns{ display:flex; flex-wrap:wrap; gap:.7rem; }
.ac-btn{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.95rem 1.9rem; border-radius:100px; text-decoration:none;
  font-size:.9rem; font-weight:600; letter-spacing:.02em;
  border:1px solid transparent; cursor:pointer; transition:all .3s ease;
}
.ac-btn--gold{ background:var(--ac-gold); color:#0b1310; }
.ac-btn--gold:hover{ background:var(--ac-gold-lt); transform:translateY(-2px); box-shadow:0 12px 30px rgba(200,178,138,.25); }
.ac-btn--ghost{ border-color:rgba(245,241,232,.28); color:var(--ac-ink); }
.ac-btn--ghost:hover{ border-color:var(--ac-gold); color:var(--ac-gold); }
.ac-btn--wa{ background:rgba(37,211,102,.12); border-color:rgba(37,211,102,.4); color:#25d366; }
.ac-btn--wa:hover{ background:rgba(37,211,102,.2); }

/* ── STATS BAR ────────────────────────────────────────────────────────── */
.ac-stats{
  position:relative; z-index:3; margin-top:-2.5rem;
  background:rgba(13,22,19,.92); backdrop-filter:blur(20px);
  border:1px solid var(--ac-line); border-radius:20px;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  overflow:hidden;
}
.ac-stat{ padding:1.8rem 1.4rem; text-align:center; border-right:1px solid var(--ac-line); }
.ac-stat:last-child{ border-right:0; }
.ac-stat__n{
  font-family:var(--ac-serif); font-size:clamp(2rem,4vw,2.9rem);
  font-weight:300; color:var(--ac-gold-lt); line-height:1; margin-bottom:.35rem;
}
.ac-stat__l{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ac-muted); }

/* ── SECTIONS ─────────────────────────────────────────────────────────── */
.ac-sec{ padding:clamp(3.5rem,8vw,6.5rem) 0; }
.ac-sec--alt{ background:rgba(255,255,255,.018); border-block:1px solid rgba(255,255,255,.05); }
.ac-head{ max-width:70ch; margin-bottom:clamp(2rem,4vw,3.2rem); }
.ac-head--center{ margin-inline:auto; text-align:center; }
.ac-h2{
  font-family:var(--ac-serif); font-weight:300; line-height:1.08;
  font-size:clamp(2rem,4.6vw,3.4rem); margin:.6rem 0 1rem; color:#fff;
}
.ac-h2 em{ font-style:italic; color:var(--ac-gold-lt); }
.ac-sub{ font-size:1rem; line-height:1.8; color:var(--ac-muted); margin:0; }

/* ── CATEGORY CARDS (with imagery) ───────────────────────────────────── */
.ac-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:1.1rem;
}
.ac-card{
  position:relative; display:flex; flex-direction:column;
  border-radius:18px; overflow:hidden; cursor:pointer; text-align:left;
  background:var(--ac-panel); border:1px solid rgba(255,255,255,.08);
  font-family:inherit; color:inherit; padding:0;
  transition:transform .35s cubic-bezier(.16,1,.3,1), border-color .35s ease;
}
.ac-card:hover{ transform:translateY(-5px); border-color:rgba(200,178,138,.45); }
.ac-card:focus-visible{ outline:2px solid var(--ac-gold); outline-offset:3px; }
.ac-card__img{
  position:relative; aspect-ratio:16/10; background:#0d1614 center/cover no-repeat;
}
.ac-card__img::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(11,19,16,.95), rgba(11,19,16,.15));
}
.ac-card__icon{
  position:absolute; left:1rem; bottom:1rem; z-index:2;
  width:44px; height:44px; border-radius:12px; display:grid; place-items:center;
  background:rgba(11,19,16,.75); border:1px solid var(--ac-line);
  font-size:1.3rem; backdrop-filter:blur(8px);
}
.ac-card__body{ padding:1.2rem 1.3rem 1.4rem; display:flex; flex-direction:column; flex:1; }
.ac-card__title{
  font-family:var(--ac-serif); font-size:1.35rem; font-weight:400;
  margin:0 0 .5rem; color:#fff; line-height:1.2;
}
.ac-card__desc{ font-size:.88rem; line-height:1.65; color:var(--ac-muted); margin:0 0 1rem; flex:1; }
.ac-card__cta{
  font-size:.78rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ac-gold); display:inline-flex; align-items:center; gap:.4rem;
}
.ac-card:hover .ac-card__cta{ gap:.7rem; }

/* ── HOW IT WORKS ─────────────────────────────────────────────────────── */
.ac-steps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.4rem; }
.ac-step{ position:relative; padding-top:2.6rem; }
.ac-step__n{
  position:absolute; top:0; left:0;
  font-family:var(--ac-serif); font-size:3.2rem; font-weight:300;
  color:rgba(200,178,138,.22); line-height:1;
}
.ac-step h3{ font-size:1.1rem; margin:0 0 .5rem; color:#fff; font-weight:600; }
.ac-step p{ font-size:.9rem; line-height:1.7; color:var(--ac-muted); margin:0; }

/* ── PROOF / WHY US ──────────────────────────────────────────────────── */
.ac-proof{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem; }
.ac-proof__item{
  padding:1.6rem 1.4rem; border-radius:16px;
  background:var(--ac-panel); border:1px solid rgba(255,255,255,.07);
}
.ac-proof__ic{ font-size:1.6rem; display:block; margin-bottom:.7rem; }
.ac-proof__item h3{ font-size:1.05rem; margin:0 0 .45rem; color:#fff; }
.ac-proof__item p{ font-size:.87rem; line-height:1.65; color:var(--ac-muted); margin:0; }

/* ── FORM ─────────────────────────────────────────────────────────────── */
.ac-form{
  max-width:820px; margin:0 auto; padding:clamp(1.6rem,4vw,2.8rem);
  border-radius:22px; background:rgba(255,255,255,.035);
  border:1px solid var(--ac-line);
}
.ac-form__grid{ display:grid; grid-template-columns:1fr 1fr; gap:0 1.1rem; }
.ac-field{ margin-bottom:1.1rem; }
.ac-field label{
  display:block; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ac-gold); margin-bottom:.45rem;
}
.ac-field input,.ac-field select,.ac-field textarea{
  width:100%; padding:.9rem 1.1rem; border-radius:12px; font-size:.95rem;
  background:rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.12);
  color:var(--ac-ink); font-family:inherit; transition:border-color .25s ease;
}
.ac-field input:focus,.ac-field select:focus,.ac-field textarea:focus{
  outline:none; border-color:var(--ac-gold); box-shadow:0 0 0 3px rgba(200,178,138,.14);
}
.ac-field select option{ background:#0d1614; color:var(--ac-ink); }
.ac-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.ac-status{ font-size:.9rem; margin:1rem 0 0; }
.ac-status.is-ok{ color:#6fd39a; }
.ac-status.is-err{ color:#e88b6f; }

/* ── FAQ ──────────────────────────────────────────────────────────────── */
.ac-faq{ max-width:820px; margin:0 auto; }
.ac-faq details{
  border-bottom:1px solid rgba(255,255,255,.09); padding:1.1rem 0;
}
.ac-faq summary{
  cursor:pointer; font-size:1.02rem; color:#fff; font-weight:500;
  list-style:none; display:flex; justify-content:space-between; gap:1rem;
}
.ac-faq summary::-webkit-details-marker{ display:none; }
.ac-faq summary::after{ content:'+'; color:var(--ac-gold); font-size:1.4rem; line-height:1; }
.ac-faq details[open] summary::after{ content:'−'; }
.ac-faq p{ font-size:.92rem; line-height:1.8; color:var(--ac-muted); margin:.8rem 0 0; }

/* ── CLOSING CTA ──────────────────────────────────────────────────────── */
.ac-final{ text-align:center; }
.ac-final .ac-btns{ justify-content:center; }

@media(max-width:760px){
  .ac-form__grid{ grid-template-columns:1fr; }
  .ac-stat{ border-right:0; border-bottom:1px solid var(--ac-line); }
}
@media(prefers-reduced-motion:reduce){
  .ac-hero__bg{ animation:none; }
  .ac-card{ transition:none; }
}

/* ── PROGRAMME DETAIL ─────────────────────────────────────────────────── */
.ac-prog{ display:flex; flex-direction:column; gap:.7rem; }
.ac-prog__item{
  border:1px solid rgba(255,255,255,.09); border-radius:16px;
  background:var(--ac-panel); overflow:hidden;
  transition:border-color .3s ease;
}
.ac-prog__item[open]{ border-color:rgba(200,178,138,.4); }
.ac-prog__sum{
  display:flex; align-items:center; gap:1rem;
  padding:1.15rem 1.3rem; cursor:pointer; list-style:none;
}
.ac-prog__sum::-webkit-details-marker{ display:none; }
.ac-prog__sum::after{
  content:'+'; margin-left:auto; color:var(--ac-gold);
  font-size:1.5rem; line-height:1; flex:none;
}
.ac-prog__item[open] .ac-prog__sum::after{ content:'−'; }
.ac-prog__ic{
  width:44px; height:44px; flex:none; border-radius:12px;
  display:grid; place-items:center; font-size:1.35rem;
  background:rgba(200,178,138,.1); border:1px solid var(--ac-line);
}
.ac-prog__sumtext strong{ display:block; font-size:1.08rem; color:#fff; margin-bottom:.15rem; }
.ac-prog__sumtext span{ display:block; font-size:.87rem; color:var(--ac-muted); line-height:1.45; }

.ac-prog__body{ padding:0 1.3rem 1.4rem; }
.ac-prog__intro{
  font-size:.98rem; line-height:1.8; color:rgba(245,241,232,.8);
  padding:1rem 0 1.2rem; margin:0; border-top:1px solid rgba(255,255,255,.07);
}
.ac-prog__cols{ display:grid; grid-template-columns:1fr 1fr; gap:1.6rem; margin-bottom:1.4rem; }
.ac-prog__col h4{
  font-size:.7rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ac-gold); margin:0 0 .7rem;
}
.ac-prog__list{ list-style:none; padding:0; margin:0; }
.ac-prog__list li{
  position:relative; padding-left:1.5rem; margin-bottom:.55rem;
  font-size:.88rem; line-height:1.6; color:rgba(245,241,232,.75);
}
.ac-prog__list--yes li::before{
  content:'✓'; position:absolute; left:0; color:#6fd39a; font-weight:700;
}
.ac-prog__list--you li::before{
  content:'→'; position:absolute; left:0; color:var(--ac-muted);
}

.ac-prog__facts{ display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:1.2rem; }
.ac-prog__fact{
  padding:.65rem 1rem; border-radius:12px; flex:1; min-width:200px;
  background:rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.07);
}
.ac-prog__fact span{
  display:block; font-size:.66rem; letter-spacing:.13em; text-transform:uppercase;
  color:var(--ac-muted); margin-bottom:.2rem;
}
.ac-prog__fact strong{ font-size:.88rem; color:var(--ac-gold-lt); font-weight:500; line-height:1.4; }

.ac-prog__honest{
  font-size:.88rem; line-height:1.7; color:rgba(245,241,232,.72);
  padding:.9rem 1.1rem; margin:0 0 1.3rem; border-radius:12px;
  background:rgba(200,178,138,.07); border-left:3px solid var(--ac-gold);
}
.ac-prog__honest strong{ color:var(--ac-gold-lt); }

@media(max-width:700px){
  .ac-prog__cols{ grid-template-columns:1fr; gap:1.2rem; }
  .ac-prog__sum{ padding:1rem; gap:.8rem; }
  .ac-prog__body{ padding:0 1rem 1.2rem; }
}
