@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=Lato:wght@400;600;700;900&display=swap');
:root{--green-900:#214f49;--green-800:#3f5f5a;--green-700:#6F7F6A;--orange:#e07a4f;--offwhite:#F4F1EC;--soft:#eee9e2;--text:#3A3632;--white:#fff;--shadow:0 24px 60px rgba(58,54,50,.13);--radius:28px;--header-h:78px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 18px)}body{margin:0;background:var(--offwhite);color:var(--text);font-family:'IBM Plex Sans',Arial,sans-serif;font-size:17px;line-height:1.55}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.container{width:min(1120px,calc(100% - 40px));margin:0 auto}.site-header{height:var(--header-h);position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5vw,70px);background:rgba(244,241,236,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(63,95,90,.08)}.logo{width:190px;height:auto}.main-nav{display:flex;align-items:center;gap:26px;font-family:Lato,Arial,sans-serif;font-size:14px;font-weight:600;color:var(--green-800)}.main-nav a:not(.btn),.language-toggle{position:relative}.main-nav a:not(.btn):after,.language-toggle:after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .22s ease}.main-nav a:hover:after,.language-toggle:hover:after{transform:scaleX(1)}.language-toggle{border:0;background:transparent;font:inherit;color:var(--green-800);cursor:pointer;padding:0}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:12px 22px;font-family:Lato,Arial,sans-serif;font-weight:700;line-height:1;border:1px solid transparent;transition:transform .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease}.btn:hover{transform:translateY(-2px)}.btn-donate{background:var(--orange);color:var(--white);box-shadow:0 10px 20px rgba(224,122,79,.18)}.btn-donate:hover{background:var(--green-800);color:var(--white)}.btn-light{background:var(--offwhite);color:var(--green-800)}.btn-light:hover{background:var(--orange);color:#fff}.btn-full{width:100%;margin-top:20px}.menu-toggle{display:none;background:transparent;border:0;gap:5px;flex-direction:column}.menu-toggle span{display:block;width:26px;height:2px;background:var(--green-800)}.hero{position:relative;min-height:calc(720px + var(--header-h));padding-top:var(--header-h);overflow:hidden;background:var(--green-900)}.hero-bg{position:absolute;inset:var(--header-h) 0 0 0;background:linear-gradient(90deg,rgba(33,79,73,.97) 0%,rgba(33,79,73,.82) 28%,rgba(33,79,73,.14) 56%,rgba(33,79,73,0) 100%),url('../images/hero-boat.jpg') center/cover no-repeat}.hero-content{position:relative;z-index:1;min-height:640px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;max-width:1120px}.kicker{font-family:Lato,Arial,sans-serif;font-weight:700;color:var(--orange);letter-spacing:.02em;margin:0 0 14px}.hero h1,.section h2,.split-copy h2,.donate-copy h1{font-family:Lato,Arial,sans-serif;font-weight:900;line-height:.98;letter-spacing:-.025em;margin:0;color:var(--green-800)}.hero h1{font-size:clamp(46px,8vw,92px);max-width:560px;color:var(--offwhite)}.hero-text{max-width:470px;color:rgba(244,241,236,.92);font-size:20px;margin:28px 0 32px}.hero-actions{display:flex;gap:16px;flex-wrap:wrap}.section{padding:96px 0}.section-light{background:var(--offwhite)}.section-heading{max-width:760px;margin-bottom:42px}.section-heading.narrow{text-align:center;margin-left:auto;margin-right:auto}.section h2,.split-copy h2{font-size:clamp(34px,5vw,58px);max-width:850px}.section-heading p:not(.kicker){font-size:19px;color:rgba(58,54,50,.78)}.project-shapes{position:relative;width:min(100%,1050px);margin:16px auto 0;aspect-ratio:990/390}.project-shapes svg{position:absolute;inset:0;width:100%;height:100%}.project-shape{fill:transparent;stroke:var(--green-800);stroke-width:1.35;vector-effect:non-scaling-stroke;transition:fill .25s ease,stroke .25s ease,transform .25s ease;transform-box:fill-box;transform-origin:center}.project-shapes:hover .project-shape{stroke:rgba(63,95,90,.75)}.project-shape:hover,.project-shape.active{fill:rgba(224,122,79,.10);stroke:var(--orange)}.shape-label{position:absolute;transform:translate(-50%,-50%);font-family:Lato,Arial,sans-serif;font-weight:900;text-align:center;color:var(--green-800);line-height:1.18;font-size:clamp(11px,1.55vw,17px);transition:color .2s ease,transform .2s ease}.shape-label:hover{color:var(--orange);transform:translate(-50%,-52%)}.shape-label-water{left:26.5%;top:39%}.shape-label-health{left:53.5%;top:26%}.shape-label-living{left:82.4%;top:41%}.shape-label-education{left:40.7%;top:67.5%}.shape-label-economic{left:64.8%;top:73.5%}.belief-band{background:var(--soft)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.belief-band blockquote{font-family:Lato,Arial,sans-serif;font-size:clamp(34px,4.4vw,62px);font-weight:900;line-height:1.05;color:var(--green-800);margin:0;position:relative}.belief-band blockquote:before,.belief-band blockquote:after{content:'“';position:absolute;color:rgba(63,95,90,.12);font-size:120px;line-height:1}.belief-band blockquote:before{left:-40px;top:-48px}.belief-band blockquote:after{content:'”';right:-10px;bottom:-70px}.about-intro{align-items:start}.about-intro p{margin-top:0}.board-title{font-family:Lato,Arial,sans-serif;color:var(--green-800);font-size:32px;margin:60px 0 24px}.board-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.person-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}.person-card img{aspect-ratio:1/1;object-fit:cover}.person-card-body{padding:28px}.person-card h4{font-family:Lato,Arial,sans-serif;font-size:26px;color:var(--green-800);margin:0 0 4px}.role{color:var(--orange);font-weight:700;margin:0 0 16px}.project-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}.project-card{background:#fff;border-radius:24px;padding:28px;box-shadow:0 14px 40px rgba(58,54,50,.08);border:1px solid rgba(63,95,90,.07);transition:transform .22s ease,box-shadow .22s ease,border .22s ease}.project-card:hover,.project-card.highlight{transform:translateY(-5px);box-shadow:var(--shadow);border-color:rgba(224,122,79,.35)}.project-card h3{font-family:Lato,Arial,sans-serif;font-size:23px;line-height:1.14;color:var(--green-800);margin:16px 0 12px}.card-number{font-family:Lato,Arial,sans-serif;font-weight:900;color:var(--orange)}.split-feature{display:grid;grid-template-columns:minmax(360px,1fr) minmax(460px,1.35fr);background:#fff}.split-copy{padding:clamp(50px,7vw,110px) clamp(30px,8vw,120px);align-self:center}.split-feature img{width:100%;height:100%;object-fit:cover;min-height:440px}.text-link{font-family:Lato,Arial,sans-serif;font-weight:900;color:var(--green-800);display:inline-block;margin-top:18px}.text-link:after{content:' →';color:var(--orange)}.cta-section{background:var(--green-800);color:var(--offwhite)}.cta-box{display:flex;align-items:center;justify-content:space-between;gap:40px}.cta-box h2{color:var(--offwhite)}.cta-box p{max-width:680px}.news-list{list-style:none;padding:0;margin:0;display:grid;gap:14px}.news-list li{background:#fff;border-radius:18px;padding:18px 22px;border-left:5px solid var(--orange)}.site-footer{padding:70px 0;background:var(--soft);color:var(--green-800)}.footer-grid{display:grid;grid-template-columns:1.2fr 1.4fr 1fr;gap:50px;align-items:start}.footer-logo{width:175px;margin-bottom:20px}address{font-style:normal;line-height:1.8}.donate-hero{padding-top:calc(var(--header-h) + 80px);background:linear-gradient(135deg,var(--offwhite),#fff)}.donate-layout{display:grid;grid-template-columns:1fr 480px;gap:70px;align-items:center}.donate-copy h1{font-size:clamp(46px,6vw,78px)}.donate-copy p{font-size:20px}.donation-note{display:flex;gap:16px;align-items:center;background:var(--soft);padding:20px;border-radius:22px;margin-top:30px;max-width:420px}.donation-note strong{font-family:Lato,Arial,sans-serif;font-size:46px;color:var(--orange)}.donation-card,.instruction-card{background:#fff;border-radius:30px;padding:34px;box-shadow:var(--shadow)}.form-label{display:block;font-family:Lato,Arial,sans-serif;font-weight:900;color:var(--green-800);margin:22px 0 12px}.form-label:first-child{margin-top:0}.amount-options,.frequency-options,.payment-methods{display:grid;gap:10px}.amount-options{grid-template-columns:repeat(4,1fr)}.frequency-options{grid-template-columns:repeat(2,1fr)}.payment-methods{grid-template-columns:1fr 1fr}.amount,.frequency,.pay-method{border:1px solid rgba(63,95,90,.18);background:var(--offwhite);border-radius:16px;padding:12px 10px;font-family:Lato,Arial,sans-serif;font-weight:700;color:var(--green-800);cursor:pointer;transition:background .2s ease,color .2s ease,border .2s ease}.amount:hover,.frequency:hover,.pay-method:hover,.amount.selected,.frequency.selected,.pay-method.selected{background:var(--green-800);color:#fff;border-color:var(--green-800)}.custom-amount{width:100%;margin-top:12px;border:1px solid rgba(63,95,90,.18);border-radius:16px;background:var(--offwhite);padding:14px 16px;font:inherit}.small-note{font-size:14px;color:rgba(58,54,50,.68)}@media (max-width:1000px){.main-nav{position:absolute;top:var(--header-h);right:20px;background:#fff;border-radius:22px;box-shadow:var(--shadow);padding:24px;display:none;flex-direction:column;align-items:flex-start;min-width:260px}.main-nav.open{display:flex}.menu-toggle{display:flex}.project-grid,.board-grid{grid-template-columns:1fr 1fr}.two-col,.split-feature,.footer-grid,.donate-layout{grid-template-columns:1fr}.split-feature img{order:-1}.project-grid{gap:16px}.site-header{padding:0 24px}}@media (max-width:680px){body{font-size:16px}.container{width:min(100% - 28px,1120px)}.logo{width:160px}.hero{min-height:680px}.hero-content{min-height:600px}.section{padding:70px 0}.board-grid,.project-grid{grid-template-columns:1fr}.project-shapes{aspect-ratio:1/1.05;transform:scale(1.07);margin:30px auto}.shape-label{font-size:12px}.shape-label-water{left:27%;top:37%}.shape-label-health{left:53%;top:25%}.shape-label-living{left:81%;top:40%}.shape-label-education{left:41%;top:67%}.shape-label-economic{left:65%;top:74%}.cta-box{flex-direction:column;align-items:flex-start}.amount-options,.payment-methods{grid-template-columns:1fr 1fr}.hero-actions{width:100%}.hero-actions .btn{flex:1}.donation-card{padding:24px}.site-footer{padding-bottom:40px}}

/* --- Kimuli update: requested refinements 2026-06-14 --- */
/* Typography: large titles in Lato regular, same sizes retained. */
.hero h1,
.section h2,
.split-copy h2,
.donate-copy h1,
.belief-band blockquote{
  font-weight:400;
}

/* Gentle background fades between sections. */
.hero::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-1px;
  height:96px;
  background:linear-gradient(to bottom,rgba(33,79,73,0),var(--offwhite));
  pointer-events:none;
  z-index:2;
}
#what-we-do{
  background:linear-gradient(to bottom,var(--green-900) 0,var(--offwhite) 96px,var(--offwhite) 100%);
}
.belief-band{
  background:linear-gradient(to bottom,var(--offwhite) 0,var(--soft) 86px,var(--soft) calc(100% - 86px),var(--offwhite) 100%);
}
#about{
  background:linear-gradient(to bottom,var(--soft) 0,var(--offwhite) 86px,var(--offwhite) 100%);
}
#projects{
  background:linear-gradient(to bottom,var(--offwhite) 0,var(--green-900) 92px,var(--green-900) calc(100% - 92px),var(--offwhite) 100%);
  color:var(--offwhite);
}
.split-feature{
  background:linear-gradient(to bottom,var(--green-900) 0,#fff 96px,#fff 100%);
}
.cta-section{
  background:linear-gradient(to bottom,#fff 0,var(--green-800) 86px,var(--green-800) calc(100% - 86px),var(--offwhite) 100%);
}
#news{
  background:linear-gradient(to bottom,var(--green-800) 0,var(--offwhite) 96px,var(--offwhite) calc(100% - 80px),var(--soft) 100%);
}
.site-footer{
  background:linear-gradient(to bottom,var(--offwhite) 0,var(--soft) 86px,var(--soft) 100%);
}

/* Larger project shapes on desktop while keeping the original SVG paths intact. */
#what-we-do .container{
  width:min(1260px,calc(100% - 40px));
}
.project-shapes{
  width:min(1210px,100%);
  margin:28px auto 0;
  aspect-ratio:990/390;
}
.shape-label{
  z-index:3;
  font-weight:600;
  font-size:clamp(17px,1.8vw,25px);
  line-height:1.12;
  transition:color .22s ease,transform .22s ease;
}
.shape-label-water{
  width:min(330px,28vw);
  font-size:clamp(14px,1.55vw,22px);
}
.shape-label-living{width:min(260px,22vw)}
.shape-label-economic{width:min(280px,24vw)}
.project-shape{
  transition:fill .25s ease,stroke .25s ease,transform .25s ease;
}
.project-shape:hover,
.project-shape.active{
  fill:var(--green-800);
  stroke:var(--green-800);
}
.shape-label:hover{
  color:var(--orange);
  transform:translate(-50%,-52%);
}
.project-shapes:has(.project-shape-water:hover) .shape-label-water,
.project-shapes:has(.shape-label-water:hover) .shape-label-water,
.project-shapes:has(.project-shape-health:hover) .shape-label-health,
.project-shapes:has(.shape-label-health:hover) .shape-label-health,
.project-shapes:has(.project-shape-living:hover) .shape-label-living,
.project-shapes:has(.shape-label-living:hover) .shape-label-living,
.project-shapes:has(.project-shape-education:hover) .shape-label-education,
.project-shapes:has(.shape-label-education:hover) .shape-label-education,
.project-shapes:has(.project-shape-economic:hover) .shape-label-economic,
.project-shapes:has(.shape-label-economic:hover) .shape-label-economic{
  color:var(--orange);
}
.project-shapes:has(.shape-label-water:hover) .project-shape-water,
.project-shapes:has(.shape-label-health:hover) .project-shape-health,
.project-shapes:has(.shape-label-living:hover) .project-shape-living,
.project-shapes:has(.shape-label-education:hover) .project-shape-education,
.project-shapes:has(.shape-label-economic:hover) .project-shape-economic{
  fill:var(--green-800);
  stroke:var(--green-800);
}

/* Dark project block with adjusted colours. */
#projects .section-heading h2,
#projects h2{
  color:var(--offwhite);
}
#projects .section-heading p:not(.kicker){
  color:rgba(244,241,236,.88);
}
#projects .project-card{
  background:var(--offwhite);
  color:var(--text);
  border-color:rgba(244,241,236,.2);
}
#projects .project-card h3{
  color:var(--green-800);
}
#projects .project-card:hover,
#projects .project-card.highlight{
  box-shadow:0 26px 70px rgba(0,0,0,.22);
  border-color:rgba(224,122,79,.55);
}

/* Board text blocks in broken white. */
.person-card,
.person-card-body{
  background:var(--offwhite);
}

/* Footer: align the three requested text blocks horizontally. */
.footer-logo{
  margin-bottom:30px;
}
.footer-grid{
  grid-template-columns:1.05fr 1.55fr 1fr;
  align-items:start;
}
.footer-grid h2{
  display:none;
}
.footer-grid p{
  margin-top:0;
}
.footer-grid address{
  margin-top:0;
}

@media (max-width:1000px){
  #what-we-do .container{width:min(100% - 40px,1120px)}
  .project-shapes{width:100%;}
  .shape-label{font-size:clamp(13px,2.2vw,18px)}
  .shape-label-water{font-size:clamp(11px,1.9vw,16px);width:min(260px,31vw)}
}
@media (max-width:680px){
  .hero h1,.section h2,.split-copy h2,.donate-copy h1{letter-spacing:-.015em}
  .project-shapes{aspect-ratio:1/1.05;transform:scale(1.07);margin:30px auto}
  .shape-label{
    font-size:clamp(7.5px,2.45vw,10.5px)!important;
    line-height:1.05;
    font-weight:600;
    max-width:31vw;
  }
  .shape-label-water{
    font-size:clamp(6.8px,2.15vw,9.5px)!important;
    max-width:30vw;
  }
  .shape-label-living,.shape-label-economic{max-width:30vw}
  #projects{background:linear-gradient(to bottom,var(--offwhite) 0,var(--green-900) 70px,var(--green-900) calc(100% - 70px),var(--offwhite) 100%)}
  .footer-grid{gap:18px}
}

/* --- Kimuli update v3: layout and colour refinements --- */
/* Remove section-to-section colour fades from v2. Keep the photographic hero overlay intact. */
.hero::after{display:none!important;content:none!important;}
#what-we-do,.belief-band,#about,#projects,.split-feature,.cta-section,#news,.site-footer,.donate-hero{background-image:none!important;}

/* Fixed menu: 2 mm green line across the full page width. */
.site-header{border-bottom:2mm solid var(--green-800)!important;}

/* Only alternate green with white/off-white sections; no white-to-off-white transitions. */
.hero{background:var(--green-900)!important;}
#what-we-do{background:var(--offwhite)!important;color:var(--text);}
.belief-band{background:var(--green-900)!important;color:var(--offwhite);}
#about{background:var(--white)!important;color:var(--text);}
#projects{background:var(--green-900)!important;color:var(--offwhite);}
.split-feature{background:var(--offwhite)!important;color:var(--text);}
.cta-section{background:var(--green-800)!important;color:var(--offwhite);}
#news{background:var(--offwhite)!important;color:var(--text);}
.site-footer{background:var(--green-900)!important;color:var(--offwhite);}
.donate-hero{background:var(--offwhite)!important;}

/* Text colour corrections for dark green blocks. */
.belief-band h2,
.belief-band blockquote,
#projects .section-heading h2,
#projects h2,
.cta-section h2,
.site-footer a,
.site-footer p,
.site-footer address{color:var(--offwhite)!important;}
.belief-band p,
#projects .section-heading p:not(.kicker),
.cta-section p{color:rgba(244,241,236,.88)!important;}
.belief-band blockquote:before,
.belief-band blockquote:after{color:rgba(244,241,236,.16)!important;}
.site-footer .footer-logo{filter:brightness(0) invert(1);opacity:.92;}

/* Large titles: Lato regular and approximately 8 pt smaller. */
.hero h1,
.section h2,
.split-copy h2,
.donate-copy h1,
.belief-band blockquote{font-weight:400!important;}
.hero h1{font-size:clamp(38px,7.1vw,81px)!important;}
.section h2,
.split-copy h2{font-size:clamp(26px,4.1vw,47px)!important;}
.donate-copy h1{font-size:clamp(38px,5.1vw,67px)!important;}
.belief-band blockquote{font-size:clamp(26px,3.5vw,51px)!important;}

/* Project shapes: slightly left-shift the visual group; reduce labels by about 2 pt. */
.project-shapes{transform:translateX(-2.8%)!important;}
.shape-label{font-size:clamp(14px,1.55vw,22px)!important;}
.shape-label-water{font-size:clamp(12px,1.32vw,19px)!important;width:min(330px,28vw);}
.shape-label-living{width:min(260px,22vw);}
.shape-label-economic{width:min(280px,24vw);}

/* Keep hover: green shapes with orange text. */
.project-shape:hover,
.project-shape.active{fill:var(--green-800)!important;stroke:var(--green-800)!important;}
.shape-label:hover{color:var(--orange)!important;}
.project-shapes:has(.project-shape-water:hover) .shape-label-water,
.project-shapes:has(.shape-label-water:hover) .shape-label-water,
.project-shapes:has(.project-shape-health:hover) .shape-label-health,
.project-shapes:has(.shape-label-health:hover) .shape-label-health,
.project-shapes:has(.project-shape-living:hover) .shape-label-living,
.project-shapes:has(.shape-label-living:hover) .shape-label-living,
.project-shapes:has(.project-shape-education:hover) .shape-label-education,
.project-shapes:has(.shape-label-education:hover) .shape-label-education,
.project-shapes:has(.project-shape-economic:hover) .shape-label-economic,
.project-shapes:has(.shape-label-economic:hover) .shape-label-economic{color:var(--orange)!important;}

@media (max-width:1000px){
  .project-shapes{transform:translateX(-1.8%)!important;}
  .shape-label{font-size:clamp(11px,1.95vw,15.5px)!important;}
  .shape-label-water{font-size:clamp(9.5px,1.65vw,13.5px)!important;width:min(260px,31vw);}
}
@media (max-width:680px){
  .hero h1{font-size:clamp(34px,11vw,48px)!important;}
  .section h2,.split-copy h2{font-size:clamp(25px,7vw,34px)!important;}
  .donate-copy h1{font-size:clamp(34px,10vw,48px)!important;}
  .belief-band blockquote{font-size:clamp(25px,7vw,34px)!important;}
  .project-shapes{transform:translateX(-1.5%) scale(1.07)!important;}
  .shape-label{font-size:clamp(7px,2.2vw,9.4px)!important;line-height:1.05;max-width:31vw;}
  .shape-label-water{font-size:clamp(6.2px,1.95vw,8.2px)!important;max-width:30vw;}
}


/* --- Kimuli update v4: footer logo and orange section labels --- */
.site-footer .footer-logo{filter:none!important;opacity:1!important;}
.site-footer [data-i18n="footerTagline"]{color:var(--orange)!important;}
.kicker{font-size:21px!important;}
@media (max-width:680px){.kicker{font-size:18px!important;}}


/* --- Kimuli update v5: animated project shapes on hover --- */
@keyframes kimuliShapePulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.06); }
  100% { transform: scale(1); }
}
@keyframes kimuliLabelPulse {
  0% { transform: translate(-50%,-50%) scale(1); }
  50% { transform: translate(-50%,-50%) scale(1.07); }
  100% { transform: translate(-50%,-50%) scale(1); }
}
.project-shape{
  transition: fill .45s ease, stroke .45s ease, transform .45s ease;
  transform-box: fill-box;
  transform-origin: center;
  will-change: transform;
}
.shape-label{
  transition: color .45s ease, transform .45s ease;
  will-change: transform;
}
.project-shape:hover,
.project-shape.active,
.project-shapes:has(.shape-label-water:hover) .project-shape-water,
.project-shapes:has(.shape-label-health:hover) .project-shape-health,
.project-shapes:has(.shape-label-living:hover) .project-shape-living,
.project-shapes:has(.shape-label-education:hover) .project-shape-education,
.project-shapes:has(.shape-label-economic:hover) .project-shape-economic{
  animation: kimuliShapePulse 1.8s ease-in-out infinite;
}
.project-shapes:has(.project-shape-water:hover) .shape-label-water,
.project-shapes:has(.shape-label-water:hover) .shape-label-water,
.project-shapes:has(.project-shape-health:hover) .shape-label-health,
.project-shapes:has(.shape-label-health:hover) .shape-label-health,
.project-shapes:has(.project-shape-living:hover) .shape-label-living,
.project-shapes:has(.shape-label-living:hover) .shape-label-living,
.project-shapes:has(.project-shape-education:hover) .shape-label-education,
.project-shapes:has(.shape-label-education:hover) .shape-label-education,
.project-shapes:has(.project-shape-economic:hover) .shape-label-economic,
.project-shapes:has(.shape-label-economic:hover) .shape-label-economic{
  animation: kimuliLabelPulse 1.8s ease-in-out infinite;
}

/* --- Kimuli update v6: align header logo with page content --- */
.site-header{
  padding-left:max(20px,calc((100vw - 1120px) / 2))!important;
  padding-right:max(20px,calc((100vw - 1120px) / 2))!important;
}
@media (max-width:680px){
  .site-header{
    padding-left:14px!important;
    padding-right:14px!important;
  }
}

/* --- Kimuli update v7: align What we do and Projects text blocks; replace menu line with shadow --- */

/* Replace the 2 mm green line under the menu with a soft shadow. */
.site-header{
  border-bottom:0!important;
  box-shadow:0 10px 26px rgba(58,54,50,.13)!important;
}

/* Align the section text blocks with the same left content line as the logo/first block. */
#what-we-do .section-heading,
#projects .section-heading{
  margin-left:0!important;
  margin-right:auto!important;
  text-align:left!important;
  max-width:760px!important;
}

#what-we-do .section-heading .kicker,
#what-we-do .section-heading h2,
#what-we-do .section-heading p,
#projects .section-heading .kicker,
#projects .section-heading h2,
#projects .section-heading p{
  text-align:left!important;
}

/* --- Kimuli update v8: force What we do and Projects headings to the same left content line --- */

/* The earlier .section-heading.narrow rule centered these blocks.
   This stronger rule overrides that centering and aligns the headings with the container/logo line. */
#what-we-do .section-heading,
#what-we-do .section-heading.narrow,
#projects .section-heading,
#projects .section-heading.narrow{
  width:100%!important;
  max-width:760px!important;
  margin-left:0!important;
  margin-right:auto!important;
  text-align:left!important;
}

/* Make sure all text inside these two blocks starts on the same left edge. */
#what-we-do .section-heading *,
#what-we-do .section-heading.narrow *,
#projects .section-heading *,
#projects .section-heading.narrow *{
  text-align:left!important;
}

/* Keep the project shapes visually centered independently below the left-aligned text block. */
#what-we-do .project-shapes{
  margin-left:auto!important;
  margin-right:auto!important;
}


/* --- Kimuli update v9: project shape label colours --- */
.shape-label{
  color:var(--orange)!important;
}
.shape-label:hover{
  color:var(--offwhite)!important;
}
.project-shapes:has(.project-shape-water:hover) .shape-label-water,
.project-shapes:has(.shape-label-water:hover) .shape-label-water,
.project-shapes:has(.project-shape-health:hover) .shape-label-health,
.project-shapes:has(.shape-label-health:hover) .shape-label-health,
.project-shapes:has(.project-shape-living:hover) .shape-label-living,
.project-shapes:has(.shape-label-living:hover) .shape-label-living,
.project-shapes:has(.project-shape-education:hover) .shape-label-education,
.project-shapes:has(.shape-label-education:hover) .shape-label-education,
.project-shapes:has(.project-shape-economic:hover) .shape-label-economic,
.project-shapes:has(.shape-label-economic:hover) .shape-label-economic{
  color:var(--offwhite)!important;
}

/* --- Kimuli update v10: align What we do and Projects intro text with header logo; reduce adjacent project photo --- */

#what-we-do .container{
  width:min(1120px,calc(100% - 40px))!important;
}
#what-we-do .section-heading,
#what-we-do .section-heading.narrow{
  max-width:760px!important;
  margin-left:0!important;
  margin-right:auto!important;
  text-align:left!important;
}
#what-we-do .section-heading *,
#what-we-do .section-heading.narrow *{
  text-align:left!important;
}

.split-feature{
  display:grid!important;
  grid-template-columns:
    minmax(max(20px,calc((100vw - 1120px) / 2)),1fr)
    minmax(420px,760px)
    minmax(300px,520px)
    minmax(max(20px,calc((100vw - 1120px) / 2)),1fr)!important;
  gap:0!important;
  align-items:stretch!important;
}
.split-feature .split-copy{
  grid-column:2!important;
  padding:clamp(50px,7vw,100px) clamp(28px,4vw,70px) clamp(50px,7vw,100px) 0!important;
}
.split-feature img{
  grid-column:3!important;
  width:100%!important;
  max-width:520px!important;
  height:100%!important;
  min-height:360px!important;
  max-height:520px!important;
  align-self:center!important;
  justify-self:end!important;
  border-radius:28px 0 0 28px!important;
}

@media (max-width:1000px){
  .split-feature{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  .split-feature .split-copy{
    grid-column:auto!important;
    padding:70px 24px!important;
    width:min(1120px,calc(100% - 40px))!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .split-feature img{
    grid-column:auto!important;
    order:-1!important;
    width:min(1120px,calc(100% - 40px))!important;
    max-width:none!important;
    height:auto!important;
    max-height:none!important;
    min-height:0!important;
    margin:40px auto 0!important;
    border-radius:28px!important;
  }
}

/* --- Kimuli update v11: expandable blog/news section --- */
.blog-section{
  background:var(--offwhite)!important;
}
.blog-heading{
  max-width:760px!important;
  margin-left:0!important;
  margin-right:auto!important;
  text-align:left!important;
}
.blog-heading *{
  text-align:left!important;
}
.blog-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  align-items:start;
}
.blog-post{
  background:var(--white);
  border:1px solid rgba(63,95,90,.10);
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 16px 42px rgba(58,54,50,.08);
  transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease;
}
.blog-post:hover,
.blog-post.is-open{
  transform:translateY(-3px);
  box-shadow:0 24px 60px rgba(58,54,50,.13);
  border-color:rgba(224,122,79,.36);
}
.blog-card{
  display:grid;
  grid-template-columns:132px 1fr;
  gap:20px;
  width:100%;
  padding:18px;
  border:0;
  background:transparent;
  text-align:left;
  cursor:pointer;
  color:var(--text);
}
.blog-thumb{
  width:132px;
  height:132px;
  object-fit:cover;
  border-radius:20px;
}
.blog-card-copy{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.blog-date{
  font-family:Lato,Arial,sans-serif;
  font-weight:700;
  color:var(--orange);
  font-size:14px;
}
.blog-card strong{
  font-family:Lato,Arial,sans-serif;
  font-size:22px;
  line-height:1.16;
  color:var(--green-800);
  font-weight:600;
}
.blog-card span:not(.blog-card-copy):not(.blog-read-more){
  font-size:15px;
  color:rgba(58,54,50,.78);
}
.blog-read-more{
  margin-top:6px;
  font-family:Lato,Arial,sans-serif;
  font-weight:700;
  color:var(--green-800);
}
.blog-card:hover .blog-read-more,
.blog-post.is-open .blog-read-more{
  color:var(--orange);
}
.blog-full{
  padding:0 18px 18px;
}
.blog-full-inner{
  background:var(--offwhite);
  border-radius:22px;
  padding:26px;
  border-left:5px solid var(--orange);
}
.blog-full h3{
  font-family:Lato,Arial,sans-serif;
  color:var(--green-800);
  margin:0 0 6px;
  font-size:26px;
  font-weight:600;
}
.blog-full p:last-child{
  margin-bottom:0;
}
@media (max-width:1000px){
  .blog-list{
    grid-template-columns:1fr;
  }
  .blog-card{
    grid-template-columns:160px 1fr;
  }
  .blog-thumb{
    width:160px;
    height:130px;
  }
}
@media (max-width:680px){
  .blog-card{
    grid-template-columns:1fr;
  }
  .blog-thumb{
    width:100%;
    height:190px;
  }
  .blog-full-inner{
    padding:22px;
  }
}

/* --- Kimuli update v12: footer popup links and signup modal --- */
.footer-popup-link{
  display:inline;
  padding:0;
  margin:0;
  border:0;
  background:transparent;
  color:var(--orange)!important;
  font:inherit;
  font-weight:700;
  text-decoration:none;
  cursor:pointer;
}
.footer-popup-link:hover{
  color:var(--offwhite)!important;
  text-decoration:underline;
  text-underline-offset:4px;
}
.kimuli-popup[hidden]{
  display:none!important;
}
.kimuli-popup{
  position:fixed;
  inset:0;
  z-index:3000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.kimuli-popup-backdrop{
  position:absolute;
  inset:0;
  background:rgba(33,79,73,.72);
  backdrop-filter:blur(6px);
}
.kimuli-popup-panel{
  position:relative;
  width:min(560px,100%);
  max-height:min(760px,calc(100vh - 48px));
  overflow:auto;
  background:var(--offwhite);
  color:var(--text);
  border-radius:32px;
  padding:42px;
  box-shadow:0 34px 90px rgba(0,0,0,.28);
}
.kimuli-popup-close{
  position:absolute;
  top:18px;
  right:20px;
  width:42px;
  height:42px;
  border:0;
  border-radius:999px;
  background:var(--white);
  color:var(--green-800);
  font-size:30px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(58,54,50,.12);
}
.kimuli-popup-close:hover{
  background:var(--orange);
  color:var(--white);
}
.kimuli-popup-panel h2{
  font-family:Lato,Arial,sans-serif;
  font-weight:400!important;
  color:var(--green-800);
  font-size:clamp(30px,4vw,44px);
  line-height:1.05;
  margin:0 0 18px;
}
.signup-form{
  display:grid;
  gap:16px;
  margin-top:26px;
}
.signup-form label{
  display:grid;
  gap:8px;
  font-family:Lato,Arial,sans-serif;
  font-weight:700;
  color:var(--green-800);
}
.signup-form input{
  width:100%;
  border:1px solid rgba(63,95,90,.20);
  border-radius:16px;
  background:var(--white);
  padding:14px 16px;
  font:inherit;
  color:var(--text);
}
.signup-form input:focus{
  outline:3px solid rgba(224,122,79,.22);
  border-color:var(--orange);
}
@media (max-width:680px){
  .kimuli-popup{
    padding:14px;
  }
  .kimuli-popup-panel{
    padding:32px 22px;
    border-radius:26px;
  }
}

/* --- Kimuli update v13: separate contact popup with message field --- */
.signup-form textarea{
  width:100%;
  resize:vertical;
  min-height:140px;
  border:1px solid rgba(63,95,90,.20);
  border-radius:16px;
  background:var(--white);
  padding:14px 16px;
  font:inherit;
  color:var(--text);
}
.signup-form textarea:focus{
  outline:3px solid rgba(224,122,79,.22);
  border-color:var(--orange);
}

/* --- Kimuli update v14: equal news card dimensions and stronger orange hover --- */

/* Closed news cards now keep equal dimensions within the row. */
.blog-list{
  align-items:stretch!important;
}
.blog-post{
  height:100%!important;
  display:flex!important;
  flex-direction:column!important;
  border:1px solid rgba(63,95,90,.10)!important;
}
.blog-card{
  min-height:255px!important;
  height:100%!important;
  flex:1 1 auto!important;
  align-items:start!important;
}

/* When a post is opened, the full article expands below the equal-height card. */
.blog-full{
  flex:0 0 auto!important;
}

/* Make the orange hover/active contour and shadow more visible. */
.blog-post:hover,
.blog-post.is-open{
  transform:translateY(-4px)!important;
  border-color:rgba(224,122,79,.78)!important;
  box-shadow:
    0 0 0 3px rgba(224,122,79,.16),
    0 26px 68px rgba(224,122,79,.24),
    0 20px 50px rgba(58,54,50,.16)!important;
}
.blog-card:hover .blog-read-more,
.blog-post.is-open .blog-read-more{
  color:var(--orange)!important;
}

@media (max-width:1000px){
  .blog-card{
    min-height:210px!important;
  }
}
@media (max-width:680px){
  .blog-card{
    min-height:0!important;
  }
}

/* --- Kimuli update v15: stronger orange hover effect for project shapes and theme blocks --- */

/* Five project shapes: keep the existing grow/shrink animation, and add a stronger orange contour/glow. */
.project-shape:hover,
.project-shape.active,
.project-shapes:has(.shape-label-water:hover) .project-shape-water,
.project-shapes:has(.shape-label-health:hover) .project-shape-health,
.project-shapes:has(.shape-label-living:hover) .project-shape-living,
.project-shapes:has(.shape-label-education:hover) .project-shape-education,
.project-shapes:has(.shape-label-economic:hover) .project-shape-economic{
  stroke:var(--orange)!important;
  stroke-width:2.2!important;
  filter:
    drop-shadow(0 0 4px rgba(224,122,79,.70))
    drop-shadow(0 10px 18px rgba(224,122,79,.28))!important;
}

/* Five theme blocks: same orange contour/shadow family as the news cards. */
.project-card:hover,
.project-card.highlight{
  transform:translateY(-5px)!important;
  border-color:rgba(224,122,79,.78)!important;
  box-shadow:
    0 0 0 3px rgba(224,122,79,.15),
    0 26px 68px rgba(224,122,79,.22),
    0 20px 50px rgba(58,54,50,.14)!important;
}

/* Keep the effect visible on the dark projects background as well. */
#projects .project-card:hover,
#projects .project-card.highlight{
  border-color:rgba(224,122,79,.82)!important;
  box-shadow:
    0 0 0 3px rgba(224,122,79,.18),
    0 28px 72px rgba(224,122,79,.26),
    0 22px 55px rgba(0,0,0,.20)!important;
}

/* --- Kimuli update v16: footer logo same size as header logo --- */
.site-footer .footer-logo,
.footer-logo{
  width:190px!important;
  max-width:190px!important;
}
@media (max-width:680px){
  .site-footer .footer-logo,
  .footer-logo{
    width:160px!important;
    max-width:160px!important;
  }
}

/* --- Kimuli update v17: botanical animation on opbloeien / flourish in hero --- */
.botanical-word{
  position:relative;
  display:inline-block;
  font:inherit!important;
  font-size:inherit!important;
  font-weight:inherit!important;
  letter-spacing:inherit!important;
  line-height:inherit!important;
  color:inherit!important;
  white-space:nowrap;
}

.botanical-word .botanical-leaf,
.botanical-word .botanical-flower{
  position:absolute;
  display:block;
  pointer-events:none;
  opacity:0;
  z-index:2;
  transform-origin:center bottom;
}

.botanical-word .botanical-leaf{
  width:.17em;
  height:.34em;
  border-radius:100% 0 100% 0;
  background:var(--leaf-color,#6F7F6A);
  box-shadow:0 1px 2px rgba(0,0,0,.10);
  animation:kimuliLeafAppear 4.8s ease-in-out 2s infinite;
}

.botanical-word .botanical-flower{
  width:.18em;
  height:.18em;
  border-radius:50%;
  background:var(--offwhite);
  box-shadow:
    -.10em 0 0 -.02em var(--offwhite),
    .10em 0 0 -.02em var(--offwhite),
    0 -.10em 0 -.02em var(--offwhite),
    0 .10em 0 -.02em var(--offwhite),
    0 0 0 .035em rgba(224,122,79,.38);
  animation:kimuliFlowerAppear 5.4s ease-in-out 2.35s infinite;
}

.botanical-word .leaf-1{left:7%;top:-.30em;--leaf-color:#6F7F6A;transform:rotate(-35deg) scale(.1);animation-delay:2.0s;}
.botanical-word .leaf-2{left:18%;top:-.46em;--leaf-color:#8A9A83;transform:rotate(26deg) scale(.1);animation-delay:2.25s;}
.botanical-word .leaf-3{left:35%;top:-.22em;--leaf-color:#3f5f5a;transform:rotate(-18deg) scale(.1);animation-delay:2.55s;}
.botanical-word .leaf-4{left:54%;top:-.42em;--leaf-color:#7C8C75;transform:rotate(28deg) scale(.1);animation-delay:2.85s;}
.botanical-word .leaf-5{left:70%;top:-.18em;--leaf-color:#5F745B;transform:rotate(-24deg) scale(.1);animation-delay:3.10s;}
.botanical-word .leaf-6{left:86%;top:-.36em;--leaf-color:#A2AC8D;transform:rotate(32deg) scale(.1);animation-delay:3.35s;}
.botanical-word .leaf-7{left:13%;bottom:-.18em;--leaf-color:#496A61;transform:rotate(35deg) scale(.1);animation-delay:3.55s;}
.botanical-word .leaf-8{left:63%;bottom:-.20em;--leaf-color:#6F7F6A;transform:rotate(-34deg) scale(.1);animation-delay:3.75s;}

.botanical-word .flower-1{left:24%;top:-.32em;transform:scale(.1);animation-delay:3.0s;}
.botanical-word .flower-2{left:58%;top:-.28em;transform:scale(.1);animation-delay:3.45s;}
.botanical-word .flower-3{left:92%;top:-.18em;transform:scale(.1);animation-delay:3.85s;}

@keyframes kimuliLeafAppear{
  0%,30%{opacity:0;transform:rotate(var(--r,0deg)) scale(.1) translateY(.08em);}
  45%,84%{opacity:.95;transform:rotate(var(--r,0deg)) scale(1) translateY(0);}
  100%{opacity:0;transform:rotate(var(--r,0deg)) scale(.82) translateY(-.06em);}
}
@keyframes kimuliFlowerAppear{
  0%,34%{opacity:0;transform:scale(.1) rotate(0deg);}
  52%,86%{opacity:.95;transform:scale(1) rotate(8deg);}
  100%{opacity:0;transform:scale(.86) rotate(12deg);}
}

/* Use each element's own starting rotation during the animation. */
.botanical-word .leaf-1{--r:-35deg;}
.botanical-word .leaf-2{--r:26deg;}
.botanical-word .leaf-3{--r:-18deg;}
.botanical-word .leaf-4{--r:28deg;}
.botanical-word .leaf-5{--r:-24deg;}
.botanical-word .leaf-6{--r:32deg;}
.botanical-word .leaf-7{--r:35deg;}
.botanical-word .leaf-8{--r:-34deg;}

@media (prefers-reduced-motion:reduce){
  .botanical-word .botanical-leaf,
  .botanical-word .botanical-flower{
    animation:none!important;
    opacity:.75;
    transform:scale(.9);
  }
}

/* --- Kimuli update v18: more compact botanical animation with orange flowers --- */

/* Keep the animation closer to the word so it does not overlap surrounding words. */
.botanical-word{
  padding:0 .08em!important;
}

/* Smaller, tighter elements placed within the visual word area. */
.botanical-word .botanical-leaf{
  width:.12em!important;
  height:.24em!important;
  opacity:0;
}

.botanical-word .botanical-flower{
  width:.105em!important;
  height:.105em!important;
  background:var(--orange)!important;
  box-shadow:
    -.065em 0 0 -.012em var(--orange),
    .065em 0 0 -.012em var(--orange),
    0 -.065em 0 -.012em var(--orange),
    0 .065em 0 -.012em var(--orange),
    0 0 0 .022em rgba(244,241,236,.78)!important;
}

/* 16 leaves: twice the previous amount, kept close to the target word. */
.botanical-word .leaf-1{left:4%;top:.02em;--leaf-color:#6F7F6A;--r:-32deg;animation-delay:2.0s;}
.botanical-word .leaf-2{left:10%;top:.24em;--leaf-color:#8A9A83;--r:28deg;animation-delay:2.15s;}
.botanical-word .leaf-3{left:17%;top:.04em;--leaf-color:#3f5f5a;--r:-20deg;animation-delay:2.30s;}
.botanical-word .leaf-4{left:24%;top:.30em;--leaf-color:#7C8C75;--r:30deg;animation-delay:2.45s;}
.botanical-word .leaf-5{left:31%;top:.02em;--leaf-color:#5F745B;--r:-24deg;animation-delay:2.60s;}
.botanical-word .leaf-6{left:38%;top:.28em;--leaf-color:#A2AC8D;--r:30deg;animation-delay:2.75s;}
.botanical-word .leaf-7{left:45%;top:.05em;--leaf-color:#496A61;--r:-28deg;animation-delay:2.90s;}
.botanical-word .leaf-8{left:52%;top:.31em;--leaf-color:#6F7F6A;--r:34deg;animation-delay:3.05s;}
.botanical-word .leaf-9{left:59%;top:.02em;--leaf-color:#87947A;--r:-26deg;animation-delay:3.20s;}
.botanical-word .leaf-10{left:66%;top:.27em;--leaf-color:#557065;--r:24deg;animation-delay:3.35s;}
.botanical-word .leaf-11{left:73%;top:.03em;--leaf-color:#6F7F6A;--r:-30deg;animation-delay:3.50s;}
.botanical-word .leaf-12{left:80%;top:.31em;--leaf-color:#9AA98C;--r:32deg;animation-delay:3.65s;}
.botanical-word .leaf-13{left:87%;top:.07em;--leaf-color:#3f5f5a;--r:-20deg;animation-delay:3.80s;}
.botanical-word .leaf-14{left:93%;top:.28em;--leaf-color:#7A8B72;--r:28deg;animation-delay:3.95s;}
.botanical-word .leaf-15{left:14%;top:.50em;--leaf-color:#5F745B;--r:-36deg;animation-delay:4.10s;}
.botanical-word .leaf-16{left:76%;top:.50em;--leaf-color:#8A9A83;--r:36deg;animation-delay:4.25s;}

/* 6 orange flowers: twice the previous amount, positioned close to the lettering. */
.botanical-word .flower-1{left:8%;top:.12em;transform:scale(.1);animation-delay:2.85s;}
.botanical-word .flower-2{left:22%;top:.42em;transform:scale(.1);animation-delay:3.10s;}
.botanical-word .flower-3{left:39%;top:.14em;transform:scale(.1);animation-delay:3.35s;}
.botanical-word .flower-4{left:57%;top:.43em;transform:scale(.1);animation-delay:3.60s;}
.botanical-word .flower-5{left:74%;top:.12em;transform:scale(.1);animation-delay:3.85s;}
.botanical-word .flower-6{left:91%;top:.40em;transform:scale(.1);animation-delay:4.10s;}

/* Slightly smaller movement so leaves/flowers stay close to the word. */
@keyframes kimuliLeafAppear{
  0%,30%{opacity:0;transform:rotate(var(--r,0deg)) scale(.1) translateY(.035em);}
  45%,84%{opacity:.95;transform:rotate(var(--r,0deg)) scale(1) translateY(0);}
  100%{opacity:0;transform:rotate(var(--r,0deg)) scale(.82) translateY(-.025em);}
}
@keyframes kimuliFlowerAppear{
  0%,34%{opacity:0;transform:scale(.1) rotate(0deg);}
  52%,86%{opacity:.95;transform:scale(1) rotate(6deg);}
  100%{opacity:0;transform:scale(.86) rotate(9deg);}
}

@media (max-width:680px){
  .botanical-word .botanical-leaf{
    width:.10em!important;
    height:.20em!important;
  }
  .botanical-word .botanical-flower{
    width:.085em!important;
    height:.085em!important;
  }
}


/* --- Kimuli website1 public_html update: navigation, preview2 project/donate integration, contact form --- */
[data-lang-en]{display:none!important;}
html[lang="en"] [data-lang-nl]{display:none!important;}
html[lang="en"] [data-lang-en]{display:revert!important;}

/* Header simplification */
.main-nav{gap:24px!important;}

/* Orange detail under headings, inspired by preview2 */
.section-heading h2::after,
.about-heading h2::after,
.projects-heading h2::after,
.contact-section h2::after,
.finance-info-v2 h2::after,
.donate-hero-v2 h1::after,
.extra-projects h3::after{
  content:"";
  display:block;
  width:88px;
  height:6px;
  margin:22px 0 0;
  border-radius:999px;
  background:linear-gradient(90deg,var(--orange),rgba(224,122,79,.35));
}
.section-heading.narrow h2::after{margin-left:0;margin-right:auto;}
.cta-section h2::after{display:none;}

/* About: softer, smaller board photos */
.about-heading{max-width:760px!important;margin-left:0!important;text-align:left!important;}
.about-text-block{max-width:820px;font-size:18px;color:rgba(58,54,50,.86);}
.about-text-block p{margin:0 0 18px;}
.board-grid-soft{align-items:stretch;}
.board-grid-soft .person-card{border-radius:30px;padding-top:28px;background:var(--offwhite)!important;box-shadow:0 18px 48px rgba(58,54,50,.10);}
.organic-portrait{width:min(68%,210px);aspect-ratio:1/1;margin:0 auto 8px;overflow:hidden;border-radius:56% 44% 50% 50% / 46% 55% 45% 54%;box-shadow:0 16px 36px rgba(58,54,50,.16);}
.organic-portrait img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);}
.board-grid-soft .person-card>img{display:none!important;}
.board-grid-soft .person-card h4{font-size:24px;}
.board-grid-soft .person-card-body{padding:22px 26px 30px;background:transparent!important;}
.board-grid-soft .person-card-body p:not(.role){font-size:15.5px;line-height:1.52;}

/* Project section: preview2-inspired cards */
.projects-v2{background:var(--green-900)!important;color:var(--offwhite)!important;}
.projects-v2 .container{width:min(1120px,calc(100% - 40px))!important;}
.projects-heading{max-width:760px!important;margin-left:0!important;margin-right:auto!important;text-align:left!important;}
.projects-heading h2,.projects-v2 h2{color:var(--offwhite)!important;}
.projects-heading p:not(.kicker){color:rgba(244,241,236,.86)!important;}
.proj-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin-top:44px;align-items:stretch;}
.proj-card{background:var(--offwhite);border-radius:24px;overflow:hidden;box-shadow:0 16px 42px rgba(0,0,0,.16);display:flex;flex-direction:column;border:1px solid rgba(244,241,236,.20);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;}
.proj-card:hover{transform:translateY(-5px);border-color:rgba(224,122,79,.82);box-shadow:0 0 0 3px rgba(224,122,79,.18),0 28px 72px rgba(224,122,79,.26),0 22px 55px rgba(0,0,0,.20);}
.proj-card .ph{height:275px;overflow:hidden;position:relative;}
.proj-card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease;}
.proj-card:hover .ph img{transform:scale(1.045);}
.proj-card .tag{position:absolute;left:16px;top:16px;background:var(--orange);color:#fff;font-family:Lato,Arial,sans-serif;font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:uppercase;padding:7px 13px;border-radius:999px;}
.proj-card .body{padding:30px;display:flex;flex-direction:column;flex:1;color:var(--text);}
.proj-card h3{font-family:Lato,Arial,sans-serif;color:var(--green-800)!important;font-size:25px;line-height:1.12;margin:0 0 12px;font-weight:600;}
.proj-card .now{font-size:16px;color:rgba(58,54,50,.82);margin:0 0 16px;}
.proj-card .goal{font-size:16px;margin:auto 0 0;padding-top:18px;border-top:1px solid rgba(58,54,50,.14);display:flex;gap:9px;color:rgba(58,54,50,.88);}
.proj-card .goal b{color:var(--orange);font-weight:800;flex:none;}
.proj-card-wide{grid-column:span 2;display:grid;grid-template-columns:1fr 1.05fr;}
.proj-card-wide .ph{height:100%;min-height:300px;}
.extra-projects{margin-top:66px;color:var(--offwhite);}
.extra-projects h3{font-family:Lato,Arial,sans-serif;font-size:30px;font-weight:400;margin:0 0 22px;color:var(--offwhite);}
.chip-grid{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px;}
.chip{background:rgba(244,241,236,.96);border:1.5px solid rgba(224,122,79,.20);border-radius:16px;padding:15px 18px;font-family:Lato,Arial,sans-serif;font-weight:700;color:var(--green-800);transition:border-color .2s,background .2s,transform .15s,box-shadow .2s;}
.chip:hover{border-color:rgba(224,122,79,.85);background:#fff;transform:translateY(-2px);box-shadow:0 14px 34px rgba(224,122,79,.16);}
.chip small{display:block;font-family:'IBM Plex Sans',Arial,sans-serif;font-weight:400;font-size:14px;color:rgba(58,54,50,.78);max-width:250px;margin-top:4px;line-height:1.35;}
.project-updates{margin-top:58px;border-top:1px solid rgba(244,241,236,.22);padding-top:34px;}
.update-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.update-grid article{background:rgba(244,241,236,.96);color:var(--text);border-radius:20px;padding:22px;border-left:5px solid var(--orange);}
.update-grid time{font-family:Lato,Arial,sans-serif;font-weight:700;color:var(--orange);font-size:14px;}
.update-grid h4{font-family:Lato,Arial,sans-serif;color:var(--green-800);font-size:19px;margin:8px 0;}
.update-grid p{margin:0;font-size:15px;color:rgba(58,54,50,.80);}

/* Contact section with embedded form */
.contact-section{background:var(--white)!important;}
.contact-layout{display:grid;grid-template-columns:minmax(0,0.92fr) minmax(420px,1.08fr);gap:64px;align-items:start;}
.contact-copy h2{font-family:Lato,Arial,sans-serif;font-weight:400;color:var(--green-800);font-size:clamp(29px,4.1vw,47px);line-height:1.05;margin:0;}
.contact-copy .lead{font-size:19px;color:rgba(58,54,50,.82);max-width:560px;margin-top:24px;}
.contact-meta{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:30px;}
.contact-meta p{background:var(--offwhite);border-radius:18px;padding:20px;margin:0;}
.contact-meta strong{font-family:Lato,Arial,sans-serif;color:var(--orange);}
.contact-meta a{color:var(--green-800);font-weight:700;}
.embedded-contact{background:var(--offwhite);border-radius:28px;padding:30px;box-shadow:var(--shadow);display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.embedded-contact label{display:grid;gap:8px;font-family:Lato,Arial,sans-serif;font-weight:700;color:var(--green-800);}
.embedded-contact label.full,.embedded-contact .btn,.embedded-contact .small-note{grid-column:1/-1;}
.embedded-contact input,.embedded-contact textarea{width:100%;border:1px solid rgba(63,95,90,.20);border-radius:16px;background:#fff;padding:14px 16px;font:inherit;color:var(--text);}
.embedded-contact textarea{resize:vertical;min-height:150px;}
.embedded-contact input:focus,.embedded-contact textarea:focus{outline:3px solid rgba(224,122,79,.22);border-color:var(--orange);}
.footer-grid-clean{align-items:start;}
.footer-contact{line-height:1.8;color:var(--offwhite);}
.footer-contact a{color:var(--offwhite);}

/* Donate page integrated from preview2 */
.donate-page-v2{background:var(--offwhite);}
.donate-hero-v2{padding:calc(var(--header-h) + 76px) 0 130px;background:var(--green-900);color:var(--offwhite);text-align:center;position:relative;overflow:hidden;}
.donate-hero-v2 h1{font-family:Lato,Arial,sans-serif;font-weight:400!important;font-size:clamp(40px,5.6vw,70px);line-height:1.05;max-width:760px;margin:0 auto;color:#fff;}
.donate-hero-v2 h1::after{margin-left:auto;margin-right:auto;}
.donate-hero-v2 p:not(.kicker){font-size:20px;max-width:680px;margin:22px auto 0;color:rgba(244,241,236,.90);}
.donate-tool-section{padding-top:0;margin-top:-78px;background:var(--offwhite)!important;position:relative;z-index:2;}
.donate-v2-layout{display:grid;grid-template-columns:minmax(360px,0.88fr) minmax(420px,1.12fr);gap:42px;align-items:start;}
.donate-card-v2,.finance-info-v2{background:#fff;border-radius:28px;box-shadow:var(--shadow);padding:36px;}
.step-label{font-family:Lato,Arial,sans-serif;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:12px;color:var(--orange);margin-bottom:14px;}
.amount-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px;}
.amount-grid button,.freq-toggle button,.pay-method-v2{font-family:'IBM Plex Sans',Arial,sans-serif;border:2px solid transparent;border-radius:14px;background:var(--offwhite);color:var(--green-800);font-weight:700;cursor:pointer;transition:border-color .2s,background .2s,transform .12s,color .2s;}
.amount-grid button{font-size:18px;padding:16px 0;}
.amount-grid button:hover,.freq-toggle button:hover,.pay-method-v2:hover{border-color:var(--green-700);transform:translateY(-2px);}
.amount-grid button.active,.freq-toggle button.active,.pay-method-v2.active{border-color:var(--orange);background:#fff;color:var(--orange);}
.custom-amount{position:relative;display:block;margin-bottom:16px;}
.custom-amount span{position:absolute;left:16px;top:50%;transform:translateY(-50%);font-weight:700;color:var(--green-700);}
.custom-amount input{width:100%;padding:14px 16px 14px 36px;border:2px solid rgba(63,95,90,.18);border-radius:14px;font:inherit;background:#fff;}
.freq-toggle{display:flex;gap:10px;margin:18px 0 26px;}
.freq-toggle button{flex:1;padding:12px;}
.pay-methods-v2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.pay-method-v2{display:flex;align-items:center;gap:10px;text-align:left;padding:14px;background:#fff;border-color:rgba(63,95,90,.18);}
.pay-method-v2 .radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--green-700);position:relative;flex:none;}
.pay-method-v2.active .radio{border-color:var(--orange);}
.pay-method-v2.active .radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--orange);}
.pay-method-v2 strong{margin-left:auto;font-size:12px;color:var(--green-700);}
.donate-summary-v2{margin-top:26px;padding-top:22px;border-top:1px solid rgba(58,54,50,.12);display:flex;justify-content:space-between;align-items:baseline;color:var(--green-800);}
.donate-summary-v2 strong{font-family:Lato,Arial,sans-serif;font-size:31px;color:var(--green-800);}
.btn-give-v2{font-size:18px;padding:16px 24px;}
.finance-info-v2 h2{font-family:Lato,Arial,sans-serif;font-weight:400;color:var(--green-800);font-size:clamp(30px,4vw,46px);line-height:1.06;margin:0 0 24px;}
.finance-info-v2 p{color:rgba(58,54,50,.82);}
.trust-v2{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:28px 0;}
.trust-v2 div{background:var(--offwhite);border-radius:16px;padding:18px;text-align:center;}
.trust-v2 strong{display:block;font-family:Lato,Arial,sans-serif;font-size:26px;color:var(--orange);}
.trust-v2 span{display:block;font-size:13.5px;line-height:1.3;color:rgba(58,54,50,.82);}
.bank-fallback-v2{background:var(--soft);border-radius:18px;padding:24px;margin-top:24px;}
.bank-fallback-v2 h3{font-family:Lato,Arial,sans-serif;color:var(--green-800);font-size:21px;margin:0 0 10px;}

@media(max-width:1000px){
  .proj-grid,.update-grid,.contact-layout,.donate-v2-layout{grid-template-columns:1fr;}
  .proj-card-wide{grid-column:auto;display:flex;}
  .proj-card-wide .ph{height:275px;min-height:0;}
  .contact-layout{gap:34px;}
}
@media(max-width:680px){
  .proj-card .ph{height:230px;}
  .embedded-contact{grid-template-columns:1fr;padding:24px;}
  .contact-meta,.trust-v2,.amount-grid,.pay-methods-v2{grid-template-columns:1fr 1fr;}
  .donate-card-v2,.finance-info-v2{padding:26px 22px;}
}
@media(max-width:480px){.contact-meta,.trust-v2,.amount-grid,.pay-methods-v2{grid-template-columns:1fr;}}


/* --- Kimuli update v20: organic board photos, scroll reveal, aligned project cards, admin-ready project links --- */
/* Board portraits: three organic shapes, same visual size as before. */
.board-grid-soft .organic-portrait{
  width:185px!important;
  height:185px!important;
  border-radius:56% 44% 50% 50% / 46% 55% 45% 54%!important;
  overflow:hidden!important;
  margin:0 auto 14px!important;
  box-shadow:0 16px 36px rgba(58,54,50,.16)!important;
}
.board-grid-soft .person-card:nth-child(1) .organic-portrait{
  border-radius:62% 38% 51% 49% / 44% 58% 42% 56%!important;
}
.board-grid-soft .person-card:nth-child(2) .organic-portrait{
  border-radius:45% 55% 61% 39% / 56% 43% 57% 44%!important;
}
.board-grid-soft .person-card:nth-child(3) .organic-portrait{
  border-radius:52% 48% 40% 60% / 42% 61% 39% 58%!important;
}
.board-grid-soft .organic-portrait img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
}

/* Progressive reveal on scroll. JavaScript adds .js-reveal to body so content stays visible if JS is unavailable. */
body.js-reveal .reveal-on-scroll{
  opacity:0;
  transform:translateY(34px);
  transition:opacity .78s ease, transform .78s ease;
  transition-delay:var(--reveal-delay,0ms);
  will-change:opacity,transform;
}
body.js-reveal .reveal-on-scroll.reveal-visible{
  opacity:1;
  transform:translateY(0);
}
@media (prefers-reduced-motion:reduce){
  body.js-reveal .reveal-on-scroll{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
}

/* Project card photo crop and internal alignment. */
.proj-grid{align-items:stretch!important;}
.proj-card{
  min-height:100%!important;
}
.proj-card .ph{
  height:265px!important;
  background:var(--green-800);
}
.proj-card .ph img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:var(--project-img-x,50%) var(--project-img-y,50%)!important;
}
#project-water .ph img{--project-img-x:50%;--project-img-y:44%;}
#project-health .ph img{--project-img-x:50%;--project-img-y:36%;}
#project-living .ph img{--project-img-x:50%;--project-img-y:48%;}
#project-education .ph img{--project-img-x:50%;--project-img-y:42%;}
#project-economic .ph img{--project-img-x:50%;--project-img-y:50%;}
.proj-card .body{
  display:grid!important;
  grid-template-rows:auto minmax(76px,auto) auto auto!important;
  align-content:start!important;
  min-height:330px!important;
}
.proj-card h3{
  min-height:58px!important;
  display:flex!important;
  align-items:flex-start!important;
  margin-bottom:12px!important;
}
.proj-card .now{
  min-height:76px!important;
  margin-bottom:0!important;
}
.proj-card .goal{
  align-self:start!important;
  margin:0!important;
  padding-top:20px!important;
  border-top:1px solid rgba(58,54,50,.16)!important;
  display:grid!important;
  grid-template-columns:auto 1fr!important;
  gap:10px!important;
}
.proj-card .goal b{line-height:1.45!important;}
.proj-card-wide .body{min-height:300px!important;}
.proj-card-wide .ph{min-height:300px!important;height:100%!important;}
.project-more{
  display:none;
  margin-top:20px;
  font-family:Lato,Arial,sans-serif;
  color:var(--orange);
  font-weight:700;
}
.proj-card.is-clickable{
  cursor:pointer;
  position:relative;
}
.proj-card.is-clickable .project-more{display:inline-block;}
.proj-card.is-clickable .project-more::after{content:' →';}
.proj-card:not(.is-clickable){cursor:default;}
.proj-card:not(.is-clickable) .project-more{display:none!important;}
@media(max-width:1000px){
  .proj-card .body{min-height:auto!important;grid-template-rows:auto!important;}
  .proj-card h3,.proj-card .now{min-height:0!important;}
  .proj-card-wide .body{min-height:auto!important;}
}
@media(max-width:680px){
  .proj-card .ph{height:220px!important;}
}


/* --- Kimuli update v20: project detail pages and admin --- */
.project-detail-page{background:var(--offwhite);}
.project-detail-hero{padding:calc(var(--header-h) + 80px) 0 90px;background:var(--green-900);color:var(--offwhite);}
.project-detail-grid{display:grid;grid-template-columns:minmax(0,0.95fr) minmax(360px,1.05fr);gap:54px;align-items:center;}
.project-detail-copy h1{font-family:Lato,Arial,sans-serif;font-weight:400;color:#fff;font-size:clamp(40px,5.5vw,72px);line-height:1.05;margin:0 0 22px;}
.project-detail-copy p:not(.kicker){font-size:20px;color:rgba(244,241,236,.90);max-width:620px;}
.project-detail-image{height:min(520px,48vw);min-height:340px;border-radius:34px;overflow:hidden;box-shadow:0 28px 80px rgba(0,0,0,.26);background:var(--green-800);}
.project-detail-image img{width:100%;height:100%;object-fit:cover;}
.project-detail-content{background:var(--offwhite)!important;}
.project-detail-content-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:42px;align-items:start;}
.project-detail-text,.project-features{background:#fff;border-radius:28px;padding:34px;box-shadow:var(--shadow);}
.project-detail-text p{font-size:18px;color:rgba(58,54,50,.84);}
.project-features h2{font-family:Lato,Arial,sans-serif;font-weight:400;color:var(--green-800);font-size:32px;margin:0 0 20px;}
.project-features ul{list-style:none;margin:0;padding:0;display:grid;gap:12px;}
.project-features li{background:var(--offwhite);border-left:5px solid var(--orange);border-radius:14px;padding:14px 16px;color:var(--green-800);font-weight:700;}
.project-gallery-section{background:#fff!important;}
.project-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.project-gallery img{width:100%;height:250px;object-fit:cover;border-radius:22px;box-shadow:0 14px 34px rgba(58,54,50,.10);}
@media(max-width:900px){.project-detail-grid,.project-detail-content-grid{grid-template-columns:1fr}.project-detail-image{height:360px}.project-gallery{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.project-gallery{grid-template-columns:1fr}.project-detail-image{height:300px}}

/* --- Kimuli v22: improved admin photo crop output with drag-position + zoom --- */
.proj-card .ph img{
  object-position:var(--project-img-x,50%) var(--project-img-y,50%)!important;
  transform:translate(var(--project-img-offset-x,0%),var(--project-img-offset-y,0%)) scale(var(--project-img-zoom,1))!important;
  transform-origin:center center!important;
  will-change:transform,object-position;
}
.proj-card:hover .ph img{
  transform:translate(var(--project-img-offset-x,0%),var(--project-img-offset-y,0%)) scale(var(--project-img-hover-zoom,var(--project-img-zoom,1)))!important;
}
.project-detail-image img{
  object-position:var(--project-img-x,50%) var(--project-img-y,50%)!important;
  transform:translate(var(--project-img-offset-x,0%),var(--project-img-offset-y,0%)) scale(var(--project-img-zoom,1))!important;
  transform-origin:center center!important;
  will-change:transform,object-position;
}
