@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('/assets/images/80829921465.jpg') center / contain; 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; }

/* Rotating hero (5 slides, content + image transition together) */
.hero-rotator { background:var(--paper); padding-block: 44px 50px; }
.hero-rotator::before { display:none; }
.hero-card { position:relative; overflow:hidden; border-radius:32px; background:var(--teal-dark); box-shadow: 0 26px 60px rgba(6,40,38,.28), 0 1px 0 rgba(255,255,255,.06) inset; }
.hero-slides { position:relative; min-height:540px; }
.hero-slide {
  position:absolute; inset:0;
  display:grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr);
  opacity:0; visibility:hidden; transform:scale(1.015);
  transition: opacity .9s ease, transform 1.05s ease, visibility 0s linear .9s;
  pointer-events:none;
}
.hero-slide.is-active { opacity:1; visibility:visible; transform:scale(1); pointer-events:auto; transition: opacity .9s ease, transform 1.05s ease; }
.hero-slide-body { position:relative; z-index:2; align-self:center; padding: 60px 24px 60px 58px; color:#fff; }
.hero-slide .eyebrow { color:var(--gold); }
.hero-slide h1 { margin:0; font-family:"Libre Franklin",sans-serif; font-weight:800; letter-spacing:-.04em; line-height:1.1; font-size:clamp(2.05rem, 3.4vw, 3.3rem); max-width:560px; }
.hero-slide h1 span { color:var(--gold); }
.hero-slide .hero-copy { max-width:500px; margin:20px 0 28px; color:rgba(255,255,255,.82); font-size:1.02rem; }
.hero-slide-media { position:relative; background-size:cover; background-position:center; }
.hero-slide-media::before { content:""; position:absolute; inset:0; background: linear-gradient(100deg, var(--teal-dark) 0%, rgba(6,69,66,.62) 28%, rgba(6,69,66,.12) 58%, transparent 80%); }
.hero-dots { position:absolute; left:58px; bottom:26px; z-index:3; display:flex; gap:9px; }
.hero-dot { width:9px; height:9px; padding:0; border:none; border-radius:50%; background:rgba(255,255,255,.35); cursor:pointer; transition: background .25s, width .25s; }
.hero-dot.is-active { background:var(--gold); width:26px; border-radius:5px; }
.hero-dot:hover { background:rgba(255,255,255,.6); }

@media (max-width: 900px) {
  .hero-card { border-radius:22px; }
  .hero-slides { min-height:620px; }
  .hero-slide { grid-template-columns:1fr; grid-template-rows:220px 1fr; }
  .hero-slide-media { order:-1; }
  .hero-slide-media::before { background: linear-gradient(180deg, rgba(6,69,66,.05) 40%, var(--teal-dark) 92%); }
  .hero-slide-body { padding: 26px 24px 56px; }
  .hero-dots { left:0; right:0; justify-content:center; bottom:16px; }
}
@media (max-width: 480px) {
  .hero-slides { min-height:580px; }
  .hero-slide { grid-template-rows:190px 1fr; }
  .hero-slide h1 { font-size:1.9rem; }
  .hero-slide-body { padding: 22px 20px 52px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-slide { transition: opacity .4s ease !important; transform:none !important; }
}

.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: 420px; /* increased from 330px */
  background: linear-gradient(180deg, rgba(10,85,78,.08), rgba(10,85,78,.55)),
              url('/assets/images/mvungi_two.webp') center bottom / cover no-repeat;
}
.employer-image {
  min-height: 540px;   /* increased from 480px */
  background: linear-gradient(180deg, rgba(10,85,78,.08), rgba(10,85,78,.55)),
              url('/assets/images/mvungiyt.webp') center bottom / cover no-repeat;
}
.job-grid, .opportunity-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); }
.job-marquee {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 32px, #000 calc(100% - 32px), transparent);
  mask-image: linear-gradient(90deg, transparent, #000 32px, #000 calc(100% - 32px), transparent);
}
.job-track { display:flex; gap:17px; width:max-content; animation: insightScroll 55s linear infinite; }
.job-marquee:hover .job-track,
.job-marquee:focus-within .job-track { animation-play-state: paused; }
.job-track .listing-card { flex: 0 0 320px; }
@media (prefers-reduced-motion: reduce) { .job-track { animation: none; } }
@media (max-width:640px) { .job-track .listing-card { flex-basis: 260px; } }

.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-marquee {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 32px, #000 calc(100% - 32px), transparent);
  mask-image: linear-gradient(90deg, transparent, #000 32px, #000 calc(100% - 32px), transparent);
}
.insight-track { display:flex; gap:17px; width:max-content; animation: insightScroll 48s linear infinite; }
.insight-marquee:hover .insight-track,
.insight-marquee:focus-within .insight-track { animation-play-state: paused; }
@keyframes insightScroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) { .insight-track { animation: none; } }
.insight-card { overflow:hidden; flex: 0 0 300px; }
.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 { 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, .split-grid { grid-template-columns:1fr; }
  .insight-card { flex-basis: 240px; }
  .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); }
}