:root{
  --indigo:#1d2a4d;
  --indigo-deep:#141d38;
  --gold:#c8952b;
  --gold-light:#e6b755;
  --terra:#9c4a2a;
  --sand:#f6efe2;
  --sand-2:#efe4cf;
  --ink:#2c2418;
  --ink-soft:#5c5140;
  --cream:#fffdf8;
  --border:#e3d5b8;
  --shadow:0 10px 30px rgba(29,42,77,.10);
  --maxw:1080px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Iowan Old Style','Palatino Linotype',Palatino,Georgia,serif;
  color:var(--ink);
  background:var(--sand);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Trajan Pro','Optima','Gill Sans',Georgia,serif;line-height:1.2;letter-spacing:.01em;}
a{color:var(--terra);text-decoration:none;}
a:hover{text-decoration:underline;}
img{max-width:100%;}

/* Decorative pattern strip */
.band{
  height:14px;
  background:repeating-linear-gradient(45deg, var(--gold) 0 12px, var(--indigo) 12px 24px, var(--terra) 24px 36px);
  opacity:.9;
}

/* Header / nav */
header.site{
  position:sticky;top:0;z-index:50;
  background:rgba(20,29,56,.97);
  backdrop-filter:blur(6px);
  color:var(--cream);
  border-bottom:2px solid var(--gold);
}
.nav-inner{
  max-width:var(--maxw);margin:0 auto;padding:.7rem 1.2rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.brand{display:flex;align-items:center;gap:.6rem;font-family:'Trajan Pro','Optima',Georgia,serif;font-weight:700;font-size:1.15rem;color:var(--gold-light);letter-spacing:.05em;}
.brand a{color:var(--gold-light);}
.brand a:hover{text-decoration:none;}
.brand .dot{width:14px;height:14px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(200,149,43,.25);}
.brand .sub{font-family:'Gill Sans','Optima',sans-serif;font-weight:400;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sand);opacity:.75;margin-left:.55rem;}
@media(max-width:480px){.brand .sub{display:none;}}
nav.site a{color:var(--sand);margin-left:1.1rem;font-family:'Gill Sans','Optima',sans-serif;font-size:.9rem;letter-spacing:.04em;text-transform:uppercase;}
nav.site a:hover{color:var(--gold-light);text-decoration:none;}
nav.site a.active{color:var(--gold-light);border-bottom:2px solid var(--gold);padding-bottom:2px;}
@media(max-width:760px){nav.site{width:100%;display:flex;flex-wrap:wrap;}nav.site a{margin:.3rem .9rem .3rem 0;}}

/* Hero */
.hero{
  position:relative;
  background:
    radial-gradient(circle at 20% 20%, rgba(200,149,43,.25), transparent 45%),
    radial-gradient(circle at 80% 60%, rgba(156,74,42,.30), transparent 50%),
    linear-gradient(160deg,var(--indigo-deep),var(--indigo));
  color:var(--cream);
  padding:5rem 1.2rem 4rem;
  text-align:center;
  overflow:hidden;
}
.hero.compact{padding:3rem 1.2rem 2.6rem;}
/* Banner image behind hero, with dark overlay so text stays legible */
.hero.banner{
  background:
    linear-gradient(160deg, rgba(20,29,56,.86), rgba(29,42,77,.70)),
    var(--banner) center/cover no-repeat;
}
.hero.banner.compact{
  background:
    linear-gradient(160deg, rgba(20,29,56,.84), rgba(29,42,77,.66)),
    var(--banner) center/cover no-repeat;
}
.hero:after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle, rgba(255,255,255,.06) 1.5px, transparent 1.6px);
  background-size:26px 26px;opacity:.5;
}
.hero-inner{position:relative;max-width:820px;margin:0 auto;}
.hero .kicker{font-family:'Gill Sans',sans-serif;text-transform:uppercase;letter-spacing:.32em;font-size:.78rem;color:var(--gold-light);margin-bottom:1rem;}
.hero h1{font-size:clamp(2.2rem,6vw,4.2rem);margin:.2rem 0;color:var(--cream);}
.hero h1 .accent{color:var(--gold-light);}
.hero p.lead{font-size:1.2rem;color:#e8e0cf;max-width:640px;margin:1.2rem auto 2rem;}
.hero .cta a{
  display:inline-block;margin:.3rem .4rem;padding:.7rem 1.4rem;border-radius:999px;
  font-family:'Gill Sans',sans-serif;font-size:.9rem;letter-spacing:.05em;text-transform:uppercase;
}
.cta .primary{background:var(--gold);color:var(--indigo-deep);font-weight:700;}
.cta .primary:hover{background:var(--gold-light);text-decoration:none;}
.cta .ghost{border:1px solid rgba(255,255,255,.4);color:var(--cream);}
.cta .ghost:hover{border-color:var(--gold-light);color:var(--gold-light);text-decoration:none;}

/* Layout */
main{max-width:var(--maxw);margin:0 auto;padding:0 1.2rem;}
section.block{padding:4rem 0 3rem;border-bottom:1px solid var(--border);}
section.block:last-of-type{border-bottom:none;}
.eyebrow{font-family:'Gill Sans',sans-serif;text-transform:uppercase;letter-spacing:.28em;font-size:.72rem;color:var(--terra);margin-bottom:.5rem;}
section.block h2{font-size:clamp(1.8rem,4vw,2.6rem);margin:.1rem 0 1rem;color:var(--indigo);}
section.block h3{font-size:1.35rem;color:var(--terra);margin:2rem 0 .5rem;}
section.block p{font-size:1.06rem;color:var(--ink);}
.lead-para{font-size:1.15rem;color:var(--ink-soft);}

/* Cards grid */
.grid{display:grid;gap:1.2rem;margin-top:1.5rem;}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.grid.three{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.card{
  background:var(--cream);border:1px solid var(--border);border-radius:14px;
  padding:1.4rem 1.4rem 1.5rem;box-shadow:var(--shadow);
}
.card h3{margin-top:0;color:var(--indigo);font-size:1.2rem;}
.card .tag{display:inline-block;font-family:'Gill Sans',sans-serif;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;
  background:var(--sand-2);color:var(--ink-soft);padding:.2rem .6rem;border-radius:999px;margin-bottom:.6rem;}
.card p{font-size:.98rem;}

/* Section navigation cards (home) */
a.navcard{display:block;text-decoration:none;color:inherit;transition:transform .15s ease, box-shadow .15s ease;}
a.navcard:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(29,42,77,.16);text-decoration:none;}
a.navcard .more{display:inline-block;margin-top:.6rem;font-family:'Gill Sans',sans-serif;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--terra);}

/* Timeline */
.timeline{position:relative;margin:2rem 0 0;padding-left:28px;}
.timeline:before{content:"";position:absolute;left:9px;top:8px;bottom:8px;width:2px;
  background:linear-gradient(var(--gold),var(--terra));border-radius:2px;}
.tl-item{position:relative;margin-bottom:1.8rem;}
.tl-item:before{content:"";position:absolute;left:-25px;top:.45rem;width:14px;height:14px;border-radius:50%;
  background:var(--gold);border:3px solid var(--sand);box-shadow:0 0 0 1px var(--gold);}
.tl-item .yr{font-family:'Gill Sans',sans-serif;font-weight:700;color:var(--terra);letter-spacing:.03em;font-size:.95rem;}
.tl-item h4{margin:.1rem 0 .3rem;color:var(--indigo);font-size:1.12rem;}
.tl-item p{margin:.2rem 0;font-size:1rem;color:var(--ink);}

/* People */
.person{display:flex;gap:1rem;align-items:flex-start;}
.person .medallion{
  flex:0 0 56px;width:56px;height:56px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,var(--indigo),var(--terra));color:var(--gold-light);
  font-family:'Trajan Pro',Georgia,serif;font-weight:700;font-size:1.2rem;
}
.person h3{margin:0;font-size:1.15rem;color:var(--indigo);}
.person .role{font-family:'Gill Sans',sans-serif;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--terra);}

/* Books list */
.book{border-left:3px solid var(--gold);padding:.4rem 0 .4rem 1rem;margin:1rem 0;}
.book .title{font-weight:700;color:var(--indigo);}
.book .meta{font-size:.9rem;color:var(--ink-soft);}

/* Callout — light text forced over dark background (fixes visibility) */
.callout{background:linear-gradient(160deg,var(--indigo),var(--indigo-deep));color:var(--sand);
  border-radius:16px;padding:2rem;margin-top:1.5rem;box-shadow:var(--shadow);}
.callout h3{color:var(--gold-light);margin-top:0;}
section.block .callout p,.callout p{color:#efe7d6;}

/* Stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-top:1.5rem;}
.stat{background:var(--cream);border:1px solid var(--border);border-radius:12px;padding:1.2rem;text-align:center;}
.stat .num{font-family:'Trajan Pro',Georgia,serif;font-size:1.9rem;color:var(--terra);font-weight:700;}
.stat .lbl{font-family:'Gill Sans',sans-serif;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);}

/* Footer */
footer.site{background:var(--indigo-deep);color:var(--sand);padding:2.5rem 1.2rem;}
footer.site .fin{max-width:var(--maxw);margin:0 auto;}
footer.site h4{color:var(--gold-light);margin:0 0 .6rem;}
footer.site p{color:#e2d9c6;}
footer.site a{color:var(--gold-light);}
footer .sources{font-size:.82rem;color:#b9b19f;line-height:1.8;}
footer .sources a{color:#d6cbb0;}
.note{font-size:.86rem;color:var(--ink-soft);font-style:italic;}

/* Hausa word chips */
.lex{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;}
.chip{background:var(--sand-2);border:1px solid var(--border);border-radius:999px;padding:.35rem .8rem;font-size:.9rem;}
.chip b{color:var(--terra);}

/* Page intro (subpages) */
.pageintro{padding-top:2.5rem;}
