{"id":285579,"date":"2025-11-20T10:58:40","date_gmt":"2025-11-20T09:58:40","guid":{"rendered":"https:\/\/www.msd-online.ch\/?p=285579"},"modified":"2026-03-17T14:09:41","modified_gmt":"2026-03-17T13:09:41","slug":"10-camp-familial-en-toscane","status":"publish","type":"post","link":"https:\/\/msd.swiss\/fr\/10-camp-familial-en-toscane\/","title":{"rendered":"10. Camp familial en Toscane"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Un anniversaire riche en rencontres, en foi et en b\u00e9n\u00e9dictions<\/strong><\/p>\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www2.msd-online.ch\/wp-content\/uploads\/2025\/10\/putzeinsatz-58-1024x683.jpg\" alt=\"\" class=\"wp-image-285584\" style=\"aspect-ratio:16\/9;object-fit:cover\" srcset=\"https:\/\/msd.swiss\/wp-content\/uploads\/2025\/10\/putzeinsatz-58-1024x683.jpg 1024w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/10\/putzeinsatz-58-300x200.jpg 300w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/10\/putzeinsatz-58-768x512.jpg 768w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/10\/putzeinsatz-58-1536x1024.jpg 1536w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/10\/putzeinsatz-58-1080x720.jpg 1080w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/10\/putzeinsatz-58-1280x853.jpg 1280w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/10\/putzeinsatz-58-980x653.jpg 980w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/10\/putzeinsatz-58-480x320.jpg 480w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/10\/putzeinsatz-58.jpg 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n<p class=\"wp-block-paragraph\">Notre 10e camp familial en Toscane a \u00e9t\u00e9 un anniversaire tr\u00e8s sp\u00e9cial : environ 130 participants, des b\u00e9b\u00e9s aux seniors, ont pass\u00e9 une semaine pleine de convivialit\u00e9, de plage, de sport, de plats d\u00e9licieux et surtout de l'\u0153uvre de Dieu. Sous la devise \u00ab Le chiffre 10 \u00bb, nous nous sommes plong\u00e9s dans des r\u00e9cits tels que \u00ab Les 10 jours de probation de Daniel \u00bb, \u00ab Les 10 commandements \u00bb et \u00ab Les 10 demoiselles d'honneur \u00bb et avons ressenti comment ces impulsions bibliques touchaient notre quotidien. <\/p>\n\n<p class=\"wp-block-paragraph\">Le temps \u00e9tait changeant, mais nos c\u0153urs \u00e9taient remplis de joie. Chaque jour, de petits groupes ont permis des discussions sinc\u00e8res, des pri\u00e8res et des encouragements. Les gens ont parl\u00e9 de leurs difficult\u00e9s, ont trouv\u00e9 du r\u00e9confort et un nouvel espoir. Par exemple, dans un groupe, des sujets difficiles ont \u00e9t\u00e9 abord\u00e9s, des pri\u00e8res ont \u00e9t\u00e9 faites les uns pour les autres, des onctions d'huile ont \u00e9t\u00e9 faites et la C\u00e8ne a \u00e9t\u00e9 c\u00e9l\u00e9br\u00e9e. Un moment inoubliable de communion profonde et de b\u00e9n\u00e9diction durable.    <\/p>\n\n<p class=\"wp-block-paragraph\">Les rencontres sur place ont \u00e9t\u00e9 particuli\u00e8rement \u00e9mouvantes : \u00e0 Volterra, nous avons rendu visite \u00e0 une artiste dans son atelier. En entrant, nous avons soudainement eu l'impulsion de lui demander quand \u00e9tait son anniversaire. Elle nous a r\u00e9pondu avec \u00e9tonnement qu'elle le f\u00eaterait le lendemain. Nous avons pu prier pour elle et la b\u00e9nir, ce qui l'a visiblement beaucoup \u00e9mue. Et c'est ainsi que nous avons ressenti la pr\u00e9sence de Dieu dans ce simple moment d'attention.    <\/p>\n\n<p class=\"wp-block-paragraph\">Marcella, une femme originaire de la r\u00e9gion, nous a \u00e9galement laiss\u00e9 un souvenir inoubliable. Les larmes aux yeux, elle r\u00e9p\u00e9tait sans cesse : \u00ab Mi volete cos\u00ec bene ! \u00bb \u2013 \u00ab Vous \u00eates si gentils avec moi ! \u00bb Lorsque nous avons pri\u00e9 ensemble pour elle, elle a ressenti pour la premi\u00e8re fois une v\u00e9ritable pr\u00e9sence divine. Elle est d\u00e9sormais en contact avec les chr\u00e9tiens locaux et continue d'\u00eatre accompagn\u00e9e.   <\/p>\n\n<p class=\"wp-block-paragraph\">Lors de notre op\u00e9ration de nettoyage, un employ\u00e9 municipal a \u00e9galement \u00e9t\u00e9 profond\u00e9ment \u00e9mu. Les larmes aux yeux, il a d\u00e9crit \u00e0 quel point il \u00e9tait impressionn\u00e9 que des jeunes consacrent leurs vacances \u00e0 rendre service aux autres et a \u00e9voqu\u00e9 l'amour palpable qui se d\u00e9gageait de cette initiative : \u00ab Grazie, grazie, grazie ! \u00bb <\/p>\n\n<p class=\"wp-block-paragraph\">La c\u00e9r\u00e9monie de cl\u00f4ture au bord de la mer a \u00e9t\u00e9 un moment fort : culte, bapt\u00eame et t\u00e9moignages de jeunes qui ont courageusement partag\u00e9 leur foi. Nous retournons \u00e0 notre quotidien combl\u00e9s, fortifi\u00e9s et transform\u00e9s. Port\u00e9s par l'espoir, la foi et la certitude que Dieu accomplit de grandes choses \u00e0 chaque instant. Cet anniversaire nous a montr\u00e9 que lorsque les gens se r\u00e9unissent, l'amour prend vie, l'espoir devient tangible et la foi peut \u00eatre v\u00e9cue.   <\/p>\n<div class=\"et_pb_section_0 et_pb_section et_pb_section--fixed et_section_regular et_flex_section\" id=\"popup_projekte\"><div class=\"et_pb_row_0 et_pb_row et_flex_row\" id=\"popup-projekte-inhalt\"><div class=\"et_pb_column_0 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_phone\" id=\"bild_popup\"><div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\" data-et-mv-hidden-phone=\"true\"><script>\n\/* Projekt-Popup: Button \u00f6ffnet den jeweiligen Projekt-Link immer in einem neuen Tab (DE & FR).\n   Greift \u00fcber die ID \"projekt_button\" oder jeden Button im Projekt-Popup.\n   Capture-Phase: wir sind vor dem alten jQuery-Button-Script im Header dran,\n   das sonst alle Divi-Buttons im selben Tab \u00f6ffnet. *\/\n(function () {\n  if (window.__msdProjektButton) return;\n  window.__msdProjektButton = true;\n\n  document.addEventListener('click', function (e) {\n    var btn = e.target.closest && e.target.closest('#projekt_button, #popup_projekte a.et_pb_button');\n    if (!btn) return;\n\n    var href = btn.getAttribute('href');\n    if (!href || href === '#') return;\n\n    e.preventDefault();\n    e.stopPropagation();\n    e.stopImmediatePropagation();\n\n    window.open(href, '_blank', 'noopener');\n  }, true);\n})();\n<\/script><\/div><\/div><\/div><div class=\"et_pb_column_1 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_phone\"><div class=\"et_pb_group_0 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough\"><div class=\"et_pb_image_0 et_pb_image et_pb_module et_flex_module\" id=\"logo_popup\"><span class=\"et_pb_image_wrap\"><img src=\"https:\/\/www2.msd-online.ch\/wp-content\/uploads\/2025\/05\/cc_popup.png\" title=\"cc_popup\" width=\"1080\" height=\"226\" srcset=\"https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/cc_popup.png 1080w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/cc_popup-300x63.png 300w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/cc_popup-1024x214.png 1024w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/cc_popup-768x161.png 768w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/cc_popup-980x205.png 980w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/cc_popup-480x100.png 480w\" sizes=\"(max-width: 1080px) 100vw, 1080px\" class=\"wp-image-287092\" \/><\/span><\/div><div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\" id=\"beschreibung\"><div class=\"et_pb_text_inner\"><p><span>\"Seit 1962 entwickeln sich die Change Camps stetig weiter. Sie verbinden tiefe Gemeinschaft, starke Gotteserfahrungen und das Eintauchen in andere Kulturen. Durch kreative Outreaches mit Sport, praktischen Eins\u00e4tzen, Worship und Prayer Walks wachsen wir in einen evangelistischen Lebensstil. Unsere Vision ist, Jesus in verschiedenen Nationen bekannt zu machen und Jugendliche f\u00fcr ein Leben zu begeistern, das Gott ehrt. Wir wollen lokale Kirchen unterst\u00fctzen und ein Segen f\u00fcr Menschen vor Ort sein. Ein Change Camp soll das Leben der Teilnehmenden nachhaltig ver\u00e4ndern, ihr Herz neu f\u00fcr Gott entfachen und sie mit Leidenschaft f\u00fcr Mitmenschen, Regionen und Nationen erf\u00fcllen \u2013 damit sie diese Begeisterung auch in ihren Alltag tragen.\"<\/span><\/p>\n<\/div><\/div><div class=\"et_pb_module et_pb_button_module_wrapper et_pb_button_0_wrapper preset--module--divi-button--default_wrapper\"><a class=\"et_pb_button_0 et_pb_button et_pb_bg_layout_dark et_pb_module et_flex_module preset--module--divi-button--default\" href=\"\" target=\"_blank\" id=\"projekt_button\">titel<\/a><\/div><\/div><div class=\"et_pb_icon_0 et_pb_icon et-interaction-target-kp1pp7plxu et_pb_module et_flex_module\" data-interaction-trigger=\"poknua1gij\" data-interaction-target=\"kp1pp7plxu\"><span class=\"et_pb_icon_wrap\"><span class=\"et-pb-icon\">\uf00d<\/span><\/span><\/div><div class=\"et_pb_text_1 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\" id=\"kostenstelle\"><div class=\"et_pb_text_inner\" data-et-mv-hidden-phone=\"true\"><p><strong>M\u00f6chtest du das Projekt finanziell unterst\u00fctzen?<\/strong><br \/>Missionswerk msd | Grassiweg 3 | 3714 Frutigen<br \/>PC-Nr. 30-26890-3 | IBAN CH69 0900 0000 3002 6890 3<br \/>Vermerk: <span id=\"kostenstelle-projekt\">projekt<\/span><\/p>\n<\/div><\/div><\/div><\/div><div class=\"et_pb_row_1 et_pb_row et_flex_row\" id=\"popup-loader_projekte\"><div class=\"et_pb_column_2 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_code_1 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><div class=\"skeleton-wrapper\">\n  <div class=\"skeleton-links\">\n    <div class=\"skeleton-projekte skeleton-bild\"><\/div>\n  <\/div>\n  <div class=\"skeleton-rechts_p\">\n    <div>\n      \n    \n    <div class=\"skeleton-projekte skeleton-logo\"><\/div>\n    <div class=\"skeleton-projekte skeleton-text_beschreibung\"><\/div>\n    <div class=\"skeleton-projekte skeleton-button\"><\/div>\n    <\/div>\n    \n    <div class=\"skeleton_kostenstelle_p\">\n      <div class=\"skeleton-projekte skeleton-text\"><\/div>\n    <div class=\"skeleton-projekte skeleton-text mittel\"><\/div>\n    <div class=\"skeleton-projekte skeleton-text kurz\"><\/div>\n    <\/div>\n  <\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div><div class=\"et_pb_section_1 et_pb_section et_pb_section--fixed et_section_regular et_flex_section et-interaction-target-tj91x06n4w\" data-interaction-target=\"tj91x06n4w\" id=\"popup_mitarbeiter\"><div class=\"et_pb_row_2 et_pb_row et_flex_row\" id=\"popup-inhalt\"><div class=\"et_pb_column_3 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_phone\" id=\"mitarbeiter_bild\"><div class=\"et_pb_code_2 et_pb_code et_pb_module\" id=\"mitarbeiter_bild\"><div class=\"et_pb_code_inner\"><style>\n\/* IBAN: auf Desktop in derselben Zeile wie die PC-Nr., auf Mobile eigene Zeile *\/\n#popup_mitarbeiter .msd-br-mobile {\n  display: none;\n}\n\n@media only screen and (max-width: 767px) {\n  #popup_mitarbeiter .msd-br-mobile {\n    display: inline;\n  }\n  #popup_mitarbeiter .msd-sep {\n    display: none;\n  }\n}\n<\/style>\n\n<script>\n(function () {\n  \/\/ Nur einmal ausf\u00fchren, auch wenn das Skript doppelt auf der Seite ist\n  if (window.__msdPopupKombi) return;\n  window.__msdPopupKombi = true;\n\n  const lang = (document.documentElement.lang || 'de').substring(0, 2);\n  const params = `acf_format=standard&lang=${lang}&_embed`;\n  const MOBILE = '(max-width: 980px)';\n  const POST_TYPE = 'mitarbeiter';\n\n  \/\/ PC-Nr. und IBAN: IBAN bricht nie mittendrin um, auf Mobile eigene Zeile\n  const zahlungsZeile =\n    '<span style=\"white-space:nowrap\">PC-Nr. 30-26890-3<\/span>' +\n    '<span class=\"msd-sep\"> | <\/span><br class=\"msd-br-mobile\">' +\n    '<span style=\"white-space:nowrap\">IBAN CH69 0900 0000 3002 6890 3<\/span>';\n\n  const cache = {};            \/\/ \"typ_idOderSlug\" -> Daten\n  const laufend = {};          \/\/ \"typ_idOderSlug\" -> laufende Anfrage\n  const listen = {};           \/\/ typ -> Promise vom Hintergrund-Laden\n  const bilderGeladen = new Set();\n  let aktuellerKlick = null;\n\n  \/\/ =====================================================\n  \/\/ Hilfsfunktionen (unver\u00e4ndert)\n  \/\/ =====================================================\n  const getImageUrl = (field) => {\n    if (!field) return '';\n    if (typeof field === 'string') return field;\n    if (typeof field === 'object' && field !== null) {\n      if (field.url) return field.url;\n      if (field.source_url) return field.source_url;\n      if (field.sizes) {\n        const s = field.sizes;\n        return s.large?.url || s.large || s.medium_large?.url || s.medium_large || s.full?.url || s.full || '';\n      }\n    }\n    return '';\n  };\n\n  const getMitarbeiterFoto = (data) => {\n    const felder = data.acf || {};\n    const kandidaten = [\n      felder.bild_sw_name, felder.bild_sw, felder.bild,\n      felder.foto, felder.portrait, felder.mitarbeiter_bild,\n      felder.person_bild, felder.bild_farbe\n    ];\n\n    for (const item of kandidaten) {\n      const url = getImageUrl(item);\n      if (url) return url;\n    }\n\n    for (const key in felder) {\n      const val = felder[key];\n      const url = getImageUrl(val);\n      if (url && (url.includes('\/wp-content\/uploads\/') || \/\\.(jpg|jpeg|png|webp|svg)\/i.test(url))) {\n        return url;\n      }\n    }\n\n    if (data._embedded && data._embedded['wp:featuredmedia'] && data._embedded['wp:featuredmedia'][0]) {\n      const media = data._embedded['wp:featuredmedia'][0];\n      const url = media.source_url || media.media_details?.sizes?.full?.source_url;\n      if (url) return url;\n    }\n\n    if (data.featured_media_src_url) return data.featured_media_src_url;\n    return '';\n  };\n\n  const setText = (container, selector, text) => {\n    const el = container.querySelector(selector);\n    if (!el) return;\n    if (!text || text.trim() === '') {\n      el.style.setProperty('display', 'none', 'important');\n      return;\n    }\n    el.style.removeProperty('display');\n    const target = el.querySelector('.et_pb_text_inner') || el;\n    target.textContent = text;\n  };\n\n  const setContactIcon = (container, selector, value, type) => {\n    const el = container.querySelector(selector);\n    if (!el) return;\n\n    if (!value || value.trim() === '') {\n      el.style.setProperty('display', 'none', 'important');\n      return;\n    }\n\n    el.style.removeProperty('display');\n    const link = el.tagName === 'A' ? el : el.querySelector('a');\n    const prefix = type === 'mail' ? 'mailto:' : 'tel:';\n    const cleanVal = type === 'mobile' ? value.replace(\/\\s+\/g, '') : value;\n\n    if (link) {\n      link.href = prefix + cleanVal;\n      link.title = value;\n    }\n\n    const target = el.querySelector('.et_pb_text_inner') || link || el;\n    if (target) {\n      Array.from(target.childNodes).forEach(node => {\n        if (node.nodeType === 3) node.textContent = '';\n      });\n    }\n  };\n\n  const setImage = (container, selector, imageSource) => {\n    const el = container.querySelector(selector);\n    if (!el) return;\n    const url = getImageUrl(imageSource);\n\n    if (!url) {\n      el.style.setProperty('display', 'none', 'important');\n      return;\n    }\n\n    el.style.removeProperty('display');\n    const img = el.tagName === 'IMG' ? el : el.querySelector('img');\n\n    if (img) {\n      img.src = url;\n      img.removeAttribute('srcset');\n      img.removeAttribute('sizes');\n    } else {\n      el.style.backgroundImage = `url('${url}')`;\n      el.style.backgroundSize = 'cover';\n      el.style.backgroundPosition = 'center center';\n    }\n  };\n\n  \/\/ =====================================================\n  \/\/ Spendenblock finden\n  \/\/ =====================================================\n  function ksKandidaten(popup) {\n    const alle = Array.from(popup.querySelectorAll('.et_pb_text, .et_pb_module')).filter(mod => {\n      const txt = mod.textContent.toLowerCase();\n      return mod.id === 'mitarbeiter_kostenstelle' ||\n             mod.hasAttribute('data-msd-ks') ||\n             txt.includes('finanziell freisetzen') ||\n             txt.includes('financially') ||\n             txt.includes('lib\u00e9rer') ||\n             txt.includes('grassiweg 3') ||\n             txt.includes('30-26890-3');\n    });\n\n    \/\/ Nur die innersten Module (keine Gruppen, die einen Block nur umschliessen)\n    return alle.filter(mod => !alle.some(anderes => anderes !== mod && mod.contains(anderes)));\n  }\n\n  function ksBlockWaehlen(popup) {\n    const kandidaten = ksKandidaten(popup);\n    if (!kandidaten.length) return { block: null, kandidaten };\n\n    \/\/ Eigene Inline-Styles vom letzten \u00d6ffnen entfernen\n    kandidaten.forEach(mod => {\n      mod.setAttribute('data-msd-ks', '1');\n      mod.style.removeProperty('display');\n      mod.style.removeProperty('margin-top');\n    });\n\n    \/\/ Bevorzugt: Block in der Spalte mit dem Bibelvers (hat dort das passende Design)\n    const zitat = popup.querySelector('#mitarbeiter_zitat');\n    const spalte = zitat ? zitat.closest('.et_pb_column') : null;\n    const inTextspalte = spalte ? kandidaten.filter(mod => spalte.contains(mod)) : [];\n    const bevorzugt = popup.querySelector('#mitarbeiter_kostenstelle');\n\n    let block = null;\n    if (inTextspalte.length) {\n      block = (bevorzugt && inTextspalte.includes(bevorzugt)) ? bevorzugt : inTextspalte[0];\n    } else if (bevorzugt && kandidaten.includes(bevorzugt)) {\n      block = bevorzugt;\n    } else {\n      block = kandidaten[0];\n    }\n\n    return { block, kandidaten };\n  }\n\n  \/\/ Auf dem Handy: Spendenblock direkt unter den Bibelvers setzen\n  function unterBibelvers(popup, block) {\n    if (!block || !window.matchMedia(MOBILE).matches) return;\n    const zitat = popup.querySelector('#mitarbeiter_zitat');\n    if (!zitat || zitat === block || zitat.contains(block)) return;\n    if (zitat.nextElementSibling !== block) {\n      zitat.insertAdjacentElement('afterend', block);\n    }\n  }\n\n  \/\/ =====================================================\n  \/\/ Cache & Vorladen\n  \/\/ =====================================================\n  function merken(postType, data) {\n    if (!data) return;\n    cache[`${postType}_${data.id}`] = data;\n    if (data.slug) cache[`${postType}_${data.slug}`] = data;\n  }\n\n  function bildVorladen(url) {\n    if (!url || typeof url !== 'string' || bilderGeladen.has(url)) return;\n    bilderGeladen.add(url);\n    const img = new Image();\n    img.decoding = 'async';\n    img.src = url;\n  }\n\n  function bilderVorladen(data) {\n    if (!data) return;\n    const f = data.acf || {};\n    bildVorladen(getMitarbeiterFoto(data));\n    bildVorladen(getImageUrl(f.position_bild));\n  }\n\n  function alleLaden(postType) {\n    if (listen[postType]) return listen[postType];\n    listen[postType] = (async function () {\n      let seite = 1;\n      let gesamtSeiten = 1;\n      do {\n        const res = await fetch(`\/wp-json\/wp\/v2\/${postType}?per_page=100&page=${seite}&${params}`);\n        if (!res.ok) throw new Error(`HTTP Fehler: ${res.status}`);\n        gesamtSeiten = parseInt(res.headers.get('X-WP-TotalPages') || '1', 10);\n        const liste = await res.json();\n        if (Array.isArray(liste)) liste.forEach(d => merken(postType, d));\n        seite++;\n      } while (seite <= gesamtSeiten);\n    })().catch(function (err) {\n      console.warn(`Hintergrund-Laden (${postType}) fehlgeschlagen, lade einzeln:`, err);\n    });\n    return listen[postType];\n  }\n\n  function einzelnLaden(postType, idOrSlug) {\n    const key = `${postType}_${idOrSlug}`;\n    if (cache[key]) return Promise.resolve(cache[key]);\n    if (laufend[key]) return laufend[key];\n\n    const isNumeric = \/^\\d+$\/.test(idOrSlug);\n    const url = isNumeric\n      ? `\/wp-json\/wp\/v2\/${postType}\/${idOrSlug}?${params}`\n      : `\/wp-json\/wp\/v2\/${postType}?slug=${encodeURIComponent(idOrSlug)}&${params}`;\n\n    laufend[key] = fetch(url)\n      .then(function (res) {\n        if (!res.ok) throw new Error(`HTTP Fehler: ${res.status}`);\n        return res.json();\n      })\n      .then(function (json) {\n        const data = Array.isArray(json) ? json[0] : json;\n        if (!data) throw new Error(`${postType} mit ID\/Slug '${idOrSlug}' nicht gefunden`);\n        merken(postType, data);\n        cache[key] = data;\n        return data;\n      })\n      .finally(function () {\n        delete laufend[key];\n      });\n\n    return laufend[key];\n  }\n\n  async function holen(postType, idOrSlug) {\n    const key = `${postType}_${idOrSlug}`;\n    if (cache[key]) return cache[key];\n    if (listen[postType]) {\n      await listen[postType];\n      if (cache[key]) return cache[key];\n    }\n    return einzelnLaden(postType, idOrSlug);\n  }\n\n  \/\/ =====================================================\n  \/\/ Popup bef\u00fcllen (nur Mitarbeiter)\n  \/\/ =====================================================\n  function befuellen(popup, data) {\n    const felder = data.acf || {};\n\n    const rawTitle = data.title?.rendered || '';\n    const cleanName = rawTitle.replace(\/^\\d+\\s*\/, '');\n    setText(popup, '#mitarbeiter_name', cleanName);\n\n    setImage(popup, '#mitarbeiter_position_bild', felder.position_bild);\n    const fotoUrl = getMitarbeiterFoto(data);\n    setImage(popup, '#mitarbeiter_bild', fotoUrl);\n\n    \/\/ ZITAT\n    let zitatText = felder.zitat || '';\n    if (zitatText) {\n      zitatText = zitatText.trim()\n        .replace(\/^[\"'\u00ab\u00bb\u201c\u201d\\s]+\/, '')\n        .replace(\/[\"'\u00ab\u00bb\u201c\u201d\\s\\.]+\\s*$\/, '').trim();\n\n      if (lang === 'fr') {\n        zitatText = `\u00ab ${zitatText} \u00bb.`;\n      } else {\n        zitatText = `'${zitatText}'`;\n      }\n    }\n    const zitatEl = popup.querySelector('#mitarbeiter_zitat');\n    if (zitatEl) zitatEl.style.fontWeight = 'normal';\n    setText(popup, '#mitarbeiter_zitat', zitatText);\n\n    setContactIcon(popup, '#mitarbeiter_mail', felder.mail, 'mail');\n    setContactIcon(popup, '#mitarbeiter_mobile', felder.mobile, 'mobile');\n\n    \/\/ SPENDENBLOCK\n    const { block: ksBlock, kandidaten } = ksBlockWaehlen(popup);\n\n    kandidaten.forEach(mod => {\n      if (mod !== ksBlock) {\n        mod.style.setProperty('display', 'none', 'important');\n      }\n    });\n\n    const acfKs = (felder && felder.kostenstelle) ? String(felder.kostenstelle).trim() : '';\n\n    if (ksBlock) {\n      if (!acfKs || acfKs === 'false' || acfKs === '0') {\n        ksBlock.style.setProperty('display', 'none', 'important');\n      } else {\n        \/\/ Auf dem Handy direkt unter den Bibelvers\n        unterBibelvers(popup, ksBlock);\n\n        \/\/ Erzwingen, damit er auf allen Ger\u00e4ten sichtbar ist\n        ksBlock.style.setProperty('display', 'block', 'important');\n\n        \/\/ Abstand: Desktop wie gehabt, Handy etwas kompakter\n        const abstand = window.matchMedia(MOBILE).matches ? '30px' : '65px';\n        ksBlock.style.setProperty('margin-top', abstand, 'important');\n\n        let cleanVal = acfKs.replace(\/^(vermerk|reference|note|mention):\\s*\/i, '').trim();\n        cleanVal = cleanVal.replace(\/kostenstelle\/gi, '').trim();\n\n        const isEn = (lang === 'en');\n        const isFr = (lang === 'fr');\n\n        if (isFr) {\n          cleanVal = cleanVal.replace(\/^(personalkosten|personnel costs|frais de salaire)\\s*\/i, '');\n          if (!cleanVal.toLowerCase().startsWith('frais de salaire')) {\n            cleanVal = `frais de salaire ${cleanVal}`;\n          }\n          ksBlock.innerHTML = `<div class=\"et_pb_text_inner\"><p><strong>Tu veux me lib\u00e9rer directement sur le plan financier ?<\/strong><br>\u0152uvre missionnaire MSD | Grassiweg 3 | 3714 Frutigen<br>${zahlungsZeile}<br>Mention : ${cleanVal}<\/p><\/div>`;\n        } else if (isEn) {\n          cleanVal = cleanVal.replace(\/^(personalkosten|frais de salaire)\\s*\/i, '');\n          if (!cleanVal.toLowerCase().startsWith('personnel costs')) {\n            cleanVal = `Personnel costs ${cleanVal}`;\n          }\n          ksBlock.innerHTML = `<div class=\"et_pb_text_inner\"><p><strong>Would you like to release me financially directly?<\/strong><br>Missionswerk msd | Grassiweg 3 | 3714 Frutigen<br>${zahlungsZeile}<br>Note: ${cleanVal}<\/p><\/div>`;\n        } else {\n          cleanVal = cleanVal.replace(\/^(personnel costs|frais de salaire)\\s*\/i, '');\n          if (!cleanVal.toLowerCase().startsWith('personalkosten')) {\n            cleanVal = `Personalkosten ${cleanVal}`;\n          }\n          ksBlock.innerHTML = `<div class=\"et_pb_text_inner\"><p><strong>M\u00f6chtest du mich direkt finanziell freisetzen?<\/strong><br>Missionswerk msd | Grassiweg 3 | 3714 Frutigen<br>${zahlungsZeile}<br>Vermerk: ${cleanVal}<\/p><\/div>`;\n        }\n      }\n    }\n\n    popup.querySelectorAll('.et_pb_text, .et_pb_module').forEach(mod => {\n      if (mod !== ksBlock && !kandidaten.includes(mod)) {\n        const txt = mod.textContent.trim().toLowerCase();\n        if (txt === 'kostenstelle' || txt === 'cost center' || txt === 'centre de co\u00fbt') {\n          mod.style.setProperty('display', 'none', 'important');\n        }\n      }\n    });\n  }\n\n  \/\/ =====================================================\n  \/\/ Karte erkennen (nur Mitarbeiter)\n  \/\/ =====================================================\n  function karteInfo(target) {\n    if (!target || !target.closest) return null;\n    const karte = target.closest('.mitarbeiter-karte');\n    if (!karte) return null;\n    return { karte, idOrSlug: karte.dataset.id };\n  }\n\n  \/\/ =====================================================\n  \/\/ Vorladen beim Dr\u00fcberfahren \/ Antippen\n  \/\/ =====================================================\n  function vorladenBeiKarte(e) {\n    const info = karteInfo(e.target);\n    if (!info || !info.idOrSlug) return;\n    holen(POST_TYPE, info.idOrSlug)\n      .then(data => bilderVorladen(data))\n      .catch(function () {});\n  }\n\n  document.addEventListener('pointerover', vorladenBeiKarte, { passive: true });\n  document.addEventListener('touchstart', vorladenBeiKarte, { passive: true });\n  document.addEventListener('focusin', vorladenBeiKarte);\n\n  \/\/ =====================================================\n  \/\/ Klick auf Karte\n  \/\/ =====================================================\n  document.addEventListener('click', async function (e) {\n    const info = karteInfo(e.target);\n    if (!info) return;\n\n    const { idOrSlug } = info;\n\n    e.preventDefault();\n\n    const popup = document.getElementById('popup_mitarbeiter');\n    if (!popup) return;\n\n    const q = (sel) => popup.querySelector(sel);\n    const loader = q('[id*=\"loader\"]') || document.getElementById('popup-loader_mitarbeiter');\n    const inhalt = q('[id*=\"inhalt\"]') || document.getElementById('popup-inhalt');\n\n    if (!idOrSlug) return;\n\n    const key = `${POST_TYPE}_${idOrSlug}`;\n    aktuellerKlick = key;\n\n    const sofort = cache[key];\n\n    if (sofort) {\n      \/\/ Schon geladen: sofort bef\u00fcllen, ohne Lade-Skelett\n      befuellen(popup, sofort);\n      if (loader) loader.style.display = 'none';\n      if (inhalt) inhalt.style.display = 'flex';\n    } else {\n      \/\/ Alte Bilder ausblenden, damit nichts Falsches kurz aufblitzt\n      setImage(popup, '#mitarbeiter_bild', '');\n      setImage(popup, '#mitarbeiter_position_bild', '');\n      if (loader) loader.style.display = 'flex';\n      if (inhalt) inhalt.style.display = 'none';\n    }\n\n    if (window.et_execute_interaction_effect) {\n      window.et_execute_interaction_effect({ effect: 'addVisibility' }, popup);\n    } else {\n      popup.style.display = 'block';\n    }\n\n    if (sofort) {\n      bilderVorladen(sofort);\n      return;\n    }\n\n    try {\n      const data = await holen(POST_TYPE, idOrSlug);\n\n      \/\/ Inzwischen etwas anderes angeklickt? Dann nicht \u00fcberschreiben\n      if (aktuellerKlick !== key) return;\n\n      befuellen(popup, data);\n      bilderVorladen(data);\n\n      if (loader) loader.style.display = 'none';\n      if (inhalt) inhalt.style.display = 'flex';\n    } catch (err) {\n      console.error('Fehler beim Laden des Popups:', err);\n      if (loader) loader.style.display = 'none';\n    }\n  });\n\n  \/\/ =====================================================\n  \/\/ Schliessen bei Klick auf Hintergrund\n  \/\/ =====================================================\n  document.addEventListener('click', function (e) {\n    const popup = document.getElementById('popup_mitarbeiter');\n    if (popup && e.target === popup) {\n      if (window.et_execute_interaction_effect) {\n        window.et_execute_interaction_effect({ effect: 'removeVisibility' }, popup);\n      } else {\n        popup.style.display = 'none';\n      }\n    }\n  });\n\n  \/\/ =====================================================\n  \/\/ Hintergrund-Laden starten, sobald die Seite fertig ist\n  \/\/ =====================================================\n  function starten() {\n    if (document.getElementById('popup_mitarbeiter') && document.querySelector('.mitarbeiter-karte')) {\n      alleLaden(POST_TYPE);\n    }\n  }\n\n  function planen() {\n    if ('requestIdleCallback' in window) {\n      requestIdleCallback(starten, { timeout: 2000 });\n    } else {\n      setTimeout(starten, 300);\n    }\n  }\n\n  if (document.readyState === 'complete') {\n    planen();\n  } else {\n    window.addEventListener('load', planen);\n  }\n})();\n<\/script><\/div><\/div><\/div><div class=\"et_pb_column_4 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_image_1 et_pb_image et_pb_module et_flex_module\" id=\"mitarbeiter_position_bild\"><span class=\"et_pb_image_wrap\"><img src=\"https:\/\/www2.msd-online.ch\/wp-content\/uploads\/2025\/05\/Titel-Yanis.png\" title=\"mitarbeiter_bild\" width=\"591\" height=\"154\" srcset=\"https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/Titel-Yanis.png 591w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/Titel-Yanis-300x78.png 300w, https:\/\/msd.swiss\/wp-content\/uploads\/2025\/05\/Titel-Yanis-480x125.png 480w\" sizes=\"(max-width: 591px) 100vw, 591px\" class=\"wp-image-287212\" \/><\/span><\/div><div class=\"et_pb_text_2 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\" id=\"mitarbeiter_name\"><div class=\"et_pb_text_inner\"><p><span>Mitarbeiter name<\/span><\/p>\n<\/div><\/div><div class=\"et_pb_group_1 et_pb_group et_pb_module et_flex_group et_pb_css_mix_blend_mode_passthrough\"><a class=\"et_pb_icon_1 et_pb_icon et_clickable et_pb_module et_flex_module\" href=\"mailto:info@msd-online.ch\" id=\"mitarbeiter_mail\"><span class=\"et_pb_icon_wrap\"><span class=\"et-pb-icon\">\ue010<\/span><\/span><\/a><a class=\"et_pb_icon_2 et_pb_icon et_clickable et_pb_module et_flex_module\" href=\"tel:+41%2078%20225%2046%2036%20\" id=\"mitarbeiter_mobile\"><span class=\"et_pb_icon_wrap\"><span class=\"et-pb-icon\">\uf879<\/span><\/span><\/a><\/div><div class=\"et_pb_text_3 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\" id=\"mitarbeiter_zitat\"><div class=\"et_pb_text_inner\"><p><span>Zitat<\/span><\/p>\n<\/div><\/div><div class=\"et_pb_text_4 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\" id=\"mitarbeiter_spenden_block\"><div class=\"et_pb_text_inner\" data-et-mv-hidden-phone=\"true\"><p><strong>M\u00f6chtest du mich direkt finanziell freisetzen?\u00a0<br \/><\/strong><spantitillium web=\"\" arial=\"\" font-weight:normal=\"\" font-style:normal=\"\" data-sheets-root=\"1\">Missionswerk msd | Grassiweg 3 | 3714 Frutigen<\/spantitillium><br \/><span>PC-Nr. 30-26890-3 | IBAN CH69 0900 0000 3002 6890 3<\/span><\/p>\n<\/div><\/div><div class=\"et_pb_text_5 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\" id=\"mitarbeiter_kostenstelle\"><div class=\"et_pb_text_inner\"><p>Vermerk: Personalkosten<\/p>\n<\/div><\/div><div class=\"et_pb_icon_3 et_pb_icon et-interaction-target-s625yagv4m et_pb_module et_flex_module\" data-interaction-trigger=\"qxdh4ltg2t\" data-interaction-target=\"s625yagv4m\"><span class=\"et_pb_icon_wrap\"><span class=\"et-pb-icon\">\uf00d<\/span><\/span><\/div><\/div><\/div><div class=\"et_pb_row_3 et_pb_row et_flex_row\" id=\"popup-loader_mitarbeiter\"><div class=\"et_pb_column_5 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><div class=\"et_pb_code_3 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><div class=\"skeleton-wrapper\">\n  <div class=\"skeleton-links\">\n    <div class=\"skeleton skeleton-bild\"><\/div>\n  <\/div>\n  <div class=\"skeleton-rechts\">\n    <div class=\"skeleton skeleton-position\"><\/div>\n    <div class=\"skeleton skeleton-titel\"><\/div>\n    <div class=\"skeleton skeleton-titel-unten\"><\/div>\n    \n    <div class=\"skeleton_icon_wrapper\">\n      <div class=\"skeleton skeleton_icon\"><\/div>\n      <div class=\"skeleton skeleton_icon\"><\/div>\n    <\/div>\n    <div class=\"skeleton_zitat\">\n      <div class=\"skeleton skeleton-text\"><\/div>\n    <div class=\"skeleton skeleton-text mittel\"><\/div>\n    <div class=\"skeleton skeleton-text kurz\"><\/div>\n    <\/div>\n    <div class=\"skeleton_kostenstelle\">\n      <div class=\"skeleton skeleton-text\"><\/div>\n    <div class=\"skeleton skeleton-text mittel\"><\/div>\n    <div class=\"skeleton skeleton-text kurz\"><\/div>\n    <\/div>\n  <\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>\u00ab\u00a0Seit 1962 entwickeln sich die Change Camps stetig weiter. Sie verbinden tiefe Gemeinschaft, starke Gotteserfahrungen und das Eintauchen in andere Kulturen. Durch kreative Outreaches mit Sport, praktischen Eins\u00e4tzen, Worship und Prayer Walks wachsen wir in einen evangelistischen Lebensstil. Unsere Vision ist, Jesus in verschiedenen Nationen bekannt zu machen und Jugendliche f\u00fcr ein Leben zu begeistern, &#8230;<\/p>\n","protected":false},"author":9,"featured_media":285583,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[131,122,154],"tags":[],"class_list":["post-285579","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-evenements-fr","category-info-fr","category-mail-fr"],"acf":[],"_links":{"self":[{"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/posts\/285579","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/comments?post=285579"}],"version-history":[{"count":5,"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/posts\/285579\/revisions"}],"predecessor-version":[{"id":286633,"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/posts\/285579\/revisions\/286633"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/media\/285583"}],"wp:attachment":[{"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/media?parent=285579"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/categories?post=285579"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/msd.swiss\/fr\/wp-json\/wp\/v2\/tags?post=285579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}