@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Franklin:wght@500;600;700;800&display=swap');

:root {
  --ink: #142b2a;
  --ink-soft: #4f6763;
  --teal: #0b6862;
  --teal-dark: #064542;
  --teal-pale: #e8f3f0;
  --gold: #e3a928;
  --gold-pale: #fff7df;
  --paper: #fbfcfa;
  --white: #fff;
  --line: #dbe7e3;
  --shadow: 0 10px 28px rgba(14, 54, 50, .08);
  --container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 400 16px/1.65 "DM Sans", system-ui, sans-serif;
}
body.no-scroll { overflow: hidden; }
a { color: inherit; }
img { max-width: 100%; }
.site-shell { min-height: 100vh; overflow: hidden; }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.skip-link { position: fixed; left: 16px; top: -60px; z-index: 1000; padding: 10px 14px; background: var(--gold); color: var(--ink); font-weight: 700; }
.skip-link:focus { top: 16px; }

.utility-bar { background: var(--teal-dark); color: rgba(255,255,255,.78); font-size: .78rem; }
.utility-bar .container { display:flex; justify-content:space-between; gap: 20px; padding-block: 7px; }
.utility-links { display:flex; gap: 18px; flex-wrap: wrap; }
.utility-links a { text-decoration:none; }
.utility-links a:hover { color: #fff; }

.site-header { position: relative; z-index: 50; background: var(--white); border-bottom: 1px solid var(--line); }
.header-main { display:flex; align-items:center; justify-content:space-between; gap: 28px; min-height: 78px; }
.brand { display:inline-flex; align-items:center; gap: 11px; text-decoration:none; min-width: 188px; }
.brand img { width: 45px; height: 45px; object-fit: contain; }
.brand-lockup { display:flex; flex-direction:column; line-height:1.05; }
.brand-name { font: 800 1.05rem/1 "Libre Franklin", sans-serif; letter-spacing: -.03em; }
.brand-tagline { margin-top: 5px; color: var(--ink-soft); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.primary-nav { display:flex; align-items:center; gap: 4px; margin-left:auto; }
.primary-nav a, .nav-dropdown > summary { display:inline-flex; align-items:center; gap: 5px; padding: 9px 10px; color: var(--ink-soft); font-size: .84rem; font-weight: 600; text-decoration:none; border-radius: 4px; cursor:pointer; list-style:none; }
.primary-nav a:hover, .primary-nav a[aria-current="page"], .nav-dropdown > summary:hover { color:var(--teal); background:var(--teal-pale); }
.nav-dropdown { position:relative; }
.nav-dropdown > summary::-webkit-details-marker { display:none; }
.nav-dropdown[open] .nav-menu { display:grid; }
.nav-menu { display:none; position:absolute; top:calc(100% + 8px); right:0; width: 230px; padding: 8px; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow); }
.nav-menu a { display:block; border-radius:3px; }
.header-actions { display:flex; align-items:center; gap: 9px; }
.menu-toggle { display:none; border:1px solid var(--line); background:#fff; color:var(--ink); padding: 9px 11px; font-size:1.2rem; }
.mobile-nav { display:none; border-top:1px solid var(--line); background:#fff; }
.mobile-nav.is-open { display:block; }
.mobile-nav a { display:block; padding: 12px 0; border-bottom:1px solid var(--line); color:var(--ink-soft); text-decoration:none; font-weight:600; }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding: 10px 18px; border:1px solid transparent; border-radius: 3px; font-size:.86rem; font-weight:700; text-decoration:none; transition: background .18s, color .18s, border-color .18s, transform .18s; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { background:var(--gold); color: #1c2e27; }
.btn-primary:hover { background:#f0bd43; }
.btn-outline { border-color:rgba(255,255,255,.6); color:#fff; }
.btn-outline:hover { border-color:#fff; background:rgba(255,255,255,.1); }
.btn-teal { background:var(--teal); color:#fff; }
.btn-teal:hover { background:var(--teal-dark); }
.btn-light { background:#fff; color:var(--teal-dark); }
.btn-light:hover { background:var(--teal-pale); }
.btn-sm { min-height:36px; padding: 7px 13px; font-size:.78rem; }

.hero { position:relative; background: var(--teal-dark); color:#fff; }
.hero::before { content:""; position:absolute; inset:0; opacity:.18; background: linear-gradient(135deg, transparent 0 48%, rgba(227,169,40,.45) 48% 49%, transparent 49%), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px); background-size:auto, 46px 46px; }
.hero-grid { position:relative; display:grid; grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr); gap: 70px; align-items:center; padding-block: 76px 82px; }
.eyebrow { display:inline-flex; align-items:center; gap:8px; margin-bottom: 17px; color:var(--gold); font-size:.72rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.eyebrow::before { content:""; width:30px; height:2px; background:var(--gold); }
.hero h1, .page-banner h1, .section-heading h2 { margin:0; font-family:"Libre Franklin", sans-serif; font-weight:800; letter-spacing:-.045em; line-height:1.08; }
.hero h1 { max-width: 700px; font-size:clamp(2.65rem, 5vw, 4.8rem); }
.hero h1 span { color:var(--gold); }
.hero-copy { max-width:600px; margin: 23px 0 29px; color:rgba(255,255,255,.78); font-size:1.04rem; }
.hero-actions { display:flex; gap:11px; flex-wrap:wrap; }
.hero-aside { position:relative; }
.hero-photo { min-height: 370px; background:linear-gradient(180deg, rgba(6,69,66,.08), rgba(6,69,66,.7)), url('/images/mvungi (45).webp') center/cover; border: 7px solid rgba(255,255,255,.13); box-shadow: 18px 18px 0 rgba(227,169,40,.78); }
.hero-note { position:absolute; left:-24px; bottom:24px; max-width:225px; padding:16px; background:var(--gold); color:var(--ink); box-shadow:var(--shadow); font-size:.82rem; font-weight:700; }
.hero-note strong { display:block; margin-bottom:4px; font: 800 1.65rem/1 "Libre Franklin",sans-serif; }

.section { padding-block: 72px; }
.section-tight { padding-block: 47px; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:28px; }
.section-heading h2 { font-size:clamp(1.75rem, 3vw, 2.55rem); }
.section-heading p { max-width:520px; margin: 10px 0 0; color:var(--ink-soft); }
.section-kicker { margin:0 0 9px; color:var(--teal); font-size:.72rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.section-link { color:var(--teal); font-size:.84rem; font-weight:800; text-decoration:none; white-space:nowrap; }
.section-link:hover { text-decoration:underline; }
.quick-grid { display:grid; grid-template-columns:repeat(4, 1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.quick-card { display:flex; align-items:flex-start; gap:13px; min-height:135px; padding:22px; background:#fff; border-right:1px solid var(--line); border-bottom:1px solid var(--line); text-decoration:none; }
.quick-card:hover { background:var(--teal-pale); }
.quick-icon { display:grid; place-items:center; width:37px; height:37px; flex:0 0 37px; background:var(--gold-pale); color:var(--teal); font-weight:800; }
.quick-card h3 { margin:0 0 5px; font:700 1rem/1.2 "Libre Franklin",sans-serif; }
.quick-card p { margin:0; color:var(--ink-soft); font-size:.77rem; line-height:1.45; }

.split-band { background:var(--teal-pale); border-block:1px solid #d1e6e0; }
.split-grid { display:grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items:center; }
.feature-list { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:28px 0 0; padding:0; list-style:none; }
.feature-list li { display:flex; gap:9px; color:var(--ink-soft); font-size:.9rem; }
.feature-list li::before { content:"✓"; color:var(--teal); font-weight:800; }
.editorial-image { min-height:330px; background:linear-gradient(180deg, rgba(10,85,78,.08), rgba(10,85,78,.55)), url('/images/mvungi (30).webp') center/cover; }
.employer-image { background-image:linear-gradient(180deg, rgba(10,85,78,.08), rgba(10,85,78,.55)), url('/images/mvungi (60).webp'); }

.job-grid, .opportunity-grid, .insight-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:17px; }
.card { background:#fff; border:1px solid var(--line); box-shadow:0 2px 0 rgba(14,54,50,.02); }
.card:hover { box-shadow:var(--shadow); }
.listing-card { display:flex; flex-direction:column; min-height:220px; padding:20px; }
.card-top { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:17px; }
.tag { display:inline-flex; padding:4px 8px; background:var(--teal-pale); color:var(--teal); font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.tag-gold { background:var(--gold-pale); color:#8b6610; }
.listing-card h3 { margin:0 0 9px; font:700 1.03rem/1.25 "Libre Franklin",sans-serif; }
.listing-card h3 a { text-decoration:none; }
.listing-card h3 a:hover { color:var(--teal); }
.meta { display:flex; flex-wrap:wrap; gap:8px 14px; color:var(--ink-soft); font-size:.77rem; }
.meta span { display:inline-flex; align-items:center; gap:5px; }
.meta strong { color:var(--ink); }
.listing-card .card-footer { display:flex; align-items:end; justify-content:space-between; gap:12px; margin-top:auto; padding-top:20px; border-top:1px solid var(--line); }
.empty-state { grid-column:1/-1; padding:30px; color:var(--ink-soft); background:#fff; border:1px dashed var(--line); text-align:center; }

.insight-card { overflow:hidden; }
.insight-thumb { height:150px; background:var(--teal-pale) center/cover; }
.insight-body { padding:18px; }
.insight-body h3 { margin:8px 0 7px; font:700 1rem/1.25 "Libre Franklin",sans-serif; }
.insight-body h3 a { text-decoration:none; }
.insight-body p { margin:0; color:var(--ink-soft); font-size:.8rem; }

.final-cta { padding-block:64px; background:var(--gold); color:var(--ink); }
.final-cta .container { display:flex; align-items:center; justify-content:space-between; gap:28px; }
.final-cta h2 { margin:0 0 8px; font:800 clamp(1.8rem,3.6vw,3rem)/1.08 "Libre Franklin",sans-serif; letter-spacing:-.04em; }
.final-cta p { max-width:590px; margin:0; color:rgba(20,43,42,.75); }
.final-cta .btn { background:var(--teal-dark); color:#fff; }

.site-footer { background:var(--teal-dark); color:#fff; }
.footer-grid { display:grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap:34px; padding-block: 55px 44px; }
.footer-brand p { max-width:320px; margin:14px 0 0; color:rgba(255,255,255,.67); font-size:.82rem; }
.site-footer h2, .site-footer h3 { margin:0 0 15px; font:700 .82rem "Libre Franklin",sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.site-footer ul { display:grid; gap:8px; margin:0; padding:0; list-style:none; color:rgba(255,255,255,.67); font-size:.81rem; }
.site-footer a { text-decoration:none; }
.site-footer a:hover { color:var(--gold); }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; padding-block:18px; border-top:1px solid rgba(255,255,255,.16); color:rgba(255,255,255,.53); font-size:.72rem; }
.footer-bottom p { margin:0; }

.page-banner { padding-block:50px; background:var(--teal-pale); border-bottom:1px solid var(--line); }
.page-banner h1 { font-size:clamp(2rem,4vw,3.2rem); }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:17px; color:var(--ink-soft); font-size:.78rem; }
.breadcrumbs a { color:var(--teal); text-decoration:none; }

@media (max-width: 960px) {
  .primary-nav { display:none; }
  .header-actions .btn-outline { display:none; }
  .menu-toggle { display:block; }
  .hero-grid { grid-template-columns:1fr; gap:42px; padding-block:58px 70px; }
  .hero-photo { min-height:320px; max-width:650px; }
  .job-grid, .opportunity-grid, .insight-grid { grid-template-columns:repeat(2,1fr); }
  .quick-grid { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:repeat(2,1fr); }
}
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.opportunity-group { margin-bottom: 34px; }
.opportunity-group:last-child { margin-bottom: 0; }
.group-heading { margin:0; display:flex; align-items:center; gap:8px; font:700 1.1rem "Libre Franklin",sans-serif; }
.group-heading i { color: var(--teal); }
.card-desc { margin:0; color:var(--ink-soft); font-size:.82rem; line-height:1.55; }

.pattern-panel { position:relative; padding-block:64px; color:#fff; overflow:hidden; }
.pattern-panel::before { content:""; position:absolute; inset:0; background-image: radial-gradient(circle, rgba(255,255,255,.14) 1px, transparent 1px); background-size:26px 26px; opacity:.7; pointer-events:none; }
.pattern-panel.teal { background: var(--teal-dark); }
.pattern-panel.hub { background: linear-gradient(135deg, #12305c, var(--teal-dark)); }
.pattern-panel .container { position:relative; }
.panel-grid { display:grid; grid-template-columns: 1.05fr .95fr; gap:50px; align-items:center; }
.panel-heading { margin:0 0 14px; color:#fff; font:800 clamp(1.75rem, 3vw, 2.5rem)/1.12 "Libre Franklin", sans-serif; letter-spacing:-.03em; }
.panel-copy { margin:0; max-width:540px; color:rgba(255,255,255,.82); font-size:1.02rem; }
.panel-list { display:grid; gap:12px; margin:24px 0 0; padding:0; list-style:none; }
.panel-list li { display:flex; gap:10px; color:rgba(255,255,255,.86); font-size:.92rem; }
.panel-list li::before { content:"✓"; color:var(--gold); font-weight:800; }
.panel-card { background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); padding:28px; }
.panel-card h3 { margin:14px 0 10px; color:#fff; font:700 1.1rem "Libre Franklin",sans-serif; }
.panel-card p { margin:0 0 18px; color:rgba(255,255,255,.8); font-size:.88rem; line-height:1.6; }

.stat-band { background:#fff; border-block:1px solid var(--line); padding-block:38px; }
.stat-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; text-align:center; }
.stat-num { font:800 2.1rem/1 "Libre Franklin", sans-serif; color:var(--teal); }
.stat-label { margin-top:7px; color:var(--ink-soft); font-size:.8rem; }

@media (max-width: 720px) {
  .panel-grid { grid-template-columns: 1fr; gap:34px; }
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .container { width:min(calc(100% - 28px), var(--container)); }
  .utility-bar .container { align-items:flex-start; flex-direction:column; gap:3px; }
  .brand { min-width:0; }
  .brand-tagline { font-size:.55rem; }
  .header-main { min-height:68px; gap:10px; }
  .header-actions { margin-left:auto; }
  .header-actions .btn { padding-inline:12px; }
  .hero h1 { font-size:2.55rem; }
  .hero-copy { font-size:.95rem; }
  .hero-photo { min-height:240px; border-width:4px; box-shadow:10px 10px 0 rgba(227,169,40,.78); }
  .hero-note { left:12px; bottom:12px; padding:12px; }
  .section { padding-block:52px; }
  .section-heading, .final-cta .container { align-items:flex-start; flex-direction:column; }
  .quick-grid, .job-grid, .opportunity-grid, .insight-grid, .split-grid { grid-template-columns:1fr; }
  .quick-card { min-height:0; }
  .feature-list { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:28px 17px; }
  .footer-brand { grid-column:1/-1; }
  .footer-bottom { flex-direction:column; gap:5px; }
}

/* ===== Added for: Community Hub, Career Services, More Opportunities, Stats band ===== */

.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.opportunity-group { margin-bottom: 34px; }
.opportunity-group:last-child { margin-bottom: 0; }
.group-heading { margin:0; display:flex; align-items:center; gap:8px; font:700 1.1rem "Libre Franklin",sans-serif; }
.group-heading i { color: var(--teal); }
.card-desc { margin:0; color:var(--ink-soft); font-size:.82rem; line-height:1.55; }

.pattern-panel { position:relative; padding-block:64px; color:#fff; overflow:hidden; }
.pattern-panel::before { content:""; position:absolute; inset:0; background-image: radial-gradient(circle, rgba(255,255,255,.14) 1px, transparent 1px); background-size:26px 26px; opacity:.7; pointer-events:none; }
.pattern-panel.teal { background: var(--teal-dark); }
.pattern-panel.hub { background: linear-gradient(135deg, #12305c, var(--teal-dark)); }
.pattern-panel .container { position:relative; }
.panel-grid { display:grid; grid-template-columns: 1.05fr .95fr; gap:50px; align-items:center; }
.panel-heading { margin:0 0 14px; color:#fff; font:800 clamp(1.75rem, 3vw, 2.5rem)/1.12 "Libre Franklin", sans-serif; letter-spacing:-.03em; }
.panel-copy { margin:0; max-width:540px; color:rgba(255,255,255,.82); font-size:1.02rem; }
.panel-list { display:grid; gap:12px; margin:24px 0 0; padding:0; list-style:none; }
.panel-list li { display:flex; gap:10px; color:rgba(255,255,255,.86); font-size:.92rem; }
.panel-list li::before { content:"✓"; color:var(--gold); font-weight:800; }
.panel-card { background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); padding:28px; }
.panel-card h3 { margin:14px 0 10px; color:#fff; font:700 1.1rem "Libre Franklin",sans-serif; }
.panel-card p { margin:0 0 18px; color:rgba(255,255,255,.8); font-size:.88rem; line-height:1.6; }

.stat-band { background:#fff; border-block:1px solid var(--line); padding-block:38px; }
.stat-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; text-align:center; }
.stat-num { font:800 2.1rem/1 "Libre Franklin", sans-serif; color:var(--teal); }
.stat-label { margin-top:7px; color:var(--ink-soft); font-size:.8rem; }

@media (max-width: 720px) {
  .panel-grid { grid-template-columns: 1fr; gap:34px; }
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
}