{"id":193,"date":"2026-08-19T21:09:28","date_gmt":"2026-08-19T21:09:28","guid":{"rendered":"https:\/\/onelifecmr.com\/?page_id=193"},"modified":"2026-10-04T20:53:20","modified_gmt":"2026-10-04T20:53:20","slug":"projects","status":"publish","type":"page","link":"https:\/\/onelifecmr.com\/fr\/projects\/","title":{"rendered":"Projets"},"content":{"rendered":"\n<!--\n  ONE LIFE CAMEROON \u2014 PROJECTS PAGE: \"OUR METHODOLOGY\" SECTION\n  =================================================\n  PASTE ONLY the content between \"START PASTE HERE\" and \"END PASTE HERE\"\n  into a Neve \"HTML\" component on the Projects page (above or below the\n  project cards \/ river journey, your choice).\n\n  NOTE ON IMAGERY: the reference screenshot used a photo of visibly\n  malnourished children. I've swapped in a neutral community photo\n  instead \u2014 images depicting children in physical distress are generally\n  discouraged for NGOs, as they can read as exploitative (\"poverty\n  porn\") rather than dignified storytelling. Replace [METHOD_PHOTO_URL]\n  with your own photography showing community members, training\n  sessions, or completed project work instead.\n\n  REPLACE BEFORE LAUNCH: photo, and confirm the 6 principles still match\n  how OneLife Cameroon actually operates.\n-->\n\n<!-- START PASTE HERE -->\n<style>\n  .olc-method {\n    --ink:#1B2430; --forest:#2F6B4F; --forest-deep:#16342A; --clay:#E8720C;\n    --gold:#D9A441; --sand:#F7F4EC; --white:#fff; --line:#E7E2D4;\n    --display:\"Fraunces\",Georgia,serif; --sans:\"Work Sans\",sans-serif;\n    font-family: var(--sans); color: var(--ink); background: var(--white); line-height:1.6;\n  }\n  .olc-method *, .olc-method *::before, .olc-method *::after { box-sizing:border-box; }\n  .olc-method img { max-width:100%; display:block; }\n  .olc-method h2, .olc-method h3 { font-family: var(--display); font-weight:600; margin:0 0 .3em; line-height:1.15; }\n  .olc-method .wrap { max-width: 1200px; margin: 0 auto; padding: 90px 24px; }\n  .olc-method .cap { display:flex; align-items:center; gap:10px; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; color: var(--clay); font-weight:700; margin-bottom:18px; }\n  .olc-method .cap::before { content:\"\"; width:28px; height:2px; background: var(--clay); display:inline-block; }\n\n  .olc-method__grid { display:grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items:start; }\n  @media (max-width: 960px) { .olc-method__grid { grid-template-columns: 1fr; } }\n\n  .olc-method__left h2 { font-size: clamp(2rem, 4vw, 2.7rem); margin-bottom:.4em; }\n  .olc-method__intro { font-size: 1.02rem; color:#555; margin: 0 0 40px; max-width: 480px; }\n\n  .olc-method__steps { display:grid; grid-template-columns: 1fr 1fr; gap: 34px 30px; }\n  .method-step__icon { width:30px; height:30px; margin-bottom:10px; }\n  .method-step__icon svg { width:100%; height:100%; stroke: var(--forest-deep); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }\n  .method-step h3 { font-size: 1.08rem; margin-bottom:6px; }\n  .method-step p { font-size: .92rem; color:#5a5a5a; margin:0; }\n  @media (max-width: 540px) { .olc-method__steps { grid-template-columns: 1fr; } }\n\n  .olc-method__right img { border-radius: 14px; width:100%; height: 340px; object-fit:cover; margin-bottom: 28px; }\n  .olc-method__principles h3 { font-size: 1.25rem; margin-bottom: 18px; }\n  .olc-method__principles ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap: 12px; }\n  .olc-method__principles li { display:flex; align-items:center; gap:10px; font-size: .98rem; color:#333; }\n  .olc-method__check { width:20px; height:20px; flex-shrink:0; border-radius:50%; background: var(--sand); display:flex; align-items:center; justify-content:center; }\n  .olc-method__check svg { width:12px; height:12px; stroke: var(--forest); fill:none; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }\n\n  .olc-reveal { opacity:0; transform: translateY(22px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1); }\n  .olc-reveal.is-visible { opacity:1; transform:none; }\n  @media (prefers-reduced-motion: reduce) { .olc-reveal { opacity:1; transform:none; transition:none; } }\n<\/style>\n\n<div class=\"olc-method\">\n  <div class=\"wrap\">\n    <div class=\"olc-method__grid\">\n\n      <!-- LEFT: methodology steps -->\n      <div class=\"olc-method__left olc-reveal\">\n        <span class=\"cap\">Our Methodology<\/span>\n        <h2>Project Approach &amp; Implementation Strategy<\/h2>\n        <p class=\"olc-method__intro\">At One Life Cameroon, we follow a comprehensive and sustainable approach to project implementation that ensures maximum impact and long-term benefits for the communities we serve.<\/p>\n\n        <div class=\"olc-method__steps\">\n          <div class=\"method-step\">\n            <div class=\"method-step__icon\"><svg viewBox=\"0 0 24 24\"><circle cx=\"11\" cy=\"11\" r=\"7\"><\/circle><path d=\"M21 21l-4.35-4.35\"><\/path><\/svg><\/div>\n            <h3>1. Community Assessment<\/h3>\n            <p>We begin by conducting thorough needs assessments in target communities to identify the most pressing issues and understand local dynamics.<\/p>\n          <\/div>\n          <div class=\"method-step\">\n            <div class=\"method-step__icon\"><svg viewBox=\"0 0 24 24\"><circle cx=\"9\" cy=\"8\" r=\"3\"><\/circle><circle cx=\"17\" cy=\"9\" r=\"2.5\"><\/circle><path d=\"M3 20v-1a5 5 0 0 1 5-5h2a5 5 0 0 1 5 5v1\"><\/path><path d=\"M16 14.2a4 4 0 0 1 4 3.8v1\"><\/path><\/svg><\/div>\n            <h3>2. Stakeholder Engagement<\/h3>\n            <p>We engage with community leaders, local authorities, and beneficiaries to ensure project ownership and sustainability.<\/p>\n          <\/div>\n          <div class=\"method-step\">\n            <div class=\"method-step__icon\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"3.2\"><\/circle><path d=\"M12 3v2.4M12 18.6V21M4.9 4.9l1.7 1.7M17.4 17.4l1.7 1.7M3 12h2.4M18.6 12H21M4.9 19.1l1.7-1.7M17.4 6.6l1.7-1.7\"><\/path><\/svg><\/div>\n            <h3>3. Strategic Planning<\/h3>\n            <p>Based on assessment findings, we develop detailed implementation plans with clear objectives, timelines, and success indicators.<\/p>\n          <\/div>\n          <div class=\"method-step\">\n            <div class=\"method-step__icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M9 11l-5 5 5 5\"><\/path><path d=\"M4 16h11a5 5 0 0 0 5-5v-1\"><\/path><path d=\"M15 13l5-5-5-5\"><\/path><path d=\"M20 8H9a5 5 0 0 0-5 5v1\"><\/path><\/svg><\/div>\n            <h3>4. Partnership Building<\/h3>\n            <p>We collaborate with local NGOs, government agencies, and international partners to leverage resources and expertise.<\/p>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- RIGHT: photo + implementation principles -->\n      <div class=\"olc-method__right olc-reveal\">\n        <img decoding=\"async\" src=\"https:\/\/onelifecmr.com\/wp-content\/uploads\/2026\/08\/african-farmer-2-scaled.jpg\" alt=\"One Life Cameroon team working alongside a rural community\">\n        <div class=\"olc-method__principles\">\n          <h3>Our Implementation Principles<\/h3>\n          <ul>\n            <li><span class=\"olc-method__check\"><svg viewBox=\"0 0 24 24\"><path d=\"M4 12l5 5L20 6\"><\/path><\/svg><\/span>Community-driven development<\/li>\n            <li><span class=\"olc-method__check\"><svg viewBox=\"0 0 24 24\"><path d=\"M4 12l5 5L20 6\"><\/path><\/svg><\/span>Sustainable solutions<\/li>\n            <li><span class=\"olc-method__check\"><svg viewBox=\"0 0 24 24\"><path d=\"M4 12l5 5L20 6\"><\/path><\/svg><\/span>Capacity building focus<\/li>\n            <li><span class=\"olc-method__check\"><svg viewBox=\"0 0 24 24\"><path d=\"M4 12l5 5L20 6\"><\/path><\/svg><\/span>Transparency and accountability<\/li>\n            <li><span class=\"olc-method__check\"><svg viewBox=\"0 0 24 24\"><path d=\"M4 12l5 5L20 6\"><\/path><\/svg><\/span>Cultural sensitivity<\/li>\n            <li><span class=\"olc-method__check\"><svg viewBox=\"0 0 24 24\"><path d=\"M4 12l5 5L20 6\"><\/path><\/svg><\/span>Long-term impact measurement<\/li>\n          <\/ul>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function() {\n  if (!document.getElementById('olc-fonts')) {\n    var link = document.createElement('link');\n    link.id = 'olc-fonts';\n    link.rel = 'stylesheet';\n    link.href = 'https:\/\/fonts.googleapis.com\/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Work+Sans:wght@400;500;600;700&display=swap';\n    document.head.appendChild(link);\n  }\n  var revealEls = document.querySelectorAll('.olc-method .olc-reveal');\n  if ('IntersectionObserver' in window) {\n    var io = new IntersectionObserver(function(entries) {\n      entries.forEach(function(entry) { if (entry.isIntersecting) { entry.target.classList.add('is-visible'); io.unobserve(entry.target); } });\n    }, { threshold: .12 });\n    revealEls.forEach(function(el) { io.observe(el); });\n  } else { revealEls.forEach(function(el) { el.classList.add('is-visible'); }); }\n})();\n<\/script>\n<!-- END PASTE HERE -->\n\n\n\n<!-- ONE LIFE CAMEROON \u2014 PROJECTS \/ RIVER JOURNEY\n     Paste into an Elementor HTML widget or Neve HTML component.\n     Replace project placeholders, image URLs and links before launch.\n-->\n\n<style>\n.olc-projects {\n  --op-ink: #1B2430;\n  --op-forest: #2F6B4F;\n  --op-deep: #16342A;\n  --op-orange: #E8720C;\n  --op-orange-dark: #B85608;\n  --op-gold: #D9A441;\n  --op-sand: #F7F4EC;\n  --op-line: #E7E2D4;\n  --op-muted: #627068;\n  font-family: \"Work Sans\", Arial, sans-serif;\n  color: var(--op-ink);\n  line-height: 1.65;\n  background: #fff;\n  overflow: hidden;\n}\n\n.olc-projects *,\n.olc-projects *::before,\n.olc-projects *::after {\n  box-sizing: border-box;\n}\n\n.olc-projects img {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n}\n\n.olc-projects h1,\n.olc-projects h2,\n.olc-projects h3 {\n  font-family: \"Manrope\", \"Work Sans\", sans-serif;\n  line-height: 1.2;\n  font-weight: 800;\n  margin: 0 0 14px;\n}\n\n.olc-projects p { margin: 0 0 14px; }\n\n.olc-projects a { color: inherit; }\n\n.olc-projects a:focus-visible,\n.olc-projects button:focus-visible {\n  outline: 3px solid var(--op-gold);\n  outline-offset: 4px;\n}\n\n.olc-projects .op-container {\n  width: min(1160px, calc(100% - 48px));\n  margin-inline: auto;\n}\n\n.olc-projects .op-eyebrow {\n  display: inline-flex;\n  align-items: center;\n  gap: 10px;\n  color: var(--op-orange);\n  font-size: .76rem;\n  letter-spacing: .15em;\n  font-weight: 800;\n  text-transform: uppercase;\n  margin-bottom: 14px;\n}\n\n.olc-projects .op-eyebrow::before {\n  content: \"\";\n  width: 28px;\n  height: 2px;\n  background: currentColor;\n}\n\n\/* HERO *\/\n\n.olc-projects .op-hero {\n  position: relative;\n  display: flex;\n  align-items: center;\n  min-height: 390px;\n  isolation: isolate;\n  background: var(--op-deep);\n  color: #fff;\n}\n\n.olc-projects .op-hero__image {\n  position: absolute;\n  inset: 0;\n  z-index: -2;\n}\n\n.olc-projects .op-hero__image img {\n  height: 100%;\n  object-fit: cover;\n  object-position: center 45%;\n}\n\n.olc-projects .op-hero::after {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  z-index: -1;\n  background: linear-gradient(\n    90deg,\n    rgba(14, 40, 31, .94) 0%,\n    rgba(14, 40, 31, .76) 48%,\n    rgba(14, 40, 31, .15) 100%\n  );\n}\n\n.olc-projects .op-hero__content {\n  max-width: 690px;\n  padding-block: 72px;\n}\n\n.olc-projects .op-hero .op-eyebrow { color: #F3BD62; }\n\n.olc-projects .op-hero h1 {\n  color: #fff;\n  font-size: clamp(2.4rem, 5.5vw, 4.25rem);\n  letter-spacing: -.045em;\n  margin-bottom: 20px;\n}\n\n.olc-projects .op-hero h1 span { color: #F3BD62; }\n\n.olc-projects .op-hero__text {\n  max-width: 590px;\n  color: rgba(255,255,255,.9);\n  font-size: clamp(1rem, 1.5vw, 1.12rem);\n  line-height: 1.8;\n}\n\n.olc-projects .op-hero__actions {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 12px;\n  margin-top: 26px;\n}\n\n\/* BUTTONS *\/\n\n.olc-projects .op-btn {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 9px;\n  min-height: 46px;\n  padding: 12px 20px;\n  border: 1px solid transparent;\n  border-radius: 6px;\n  font-size: .88rem;\n  font-weight: 700;\n  text-decoration: none;\n  cursor: pointer;\n  transition: background .2s ease, transform .2s ease,\n              border-color .2s ease;\n}\n\n.olc-projects .op-btn:hover { transform: translateY(-2px); }\n\n.olc-projects .op-btn--primary {\n  background: var(--op-orange);\n  color: #fff;\n}\n\n.olc-projects .op-btn--primary:hover {\n  background: var(--op-orange-dark);\n  color: #fff;\n}\n\n.olc-projects .op-btn--light {\n  border-color: rgba(255,255,255,.65);\n  color: #fff;\n  background: rgba(255,255,255,.05);\n}\n\n.olc-projects .op-btn--light:hover {\n  background: #fff;\n  color: var(--op-deep);\n}\n\n\/* INTRODUCTION *\/\n\n.olc-projects .op-intro {\n  padding: 78px 0 26px;\n  text-align: center;\n}\n\n.olc-projects .op-intro h2 {\n  font-size: clamp(1.8rem, 3.5vw, 2.65rem);\n  color: var(--op-deep);\n  letter-spacing: -.035em;\n}\n\n.olc-projects .op-intro__text {\n  max-width: 720px;\n  margin: 0 auto;\n  color: var(--op-muted);\n  font-size: 1rem;\n}\n\n\/* FILTERS *\/\n\n.olc-projects .op-filters {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  flex-wrap: wrap;\n  gap: 10px;\n  margin: 30px auto 22px;\n}\n\n.olc-projects .op-filter {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  padding: 10px 17px;\n  border: 1px solid var(--op-line);\n  border-radius: 999px;\n  background: #fff;\n  color: var(--op-ink);\n  font: inherit;\n  font-size: .85rem;\n  font-weight: 650;\n  cursor: pointer;\n  transition: background .2s ease, color .2s ease,\n              border-color .2s ease;\n}\n\n.olc-projects .op-filter:hover {\n  border-color: var(--op-forest);\n}\n\n.olc-projects .op-filter[aria-pressed=\"true\"] {\n  background: var(--op-deep);\n  border-color: var(--op-deep);\n  color: #fff;\n}\n\n.olc-projects .op-filter__dot {\n  width: 8px;\n  height: 8px;\n  border-radius: 50%;\n  background: var(--op-forest);\n}\n\n.olc-projects .op-filter[data-filter=\"water\"] .op-filter__dot {\n  background: #45A69A;\n}\n\n.olc-projects .op-filter[data-filter=\"nutrition\"] .op-filter__dot {\n  background: #D9A441;\n}\n\n.olc-projects .op-filter[data-filter=\"health\"] .op-filter__dot {\n  background: #D77C88;\n}\n\n.olc-projects .op-filter[data-filter=\"economy\"] .op-filter__dot {\n  background: #9986D4;\n}\n\n.olc-projects .op-filter__count {\n  font-size: .75rem;\n  opacity: .7;\n}\n\n.olc-projects .op-legend {\n  display: flex;\n  justify-content: center;\n  flex-wrap: wrap;\n  gap: 20px;\n  color: var(--op-muted);\n  font-size: .8rem;\n  margin: 24px 0 14px;\n}\n\n.olc-projects .op-legend span {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n}\n\n.olc-projects .op-legend i {\n  display: inline-block;\n  width: 9px;\n  height: 9px;\n  border-radius: 50%;\n  background: var(--op-forest);\n}\n\n.olc-projects .op-legend .is-ongoing {\n  background: var(--op-orange);\n}\n\n.olc-projects .op-legend .is-upcoming {\n  background: #fff;\n  border: 2px dashed #909B94;\n}\n\n\/* TIMELINE *\/\n\n.olc-projects .op-journey {\n  position: relative;\n  max-width: 1020px;\n  margin: 38px auto 0;\n  padding: 8px 0 22px;\n}\n\n.olc-projects .op-river {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 50%;\n  width: 5px;\n  transform: translateX(-50%);\n  border-radius: 10px;\n  background: linear-gradient(\n    180deg,\n    var(--op-forest) 0%,\n    var(--op-forest) 45%,\n    #D6DFD7 45%,\n    #D6DFD7 100%\n  );\n}\n\n.olc-projects .op-river::after {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  background: repeating-linear-gradient(\n    180deg,\n    transparent 0 14px,\n    rgba(255,255,255,.65) 14px 20px\n  );\n  background-size: 100% 34px;\n  animation: op-river-flow 2.8s linear infinite;\n}\n\n@keyframes op-river-flow {\n  to { background-position: 0 34px; }\n}\n\n.olc-projects .op-stop {\n  position: relative;\n  display: grid;\n  grid-template-columns: minmax(0,1fr) 64px minmax(0,1fr);\n  align-items: center;\n  margin-bottom: 48px;\n}\n\n.olc-projects .op-stop:last-child { margin-bottom: 0; }\n\n.olc-projects .op-stop[hidden] { display: none !important; }\n\n.olc-projects .op-stop__marker {\n  grid-column: 2;\n  grid-row: 1;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  z-index: 2;\n}\n\n.olc-projects .op-stop__dot {\n  display: block;\n  width: 23px;\n  height: 23px;\n  border: 5px solid var(--op-forest);\n  border-radius: 50%;\n  background: #fff;\n  box-shadow: 0 0 0 6px rgba(255,255,255,.9);\n}\n\n.olc-projects .op-stop[data-status=\"ongoing\"] .op-stop__dot {\n  border-color: var(--op-orange);\n  box-shadow: 0 0 0 6px #fff, 0 0 0 9px rgba(232,114,12,.13);\n}\n\n.olc-projects .op-stop[data-status=\"upcoming\"] .op-stop__dot {\n  border: 3px dashed #929C95;\n  background: var(--op-sand);\n}\n\n.olc-projects .op-stop__card {\n  min-width: 0;\n  grid-row: 1;\n  background: #fff;\n  border: 1px solid var(--op-line);\n  border-radius: 13px;\n  overflow: hidden;\n  box-shadow: 0 8px 28px rgba(27,36,48,.055);\n  transition: box-shadow .25s ease, transform .25s ease;\n}\n\n.olc-projects .op-stop__card:hover {\n  transform: translateY(-4px);\n  box-shadow: 0 18px 42px rgba(27,36,48,.11);\n}\n\n.olc-projects .op-stop--left .op-stop__card {\n  grid-column: 1;\n}\n\n.olc-projects .op-stop--right .op-stop__card {\n  grid-column: 3;\n}\n\n.olc-projects .op-stop__image {\n  position: relative;\n  height: 205px;\n  overflow: hidden;\n  background: var(--op-sand);\n}\n\n.olc-projects .op-stop__image img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  transition: transform .5s ease;\n}\n\n.olc-projects .op-stop__card:hover .op-stop__image img {\n  transform: scale(1.045);\n}\n\n.olc-projects .op-stop__body { padding: 22px; }\n\n.olc-projects .op-stop__meta {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin-bottom: 13px;\n}\n\n.olc-projects .op-tag {\n  display: inline-block;\n  padding: 5px 10px;\n  border-radius: 4px;\n  font-size: .69rem;\n  font-weight: 800;\n  letter-spacing: .045em;\n  text-transform: uppercase;\n}\n\n.olc-projects .op-tag--water {\n  color: #17695B;\n  background: #E0F1EC;\n}\n\n.olc-projects .op-tag--nutrition {\n  color: #85580B;\n  background: #FBF0D7;\n}\n\n.olc-projects .op-tag--health {\n  color: #A12B45;\n  background: #F9E4E8;\n}\n\n.olc-projects .op-tag--economy {\n  color: #554291;\n  background: #ECE7F9;\n}\n\n.olc-projects .op-status {\n  font-size: .7rem;\n  font-weight: 750;\n  border-radius: 999px;\n  padding: 5px 10px;\n}\n\n.olc-projects .op-status--completed {\n  background: #E6F0EA;\n  color: var(--op-deep);\n}\n\n.olc-projects .op-status--ongoing {\n  background: #FDEBDA;\n  color: #994A08;\n}\n\n.olc-projects .op-status--upcoming {\n  background: #F0F0EE;\n  color: #616A65;\n}\n\n.olc-projects .op-stop__title {\n  font-size: 1.16rem;\n  color: var(--op-deep);\n  margin-bottom: 9px;\n  letter-spacing: -.02em;\n}\n\n.olc-projects .op-stop__location {\n  font-size: .8rem;\n  color: var(--op-muted);\n  margin-bottom: 12px;\n}\n\n.olc-projects .op-stop__description {\n  font-size: .9rem;\n  line-height: 1.75;\n  color: #53615A;\n  margin-bottom: 18px;\n}\n\n.olc-projects .op-stop__actions {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 9px;\n}\n\n.olc-projects .op-stop__actions .op-btn {\n  padding: 10px 13px;\n  min-height: 40px;\n  font-size: .79rem;\n}\n\n.olc-projects .op-stop__actions .op-btn--outline {\n  color: var(--op-deep);\n  border-color: #D5DDD6;\n  background: #fff;\n}\n\n.olc-projects .op-stop__actions .op-btn--outline:hover {\n  background: var(--op-sand);\n  border-color: var(--op-forest);\n}\n\n\/* EMPTY FILTER MESSAGE *\/\n\n.olc-projects .op-empty {\n  padding: 24px;\n  text-align: center;\n  color: var(--op-muted);\n  background: var(--op-sand);\n  border-radius: 10px;\n}\n\n\/* FINAL CALL TO ACTION *\/\n\n.olc-projects .op-cta {\n  position: relative;\n  background: var(--op-sand);\n  padding: 66px 24px;\n  margin-top: 28px;\n  text-align: center;\n}\n\n.olc-projects .op-cta__inner {\n  max-width: 700px;\n  margin-inline: auto;\n}\n\n.olc-projects .op-cta h2 {\n  font-size: clamp(1.8rem, 3.5vw, 2.6rem);\n  color: var(--op-deep);\n  letter-spacing: -.035em;\n}\n\n.olc-projects .op-cta p {\n  color: var(--op-muted);\n  margin-bottom: 24px;\n}\n\n.olc-projects .op-note {\n  font-size: .76rem;\n  color: #7A827D;\n  text-align: center;\n  margin: 8px auto 28px;\n}\n\n.olc-projects .op-reveal {\n  opacity: 0;\n  transform: translateY(18px);\n  transition: opacity .55s ease, transform .55s ease;\n}\n\n.olc-projects .op-reveal.is-visible {\n  opacity: 1;\n  transform: none;\n}\n\n@media (max-width: 760px) {\n  .olc-projects .op-container {\n    width: min(100% - 36px, 600px);\n  }\n\n  .olc-projects .op-hero {\n    min-height: 390px;\n  }\n\n  .olc-projects .op-hero::after {\n    background: linear-gradient(\n      90deg,\n      rgba(14,40,31,.91),\n      rgba(14,40,31,.64)\n    );\n  }\n\n  .olc-projects .op-hero__content { padding-block: 58px; }\n\n  .olc-projects .op-intro { padding-top: 58px; }\n\n  .olc-projects .op-filters {\n    justify-content: flex-start;\n    margin-top: 24px;\n  }\n\n  .olc-projects .op-filter {\n    padding: 9px 13px;\n    font-size: .8rem;\n  }\n\n  .olc-projects .op-legend {\n    justify-content: flex-start;\n    gap: 12px 18px;\n  }\n\n  .olc-projects .op-journey {\n    margin-top: 32px;\n    padding: 0 0 8px 32px;\n  }\n\n  .olc-projects .op-river {\n    left: 10px;\n    width: 4px;\n    transform: none;\n  }\n\n  .olc-projects .op-stop {\n    display: grid;\n    grid-template-columns: 1fr;\n    margin-bottom: 28px;\n    padding-left: 0;\n  }\n\n  .olc-projects .op-stop__marker {\n    position: absolute;\n    left: -32px;\n    top: 24px;\n    width: 20px;\n  }\n\n  .olc-projects .op-stop__dot {\n    width: 19px;\n    height: 19px;\n    border-width: 4px;\n    box-shadow: 0 0 0 4px #fff;\n  }\n\n  .olc-projects .op-stop__card,\n  .olc-projects .op-stop--left .op-stop__card,\n  .olc-projects .op-stop--right .op-stop__card {\n    grid-column: 1;\n  }\n\n  .olc-projects .op-stop__image { height: 210px; }\n  .olc-projects .op-stop__body { padding: 19px; }\n\n  .olc-projects .op-stop__actions .op-btn { flex: 1; }\n\n  .olc-projects .op-cta { padding: 52px 20px; }\n}\n\n@media (max-width: 420px) {\n  .olc-projects .op-hero h1 { font-size: 2.35rem; }\n  .olc-projects .op-hero__actions .op-btn { width: 100%; }\n  .olc-projects .op-stop__image { height: 180px; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .olc-projects *,\n  .olc-projects *::before,\n  .olc-projects *::after {\n    animation-duration: .01ms !important;\n    animation-iteration-count: 1 !important;\n    scroll-behavior: auto !important;\n    transition-duration: .01ms !important;\n  }\n\n  .olc-projects .op-reveal {\n    opacity: 1;\n    transform: none;\n  }\n}\n<\/style>\n\n<div class=\"olc-projects\">\n\n\n\n  <!-- INTRO -->\n  <section class=\"op-container op-intro op-reveal\">\n    <span class=\"op-eyebrow\">The journey so far<\/span>\n    <h2>Turning commitment into action<\/h2>\n    <p class=\"op-intro__text\">\n      Every project begins with a community need. Discover completed\n      initiatives, work currently underway, and the next steps in our\n      mission to improve lives across Cameroon.\n    <\/p>\n  <\/section>\n\n  <!-- FILTERS -->\n  <nav class=\"op-container op-filters\" aria-label=\"Filter projects\">\n    <button class=\"op-filter\" type=\"button\" data-filter=\"all\" aria-pressed=\"true\">\n      All projects\n    <\/button>\n    <button class=\"op-filter\" type=\"button\" data-filter=\"water\" aria-pressed=\"false\">\n      <span class=\"op-filter__dot\"><\/span> Water\n    <\/button>\n    <button class=\"op-filter\" type=\"button\" data-filter=\"nutrition\" aria-pressed=\"false\">\n      <span class=\"op-filter__dot\"><\/span> Nutrition\n    <\/button>\n    <button class=\"op-filter\" type=\"button\" data-filter=\"health\" aria-pressed=\"false\">\n      <span class=\"op-filter__dot\"><\/span> Healthcare\n    <\/button>\n    <button class=\"op-filter\" type=\"button\" data-filter=\"economy\" aria-pressed=\"false\">\n      <span class=\"op-filter__dot\"><\/span> Economic development\n    <\/button>\n  <\/nav>\n\n  <div class=\"op-container op-legend\" aria-label=\"Project status legend\">\n    <span><i><\/i> Completed<\/span>\n    <span><i class=\"is-ongoing\"><\/i> Ongoing<\/span>\n    <span><i class=\"is-upcoming\"><\/i> Planned<\/span>\n  <\/div>\n\n  <!-- PROJECT TIMELINE -->\n  <section class=\"op-container\" id=\"olc-project-timeline\" aria-label=\"Our projects\">\n\n    <div class=\"op-journey\">\n      <div class=\"op-river\" aria-hidden=\"true\"><\/div>\n\n      <!-- PROJECT 1 -->\n      <article class=\"op-stop op-stop--left op-reveal\" data-status=\"completed\" data-cause=\"water\">\n\n        <div class=\"op-stop__card\">\n          <div class=\"op-stop__image\">\n            <img decoding=\"async\" src=\"https:\/\/images.unsplash.com\/photo-1541544537156-7627a7a4aa1c?q=80&amp;w=900&amp;auto=format&amp;fit=crop\" alt=\"Community water infrastructure\" loading=\"lazy\">\n          <\/div>\n          <div class=\"op-stop__body\">\n            <div class=\"op-stop__meta\">\n              <span class=\"op-tag op-tag--water\">Water<\/span>\n              <span class=\"op-status op-status--completed\">Completed<\/span>\n            <\/div>\n            <h3 class=\"op-stop__title\">\n              Community Well \u2014 [Village Name]\n            <\/h3>\n            <p class=\"op-stop__location\">\n              Cameroon \u00b7 [Region] \u00b7 [Year]\n            <\/p>\n            <p class=\"op-stop__description\">\n              [Describe the water access challenge, what the project\n              delivered, and the verified number of people or families\n              who benefited.]\n            <\/p>\n            <div class=\"op-stop__actions\">\n              <a class=\"op-btn op-btn--outline\" href=\"[PROJECT_DETAILS_URL]\">Project details \u2192<\/a>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"op-stop__marker\" aria-hidden=\"true\">\n          <span class=\"op-stop__dot\"><\/span>\n        <\/div>\n      <\/article>\n\n      <!-- PROJECT 2 -->\n      <article class=\"op-stop op-stop--right op-reveal\" data-status=\"completed\" data-cause=\"nutrition\">\n\n        <div class=\"op-stop__card\">\n          <div class=\"op-stop__image\">\n            <img decoding=\"async\" src=\"https:\/\/images.unsplash.com\/photo-1500651230702-0e2d8a49d4ad?q=80&amp;w=900&amp;auto=format&amp;fit=crop\" alt=\"Agricultural and community development\" loading=\"lazy\">\n          <\/div>\n          <div class=\"op-stop__body\">\n            <div class=\"op-stop__meta\">\n              <span class=\"op-tag op-tag--nutrition\">Nutrition<\/span>\n              <span class=\"op-status op-status--completed\">Completed<\/span>\n            <\/div>\n            <h3 class=\"op-stop__title\">\n              Farmer Training \u2014 [Project Name]\n            <\/h3>\n            <p class=\"op-stop__location\">\n              Cameroon \u00b7 [Region] \u00b7 [Year]\n            <\/p>\n            <p class=\"op-stop__description\">\n              [Explain the training delivered, the communities reached,\n              and any verified improvements in food security or\n              agricultural practices.]\n            <\/p>\n            <div class=\"op-stop__actions\">\n              <a class=\"op-btn op-btn--outline\" href=\"[PROJECT_DETAILS_URL]\">Project details \u2192<\/a>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"op-stop__marker\" aria-hidden=\"true\">\n          <span class=\"op-stop__dot\"><\/span>\n        <\/div>\n      <\/article>\n\n      <!-- PROJECT 3 -->\n      <article class=\"op-stop op-stop--left op-reveal\" data-status=\"ongoing\" data-cause=\"health\">\n\n        <div class=\"op-stop__card\">\n          <div class=\"op-stop__image\">\n            <img decoding=\"async\" src=\"https:\/\/images.unsplash.com\/photo-1631815589968-fdb09a223b1e?q=80&amp;w=900&amp;auto=format&amp;fit=crop\" alt=\"Healthcare and community health activities\" loading=\"lazy\">\n          <\/div>\n          <div class=\"op-stop__body\">\n            <div class=\"op-stop__meta\">\n              <span class=\"op-tag op-tag--health\">Healthcare<\/span>\n              <span class=\"op-status op-status--ongoing\">Ongoing<\/span>\n            <\/div>\n            <h3 class=\"op-stop__title\">\n              Health Awareness Campaign \u2014 [Name]\n            <\/h3>\n            <p class=\"op-stop__location\">\n              Cameroon \u00b7 [Region] \u00b7 In progress\n            <\/p>\n            <p class=\"op-stop__description\">\n              [Describe the health issue being addressed, the activities\n              underway, and the verified communities or households\n              reached so far.]\n            <\/p>\n            <div class=\"op-stop__actions\">\n              <a class=\"op-btn op-btn--outline\" href=\"[PROJECT_DETAILS_URL]\">Project details \u2192<\/a>\n              <a class=\"op-btn op-btn--primary\" href=\"\/donate\/\">Support<\/a>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"op-stop__marker\" aria-hidden=\"true\">\n          <span class=\"op-stop__dot\"><\/span>\n        <\/div>\n      <\/article>\n\n      <!-- PROJECT 4 -->\n      <article class=\"op-stop op-stop--right op-reveal\" data-status=\"ongoing\" data-cause=\"economy\">\n\n        <div class=\"op-stop__card\">\n          <div class=\"op-stop__image\">\n            <img decoding=\"async\" src=\"https:\/\/images.unsplash.com\/photo-1594708767771-a7502209ff51?q=80&amp;w=900&amp;auto=format&amp;fit=crop\" alt=\"Skills development and livelihoods\" loading=\"lazy\">\n          <\/div>\n          <div class=\"op-stop__body\">\n            <div class=\"op-stop__meta\">\n              <span class=\"op-tag op-tag--economy\">\n                Economic development\n              <\/span>\n              <span class=\"op-status op-status--ongoing\">Ongoing<\/span>\n            <\/div>\n            <h3 class=\"op-stop__title\">\n              Small Business Training \u2014 [Region]\n            <\/h3>\n            <p class=\"op-stop__location\">\n              Cameroon \u00b7 [Region] \u00b7 In progress\n            <\/p>\n            <p class=\"op-stop__description\">\n              [Describe the skills, training, or resources being provided\n              and the verified progress toward more sustainable livelihoods.]\n            <\/p>\n            <div class=\"op-stop__actions\">\n              <a class=\"op-btn op-btn--outline\" href=\"[PROJECT_DETAILS_URL]\">Project details \u2192<\/a>\n              <a class=\"op-btn op-btn--primary\" href=\"\/donate\/\">Support<\/a>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"op-stop__marker\" aria-hidden=\"true\">\n          <span class=\"op-stop__dot\"><\/span>\n        <\/div>\n      <\/article>\n\n      <!-- PROJECT 5 -->\n      <article class=\"op-stop op-stop--left op-reveal\" data-status=\"upcoming\" data-cause=\"water\">\n\n        <div class=\"op-stop__card\">\n          <div class=\"op-stop__image\">\n            <img decoding=\"async\" src=\"https:\/\/images.unsplash.com\/photo-1509099836639-18ba1795216d?q=80&amp;w=900&amp;auto=format&amp;fit=crop\" alt=\"Community development and water access\" loading=\"lazy\">\n          <\/div>\n          <div class=\"op-stop__body\">\n            <div class=\"op-stop__meta\">\n              <span class=\"op-tag op-tag--water\">Water<\/span>\n              <span class=\"op-status op-status--upcoming\">Planned<\/span>\n            <\/div>\n            <h3 class=\"op-stop__title\">\n              Clean Water Project \u2014 [Village Name]\n            <\/h3>\n            <p class=\"op-stop__location\">\n              Cameroon \u00b7 [Region] \u00b7 Planned [Year]\n            <\/p>\n            <p class=\"op-stop__description\">\n              [Explain the community&#8217;s water needs, the proposed\n              intervention, and what support is needed to move forward.]\n            <\/p>\n            <div class=\"op-stop__actions\">\n              <a class=\"op-btn op-btn--primary\" href=\"\/donate\/\">Help fund this project<\/a>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"op-stop__marker\" aria-hidden=\"true\">\n          <span class=\"op-stop__dot\"><\/span>\n        <\/div>\n      <\/article>\n\n    <\/div>\n\n    <p class=\"op-empty\" hidden=\"\">\n      No projects are currently listed under this category.\n      Please explore another category.\n    <\/p>\n  <\/section>\n\n  <!-- CALL TO ACTION -->\n  <section class=\"op-cta\">\n    <div class=\"op-cta__inner op-reveal\">\n      <span class=\"op-eyebrow\">Be part of the journey<\/span>\n      <h2>Help make the next project possible.<\/h2>\n      <p>\n        Your support can help communities access essential services,\n        strengthen livelihoods, and build a more resilient future.\n      <\/p>\n      <a class=\"op-btn op-btn--primary\" href=\"\/donate\/\">\n        Support One Life Cameroon <span aria-hidden=\"true\">\u2192<\/span>\n      <\/a>\n    <\/div>\n  <\/section>\n\n<\/div>\n\n<script>\n(function () {\n  \"use strict\";\n\n  function initOneLifeProjects() {\n    document.querySelectorAll(\".olc-projects\").forEach(function (root) {\n      if (root.dataset.opInitialized === \"true\") return;\n      root.dataset.opInitialized = \"true\";\n\n      var buttons = root.querySelectorAll(\".op-filter\");\n      var stops = Array.from(root.querySelectorAll(\".op-stop\"));\n      var emptyMessage = root.querySelector(\".op-empty\");\n\n      \/* REAL CATEGORY FILTERING *\/\n      function filterProjects(filter) {\n        var visibleCount = 0;\n\n        stops.forEach(function (stop) {\n          var matches =\n            filter === \"all\" ||\n            stop.getAttribute(\"data-cause\") === filter;\n\n          stop.hidden = !matches;\n          if (matches) visibleCount++;\n        });\n\n        buttons.forEach(function (button) {\n          var active = button.getAttribute(\"data-filter\") === filter;\n          button.setAttribute(\"aria-pressed\", String(active));\n        });\n\n        if (emptyMessage) {\n          emptyMessage.hidden = visibleCount !== 0;\n        }\n      }\n\n      buttons.forEach(function (button) {\n        button.addEventListener(\"click\", function () {\n          filterProjects(button.getAttribute(\"data-filter\"));\n        });\n      });\n\n      \/* ACCESSIBLE SCROLL REVEAL *\/\n      var revealItems = root.querySelectorAll(\".op-reveal\");\n      var reducedMotion = window.matchMedia &&\n        window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n      if (\"IntersectionObserver\" in window && !reducedMotion) {\n        var observer = new IntersectionObserver(function (entries) {\n          entries.forEach(function (entry) {\n            if (entry.isIntersecting) {\n              entry.target.classList.add(\"is-visible\");\n              observer.unobserve(entry.target);\n            }\n          });\n        }, { threshold: 0.08 });\n\n        revealItems.forEach(function (item) {\n          observer.observe(item);\n        });\n      } else {\n        revealItems.forEach(function (item) {\n          item.classList.add(\"is-visible\");\n        });\n      }\n    });\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", initOneLifeProjects);\n  } else {\n    initOneLifeProjects();\n  }\n})();\n<\/script>\n\n\n\n<section class=\"wp-block-atomic-wind-box bg-[var(--nv-primary-accent)] text-[var(--nv-text-dark-bg)] py-16 lg:py-20\">\n<div class=\"wp-block-atomic-wind-box max-w-[1280px] mx-auto px-6 lg:px-12\">\n<div class=\"wp-block-atomic-wind-box flex flex-col lg:flex-row items-start lg:items-center justify-between gap-8\">\n<div class=\"wp-block-atomic-wind-box\">\n<h2 class=\"wp-block-atomic-wind-text text-[28px] lg:text-[40px] leading-[1.1] tracking-[-0.01em] font-medium mb-4 text-yellow-200\" data-rich-text=\"\">Together we can make a difference<\/h2>\n\n\n\n<p class=\"wp-block-atomic-wind-text mt-3 text-[16px] lg:text-[18px] opacity-90\" data-rich-text=\"\">Whether you give, volunteer, or simply spread the word, every contribution moves a family closer to independence.<\/p>\n<\/div>\n\n\n\n<a class=\"wp-block-atomic-wind-link inline-flex items-center gap-2 px-7 py-4 bg-[var(--nv-c-1)] text-[var(--nv-dark-bg)] font-bold tracking-wide hover:bg-[var(--nv-text-dark-bg)] transition-colors flex-shrink-0\" href=\"https:\/\/onelifecmr.com\/contact\/\">Donate Now \u2192<\/a>\n\n\n\n<a class=\"wp-block-atomic-wind-link inline-flex items-center gap-2 px-7 py-4 bg-[var(--nv-c-1)] text-[var(--nv-dark-bg)] font-bold tracking-wide hover:bg-[var(--nv-text-dark-bg)] transition-colors flex-shrink-0\" href=\"https:\/\/onelifecmr.com\/contact\/\">Get Involved \u2192<\/a>\n<\/div>\n<\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Our Methodology Project Approach &amp; Implementation Strategy At One Life Cameroon, we follow a comprehensive and sustainable approach to project implementation that ensures maximum impact and long-term benefits for the communities we serve. 1. Community Assessment We begin by conducting thorough needs assessments in target communities to identify the most pressing issues and understand local&hellip;&nbsp;<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/template-pagebuilder-full-width.php","meta":{"give_campaign_id":0,"neve_meta_sidebar":"full-width","neve_meta_container":"full-width","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"class_list":["post-193","page","type-page","status-publish","hentry"],"campaignId":"","_links":{"self":[{"href":"https:\/\/onelifecmr.com\/fr\/wp-json\/wp\/v2\/pages\/193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/onelifecmr.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/onelifecmr.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/onelifecmr.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/onelifecmr.com\/fr\/wp-json\/wp\/v2\/comments?post=193"}],"version-history":[{"count":42,"href":"https:\/\/onelifecmr.com\/fr\/wp-json\/wp\/v2\/pages\/193\/revisions"}],"predecessor-version":[{"id":625,"href":"https:\/\/onelifecmr.com\/fr\/wp-json\/wp\/v2\/pages\/193\/revisions\/625"}],"wp:attachment":[{"href":"https:\/\/onelifecmr.com\/fr\/wp-json\/wp\/v2\/media?parent=193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}