@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;
  }
}
