{"id":15056,"date":"2023-03-31T07:47:16","date_gmt":"2023-03-31T07:47:16","guid":{"rendered":"http:\/\/prowibo.org\/?page_id=15056"},"modified":"2026-09-10T13:32:46","modified_gmt":"2026-09-10T13:32:46","slug":"donate","status":"publish","type":"page","link":"https:\/\/prowibo.org\/fr\/donate\/","title":{"rendered":"Faire un don"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15056\" class=\"elementor elementor-15056\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-797a6da e-con-full e-flex e-con e-parent\" data-id=\"797a6da\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-40c4ab1 elementor-widget elementor-widget-html\" data-id=\"40c4ab1\" 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<!-- =========================================================================\n     PROWIBO \u2014 DONATE (supporting content)\n     Elementor HTML widget. Every selector is scoped to .pwb-give.\n     Palette, type and radii follow the Prowibo Design System (v9).\n     Elementor content width assumed: 1260px (used by the full-bleed bands).\n     ========================================================================= -->\n\n<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-give {\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-magenta: #E6007E;\n  --pwb-magenta-80: #B00061;\n  --pwb-purple: #7B2D8E;\n  --pwb-navy: #0A2540;\n  --pwb-teal-dark: #0B7364;\n  --pwb-grey: #9AA4B2;\n  --pwb-terracotta: #E8623A;\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\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: 1260px;\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-give,\n.pwb-give *,\n.pwb-give *::before,\n.pwb-give *::after { box-sizing: border-box; }\n\n\/* :where() keeps the reset at zero specificity so class rules still win. *\/\n.pwb-give :where(h1, h2, h3, h4, p, ul, ol, li, figure, figcaption) { margin: 0; padding: 0; }\n.pwb-give :where(li) { list-style: none; }\n.pwb-give :where(img) { display: block; max-width: 100%; height: auto; }\n\n\/* Zero-specificity so button and card classes on <a> still win, and so a\n   link added later is never browser-default blue. *\/\n.pwb-give :where(a) { color: var(--pwb-magenta-80); text-underline-offset: 3px; }\n.pwb-give :where(a:hover) { color: var(--pwb-purple); }\n\n.pwb-give :focus-visible {\n  outline: 2px solid var(--pwb-purple);\n  outline-offset: 3px;\n  border-radius: 4px;\n}\n\n.pwb-give__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-give__bleed {\n  \/* The section itself stays at container width \u2014 moving the section with\n     negative margins makes its box viewport-wide, so its inner wrap centres\n     on the viewport while every other wrap centres on the container, and the\n     two left edges diverge by half the difference. Only the painted band\n     breaks out. *\/\n  position: relative;\n  isolation: isolate;\n}\n\n.pwb-give__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-give__eyebrow {\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-give__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.pwb-give__h3 {\n  font-family: var(--pwb-display);\n  font-weight: 700;\n  font-size: 1.0625rem;\n  line-height: 1.3;\n  letter-spacing: -.01em;\n}\n\n\/* Page-header scale, matching the hero title on the other pages, so this\n   reads as the page's opening call to action rather than a section heading. *\/\n.pwb-give__title {\n  font-family: var(--pwb-display);\n  font-weight: 800;\n  font-size: clamp(2rem, 1.35rem + 3vw, 3.375rem);\n  line-height: 1.05;\n  letter-spacing: -.025em;\n  margin-top: 10px;\n  text-wrap: balance;\n}\n\n.pwb-give__section { padding: clamp(40px, 5vw, 68px) 0; }\n\n\/* -------------------------------------------------------- Why it works -- *\/\n\n.pwb-give__why {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) minmax(340px, 38%);\n  grid-template-areas:\n    \"copy form\"\n    \"photo form\";\n  grid-template-rows: auto 1fr;\n  gap: clamp(36px, 5.5vw, 80px);\n  align-items: start;\n}\n\n.pwb-give__why-copy { grid-area: copy; }\n.pwb-give__why-form { grid-area: form; }\n\n.pwb-give__photo {\n  grid-area: photo;\n  overflow: hidden;\n  border-radius: 12px;\n  background: var(--pwb-lightpink);\n  box-shadow: 0 1px 2px rgba(28, 28, 40, .06), 0 12px 30px rgba(28, 28, 40, .08);\n}\n\n.pwb-give__photo img { width: 100%; height: auto; transition: transform .6s var(--pwb-ease); }\n.pwb-give__photo:hover img { transform: scale(1.03); }\n\n.pwb-give__accent {\n  display: block;\n  width: 64px;\n  height: 4px;\n  border-radius: 2px;\n  background: var(--pwb-grad-02);\n  transform-origin: left center;\n  margin-bottom: clamp(18px, 2.2vw, 26px);\n}\n\n.pwb-give__why .pwb-give__h2 { margin-bottom: clamp(16px, 2vw, 22px); }\n\n.pwb-give__why :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-give__why :where(p + p) { margin-top: 1.1em; }\n\n\/* ------------------------------------------------------------- Amounts -- *\/\n\n.pwb-give__amounts { --band: var(--pwb-blush); padding: clamp(44px, 5.5vw, 72px) 0; }\n\n.pwb-give__amounts-head { max-width: 60ch; margin-bottom: clamp(26px, 3.2vw, 40px); }\n.pwb-give__amounts-head .pwb-give__h2 { margin-bottom: 12px; }\n\n.pwb-give__amounts-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\/* Footnote to a financial claim: small, but never below 12px and never\n   alpha-muted, since it is the source qualifying the figure above it. *\/\n.pwb-give__footnote {\n  display: flex;\n  gap: 7px;\n  margin-top: clamp(22px, 2.8vw, 32px);\n  padding-top: clamp(16px, 2vw, 20px);\n  border-top: 1px solid var(--pwb-border);\n  font-size: .8125rem;\n  line-height: 1.5;\n  color: var(--pwb-ink-soft);\n}\n\n.pwb-give__ref {\n  font-size: .75em;\n  line-height: 1;\n  color: var(--pwb-magenta-80);\n  vertical-align: super;\n}\n\n\/* In the footnote the dagger is a marker, not superscript type. *\/\n.pwb-give__footnote .pwb-give__ref {\n  flex: none;\n  font-size: .875rem;\n  vertical-align: baseline;\n}\n\n.pwb-give__tiers {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));\n  gap: clamp(18px, 2.4vw, 26px);\n}\n\n.pwb-give__tier {\n  display: flex;\n  flex-direction: column;\n  gap: 10px;\n  padding: clamp(22px, 2.6vw, 28px);\n  background: #fff;\n  border-radius: 12px;\n  border-top: 3px solid var(--pwb-magenta);\n  box-shadow: 0 1px 2px rgba(28, 28, 40, .05), 0 8px 22px rgba(28, 28, 40, .06);\n  transition: transform .25s var(--pwb-ease), box-shadow .25s var(--pwb-ease);\n}\n\n.pwb-give__tier:hover {\n  transform: translateY(-3px);\n  box-shadow: 0 2px 4px rgba(28, 28, 40, .07), 0 16px 36px rgba(28, 28, 40, .1);\n}\n\n.pwb-give__tier:nth-child(2) { border-top-color: var(--pwb-purple); }\n.pwb-give__tier:nth-child(3) { border-top-color: var(--pwb-teal-dark); }\n.pwb-give__tier:nth-child(4) { border-top-color: var(--pwb-navy); }\n\n.pwb-give__amount {\n  font-family: var(--pwb-display);\n  font-weight: 800;\n  font-size: clamp(1.5rem, 1.15rem + 1.2vw, 2.125rem);\n  line-height: 1;\n  letter-spacing: -.03em;\n  color: var(--pwb-ink);\n  font-variant-numeric: tabular-nums;\n}\n\n.pwb-give__tier :where(p) {\n  font-size: .9375rem;\n  line-height: 1.6;\n  color: var(--pwb-ink-soft);\n  text-wrap: pretty;\n}\n\n\/* --------------------------------------------------------- Other ways -- *\/\n\n.pwb-give__ways {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));\n  gap: clamp(18px, 2.4vw, 26px);\n  margin-top: clamp(26px, 3.2vw, 38px);\n}\n\n.pwb-give__way {\n  display: flex;\n  flex-direction: column;\n  height: 100%;\n  padding: clamp(22px, 2.6vw, 30px);\n  background: #fff;\n  border: 1px solid var(--pwb-border);\n  border-radius: 12px;\n}\n\n.pwb-give__way .pwb-give__h3 { margin-bottom: 10px; }\n\n.pwb-give__way :where(p) {\n  font-size: .9375rem;\n  line-height: 1.65;\n  color: var(--pwb-ink-soft);\n  text-wrap: pretty;\n}\n\n.pwb-give__way :where(p + p) { margin-top: .9em; }\n\n.pwb-give__way-tag {\n  align-self: flex-start;\n  margin-bottom: 14px;\n  padding: 4px 11px;\n  border-radius: 999px;\n  background: rgba(15, 157, 138, .13);\n  color: var(--pwb-teal-dark);\n  font-family: var(--pwb-display);\n  font-weight: 700;\n  font-size: .625rem;\n  letter-spacing: .1em;\n  text-transform: uppercase;\n}\n\n.pwb-give__way-link {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  align-self: flex-start;\n  margin-top: auto;\n  padding-top: 18px;\n  font-family: var(--pwb-display);\n  font-weight: 700;\n  font-size: .8125rem;\n  letter-spacing: .06em;\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-give__way-link:hover { color: var(--pwb-purple); gap: 12px; }\n.pwb-give__way-link svg { width: 13px; height: 13px; flex: none; }\n\n\/* Payroll benefit list *\/\n.pwb-give__benefits { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; }\n\n.pwb-give__benefits li {\n  display: grid;\n  grid-template-columns: 16px minmax(0, 1fr);\n  gap: 10px;\n  font-size: .875rem;\n  line-height: 1.55;\n  color: var(--pwb-ink-soft);\n  text-wrap: pretty;\n}\n\n.pwb-give__benefits svg { width: 16px; height: 16px; margin-top: 3px; color: var(--pwb-teal-dark); }\n\n\/* Worked example callout *\/\n.pwb-give__example {\n  margin-top: 16px;\n  padding: 16px 18px;\n  border-radius: 8px;\n  background: var(--pwb-blush);\n  font-size: .875rem;\n  line-height: 1.6;\n  color: var(--pwb-ink);\n  text-wrap: pretty;\n}\n\n.pwb-give__example b { font-weight: 700; }\n\n\/* ------------------------------------------------------------ Gift Aid -- *\/\n\n.pwb-give__giftaid {\n  --band: var(--pwb-navy);\n  color: #fff;\n  padding: clamp(36px, 4.5vw, 56px) 0;\n}\n\n.pwb-give__giftaid-inner {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  justify-content: space-between;\n  gap: clamp(22px, 3vw, 40px);\n}\n\n.pwb-give__giftaid-copy { max-width: 60ch; }\n\n.pwb-give__giftaid .pwb-give__h2 { color: #fff; margin-bottom: 12px; }\n\n.pwb-give__giftaid :where(p) {\n  font-weight: 300;\n  font-size: clamp(1rem, .96rem + .3vw, 1.125rem);\n  line-height: 1.65;\n  color: rgba(255, 255, 255, .88);\n  text-wrap: pretty;\n}\n\n.pwb-give__boost {\n  flex: none;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  min-width: 148px;\n  padding: 20px 26px;\n  border-radius: 12px;\n  background: var(--pwb-gold);\n  color: var(--pwb-ink);\n  text-align: center;\n}\n\n.pwb-give__boost-k {\n  font-family: var(--pwb-display);\n  font-weight: 800;\n  font-size: clamp(1.875rem, 1.4rem + 1.8vw, 2.75rem);\n  line-height: 1;\n  letter-spacing: -.03em;\n}\n\n.pwb-give__boost-l {\n  margin-top: 6px;\n  font-family: var(--pwb-display);\n  font-weight: 700;\n  font-size: .6875rem;\n  letter-spacing: .1em;\n  text-transform: uppercase;\n}\n\n\/* ------------------------------------------------------------- Motion -- *\/\n\n.pwb-give--js [data-reveal] {\n  opacity: 0;\n  transform: translateY(16px);\n  transition: opacity .7s var(--pwb-ease), transform .7s var(--pwb-ease);\n}\n\n.pwb-give--js [data-reveal].is-in { opacity: 1; transform: none; }\n.pwb-give--js .pwb-give__accent { transform: scaleX(0); }\n\n.pwb-give--js [data-reveal].is-in .pwb-give__accent {\n  transform: scaleX(1);\n  transition: transform .8s var(--pwb-ease) .15s;\n}\n\n\/* -------------------------------------------------------- Breakpoints -- *\/\n\n@media (max-width: 980px) {\n  .pwb-give__why {\n    grid-template-columns: minmax(0, 1fr);\n    \/* Form ahead of the photo: on a phone the image would otherwise push the\n       donation action off the first screen. *\/\n    grid-template-areas: \"copy\" \"form\" \"photo\";\n    grid-template-rows: auto;\n  }\n}\n\n@media (max-width: 560px) {\n  .pwb-give__boost { width: 100%; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .pwb-give *,\n  .pwb-give *::before,\n  .pwb-give *::after {\n    animation-duration: .01ms !important;\n    animation-iteration-count: 1 !important;\n    transition-duration: .01ms !important;\n  }\n\n  .pwb-give--js [data-reveal] { opacity: 1 !important; transform: none !important; }\n  .pwb-give--js .pwb-give__accent { transform: scaleX(1) !important; }\n}\n\n\n\/* --------------------------------------------- Donation form: structure -- *\/\n\n\/* Ported verbatim (scoped) from the widget's own stylesheet. These carry the\n   layout and, critically, the show\/hide behaviour the script toggles \u2014 the\n   restyle layer below only changes colour, type and radius. *\/\n\n.pwb-give .donation-widget { width: 100%; }\n\n.pwb-give .dw-toggle {\n  display: flex;\n  padding: 4px;\n  margin-bottom: 28px;\n  gap: 4px;\n}\n\n.pwb-give .dw-toggle-btn {\n  flex: 1;\n  padding: 12px 16px;\n  border: none;\n  cursor: pointer;\n  transition: all .2s ease;\n}\n\n.pwb-give .dw-frequency-label {\n  margin-bottom: 10px;\n  text-transform: uppercase;\n}\n\n.pwb-give .dw-amounts {\n  display: grid;\n  grid-template-columns: repeat(4, 1fr);\n  gap: 10px;\n  margin-bottom: 14px;\n}\n\n.pwb-give .dw-amount-btn {\n  padding: 14px 8px;\n  cursor: pointer;\n  transition: all .15s ease;\n}\n\n.pwb-give .dw-custom-amount { margin-bottom: 28px; }\n\n.pwb-give .dw-custom-amount label {\n  display: block;\n  margin-bottom: 6px;\n}\n\n.pwb-give .dw-custom-amount-wrap {\n  display: flex;\n  align-items: center;\n  overflow: hidden;\n  transition: border-color .15s;\n  background: #fff;\n}\n\n.pwb-give .dw-custom-amount-wrap span {\n  padding: 0 14px;\n  font-size: 1.125rem;\n  font-weight: 600;\n  align-self: stretch;\n  display: flex;\n  align-items: center;\n}\n\n.pwb-give .dw-custom-amount-wrap input {\n  flex: 1;\n  padding: 13px 14px;\n  border: none;\n  outline: none;\n  font-size: 1rem;\n  font-weight: 600;\n  background: transparent;\n}\n\n.pwb-give .dw-divider { border: none; border-top: 1px solid; margin: 24px 0; }\n\n.pwb-give .dw-gift-aid { padding: 18px 20px; margin-bottom: 24px; }\n\n.pwb-give .dw-gift-aid-header {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  margin-bottom: 12px;\n  flex-wrap: wrap;\n}\n\n.pwb-give .dw-gift-aid-badge {\n  color: #fff;\n  font-weight: 700;\n  padding: 3px 10px;\n  border-radius: 999px;\n  text-transform: uppercase;\n  white-space: nowrap;\n}\n\n.pwb-give .dw-gift-aid-tagline { margin: 0; }\n\n.pwb-give .dw-checkbox-label {\n  display: flex;\n  align-items: flex-start;\n  gap: 10px;\n  cursor: pointer;\n  line-height: 1.5;\n}\n\n.pwb-give .dw-checkbox-label input[type=\"checkbox\"] {\n  margin-top: 2px;\n  flex-shrink: 0;\n  width: 18px;\n  height: 18px;\n  cursor: pointer;\n}\n\n\/* The script adds .visible; without this pair the Gift Aid fields are\n   exposed for every donation and the checkbox handler does nothing. *\/\n.pwb-give .dw-gift-aid-fields { margin-top: 16px; display: none; }\n.pwb-give .dw-gift-aid-fields.visible { display: block; }\n\n.pwb-give .dw-gift-aid-declaration { padding: 10px 12px; margin-bottom: 14px; line-height: 1.5; }\n\n.pwb-give .dw-form-field { margin-bottom: 14px; }\n\n.pwb-give .dw-form-field label { display: block; margin-bottom: 5px; }\n\n.pwb-give .dw-form-field input {\n  width: 100%;\n  padding: 10px 12px;\n  outline: none;\n  transition: border-color .15s;\n  background: #fff;\n}\n\n.pwb-give .dw-postcode-hint { margin-top: 3px; }\n\n.pwb-give .dw-proceed-btn {\n  width: 100%;\n  padding: 16px;\n  color: #fff;\n  border: none;\n  cursor: pointer;\n  margin-bottom: 8px;\n}\n\n.pwb-give .dw-proceed-btn:disabled { cursor: not-allowed; }\n\n\/* Same again: the container must be hidden until the script fills it. *\/\n.pwb-give .dw-error { display: none; margin-top: 8px; padding: 10px 12px; border: 1px solid; }\n.pwb-give .dw-error.visible { display: block; }\n\n.pwb-give .dw-back-btn {\n  background: none;\n  border: none;\n  cursor: pointer;\n  padding: 0 0 16px 0;\n  display: flex;\n  align-items: center;\n  gap: 4px;\n}\n\n\/* Step 2 stays hidden until Proceed succeeds; without this the Back button\n   and spinner sit under the form on first load. *\/\n.pwb-give #dw-checkout-step { display: none; }\n.pwb-give #dw-checkout-step.visible { display: block; }\n\n.pwb-give .dw-loading {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  padding: 20px 0;\n}\n\n.pwb-give .dw-spinner {\n  width: 20px;\n  height: 20px;\n  border: 3px solid;\n  border-radius: 50%;\n  animation: dwSpin .7s linear infinite;\n  flex-shrink: 0;\n}\n\n@keyframes dwSpin { to { transform: rotate(360deg); } }\n\n.pwb-give .dw-security-note {\n  display: flex;\n  align-items: center;\n  gap: 6px;\n  margin-top: 10px;\n  justify-content: center;\n}\n\n.pwb-give .dw-card-icons {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 8px;\n  margin-top: 12px;\n  flex-wrap: wrap;\n}\n\n.pwb-give .dw-card-icons svg {\n  height: 26px;\n  width: auto;\n  border-radius: 4px;\n  box-shadow: 0 1px 3px rgba(28, 28, 40, .15);\n  display: block;\n}\n\n@media (max-width: 520px) {\n  .pwb-give .dw-amounts { grid-template-columns: repeat(2, 1fr); }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .pwb-give .dw-spinner { animation-duration: 1.4s; }\n}\n\n\/* ------------------------------------------------- Donation form: skin -- *\/\n\n\/* Restyled Stripe widget. Every dw- class and id is untouched \u2014 the script\n   and the Stripe\/REST wiring depend on them \u2014 so this is colour, type and\n   radius only. The blue (#007bff) it shipped with is replaced by Magenta for\n   actions and Purple for focus. *\/\n\n.pwb-give .donation-widget {\n  max-width: none;\n  padding: clamp(22px, 2.8vw, 32px);\n  background: #fff;\n  border: 1px solid var(--pwb-border);\n  border-radius: 12px;\n  box-shadow: 0 1px 2px rgba(28, 28, 40, .05), 0 14px 34px rgba(28, 28, 40, .08);\n  font-family: var(--pwb-body);\n  color: var(--pwb-ink);\n}\n\n.pwb-give .dw-toggle { background: var(--pwb-blush); border-radius: 999px; }\n\n.pwb-give .dw-toggle-btn {\n  border-radius: 999px;\n  font-family: var(--pwb-display);\n  font-weight: 600;\n  font-size: .875rem;\n  color: var(--pwb-ink-soft);\n  min-height: 44px;\n}\n\n.pwb-give .dw-toggle-btn.active {\n  background: #fff;\n  color: var(--pwb-ink);\n  box-shadow: 0 1px 2px rgba(28, 28, 40, .08), 0 4px 10px rgba(28, 28, 40, .08);\n}\n\n.pwb-give .dw-frequency-label {\n  font-family: var(--pwb-display);\n  font-weight: 700;\n  font-size: .6875rem;\n  letter-spacing: .14em;\n  color: var(--pwb-purple);\n}\n\n.pwb-give .dw-amount-btn {\n  min-height: 52px;\n  border: 1.5px solid var(--pwb-border);\n  border-radius: 8px;\n  font-family: var(--pwb-display);\n  font-weight: 700;\n  font-size: 1rem;\n  color: var(--pwb-ink);\n}\n\n.pwb-give .dw-amount-btn:hover { border-color: var(--pwb-purple); color: var(--pwb-purple); }\n\n.pwb-give .dw-amount-btn.active {\n  border-color: var(--pwb-magenta);\n  background: var(--pwb-magenta);\n  color: #fff;\n}\n\n.pwb-give .dw-custom-amount label,\n.pwb-give .dw-form-field label {\n  font-family: var(--pwb-display);\n  font-weight: 600;\n  font-size: .8125rem;\n  color: var(--pwb-ink);\n}\n\n.pwb-give .dw-custom-amount-wrap {\n  border: 1.5px solid var(--pwb-border);\n  border-radius: 8px;\n}\n\n.pwb-give .dw-custom-amount-wrap:focus-within {\n  border-color: var(--pwb-purple);\n  box-shadow: 0 0 0 3px rgba(123, 45, 142, .12);\n}\n\n.pwb-give .dw-custom-amount-wrap span {\n  background: var(--pwb-blush);\n  border-right: 1.5px solid var(--pwb-border);\n  font-family: var(--pwb-display);\n  color: var(--pwb-ink-soft);\n}\n\n.pwb-give .dw-custom-amount-wrap input,\n.pwb-give .dw-form-field input { color: var(--pwb-ink); font-family: var(--pwb-body); }\n\n.pwb-give .dw-divider { border-top-color: var(--pwb-border); }\n\n\/* Gift Aid: Light Pink rather than the stock blue, so it reads as brand\n   emphasis and not as a system notice. *\/\n.pwb-give .dw-gift-aid {\n  background: var(--pwb-lightpink);\n  border: 1px solid rgba(230, 0, 126, .18);\n  border-radius: 12px;\n}\n\n.pwb-give .dw-gift-aid-badge {\n  background: var(--pwb-magenta);\n  font-family: var(--pwb-display);\n  font-size: .6875rem;\n  letter-spacing: .1em;\n}\n\n.pwb-give .dw-gift-aid-tagline {\n  font-family: var(--pwb-display);\n  font-weight: 600;\n  font-size: .875rem;\n  color: var(--pwb-purple);\n}\n\n.pwb-give .dw-checkbox-label { color: var(--pwb-ink); font-size: .875rem; }\n.pwb-give .dw-checkbox-label input[type=\"checkbox\"] { accent-color: var(--pwb-magenta); }\n\n\/* The declaration is the legally operative text, so it stays at full\n   contrast rather than being tinted down. *\/\n.pwb-give .dw-gift-aid-declaration {\n  background: #fff;\n  border-left: 3px solid var(--pwb-magenta);\n  border-radius: 0 8px 8px 0;\n  font-size: .75rem;\n  color: var(--pwb-ink-soft);\n}\n\n.pwb-give .dw-form-field input {\n  min-height: 44px;\n  border: 1.5px solid var(--pwb-border);\n  border-radius: 8px;\n}\n\n.pwb-give .dw-form-field input:focus {\n  border-color: var(--pwb-purple);\n  box-shadow: 0 0 0 3px rgba(123, 45, 142, .12);\n}\n\n.pwb-give .dw-form-field input.invalid { border-color: var(--pwb-terracotta); }\n.pwb-give .dw-postcode-hint { font-size: .75rem; color: var(--pwb-ink-soft); }\n\n.pwb-give .dw-proceed-btn {\n  min-height: 56px;\n  border-radius: 8px;\n  background: var(--pwb-magenta);\n  font-family: var(--pwb-display);\n  font-weight: 700;\n  font-size: .9375rem;\n  letter-spacing: .06em;\n  text-transform: uppercase;\n  box-shadow: 0 6px 18px rgba(230, 0, 126, .22);\n  transition: filter .2s var(--pwb-ease), transform .1s var(--pwb-ease);\n}\n\n.pwb-give .dw-proceed-btn:hover { background: var(--pwb-magenta); filter: brightness(1.08); }\n.pwb-give .dw-proceed-btn:active { transform: scale(.97); }\n\n.pwb-give .dw-proceed-btn:disabled {\n  background: var(--pwb-grey);\n  filter: none;\n  box-shadow: none;\n}\n\n.pwb-give .dw-error {\n  border-radius: 8px;\n  border-color: rgba(232, 98, 58, .4);\n  background: rgba(232, 98, 58, .08);\n  color: #A33A17;\n  font-size: .8125rem;\n}\n\n.pwb-give .dw-back-btn {\n  min-height: 44px;\n  font-family: var(--pwb-display);\n  font-weight: 700;\n  font-size: .8125rem;\n  letter-spacing: .06em;\n  text-transform: uppercase;\n  color: var(--pwb-magenta-80);\n}\n\n.pwb-give .dw-back-btn:hover { color: var(--pwb-purple); }\n\n.pwb-give .dw-spinner { border-color: var(--pwb-border); border-top-color: var(--pwb-magenta); }\n.pwb-give .dw-loading { color: var(--pwb-ink-soft); font-size: .875rem; }\n\n.pwb-give .dw-security-note {\n  gap: 7px;\n  font-size: .75rem;\n  color: var(--pwb-ink-soft);\n}\n\n.pwb-give .dw-security-note svg { width: 13px; height: 13px; flex: none; }\n\n\/* The theme paints bare <button> backgrounds; restate every widget button. *\/\n.pwb-give button.dw-toggle-btn,\n.pwb-give button.dw-amount-btn,\n.pwb-give button.dw-back-btn { background-image: none; }\n\n.pwb-give button.dw-toggle-btn:not(.active),\n.pwb-give button.dw-toggle-btn:not(.active):hover { background-color: transparent; }\n\n.pwb-give button.dw-toggle-btn.active,\n.pwb-give button.dw-toggle-btn.active:hover { background-color: #fff; }\n\n.pwb-give button.dw-amount-btn:not(.active),\n.pwb-give button.dw-amount-btn:not(.active):hover { background-color: #fff; }\n\n.pwb-give button.dw-amount-btn.active,\n.pwb-give button.dw-amount-btn.active:hover { background-color: var(--pwb-magenta); color: #fff; }\n\n.pwb-give button.dw-back-btn,\n.pwb-give button.dw-back-btn:hover { background-color: transparent; }\n\n.pwb-give button.dw-proceed-btn:hover { background-color: var(--pwb-magenta); }\n\n<\/style>\n\n<div class=\"pwb-give\">\n\n  <!-- Why your donation matters -->\n  <section class=\"pwb-give__section\">\n    <div class=\"pwb-give__wrap\">\n      <div class=\"pwb-give__why\">\n        <div class=\"pwb-give__why-copy\" data-reveal>\n          <h2 class=\"pwb-give__title\" data-i18n=\"why-title\">Your donation keeps every programme free<\/h2>\n          <p style=\"margin-top: 20px; margin-bottom: 20px;\" data-i18n=\"why-p1\">By donating to Professors Without Borders you help make quality education accessible to all, and give students in developing countries the means to create positive change in their communities.<\/p>\n          <p data-i18n=\"why-p2\">All of our programmes and events are delivered free of charge, and that is only possible because of our donors. Your donation is what lets us keep taking quality education to where it is needed most.<\/p>\n        <\/div>\n\n        <div class=\"pwb-give__why-form\" data-reveal>\n        <div class=\"donation-widget\"\n             data-i18n-attr=\"data-err-min:dw-err-min,data-err-ga:dw-err-ga,data-err-generic:dw-err-generic\"\n             data-err-min=\"Please enter a donation amount of at least \u00a31.\"\n             data-err-ga=\"Please complete all Gift Aid fields with valid information.\"\n             data-err-generic=\"Something went wrong. Please try again.\">\n\n          <!-- Step 1: amount, frequency, Gift Aid -->\n          <div id=\"dw-form-step\">\n\n            <div class=\"dw-toggle\" role=\"group\" data-i18n-attr=\"aria-label:dw-freq-group\" aria-label=\"Giving frequency\">\n              <button class=\"dw-toggle-btn active\" data-mode=\"payment\" type=\"button\" data-i18n=\"dw-once\">Give Once<\/button>\n              <button class=\"dw-toggle-btn\" data-mode=\"subscription\" type=\"button\" data-i18n=\"dw-monthly\">Give Monthly<\/button>\n            <\/div>\n\n            <!-- The two label variants live here rather than in the script, so\n                 both go through the same translation pass as the rest. -->\n            <p class=\"dw-frequency-label\" id=\"dw-frequency-label\"\n               data-i18n-attr=\"data-once:dw-label-once,data-monthly:dw-label-monthly\"\n               data-once=\"Choose your amount\" data-monthly=\"Choose your monthly amount\"\n               data-i18n=\"dw-label-once\">Choose your amount<\/p>\n\n            <div class=\"dw-amounts\" id=\"dw-amounts\">\n              <button class=\"dw-amount-btn\" data-amount=\"500\" type=\"button\">&pound;5<\/button>\n              <button class=\"dw-amount-btn active\" data-amount=\"1000\" type=\"button\">&pound;10<\/button>\n              <button class=\"dw-amount-btn\" data-amount=\"2500\" type=\"button\">&pound;25<\/button>\n              <button class=\"dw-amount-btn\" data-amount=\"5000\" type=\"button\">&pound;50<\/button>\n            <\/div>\n\n            <div class=\"dw-custom-amount\">\n              <label for=\"dw-custom-input\" data-i18n=\"dw-custom\">Or enter your own amount<\/label>\n              <div class=\"dw-custom-amount-wrap\">\n                <span>&pound;<\/span>\n                <input type=\"number\" id=\"dw-custom-input\" min=\"1\" step=\"1\" placeholder=\"0.00\"\n                       data-i18n-attr=\"aria-label:dw-custom-aria\" aria-label=\"Custom donation amount in pounds\">\n              <\/div>\n            <\/div>\n\n            <hr class=\"dw-divider\">\n\n            <div class=\"dw-gift-aid\">\n              <div class=\"dw-gift-aid-header\">\n                <span class=\"dw-gift-aid-badge\">Gift Aid<\/span>\n                <p class=\"dw-gift-aid-tagline\" data-i18n=\"dw-ga-tagline\">Boost your donation by 25%, at no cost to you<\/p>\n              <\/div>\n\n              <label class=\"dw-checkbox-label\">\n                <input type=\"checkbox\" id=\"dw-gift-aid-check\">\n                <span data-i18n=\"dw-ga-consent\">I am a UK taxpayer and would like <strong>Professors Without Borders<\/strong> to claim Gift Aid on this donation and any donations I make in the future or have made in the past 4 years.<\/span>\n              <\/label>\n\n              <div class=\"dw-gift-aid-fields\" id=\"dw-gift-aid-fields\">\n                <p class=\"dw-gift-aid-declaration\" data-i18n=\"dw-ga-declaration\">I understand I must pay an amount of Income Tax and\/or Capital Gains Tax at least equal to the tax that <strong>Professors Without Borders<\/strong> reclaims on my donations in each tax year (currently 25p for every &pound;1 I give). Please notify us if you no longer pay sufficient tax or change address.<\/p>\n\n                <div class=\"dw-form-field\">\n                  <label for=\"dw-ga-name\" data-i18n=\"dw-ga-name-l\">Full name <span aria-hidden=\"true\">*<\/span><\/label>\n                  <input type=\"text\" id=\"dw-ga-name\" autocomplete=\"name\"\n                         data-i18n-attr=\"placeholder:dw-ga-name-p\" placeholder=\"As it appears on your tax return\">\n                <\/div>\n\n                <div class=\"dw-form-field\">\n                  <label for=\"dw-ga-address\" data-i18n=\"dw-ga-addr-l\">House name or number <span aria-hidden=\"true\">*<\/span><\/label>\n                  <input type=\"text\" id=\"dw-ga-address\" autocomplete=\"address-line1\"\n                         data-i18n-attr=\"placeholder:dw-ga-addr-p\" placeholder=\"e.g. 42 or Rose Cottage\">\n                  <p class=\"dw-postcode-hint\" data-i18n=\"dw-ga-addr-hint\">Required by HMRC for Gift Aid reclaim.<\/p>\n                <\/div>\n\n                <div class=\"dw-form-field\">\n                  <label for=\"dw-ga-postcode\" data-i18n=\"dw-ga-pc-l\">Postcode <span aria-hidden=\"true\">*<\/span><\/label>\n                  <input type=\"text\" id=\"dw-ga-postcode\" autocomplete=\"postal-code\"\n                         data-i18n-attr=\"placeholder:dw-ga-pc-p\" placeholder=\"e.g. SW1A 1AA\"\n                         style=\"text-transform: uppercase;\" maxlength=\"8\">\n                <\/div>\n              <\/div>\n            <\/div>\n\n            <!-- Button labels as data attributes: the script rewrites this\n                 button's text, so a nested span would be destroyed. -->\n            <button class=\"dw-proceed-btn\" id=\"dw-proceed-btn\" type=\"button\"\n                    data-i18n-attr=\"data-idle:dw-proceed,data-wait:dw-wait\"\n                    data-idle=\"Proceed to payment\" data-wait=\"Please wait&hellip;\">Proceed to payment<\/button>\n\n            <div class=\"dw-error\" id=\"dw-error\" role=\"alert\"><\/div>\n\n            <p class=\"dw-security-note\">\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M6 10V8a6 6 0 1 1 12 0v2\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><rect x=\"4\" y=\"10\" width=\"16\" height=\"11\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"2\"\/><\/svg>\n              <span data-i18n=\"dw-secure\">Secure payment powered by Stripe<\/span>\n            <\/p>\n            <div class=\"dw-card-icons\" data-i18n-attr=\"aria-label:dw-methods\" aria-label=\"Accepted payment methods\">\n              <svg viewBox=\"0 0 50 32\" role=\"img\" aria-label=\"Visa\">\n                <rect width=\"50\" height=\"32\" rx=\"4\" fill=\"#1A1F71\"\/>\n                <text x=\"50%\" y=\"57%\" dominant-baseline=\"middle\" text-anchor=\"middle\" font-family=\"Arial, sans-serif\" font-size=\"13\" font-weight=\"700\" font-style=\"italic\" fill=\"#fff\" letter-spacing=\"0.5\">VISA<\/text>\n              <\/svg>\n              <svg viewBox=\"0 0 50 32\" role=\"img\" aria-label=\"Mastercard\">\n                <rect width=\"50\" height=\"32\" rx=\"4\" fill=\"#252525\"\/>\n                <circle cx=\"19\" cy=\"16\" r=\"9\" fill=\"#EB001B\"\/>\n                <circle cx=\"31\" cy=\"16\" r=\"9\" fill=\"#F79E1B\"\/>\n                <path d=\"M25 9.3a9 9 0 0 1 0 13.4A9 9 0 0 1 25 9.3z\" fill=\"#FF5F00\"\/>\n              <\/svg>\n              <svg viewBox=\"0 0 50 32\" role=\"img\" aria-label=\"American Express\">\n                <rect width=\"50\" height=\"32\" rx=\"4\" fill=\"#2557D6\"\/>\n                <text x=\"50%\" y=\"40%\" dominant-baseline=\"middle\" text-anchor=\"middle\" font-family=\"Arial, sans-serif\" font-size=\"7.5\" font-weight=\"700\" fill=\"#fff\" letter-spacing=\"0.3\">AMERICAN<\/text>\n                <text x=\"50%\" y=\"68%\" dominant-baseline=\"middle\" text-anchor=\"middle\" font-family=\"Arial, sans-serif\" font-size=\"7.5\" font-weight=\"700\" fill=\"#fff\" letter-spacing=\"0.3\">EXPRESS<\/text>\n              <\/svg>\n              <svg viewBox=\"0 0 50 32\" role=\"img\" aria-label=\"Maestro\">\n                <rect width=\"50\" height=\"32\" rx=\"4\" fill=\"#fff\" stroke=\"#e0e0e0\"\/>\n                <circle cx=\"19\" cy=\"14\" r=\"8.5\" fill=\"#EB001B\"\/>\n                <circle cx=\"31\" cy=\"14\" r=\"8.5\" fill=\"#0099DF\"\/>\n                <path d=\"M25 7.6a8.5 8.5 0 0 1 0 12.8A8.5 8.5 0 0 1 25 7.6z\" fill=\"#7B3EA0\"\/>\n                <text x=\"50%\" y=\"93%\" dominant-baseline=\"middle\" text-anchor=\"middle\" font-family=\"Arial, sans-serif\" font-size=\"5.5\" font-weight=\"600\" fill=\"#333\">maestro<\/text>\n              <\/svg>\n              <svg viewBox=\"0 0 50 32\" role=\"img\" aria-label=\"Apple Pay\">\n                <rect width=\"50\" height=\"32\" rx=\"4\" fill=\"#000\"\/>\n                <text x=\"50%\" y=\"55%\" dominant-baseline=\"middle\" text-anchor=\"middle\" font-family=\"Arial, sans-serif\" font-size=\"8.5\" font-weight=\"600\" fill=\"#fff\" letter-spacing=\"0.1\">Apple Pay<\/text>\n              <\/svg>\n              <svg viewBox=\"0 0 50 32\" role=\"img\" aria-label=\"Google Pay\">\n                <rect width=\"50\" height=\"32\" rx=\"4\" fill=\"#fff\" stroke=\"#e0e0e0\"\/>\n                <text x=\"50%\" y=\"55%\" dominant-baseline=\"middle\" text-anchor=\"middle\" font-family=\"Arial, sans-serif\" font-size=\"8.5\" font-weight=\"600\" fill=\"#5F6368\" letter-spacing=\"0.1\">Google Pay<\/text>\n              <\/svg>\n            <\/div>\n          <\/div>\n\n          <!-- Step 2: Stripe embedded checkout -->\n          <div id=\"dw-checkout-step\">\n            <button class=\"dw-back-btn\" id=\"dw-back-btn\" type=\"button\" data-i18n=\"dw-back\">&larr; Back<\/button>\n            <div id=\"dw-loading\" class=\"dw-loading\">\n              <div class=\"dw-spinner\"><\/div>\n              <span data-i18n=\"dw-loading\">Loading secure payment form&hellip;<\/span>\n            <\/div>\n            <div id=\"dw-checkout\"><\/div>\n          <\/div>\n\n        <\/div>\n        <\/div>\n        <figure class=\"pwb-give__photo\" data-reveal>\n          <img loading=\"lazy\" src=\"https:\/\/prowibo.org\/wp-content\/uploads\/2024\/11\/Uganda_2_2024-1024x682.png\" alt=\"\" width=\"1024\" height=\"682\" loading=\"lazy\" decoding=\"async\">\n        <\/figure>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- Gift Aid -->\n  <section class=\"pwb-give__giftaid pwb-give__bleed\">\n    <div class=\"pwb-give__wrap\">\n      <div class=\"pwb-give__giftaid-inner\" data-reveal>\n        <div class=\"pwb-give__giftaid-copy\">\n          <p class=\"pwb-give__eyebrow\" style=\"color: var(--pwb-gold);\" data-i18n=\"ga-eyebrow\">UK taxpayers<\/p>\n          <h2 class=\"pwb-give__h2\" style=\"margin-top: 10px;\" data-i18n=\"ga-title\">Gift Aid adds a quarter, at no cost to you<\/h2>\n          <p data-i18n=\"ga-p\">If you pay UK tax, ticking the Gift Aid box on the donation form lets us reclaim around 25p for every &pound;1 you give. It does not cost you a penny more.<\/p>\n        <\/div>\n        <div class=\"pwb-give__boost\">\n          <span class=\"pwb-give__boost-k\">+25%<\/span>\n          <span class=\"pwb-give__boost-l\" data-i18n=\"ga-boost\">On your gift<\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- What an amount covers -->\n  <section class=\"pwb-give__amounts pwb-give__bleed\">\n    <div class=\"pwb-give__wrap\">\n      <div class=\"pwb-give__amounts-head\" data-reveal>\n        <h2 class=\"pwb-give__h2\" data-i18n=\"amt-title\">How we spend your donation<\/h2>\n        <p class=\"pwb-give__amounts-lede\" data-i18n=\"amt-lede\">95% of our costs go towards our charitable activities.<sup class=\"pwb-give__ref\">&dagger;<\/sup><\/p>\n      <\/div>\n\n      <ul class=\"pwb-give__tiers\">\n        <li class=\"pwb-give__tier\" data-reveal>\n          <span class=\"pwb-give__amount\">&pound;40<\/span>\n          <p data-i18n=\"tier-1\">Covers the average cost of one student taking part in one of our programmes.<\/p>\n        <\/li>\n        <li class=\"pwb-give__tier\" data-reveal>\n          <span class=\"pwb-give__amount\">&pound;300&ndash;&pound;500<\/span>\n          <p data-i18n=\"tier-2\">Covers local expenses for one of our professors while they are teaching abroad.<\/p>\n        <\/li>\n        <li class=\"pwb-give__tier\" data-reveal>\n          <span class=\"pwb-give__amount\">&pound;1,500<\/span>\n          <p data-i18n=\"tier-3\">Covers one professor teaching abroad for two weeks, including flights, accommodation, visa and insurance.<\/p>\n        <\/li>\n        <li class=\"pwb-give__tier\" data-reveal>\n          <span class=\"pwb-give__amount\">&pound;5,000&ndash;&pound;8,000<\/span>\n          <p data-i18n=\"tier-4\">Covers a full programme: travel and accommodation for our professors, plus all teaching and learning equipment.<\/p>\n        <\/li>\n      <\/ul>\n\n      <p class=\"pwb-give__footnote\" data-reveal>\n        <span class=\"pwb-give__ref\" aria-hidden=\"true\">&dagger;<\/span>\n        <span data-i18n=\"amt-note\">As per our FY25 accounts.<\/span>\n      <\/p>\n    <\/div>\n  <\/section>\n  <section class=\"pwb-give__section\">\n    <div class=\"pwb-give__wrap\">\n      <div data-reveal>\n        <h2 class=\"pwb-give__h2\" data-i18n=\"ways-title\">Other ways to give<\/h2>\n      <\/div>\n\n      <div class=\"pwb-give__ways\">\n\n        <div class=\"pwb-give__way\" data-reveal>\n          <span class=\"pwb-give__way-tag\" data-i18n=\"way-1-tag\">One-off or recurring<\/span>\n          <h3 class=\"pwb-give__h3\" data-i18n=\"way-1-title\">PayPal<\/h3>\n          <p data-i18n=\"way-1-p\">If your card or payment method is not accepted by the form above, or if you would rather give from a PayPal balance than a card. Set it up as a one-off gift or a recurring monthly donation.<\/p>\n          <a class=\"pwb-give__way-link\" href=\"https:\/\/www.paypal.com\/donate\" target=\"_blank\" rel=\"noopener\">\n            <span data-i18n=\"way-1-cta\">Give via PayPal<\/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\n        <div class=\"pwb-give__way\" data-reveal>\n          <span class=\"pwb-give__way-tag\" data-i18n=\"way-2-tag\">Best value for us<\/span>\n          <h3 class=\"pwb-give__h3\" data-i18n=\"way-2-title\">Payroll giving<\/h3>\n          <p data-i18n=\"way-2-p\">Your donation comes straight out of your salary before tax, so it costs you less than it gives us. We have teamed up with GoodPAYE, a charity-owned provider, to make this easy for UK employees.<\/p>\n          <p class=\"pwb-give__example\" data-i18n=\"way-2-example\">Give <b>&pound;10<\/b> a month on the 20% tax rate and your take-home pay drops by <b>&pound;8<\/b>.<\/p>\n          <ul class=\"pwb-give__benefits\">\n            <li><svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span data-i18n=\"way-2-b1\">Automatic once it is set up<\/span><\/li>\n            <li><svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span data-i18n=\"way-2-b2\">Tax-free, so we receive more at no extra cost to you<\/span><\/li>\n            <li><svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span data-i18n=\"way-2-b3\">We keep 100% of what you give<\/span><\/li>\n          <\/ul>\n          <p style=\"margin-top: 14px; font-size: .8125rem;\" data-i18n=\"way-2-note\">We need to check your employer runs a payroll giving scheme first, but once you send your form, GoodPAYE starts that process for you.<\/p>\n          <a class=\"pwb-give__way-link\" href=\"https:\/\/goodpaye.com\/change-the-world-while-you-work\/\" target=\"_blank\" rel=\"noopener\">\n            <span data-i18n=\"way-2-cta\">Give via payroll<\/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\n        <div class=\"pwb-give__way\" data-reveal>\n          <span class=\"pwb-give__way-tag\" data-i18n=\"way-3-tag\">Costs you nothing<\/span>\n          <h3 class=\"pwb-give__h3\" data-i18n=\"way-3-title\">Shop online and raise funds<\/h3>\n          <p data-i18n=\"way-3-p\">Sign up with Give as you Live and choose us as your charity. When you shop online with thousands of stores, a percentage of what you spend is donated to us at no additional cost to you.<\/p>\n          <a class=\"pwb-give__way-link\" href=\"https:\/\/www.giveasyoulive.com\/join\/prowibo\" target=\"_blank\" rel=\"noopener\">\n            <span data-i18n=\"way-3-cta\">Sign up to Give as you Live<\/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\n      <\/div>\n    <\/div>\n  <\/section>\n\n<\/div>\n\n<!-- Stripe.js \u2014 always loaded from js.stripe.com for PCI compliance. -->\n<script src=\"https:\/\/js.stripe.com\/v3\/\"><\/script>\n\n<script>\n(function () {\n  'use strict';\n\n  \/\/ \u2500\u2500 Configuration \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  var STRIPE_PUBLISHABLE_KEY = 'pk_live_51PT5SdJom43e0dTloZSxrW1SErpag3oXktbfwadgr17SYNhP6BQY7qh09HGFkZjJpVRFRtHznhm5xpTSQLCBoOds00fFF62i8P';\n\n  \/\/ WordPress REST API base (auto-detected from page URL)\n  var API_BASE = (function () {\n    var loc = window.location;\n    return loc.protocol + '\/\/' + loc.host + '\/wp-json\/donation\/v1';\n  })();\n\n  \/\/ \u2500\u2500 State \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  var selectedMode   = 'payment';   \/\/ 'payment' | 'subscription'\n  var selectedAmount = 1000;        \/\/ in pence\n  var checkoutInstance = null;\n\n  \/\/ \u2500\u2500 Element refs \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  var widget         = document.querySelector('.donation-widget');\n  var formStep       = document.getElementById('dw-form-step');\n  var checkoutStep   = document.getElementById('dw-checkout-step');\n  var proceedBtn     = document.getElementById('dw-proceed-btn');\n  var backBtn        = document.getElementById('dw-back-btn');\n  var errorEl        = document.getElementById('dw-error');\n  var loadingEl      = document.getElementById('dw-loading');\n  var frequencyLabel = document.getElementById('dw-frequency-label');\n  var giftAidCheck   = document.getElementById('dw-gift-aid-check');\n  var giftAidFields  = document.getElementById('dw-gift-aid-fields');\n  var customInput    = document.getElementById('dw-custom-input');\n\n  if (!widget || !proceedBtn) { return; }\n\n  \/* Every user-facing string is read from a data attribute rather than\n     written here, so the page's language pass can translate it \u2014 a string\n     living in JS can never be reached by TranslatePress or by the FR\n     dictionary above. *\/\n  function t(el, attr, fallback) {\n    var v = el && el.getAttribute(attr);\n    return v || fallback;\n  }\n\n  \/\/ \u2500\u2500 Toggle: One-time \/ Monthly \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  document.querySelectorAll('.dw-toggle-btn').forEach(function (btn) {\n    btn.addEventListener('click', function () {\n      document.querySelectorAll('.dw-toggle-btn').forEach(function (b) {\n        b.classList.remove('active');\n      });\n      btn.classList.add('active');\n      selectedMode = btn.getAttribute('data-mode');\n\n      frequencyLabel.textContent = selectedMode === 'subscription'\n        ? t(frequencyLabel, 'data-monthly', 'Choose your monthly amount')\n        : t(frequencyLabel, 'data-once', 'Choose your amount');\n    });\n  });\n\n  \/\/ \u2500\u2500 Amount buttons \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  document.querySelectorAll('.dw-amount-btn').forEach(function (btn) {\n    btn.addEventListener('click', function () {\n      document.querySelectorAll('.dw-amount-btn').forEach(function (b) {\n        b.classList.remove('active');\n      });\n      btn.classList.add('active');\n      selectedAmount = parseInt(btn.getAttribute('data-amount'), 10);\n      customInput.value = '';\n      hideError();\n    });\n  });\n\n  \/\/ \u2500\u2500 Custom amount input \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  customInput.addEventListener('input', function () {\n    var val = parseFloat(customInput.value);\n    document.querySelectorAll('.dw-amount-btn').forEach(function (b) {\n      b.classList.remove('active');\n    });\n    if (!isNaN(val) && val > 0) {\n      selectedAmount = Math.round(val * 100); \/\/ convert \u00a3 to pence\n    } else {\n      selectedAmount = 0;\n    }\n    hideError();\n  });\n\n  \/\/ \u2500\u2500 Gift Aid toggle \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  giftAidCheck.addEventListener('change', function () {\n    if (giftAidCheck.checked) {\n      giftAidFields.classList.add('visible');\n    } else {\n      giftAidFields.classList.remove('visible');\n      clearGiftAidValidation();\n    }\n  });\n\n  \/\/ \u2500\u2500 Helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function showError(msg) {\n    errorEl.textContent = msg;\n    errorEl.classList.add('visible');\n  }\n\n  function hideError() {\n    errorEl.classList.remove('visible');\n    errorEl.textContent = '';\n  }\n\n  function setLoading(loading) {\n    proceedBtn.disabled = loading;\n    proceedBtn.textContent = loading\n      ? t(proceedBtn, 'data-wait', 'Please wait\u2026')\n      : t(proceedBtn, 'data-idle', 'Proceed to payment');\n  }\n\n  function clearGiftAidValidation() {\n    ['dw-ga-name', 'dw-ga-address', 'dw-ga-postcode'].forEach(function (id) {\n      var el = document.getElementById(id);\n      if (el) el.classList.remove('invalid');\n    });\n  }\n\n  function isValidPostcode(pc) {\n    return \/^[A-Z]{1,2}\\d[A-Z\\d]?\\s?\\d[A-Z]{2}$\/i.test(pc.trim());\n  }\n\n  \/\/ \u2500\u2500 Validation \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function validate() {\n    hideError();\n    clearGiftAidValidation();\n\n    if (!selectedAmount || selectedAmount < 100) {\n      showError(t(widget, 'data-err-min', 'Please enter a donation amount of at least \u00a31.'));\n      return false;\n    }\n\n    if (giftAidCheck.checked) {\n      var name     = document.getElementById('dw-ga-name').value.trim();\n      var address  = document.getElementById('dw-ga-address').value.trim();\n      var postcode = document.getElementById('dw-ga-postcode').value.trim();\n      var valid    = true;\n\n      if (!name) {\n        document.getElementById('dw-ga-name').classList.add('invalid');\n        valid = false;\n      }\n      if (!address) {\n        document.getElementById('dw-ga-address').classList.add('invalid');\n        valid = false;\n      }\n      if (!postcode || !isValidPostcode(postcode)) {\n        document.getElementById('dw-ga-postcode').classList.add('invalid');\n        valid = false;\n      }\n      if (!valid) {\n        showError(t(widget, 'data-err-ga', 'Please complete all Gift Aid fields with valid information.'));\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  \/\/ \u2500\u2500 Proceed to Stripe \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  proceedBtn.addEventListener('click', async function () {\n    if (!validate()) return;\n\n    setLoading(true);\n\n    var giftAidData = { opted_in: false };\n    if (giftAidCheck.checked) {\n      giftAidData = {\n        opted_in: true,\n        name:     document.getElementById('dw-ga-name').value.trim(),\n        address:  document.getElementById('dw-ga-address').value.trim(),\n        postcode: document.getElementById('dw-ga-postcode').value.trim().toUpperCase(),\n      };\n    }\n\n    try {\n      \/\/ 1. Create Stripe session via WordPress REST API\n      var response = await fetch(API_BASE + '\/create-session', {\n        method:  'POST',\n        headers: { 'Content-Type': 'application\/json' },\n        body: JSON.stringify({\n          mode:     selectedMode,\n          amount:   selectedAmount,\n          gift_aid: giftAidData,\n        }),\n      });\n\n      var data = await response.json();\n\n      if (data.error || !data.clientSecret) {\n        throw new Error(data.error || t(widget, 'data-err-generic', 'Something went wrong. Please try again.'));\n      }\n\n      \/\/ 2. Show checkout step\n      formStep.style.display     = 'none';\n      checkoutStep.style.display = 'block';\n      checkoutStep.classList.add('visible');\n\n      \/\/ 3. Mount Stripe Embedded Checkout\n      var stripe = Stripe(STRIPE_PUBLISHABLE_KEY);\n\n      checkoutInstance = await stripe.initEmbeddedCheckout({\n        fetchClientSecret: function () {\n          return Promise.resolve(data.clientSecret);\n        },\n      });\n\n      loadingEl.style.display = 'none';\n      checkoutInstance.mount('#dw-checkout');\n\n    } catch (err) {\n      setLoading(false);\n      showError(err.message || t(widget, 'data-err-generic', 'Something went wrong. Please try again.'));\n      formStep.style.display     = 'block';\n      checkoutStep.style.display = 'none';\n    }\n  });\n\n  \/\/ \u2500\u2500 Back button \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  backBtn.addEventListener('click', function () {\n    if (checkoutInstance) {\n      checkoutInstance.destroy();\n      checkoutInstance = null;\n    }\n    document.getElementById('dw-checkout').innerHTML = '';\n    loadingEl.style.display    = 'flex';\n    checkoutStep.style.display = 'none';\n    checkoutStep.classList.remove('visible');\n    formStep.style.display = 'block';\n    setLoading(false);\n    hideError();\n  });\n\n})();\n<\/script>\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 attributes in the markup above. Provider names\n     (PayPal, GoodPAYE, Give as you Live) and \"Gift Aid\" \u2014 a named UK tax\n     scheme with no French equivalent \u2014 carry no key or stay as written.\n     ------------------------------------------------------------------------ *\/\n  var FR = {\n    \"why-eyebrow\": \"&Agrave; quoi sert votre don\",\n    \"dw-freq-group\": \"Fr&eacute;quence du don\",\n    \"dw-once\": \"Un seul don\",\n    \"dw-monthly\": \"Don mensuel\",\n    \"dw-label-once\": \"Choisissez votre montant\",\n    \"dw-label-monthly\": \"Choisissez votre montant mensuel\",\n    \"dw-custom\": \"Ou saisissez votre propre montant\",\n    \"dw-custom-aria\": \"Montant du don en livres sterling\",\n    \"dw-ga-tagline\": \"Augmentez votre don de 25&nbsp;%, sans frais pour vous\",\n    \"dw-ga-consent\": \"Je suis contribuable au Royaume-Uni et je souhaite que <strong>Professors Without Borders<\/strong> b&eacute;n&eacute;ficie du Gift Aid sur ce don ainsi que sur tous les dons que je pourrais faire &agrave; l&rsquo;avenir ou que j&rsquo;ai faits au cours des 4 derni&egrave;res ann&eacute;es.\",\n    \"dw-ga-declaration\": \"Je comprends que je dois acquitter un montant d&rsquo;imp&ocirc;t sur le revenu et\/ou sur les plus-values au moins &eacute;gal &agrave; l&rsquo;imp&ocirc;t que <strong>Professors Without Borders<\/strong> r&eacute;cup&egrave;re sur mes dons au cours de chaque ann&eacute;e fiscale (actuellement 25 pence pour chaque livre vers&eacute;e). Merci de nous informer si vous ne payez plus suffisamment d&rsquo;imp&ocirc;t ou si vous changez d&rsquo;adresse.\",\n    \"dw-ga-name-l\": \"Nom complet <span aria-hidden=\\\"true\\\">*<\/span>\",\n    \"dw-ga-name-p\": \"Tel qu&rsquo;il appara&icirc;t sur votre d&eacute;claration d&rsquo;imp&ocirc;ts\",\n    \"dw-ga-addr-l\": \"Nom ou num&eacute;ro du domicile <span aria-hidden=\\\"true\\\">*<\/span>\",\n    \"dw-ga-addr-p\": \"ex. 42 ou Rose Cottage\",\n    \"dw-ga-addr-hint\": \"Exig&eacute; par le HMRC pour le Gift Aid.\",\n    \"dw-ga-pc-l\": \"Code postal <span aria-hidden=\\\"true\\\">*<\/span>\",\n    \"dw-ga-pc-p\": \"ex. SW1A 1AA\",\n    \"dw-proceed\": \"Passer au paiement\",\n    \"dw-wait\": \"Veuillez patienter&hellip;\",\n    \"dw-secure\": \"Paiement s&eacute;curis&eacute; via Stripe\",\n    \"dw-methods\": \"Moyens de paiement accept&eacute;s\",\n    \"dw-back\": \"&larr; Retour\",\n    \"dw-loading\": \"Chargement du formulaire de paiement s&eacute;curis&eacute;&hellip;\",\n    \"dw-err-min\": \"Veuillez saisir un montant d&rsquo;au moins 1&nbsp;&pound;.\",\n    \"dw-err-ga\": \"Veuillez compl&eacute;ter tous les champs Gift Aid avec des informations valides.\",\n    \"dw-err-generic\": \"Une erreur est survenue. Veuillez r&eacute;essayer.\",\n    \"why-title\": \"Votre don permet &agrave; chaque programme de rester gratuit\",\n    \"why-p1\": \"En faisant un don &agrave; Professors Without Borders, vous contribuez &agrave; rendre une &eacute;ducation de qualit&eacute; accessible &agrave; tous et vous donnez aux &eacute;tudiants des pays en d&eacute;veloppement les moyens d&rsquo;agir positivement dans leurs communaut&eacute;s.\",\n    \"why-p2\": \"Tous nos programmes et &eacute;v&eacute;nements sont propos&eacute;s gratuitement, ce qui n&rsquo;est possible que gr&acirc;ce &agrave; nos donateurs. Votre don est ce qui nous permet de continuer &agrave; porter une &eacute;ducation de qualit&eacute; l&agrave; o&ugrave; elle est la plus n&eacute;cessaire.\",\n\n    \"ga-eyebrow\": \"Contribuables britanniques\",\n    \"ga-title\": \"Le Gift Aid ajoute un quart de votre don, sans rien vous co&ucirc;ter\",\n    \"ga-p\": \"Si vous payez des imp&ocirc;ts au Royaume-Uni, cocher la case Gift Aid sur le formulaire de don nous permet de r&eacute;cup&eacute;rer environ 25 pence pour chaque livre vers&eacute;e. Cela ne vous co&ucirc;te pas un centime de plus.\",\n    \"ga-boost\": \"Sur votre don\",\n\n    \"amt-title\": \"Comment nous utilisons votre don\",\n    \"amt-lede\": \"95&nbsp;% de nos d&eacute;penses sont consacr&eacute;es &agrave; nos activit&eacute;s caritatives.\",\n    \"amt-note\": \"Selon nos comptes de l&rsquo;exercice 2025.\",\n    \"tier-1\": \"Couvre le co&ucirc;t moyen de la participation d&rsquo;un &eacute;tudiant &agrave; l&rsquo;un de nos programmes.\",\n    \"tier-2\": \"Couvre les frais locaux de l&rsquo;un de nos professeurs pendant qu&rsquo;il enseigne &agrave; l&rsquo;&eacute;tranger.\",\n    \"tier-3\": \"Couvre deux semaines d&rsquo;enseignement &agrave; l&rsquo;&eacute;tranger pour un professeur, vols, h&eacute;bergement, visa et assurance compris.\",\n    \"tier-4\": \"Couvre un programme complet&nbsp;: voyage et h&eacute;bergement de nos professeurs, ainsi que tout le mat&eacute;riel p&eacute;dagogique.\",\n\n    \"ways-title\": \"Autres fa&ccedil;ons de donner\",\n    \"way-1-tag\": \"Ponctuel ou r&eacute;current\",\n    \"way-1-title\": \"PayPal\",\n    \"way-1-p\": \"Si votre carte ou votre moyen de paiement n&rsquo;est pas accept&eacute; par le formulaire ci-dessus, ou si vous pr&eacute;f&eacute;rez donner depuis un solde PayPal plut&ocirc;t que par carte. Vous pouvez choisir un don ponctuel ou un don mensuel r&eacute;current.\",\n    \"way-1-cta\": \"Donner via PayPal\",\n\n    \"way-2-tag\": \"Le plus avantageux pour nous\",\n    \"way-2-title\": \"Don sur salaire\",\n    \"way-2-p\": \"Votre don est pr&eacute;lev&eacute; directement sur votre salaire avant imp&ocirc;t&nbsp;: il vous co&ucirc;te donc moins qu&rsquo;il ne nous rapporte. Nous nous sommes associ&eacute;s &agrave; GoodPAYE, un prestataire d&eacute;tenu par des associations, pour simplifier la d&eacute;marche aux salari&eacute;s britanniques.\",\n    \"way-2-example\": \"Donnez <b>10&nbsp;&pound;<\/b> par mois au taux d&rsquo;imposition de 20&nbsp;% et votre salaire net ne diminue que de <b>8&nbsp;&pound;<\/b>.\",\n    \"way-2-b1\": \"Automatique une fois mis en place\",\n    \"way-2-b2\": \"Exon&eacute;r&eacute; d&rsquo;imp&ocirc;t&nbsp;: nous recevons davantage sans co&ucirc;t suppl&eacute;mentaire pour vous\",\n    \"way-2-b3\": \"Nous conservons 100&nbsp;% de votre don\",\n    \"way-2-note\": \"Nous devons d&rsquo;abord v&eacute;rifier que votre employeur dispose d&rsquo;un dispositif de don sur salaire, mais d&egrave;s l&rsquo;envoi de votre formulaire, GoodPAYE engage cette d&eacute;marche pour vous.\",\n    \"way-2-cta\": \"Donner sur salaire\",\n\n    \"way-3-tag\": \"Ne vous co&ucirc;te rien\",\n    \"way-3-title\": \"Faites vos achats en ligne et collectez des fonds\",\n    \"way-3-p\": \"Inscrivez-vous sur Give as you Live et choisissez-nous comme association b&eacute;n&eacute;ficiaire. Lorsque vous faites vos achats en ligne dans des milliers d&rsquo;enseignes, un pourcentage de vos d&eacute;penses nous est vers&eacute;, sans co&ucirc;t suppl&eacute;mentaire pour vous.\",\n    \"way-3-cta\": \"S&rsquo;inscrire &agrave; Give as you Live\"\n  };\n\n  var roots = document.querySelectorAll(\".pwb-give\");\n  if (!roots.length) { return; }\n\n  var reduceMotion = window.matchMedia\n    && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n  function pwbGiveDetectLang() {\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-give--js\");\n\n    function applyLang(lang) {\n      var isFR = lang === \"fr\";\n\n      \/* innerHTML rather than textContent \u2014 the payroll example carries <b>\n         emphasis, and this is what lets the French value keep it. Authored\n         copy only. Never nest a key inside a keyed element: the parent's\n         write destroys the child. *\/\n      root.querySelectorAll(\"[data-i18n]\").forEach(function (el) {\n        if (!textCache.has(el)) { textCache.set(el, el.innerHTML); }\n        var k = el.getAttribute(\"data-i18n\");\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    }\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    }\n\n    applyLang(pwbGiveDetectLang());\n    appliers.push(applyLang);\n\n    if (reduceMotion || !(\"IntersectionObserver\" in window)) {\n      revealAll();\n      return;\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        observer.unobserve(entry.target);\n      });\n    }, { rootMargin: \"0px 0px -6% 0px\", threshold: 0.05 });\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.pwbGiveSetLang = 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 = pwbGiveDetectLang();\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>Your donation keeps every programme free By donating to Professors Without Borders you help make quality education accessible to all, and give students in developing countries the means to create positive change in their communities. All of our programmes and events are delivered free of charge, and that is only possible because of our donors. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":14448,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-15056","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Donate to Professors Without Borders | Gift Aid<\/title>\n<meta name=\"description\" content=\"Your donation keeps every programme free and takes quality education where it is needed most. UK taxpayers can add 25% through Gift Aid at no extra cost.\" \/>\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\/donate\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Donate to Professors Without Borders | Gift Aid\" \/>\n<meta property=\"og:description\" content=\"Your donation keeps every programme free and takes quality education where it is needed most. UK taxpayers can add 25% through Gift Aid at no extra cost.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prowibo.org\/fr\/donate\/\" \/>\n<meta property=\"og:site_name\" content=\"Professors Without Borders\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-10T13:32:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prowibo.org\/wp-content\/uploads\/2023\/03\/Kenya_2022_1788x1000.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1778\" \/>\n\t<meta property=\"og:image:height\" content=\"1000\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\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=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/prowibo.org\\\/donate\\\/\",\"url\":\"https:\\\/\\\/prowibo.org\\\/donate\\\/\",\"name\":\"Donate to Professors Without Borders | Gift Aid\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/prowibo.org\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/prowibo.org\\\/donate\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/prowibo.org\\\/donate\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/prowibo.org\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/Kenya_2022_1788x1000.webp\",\"datePublished\":\"2023-03-31T07:47:16+00:00\",\"dateModified\":\"2026-09-10T13:32:46+00:00\",\"description\":\"Your donation keeps every programme free and takes quality education where it is needed most. UK taxpayers can add 25% through Gift Aid at no extra cost.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/prowibo.org\\\/donate\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/prowibo.org\\\/donate\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/prowibo.org\\\/donate\\\/#primaryimage\",\"url\":\"https:\\\/\\\/prowibo.org\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/Kenya_2022_1788x1000.webp\",\"contentUrl\":\"https:\\\/\\\/prowibo.org\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/Kenya_2022_1788x1000.webp\",\"width\":1778,\"height\":1000,\"caption\":\"A group of female Kenyan students sitting outside. They all look to the left towards a presentation being given out of shot.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/prowibo.org\\\/donate\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/prowibo.org\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Donate\"}]},{\"@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":"Donate to Professors Without Borders | Gift Aid","description":"Your donation keeps every programme free and takes quality education where it is needed most. UK taxpayers can add 25% through Gift Aid at no extra cost.","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\/donate\/","og_locale":"fr_FR","og_type":"article","og_title":"Donate to Professors Without Borders | Gift Aid","og_description":"Your donation keeps every programme free and takes quality education where it is needed most. UK taxpayers can add 25% through Gift Aid at no extra cost.","og_url":"https:\/\/prowibo.org\/fr\/donate\/","og_site_name":"Professors Without Borders","article_modified_time":"2026-09-10T13:32:46+00:00","og_image":[{"width":1778,"height":1000,"url":"https:\/\/prowibo.org\/wp-content\/uploads\/2023\/03\/Kenya_2022_1788x1000.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/prowibo.org\/donate\/","url":"https:\/\/prowibo.org\/donate\/","name":"Donate to Professors Without Borders | Gift Aid","isPartOf":{"@id":"https:\/\/prowibo.org\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prowibo.org\/donate\/#primaryimage"},"image":{"@id":"https:\/\/prowibo.org\/donate\/#primaryimage"},"thumbnailUrl":"https:\/\/prowibo.org\/wp-content\/uploads\/2023\/03\/Kenya_2022_1788x1000.webp","datePublished":"2023-03-31T07:47:16+00:00","dateModified":"2026-09-10T13:32:46+00:00","description":"Your donation keeps every programme free and takes quality education where it is needed most. UK taxpayers can add 25% through Gift Aid at no extra cost.","breadcrumb":{"@id":"https:\/\/prowibo.org\/donate\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prowibo.org\/donate\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/prowibo.org\/donate\/#primaryimage","url":"https:\/\/prowibo.org\/wp-content\/uploads\/2023\/03\/Kenya_2022_1788x1000.webp","contentUrl":"https:\/\/prowibo.org\/wp-content\/uploads\/2023\/03\/Kenya_2022_1788x1000.webp","width":1778,"height":1000,"caption":"A group of female Kenyan students sitting outside. They all look to the left towards a presentation being given out of shot."},{"@type":"BreadcrumbList","@id":"https:\/\/prowibo.org\/donate\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/prowibo.org\/"},{"@type":"ListItem","position":2,"name":"Donate"}]},{"@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\/15056","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\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/prowibo.org\/fr\/wp-json\/wp\/v2\/comments?post=15056"}],"version-history":[{"count":45,"href":"https:\/\/prowibo.org\/fr\/wp-json\/wp\/v2\/pages\/15056\/revisions"}],"predecessor-version":[{"id":36179,"href":"https:\/\/prowibo.org\/fr\/wp-json\/wp\/v2\/pages\/15056\/revisions\/36179"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prowibo.org\/fr\/wp-json\/wp\/v2\/media\/14448"}],"wp:attachment":[{"href":"https:\/\/prowibo.org\/fr\/wp-json\/wp\/v2\/media?parent=15056"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}