/* Ndulamo Academy — shared stylesheet */
:root{
  --green:#488349; --green-deep:#1E4426; --navy:#1E4F78; --gold:#B9913A; --teal:#68CBD1;
  --ink:#16201A; --ink-soft:#4C5A50; --paper:#FFFFFF; --wash:#EDF1EC; --rule:#D5DED4;
  --maxw:1100px;
  box-sizing:border-box; color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#10160F; --wash:#18231A; --ink:#E8EFE7; --ink-soft:#A8B8A9; --rule:#2C3A2D;
    color-scheme:dark;
  }
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:76px;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Archivo","Segoe UI",Roboto,system-ui,-apple-system,sans-serif;
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}

/* nav */
.nav{position:sticky;top:0;z-index:40;background:var(--green-deep);color:#fff}
.nav .wrap{display:flex;align-items:center;gap:14px;min-height:60px}
.nav img{width:32px}
.brandname{font-weight:700;font-size:15px;white-space:nowrap;text-decoration:none}
.navlinks{margin-left:auto;display:flex;gap:18px;font-size:14.5px;flex-wrap:wrap}
.navlinks a{text-decoration:none;opacity:.86;padding:4px 0;border-bottom:2px solid transparent}
.navlinks a:hover,.navlinks a[aria-current="page"]{opacity:1;border-bottom-color:var(--gold)}
@media (max-width:860px){.navlinks{display:none}}

/* page header (interior pages) */
.phead{background:var(--green-deep);color:#fff;padding:48px 0 52px}
.phead .eyebrow{font-size:12px;font-weight:700;color:var(--gold);margin-bottom:10px}
.phead h1{font-size:clamp(1.9rem,4.4vw,2.8rem);line-height:1.12;margin:0 0 16px;font-weight:800;
  letter-spacing:-.018em;max-width:19ch}
.phead p{font-size:1.05rem;color:#D9E6D8;max-width:52ch;margin:0}

/* hero (home) */
.hero{display:grid;grid-template-columns:1fr 1fr;background:var(--green-deep);color:#fff}
.hero-text{padding:56px 0 58px}
.hero-text .inner{max-width:calc(var(--maxw)/2 - 22px);margin-left:auto;padding:0 34px 0 22px}
.hero-photo{background-size:cover;background-position:center;min-height:470px}
@media (max-width:900px){
  .hero{grid-template-columns:1fr}
  .hero-photo{min-height:0;aspect-ratio:3/2;order:-1}
  .hero-text .inner{max-width:none;margin:0;padding:0 22px}
  .hero-text{padding:38px 0 44px}
}
.hero img.mark{width:84px;margin-bottom:22px}
.hero h1{font-size:clamp(2rem,4.6vw,3.1rem);line-height:1.09;margin:0 0 18px;font-weight:800;
  letter-spacing:-.018em;max-width:15ch}
.hero p.sell{font-size:1.04rem;max-width:40ch;margin:0 0 30px;color:#D9E6D8;line-height:1.55}
.doors{display:grid;gap:12px;max-width:430px}
.door{display:block;text-decoration:none;padding:17px 18px 19px;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.22)}
.door:hover{background:rgba(255,255,255,.13);border-color:var(--gold)}
.door b{display:block;font-size:1.02rem;font-weight:700;margin-bottom:4px}
.door span{display:block;font-size:14.3px;color:#C9DBC9;line-height:1.45}
.door.primary{background:var(--gold);border-color:var(--gold);color:#1A1407}
.door.primary:hover{background:#C9A049}
.door.primary span{color:#3A2E12}

/* sections */
section{padding:60px 0}
.wash{background:var(--wash)}
h2{font-size:clamp(1.5rem,3.4vw,2.05rem);line-height:1.18;margin:0 0 16px;font-weight:700;
  letter-spacing:-.012em;max-width:22ch}
h3{font-size:1.09rem;margin:0 0 7px;font-weight:700}
p{margin:0 0 15px;max-width:68ch}
.lede{font-size:1.09rem;color:var(--ink-soft);max-width:58ch}
.rule{height:3px;width:52px;background:var(--gold);margin-bottom:24px}
.meta{font-size:13.5px;color:var(--ink-soft)}

.feature{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:center}
.feature.flip .ftext{order:2}
@media (max-width:860px){.feature{grid-template-columns:1fr;gap:28px}.feature.flip .ftext{order:0}}
.fimg{width:100%;aspect-ratio:3/2;background-size:cover;background-position:center}

/* pillar / module grid */
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(246px,1fr));
  border-top:1px solid var(--rule);margin-top:32px}
.pillar{padding:24px 24px 26px;border-bottom:1px solid var(--rule);border-right:1px solid var(--rule)}
.pillar:last-child{border-right:none}
@media (max-width:860px){.pillar{border-right:none}}
.pillar h3{color:var(--green)}
.pillar ul{margin:10px 0 0;padding:0;list-style:none;font-size:14.8px;color:var(--ink-soft)}
.pillar li{padding:5px 0 5px 15px;position:relative;line-height:1.45}
.pillar li::before{content:"";position:absolute;left:0;top:12px;width:6px;height:6px;background:var(--gold)}

.freebar{margin-top:28px;padding:20px 22px;background:var(--green-deep);color:#D4E3D3;font-size:15.5px}
.freebar b{color:#fff}
.freebar p{margin:0;max-width:62ch}

/* course rows */
.course{display:grid;grid-template-columns:1fr auto;gap:10px 26px;align-items:start;
  padding:20px 0;border-bottom:1px solid var(--rule)}
.course:first-of-type{border-top:1px solid var(--rule)}
.course p{margin:4px 0 0;font-size:15px;color:var(--ink-soft);max-width:58ch}
.course h3 a{color:inherit}
.tag{display:inline-block;font-size:12.5px;font-weight:600;padding:4px 9px;border:1px solid var(--rule);
  color:var(--ink-soft);white-space:nowrap}
.tag.live{border-color:var(--green);color:var(--green);background:rgba(72,131,73,.08)}
@media (max-width:620px){.course{grid-template-columns:1fr}}

/* numbered steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:18px;margin-top:30px}
.step{background:var(--wash);padding:22px 22px 24px}
.stepnum{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  background:var(--green);color:#fff;font-weight:700;font-size:15px;margin-bottom:14px}
.step h3{margin-bottom:6px}
.step p{font-size:14px;margin:0;color:var(--ink-soft)}

/* status panel */
.statusbox{border:1px solid var(--rule);border-left:4px solid var(--navy);padding:22px 24px;
  background:var(--paper);max-width:540px}
.statusrow{display:flex;justify-content:space-between;gap:14px;padding:9px 0;
  border-bottom:1px solid var(--rule);font-size:15px}
.statusrow:last-of-type{border-bottom:none}
.statusrow span:last-child{font-weight:600;white-space:nowrap}
.yes{color:var(--green)}
.pending{color:var(--ink-soft)}

/* callout */
.callout{background:var(--wash);border-left:4px solid var(--gold);padding:20px 24px;margin:26px 0;
  max-width:70ch}
.callout p:last-child{margin-bottom:0}

/* verify form */
.vform{background:var(--wash);padding:26px;max-width:540px;margin-top:8px}
.vform label{display:block;font-weight:700;font-size:14.5px;margin-bottom:8px}
.vform input{width:100%;padding:13px 14px;font-size:16px;font-family:inherit;
  border:1px solid var(--rule);background:var(--paper);color:var(--ink)}
.vform button{margin-top:14px;background:var(--gold);color:#1A1407;border:0;padding:13px 26px;
  font-weight:700;font-size:16px;font-family:inherit;cursor:pointer}
.vform button:hover{background:#C9A049}
#vresult{margin-top:18px;font-size:15px;line-height:1.55}
#vresult .ok{color:var(--green);font-weight:700}
#vresult .no{color:var(--navy);font-weight:700}

/* cta + footer */
.cta{background:var(--navy);color:#fff}
.cta h2{color:#fff;max-width:20ch}
.cta p{color:#CBDCEA}
.btn{display:inline-block;background:var(--gold);color:#1A1407;text-decoration:none;font-weight:700;
  padding:14px 26px;margin-top:8px}
.btn:hover{background:#C9A049}
.btn.ghost{background:transparent;border:1px solid var(--rule);color:var(--ink)}
.btn.ghost:hover{border-color:var(--gold);background:transparent}

footer{background:var(--green-deep);color:#C5D6C4;font-size:14.5px;padding:40px 0 46px}
footer a{color:#fff}
footer .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:26px;margin-bottom:28px}
footer b{color:#fff;display:block;margin-bottom:8px}
footer ul{list-style:none;margin:0;padding:0}
footer li{padding:3px 0}
.legal{border-top:1px solid rgba(255,255,255,.17);padding-top:18px;font-size:13px;color:#A3B8A3;line-height:1.6}
