:root{
  --navy:#062B5C; --blue:#0B5CAD; --electric:#1E88E5; --sky:#EAF4FF; --pale:#F4F8FC;
  --ink:#0B1B33; --white:#FFFFFF; --line:rgba(6,43,92,0.12);
  --sans:'Manrope', system-ui, sans-serif; --serif:'Newsreader', Georgia, serif;
  box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
*{box-sizing:inherit; margin:0; padding:0;}
html{scroll-behavior:smooth; scroll-padding-top:70px;}
body{font-family:var(--sans); color:var(--ink); background:var(--white); line-height:1.5; overflow-x:hidden;}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
section{padding:96px 0;}
@media(max-width:720px){ section{padding:60px 0;} }
:root:not([data-theme="light"]){}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }

/* NAV */
header{position:sticky; top:0; z-index:50; background:rgba(255,255,255,0.9); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:16px 28px; max-width:1180px; margin:0 auto;}
.logo{display:flex; align-items:center; gap:10px; font-weight:800; font-size:1.15rem; letter-spacing:-0.01em; color:var(--navy);}
.bars{display:flex; align-items:flex-end; gap:3px; height:20px;}
.bars span{width:5px; background:var(--electric); border-radius:1px;}
.bars span:nth-child(1){height:8px;} .bars span:nth-child(2){height:14px;} .bars span:nth-child(3){height:20px; background:var(--blue);}
.navlinks{display:flex; gap:24px; font-size:0.9rem; font-weight:500;}
.navlinks a{opacity:0.8;} .navlinks a:hover{opacity:1; color:var(--blue);} .navlinks a.active{opacity:1; color:var(--blue);}
.navcta{display:flex; gap:10px;}
.menu-toggle{display:none; background:none; border:none; font-size:1.4rem; color:var(--navy); cursor:pointer;}
@media(max-width:960px){ .navlinks, .navcta .btn-ghost{display:none;} .menu-toggle{display:block;} }

.btn{display:inline-block; padding:11px 22px; border-radius:6px; font-weight:600; font-size:0.9rem; transition:transform .15s, background .15s; border:none; cursor:pointer; font-family:var(--sans);}
.btn-primary{background:var(--navy); color:var(--white);}
.btn-primary:hover{background:var(--blue); transform:translateY(-1px);}
.btn-ghost{border:1.5px solid var(--line); color:var(--navy); background:none;}
.btn-ghost:hover{border-color:var(--blue); color:var(--blue);}

/* HERO (homepage) */
.hero{position:relative; background:linear-gradient(160deg, var(--navy) 0%, #0A3D7A 55%, var(--blue) 100%); color:var(--white); padding:120px 0 100px; overflow:hidden;}
.hero::after{content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,0.08) 1px, transparent 1px); background-size:26px 26px; opacity:0.5; mask-image:linear-gradient(180deg, transparent, black 40%, black 80%, transparent);}
.hero-inner{position:relative; z-index:1; max-width:760px;}
.eyebrow{font-family:var(--serif); font-style:italic; font-size:1.05rem; color:var(--sky); opacity:0.9; margin-bottom:18px;}
.hero h1{font-size:clamp(2.3rem, 5.2vw, 4rem); font-weight:800; line-height:1.06; letter-spacing:-0.02em; margin-bottom:22px;}
.hero p.lead{font-size:1.2rem; max-width:560px; color:rgba(255,255,255,0.85); margin-bottom:34px;}
.hero-tags{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:40px;}
.hero-tags span{border:1px solid rgba(255,255,255,0.3); padding:6px 14px; border-radius:20px; font-size:0.85rem; color:var(--white);}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}
.hero .btn-primary{background:var(--white); color:var(--navy);} .hero .btn-primary:hover{background:var(--sky);}
.hero .btn-ghost{border-color:rgba(255,255,255,0.4); color:var(--white);} .hero .btn-ghost:hover{border-color:var(--white);}

/* generic page hero (sub-pages) */
.pagehero{background:linear-gradient(160deg, var(--navy), #0A3D7A 60%, var(--blue)); color:var(--white); padding:90px 0 70px; position:relative; overflow:hidden;}
.pagehero::after{content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,0.07) 1px, transparent 1px); background-size:24px 24px; mask-image:linear-gradient(180deg, transparent, black 50%, transparent);}
.pagehero .wrap{position:relative; z-index:1;}
.pagehero h1{font-size:clamp(2rem,4.4vw,3.1rem); font-weight:800; letter-spacing:-0.02em; max-width:760px; line-height:1.1;}
.pagehero p{margin-top:18px; max-width:600px; color:rgba(255,255,255,0.82); font-size:1.1rem;}

.intro{max-width:680px; margin-bottom:48px;}
.intro h2{font-size:clamp(1.5rem,2.8vw,2.1rem); font-weight:800; letter-spacing:-0.01em; margin-bottom:14px;}
.intro p{color:#4A5B78; font-size:1.02rem;}
.sec-head{max-width:640px; margin-bottom:52px;}
.sec-head h2{font-size:clamp(1.6rem,3vw,2.3rem); font-weight:800; letter-spacing:-0.01em; margin-bottom:14px;}
.sec-head p{color:#4A5B78; font-size:1.05rem;}

/* STATS */
.stats h2{font-size:clamp(1.6rem,3vw,2.3rem); font-weight:800; letter-spacing:-0.01em; max-width:680px; margin-bottom:14px;}
.stats p.sub{color:#4A5B78; max-width:620px; margin-bottom:56px;}
.stat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:12px; overflow:hidden;}
.stat-card{background:var(--white); padding:38px 30px;}
.stat-card .num{font-size:3rem; font-weight:800; color:var(--navy); letter-spacing:-0.02em; line-height:1;}
.stat-card .label{margin-top:8px; color:#4A5B78; font-size:0.98rem;}
@media(max-width:720px){ .stat-grid{grid-template-columns:1fr;} }

.county-strip{margin-top:56px; padding:34px; background:var(--sky); border-radius:14px;}
.county-strip p{font-size:0.95rem; color:var(--navy); margin-bottom:16px; font-weight:600;}
.dots{display:grid; grid-template-columns:repeat(auto-fill, minmax(18px,1fr)); gap:6px;}
.dots span{width:100%; aspect-ratio:1; border-radius:50%; background:var(--blue); opacity:0.25; transition:opacity .12s, transform .12s;}
.dots span:nth-child(3n){opacity:0.55;} .dots span:nth-child(7n){opacity:0.9; background:var(--electric);}
.dots span:hover{opacity:1; transform:scale(1.35); background:var(--electric);}

/* COMMAND CENTRE */
.command{background:#04193A; color:var(--white);}
.command .sec-head{margin:0 auto 40px; text-align:center;}
.command .sec-head h2{color:var(--white);} .command .sec-head p{color:rgba(255,255,255,0.7); margin:0 auto;}
.cc-flow{display:grid; gap:0; max-width:420px; margin:8px auto 0;}
.cc-step{display:flex; align-items:center; gap:16px; padding:14px 0;}
.cc-step .dot2{width:10px; height:10px; border-radius:50%; background:var(--electric); flex-shrink:0;}
.cc-step span.t{font-weight:600; font-size:1rem;}
.cc-line{width:1px; height:22px; background:linear-gradient(var(--electric), rgba(255,255,255,0.15)); margin-left:4.5px;}

/* ABOUT / PROCESS */
.about{background:var(--sky);}
.flow{display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:10px;}
.flow span{font-weight:700; color:var(--navy); font-size:0.95rem; padding:9px 16px; background:var(--white); border-radius:20px; border:1px solid var(--line);}
.flow .arrow{color:var(--electric); font-weight:700;}

/* SERVICES GRID (home summary + solution cards) */
.services-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.svc{border:1px solid var(--line); border-radius:14px; padding:32px 28px; transition:border-color .15s, box-shadow .15s;}
.svc:hover{border-color:var(--electric); box-shadow:0 8px 28px rgba(6,43,92,0.08);}
.svc h3{font-size:1.15rem; font-weight:700; color:var(--navy); margin-bottom:10px;}
.svc p{color:#4A5B78; font-size:0.95rem; margin-bottom:14px;}
.svc ul{list-style:none; font-size:0.88rem; color:#556; display:flex; flex-wrap:wrap; gap:6px 0;}
.svc ul li{position:relative; padding-left:14px; margin-right:14px;}
.svc ul li::before{content:""; position:absolute; left:0; top:8px; width:5px; height:5px; border-radius:50%; background:var(--electric);}
@media(max-width:960px){ .services-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:640px){ .services-grid{grid-template-columns:1fr;} }

.sol-list{display:grid; gap:20px;}
.sol{border:1px solid var(--line); border-radius:16px; padding:36px; display:grid; grid-template-columns:1fr 1.3fr; gap:36px; align-items:center; transition:box-shadow .15s, border-color .15s;}
.sol:hover{box-shadow:0 12px 32px rgba(6,43,92,0.08); border-color:var(--electric);}
.sol .num{font-family:var(--serif); font-style:italic; color:var(--blue); font-size:1.1rem; margin-bottom:10px;}
.sol .problem{font-size:1.35rem; font-weight:700; color:var(--navy); letter-spacing:-0.01em; line-height:1.25;}
.sol .solution-name{margin-top:10px; font-size:0.95rem; color:var(--electric); font-weight:700;}
.sol .msg{font-family:var(--serif); font-style:italic; color:#334; font-size:1.05rem; margin-bottom:14px;}
.sol ul{list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:8px 18px; font-size:0.9rem; color:#556;}
.sol ul li{position:relative; padding-left:16px;}
.sol ul li::before{content:""; position:absolute; left:0; top:8px; width:5px; height:5px; border-radius:50%; background:var(--electric);}
@media(max-width:860px){ .sol{grid-template-columns:1fr;} .sol ul{grid-template-columns:1fr;} }

.dig-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:18px;}
.dig-card{background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.14); border-radius:12px; padding:22px 18px;}
.dig-card h4{font-size:0.98rem; font-weight:700; margin-bottom:8px;}
.dig-card p{font-size:0.85rem; color:rgba(255,255,255,0.7);}
@media(max-width:960px){ .dig-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .dig-grid{grid-template-columns:1fr;} }
.dig-formula{text-align:center; margin-top:46px; font-size:1.3rem; font-weight:700; letter-spacing:-0.01em;}
.dig-formula span{color:var(--electric);}

.funnel{background:var(--pale);}
.funnel-row{display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; max-width:900px; margin:0 auto;}
.funnel-row .step{font-weight:700; color:var(--navy); font-size:0.92rem; padding:10px 16px; background:var(--white); border:1px solid var(--line); border-radius:20px;}
.funnel-row .arrow{color:var(--electric); font-weight:700;}

/* DARK BAND */
.dark, .dash-section, .digital{background:var(--navy); color:var(--white);}
.dark .sec-head p, .dash-section .intro p, .digital .intro p{color:rgba(255,255,255,0.72);}
.dark .sec-head h2, .dash-section .intro h2, .digital .intro h2{color:var(--white);}
.split{display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center;}
@media(max-width:860px){ .split{grid-template-columns:1fr;} }
.appmock{background:#0A3D7A; border:1px solid rgba(255,255,255,0.14); border-radius:18px; padding:26px; box-shadow:0 30px 60px rgba(0,0,0,0.35);}
.phone{background:var(--white); border-radius:14px; padding:20px; color:var(--ink);}
.phone .top{display:flex; justify-content:space-between; font-size:0.78rem; color:#8898b0; margin-bottom:12px;}
.phone .row{display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); font-size:0.85rem;}
.phone .row:last-child{border-bottom:none;}
.dot{width:8px; height:8px; border-radius:50%; background:var(--electric); display:inline-block; margin-right:8px;}
.badge{background:var(--sky); color:var(--blue); font-size:0.72rem; font-weight:700; padding:3px 9px; border-radius:10px;}
.feat-list{list-style:none; display:grid; gap:14px; margin-top:26px;}
.feat-list li{padding-left:24px; position:relative; color:rgba(255,255,255,0.85); font-size:0.98rem;}
.feat-list li::before{content:""; position:absolute; left:0; top:7px; width:9px; height:9px; border-radius:2px; background:var(--electric);}
.split .feat-list{color:#334;}
.split .feat-list li{color:#334;}

.flow-row{display:flex; align-items:center; gap:0; flex-wrap:wrap; justify-content:center;}
.flow-node{font-weight:700; font-size:0.9rem; padding:12px 18px; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.16); border-radius:10px; margin:6px; color:var(--white);}
.flow-arrow{color:var(--electric); font-weight:700; margin:0 4px;}

.ai-section{background:var(--pale);}
.ai-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.ai-card{background:var(--white); border:1px solid var(--line); border-radius:12px; padding:22px 18px;}
.ai-card h4{font-size:0.95rem; font-weight:700; color:var(--navy); margin-bottom:6px;}
.ai-card p{font-size:0.85rem; color:#556;}
@media(max-width:900px){ .ai-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .ai-grid{grid-template-columns:1fr;} }
.ai-note{margin-top:30px; font-size:0.88rem; color:#4A5B78; font-style:italic; max-width:640px;}

.cap-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.cap{border:1px solid var(--line); border-radius:12px; padding:20px 18px;}
.cap h4{font-size:0.95rem; font-weight:700; color:var(--navy); margin-bottom:6px;}
.cap p{font-size:0.85rem; color:#556;}
@media(max-width:900px){ .cap-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .cap-grid{grid-template-columns:1fr;} }

.dash-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.dash-card{background:var(--white); color:var(--ink); border-radius:14px; padding:26px;}
.dash-card h4{font-size:0.98rem; font-weight:700; color:var(--navy); margin-bottom:16px;}
.dash-card.wide{grid-column:span 3;}
.bar-row{display:flex; align-items:center; gap:10px; margin-bottom:11px; font-size:0.8rem; color:#556;}
.bar-row span:first-child{min-width:88px;}
.bar-track{flex:1; height:7px; background:var(--sky); border-radius:4px; overflow:hidden;}
.bar-fill{height:100%; background:linear-gradient(90deg, var(--blue), var(--electric)); border-radius:4px;}
.dash-note{font-size:0.72rem; color:#8898b0; margin-top:16px; font-style:italic;}
@media(max-width:900px){ .dash-grid{grid-template-columns:1fr;} .dash-card.wide{grid-column:span 1;} }

.method{background:var(--pale);}
.method-row{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.method-step .n{font-family:var(--serif); font-style:italic; color:var(--blue); font-size:1.3rem; display:block; margin-bottom:8px;}
.method-step h4{font-weight:700; color:var(--navy); margin-bottom:6px; font-size:1rem;}
.method-step p{font-size:0.88rem; color:#556;}
@media(max-width:860px){ .method-row{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .method-row{grid-template-columns:1fr;} }

/* KENYA ENTRY / GENERIC LIGHT BAND */
.entry{background:linear-gradient(120deg, var(--sky), var(--white));}
.entry-box{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;}
@media(max-width:860px){ .entry-box{grid-template-columns:1fr;} }
.entry-steps{list-style:none; display:grid; gap:16px;}
.entry-steps li{display:flex; gap:14px; align-items:flex-start; font-size:0.98rem; color:#334;}
.entry-steps .n{font-family:var(--serif); font-style:italic; color:var(--blue); font-size:1.1rem; min-width:26px;}

/* INDUSTRIES */
.ind-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.ind-grid div{border:1px solid var(--line); border-radius:10px; padding:18px 16px; font-weight:600; font-size:0.92rem; color:var(--navy); transition:background .15s;}
.ind-grid div:hover{background:var(--sky);}
@media(max-width:860px){ .ind-grid{grid-template-columns:repeat(2,1fr);} }
.ind-card p{font-weight:400; font-size:0.82rem; color:#556; margin-top:6px;}

/* PARTNERS */
.partners{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--white);}
.partner-row{display:flex; flex-wrap:wrap; gap:40px; align-items:center; justify-content:space-between; opacity:0.85;}
.partner-row span{font-weight:800; font-size:1.15rem; color:var(--navy); letter-spacing:-0.01em;}

/* WHY US */
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.why-card h4{font-weight:700; color:var(--navy); font-size:1.05rem; margin-bottom:8px;}
.why-card p{color:#4A5B78; font-size:0.92rem;}
@media(max-width:860px){ .why-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:600px){ .why-grid{grid-template-columns:1fr;} }

/* CAREERS BAND + PAGE */
.careers{background:var(--navy); color:var(--white); text-align:left;}
.careers .wrap{display:flex; justify-content:space-between; align-items:center; gap:40px; flex-wrap:wrap;}
.careers h2{font-size:1.9rem; font-weight:800; max-width:520px;}
.careers p{color:rgba(255,255,255,0.75); margin-top:10px; max-width:480px;}
.role-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.role{border:1px solid var(--line); border-radius:10px; padding:18px 16px; font-weight:600; font-size:0.9rem; color:var(--navy);}
@media(max-width:860px){ .role-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .role-grid{grid-template-columns:1fr;} }

/* CONTACT + FORMS */
.contact-box{display:grid; grid-template-columns:1fr 1fr; gap:56px;}
@media(max-width:860px){ .contact-box{grid-template-columns:1fr;} }
.field{margin-bottom:18px;}
.field label{display:block; font-size:0.85rem; font-weight:600; color:var(--navy); margin-bottom:6px;}
.field input, .field select, .field textarea{width:100%; padding:12px 14px; border:1.5px solid var(--line); border-radius:8px; font-family:var(--sans); font-size:0.95rem; background:var(--white);}
.field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--electric); outline-offset:1px; border-color:var(--electric);}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media(max-width:520px){ .row2{grid-template-columns:1fr;} }
.privacy-note{font-size:0.78rem; color:#8898b0; margin-top:14px;}

/* CTA BAND (light) */
.cta-band{background:var(--white); text-align:center; border-top:1px solid var(--line);}
.cta-band h2{font-size:clamp(1.6rem,3vw,2.2rem); font-weight:800; margin-bottom:16px; color:var(--navy);}
.cta-band p{color:#4A5B78; max-width:520px; margin:0 auto 30px;}
.cta-btns{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}
.cta-band.dark{background:var(--navy); color:var(--white); border-top:none;}
.cta-band.dark h2{color:var(--white);} .cta-band.dark p{color:rgba(255,255,255,0.75);}
.cta-band.dark .btn-primary{background:var(--white); color:var(--navy);}
.cta-band.dark .btn-ghost{border-color:rgba(255,255,255,0.35); color:var(--white);}

/* MARKET PULSE / ARTICLES */
.article-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.article-card{border:1px solid var(--line); border-radius:14px; overflow:hidden; transition:box-shadow .15s, border-color .15s;}
.article-card:hover{box-shadow:0 12px 28px rgba(6,43,92,0.08); border-color:var(--electric);}
.article-thumb{height:130px; background:linear-gradient(135deg, var(--navy), var(--electric));}
.article-body{padding:22px;}
.article-cat{font-size:0.75rem; font-weight:700; color:var(--electric); margin-bottom:8px;}
.article-card h3{font-size:1.05rem; font-weight:700; color:var(--navy); margin-bottom:8px; line-height:1.3;}
.article-card p{font-size:0.88rem; color:#556;}
@media(max-width:960px){ .article-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:600px){ .article-grid{grid-template-columns:1fr;} }
.cat-pills{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:44px;}
.cat-pills span{font-size:0.82rem; font-weight:600; padding:7px 14px; border-radius:16px; border:1px solid var(--line); color:var(--navy);}

/* FOOTER */
footer{background:#04193A; color:rgba(255,255,255,0.7); padding:56px 0 30px; font-size:0.9rem;}
footer.simple{padding:44px 0 26px; font-size:0.88rem; text-align:center; color:rgba(255,255,255,0.65);}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:30px; margin-bottom:40px;}
.foot-grid h5{color:var(--white); font-weight:700; margin-bottom:14px; font-size:0.92rem;}
.foot-grid ul{list-style:none; display:grid; gap:9px;}
.foot-grid a:hover{color:var(--white);}
.foot-bottom{border-top:1px solid rgba(255,255,255,0.12); padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:0.82rem;}
@media(max-width:860px){ .foot-grid{grid-template-columns:1fr 1fr;} }
footer a:hover{color:var(--white);}
