{"id":34391,"date":"2026-03-18T00:41:56","date_gmt":"2026-03-18T00:41:56","guid":{"rendered":"https:\/\/prowibo.org\/?page_id=34391"},"modified":"2026-09-23T21:54:51","modified_gmt":"2026-09-23T21:54:51","slug":"home","status":"publish","type":"page","link":"https:\/\/prowibo.org\/fr\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"34391\" class=\"elementor elementor-34391\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f346b2a e-con-full e-flex e-con e-parent\" data-id=\"f346b2a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ada0ab3 elementor-widget elementor-widget-html\" data-id=\"ada0ab3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@400;600;700;800&family=Inter:wght@300;400;500;600&display=swap\">\n\n<style>\n.pwb-home {\n  overflow-x: clip; \/* contains the full-bleed overhang; clip, not hidden, so fixed-position children still escape *\/\n  --pwb-ink: #1C1C28;\n  --pwb-ink-soft: #5B5B6B;\n  --pwb-grey: #9AA4B2;\n  --pwb-magenta: #E6007E;\n  --pwb-magenta-80: #B00061;\n  --pwb-pink: #FF3EA5;\n  --pwb-purple: #7B2D8E;\n  --pwb-purple-deep: #54205F;\n  --pwb-navy: #0A2540;\n  --pwb-teal-dark: #0B7364;\n  --pwb-gold: #FFC400;\n  --pwb-paper: #FFFCFE;\n  --pwb-blush: #F6EEF3;\n  --pwb-lightpink: #FDE1EF;\n  --pwb-border: rgba(28, 28, 40, .12);\n  --pwb-grad-02: linear-gradient(150deg, #E6007E 0%, #7B2D8E 100%);\n  --pwb-grad-03: linear-gradient(120deg, #FF3EA5 0%, #E6007E 50%, #7B2D8E 100%);\n\n  --pwb-display: \"Montserrat\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif;\n  --pwb-body: \"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif;\n\n  --pwb-max: 1120px;\n  --pwb-ease: cubic-bezier(.22, .61, .36, 1);\n\n  font-family: var(--pwb-body);\n  color: var(--pwb-ink);\n  background: var(--pwb-paper);\n  line-height: 1.6;\n  -webkit-font-smoothing: antialiased;\n  text-rendering: optimizeLegibility;\n}\n\n.pwb-home,\n.pwb-home *,\n.pwb-home *::before,\n.pwb-home *::after { box-sizing: border-box; }\n\n\/* :where() keeps the reset at zero specificity so class rules still win. *\/\n.pwb-home.pwb-home :where(h1, h2, h3, h4, p, ul, ol, li, figure, figcaption) { margin: 0; padding: 0; }\n.pwb-home.pwb-home :where(li) { list-style: none; }\n.pwb-home :where(img) { display: block; max-width: 100%; height: auto; }\n\n.pwb-home :where(button) {\n  font: inherit;\n  color: inherit;\n  background: none;\n  border: 0;\n  -webkit-appearance: none;\n  appearance: none;\n}\n\n\/* Zero-specificity so button classes on <a> still win, and so a link added\n   later is never browser-default blue. *\/\n.pwb-home :where(a) { color: var(--pwb-magenta-80); text-underline-offset: 3px; }\n.pwb-home :where(a:hover) { color: var(--pwb-purple); }\n\n.pwb-home :focus-visible {\n  outline: 2px solid var(--pwb-purple);\n  outline-offset: 3px;\n  border-radius: 4px;\n}\n\n.pwb-home__wrap {\n  width: 100%;\n  max-width: var(--pwb-max);\n  margin-left: auto;\n  margin-right: auto;\n  padding-left: clamp(20px, 4vw, 32px);\n  padding-right: clamp(20px, 4vw, 32px);\n}\n\n.pwb-home__bleed {\n  \/* The section keeps the container's box, so its inner wrap centres exactly\n     like every other wrap; only the painted band breaks out. Moving the\n     section itself with negative margins makes its box viewport-wide, which\n     centres its wrap on the viewport instead of the container \u2014 the two left\n     edges then diverge by half the difference. *\/\n  position: relative;\n  isolation: isolate;\n}\n\n\/* Hero only: its own image (-2) and scrim (-1) layers sit above the base\n   band, so the band drops below both. *\/\n.pwb-home__hero::before { z-index: -3; }\n\n.pwb-home__bleed::before {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  z-index: -1;\n  margin-left: calc(50% - 50vw);\n  margin-right: calc(50% - 50vw);\n  background: var(--band, transparent);\n}\n\n.pwb-home__eyebrow.pwb-home__eyebrow {\n  display: flex;\n  align-items: center;\n  gap: 12px;\n  font-family: var(--pwb-display);\n  font-weight: 700;\n  font-size: .6875rem;\n  line-height: 1.3;\n  letter-spacing: .16em;\n  text-transform: uppercase;\n  color: var(--pwb-purple);\n}\n\n.pwb-home__eyebrow::before {\n  content: \"\";\n  flex: 0 0 auto;\n  width: 28px;\n  height: 2px;\n  border-radius: 2px;\n  background: linear-gradient(90deg, #FF3EA5 0%, #E6007E 100%);\n}\n\n.pwb-home__h2.pwb-home__h2 {\n  font-family: var(--pwb-display);\n  font-weight: 700;\n  font-size: clamp(1.5rem, 1.1rem + 1.5vw, 2.125rem);\n  line-height: 1.15;\n  letter-spacing: -.02em;\n  text-wrap: balance;\n}\n\n\/* ---------------------------------------------------------------- Hero -- *\/\n\n\/* Carousel hero. The photographs are the background, so every text layer on\n   top is full-opacity white over a scrim \u2014 never alpha-muted type on a\n   photo, which is where contrast collapses. *\/\n.pwb-home__hero {\n  position: relative;\n  isolation: isolate;\n  display: flex;\n  align-items: center;\n  min-height: clamp(460px, 62vh, 660px);\n  padding: clamp(44px, 6vw, 88px) 0;\n  overflow: hidden;\n}\n\n.pwb-home__slides {\n  position: absolute;\n  inset: 0;\n  \/* Breaks out with the band, since the section no longer does. *\/\n  margin-left: calc(50% - 50vw);\n  margin-right: calc(50% - 50vw);\n  \/* This layer IS the band. The bleed ::before paints at z-index -1, which is\n     above these slides at -2, so a --band colour on the hero covered the\n     photographs entirely. Painting the fallback here keeps the full-bleed\n     navy for the moment before the first image decodes, without a layer on\n     top of the carousel. *\/\n  background: var(--pwb-navy);\n  z-index: -2;\n}\n\n.pwb-home__slide {\n  position: absolute;\n  inset: 0;\n  opacity: 0;\n  transition: opacity 1.6s var(--pwb-ease);\n}\n\n.pwb-home__slide.is-active { opacity: 1; }\n\n.pwb-home__slide img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  object-position: center 42%;\n  transform: scale(1.04);\n}\n\n\/* The slow zoom runs only on the slide in view, and restarts each time that\n   slide comes back round \u2014 18s so it reads as drift, not motion. *\/\n.pwb-home__slide.is-active img { animation: pwbHomeZoom 18s ease-out both; }\n.pwb-home__slide:nth-child(even).is-active img { animation-name: pwbHomeZoomAlt; }\n\n@keyframes pwbHomeZoom {\n  from { transform: scale(1.04) translate3d(0, 0, 0); }\n  to { transform: scale(1.16) translate3d(-1.2%, -1%, 0); }\n}\n\n@keyframes pwbHomeZoomAlt {\n  from { transform: scale(1.16) translate3d(1.2%, 1%, 0); }\n  to { transform: scale(1.04) translate3d(0, 0, 0); }\n}\n\n\/* Scrim: darkest at the left where the copy sits, so the photograph still\n   reads on the right. *\/\n.pwb-home__scrim {\n  position: absolute;\n  inset: 0;\n  \/* Breaks out with the band, since the section no longer does. *\/\n  margin-left: calc(50% - 50vw);\n  margin-right: calc(50% - 50vw);\n  z-index: -1;\n  background:\n    linear-gradient(to right, rgba(10, 37, 64, .92) 0%, rgba(10, 37, 64, .72) 46%, rgba(10, 37, 64, .42) 100%),\n    linear-gradient(to top, rgba(10, 37, 64, .5) 0%, rgba(10, 37, 64, 0) 60%);\n}\n\n.pwb-home__hero .pwb-home__title.pwb-home__title,\n.pwb-home__hero .pwb-home__standfirst.pwb-home__standfirst { color: #fff; }\n\n\/* Same banner treatment as Programmes and Vision and Values. *\/\n.pwb-home__hero .pwb-home__eyebrow{color:#fff;position:relative;padding-top:18px}\n.pwb-home__hero .pwb-home__eyebrow::before{content:\"\";position:absolute;top:0;left:0;width:64px;height:4px;border-radius:2px;background:linear-gradient(90deg,#FF3EA5 0%,#E6007E 100%)}\n\n.pwb-home__hero .pwb-home__standfirst.pwb-home__standfirst {\n  font-weight: 400;\n  max-width: none;\n  \/* One line while there is room; released below so it can never overflow\n     the hero. Same pattern as the wide headings on Finances and Vision. *\/\n  text-wrap: nowrap;\n}\n\n@media (max-width: 760px) {\n  .pwb-home__hero .pwb-home__standfirst.pwb-home__standfirst { text-wrap: pretty; }\n}\n\n\/* The gradient-clipped anniversary mark is invisible over a photo, so on the\n   hero the emphasis is Gold instead. *\/\n.pwb-home__hero .pwb-home__title em {\n  color: var(--pwb-gold);\n  background: none;\n  -webkit-text-fill-color: currentColor;\n}\n\n\/* On the photo ground, Gold is primary and the outline is white \u2014 the\n   light-ground variants would fail contrast here. *\/\n.pwb-home__hero .pwb-home__btn--primary {\n  background: var(--pwb-magenta);\n  color: #fff;\n  box-shadow: 0 6px 18px rgba(10, 37, 64, .35);\n}\n\n.pwb-home__hero .pwb-home__btn--primary:hover,\n.pwb-home__hero .pwb-home__btn--primary:focus-visible {\n  filter: brightness(1.08);\n  color: #fff;\n}\n\n.pwb-home__hero .pwb-home__btn--ghost {\n  color: #fff;\n  box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .75);\n}\n\n.pwb-home__hero .pwb-home__btn--ghost:hover,\n.pwb-home__hero .pwb-home__btn--ghost:focus-visible { background: rgba(255, 255, 255, .16); color: #fff; }\n\n\n.pwb-home__hero-grid {\n  \/* Single column since the anniversary mark came out; the measure is held by\n     the title and standfirst rather than a grid track. *\/\n  max-width: 44rem;\n}\n\n.pwb-home__title.pwb-home__title {\n  font-family: var(--pwb-display);\n  font-weight: 800;\n  font-size: clamp(2.125rem, 1.3rem + 3.6vw, 3.75rem);\n  line-height: 1.02;\n  letter-spacing: -.03em;\n  margin-top: 10px;\n  text-wrap: balance;\n}\n\n.pwb-home__standfirst.pwb-home__standfirst {\n  margin-top: clamp(16px, 2vw, 24px);\n  max-width: 46ch;\n  font-weight: 300;\n  font-size: clamp(1.0625rem, .95rem + .7vw, 1.4375rem);\n  line-height: 1.48;\n  color: var(--pwb-ink-soft);\n  text-wrap: pretty;\n}\n\n.pwb-home__actions {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 14px;\n  margin-top: clamp(26px, 3.2vw, 36px);\n}\n\n\/* --------------------------------------------------------------- Stats -- *\/\n\n.pwb-home__stats { --band: var(--pwb-blush); padding: clamp(36px, 4.5vw, 60px) 0; }\n\n.pwb-home__stat-grid {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  gap: clamp(20px, 3vw, 44px);\n}\n\n\/* The Elementor theme's paragraph typography wins over any selector we can\n   write from inside an HTML widget (it carries !important on some kits), so\n   these declarations are marked !important rather than escalated further.\n   Specificity games are unwinnable here; this is the permanent fix. *\/\n.pwb-home .pwb-home__stat-k {\n  font-family: var(--pwb-display) !important;\n  font-weight: 800 !important;\n  font-size: clamp(2rem, 1.4rem + 2.6vw, 3.5rem) !important;\n  line-height: 1 !important;\n  letter-spacing: -.035em !important;\n  color: var(--pwb-purple) !important;\n  font-variant-numeric: tabular-nums;\n  margin: 0 !important;\n}\n\n.pwb-home .pwb-home__stat-l {\n  margin: 10px 0 0 !important;\n  font-family: var(--pwb-body) !important;\n  font-weight: 400 !important;\n  font-size: .875rem !important;\n  line-height: 1.45 !important;\n  color: var(--pwb-ink-soft) !important;\n  text-wrap: pretty;\n}\n\n\/* ------------------------------------------------------------- Journey -- *\/\n\n.pwb-home__journey { padding: clamp(38px, 4.6vw, 60px) 0; }\n\n.pwb-home__journey-head { margin-bottom: clamp(22px, 2.8vw, 32px); }\n.pwb-home__journey-head .pwb-home__h2 { margin-bottom: 12px; }\n\n.pwb-home__journey-lede.pwb-home__journey-lede {\n  font-size: clamp(1rem, .96rem + .2vw, 1.0625rem);\n  line-height: 1.7;\n  color: var(--pwb-ink-soft);\n  text-wrap: pretty;\n}\n\n.pwb-home__journey-link.pwb-home__journey-link {\n  display: inline-flex;\n  align-items: center;\n  gap: 9px;\n  margin-top: clamp(16px, 2vw, 22px);\n  font-family: var(--pwb-display);\n  font-weight: 700;\n  font-size: .8125rem;\n  letter-spacing: .08em;\n  text-transform: uppercase;\n  text-decoration: none;\n  color: var(--pwb-magenta-80);\n  transition: color .2s var(--pwb-ease), gap .2s var(--pwb-ease);\n}\n\n.pwb-home__journey-link:hover { color: var(--pwb-purple); gap: 13px; }\n.pwb-home__journey-link svg { width: 14px; height: 14px; flex: none; }\n\n.pwb-home__strip {\n  border: 1px solid var(--pwb-border);\n  border-radius: 12px;\n  background: #fff;\n  padding: clamp(14px, 2vw, 22px);\n  overflow: hidden;\n}\n\n\/* The partner strip is a 2080\u00d7720 animated GIF (the filename says 3000\u00d7400;\n   the file does not \u2014 the attributes must match the file or the reserved\n   aspect-ratio reflows on load). Shown whole rather than cropped: a logo\n   band loses its meaning the moment it is cut. *\/\n.pwb-home__strip img { width: 100%; height: auto; }\n\n\/* ------------------------------------------------------------- Mission -- *\/\n\n.pwb-home__mission { padding: clamp(40px, 5vw, 68px) 0; }\n\n.pwb-home__mission-head { max-width: 50rem; margin-bottom: clamp(30px, 3.8vw, 48px); }\n\n.pwb-home__pillar {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n  gap: clamp(26px, 3.6vw, 56px);\n  align-items: center;\n}\n\n.pwb-home__pillar + .pwb-home__pillar {\n  margin-top: clamp(36px, 4.4vw, 64px);\n  padding-top: clamp(34px, 4.2vw, 56px);\n  border-top: 1px solid var(--pwb-border);\n}\n\n\/* Alternate the side the video sits on, so the page has a rhythm. *\/\n.pwb-home__pillar:nth-child(even) .pwb-home__media { order: -1; }\n\n.pwb-home__mission-title.pwb-home__mission-title {\n  margin-top: 12px;\n  margin-bottom: clamp(14px, 1.8vw, 20px);\n  font-family: var(--pwb-display);\n  font-weight: 800;\n  font-size: clamp(2rem, 1.35rem + 2.6vw, 3.25rem);\n  line-height: 1.04;\n  letter-spacing: -.03em;\n  text-wrap: balance;\n}\n\n.pwb-home__pillar-num.pwb-home__pillar-num {\n  font-family: var(--pwb-display);\n  font-weight: 800;\n  font-size: .75rem;\n  letter-spacing: .16em;\n  color: var(--pwb-purple);\n}\n\n.pwb-home__pillar-title.pwb-home__pillar-title {\n  font-family: var(--pwb-display);\n  font-weight: 700;\n  font-size: clamp(1.375rem, 1.1rem + 1.1vw, 1.875rem);\n  line-height: 1.2;\n  letter-spacing: -.02em;\n  margin: 10px 0 clamp(12px, 1.6vw, 18px);\n}\n\n.pwb-home__pillar.pwb-home__pillar :where(p) {\n  font-size: clamp(1rem, .96rem + .2vw, 1.0625rem);\n  line-height: 1.72;\n  color: var(--pwb-ink-soft);\n  text-wrap: pretty;\n}\n\n.pwb-home__pillar :where(p + p) { margin-top: 1.05em; }\n\n.pwb-home__pillar-link.pwb-home__pillar-link {\n  display: inline-flex;\n  align-items: center;\n  gap: 9px;\n  margin-top: clamp(20px, 2.4vw, 26px);\n  font-family: var(--pwb-display);\n  font-weight: 700;\n  font-size: .8125rem;\n  letter-spacing: .08em;\n  text-transform: uppercase;\n  text-decoration: none;\n  color: var(--pwb-magenta-80);\n  transition: color .2s var(--pwb-ease), gap .2s var(--pwb-ease);\n}\n\n.pwb-home__pillar-link:hover { color: var(--pwb-purple); gap: 13px; }\n.pwb-home__pillar-link svg { width: 14px; height: 14px; flex: none; }\n\n\/* Video: click to play, so nothing downloads until asked. *\/\n.pwb-home__media {\n  display: block;\n  text-decoration: none;\n  color: #fff;\n  position: relative;\n  border-radius: 12px;\n  overflow: hidden;\n  background: var(--pwb-navy);\n  aspect-ratio: 16 \/ 9;\n}\n\n.pwb-home__media video {\n  display: block;\n  width: 100%;\n  height: 100%;\n  \/* Applies to the poster as well as the frames, so the still is not\n     letterboxed inside the 16:9 box. *\/\n  object-fit: cover;\n  object-position: center 45%;\n}\n\n.pwb-home__play {\n  position: absolute;\n  inset: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  gap: 14px;\n  \/* Clicks belong to the surrounding link, not this layer. *\/\n  pointer-events: none;\n  \/* Scrim, not a solid panel: the thumbnail still shows through, and the dark\n     top-weighting keeps the white play control above 4.5:1 whatever the\n     photo underneath is doing. *\/\n  background: linear-gradient(to top, rgba(10, 37, 64, .78) 0%, rgba(10, 37, 64, .34) 55%, rgba(10, 37, 64, .5) 100%);\n  color: #fff;\n  transition: opacity .3s var(--pwb-ease);\n}\n\n.pwb-home__play::after {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  background: rgba(230, 0, 126, 0);\n  transition: background-color .25s var(--pwb-ease);\n}\n\n.pwb-home__media:hover .pwb-home__play::after { background: rgba(230, 0, 126, .18); }\n\n.pwb-home__play-icon,\n.pwb-home__play-label { position: relative; z-index: 1; }\n\/* While the 6-second preview runs the scrim lifts most of the way, so the\n   footage reads but the \"Watch on YouTube\" cue is still there. *\/\n.pwb-home__media[data-playing=\"true\"] .pwb-home__play { opacity: .22; }\n\n.pwb-home__play-icon {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 62px;\n  height: 62px;\n  border-radius: 50%;\n  background: #fff;\n  color: var(--pwb-magenta);\n  transition: transform .25s var(--pwb-ease);\n}\n\n.pwb-home__media:hover .pwb-home__play-icon { transform: scale(1.08); }\n.pwb-home__play-icon svg { width: 22px; height: 22px; margin-left: 3px; }\n\n.pwb-home__play-label.pwb-home__play-label {\n  font-family: var(--pwb-display);\n  font-weight: 700;\n  font-size: .75rem;\n  letter-spacing: .14em;\n  text-transform: uppercase;\n}\n\n\/* ---------------------------------------------------------------- CTA -- *\/\n\n.pwb-home__cta {\n  --band: var(--pwb-navy);\n  padding: clamp(44px, 5.5vw, 76px) 0;\n  text-align: center;\n  color: #fff;\n}\n\n.pwb-home__cta .pwb-home__h2 { color: #fff; margin-bottom: 16px; }\n\n.pwb-home__cta-text.pwb-home__cta-text {\n  max-width: 56ch;\n  margin: 0 auto clamp(26px, 3.2vw, 36px);\n  font-weight: 300;\n  font-size: clamp(1rem, .96rem + .3vw, 1.125rem);\n  line-height: 1.7;\n  color: rgba(255, 255, 255, .88);\n  text-wrap: pretty;\n}\n\n.pwb-home__cta .pwb-home__actions { justify-content: center; }\n\n\/* ----------------------------------------------------------- Lightbox -- *\/\n\n.pwb-home__lb {\n  position: fixed;\n  inset: 0;\n  \/* Above the theme header, which sits at 9999. *\/\n  z-index: 100000;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  padding: clamp(16px, 4vw, 48px);\n}\n\n.pwb-home__lb[hidden] { display: none; }\n\n.pwb-home__lb-backdrop {\n  position: absolute;\n  inset: 0;\n  background: rgba(10, 37, 64, .82);\n  animation: pwbHomeFade .25s var(--pwb-ease) both;\n}\n\n@keyframes pwbHomeFade { from { opacity: 0; } to { opacity: 1; } }\n\n.pwb-home__lb-inner {\n  position: relative;\n  width: 100%;\n  max-width: 1000px;\n  animation: pwbHomeRise .3s var(--pwb-ease) both;\n}\n\n@keyframes pwbHomeRise {\n  from { opacity: 0; transform: translateY(12px) scale(.99); }\n  to { opacity: 1; transform: none; }\n}\n\n.pwb-home__lb-frame {\n  position: relative;\n  aspect-ratio: 16 \/ 9;\n  border-radius: 12px;\n  overflow: hidden;\n  background: #000;\n  box-shadow: 0 24px 60px rgba(0, 0, 0, .45);\n}\n\n.pwb-home__lb-frame iframe {\n  position: absolute;\n  inset: 0;\n  width: 100%;\n  height: 100%;\n  border: 0;\n}\n\n.pwb-home__lb-out.pwb-home__lb-out {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  margin-top: 14px;\n  font-family: var(--pwb-display);\n  font-weight: 600;\n  font-size: .8125rem;\n  text-decoration: none;\n  color: #fff;\n  border-bottom: 1px solid rgba(255, 255, 255, .5);\n  padding-bottom: 2px;\n  transition: border-color .2s var(--pwb-ease);\n}\n\n.pwb-home__lb-out:hover { color: #fff; border-bottom-color: #fff; }\n.pwb-home__lb-out svg { width: 13px; height: 13px; flex: none; }\n\n.pwb-home__lb-close {\n  position: absolute;\n  top: -14px;\n  right: -14px;\n  z-index: 1;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 44px;\n  height: 44px;\n  border-radius: 50%;\n  cursor: pointer;\n  background: #fff;\n  color: var(--pwb-ink);\n  box-shadow: 0 6px 18px rgba(0, 0, 0, .3);\n  transition: background-color .2s var(--pwb-ease), color .2s var(--pwb-ease);\n}\n\n.pwb-home__lb-close:hover { background: var(--pwb-magenta); color: #fff; }\n.pwb-home__lb-close svg { width: 20px; height: 20px; }\n\n\/* The theme paints bare <button> backgrounds; restate ours. *\/\n.pwb-home button.pwb-home__lb-close { background-image: none; background-color: #fff; }\n.pwb-home button.pwb-home__lb-close:hover { background-color: var(--pwb-magenta); color: #fff; }\n\n@media (max-width: 560px) {\n  .pwb-home__lb-close { top: -50px; right: 0; }\n}\n\n\/* ------------------------------------------------------------ Buttons -- *\/\n\n.pwb-home__btn.pwb-home__btn {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 10px;\n  min-height: 48px;\n  padding: 12px 28px;\n  border-radius: 8px;\n  font-family: var(--pwb-display);\n  font-weight: 600;\n  font-size: .9375rem;\n  line-height: 1.2;\n  letter-spacing: .01em;\n  text-decoration: none;\n  transition: filter .2s var(--pwb-ease), background-color .2s var(--pwb-ease),\n              color .2s var(--pwb-ease), box-shadow .2s var(--pwb-ease),\n              transform .1s var(--pwb-ease);\n}\n\n.pwb-home__btn--primary {\n  background: var(--pwb-magenta);\n  color: #fff;\n}\n\n.pwb-home__btn--primary:hover,\n.pwb-home__btn--primary:focus-visible {\n  filter: brightness(1.08);\n  color: #fff;\n  box-shadow: 0 10px 26px rgba(230, 0, 126, .28);\n}\n\n.pwb-home__btn--ghost { color: var(--pwb-navy); box-shadow: inset 0 0 0 1.5px var(--pwb-navy); }\n\n.pwb-home__btn--ghost:hover,\n.pwb-home__btn--ghost:focus-visible { background: var(--pwb-navy); color: #fff; }\n\n\/* On the Navy CTA, Gold is the design system's primary and the outline is\n   white \u2014 the light-ground variants would fail contrast there. *\/\n.pwb-home__cta .pwb-home__btn--primary {\n  background: var(--pwb-gold);\n  color: var(--pwb-ink);\n}\n\n.pwb-home__cta .pwb-home__btn--primary:hover,\n.pwb-home__cta .pwb-home__btn--primary:focus-visible {\n  filter: brightness(1.06);\n  color: var(--pwb-ink);\n}\n\n.pwb-home__cta .pwb-home__btn--ghost { color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .6); }\n\n.pwb-home__cta .pwb-home__btn--ghost:hover,\n.pwb-home__cta .pwb-home__btn--ghost:focus-visible { background: rgba(255, 255, 255, .14); color: #fff; }\n\n.pwb-home__btn:active { transform: scale(.97); }\n\n\/* The theme styles bare <button> elements; restate ours so a theme hover\n   rule cannot repaint them. *\/\n.pwb-home button.pwb-home__play,\n.pwb-home button.pwb-home__play:hover,\n.pwb-home button.pwb-home__play:focus {\n  background-color: transparent;\n  background-image: linear-gradient(to top, rgba(10, 37, 64, .78) 0%, rgba(10, 37, 64, .34) 55%, rgba(10, 37, 64, .5) 100%);\n}\n\n\/* ------------------------------------------------------------- Motion -- *\/\n\n.pwb-home--js [data-reveal] {\n  opacity: 0;\n  transform: translateY(16px);\n  transition: opacity .7s var(--pwb-ease), transform .7s var(--pwb-ease);\n  transition-delay: var(--pwb-d, 0ms);\n}\n\n.pwb-home--js [data-reveal].is-in { opacity: 1; transform: none; }\n\n\/* -------------------------------------------------------- Breakpoints -- *\/\n\n@media (max-width: 900px) {\n  .pwb-home__pillar { grid-template-columns: minmax(0, 1fr); }\n  \/* Stacked, the video always leads its pillar. *\/\n  .pwb-home__pillar .pwb-home__media,\n  .pwb-home__pillar:nth-child(even) .pwb-home__media { order: -1; }\n}\n\n@media (max-width: 640px) {\n  .pwb-home__stat-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }\n\n  .pwb-home__stat {\n    display: flex;\n    align-items: baseline;\n    gap: 16px;\n  }\n\n  .pwb-home .pwb-home__stat-k { flex: none; min-width: 4.5ch; font-size: 2.125rem !important; }\n  .pwb-home .pwb-home__stat-l { margin-top: 0 !important; }\n}\n\n@media (max-width: 560px) {\n  .pwb-home__standfirst { max-width: none; }\n  .pwb-home__actions { flex-direction: column; }\n  .pwb-home__btn.pwb-home__btn { width: 100%; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .pwb-home *,\n  .pwb-home *::before,\n  .pwb-home *::after {\n    animation-duration: .01ms !important;\n    animation-iteration-count: 1 !important;\n    transition-duration: .01ms !important;\n  }\n\n  .pwb-home--js [data-reveal] { opacity: 1 !important; transform: none !important; }\n\n  \/* No zoom and no auto-advance; the dots still change slide. *\/\n  .pwb-home__slide.is-active img,\n  .pwb-home__slide:nth-child(even).is-active img { animation: none !important; transform: scale(1.04) !important; }\n}\n\n\/* Buttons are anchors, so they inherit the link underline from the theme's\n   own a rule; the design system reserves the underline for real links. The\n   class is repeated to clear a theme rule at (0,1,1). *\/\n.pwb-home__btn--primary.pwb-home__btn--primary,\n.pwb-home__btn--ghost.pwb-home__btn--ghost { text-decoration: none; }\n<\/style>\n\n<div class=\"pwb-home\">\n\n  <!-- Hero -->\n  <header class=\"pwb-home__hero pwb-home__bleed\" aria-roledescription=\"carousel\" data-i18n-attr=\"aria-label:hero-carousel\" aria-label=\"Professors Without Borders programmes\">\n\n    <div class=\"pwb-home__slides\">\n      <div class=\"pwb-home__slide is-active\">\n        <img src=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/PROWIBO-82-scaled.jpg\" alt=\"\" loading=\"eager\" decoding=\"async\">\n      <\/div>\n      <div class=\"pwb-home__slide\">\n        <img src=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/Malaysia_2022.jpeg\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n      <\/div>\n      <div class=\"pwb-home__slide\">\n        <img src=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/pro-0026-scaled.jpg\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n      <\/div>\n      <div class=\"pwb-home__slide\">\n        <img src=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/Thailand_2018.jpeg\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n      <\/div>\n      <div class=\"pwb-home__slide\">\n        <img src=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/054A6746-scaled.jpg\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n      <\/div>\n      <div class=\"pwb-home__slide\">\n        <img src=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/IMG_9248-scaled.jpeg\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n      <\/div>\n      <div class=\"pwb-home__slide\">\n        <img src=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/IMG_8698-scaled.jpg\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n      <\/div>\n      <div class=\"pwb-home__slide\">\n        <img src=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/Kenya_Cover.png\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n      <\/div>\n      <div class=\"pwb-home__slide\">\n        <img src=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/IMG_8644-2-scaled.jpg\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n      <\/div>\n      <div class=\"pwb-home__slide\">\n        <img src=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/WhatsApp-Image-2025-03-21-at-09.35.44_a5ec49f6_Zimbabwe_AHF_2025.jpg\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n      <\/div>\n    <\/div>\n    <div class=\"pwb-home__scrim\" aria-hidden=\"true\"><\/div>\n\n    <div class=\"pwb-home__wrap\">\n      <div class=\"pwb-home__hero-grid\">\n        <div data-reveal>\n          <h2 class=\"pwb-home__title\" data-i18n-html=\"hero-title\">Ten years of sending professors<br>to the students who need them<\/h2>\n          <p class=\"pwb-home__standfirst\" data-i18n=\"hero-lede\">A decade on, reaching students across three continents.<\/p>\n          <div class=\"pwb-home__actions\">\n            <a class=\"pwb-home__btn pwb-home__btn--primary\" href=\"https:\/\/prowibo.org\/our-impact\/\" data-href-fr=\"https:\/\/prowibo.org\/fr\/our-impact\/\" data-i18n=\"hero-cta-1\">See our impact<\/a>\n            <a class=\"pwb-home__btn pwb-home__btn--ghost\" href=\"https:\/\/prowibo.org\/programmes\/\" data-href-fr=\"https:\/\/prowibo.org\/fr\/programmes\/\" data-i18n=\"hero-cta-2\">Our programmes<\/a>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/div>\n\n  <\/header>\n\n  <!-- Stats -->\n  <section class=\"pwb-home__stats pwb-home__bleed\">\n    <div class=\"pwb-home__wrap\">\n      <ul class=\"pwb-home__stat-grid\">\n        <li class=\"pwb-home__stat\" data-reveal>\n          <p class=\"pwb-home__stat-k\" data-count=\"4700\" data-suffix=\"+\">0<\/p>\n          <p class=\"pwb-home__stat-l\" data-i18n=\"stat-students\">Students taught since 2016<\/p>\n        <\/li>\n        <li class=\"pwb-home__stat\" data-reveal>\n          <p class=\"pwb-home__stat-k\" data-count=\"1000\" data-suffix=\"+\">0<\/p>\n          <p class=\"pwb-home__stat-l\" data-i18n=\"stat-educators\">Educators in our global network<\/p>\n        <\/li>\n        <li class=\"pwb-home__stat\" data-reveal>\n          <p class=\"pwb-home__stat-k\" data-count=\"16\">0<\/p>\n          <p class=\"pwb-home__stat-l\" data-i18n=\"stat-countries\">Countries where programmes have run<\/p>\n        <\/li>\n      <\/ul>\n    <\/div>\n  <\/section>\n\n  <!-- Journey \/ partner strip -->\n  <section class=\"pwb-home__journey\">\n    <div class=\"pwb-home__wrap\">\n      <div class=\"pwb-home__journey-head\" data-reveal>\n        <h2 class=\"pwb-home__h2\" data-i18n=\"journey-title\">Our journey so far<\/h2>\n        <p class=\"pwb-home__journey-lede\" data-i18n=\"journey-lede\">Ten years of quality learning, built with our local partners. We are grateful to all of the universities, schools and organisations who hosted us and opened their classrooms to our professors.<\/p>\n        <a class=\"pwb-home__journey-link\" href=\"https:\/\/prowibo.org\/partners\/\" data-href-fr=\"https:\/\/prowibo.org\/fr\/partners\/\">\n          <span data-i18n=\"journey-cta\">Meet our current partners<\/span>\n          <svg viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M6 3l5 5-5 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n        <\/a>\n      <\/div>\n      <div class=\"pwb-home__strip\" data-reveal>\n        <img loading=\"lazy\" src=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/Our-Local-Partners-3000-x-400-px-2.gif\" alt=\"\" width=\"2080\" height=\"720\" loading=\"lazy\" decoding=\"async\">\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- Mission triptych -->\n  <section class=\"pwb-home__mission pwb-home__bleed\" style=\"--band: var(--pwb-blush);\">\n    <div class=\"pwb-home__wrap\">\n      <div class=\"pwb-home__mission-head\" data-reveal>\n        <p class=\"pwb-home__eyebrow\" data-i18n=\"mission-eyebrow\">Our mission<\/p>\n        <h2 class=\"pwb-home__mission-title\" data-i18n=\"mission-title\">Educate, inspire, empower<\/h2>\n      <\/div>\n\n      <div>\n        <!-- Educate -->\n        <article class=\"pwb-home__pillar\" data-reveal>\n          <div>\n            <span class=\"pwb-home__pillar-num\">01<\/span>\n            <h3 class=\"pwb-home__pillar-title\" data-i18n=\"p1-title\">Educate<\/h3>\n            <p data-i18n=\"p1-a\">Our approach is inspired by the Summer School model: short, intensive courses that give students skills they can use straight away and carry with them for life.<\/p>\n            <p data-i18n=\"p1-b\">By sending the professors to the learners, we make quality education free and available to students who would not otherwise have access.<\/p>\n            <a class=\"pwb-home__pillar-link\" href=\"https:\/\/prowibo.org\/programmes\/\" data-href-fr=\"https:\/\/prowibo.org\/fr\/programmes\/\">\n              <span data-i18n=\"p1-cta\">Our programmes<\/span>\n              <svg viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M6 3l5 5-5 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n            <\/a>\n          <\/div>\n          <a class=\"pwb-home__media\" href=\"https:\/\/youtu.be\/Y5QEw3W1yJ4\" target=\"_blank\" rel=\"noopener\" data-preview data-yt=\"Y5QEw3W1yJ4\" data-i18n-attr=\"aria-label:play-educate\" aria-label=\"Play the Educate video\">\n            <video muted playsinline preload=\"none\" poster=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/educatethumb.png\" src=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/EducateVideo.mp4\"><\/video>\n            <span class=\"pwb-home__play\">\n              <span class=\"pwb-home__play-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M8 5v14l11-7z\"\/><\/svg><\/span>\n              <span class=\"pwb-home__play-label\" data-i18n=\"play\">Watch<\/span>\n            <\/span>\n          <\/a>\n        <\/article>\n\n        <!-- Inspire -->\n        <article class=\"pwb-home__pillar\" data-reveal>\n          <div>\n            <span class=\"pwb-home__pillar-num\">02<\/span>\n            <h3 class=\"pwb-home__pillar-title\" data-i18n=\"p2-title\">Inspire<\/h3>\n            <p data-i18n=\"p2-a\">Our programmes open up a more active, engaging way of learning, where students are invited to take part, test ideas, and learn from one another.<\/p>\n            <p data-i18n=\"p2-b\">Through group work, projects, and practical activities, students grow in confidence and discover that learning can be energising, enjoyable, and full of possibility.<\/p>\n            <a class=\"pwb-home__pillar-link\" href=\"https:\/\/prowibo.org\/our-impact\/\" data-href-fr=\"https:\/\/prowibo.org\/fr\/our-impact\/\">\n              <span data-i18n=\"p2-cta\">Our impact<\/span>\n              <svg viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M6 3l5 5-5 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n            <\/a>\n          <\/div>\n          <a class=\"pwb-home__media\" href=\"https:\/\/youtu.be\/oJC4XQfDyas\" target=\"_blank\" rel=\"noopener\" data-preview data-yt=\"oJC4XQfDyas\" data-i18n-attr=\"aria-label:play-inspire\" aria-label=\"Play the Inspire video\">\n            <video muted playsinline preload=\"none\" poster=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/inspirethumb.png\" src=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/InspireVideo.mp4\"><\/video>\n            <span class=\"pwb-home__play\">\n              <span class=\"pwb-home__play-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M8 5v14l11-7z\"\/><\/svg><\/span>\n              <span class=\"pwb-home__play-label\" data-i18n=\"play\">Watch<\/span>\n            <\/span>\n          <\/a>\n        <\/article>\n\n        <!-- Empower -->\n        <article class=\"pwb-home__pillar\" data-reveal>\n          <div>\n            <span class=\"pwb-home__pillar-num\">03<\/span>\n            <h3 class=\"pwb-home__pillar-title\" data-i18n=\"p3-title\">Empower<\/h3>\n            <p data-i18n=\"p3-a\">Our impact does not stop when a programme ends. We work with local faculty to share practical tools and up-to-date teaching methods, and where possible we train teachers to pass those skills on themselves, so the ripple effect continues long after we leave.<\/p>\n            <a class=\"pwb-home__pillar-link\" href=\"https:\/\/prowibo.org\/who-we-are\/\" data-href-fr=\"https:\/\/prowibo.org\/fr\/who-we-are\/\">\n              <span data-i18n=\"p3-cta\">Who we are<\/span>\n              <svg viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M6 3l5 5-5 5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n            <\/a>\n          <\/div>\n          <a class=\"pwb-home__media\" href=\"https:\/\/youtu.be\/hdpHovLw_Rw\" target=\"_blank\" rel=\"noopener\" data-preview data-yt=\"hdpHovLw_Rw\" data-i18n-attr=\"aria-label:play-empower\" aria-label=\"Play the Empower video\">\n            <video muted playsinline preload=\"none\" poster=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/empowerthumb.png\" src=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/EmpowerVideo.mp4\"><\/video>\n            <span class=\"pwb-home__play\">\n              <span class=\"pwb-home__play-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M8 5v14l11-7z\"\/><\/svg><\/span>\n              <span class=\"pwb-home__play-label\" data-i18n=\"play\">Watch<\/span>\n            <\/span>\n          <\/a>\n        <\/article>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- Video lightbox -->\n  <div class=\"pwb-home__lb\" id=\"pwb-home-lb\" hidden>\n    <div class=\"pwb-home__lb-backdrop\" data-lb-close><\/div>\n    <div class=\"pwb-home__lb-inner\" role=\"dialog\" aria-modal=\"true\" data-i18n-attr=\"aria-label:lb-label\" aria-label=\"Video\">\n      <button type=\"button\" class=\"pwb-home__lb-close\" data-lb-close data-i18n-attr=\"aria-label:lb-close\" aria-label=\"Close video\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M6 6l12 12M18 6L6 18\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg>\n      <\/button>\n      <div class=\"pwb-home__lb-frame\"><\/div>\n      <a class=\"pwb-home__lb-out\" href=\"https:\/\/www.youtube.com\/@professorswithoutborders\" target=\"_blank\" rel=\"noopener\">\n        <span data-i18n=\"lb-out\">Trouble playing? Open on YouTube<\/span>\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M7 17 17 7M9 7h8v8\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n      <\/a>\n    <\/div>\n  <\/div>\n\n  <!-- CTA -->\n  <section class=\"pwb-home__cta pwb-home__bleed\">\n    <div class=\"pwb-home__wrap\">\n      <div data-reveal>\n        <h2 class=\"pwb-home__h2\" data-i18n=\"cta-title\">Ten years in, our work is only growing<\/h2>\n        <p class=\"pwb-home__cta-text\" data-i18n=\"cta-text\">Every programme is delivered at zero cost to the learners.<br>This is only possible thanks to the people who fund and volunteer.<\/p>\n        <div class=\"pwb-home__actions\">\n          <a class=\"pwb-home__btn pwb-home__btn--primary\" href=\"https:\/\/prowibo.org\/donate\/\" data-href-fr=\"https:\/\/prowibo.org\/fr\/donate\/\" data-i18n=\"cta-donate\">Donate<\/a>\n          <a class=\"pwb-home__btn pwb-home__btn--ghost\" href=\"https:\/\/prowibo.org\/teach-abroad\/\" data-href-fr=\"https:\/\/prowibo.org\/fr\/teach-abroad\/\" data-i18n=\"cta-teach\">Teach abroad<\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n<\/div>\n\n<script>\n(function () {\n  \"use strict\";\n\n  \/* ------------------------------------------------------------------------\n     FRENCH DICTIONARY \u2014 edit French copy here and nowhere else.\n     Keys match the data-i18n \/ data-i18n-html attributes in the markup.\n\n     The three pillar titles use the SETTLED French rendering of the\n     strapline \u2014 Former, Inspirer, Motiver. It runs across the site and into\n     print, so do not retranslate it here.\n     ------------------------------------------------------------------------ *\/\n  var FR = {\n    \"hero-title\": \"Dix ans &agrave; envoyer les professeurs<br>vers les &eacute;tudiants qui en ont besoin\",\n    \"hero-lede\": \"Dix ans plus tard, des &eacute;tudiants sur trois continents.\",\n    \"hero-cta-1\": \"Voir notre impact\",\n    \"hero-cta-2\": \"Nos programmes\",\n    \"hero-carousel\": \"Programmes de Professors Without Borders\",\n\n    \"stat-students\": \"&Eacute;tudiants form&eacute;s depuis 2016\",\n    \"stat-educators\": \"Enseignants dans notre r&eacute;seau mondial\",\n    \"stat-countries\": \"Pays o&ugrave; nos programmes ont eu lieu\",\n\n    \"journey-title\": \"Notre parcours\",\n    \"journey-lede\": \"Dix ans d&rsquo;enseignement de qualit&eacute;, b&acirc;ti avec nos partenaires locaux. Nous remercions toutes les universit&eacute;s, &eacute;coles et organisations qui nous ont accueillis et ont ouvert leurs salles de classe &agrave; nos professeurs.\",\n\n    \"journey-cta\": \"D\u00e9couvrir nos partenaires actuels\",\n    \"mission-eyebrow\": \"Notre mission\",\n    \"mission-title\": \"Former, Inspirer, Motiver\",\n\n    \"p1-title\": \"Former\",\n    \"p1-a\": \"Notre approche s&rsquo;inspire du mod&egrave;le des summer schools&nbsp;: des cours courts et intensifs qui donnent aux &eacute;tudiants des comp&eacute;tences imm&eacute;diatement utiles, et qu&rsquo;ils garderont toute leur vie.\",\n    \"p1-b\": \"En envoyant les professeurs aupr&egrave;s des apprenants, nous rendons une &eacute;ducation de qualit&eacute; gratuite et accessible &agrave; des &eacute;tudiants qui n&rsquo;y auraient pas acc&egrave;s autrement.\",\n    \"p1-cta\": \"Nos programmes\",\n\n    \"p2-title\": \"Inspirer\",\n    \"p2-a\": \"Nos programmes ouvrent une mani&egrave;re d&rsquo;apprendre plus active et plus engageante, o&ugrave; les &eacute;tudiants sont invit&eacute;s &agrave; participer, &agrave; &eacute;prouver des id&eacute;es et &agrave; apprendre les uns des autres.\",\n    \"p2-b\": \"Gr&acirc;ce au travail de groupe, aux projets et aux activit&eacute;s pratiques, les &eacute;tudiants gagnent en confiance et d&eacute;couvrent qu&rsquo;apprendre peut &ecirc;tre stimulant, agr&eacute;able et riche de possibilit&eacute;s.\",\n    \"p2-cta\": \"Notre impact\",\n\n    \"p3-title\": \"Motiver\",\n    \"p3-a\": \"Notre impact ne s&rsquo;arr&ecirc;te pas &agrave; la fin d&rsquo;un programme. Nous travaillons avec les enseignants locaux pour partager des outils concrets et des m&eacute;thodes p&eacute;dagogiques actuelles et, lorsque c&rsquo;est possible, nous les formons &agrave; transmettre eux-m&ecirc;mes ces comp&eacute;tences, afin que l&rsquo;effet se prolonge bien apr&egrave;s notre d&eacute;part.\",\n    \"p3-cta\": \"Qui nous sommes\",\n\n    \"play\": \"Regarder\",\n    \"play-educate\": \"Lire la vid&eacute;o Former\",\n    \"play-inspire\": \"Lire la vid&eacute;o Inspirer\",\n    \"play-empower\": \"Lire la vid&eacute;o Motiver\",\n\n    \"lb-label\": \"Vid&eacute;o\",\n    \"lb-out\": \"Probl\u00e8me de lecture\u00a0? Ouvrir sur YouTube\",\n    \"lb-close\": \"Fermer la vid&eacute;o\",\n    \"cta-title\": \"Dix ans apr&egrave;s, notre travail ne cesse de grandir\",\n    \"cta-text\": \"Chaque programme est propos&eacute; sans aucun frais pour les apprenants.<br>Cela n&rsquo;est possible que gr&acirc;ce &agrave; celles et ceux qui le financent et y donnent de leur temps.\",\n    \"cta-donate\": \"Faire un don\",\n    \"cta-teach\": \"Enseigner &agrave; l&rsquo;&eacute;tranger\"\n  };\n\n  var roots = document.querySelectorAll(\".pwb-home\");\n  if (!roots.length) { return; }\n\n  var reduceMotion = window.matchMedia\n    && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n  function pwbHomeDetectLang() {\n    var p = window.location.pathname.toLowerCase();\n    if (\/(^|\\\/)fr(-[a-z]{2})?(\\\/|$)\/.test(p)) { return \"fr\"; }\n    var hl = (document.documentElement.getAttribute(\"lang\") || \"\").toLowerCase();\n    if (hl.indexOf(\"fr\") === 0) { return \"fr\"; }\n    return \"en\";\n  }\n\n  \/* Element-keyed caches, so nothing writes a named property onto a DOM node\n     that the theme or another widget could also read or clobber. Text and\n     attributes are cached separately \u2014 one shared cache writes a visible\n     label into an attribute, which is a bug that has shipped before. *\/\n  var textCache = new WeakMap();\n  var attrCache = new WeakMap();\n\n  var appliers = [];\n\n  Array.prototype.forEach.call(roots, function (root) {\n    if (root.getAttribute(\"data-pwb-ready\") === \"1\") { return; }\n    root.setAttribute(\"data-pwb-ready\", \"1\");\n    root.classList.add(\"pwb-home--js\");\n\n    \/* -------------------------------------------------------- Language -- *\/\n\n    function applyLang(lang) {\n      var isFR = lang === \"fr\";\n\n      \/* innerHTML rather than textContent, so a translated value can carry the\n         inline markup its English counterpart has \u2014 the hero title has its own\n         <br>. Authored copy only. Never nest a key inside a keyed element:\n         the parent's write destroys the child. *\/\n      root.querySelectorAll(\"[data-i18n], [data-i18n-html]\").forEach(function (el) {\n        if (!textCache.has(el)) { textCache.set(el, el.innerHTML); }\n        var k = el.getAttribute(\"data-i18n\") || el.getAttribute(\"data-i18n-html\");\n        el.innerHTML = (isFR && Object.prototype.hasOwnProperty.call(FR, k))\n          ? FR[k] : textCache.get(el);\n      });\n\n      root.querySelectorAll(\"[data-i18n-attr]\").forEach(function (el) {\n        if (!attrCache.has(el)) { attrCache.set(el, {}); }\n        var cache = attrCache.get(el);\n        el.getAttribute(\"data-i18n-attr\").split(\/[;,]\/).forEach(function (pair) {\n          var bits = pair.split(\":\");\n          if (bits.length < 2) { return; }\n          var attr = bits[0].trim(), k = bits[1].trim();\n          if (cache[attr] === undefined) { cache[attr] = el.getAttribute(attr); }\n          if (isFR && Object.prototype.hasOwnProperty.call(FR, k)) {\n            \/* An attribute is not parsed as HTML, so entity-encoded French\n               would otherwise be announced literally by a screen reader.\n               textarea content is parsed as character data, so nothing runs. *\/\n            var tmp = document.createElement(\"textarea\");\n            tmp.innerHTML = FR[k];\n            el.setAttribute(attr, tmp.value);\n          } else {\n            el.setAttribute(attr, cache[attr]);\n          }\n        });\n      });\n\n      root.querySelectorAll(\"[data-href-fr]\").forEach(function (el) {\n        if (!attrCache.has(el)) { attrCache.set(el, {}); }\n        var cache = attrCache.get(el);\n        if (cache.href === undefined) { cache.href = el.getAttribute(\"href\"); }\n        el.setAttribute(\"href\", isFR ? el.getAttribute(\"data-href-fr\") : cache.href);\n      });\n\n      root.setAttribute(\"data-pwb-lang\", lang);\n      root.setAttribute(\"lang\", lang);\n      repaintCounters();\n    }\n\n    \/* ------------------------------------------------------- Carousel -- *\/\n\n    (function carousel() {\n      var slides = root.querySelectorAll(\".pwb-home__slide\");\n      var dots = root.querySelectorAll(\".pwb-home__dot\"); \/\/ none authored now\n      if (slides.length < 2) { return; }\n\n      var i = 0, timer = null, HOLD = 7000;\n\n      function go(n) {\n        i = (n + slides.length) % slides.length;\n        Array.prototype.forEach.call(slides, function (s, k) {\n          \/* The zoom is an animation on the active slide, so the class has to\n             come off and go back on for it to restart on a repeat visit. *\/\n          s.classList.toggle(\"is-active\", k === i);\n        });\n        Array.prototype.forEach.call(dots, function (d, k) {\n          d.setAttribute(\"aria-selected\", k === i ? \"true\" : \"false\");\n        });\n      }\n\n      function play() {\n        if (reduceMotion || timer) { return; }\n        timer = window.setInterval(function () { go(i + 1); }, HOLD);\n      }\n\n      function pause() {\n        if (!timer) { return; }\n        window.clearInterval(timer);\n        timer = null;\n      }\n\n      Array.prototype.forEach.call(dots, function (dot, k) {\n        dot.addEventListener(\"click\", function () { pause(); go(k); play(); });\n      });\n\n      \/* Auto-advance stops while someone is reading or interacting, and while\n         the tab is hidden \u2014 an unpausable carousel is the usual complaint. *\/\n      var hero = root.querySelector(\".pwb-home__hero\");\n      if (hero) {\n        hero.addEventListener(\"mouseenter\", pause);\n        hero.addEventListener(\"mouseleave\", play);\n        hero.addEventListener(\"focusin\", pause);\n        hero.addEventListener(\"focusout\", play);\n      }\n\n      document.addEventListener(\"visibilitychange\", function () {\n        if (document.hidden) { pause(); } else { play(); }\n      });\n\n      play();\n    })();\n\n    \/* --------------------------------------------------------- Counters -- *\/\n\n    var counters = root.querySelectorAll(\"[data-count]\");\n    var tokens = new WeakMap();\n\n    function locale() {\n      return root.getAttribute(\"data-pwb-lang\") === \"fr\" ? \"fr-FR\" : \"en-GB\";\n    }\n\n    function paint(el, value) {\n      var suffix = el.getAttribute(\"data-suffix\") || \"\";\n      var out;\n      try { out = value.toLocaleString(locale()); } catch (e) { out = String(value); }\n      el.textContent = out + suffix;\n    }\n\n    \/* Already-settled counters are repainted in the new locale; the rest are\n       left at zero until they scroll into view. *\/\n    function repaintCounters() {\n      Array.prototype.forEach.call(counters, function (el) {\n        if (el.getAttribute(\"data-counted\") === \"1\") {\n          paint(el, parseInt(el.getAttribute(\"data-count\"), 10) || 0);\n        }\n      });\n    }\n\n    function run(el) {\n      var target = parseInt(el.getAttribute(\"data-count\"), 10) || 0;\n      if (reduceMotion) { paint(el, target); return; }\n\n      \/* Invalidate any in-flight animation on this element, so a re-trigger\n         cannot race it and make the digits oscillate. *\/\n      var token = (tokens.get(el) || 0) + 1;\n      tokens.set(el, token);\n\n      var start = null, dur = 1400, suffix = el.getAttribute(\"data-suffix\") || \"\";\n\n      function frame(now) {\n        if (tokens.get(el) !== token) { return; }\n        if (start === null) { start = now; }\n        var t = Math.min((now - start) \/ dur, 1);\n        var eased = 1 - Math.pow(1 - t, 3);\n        \/* Plain digits mid-count: locale grouping would change the string's\n           width as it crosses 1000, which reads as the number glitching.\n           Grouping is applied to the settled value only. *\/\n        if (t < 1) {\n          el.textContent = String(Math.floor(eased * target)) + suffix;\n          window.requestAnimationFrame(frame);\n        } else {\n          paint(el, target);\n        }\n      }\n\n      window.requestAnimationFrame(frame);\n    }\n\n    \/* ----------------------------------------------------------- Video -- *\/\n\n    \/* Each tile is a link to YouTube. Hovering or focusing it plays a muted\n       6-second preview of the local file in place; the click still goes to\n       YouTube. preload=\"none\" means nothing downloads until someone hovers. *\/\n    root.querySelectorAll(\"[data-preview]\").forEach(function (media) {\n      var video = media.querySelector(\"video\");\n      if (!video) { return; }\n\n      var stop = null;\n\n      function begin() {\n        if (reduceMotion) { return; }\n        media.setAttribute(\"data-playing\", \"true\");\n        try { video.currentTime = 0; } catch (e) {}\n        var p = video.play();\n        \/* A blocked autoplay rejects rather than throwing, and leaving the\n           tile in the playing state would hide the cue for good. *\/\n        if (p && p.catch) { p.catch(function () { end(); }); }\n        window.clearTimeout(stop);\n        stop = window.setTimeout(end, 6000);\n      }\n\n      function end() {\n        window.clearTimeout(stop);\n        media.setAttribute(\"data-playing\", \"false\");\n        video.pause();\n        \/* load() restores the poster frame; pausing alone leaves the last\n           frame of the preview on screen. *\/\n        try { video.load(); } catch (e) {}\n      }\n\n      media.addEventListener(\"mouseenter\", begin);\n      media.addEventListener(\"mouseleave\", end);\n      media.addEventListener(\"focus\", begin);\n      media.addEventListener(\"blur\", end);\n    });\n\n    \/* --------------------------------------------------------- Lightbox -- *\/\n\n    (function lightbox() {\n      var lb = root.querySelector(\"#pwb-home-lb\");\n      var frame = lb && lb.querySelector(\".pwb-home__lb-frame\");\n      var closeBtn = lb && lb.querySelector(\".pwb-home__lb-close\");\n      if (!lb || !frame) { return; }\n\n      var lastTrigger = null, priorOverflow = \"\";\n\n      function open(id, trigger) {\n        lastTrigger = trigger || null;\n        \/* The iframe is created on open and destroyed on close, so YouTube is\n           contacted only when someone actually asks to watch \u2014 nothing is\n           requested on page load. nocookie host for the same reason. *\/\n        var iframe = document.createElement(\"iframe\");\n        var src = \"https:\/\/www.youtube-nocookie.com\/embed\/\" + id +\n          \"?autoplay=1&rel=0&modestbranding=1&playsinline=1\";\n        \/* Some hosts reject an embed with no valid origin. In a sandboxed\n           frame location.origin is the string \"null\", which is worse than\n           omitting the parameter, so it is only added when real. *\/\n        if (window.location.origin && window.location.origin !== \"null\") {\n          src += \"&origin=\" + encodeURIComponent(window.location.origin);\n        }\n        iframe.src = src;\n        iframe.setAttribute(\"title\", lb.querySelector(\".pwb-home__lb-inner\").getAttribute(\"aria-label\") || \"Video\");\n        iframe.setAttribute(\"allow\", \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\");\n        iframe.setAttribute(\"allowfullscreen\", \"\");\n        frame.appendChild(iframe);\n\n        var out = lb.querySelector(\".pwb-home__lb-out\");\n        if (out) { out.setAttribute(\"href\", \"https:\/\/youtu.be\/\" + id); }\n\n        lb.hidden = false;\n        priorOverflow = document.body.style.overflow;\n        document.body.style.overflow = \"hidden\";\n        if (closeBtn) { closeBtn.focus(); }\n      }\n\n      function close() {\n        if (lb.hidden) { return; }\n        lb.hidden = true;\n        frame.innerHTML = \"\";\n        document.body.style.overflow = priorOverflow;\n        if (lastTrigger) { lastTrigger.focus(); }\n      }\n\n      lb.querySelectorAll(\"[data-lb-close]\").forEach(function (el) {\n        el.addEventListener(\"click\", close);\n      });\n\n      document.addEventListener(\"keydown\", function (e) {\n        if (e.key === \"Escape\") { close(); }\n      });\n\n      root.querySelectorAll(\"[data-yt]\").forEach(function (tile) {\n        tile.addEventListener(\"click\", function (e) {\n          \/* Modified clicks keep their normal meaning, so the YouTube href is\n             still useful for open-in-new-tab. *\/\n          if (e.metaKey || e.ctrlKey || e.shiftKey || e.button !== 0) { return; }\n          e.preventDefault();\n          var video = tile.querySelector(\"video\");\n          if (video) { video.pause(); }\n          tile.setAttribute(\"data-playing\", \"false\");\n          open(tile.getAttribute(\"data-yt\"), tile);\n        });\n      });\n    })();\n\n    \/* --------------------------------------------------------- Reveals -- *\/\n\n    var revealables = root.querySelectorAll(\"[data-reveal]\");\n\n    function revealAll() {\n      Array.prototype.forEach.call(revealables, function (el) { el.classList.add(\"is-in\"); });\n      Array.prototype.forEach.call(counters, function (el) {\n        el.setAttribute(\"data-counted\", \"1\");\n        paint(el, parseInt(el.getAttribute(\"data-count\"), 10) || 0);\n      });\n    }\n\n    applyLang(pwbHomeDetectLang());\n    appliers.push(applyLang);\n\n    if (reduceMotion || !(\"IntersectionObserver\" in window)) {\n      revealAll();\n      return;\n    }\n\n    Array.prototype.forEach.call(revealables, function (el) {\n      var siblings = el.parentNode\n        ? el.parentNode.querySelectorAll(\":scope > [data-reveal]\") : [el];\n      var pos = Array.prototype.indexOf.call(siblings, el);\n      if (pos > 0) { el.style.setProperty(\"--pwb-d\", Math.min(pos, 4) * 80 + \"ms\"); }\n    });\n\n    var observer = new IntersectionObserver(function (entries) {\n      entries.forEach(function (entry) {\n        if (!entry.isIntersecting) { return; }\n        entry.target.classList.add(\"is-in\");\n\n        var num = entry.target.querySelector(\"[data-count]\");\n        if (num && num.getAttribute(\"data-counted\") !== \"1\") {\n          num.setAttribute(\"data-counted\", \"1\");\n          run(num);\n        }\n\n        observer.unobserve(entry.target);\n      });\n    }, { rootMargin: \"0px 0px -6% 0px\", threshold: 0.1 });\n\n    Array.prototype.forEach.call(revealables, function (el) { observer.observe(el); });\n\n    \/* Failsafe \u2014 content must never depend on JS to become visible.\n       IntersectionObserver can be throttled or never fire at all inside a\n       transformed or hidden ancestor (Elementor applies a transform to an\n       animated widget). If anything is still un-revealed shortly after load,\n       show it unconditionally. *\/\n    window.setTimeout(function () {\n      if (!root.querySelector(\"[data-reveal]:not(.is-in)\")) { return; }\n      revealAll();\n    }, 2500);\n  });\n\n  window.pwbHomeSetLang = function (l) {\n    var lang = (l === \"fr\") ? \"fr\" : \"en\";\n    appliers.forEach(function (apply) { apply(lang); });\n  };\n\n  window.addEventListener(\"popstate\", function () {\n    var lang = pwbHomeDetectLang();\n    appliers.forEach(function (apply) { apply(lang); });\n  });\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Ten years of sending professorsto the students who need them A decade on, reaching students across three continents. See our impact Our programmes 0 Students taught since 2016 0 Educators in our global network 0 Countries where programmes have run Our journey so far Ten years of quality learning, built with our local partners. We [&hellip;]<\/p>\n","protected":false},"author":19,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-34391","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Professors Without Borders | Professeurs Sans Fronti\u00e8res<\/title>\n<meta name=\"description\" content=\"Volunteer professors teaching free, intensive courses with partner universities. The shared work of Professors Without Borders (UK) and PSF (Luxembourg).\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prowibo.org\/fr\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Professors Without Borders | Professeurs Sans Fronti\u00e8res\" \/>\n<meta property=\"og:description\" content=\"Volunteer professors teaching free, intensive courses with partner universities. The shared work of Professors Without Borders (UK) and PSF (Luxembourg).\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prowibo.org\/fr\/\" \/>\n<meta property=\"og:site_name\" content=\"Professors Without Borders\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-23T21:54:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/01\/Copy-of-Financial-Literacy-Bootcamp.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1080\" \/>\n\t<meta property=\"og:image:height\" content=\"1350\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/prowibo.org\\\/\",\"url\":\"https:\\\/\\\/prowibo.org\\\/\",\"name\":\"Professors Without Borders | Professeurs Sans Fronti\u00e8res\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/prowibo.org\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/prowibo.org\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/prowibo.org\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/prowibo.org\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/PROWIBO-82-scaled.jpg\",\"datePublished\":\"2026-03-18T00:41:56+00:00\",\"dateModified\":\"2026-09-23T21:54:51+00:00\",\"description\":\"Volunteer professors teaching free, intensive courses with partner universities. The shared work of Professors Without Borders (UK) and PSF (Luxembourg).\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/prowibo.org\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/prowibo.org\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/prowibo.org\\\/#primaryimage\",\"url\":\"https:\\\/\\\/prowibo.org\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/PROWIBO-82-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/prowibo.org\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/PROWIBO-82-scaled.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/prowibo.org\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/prowibo.org\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Home\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/prowibo.org\\\/#website\",\"url\":\"https:\\\/\\\/prowibo.org\\\/\",\"name\":\"Professors Without Borders\",\"description\":\"Educate, Inspire, Empower\",\"publisher\":{\"@id\":\"https:\\\/\\\/prowibo.org\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/prowibo.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/prowibo.org\\\/#organization\",\"name\":\"Professors Without Borders\",\"url\":\"https:\\\/\\\/prowibo.org\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/prowibo.org\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/prowibo.org\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/cropped-Prowibo_logo.png\",\"contentUrl\":\"https:\\\/\\\/prowibo.org\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/cropped-Prowibo_logo.png\",\"width\":1957,\"height\":863,\"caption\":\"Professors Without Borders\"},\"image\":{\"@id\":\"https:\\\/\\\/prowibo.org\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Professors Without Borders | Professeurs Sans Fronti\u00e8res","description":"Volunteer professors teaching free, intensive courses with partner universities. The shared work of Professors Without Borders (UK) and PSF (Luxembourg).","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prowibo.org\/fr\/","og_locale":"fr_FR","og_type":"article","og_title":"Professors Without Borders | Professeurs Sans Fronti\u00e8res","og_description":"Volunteer professors teaching free, intensive courses with partner universities. The shared work of Professors Without Borders (UK) and PSF (Luxembourg).","og_url":"https:\/\/prowibo.org\/fr\/","og_site_name":"Professors Without Borders","article_modified_time":"2026-09-23T21:54:51+00:00","og_image":[{"width":1080,"height":1350,"url":"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/01\/Copy-of-Financial-Literacy-Bootcamp.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/prowibo.org\/","url":"https:\/\/prowibo.org\/","name":"Professors Without Borders | Professeurs Sans Fronti\u00e8res","isPartOf":{"@id":"https:\/\/prowibo.org\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prowibo.org\/#primaryimage"},"image":{"@id":"https:\/\/prowibo.org\/#primaryimage"},"thumbnailUrl":"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/PROWIBO-82-scaled.jpg","datePublished":"2026-03-18T00:41:56+00:00","dateModified":"2026-09-23T21:54:51+00:00","description":"Volunteer professors teaching free, intensive courses with partner universities. The shared work of Professors Without Borders (UK) and PSF (Luxembourg).","breadcrumb":{"@id":"https:\/\/prowibo.org\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prowibo.org\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/prowibo.org\/#primaryimage","url":"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/PROWIBO-82-scaled.jpg","contentUrl":"https:\/\/prowibo.org\/wp-content\/uploads\/2026\/03\/PROWIBO-82-scaled.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/prowibo.org\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/prowibo.org\/"},{"@type":"ListItem","position":2,"name":"Home"}]},{"@type":"WebSite","@id":"https:\/\/prowibo.org\/#website","url":"https:\/\/prowibo.org\/","name":"Professors Without Borders","description":"Educate, Inspire, Empower","publisher":{"@id":"https:\/\/prowibo.org\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/prowibo.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/prowibo.org\/#organization","name":"Professors Without Borders","url":"https:\/\/prowibo.org\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/prowibo.org\/#\/schema\/logo\/image\/","url":"https:\/\/prowibo.org\/wp-content\/uploads\/2023\/02\/cropped-Prowibo_logo.png","contentUrl":"https:\/\/prowibo.org\/wp-content\/uploads\/2023\/02\/cropped-Prowibo_logo.png","width":1957,"height":863,"caption":"Professors Without Borders"},"image":{"@id":"https:\/\/prowibo.org\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/prowibo.org\/fr\/wp-json\/wp\/v2\/pages\/34391","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prowibo.org\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/prowibo.org\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/prowibo.org\/fr\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/prowibo.org\/fr\/wp-json\/wp\/v2\/comments?post=34391"}],"version-history":[{"count":152,"href":"https:\/\/prowibo.org\/fr\/wp-json\/wp\/v2\/pages\/34391\/revisions"}],"predecessor-version":[{"id":36323,"href":"https:\/\/prowibo.org\/fr\/wp-json\/wp\/v2\/pages\/34391\/revisions\/36323"}],"wp:attachment":[{"href":"https:\/\/prowibo.org\/fr\/wp-json\/wp\/v2\/media?parent=34391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}