:root{
    --ink:#1A1A2E;
    --forest:#2A2E7C;
    --forest-deep:#1E2260;
    --gold:#F89822;
    --gold-soft:#FBB04E;
    --maroon:#3D42A8;
    --cream:#FDF8F2;
    --paper:#FFFFFF;
    --line: rgba(42,46,124,0.12);

    --bs-body-font-family:'DM Sans', sans-serif;
    --bs-body-color: var(--ink);
    --bs-body-bg: var(--cream);
    --bs-link-color: var(--forest);
    --bs-link-hover-color: var(--forest-deep);
  }
  body{-webkit-font-smoothing:antialiased;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{transition:none !important;} }

  h1,h2,h3,h4,.font-display{
    font-family:'Playfair Display', serif;
    font-weight:600;
    color:var(--forest-deep);
  }
  .font-mono{ font-family:'DM Sans', sans-serif; }

  .eyebrow{
    font-family:'DM Sans', sans-serif;
    font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
    color:var(--maroon); display:inline-flex; align-items:center; gap:.5rem;
  }
  .eyebrow i{ color:var(--gold); font-size:.6rem; }

  /* NAV */
  .navbar-kalondo{
    background:rgba(255, 255, 255, 0.92) !important;
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }

  .navbar-brand img {
    height: 100px;
    width: auto;
  }
  .navbar-brand{
    font-family:'Playfair Display', serif; font-weight:700; color:var(--forest-deep) !important;
  }
  .navbar-brand small{
    display:block; font-family:'DM Sans', sans-serif; font-weight:400;
    font-size:.62rem; letter-spacing:.08em; color:var(--maroon); text-transform:uppercase;
  }
  .navbar-kalondo .nav-link{ color:var(--ink); font-weight:500; opacity:.8; }
  .navbar-kalondo .nav-link:hover{ opacity:1; color:var(--forest-deep); }
  .btn-forest{ background:var(--forest-deep); border-color:var(--forest-deep); color:var(--cream); font-weight:600; border-radius:2px; }
  .btn-forest:hover{ background:var(--forest); border-color:var(--forest); color:var(--cream); }
  .btn-outline-forest{ border:1px solid var(--forest-deep); color:var(--forest-deep); border-radius:2px; font-weight:600; }
  .btn-outline-forest:hover{ background:var(--forest-deep); color:var(--cream); }
  .btn-gold{ background:var(--gold); border-color:var(--gold); color:var(--forest-deep); font-weight:700; border-radius:2px; }
  .btn-gold:hover{ background:var(--gold-soft); border-color:var(--gold-soft); color:var(--forest-deep); }
  .btn-outline-cream{ border:1px solid rgba(253,248,242,.5); color:var(--cream); border-radius:2px; font-weight:600; }
  .btn-outline-cream:hover{ background:rgba(253,248,242,.12); color:var(--cream); }

  /* HERO SLIDER */
  #heroCarousel img{ height:min(70vh, 560px); object-fit:cover; }
  #heroCarousel .carousel-caption{ background:rgba(8,42,30,.55); border-radius:2px; padding:1rem 1.5rem; }
  #heroCarousel .carousel-caption h5{ font-family:'Playfair Display', serif; font-size:1.6rem; color:var(--cream); }

  section{ padding:5rem 0; border-top:1px solid var(--line); }
  .section-head{ max-width:60ch; margin-bottom:2.5rem; }
  .section-head h2{ font-size:clamp(1.6rem,3.2vw,2.2rem); margin-top:.6rem; }

  .pull-quote{
    border-left:3px solid var(--gold); padding-left:1.25rem; margin:1.75rem 0;
    font-family:'Playfair Display', serif; font-style:italic; font-size:1.2rem; color:var(--forest-deep);
  }



  /* VISION / MISSION / OBJECTIVE */
  .mvo-section{ background:#EDEAE2; }
  .mvo-card{
    background:var(--paper); border:1px solid var(--line); border-radius:2px;
    padding:2rem 1.75rem; height:100%; text-align:left;
  }
  .mvo-icon{
    width:52px; height:52px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:1.35rem; color:var(--cream); margin-bottom:1.25rem;
  }
  .mvo-icon.mvo-forest{ background:var(--forest); }
  .mvo-icon.mvo-gold{ background:var(--gold); color:var(--forest-deep); }
  .mvo-icon.mvo-maroon{ background:var(--maroon); }
  .mvo-card h3{ font-size:1.2rem; margin-bottom:.6rem; }
  .mvo-card p{ font-size:.94rem; opacity:.82; margin:0; }



    /* NEWS */
  .news-card{ border-radius:2px; overflow:hidden; }
  .news-card .card-img-top{ aspect-ratio:16/10; object-fit:cover; }
  .news-tag{
    font-family:'DM Sans', sans-serif; font-size:.68rem; text-transform:uppercase;
    letter-spacing:.08em; color:var(--maroon);
  }
  .news-card .card-title{ font-family:'Playfair Display', serif; color:var(--forest-deep); font-weight:600; line-height:1.3; }
  .news-card .card-text{ font-size:.9rem; opacity:.8; }
  .news-meta{
    font-family:'DM Sans', sans-serif; font-size:.72rem; color:var(--forest);
    margin-top:1rem; padding-top:.9rem; border-top:1px solid var(--line);
  }


  /* IMPACT */
  .impact-card{ background:var(--paper); border:1px solid var(--line); border-top:3px solid var(--paper); padding:1.4rem 1.1rem; height:100%; }
  .impact-card i{ color:var(--forest); font-size:1.2rem; }
  .impact-card:nth-child(2){ border-top-color:var(--gold); }
  .impact-card:nth-child(3){ border-top-color:var(--maroon); }
  .impact-card:nth-child(4){ border-top-color:var(--forest); }
  .impact-card:nth-child(5){ border-top-color:var(--gold); }
  .impact-card h4{ font-size:1rem; margin:.6rem 0 .4rem; }
  .impact-card p{ font-size:.85rem; opacity:.78; margin:0; }

  /* PARTNERS */
  .partner-band{ background:var(--forest-deep); color:var(--cream); }
  .partner-band .section-head h2{ color:var(--gold-soft); }
  .partner-band .section-head p{ opacity:.75; }
  .partner-row{
    border-bottom:1px solid rgba(253,248,242,.15); padding:1rem .1rem;
    display:flex; justify-content:space-between; align-items:baseline; gap:1rem;
  }
  .partner-row i{ color:var(--gold-soft); margin-right:.5rem; }
  .partner-row .role{ font-family:'DM Sans', sans-serif; font-size:.65rem; text-transform:uppercase; letter-spacing:.08em; opacity:.6; white-space:nowrap; }


  .partner-logo{
    object-fit:contain; border-radius:4px;
    background:#fff; padding:6px 10px; flex-shrink:0;
    box-shadow:0 1px 4px rgba(0,0,0,.18);
  }


  /* TIMELINE */
  .timeline{ position:relative; padding-left:2.25rem; max-width:52ch; }
  .timeline::before{
    content:""; position:absolute; left:.4rem; top:.3rem; bottom:.3rem; width:2px;
    background:repeating-linear-gradient(180deg, var(--gold) 0 6px, transparent 6px 12px);
  }
  .tl-item{ position:relative; padding-bottom:1.9rem; }
  .tl-item:last-child{ padding-bottom:0; }
  .tl-item i{
    position:absolute; left:-2.25rem; top:0; width:24px; height:24px; border-radius:50%;
    background:var(--forest); color:var(--gold-soft); display:flex; align-items:center; justify-content:center;
    font-size:.7rem; border:2px solid var(--gold);
  }
  .tl-item .date{ font-family:'DM Sans', sans-serif; font-size:.78rem; color:var(--maroon); }
  .tl-item h4{ font-size:1.05rem; margin:.4rem 0 .2rem; }
  .tl-item p{ font-size:.9rem; opacity:.8; margin:0; }
  .funder-note{
    margin-top:2rem; padding:1.1rem 1.2rem; background:var(--paper); border:1px dashed var(--line);
    font-size:.9rem; display:flex; gap:.8rem; align-items:center;
  }
  .funder-note i{ color:var(--gold); font-size:1.1rem; }

  .cta-band{ background:linear-gradient(135deg, var(--forest) 0%, var(--forest-deep) 100%); color:var(--cream); border-top:none; }
  .cta-band h2{ color:var(--cream); max-width:32ch; }

  footer{ background:var(--forest-deep); color:rgba(253,248,242,.7); padding:3rem 0 1.75rem; font-size:.85rem; }
  .foot-brand{ font-family:'Playfair Display', serif; color:var(--cream); font-size:1.1rem; }
  .foot-brand small{ display:block; font-family:'DM Sans', sans-serif; font-size:.65rem; color:var(--gold-soft); letter-spacing:.08em; margin-top:.3rem; }
  footer h6{ font-family:'DM Sans', sans-serif; font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; color:var(--gold-soft); }
  footer a{ color:rgba(253,248,242,.85); text-decoration:none; }
  footer a:hover{ color:var(--cream); }
  .foot-bottom{ border-top:1px solid rgba(253,248,242,.15); padding-top:1.25rem; margin-top:1.5rem; font-size:.78rem; opacity:.65; }