{"id":23868,"date":"2026-07-01T10:34:45","date_gmt":"2026-07-01T10:34:45","guid":{"rendered":"https:\/\/mein-haus-in-frankreich.de\/?page_id=23868"},"modified":"2026-08-07T09:59:56","modified_gmt":"2026-08-07T09:59:56","slug":"profils-dacquereurs-germanophones-biens-recherches-dans-le-sud-de-la-france","status":"publish","type":"page","link":"https:\/\/mein-haus-in-frankreich.de\/fr\/profils-dacquereurs-germanophones-biens-recherches-dans-le-sud-de-la-france\/","title":{"rendered":"Profils d&#8217;acqu\u00e9reurs germanophones \u2014 Biens recherch\u00e9s dans le Sud de la France"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"23868\" class=\"elementor elementor-23868\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9c2dfd5 e-con-full e-flex e-con e-parent\" data-id=\"9c2dfd5\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a76bda0 elementor-widget elementor-widget-html\" data-id=\"a76bda0\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div id=\"mhfFrProfils01\">\n<style>\n  #mhfFrProfils01 {\n    --mhf-navy: #024476;\n    --mhf-navy-dark: #01315a;\n    --mhf-green: #12BF11;\n    --mhf-green-deep: #0c9c0b;\n    --mhf-cream: #FAF7F1;\n    --mhf-sand: #E7DFCB;\n    --mhf-ink: #1b2a35;\n    --mhf-muted: #6b7a89;\n    --mhf-card-shadow: 0 1px 2px rgba(2,68,118,0.05), 0 10px 28px rgba(2,68,118,0.05);\n    box-sizing: border-box;\n    font-family: 'Montserrat', Arial, sans-serif;\n    color: var(--mhf-ink);\n  }\n  #mhfFrProfils01 *, #mhfFrProfils01 *::before, #mhfFrProfils01 *::after { box-sizing: border-box; }\n\n  #mhfFrProfils01 .mhf-hero {\n    position: relative;\n    min-height: 460px;\n    display: flex;\n    align-items: flex-end;\n    background-image:\n      linear-gradient(180deg, rgba(2,52,90,.30) 0%, rgba(2,52,90,.14) 40%, rgba(2,52,90,.82) 100%),\n      url('https:\/\/mein-haus-in-frankreich.de\/wp-content\/uploads\/2026\/01\/anthony-salerno-I1hzGTtKMgU-unsplash-1.jpg');\n    background-size: cover;\n    background-position: center;\n    padding: 74px 16px 48px;\n  }\n  #mhfFrProfils01 .mhf-hero-inner { max-width: 1080px; margin: 0 auto; width: 100%; text-align: center; }\n  #mhfFrProfils01 .mhf-eyebrow {\n    display: block; font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase !important;\n    color: #8fe08e; margin-bottom: 12px; font-weight: 700;\n  }\n  #mhfFrProfils01 h1 {\n    font-family: 'Cormorant Garamond', Georgia, serif !important;\n    color: #fff !important; font-weight: 600 !important; text-transform: none !important;\n    font-size: 28px !important; line-height: 1.2 !important; max-width: 700px; margin: 0 auto 14px;\n  }\n  #mhfFrProfils01 .mhf-hero p {\n    font-size: 14.5px; line-height: 1.6; max-width: 640px; color: #e4ecf3; margin: 0 auto;\n  }\n\n  #mhfFrProfils01 .mhf-hero-card {\n    max-width: 900px; margin: 28px auto 0; background: #fff; border-radius: 16px;\n    box-shadow: 0 12px 32px rgba(2,52,90,.25); padding: 20px 26px;\n    display: flex; align-items: center; justify-content: center; gap: 22px; flex-wrap: wrap;\n  }\n  #mhfFrProfils01 .mhf-trust-item { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--mhf-muted); font-weight: 600; }\n  #mhfFrProfils01 .mhf-trust-item svg { width: 16px; height: 16px; color: var(--mhf-green-deep); flex-shrink: 0; }\n\n  @media (max-width: 760px) {\n    #mhfFrProfils01 .mhf-hero { min-height: 400px; padding: 52px 12px 36px; }\n    #mhfFrProfils01 h1 { font-size: 22px !important; }\n    #mhfFrProfils01 .mhf-hero-card { padding: 18px; border-radius: 14px; gap: 14px; }\n  }\n<\/style>\n\n<!--\n  HINWEIS: Gleiches Hintergrundfoto wie FR-Startseite-Hero (anthony-salerno-...-unsplash-1.jpg)\n  fuer markenkonsistenz. Zielgruppe: ausschliesslich B2B (Agenturen\/Agents) -\n  kein Kaeufer-CTA, dies ist der geschuetzte Partnerbereich.\n-->\n\n<div class=\"mhf-hero\">\n  <div class=\"mhf-hero-inner\">\n    <span class=\"mhf-eyebrow\">Espace partenaires &middot; Acces reserve<\/span>\n    <h1>Profils de recherche internationaux<\/h1>\n    <p>Des acquereurs qualifies &ndash; germanophones et internationaux &ndash; avec budget confirme et criteres precis, en attente d&rsquo;un bien correspondant dans le Sud de la France.<\/p>\n    <div class=\"mhf-hero-card\">\n      <div class=\"mhf-trust-item\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2l3 6.5 7 1-5.2 5 1.2 7-6-3.2L6 21.5l1.2-7L2 9.5l7-1z\"\/><\/svg>\n        <span>Diffusion 100% gratuite<\/span>\n      <\/div>\n      <div class=\"mhf-trust-item\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg>\n        <span>Profils anonymises<\/span>\n      <\/div>\n      <div class=\"mhf-trust-item\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"3\"\/><circle cx=\"5\" cy=\"7\" r=\"2\"\/><circle cx=\"19\" cy=\"7\" r=\"2\"\/><circle cx=\"5\" cy=\"18\" r=\"2\"\/><circle cx=\"19\" cy=\"18\" r=\"2\"\/><line x1=\"9.5\" y1=\"10.5\" x2=\"6.3\" y2=\"8.2\"\/><line x1=\"14.5\" y1=\"10.5\" x2=\"17.7\" y2=\"8.2\"\/><line x1=\"9.5\" y1=\"13.5\" x2=\"6.3\" y2=\"16.2\"\/><line x1=\"14.5\" y1=\"13.5\" x2=\"17.7\" y2=\"16.2\"\/><\/svg>\n        <span>Mise en relation gratuite<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n<\/div>\n\n<!--\n  EINBAU-HINWEIS: Direkt nach diesem Block folgt die Karte+Karussell\n  (Block 02), die die Houzez-Loop\/Filter-Sidebar ERSETZT bzw. optisch\n  vorschaltet - siehe Absprache im Chat.\n-->\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-066ad75 e-con-full e-flex e-con e-parent\" data-id=\"066ad75\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a5bf4d5 elementor-widget elementor-widget-html\" data-id=\"a5bf4d5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div id=\"mhfFrProfils02\">\n<style>\n  #mhfFrProfils02 {\n    --mhf-navy: #024476;\n    --mhf-navy-dark: #01315a;\n    --mhf-green: #12BF11;\n    --mhf-green-deep: #0c9c0b;\n    --mhf-cream: #FAF7F1;\n    --mhf-sand: #E7DFCB;\n    --mhf-ink: #1b2a35;\n    --mhf-muted: #6b7a89;\n    --mhf-orange: #c97a1f;\n    --mhf-card-shadow: 0 1px 2px rgba(2,68,118,0.05), 0 10px 28px rgba(2,68,118,0.05);\n    box-sizing: border-box;\n    font-family: 'Montserrat', Arial, sans-serif;\n    color: var(--mhf-ink);\n    background: var(--mhf-cream);\n    padding: 44px 16px 56px;\n  }\n  #mhfFrProfils02 *, #mhfFrProfils02 *::before, #mhfFrProfils02 *::after { box-sizing: border-box; }\n  #mhfFrProfils02 .mhf-wrap { max-width: 1080px; margin: 0 auto; }\n\n  #mhfFrProfils02 .mhf-head { max-width: 680px; margin: 0 auto 24px; text-align: center; }\n  #mhfFrProfils02 .mhf-eyebrow {\n    display: block; font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase !important;\n    color: var(--mhf-green-deep); margin-bottom: 10px; font-weight: 700;\n  }\n  #mhfFrProfils02 h2 {\n    font-family: 'Cormorant Garamond', Georgia, serif !important;\n    color: var(--mhf-navy) !important; font-weight: 600 !important; text-transform: none !important;\n    font-size: 24px !important; line-height: 1.25 !important; margin: 0 0 10px;\n  }\n  #mhfFrProfils02 .mhf-intro { font-size: 13.5px; line-height: 1.6; color: var(--mhf-muted); margin: 0; }\n\n  #mhfFrProfils02 .mhf-card-outer {\n    background: #fff; border: 1px solid var(--mhf-sand); border-radius: 16px;\n    box-shadow: var(--mhf-card-shadow); padding: 22px 22px 20px;\n  }\n\n  \/* ---------- Karte ---------- *\/\n  #mhfFrProfils02 .mhf-map-outer {\n    position: relative; border: 1px solid var(--mhf-sand); border-radius: 14px; overflow: hidden;\n    background: var(--mhf-cream); margin-bottom: 16px;\n  }\n  #mhfFrProfils02 .mhf-map { width: 100%; height: 320px; }\n  #mhfFrProfils02 .mhf-map .leaflet-tile-pane { filter: grayscale(.18) saturate(.9) brightness(1.02); }\n  #mhfFrProfils02 .mhf-map-loading {\n    position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;\n    background: var(--mhf-cream); font-size: 13px; color: var(--mhf-muted); z-index: 5;\n    opacity: 1; transition: opacity .35s ease;\n  }\n  #mhfFrProfils02 .mhf-map-loading.mhf-fade-out { opacity: 0; pointer-events: none; }\n  #mhfFrProfils02 .mhf-map-legend {\n    position: absolute; left: 10px; bottom: 10px; z-index: 5; background: rgba(255,255,255,.92);\n    border: 1px solid var(--mhf-sand); border-radius: 10px; padding: 6px 10px;\n    font-size: 11px; color: var(--mhf-muted); display: flex; align-items: center; gap: 6px;\n  }\n  #mhfFrProfils02 .mhf-map-legend .mhf-legend-dot {\n    width: 12px; height: 12px; border-radius: 50%; background: rgba(18,191,17,.28); border: 1.5px solid var(--mhf-green-deep); flex-shrink: 0;\n  }\n  #mhfFrProfils02 .mhf-pin { width: 20px; height: 32px; cursor: pointer; }\n  #mhfFrProfils02 .mhf-pin-inner { display: block; width: 100%; height: 100%; transform-origin: 50% 100%; transition: transform .12s ease-out; }\n  #mhfFrProfils02 .mhf-pin-inner svg { width: 100%; height: 100%; display: block; }\n  #mhfFrProfils02 .mhf-pin-inner.mhf-pin-active { transform: scale(1.15); }\n\n  \/* ---------- Karussell ---------- *\/\n  #mhfFrProfils02 .mhf-carousel-wrap { position: relative; margin-bottom: 4px; }\n  #mhfFrProfils02 .mhf-carousel {\n    display: flex; gap: 12px; overflow-x: auto;\n    padding: 4px 2px 12px; -ms-overflow-style: none; scrollbar-width: none;\n    -webkit-overflow-scrolling: touch; cursor: grab; user-select: none;\n  }\n  #mhfFrProfils02 .mhf-carousel.mhf-dragging { cursor: grabbing; }\n  #mhfFrProfils02 .mhf-carousel.mhf-dragging .mhf-sp-card { pointer-events: none; }\n  #mhfFrProfils02 .mhf-carousel::-webkit-scrollbar { display: none; }\n\n  #mhfFrProfils02 .mhf-sp-card {\n    flex: 0 0 auto; width: 230px; text-decoration: none; color: inherit; display: block;\n    background: #fff; border: 1px solid var(--mhf-sand); border-radius: 14px; overflow: hidden;\n    box-shadow: var(--mhf-card-shadow); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;\n  }\n  #mhfFrProfils02 .mhf-sp-card:hover { transform: translateY(-3px); }\n  #mhfFrProfils02 .mhf-sp-card.mhf-card-active { border-color: var(--mhf-navy); }\n  #mhfFrProfils02 .mhf-sp-img-wrap { position: relative; height: 130px; background: var(--mhf-sand); overflow: hidden; }\n  #mhfFrProfils02 .mhf-sp-img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; }\n  #mhfFrProfils02 .mhf-sp-budget-badge {\n    position: absolute; left: 8px; bottom: 8px; background: var(--mhf-navy); color: #fff;\n    font-size: 11.5px; font-weight: 700; padding: 3px 9px; border-radius: 20px;\n  }\n  #mhfFrProfils02 .mhf-sp-exclusif-badge {\n    position: absolute; top: 8px; right: 8px; background: var(--mhf-green); color: #fff;\n    font-size: 10px; font-weight: 700; padding: 3px 8px; border-radius: 20px; text-transform: uppercase; letter-spacing: .04em;\n  }\n  #mhfFrProfils02 .mhf-sp-body { padding: 11px 13px 13px; }\n  #mhfFrProfils02 .mhf-sp-title {\n    font-family: 'Cormorant Garamond', Georgia, serif; font-size: 14.5px; font-weight: 700; color: var(--mhf-navy);\n    margin: 0 0 7px; line-height: 1.3;\n    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;\n  }\n  #mhfFrProfils02 .mhf-sp-facts { display: flex; flex-wrap: wrap; gap: 5px 10px; margin-bottom: 8px; }\n  #mhfFrProfils02 .mhf-sp-fact { display: flex; align-items: center; gap: 4px; font-size: 11px; color: var(--mhf-muted); }\n  #mhfFrProfils02 .mhf-sp-fact svg { width: 12px; height: 12px; color: var(--mhf-green-deep); flex-shrink: 0; }\n  #mhfFrProfils02 .mhf-sp-types { font-size: 11px; color: var(--mhf-muted); margin: 0 0 4px; }\n  #mhfFrProfils02 .mhf-sp-cta { font-size: 12px; font-weight: 700; color: var(--mhf-navy); }\n  #mhfFrProfils02 .mhf-sp-cta:hover { text-decoration: underline; }\n\n  #mhfFrProfils02 .mhf-arrow {\n    position: absolute; top: 50%; margin-top: -17px; width: 32px; height: 32px; border-radius: 50%;\n    background: #fff; border: 1px solid var(--mhf-sand); box-shadow: var(--mhf-card-shadow);\n    display: flex; align-items: center; justify-content: center; cursor: pointer; color: var(--mhf-navy);\n    z-index: 5;\n  }\n  #mhfFrProfils02 .mhf-arrow:hover { border-color: var(--mhf-navy); }\n  #mhfFrProfils02 .mhf-arrow.mhf-prev { left: -15px; }\n  #mhfFrProfils02 .mhf-arrow.mhf-next { right: -15px; }\n  #mhfFrProfils02 .mhf-arrow svg { width: 15px; height: 15px; }\n\n  #mhfFrProfils02 .mhf-empty { padding: 30px 0 10px; text-align: center; }\n  #mhfFrProfils02 .mhf-empty p { font-size: 13.5px; color: var(--mhf-muted); margin: 0; }\n\n  @media (max-width: 760px) {\n    #mhfFrProfils02 { padding: 32px 12px 40px; }\n    #mhfFrProfils02 .mhf-card-outer { padding: 16px 14px 16px; }\n    #mhfFrProfils02 .mhf-map { height: 240px; }\n    #mhfFrProfils02 .mhf-arrow.mhf-prev { left: -6px; }\n    #mhfFrProfils02 .mhf-arrow.mhf-next { right: -6px; }\n  }\n<\/style>\n\n<div class=\"mhf-wrap\">\n  <div class=\"mhf-head\">\n    <span class=\"mhf-eyebrow\">Ou cherchent nos acquereurs&nbsp;?<\/span>\n    <h2>Localisation et rayon de recherche de chaque profil<\/h2>\n    <p class=\"mhf-intro\">Chaque cercle vert represente le rayon de recherche autour de la zone souhaitee. Cliquez sur une carte ou une epingle pour les relier.<\/p>\n  <\/div>\n\n  <div class=\"mhf-card-outer\">\n    <div class=\"mhf-map-outer\" id=\"mhfSpMapOuter\">\n      <div class=\"mhf-map\" id=\"mhfSpMap\"><\/div>\n      <div class=\"mhf-map-loading\" id=\"mhfSpMapLoading\">Chargement de la carte&hellip;<\/div>\n      <div class=\"mhf-map-legend\"><span class=\"mhf-legend-dot\"><\/span><span>Rayon de recherche approximatif<\/span><\/div>\n    <\/div>\n\n    <div class=\"mhf-carousel-wrap\">\n      <button type=\"button\" class=\"mhf-arrow mhf-prev\" id=\"mhfSpPrev\" aria-label=\"Precedent\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"15 18 9 12 15 6\"\/><\/svg>\n      <\/button>\n      <div class=\"mhf-carousel\" id=\"mhfSpCarousel\"><\/div>\n      <button type=\"button\" class=\"mhf-arrow mhf-next\" id=\"mhfSpNext\" aria-label=\"Suivant\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg>\n      <\/button>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function () {\n  var root = document.getElementById('mhfFrProfils02');\n  if (!root) return;\n\n  var DEFAULT_CENTER = [43.6, 3.6];\n  var DEFAULT_RADIUS_KM = 40;\n  \/\/ Plausibilitaetsgrenze: das Rayon-Feld ist das zweckentfremdete\n  \/\/ Terrain\/Land-Feld - bei bereits bestehenden Eintraegen kann dort noch\n  \/\/ eine alte Grundstuecksflaeche in m\u00b2 stehen (z.B. \"2000\"), die sonst\n  \/\/ faelschlich als 2000 km Suchradius gelesen wuerde und die Karte auf\n  \/\/ Weltansicht zoomen liesse. Alles ueber diesem Wert wird verworfen und\n  \/\/ durch den Standard-Radius ersetzt.\n  var MAX_PLAUSIBLE_RADIUS_KM = 150;\n  function resolveRadiusKm(raw) {\n    if (raw && raw > 0 && raw <= MAX_PLAUSIBLE_RADIUS_KM) return raw;\n    return DEFAULT_RADIUS_KM;\n  }\n\n  \/\/ ---------------------------------------------------------------\n  \/\/ Gleiches Geokodierungs-System wie Dashboard-Karte\/Kartensuche:\n  \/\/ bekannte Orte sofort per COMMUNE_COORDS, alles andere im\n  \/\/ Hintergrund via Nominatim nachschaerfen (localStorage-Cache,\n  \/\/ gemeinsam mit den anderen Modulen).\n  \/\/ ---------------------------------------------------------------\n  var COMMUNE_COORDS = {\n    'narbonne': [43.1839, 3.0039], 'carcassonne': [43.2130, 2.3491], 'limoux': [43.0575, 2.2179],\n    'lezignan corbieres': [43.1975, 2.7605], 'olonzac': [43.2295, 2.7009], 'la redorte': [43.1976, 2.6511],\n    'gruissan': [43.1088, 3.0873], 'leucate': [42.9089, 3.0289], 'sigean': [43.0333, 2.9833],\n    'peyriac de mer': [43.0500, 2.9500], 'fontjoncouse': [43.0725, 2.7647], 'fabrezan': [43.1683, 2.7883],\n    'ferrals les corbieres': [43.1875, 2.7444], 'villegailhenc': [43.2578, 2.4322], 'trebes': [43.2117, 2.4453],\n    'rieux minervois': [43.2764, 2.6231], 'azille': [43.2853, 2.6444], 'caunes minervois': [43.3244, 2.5289],\n    'conques sur orbiel': [43.2683, 2.4444], 'alzonne': [43.2761, 2.1975], 'bram': [43.2447, 2.1136],\n    'castelnaudary': [43.3139, 1.9539], 'pennautier': [43.2394, 2.3072], 'salles d aude': [43.1717, 3.0349],\n    'nissan lez enserune': [43.3167, 3.1167], 'castelnau d aude': [43.1280, 2.7510], 'tourouzelle': [43.1300, 2.6500],\n    'lagrasse': [43.1122, 2.6006], 'saint hilaire': [43.1497, 2.1972], 'montreal': [43.1958, 2.1408],\n    'montpellier': [43.6108, 3.8767], 'beziers': [43.3427, 3.2158], 'sete': [43.4029, 3.6967],\n    'agde': [43.3097, 3.4756], 'cap d agde': [43.2857, 3.4956], 'pezenas': [43.4614, 3.4238],\n    'clermont l herault': [43.6272, 3.4319], 'lodeve': [43.7269, 3.3186], 'bedarieux': [43.6136, 3.1614],\n    'gignac': [43.6592, 3.5486], 'lunel': [43.6773, 4.1362], 'frontignan': [43.4467, 3.7539],\n    'meze': [43.4258, 3.6039], 'marseillan': [43.3273, 3.5478], 'vias': [43.3010, 3.4179],\n    'valras plage': [43.2500, 3.2953], 'servian': [43.3903, 3.2989], 'florensac': [43.3800, 3.4664],\n    'cazouls les beziers': [43.3703, 3.1878], 'murviel les beziers': [43.4033, 3.0900],\n    'roujan': [43.4906, 3.3183], 'capestang': [43.3333, 3.0333], 'la grande motte': [43.5629, 4.0783],\n    'castelnau le lez': [43.6244, 3.9014], 'saint andre de sangonis': [43.6467, 3.5658],\n    'pignan': [43.6069, 3.7583], 'cournonterral': [43.5744, 3.7358], 'palavas les flots': [43.5333, 3.9333],\n    'perpignan': [42.6986, 2.8954], 'argeles sur mer': [42.5459, 3.0273],\n    'argeles village': [42.5586, 3.0089], 'argeles plage': [42.5666, 3.0454],\n    'collioure': [42.5259, 3.0827], 'ceret': [42.4886, 2.7508], 'elne': [42.6013, 2.9698],\n    'pollestres': [42.6398, 2.8933], 'estagel': [42.7736, 2.6493], 'laroque des alberes': [42.5347, 2.8887],\n    'port vendres': [42.5175, 3.1064], 'banyuls sur mer': [42.4831, 3.1281], 'canet en roussillon': [42.6989, 3.0333],\n    'saint cyprien': [42.6217, 3.0333], 'thuir': [42.6383, 2.7583], 'ille sur tet': [42.6706, 2.6183],\n    'prades': [42.6169, 2.4181], 'saint laurent de la salanque': [42.7867, 2.9789], 'rivesaltes': [42.7658, 2.8619],\n    'le boulou': [42.5233, 2.8319], 'cabestany': [42.6825, 2.9236], 'saleilles': [42.6689, 2.9614],\n    'nimes': [43.8367, 4.3601], 'ales': [44.1254, 4.0817], 'uzes': [44.0122, 4.4195],\n    'beaucaire': [43.8069, 4.6395], 'bagnols sur ceze': [44.1614, 4.6197], 'vauvert': [43.6994, 4.2669],\n    'aigues mortes': [43.5658, 4.1913], 'le vigan': [44.0000, 3.6000], 'anduze': [44.0567, 3.9836],\n    'saint gilles': [43.6772, 4.4300], 'sommieres': [43.7889, 4.0894], 'quissac': [43.9231, 4.0033],\n    'villeneuve les avignon': [43.9633, 4.7975], 'remoulins': [43.9247, 4.5647],\n    'pont saint esprit': [44.2544, 4.6531],\n    'toulon': [43.1242, 5.9280], 'draguignan': [43.5382, 6.4658], 'frejus': [43.4332, 6.7362],\n    'saint raphael': [43.4253, 6.7683], 'hyeres': [43.1204, 6.1287], 'sainte maxime': [43.3097, 6.6381],\n    'cogolin': [43.2528, 6.5306], 'grimaud': [43.2758, 6.5236], 'le lavandou': [43.1381, 6.3667],\n    'bormes les mimosas': [43.1508, 6.3417], 'brignoles': [43.4058, 6.0625], 'le luc': [43.3944, 6.3900],\n    'lorgues': [43.4936, 6.3603], 'cotignac': [43.5228, 6.1494], 'aups': [43.6297, 6.2172],\n    'bandol': [43.1358, 5.7503], 'sanary sur mer': [43.1194, 5.8028], 'la seyne sur mer': [43.1003, 5.8836],\n    'six fours les plages': [43.0942, 5.8383], 'carqueiranne': [43.0942, 6.0725], 'la londe les maures': [43.1381, 6.2308],\n    'la garde': [43.1219, 6.0083], 'sollies pont': [43.1444, 6.0389],\n    'nice': [43.7102, 7.2620], 'cannes': [43.5528, 7.0174], 'antibes': [43.5804, 7.1251],\n    'grasse': [43.6584, 6.9227], 'menton': [43.7745, 7.5028], 'vence': [43.7229, 7.1122],\n    'mougins': [43.6003, 6.9986], 'valbonne': [43.6389, 7.0125], 'mandelieu la napoule': [43.5389, 6.9375],\n    'villeneuve loubet': [43.6522, 7.1256], 'le cannet': [43.5761, 7.0186], 'saint laurent du var': [43.6708, 7.1875],\n    'beaulieu sur mer': [43.7050, 7.3306], 'roquebrune cap martin': [43.7639, 7.4983],\n    'saint paul de vence': [43.6989, 7.1214], 'tourrettes sur loup': [43.7183, 7.0625],\n    'digne les bains': [44.0925, 6.2361], 'manosque': [43.8296, 5.7868], 'sisteron': [44.1955, 5.9439],\n    'forcalquier': [43.9600, 5.7789], 'castellane': [43.8461, 6.5122], 'barcelonnette': [44.3856, 6.6522],\n    'riez': [43.8189, 6.0894], 'greoux les bains': [43.7614, 5.8836],\n\n    \/\/ ---------------------------------------------------------------\n    \/\/ Erweiterung: Suchprofile koennen (anders als normale Anzeigen)\n    \/\/ ueberall in Frankreich liegen (siehe Beispiele Bretagne, Bordeaux).\n    \/\/ Groessere Staedte\/Praefekturen landesweit ergaenzt, damit Nadeln\n    \/\/ sofort erscheinen statt auf Nominatim warten zu muessen.\n    \/\/ ---------------------------------------------------------------\n    'paris': [48.8566, 2.3522], 'marseille': [43.2965, 5.3698], 'lyon': [45.7640, 4.8357],\n    'toulouse': [43.6047, 1.4442], 'bordeaux': [44.8378, -0.5792], 'lille': [50.6292, 3.0573],\n    'nantes': [47.2184, -1.5536], 'strasbourg': [48.5734, 7.7521], 'rennes': [48.1173, -1.6778],\n    'reims': [49.2583, 4.0317], 'le havre': [49.4944, 0.1079], 'saint etienne': [45.4397, 4.3872],\n    'dijon': [47.3220, 5.0415], 'angers': [47.4784, -0.5632], 'grenoble': [45.1885, 5.7245],\n    'brest': [48.3904, -4.4861], 'le mans': [48.0061, 0.1996], 'amiens': [49.8941, 2.2957],\n    'tours': [47.3941, 0.6848], 'limoges': [45.8336, 1.2611], 'clermont ferrand': [45.7772, 3.0870],\n    'villeurbanne': [45.7667, 4.8803], 'orleans': [47.9029, 1.9093], 'metz': [49.1193, 6.1757],\n    'rouen': [49.4431, 1.0993], 'mulhouse': [47.7508, 7.3359], 'caen': [49.1829, -0.3707],\n    'nancy': [48.6921, 6.1844], 'poitiers': [46.5802, 0.3404], 'versailles': [48.8014, 2.1301],\n    'la rochelle': [46.1603, -1.1511], 'annecy': [45.8992, 6.1294], 'pau': [43.2951, -0.3708],\n    'quimper': [47.9960, -4.1024], 'vannes': [47.6582, -2.7608], 'lorient': [47.7482, -3.3702],\n    'saint brieuc': [48.5142, -2.7652], 'lannion': [48.7324, -3.4570], 'dinan': [48.4529, -2.0473],\n    'saint malo': [48.6493, -2.0257], 'fougeres': [48.3517, -1.2019], 'redon': [47.6512, -2.0847],\n    'angouleme': [45.6484, 0.1560], 'perigueux': [45.1848, 0.7213], 'bergerac': [44.8508, 0.4813],\n    'agen': [44.2049, 0.6212], 'auch': [43.6462, 0.5854], 'tarbes': [43.2327, 0.0736],\n    'bayonne': [43.4929, -1.4748], 'biarritz': [43.4832, -1.5586], 'mont de marsan': [43.8898, -0.4980],\n    'niort': [46.3235, -0.4593], 'chartres': [48.4472, 1.4894], 'blois': [47.5861, 1.3359],\n    'bourges': [47.0810, 2.3987], 'chateauroux': [46.8107, 1.6911], 'vichy': [46.1275, 3.4265],\n    'moulins': [46.5658, 3.3324], 'roanne': [46.0339, 4.0710], 'valence': [44.9333, 4.8924],\n    'chambery': [45.5646, 5.9178], 'annemasse': [46.1919, 6.2358], 'thonon les bains': [46.3706, 6.4778],\n    'bourg en bresse': [46.2056, 5.2258], 'macon': [46.3069, 4.8283], 'auxerre': [47.7982, 3.5730],\n    'troyes': [48.2973, 4.0744], 'chalons en champagne': [48.9558, 4.3670], 'charleville mezieres': [49.7716, 4.7199],\n    'epinal': [48.1747, 6.4487], 'colmar': [48.0794, 7.3585], 'belfort': [47.6379, 6.8630],\n    'besancon': [47.2378, 6.0241], 'lons le saunier': [46.6739, 5.5540], 'vesoul': [47.6236, 6.1547],\n    'la roche sur yon': [46.6705, -1.4269], 'cholet': [47.0600, -0.8792], 'laval': [48.0698, -0.7699],\n    'saint nazaire': [47.2733, -2.2137]\n  };\n\n  function normalize(str) {\n    return String(str || '')\n      .normalize('NFD').replace(\/[\\u0300-\\u036f]\/g, '')\n      .toLowerCase()\n      .replace(\/['\\u2019\\-]\/g, ' ')\n      .replace(\/[^a-z0-9 ]\/g, ' ')\n      .replace(\/\\s+\/g, ' ')\n      .trim();\n  }\n\n  function extractLocation(addressText) {\n    var parts = String(addressText || '').split(',').map(function (s) { return s.trim(); }).filter(Boolean);\n    if (parts.length <= 6) return { text: parts.slice(0, 2).join(', '), parts: parts };\n    var middle = parts.slice(1, parts.length - 5);\n    if (middle.length === 0) middle = [parts[1]];\n    var tail = middle.slice(-2);\n    return { text: tail.join(', '), parts: parts };\n  }\n\n  function geocode(parts) {\n    for (var i = 0; i < parts.length; i++) {\n      var key = normalize(parts[i]);\n      if (COMMUNE_COORDS[key]) return COMMUNE_COORDS[key];\n    }\n    return null;\n  }\n\n  function mhfDejitterCoords(items) {\n    var buckets = {};\n    items.forEach(function (it) {\n      var key = it.coords[0].toFixed(5) + ',' + it.coords[1].toFixed(5);\n      (buckets[key] = buckets[key] || []).push(it);\n    });\n    Object.keys(buckets).forEach(function (key) {\n      var group = buckets[key];\n      if (group.length < 2) return;\n      var baseLat = group[0].coords[0], baseLng = group[0].coords[1];\n      var latRad = baseLat * Math.PI \/ 180;\n      group.forEach(function (it, i) {\n        if (i === 0) return;\n        var angle = (i \/ group.length) * 2 * Math.PI;\n        var radiusDeg = 0.0035 + 0.0018 * Math.floor(i \/ 6);\n        it.coords = [\n          baseLat + radiusDeg * Math.sin(angle),\n          baseLng + (radiusDeg * Math.cos(angle)) \/ Math.max(0.2, Math.cos(latRad))\n        ];\n      });\n    });\n  }\n\n  var GEOCODE_CACHE_KEY = 'mhfGeocodeCacheV1';\n  var GEOCODE_CACHE_TTL_MS = 1000 * 60 * 60 * 24 * 180;\n  function mhfLoadGeocodeCache() {\n    try { var raw = localStorage.getItem(GEOCODE_CACHE_KEY); return raw ? JSON.parse(raw) : {}; } catch (e) { return {}; }\n  }\n  function mhfSaveGeocodeCache(cache) {\n    try { localStorage.setItem(GEOCODE_CACHE_KEY, JSON.stringify(cache)); } catch (e) { \/* Speicher voll\/nicht verfuegbar - ueberspringen *\/ }\n  }\n  var mhfGeocodeCache = mhfLoadGeocodeCache();\n\n  function mhfGeocodeAddress(address) {\n    var url = 'https:\/\/nominatim.openstreetmap.org\/search?format=json&limit=1&countrycodes=fr&q=' + encodeURIComponent(address);\n    return fetch(url, { headers: { 'Accept-Language': 'fr,de' } })\n      .then(function (res) { return res.ok ? res.json() : []; })\n      .then(function (results) { return (results && results[0]) ? [parseFloat(results[0].lat), parseFloat(results[0].lon)] : null; })\n      .catch(function () { return null; });\n  }\n\n  function mhfRefineCoordsInBackground(itemsToRefine, allItems) {\n    var queue = [];\n    var seenAddr = {};\n    var appliedFromCache = false;\n\n    itemsToRefine.forEach(function (it) {\n      if (!it.fullAddress) return;\n      var key = it.fullAddress;\n      if (seenAddr[key]) return;\n      seenAddr[key] = true;\n      var cached = mhfGeocodeCache[key];\n      if (cached && (Date.now() - cached.ts) < GEOCODE_CACHE_TTL_MS) {\n        itemsToRefine.forEach(function (it2) { if (it2.fullAddress === key) it2.coords = [cached.lat, cached.lng]; });\n        appliedFromCache = true;\n        return;\n      }\n      queue.push(key);\n    });\n\n    \/\/ WICHTIG: renderMap() IMMER mit der KOMPLETTEN Liste (allItems)\n    \/\/ aufrufen, nicht mit der hier gefilterten Teilmenge (itemsToRefine).\n    \/\/ draw() entfernt bei jedem Aufruf ALLE bestehenden Nadeln\/Kreise und\n    \/\/ zeichnet nur die uebergebenen neu - mit der gefilterten Teilmenge\n    \/\/ wuerden dadurch bereits korrekt gesetzte Nadeln anderer Profile\n    \/\/ geloescht und nicht wieder hinzugefuegt (genau das war der Bug, durch\n    \/\/ den nur ein einzelnes nachgeladenes Profil sichtbar blieb).\n    if (appliedFromCache) {\n      mhfDejitterCoords(allItems.filter(function (it) { return it.coords; }));\n      renderMap(allItems, true);\n    }\n    if (!queue.length) return;\n\n    var i = 0;\n    function step() {\n      if (i >= queue.length) return;\n      var address = queue[i++];\n      mhfGeocodeAddress(address).then(function (coords) {\n        if (coords) {\n          mhfGeocodeCache[address] = { lat: coords[0], lng: coords[1], ts: Date.now() };\n          mhfSaveGeocodeCache(mhfGeocodeCache);\n          allItems.forEach(function (it) { if (it.fullAddress === address) it.coords = coords; });\n          mhfDejitterCoords(allItems.filter(function (it) { return it.coords; }));\n          renderMap(allItems, true);\n        }\n        setTimeout(step, 1100);\n      });\n    }\n    step();\n  }\n\n  var carousel = root.querySelector('#mhfSpCarousel');\n  var prevBtn = root.querySelector('#mhfSpPrev');\n  var nextBtn = root.querySelector('#mhfSpNext');\n  var mapOuter = root.querySelector('#mhfSpMapOuter');\n  var mapEl = root.querySelector('#mhfSpMap');\n  var mapLoading = root.querySelector('#mhfSpMapLoading');\n\n  var map = null;\n  var markersByIdx = {};\n  var circlesByIdx = {};\n  var activeIdx = null;\n\n  function decodeEntities(str) {\n    var el = document.createElement('textarea');\n    el.innerHTML = str;\n    return el.value;\n  }\n\n  function escapeHtml(str) {\n    return String(decodeEntities(str)).replace(\/[&<>\"']\/g, function (c) {\n      return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' }[c];\n    });\n  }\n\n  function formatBudget(n) {\n    if (n == null) return '';\n    return Math.round(n).toLocaleString('fr-FR').replace(\/,\/g, ' ') + '\\u00a0\\u20ac';\n  }\n\n  var PIN_SVG = '<div class=\"mhf-pin-inner\"><svg viewBox=\"0 0 22 38\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">' +\n    '<path d=\"M11 0C4.9 0 0 4.9 0 11c0 10.5 11 23 11 23s11-12.5 11-23C22 4.9 17.1 0 11 0z\" fill=\"#024476\"\/>' +\n    '<circle cx=\"11\" cy=\"11\" r=\"4.5\" fill=\"#FAF7F1\"\/><\/svg><\/div>';\n  var PIN_SVG_ACTIVE = '<div class=\"mhf-pin-inner mhf-pin-active\"><svg viewBox=\"0 0 22 38\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">' +\n    '<path d=\"M11 0C4.9 0 0 4.9 0 11c0 10.5 11 23 11 23s11-12.5 11-23C22 4.9 17.1 0 11 0z\" fill=\"#12BF11\"\/>' +\n    '<circle cx=\"11\" cy=\"11\" r=\"4.5\" fill=\"#ffffff\"\/><\/svg><\/div>';\n\n  \/\/ ---------------------------------------------------------------\n  \/\/ Umkreis-Kreise werden NICHT als Leaflet L.circle-Pfad-Objekte\n  \/\/ gerendert, sondern als simple divIcon-Marker (wie die Nadeln selbst).\n  \/\/ Grund: L.circle loeste auf der Live-Seite zuverlaessig einen internen\n  \/\/ Leaflet-Fehler aus (\"Cannot read properties of undefined (reading 'x')\"\n  \/\/ in _updateCircle\/f.intersects) - vermutlich durch einen Konflikt mit\n  \/\/ einer zweiten Leaflet-Instanz, die Houzez selbst auf der Seite laedt.\n  \/\/ divIcon-Marker nutzen Leaflets Pfad-Renderer gar nicht und umgehen den\n  \/\/ Fehler komplett.\n  \/\/ ---------------------------------------------------------------\n  function metersPerPixel(lat, zoom) {\n    return 156543.03392804097 * Math.cos(lat * Math.PI \/ 180) \/ Math.pow(2, zoom);\n  }\n\n  \/\/ Rein optischer Verstaerkungsfaktor fuer die gezeichnete Kreisgroesse\n  \/\/ (auf Wunsch verdoppelt) - betrifft NUR die visuelle Darstellung, nicht\n  \/\/ die km-Angabe auf den Karten oder die zugrunde liegenden Daten.\n  var CIRCLE_VISUAL_SCALE = 2;\n\n  function makeRadiusIcon(radiusPx, active) {\n    var d = Math.max(2 * radiusPx, 4);\n    var bg = active ? 'rgba(18,191,17,0.30)' : 'rgba(18,191,17,0.18)';\n    var border = active ? 'rgba(12,156,11,0.9)' : 'rgba(12,156,11,0.55)';\n    var html = '<div style=\"width:' + d + 'px;height:' + d + 'px;border-radius:50%;' +\n      'background:' + bg + ';border:1.5px solid ' + border + ';box-sizing:border-box;\"><\/div>';\n    return window.L.divIcon({ className: 'mhf-radius-circle', html: html, iconSize: [d, d], iconAnchor: [d \/ 2, d \/ 2] });\n  }\n\n  function radiusBounds(coords, radiusM) {\n    return window.L.latLng(coords[0], coords[1]).toBounds(radiusM * 2);\n  }\n\n  function setActiveMarker(idx) {\n    if (idx === activeIdx) return;\n    if (activeIdx != null && markersByIdx[activeIdx]) {\n      var prevEl = markersByIdx[activeIdx].getElement();\n      if (prevEl) prevEl.innerHTML = PIN_SVG;\n    }\n    if (activeIdx != null && circlesByIdx[activeIdx]) {\n      var prevC = circlesByIdx[activeIdx];\n      prevC.marker.setIcon(makeRadiusIcon(prevC.radiusPx, false));\n    }\n    activeIdx = idx;\n    var marker = markersByIdx[idx];\n    if (marker) {\n      var el = marker.getElement();\n      if (el) el.innerHTML = PIN_SVG_ACTIVE;\n    }\n    if (circlesByIdx[idx]) {\n      var c = circlesByIdx[idx];\n      c.marker.setIcon(makeRadiusIcon(c.radiusPx, true));\n    }\n    Array.prototype.forEach.call(carousel.querySelectorAll('.mhf-sp-card'), function (card) {\n      card.classList.toggle('mhf-card-active', Number(card.dataset.idx) === idx);\n    });\n  }\n\n  function focusIdx(idx) {\n    setActiveMarker(idx);\n    var card = carousel.querySelector('.mhf-sp-card[data-idx=\"' + idx + '\"]');\n    if (card) card.scrollIntoView({ behavior: 'smooth', inline: 'center', block: 'nearest' });\n    if (map && markersByIdx[idx]) {\n      var c = circlesByIdx[idx];\n      if (c) {\n        var targetBounds = radiusBounds(c.coords, c.radiusM).pad(0.15);\n        var applyZoom = function () {\n          map.fitBounds(targetBounds, { maxZoom: 12 });\n          if (map.getZoom() < 7) map.setZoom(7);\n        };\n        applyZoom();\n        \/\/ Nachziehen kurz nach dem Klick: falls ein anderes Skript auf der\n        \/\/ Seite (z.B. Houzez' eigene Kartenlogik, die dieselbe globale\n        \/\/ Leaflet-Instanz nutzt) die Kartenansicht kurz danach ueberschreibt,\n        \/\/ setzen wir unsere Zielansicht hier nochmal durch.\n        setTimeout(applyZoom, 350);\n      } else { map.panTo(markersByIdx[idx].getLatLng()); }\n    }\n  }\n\n  function makeIcon() {\n    return window.L.divIcon({ className: 'mhf-pin', html: PIN_SVG, iconSize: [20, 32], iconAnchor: [10, 30], popupAnchor: [0, -26] });\n  }\n\n  var __leafletLoadState = 'idle'; \/\/ 'idle' | 'loading' | 'ready' | 'failed'\n  var __leafletCallbacks = [];\n  function loadLeaflet(cb) {\n    if (window.L) { __leafletLoadState = 'ready'; cb(); return; }\n    if (__leafletLoadState === 'failed') { mapOuter.style.display = 'none'; return; }\n    __leafletCallbacks.push(cb);\n    if (__leafletLoadState === 'loading') return; \/\/ Skript wird schon geladen - nur anhaengen, nicht doppelt einfuegen\n    __leafletLoadState = 'loading';\n\n    var css = document.createElement('link');\n    css.rel = 'stylesheet';\n    css.href = 'https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/leaflet\/1.9.4\/leaflet.min.css';\n    document.head.appendChild(css);\n    var settled = false;\n    function runCallbacks(success) {\n      if (settled) return;\n      settled = true;\n      __leafletLoadState = success ? 'ready' : 'failed';\n      if (!success) { mapOuter.style.display = 'none'; return; }\n      var cbs = __leafletCallbacks;\n      __leafletCallbacks = [];\n      cbs.forEach(function (fn) { fn(); });\n    }\n    var js = document.createElement('script');\n    js.src = 'https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/leaflet\/1.9.4\/leaflet.min.js';\n    js.onload = function () { runCallbacks(true); };\n    js.onerror = function () { runCallbacks(false); };\n    document.head.appendChild(js);\n    setTimeout(function () { runCallbacks(!!window.L); }, 6000);\n  }\n\n  function renderMap(items, isRebuild) {\n    if (!items.length) { mapOuter.style.display = 'none'; return; }\n    mapOuter.style.display = 'block';\n\n    function draw() {\n      \/\/ Absicherung gegen den Leaflet-Fehler \"Cannot read properties of\n      \/\/ undefined (reading 'x')\": dieser tritt auf, wenn L.map() auf einem\n      \/\/ Container aufgerufen wird, der im DOM noch keine echte Breite\/Hoehe\n      \/\/ hat (z.B. weil Elementor - besonders im Vorschau-Modus - das Layout\n      \/\/ in diesem Moment noch nicht fertig aufgebaut hat). Wir warten daher\n      \/\/ aktiv, bis der Container eine Groesse > 0 hat, bevor die Karte\n      \/\/ initialisiert wird. Bereits existierende Karten (map schon gesetzt)\n      \/\/ ueberspringen diese Wartezeit.\n      if (!map && mapEl.offsetWidth === 0) {\n        var __sizeTries = 0;\n        (function waitForContainerSize() {\n          __sizeTries++;\n          if (mapEl.offsetWidth > 0 || __sizeTries > 60) {\n            draw();\n          } else {\n            requestAnimationFrame(waitForContainerSize);\n          }\n        })();\n        return;\n      }\n\n      try {\n        if (!map) {\n          map = window.L.map(mapEl, { scrollWheelZoom: false, fadeAnimation: false }).setView(DEFAULT_CENTER, 8);\n          map.invalidateSize();\n          var tileLayer = window.L.tileLayer('https:\/\/{s}.tile.openstreetmap.org\/{z}\/{x}\/{y}.png', { attribution: '&copy; OpenStreetMap', maxZoom: 18 }).addTo(map);\n          tileLayer.once('load', function () {\n            mapLoading.classList.add('mhf-fade-out');\n            setTimeout(function () { mapLoading.style.display = 'none'; }, 380);\n          });\n        }\n\n        var mapRef = map;\n        var zoomHandlerAttached = mapRef.__mhfZoomHandlerAttached;\n\n        mapRef.whenReady(function () {\n          if (mapRef !== map) return; \/\/ Karte wurde zwischenzeitlich neu erstellt\n\n          Object.keys(markersByIdx).forEach(function (k) { map.removeLayer(markersByIdx[k]); });\n          Object.keys(circlesByIdx).forEach(function (k) { map.removeLayer(circlesByIdx[k].marker); });\n          markersByIdx = {};\n          circlesByIdx = {};\n\n          var boundsAcc = null;\n          items.forEach(function (it) {\n            if (!it.coords) return;\n\n            var radiusM = resolveRadiusKm(it.rayon_km) * 1000;\n            var radiusPx = (radiusM \/ metersPerPixel(it.coords[0], map.getZoom())) * CIRCLE_VISUAL_SCALE;\n            var circleMarker = window.L.marker(it.coords, {\n              icon: makeRadiusIcon(radiusPx, false),\n              interactive: true,\n              zIndexOffset: -1000\n            });\n            circleMarker.on('click', function () { focusIdx(it.__idx); });\n            circleMarker.addTo(map);\n            circlesByIdx[it.__idx] = { marker: circleMarker, radiusM: radiusM, radiusPx: radiusPx, coords: it.coords };\n\n            var marker = window.L.marker(it.coords, { icon: makeIcon() });\n            marker.on('click', function () { focusIdx(it.__idx); });\n            marker.addTo(map);\n            markersByIdx[it.__idx] = marker;\n\n            var b = radiusBounds(it.coords, radiusM);\n            boundsAcc = boundsAcc ? boundsAcc.extend(b) : b;\n          });\n\n          \/\/ Bei Zoom-Aenderungen muessen die Kreis-Overlays neu berechnet\n          \/\/ werden (Pixelradius haengt vom Zoomlevel ab). Handler wird pro\n          \/\/ Karteninstanz nur einmal registriert.\n          if (!zoomHandlerAttached) {\n            map.on('zoomend', function () {\n              Object.keys(circlesByIdx).forEach(function (k) {\n                var c = circlesByIdx[k];\n                var newRadiusPx = (c.radiusM \/ metersPerPixel(c.coords[0], map.getZoom())) * CIRCLE_VISUAL_SCALE;\n                c.radiusPx = newRadiusPx;\n                c.marker.setIcon(makeRadiusIcon(newRadiusPx, Number(k) === activeIdx));\n              });\n            });\n            map.__mhfZoomHandlerAttached = true;\n          }\n\n          if (boundsAcc && !isRebuild) {\n            map.fitBounds(boundsAcc.pad(0.15), { maxZoom: 11 });\n            \/\/ Zweite Absicherung: Karte soll nie weiter als noetig rauszoomen,\n            \/\/ selbst falls doch mal ein unplausibler Wert durchrutscht.\n            if (map.getZoom() < 7) map.setZoom(7);\n            \/\/ Nach fitBounds hat sich der Zoom evtl. geaendert - Kreisgroessen\n            \/\/ einmal nachziehen, damit sie zum finalen Zoom passen.\n            map.fire('zoomend');\n          }\n          if (isRebuild && activeIdx != null && markersByIdx[activeIdx]) {\n            var el = markersByIdx[activeIdx].getElement();\n            if (el) el.innerHTML = PIN_SVG_ACTIVE;\n            if (circlesByIdx[activeIdx]) {\n              var ac = circlesByIdx[activeIdx];\n              ac.marker.setIcon(makeRadiusIcon(ac.radiusPx, true));\n            }\n          }\n          setTimeout(function () { if (map) map.invalidateSize(); }, 300);\n        });\n      } catch (err) {\n        \/\/ Karten-Fehler sollen nie die ganze Seite\/das Karussell lahmlegen -\n        \/\/ klare Fehlermeldung in der Konsole statt kryptischem Leaflet-Fehler.\n        console.error('[mhfFrProfils02] Karte konnte nicht gerendert werden:', err);\n        mapOuter.style.display = 'none';\n      }\n    }\n\n    if (window.L) { draw(); } else { loadLeaflet(draw); }\n  }\n\n  function factsHtml(it) {\n    var facts = [];\n    if (it.bedrooms != null) {\n      facts.push('<span class=\"mhf-sp-fact\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 7v10M21 7v10M3 12h18\"\/><\/svg>' + it.bedrooms + ' ch.<\/span>');\n    }\n    var radiusText = resolveRadiusKm(it.rayon_km);\n    facts.push('<span class=\"mhf-sp-fact\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 3v9l6 3\"\/><\/svg>' + radiusText + ' km<\/span>');\n    return facts.join('');\n  }\n\n  function cardHtml(it, idx) {\n    var thumbHtml = it.thumb ? '<img decoding=\"async\" src=\"' + it.thumb + '\" alt=\"\" loading=\"lazy\">' : '';\n    return (\n      '<a class=\"mhf-sp-card\" data-idx=\"' + idx + '\" href=\"' + it.url + '\" target=\"_blank\" rel=\"noopener\">' +\n        '<div class=\"mhf-sp-img-wrap\">' +\n          thumbHtml +\n          (it.budget != null ? '<span class=\"mhf-sp-budget-badge\">' + formatBudget(it.budget) + '<\/span>' : '') +\n          (it.exclusif ? '<span class=\"mhf-sp-exclusif-badge\">Exclusif<\/span>' : '') +\n        '<\/div>' +\n        '<div class=\"mhf-sp-body\">' +\n          '<p class=\"mhf-sp-title\">' + escapeHtml(it.title) + '<\/p>' +\n          (it.types && it.types.length ? '<p class=\"mhf-sp-types\">' + escapeHtml(it.types.join(', ')) + '<\/p>' : '') +\n          '<div class=\"mhf-sp-facts\">' + factsHtml(it) + '<\/div>' +\n          '<span class=\"mhf-sp-cta\">Voir le profil &rarr;<\/span>' +\n        '<\/div>' +\n      '<\/a>'\n    );\n  }\n\n  function renderCarousel(items) {\n    carousel.innerHTML = items.map(function (it, i) { return cardHtml(it, i); }).join('');\n    carousel.querySelectorAll('.mhf-sp-card').forEach(function (card) {\n      card.addEventListener('click', function (e) {\n        \/\/ Explizit window.open() statt sich auf den nativen Link-Klick zu\n        \/\/ verlassen - auf der Live-Seite scheint irgendetwas (Theme\/Elementor-\n        \/\/ globaler Click-Handler) den Standard-Linkaufruf abzufangen.\n        e.preventDefault();\n        focusIdx(Number(card.dataset.idx));\n        var url = card.getAttribute('href');\n        if (url) window.open(url, '_blank', 'noopener');\n      });\n    });\n  }\n\n  \/\/ ---- Drag-Scroll fuers Karussell (Trackpad\/Maus) ----\n  \/\/ WICHTIG: Der Drag-Modus (inkl. \"pointer-events:none\" auf den Karten)\n  \/\/ darf erst aktiviert werden, wenn wirklich eine Mindest-Strecke gezogen\n  \/\/ wurde - nicht schon bei jedem mousedown. Sonst wird ein ganz normaler\n  \/\/ Klick (der bei echten Mausklicks fast immer eine minimale, unvermeidbare\n  \/\/ Bewegung enthaelt) faelschlich als \"Ziehen\" gewertet und der Browser\n  \/\/ unterdrueckt den nachfolgenden Klick komplett (Karten liessen sich dann\n  \/\/ gar nicht mehr anklicken - nur ein synthetischer .click()-Aufruf ohne\n  \/\/ echte Mausbewegung funktionierte).\n  (function enableDragScroll() {\n    var isDown = false, startX, scrollLeft, moved = false;\n    var DRAG_THRESHOLD = 6;\n\n    carousel.addEventListener('mousedown', function (e) {\n      isDown = true; moved = false;\n      startX = e.pageX - carousel.offsetLeft;\n      scrollLeft = carousel.scrollLeft;\n    });\n    window.addEventListener('mouseup', function () {\n      isDown = false;\n      carousel.classList.remove('mhf-dragging');\n    });\n    carousel.addEventListener('mouseleave', function () {\n      isDown = false;\n      carousel.classList.remove('mhf-dragging');\n    });\n    carousel.addEventListener('mousemove', function (e) {\n      if (!isDown) return;\n      var x = e.pageX - carousel.offsetLeft;\n      var walk = x - startX;\n      if (!moved && Math.abs(walk) > DRAG_THRESHOLD) {\n        moved = true;\n        carousel.classList.add('mhf-dragging'); \/\/ Drag-Modus erst JETZT aktivieren\n      }\n      if (moved) {\n        e.preventDefault();\n        carousel.scrollLeft = scrollLeft - walk;\n      }\n    });\n    \/\/ Falls tatsaechlich gezogen wurde, den direkt darauf folgenden Klick\n    \/\/ unterdruecken (sonst wuerde nach einem absichtlichen Ziehen\n    \/\/ versehentlich ein Profil geoeffnet).\n    carousel.addEventListener('click', function (e) {\n      if (moved) {\n        e.preventDefault();\n        e.stopPropagation();\n        moved = false;\n      }\n    }, true);\n  })();\n\n  prevBtn.addEventListener('click', function () { carousel.scrollBy({ left: -240, behavior: 'smooth' }); });\n  nextBtn.addEventListener('click', function () { carousel.scrollBy({ left: 240, behavior: 'smooth' }); });\n\n  \/\/ ---------------------------------------------------------------\n  \/\/ Daten laden - oeffentlicher Endpoint, kein Login\/Nonce noetig.\n  \/\/ ---------------------------------------------------------------\n  fetch('https:\/\/mein-haus-in-frankreich.de\/wp-json\/mhf\/v1\/search-profiles', { credentials: 'same-origin' })\n    .then(function (res) { return res.json(); })\n    .then(function (data) {\n      var items = (data && data.items) ? data.items : [];\n\n      if (!items.length) {\n        carousel.innerHTML = '';\n        root.querySelector('.mhf-carousel-wrap').outerHTML =\n          '<div class=\"mhf-empty\"><p>Aucun profil de recherche actif pour le moment.<\/p><\/div>';\n        mapOuter.style.display = 'none';\n        return;\n      }\n\n      items.forEach(function (it, i) {\n        it.__idx = i;\n        if (it.lat != null && it.lng != null) {\n          it.coords = [it.lat, it.lng];\n          it.fullAddress = null;\n        } else if (it.address) {\n          it.coords = geocode(extractLocation(it.address).parts);\n          \/\/ Nur bei Nominatim nachfragen, wenn die schnelle Staedte-Tabelle\n          \/\/ keinen Treffer hatte - sonst unnoetiger Netzwerk-Call, der im\n          \/\/ schlimmsten Fall ein bereits gutes Ergebnis wieder ueberschreibt.\n          it.fullAddress = it.coords ? null : it.address;\n        } else {\n          it.coords = null;\n          it.fullAddress = null;\n        }\n      });\n\n      mhfDejitterCoords(items.filter(function (it) { return it.coords; }));\n      renderCarousel(items);\n      renderMap(items);\n      mhfRefineCoordsInBackground(items.filter(function (it) { return it.fullAddress; }), items);\n    })\n    .catch(function (err) {\n      console.error('[mhfFrProfils02] Profile konnten nicht geladen\/verarbeitet werden:', err);\n      mapOuter.style.display = 'none';\n      carousel.innerHTML = '';\n      var wrap = root.querySelector('.mhf-carousel-wrap');\n      if (wrap) {\n        wrap.outerHTML = '<div class=\"mhf-empty\"><p>Les profils ne peuvent pas etre charges pour le moment.<\/p><\/div>';\n      }\n    });\n})();\n<\/script>\n<\/div>\n\n<!--\n  EINBAU-HINWEISE:\n  1) Voraussetzung: mhf-rest-search-profiles.php muss als Datei (kein\n     Ordner!) in wp-content\/mu-plugins\/ liegen.\n  2) Beim Anlegen eines \"Profil de recherche\"-Eintrags: Rayon in km im\n     Terrain\/Land-Feld eintragen (nur Zahl, z.B. \"50\"). Falls leer, wird\n     automatisch mit 40 km Standard-Radius gerechnet (kein leerer Kreis).\n  3. Bestehender Houzez-Loop mit Sidebar-Filtern bleibt darunter als\n     Fallback\/Detailsuche bestehen (wird in Block 03 optisch angepasst,\n     NICHT ersetzt) - diese Karte ist ein visueller Ueberblick, keine\n     Such-Alternative.\n  4) Platzierung: direkt nach Block 01 (Hero), vor dem bestehenden\n     Houzez-Loop.\n-->\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2e63f03 e-con-full e-flex e-con e-parent\" data-id=\"2e63f03\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5cac673 elementor-widget elementor-widget-html\" data-id=\"5cac673\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div id=\"mhfFrProfils03\">\n<style>\n  #mhfFrProfils03 {\n    --mhf-navy: #024476;\n    --mhf-green: #12BF11;\n    --mhf-green-deep: #0c9c0b;\n    --mhf-cream: #FAF7F1;\n    --mhf-sand: #E7DFCB;\n    --mhf-ink: #1b2a35;\n    --mhf-muted: #6b7a89;\n    --mhf-card-shadow: 0 1px 2px rgba(2,68,118,0.05), 0 10px 28px rgba(2,68,118,0.05);\n    box-sizing: border-box;\n    font-family: 'Montserrat', Arial, sans-serif;\n    color: var(--mhf-ink);\n    background: #fff;\n    padding: 48px 16px 40px;\n  }\n  #mhfFrProfils03 *, #mhfFrProfils03 *::before, #mhfFrProfils03 *::after { box-sizing: border-box; }\n  #mhfFrProfils03 .mhf-wrap { max-width: 780px; margin: 0 auto; }\n  #mhfFrProfils03 .mhf-eyebrow {\n    display: block; font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase !important;\n    color: var(--mhf-green-deep); margin-bottom: 10px; font-weight: 700; text-align: center;\n  }\n  #mhfFrProfils03 h2 {\n    font-family: 'Cormorant Garamond', Georgia, serif !important;\n    color: var(--mhf-navy) !important; font-weight: 600 !important; text-transform: none !important;\n    font-size: 22px !important; line-height: 1.3 !important; margin: 0 0 22px; text-align: center;\n  }\n  #mhfFrProfils03 h3 {\n    font-family: 'Cormorant Garamond', Georgia, serif !important;\n    color: var(--mhf-navy) !important; font-weight: 700 !important; text-transform: none !important;\n    font-size: 17px !important; line-height: 1.3 !important; margin: 22px 0 8px;\n  }\n  #mhfFrProfils03 p {\n    font-size: 13.5px; line-height: 1.7; color: var(--mhf-muted); margin: 0 0 12px;\n  }\n  #mhfFrProfils03 .mhf-seo-box {\n    background: var(--mhf-cream); border: 1px solid var(--mhf-sand); border-radius: 16px;\n    padding: 30px 30px 10px; box-shadow: var(--mhf-card-shadow);\n  }\n  #mhfFrProfils03 .mhf-seo-collapsed { max-height: 165px; overflow: hidden; position: relative; }\n  #mhfFrProfils03 .mhf-seo-collapsed::after {\n    content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 70px;\n    background: linear-gradient(180deg, rgba(250,247,241,0) 0%, var(--mhf-cream) 90%);\n  }\n  #mhfFrProfils03 .mhf-seo-toggle-row { text-align: center; padding: 14px 0 22px; }\n  #mhfFrProfils03 .mhf-seo-toggle {\n    display: inline-flex; align-items: center; gap: 6px;\n    background: #fff; color: var(--mhf-navy); font-weight: 700; font-size: 13px;\n    padding: 10px 22px; border-radius: 30px; border: 1px solid var(--mhf-sand); cursor: pointer;\n    font-family: 'Montserrat', Arial, sans-serif; transition: border-color .15s ease;\n  }\n  #mhfFrProfils03 .mhf-seo-toggle:hover { border-color: var(--mhf-navy); }\n  #mhfFrProfils03 .mhf-seo-toggle:focus-visible { outline: 2px solid var(--mhf-navy); outline-offset: 3px; }\n  #mhfFrProfils03 .mhf-seo-toggle svg { width: 13px; height: 13px; transition: transform .2s ease; }\n  #mhfFrProfils03.mhf-seo-open .mhf-seo-toggle svg { transform: rotate(180deg); }\n\n  @media (max-width: 760px) {\n    #mhfFrProfils03 { padding: 36px 12px 32px; }\n    #mhfFrProfils03 .mhf-seo-box { padding: 24px 20px 6px; }\n  }\n<\/style>\n\n<div class=\"mhf-wrap\">\n  <span class=\"mhf-eyebrow\">En savoir plus<\/span>\n  <h2>Pourquoi des acqu\u00e9reurs internationaux cherchent dans le Sud de la France<\/h2>\n\n  <div class=\"mhf-seo-box\">\n    <div class=\"mhf-seo-content mhf-seo-collapsed\" id=\"mhfFrProfilsSeoContent\">\n\n      <p>La demande en provenance d&rsquo;<strong>Allemagne, de Suisse, d&rsquo;Autriche, des Pays-Bas et du Royaume-Uni<\/strong> pour l&rsquo;immobilier dans le Sud de la France est en constante progression. Le cadre de vie exceptionnel, les prix encore accessibles compar\u00e9s aux march\u00e9s d&rsquo;Europe du Nord, et la qualit\u00e9 de vie m\u00e9diterran\u00e9enne font de l&rsquo;<strong>Occitanie, du Languedoc et de la C\u00f4te d&rsquo;Azur<\/strong> des destinations privil\u00e9gi\u00e9es pour une r\u00e9sidence secondaire, une retraite anticip\u00e9e ou un investissement locatif saisonnier.<\/p>\n\n      <h3>Des acqu\u00e9reurs qualifi\u00e9s, pr\u00eats \u00e0 passer \u00e0 l&rsquo;action<\/h3>\n      <p>Notre plateforme <strong>mein-haus-in-frankreich.de<\/strong> connecte ces acqu\u00e9reurs qualifi\u00e9s avec des professionnels de l&rsquo;immobilier locaux &ndash; chaque profil dispose d&rsquo;un <strong>budget confirm\u00e9<\/strong>, de crit\u00e8res pr\u00e9cis et d&rsquo;un projet concret. Certains acqu\u00e9reurs sont repr\u00e9sent\u00e9s par des agences partenaires internationales, d&rsquo;autres cherchent en direct.<\/p>\n\n      <h3>Un march\u00e9 de profils de recherche inter-agences<\/h3>\n      <p>Nous proposons \u00e9galement un <strong>march\u00e9 de profils de recherche inter-agences<\/strong>&nbsp;: si vous avez un acqu\u00e9reur sans bien correspondant dans votre portefeuille, nous pouvons le mettre en relation avec une agence partenaire disposant du bien id\u00e9al &ndash; dans le respect de la confidentialit\u00e9 des deux parties.<\/p>\n\n      <h3>Rejoindre le r\u00e9seau, sans engagement<\/h3>\n      <p>Vous n&rsquo;\u00eates pas encore partenaire&nbsp;? Rejoignez notre <strong>r\u00e9seau d&rsquo;agences immobili\u00e8res<\/strong> gratuitement &ndash; aucun engagement, aucun frais en amont. La consultation des profils d&rsquo;acqu\u00e9reurs et la prise de contact sont enti\u00e8rement gratuites apr\u00e8s cr\u00e9ation d&rsquo;un compte &laquo;&nbsp;Agent immobilier&nbsp;&raquo;.<\/p>\n\n    <\/div>\n    <div class=\"mhf-seo-toggle-row\">\n      <button type=\"button\" class=\"mhf-seo-toggle\" id=\"mhfFrProfilsSeoToggleBtn\">\n        <span id=\"mhfFrProfilsSeoToggleLabel\">Lire la suite<\/span>\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg>\n      <\/button>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function () {\n  var root = document.getElementById('mhfFrProfils03');\n  if (!root) return;\n  var content = root.querySelector('#mhfFrProfilsSeoContent');\n  var btn = root.querySelector('#mhfFrProfilsSeoToggleBtn');\n  var label = root.querySelector('#mhfFrProfilsSeoToggleLabel');\n\n  btn.addEventListener('click', function () {\n    var isOpen = root.classList.contains('mhf-seo-open');\n    if (isOpen) {\n      root.classList.remove('mhf-seo-open');\n      content.classList.add('mhf-seo-collapsed');\n      label.textContent = 'Lire la suite';\n    } else {\n      root.classList.add('mhf-seo-open');\n      content.classList.remove('mhf-seo-collapsed');\n      label.textContent = 'R\u00e9duire';\n    }\n  });\n})();\n<\/script>\n<\/div>\n\n<!--\n  EINBAU-HINWEIS: Ersetzt den bisherigen reinen Fliesstext-Absatz\n  \"Pourquoi des acquereurs internationaux...\" unterhalb des Houzez-Loops.\n  Inhalt 1:1 aus der Live-Seite uebernommen, nur umformatiert (einklappbar,\n  Cormorant-Zwischenueberschriften) - keine inhaltlichen Aenderungen.\n-->\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-92c201c e-con-full e-flex e-con e-parent\" data-id=\"92c201c\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e97f793 elementor-widget elementor-widget-html\" data-id=\"e97f793\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div id=\"mhfFrProfils04\">\n<style>\n  #mhfFrProfils04 {\n    --mhf-navy: #024476;\n    --mhf-navy-dark: #01315a;\n    --mhf-green: #12BF11;\n    --mhf-green-deep: #0c9c0b;\n    --mhf-cream: #FAF7F1;\n    --mhf-sand: #E7DFCB;\n    --mhf-ink: #1b2a35;\n    --mhf-muted: #6b7a89;\n    --mhf-card-shadow: 0 1px 2px rgba(2,68,118,0.05), 0 10px 28px rgba(2,68,118,0.05);\n    box-sizing: border-box;\n    font-family: 'Montserrat', Arial, sans-serif;\n    color: var(--mhf-ink);\n    background: var(--mhf-cream);\n    padding: 52px 16px 56px;\n  }\n  #mhfFrProfils04 *, #mhfFrProfils04 *::before, #mhfFrProfils04 *::after { box-sizing: border-box; }\n  #mhfFrProfils04 .mhf-wrap { max-width: 1080px; margin: 0 auto; }\n  #mhfFrProfils04 .mhf-head { max-width: 620px; margin: 0 auto 34px; text-align: center; }\n  #mhfFrProfils04 .mhf-eyebrow {\n    display: block; font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase !important;\n    color: var(--mhf-green-deep); margin-bottom: 10px; font-weight: 700;\n  }\n  #mhfFrProfils04 h2 {\n    font-family: 'Cormorant Garamond', Georgia, serif !important;\n    color: var(--mhf-navy) !important; font-weight: 600 !important; text-transform: none !important;\n    font-size: 24px !important; line-height: 1.25 !important; margin: 0 0 10px;\n  }\n  #mhfFrProfils04 .mhf-intro { font-size: 14px; line-height: 1.6; color: var(--mhf-muted); margin: 0; }\n\n  #mhfFrProfils04 .mhf-step-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; align-items: stretch; }\n  #mhfFrProfils04 .mhf-step-card {\n    background: #fff; border: 1px solid var(--mhf-sand); border-radius: 16px;\n    box-shadow: var(--mhf-card-shadow); padding: 26px 24px 24px;\n    display: flex; flex-direction: column;\n    transition: transform .2s ease, box-shadow .2s ease;\n  }\n  #mhfFrProfils04 .mhf-step-card:hover { transform: translateY(-3px); box-shadow: 0 4px 12px rgba(2,68,118,.1), 0 18px 36px rgba(2,68,118,.12); }\n  #mhfFrProfils04 .mhf-step-num {\n    width: 40px; height: 40px; border-radius: 50%; background: var(--mhf-navy); color: #fff;\n    display: flex; align-items: center; justify-content: center; margin-bottom: 16px;\n    font-family: 'Cormorant Garamond', serif; font-size: 18px; font-weight: 700; flex-shrink: 0;\n  }\n  #mhfFrProfils04 .mhf-step-card h3 {\n    font-family: 'Cormorant Garamond', Georgia, serif !important; color: var(--mhf-navy) !important;\n    font-size: 18px !important; font-weight: 700 !important; text-transform: none !important; margin: 0 0 8px;\n  }\n  #mhfFrProfils04 .mhf-step-card p { font-size: 13px; line-height: 1.6; color: var(--mhf-muted); margin: 0 0 16px; flex: 1; }\n  #mhfFrProfils04 .mhf-step-cta {\n    display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; font-weight: 700;\n    color: var(--mhf-navy); text-decoration: none; width: fit-content;\n  }\n  #mhfFrProfils04 .mhf-step-cta:hover { text-decoration: underline; }\n  #mhfFrProfils04 .mhf-step-cta svg { width: 13px; height: 13px; }\n\n  @media (max-width: 900px) {\n    #mhfFrProfils04 .mhf-step-grid { grid-template-columns: 1fr; }\n  }\n  @media (max-width: 760px) {\n    #mhfFrProfils04 { padding: 40px 12px 44px; }\n  }\n<\/style>\n\n<div class=\"mhf-wrap\">\n  <div class=\"mhf-head\">\n    <span class=\"mhf-eyebrow\">Comment collaborer<\/span>\n    <h2>Trois fa\u00e7ons de collaborer avec nous<\/h2>\n    <p class=\"mhf-intro\">Publiez vos biens, consultez nos profils d&rsquo;acqu\u00e9reurs, ou d\u00e9posez le profil d&rsquo;un client sans bien correspondant &ndash; \u00e0 vous de choisir.<\/p>\n  <\/div>\n\n  <div class=\"mhf-step-grid\">\n\n    <div class=\"mhf-step-card\">\n      <div class=\"mhf-step-num\">1<\/div>\n      <h3>Publiez vos biens<\/h3>\n      <p>D\u00e9posez vos annonces directement sur notre plateforme &ndash; gratuitement, avec visibilit\u00e9 imm\u00e9diate aupr\u00e8s de notre audience germanophone. Nous assurons la traduction en allemand et la mise en ligne sous 48h.<\/p>\n      <a class=\"mhf-step-cta\" href=\"https:\/\/mein-haus-in-frankreich.de\/fr\/creer-un-listing\/\">Publier une annonce\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg>\n      <\/a>\n    <\/div>\n\n    <div class=\"mhf-step-card\">\n      <div class=\"mhf-step-num\">2<\/div>\n      <h3>Consultez nos profils d&rsquo;acqu\u00e9reurs<\/h3>\n      <p>Acc\u00e9dez \u00e0 nos profils de recherche actifs &ndash; acqu\u00e9reurs germanophones et internationaux avec budget confirm\u00e9 et projet concret. Si un profil correspond \u00e0 un bien de votre portefeuille, contactez-nous directement.<\/p>\n      <a class=\"mhf-step-cta\" href=\"#mhfFrProfils02\">Voir les profils actifs\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg>\n      <\/a>\n    <\/div>\n\n    <div class=\"mhf-step-card\">\n      <div class=\"mhf-step-num\">3<\/div>\n      <h3>D\u00e9posez un profil recherche<\/h3>\n      <p>Vous avez un acqu\u00e9reur sans bien correspondant dans votre portefeuille&nbsp;? Transmettez-nous ses crit\u00e8res &ndash; nous publions un profil anonyme et le diffusons aupr\u00e8s de nos agences partenaires. Mise en relation incluse.<\/p>\n      <a class=\"mhf-step-cta\" href=\"https:\/\/mein-haus-in-frankreich.de\/fr\/contact\/\">D\u00e9poser un profil\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg>\n      <\/a>\n    <\/div>\n\n  <\/div>\n<\/div>\n<\/div>\n\n<!--\n  EINBAU-HINWEIS:\n  - Ersetzt den bisherigen Fliesstext-Abschnitt \"Trois facons de\n    collaborer avec nous\" (3 fett gedruckte Absaetze ohne Kartenoptik).\n  - CTA #2 verlinkt per Anchor (#mhfFrProfils02) zur Karte\/Karussell\n    weiter oben auf derselben Seite - Block 02 muss dafuer die ID\n    \"mhfFrProfils02\" behalten (ist bereits so gesetzt).\n  - CTA #3 verlinkt vorlaeufig auf \/fr\/contact\/ - sobald\n    \/fr\/deposer-un-profil-recherche\/ (siehe Roadmap) live ist, hier\n    austauschen.\n-->\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-848fc48 e-con-full e-flex e-con e-parent\" data-id=\"848fc48\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2ca19a5 elementor-widget elementor-widget-html\" data-id=\"2ca19a5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div id=\"mhfFrProfils05\">\n<style>\n  #mhfFrProfils05 {\n    --mhf-navy: #024476;\n    --mhf-green: #12BF11;\n    --mhf-green-deep: #0c9c0b;\n    --mhf-cream: #FAF7F1;\n    --mhf-sand: #E7DFCB;\n    --mhf-ink: #1b2a35;\n    --mhf-muted: #6b7a89;\n    --mhf-card-shadow: 0 1px 2px rgba(2,68,118,0.05), 0 10px 28px rgba(2,68,118,0.05);\n    box-sizing: border-box;\n    font-family: 'Montserrat', Arial, sans-serif;\n    color: var(--mhf-ink);\n    background: #fff;\n    padding: 52px 16px 56px;\n  }\n  #mhfFrProfils05 *, #mhfFrProfils05 *::before, #mhfFrProfils05 *::after { box-sizing: border-box; }\n  #mhfFrProfils05 .mhf-wrap { max-width: 1080px; margin: 0 auto; }\n  #mhfFrProfils05 .mhf-head { max-width: 620px; margin: 0 auto 32px; text-align: center; }\n  #mhfFrProfils05 .mhf-eyebrow {\n    display: block; font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase !important;\n    color: var(--mhf-green-deep); margin-bottom: 10px; font-weight: 700;\n  }\n  #mhfFrProfils05 h2 {\n    font-family: 'Cormorant Garamond', Georgia, serif !important;\n    color: var(--mhf-navy) !important; font-weight: 600 !important; text-transform: none !important;\n    font-size: 24px !important; line-height: 1.25 !important; margin: 0 0 10px;\n  }\n  #mhfFrProfils05 .mhf-intro { font-size: 14px; line-height: 1.6; color: var(--mhf-muted); margin: 0; }\n\n  #mhfFrProfils05 .mhf-cond-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 28px; }\n  #mhfFrProfils05 .mhf-cond-card {\n    background: var(--mhf-cream); border: 1px solid var(--mhf-sand); border-radius: 14px;\n    padding: 22px 22px 20px; display: flex; gap: 14px; align-items: flex-start;\n  }\n  #mhfFrProfils05 .mhf-cond-icon {\n    width: 40px; height: 40px; border-radius: 50%; background: #fff; border: 1px solid var(--mhf-sand);\n    display: flex; align-items: center; justify-content: center; flex-shrink: 0;\n  }\n  #mhfFrProfils05 .mhf-cond-icon svg { width: 19px; height: 19px; color: var(--mhf-green-deep); }\n  #mhfFrProfils05 .mhf-cond-card h3 {\n    font-family: 'Cormorant Garamond', Georgia, serif !important; color: var(--mhf-navy) !important;\n    font-size: 16.5px !important; font-weight: 700 !important; text-transform: none !important; margin: 0 0 6px;\n  }\n  #mhfFrProfils05 .mhf-cond-card p { font-size: 12.5px; line-height: 1.6; color: var(--mhf-muted); margin: 0; }\n  #mhfFrProfils05 .mhf-cond-card strong { color: var(--mhf-ink); }\n\n  #mhfFrProfils05 .mhf-cond-footnote {\n    text-align: center; font-size: 12px; line-height: 1.6; color: var(--mhf-muted);\n    max-width: 720px; margin: 0 auto;\n  }\n  #mhfFrProfils05 .mhf-cond-footnote strong { color: var(--mhf-navy); }\n\n  @media (max-width: 760px) {\n    #mhfFrProfils05 { padding: 40px 12px 44px; }\n    #mhfFrProfils05 .mhf-cond-grid { grid-template-columns: 1fr; }\n  }\n<\/style>\n\n<div class=\"mhf-wrap\">\n  <div class=\"mhf-head\">\n    <span class=\"mhf-eyebrow\">Conditions de collaboration<\/span>\n    <h2>Clair, transparent, sans risque pour votre agence<\/h2>\n    <p class=\"mhf-intro\">L&rsquo;acc\u00e8s \u00e0 la plateforme est enti\u00e8rement gratuit &ndash; consultation, profils et prise de contact.<\/p>\n  <\/div>\n\n  <div class=\"mhf-cond-grid\">\n\n    <div class=\"mhf-cond-card\">\n      <div class=\"mhf-cond-icon\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M12 6v6l4 2\"\/><\/svg>\n      <\/div>\n      <div>\n        <h3>R\u00e9trocession de 10% TTC<\/h3>\n        <p>Une r\u00e9trocession de <strong>10% TTC<\/strong> sur la commission agence effectivement per\u00e7ue est due uniquement en cas de vente conclue avec un acqu\u00e9reur ou une mise en relation initi\u00e9e via cette plateforme . Aucun frais en amont, aucun frais en l&rsquo;absence de vente.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"mhf-cond-card\">\n      <div class=\"mhf-cond-icon\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg>\n      <\/div>\n      <div>\n        <h3>Mise en relation directe et transparente<\/h3>\n        <p>Une fois le profil consult\u00e9 ou votre bien publi\u00e9, l&rsquo;acqu\u00e9reur ou l&rsquo;agence partenaire vous contacte directement. Nous restons en copie de la prise de contact initiale mais n&rsquo;intervenons pas dans la n\u00e9gociation ni dans la transaction.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"mhf-cond-card\">\n      <div class=\"mhf-cond-icon\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 12l2 2 4-4\"\/><path d=\"M21 12c0 4.97-4.03 9-9 9s-9-4.03-9-9 4.03-9 9-9c1.5 0 2.91.37 4.15 1.02\"\/><path d=\"M17 4l4 4-4 4\"\/><\/svg>\n      <\/div>\n      <div>\n        <h3>Aucun mandat d\u00e9tenu par nous<\/h3>\n        <p>Nous n&rsquo;intervenons \u00e0 aucun moment comme titulaire de mandat, ni dans la n\u00e9gociation du prix, ni dans la signature d&rsquo;actes. Notre r\u00f4le se limite \u00e0 la <strong>mise en relation qualifi\u00e9e<\/strong> entre acqu\u00e9reurs et professionnels de l&rsquo;immobilier.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"mhf-cond-card\">\n      <div class=\"mhf-cond-icon\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"10\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg>\n      <\/div>\n      <div>\n        <h3>Protection contractuelle de la r\u00e9trocession<\/h3>\n        <p>La r\u00e9trocession de 10% TTC reste due ind\u00e9pendamment de l&rsquo;agent ou du collaborateur au sein de votre r\u00e9seau qui finalise la transaction, d\u00e8s lors que celle-ci r\u00e9sulte d&rsquo;une mise en relation initi\u00e9e via cette plateforme. La prise de contact initiale par email constitue la preuve de mise en relation.<\/p>\n      <\/div>\n    <\/div>\n\n  <\/div>\n\n  <p class=\"mhf-cond-footnote\">Vous avez des questions sur ces conditions&nbsp;? <strong><a href=\"https:\/\/mein-haus-in-frankreich.de\/fr\/contact\/\" style=\"color:var(--mhf-navy);\">Contactez-nous<\/a><\/strong> &ndash; sans engagement.<\/p>\n<\/div>\n<\/div>\n\n<!--\n  EINBAU-HINWEIS: Ersetzt die bisherige Fliesstext-Kette\n  (\"Retrocession en cas de transaction aboutie\", \"Mise en relation directe\",\n  \"Aucun mandat detenu\", \"Protection contractuelle de la retrocession\").\n  Inhalt 1:1 aus der Live-Seite, nur als 4 Karten im 2x2-Grid statt\n  nackter Absaetze mit \"---\"-Trennlinien.\n-->\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-881a0bc e-con-full e-flex e-con e-parent\" data-id=\"881a0bc\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-af24dad elementor-widget elementor-widget-html\" data-id=\"af24dad\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div id=\"mhfFrProfils06\">\n<style>\n  #mhfFrProfils06 {\n    --mhf-navy: #024476;\n    --mhf-navy-dark: #01315a;\n    --mhf-green: #12BF11;\n    --mhf-green-deep: #0c9c0b;\n    --mhf-cream: #FAF7F1;\n    --mhf-sand: #E7DFCB;\n    box-sizing: border-box;\n    font-family: 'Montserrat', Arial, sans-serif;\n    padding: 0 16px 56px;\n  }\n  #mhfFrProfils06 *, #mhfFrProfils06 *::before, #mhfFrProfils06 *::after { box-sizing: border-box; }\n  #mhfFrProfils06 .mhf-cta-band {\n    max-width: 1080px; margin: 0 auto; background: var(--mhf-navy); border-radius: 20px;\n    padding: 40px 36px; text-align: center;\n    background-image: linear-gradient(135deg, var(--mhf-navy) 0%, var(--mhf-navy-dark) 100%);\n  }\n  #mhfFrProfils06 .mhf-eyebrow {\n    display: block; font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase !important;\n    color: #8fe08e; margin-bottom: 10px; font-weight: 700;\n  }\n  #mhfFrProfils06 h2 {\n    font-family: 'Cormorant Garamond', Georgia, serif !important;\n    color: #fff !important; font-weight: 600 !important; text-transform: none !important;\n    font-size: 23px !important; line-height: 1.3 !important; margin: 0 0 12px;\n  }\n  #mhfFrProfils06 p {\n    font-size: 13.5px; line-height: 1.6; color: #cfe0ee; max-width: 560px; margin: 0 auto 24px;\n  }\n  #mhfFrProfils06 .mhf-cta-row { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }\n  #mhfFrProfils06 .mhf-cta {\n    display: inline-block; background: var(--mhf-green); color: #fff; font-weight: 700; font-size: 14px;\n    padding: 13px 26px; border-radius: 30px; text-decoration: none;\n    transition: transform .15s ease, box-shadow .15s ease;\n  }\n  #mhfFrProfils06 .mhf-cta:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(18,191,17,.3); }\n  #mhfFrProfils06 .mhf-cta:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }\n  #mhfFrProfils06 .mhf-cta-secondary {\n    display: inline-block; background: transparent; color: #fff; font-weight: 700; font-size: 14px;\n    padding: 12px 24px; border-radius: 30px; text-decoration: none; border: 1px solid rgba(255,255,255,.4);\n    transition: border-color .15s ease;\n  }\n  #mhfFrProfils06 .mhf-cta-secondary:hover { border-color: #fff; }\n  #mhfFrProfils06 .mhf-cta-secondary:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }\n\n  @media (max-width: 760px) {\n    #mhfFrProfils06 { padding: 0 12px 44px; }\n    #mhfFrProfils06 .mhf-cta-band { padding: 30px 22px; border-radius: 16px; }\n    #mhfFrProfils06 h2 { font-size: 19px !important; }\n  }\n<\/style>\n\n<div class=\"mhf-cta-band\">\n  <span class=\"mhf-eyebrow\">Pas encore partenaire&nbsp;?<\/span>\n  <h2>Rejoignez notre r\u00e9seau, gratuitement<\/h2>\n  <p>Cr\u00e9ez votre compte agence en quelques minutes &ndash; publiez vos biens, consultez nos profils d&rsquo;acqu\u00e9reurs et d\u00e9posez vos propres profils de recherche. Aucun engagement, aucun frais.<\/p>\n  <div class=\"mhf-cta-row\">\n    <a class=\"mhf-cta\" href=\"https:\/\/mein-haus-in-frankreich.de\/fr\/creer-un-listing\/\">Cr\u00e9er mon compte agence<\/a>\n    <a class=\"mhf-cta-secondary\" href=\"https:\/\/mein-haus-in-frankreich.de\/fr\/professionnels-agences-immobilieres\/\">Voir nos formules de collaboration<\/a>\n  <\/div>\n<\/div>\n<\/div>\n\n<!--\n  EINBAU-HINWEIS: Ganz ans Ende der Seite, nach Block 05 (Konditionen),\n  vor dem Footer. Ersetzt keinen bestehenden Content - ist ein neuer,\n  klarer Abschluss-CTA, den die Seite bisher nicht hatte.\n-->\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8e954b2 e-con-full e-flex e-con e-parent\" data-id=\"8e954b2\" data-element_type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Espace partenaires &middot; Acces reserve Profils de recherche internationaux Des acquereurs qualifies &ndash; germanophones et internationaux &ndash; avec budget confirme et criteres precis, en attente d&rsquo;un bien correspondant dans le Sud de la France. Diffusion 100% gratuite Profils anonymises Mise en relation gratuite Ou cherchent nos acquereurs&nbsp;? Localisation et rayon de recherche de chaque profil [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"class_list":["post-23868","page","type-page","status-publish","hentry"],"rankMath":{"parentDomain":"mein-haus-in-frankreich.de","noFollowDomains":[],"noFollowExcludeDomains":[],"noFollowExternalLinks":false,"featuredImageNotice":"L\u2019image en vedette devrait \u00eatre au moins 200 par 200 pixels pour \u00eatre utilis\u00e9 par Facebook et d\u2019autres sites de m\u00e9dias sociaux.","pluginReviewed":false,"postSettings":{"linkSuggestions":true,"useFocusKeyword":false},"frontEndScore":false,"postName":"profils-dacquereurs-germanophones-biens-recherches-dans-le-sud-de-la-france","permalinkFormat":"https:\/\/mein-haus-in-frankreich.de\/fr\/%pagename%\/","showLockModifiedDate":true,"assessor":{"focusKeywordLink":"https:\/\/mein-haus-in-frankreich.de\/wp-admin\/edit.php?focus_keyword=%focus_keyword%&post_type=%post_type%","hasTOCPlugin":true,"primaryTaxonomy":false,"serpData":{"title":"","description":"","focusKeywords":"","pillarContent":false,"canonicalUrl":"","breadcrumbTitle":"","advancedRobots":{"max-snippet":"-1","max-video-preview":"-1","max-image-preview":"large"},"facebookTitle":"","facebookDescription":"","facebookImage":"","facebookImageID":"","facebookHasOverlay":false,"facebookImageOverlay":"","facebookAuthor":"","twitterCardType":"","twitterUseFacebook":true,"twitterTitle":"","twitterDescription":"","twitterImage":"","twitterImageID":"","twitterHasOverlay":false,"twitterImageOverlay":"","twitterPlayerUrl":"","twitterPlayerSize":"","twitterPlayerStream":"","twitterPlayerStreamCtype":"","twitterAppDescription":"","twitterAppIphoneName":"","twitterAppIphoneID":"","twitterAppIphoneUrl":"","twitterAppIpadName":"","twitterAppIpadID":"","twitterAppIpadUrl":"","twitterAppGoogleplayName":"","twitterAppGoogleplayID":"","twitterAppGoogleplayUrl":"","twitterAppCountry":"","robots":{"index":true},"twitterAuthor":"identifiant","primaryTerm":0,"authorName":"Interm\u00e9diaire Immobilier","titleTemplate":"%title% %sep% %sitename%","descriptionTemplate":"%excerpt%","showScoreFrontend":true,"lockModifiedDate":false},"powerWords":["absolument","amazement","astonishing","authentique","beau","bien-\u00eatre","brillant","captivant","charismatique","choc","clair","compl\u00e8tement","confidentiel","confiance","cons\u00e9quent","cr\u00e9atif","d\u00e9finitivement","d\u00e9licieux","d\u00e9montrer","d\u00e9p\u00eachez-vous","d\u00e9termin\u00e9","digne","dynamique","\u00e9blouissant","\u00e9clatant","\u00e9conomique","\u00e9fficace","\u00e9l\u00e9gant","\u00e9motionnel","\u00e9nergique","\u00e9norme","\u00e9poustouflant","essentiel","\u00e9tonnant","exclusif","exp\u00e9rience","fabuleux","fantastique","formidable","fort","garanti","g\u00e9ant","g\u00e9n\u00e9reux","grandiose","gratuit","habile","harmonieux","historique","hors pair","important","incroyable","indispensable","inoubliable","inspirant","innovant","intense","invention","irr\u00e9sistible","l\u00e9gendaire","lumineux","luxe","magique","magnifique","majestueux","marquant","merveilleux","miraculeux","motivant","n\u00e9cessaire","nouvelle","officiel","parfait","passionn\u00e9","persuasif","ph\u00e9nom\u00e9nal","plaisir","populaire","pouvoir","prestigieux","prodigieux","profond","prosp\u00e8re","puissant","qualit\u00e9","radieux","rapide","r\u00e9ussi","r\u00e9volutionnaire","satisfait","s\u00e9curit\u00e9","sensationnel","serein","somptueux","splendide","sublime","surprenant","talentueux","terrifiant","unique","valeur","vibrant","victorieux","vif","vraiment","z\u00e9l\u00e9"],"diacritics":{"A":"[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F]","AA":"[\\uA732]","AE":"[\\u00C6\\u01FC\\u01E2]","AO":"[\\uA734]","AU":"[\\uA736]","AV":"[\\uA738\\uA73A]","AY":"[\\uA73C]","B":"[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181]","C":"[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E]","D":"[\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779]","DZ":"[\\u01F1\\u01C4]","Dz":"[\\u01F2\\u01C5]","E":"[\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E]","F":"[\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B]","G":"[\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E]","H":"[\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D]","I":"[\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197]","J":"[\\u004A\\u24BF\\uFF2A\\u0134\\u0248]","K":"[\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2]","L":"[\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780]","LJ":"[\\u01C7]","Lj":"[\\u01C8]","M":"[\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C]","N":"[\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4]","NJ":"[\\u01CA]","Nj":"[\\u01CB]","O":"[\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C]","OI":"[\\u01A2]","OO":"[\\uA74E]","OU":"[\\u0222]","P":"[\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754]","Q":"[\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A]","R":"[\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782]","S":"[\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784]","T":"[\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786]","TZ":"[\\uA728]","U":"[\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244]","V":"[\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245]","VY":"[\\uA760]","W":"[\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72]","X":"[\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C]","Y":"[\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE]","Z":"[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762]","a":"[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250]","aa":"[\\uA733]","ae":"[\\u00E6\\u01FD\\u01E3]","ao":"[\\uA735]","au":"[\\uA737]","av":"[\\uA739\\uA73B]","ay":"[\\uA73D]","b":"[\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253]","c":"[\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184]","d":"[\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A]","dz":"[\\u01F3\\u01C6]","e":"[\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD]","f":"[\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C]","g":"[\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F]","h":"[\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265]","hv":"[\\u0195]","i":"[\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131]","j":"[\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249]","k":"[\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3]","l":"[\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747]","lj":"[\\u01C9]","m":"[\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F]","n":"[\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5]","nj":"[\\u01CC]","o":"[\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275]","oi":"[\\u01A3]","ou":"[\\u0223]","oo":"[\\uA74F]","p":"[\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755]","q":"[\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759]","r":"[\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783]","s":"[\\u0073\\u24E2\\uFF53\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B]","ss":"[\\u00DF]","t":"[\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787]","tz":"[\\uA729]","u":"[\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289]","v":"[\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C]","vy":"[\\uA761]","w":"[\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73]","x":"[\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D]","y":"[\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF]","z":"[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763]"},"researchesTests":["contentHasTOC","contentHasShortParagraphs","contentHasAssets","keywordInTitle","keywordInMetaDescription","keywordInPermalink","keywordIn10Percent","keywordInContent","keywordInSubheadings","keywordInImageAlt","keywordDensity","keywordNotUsed","lengthContent","lengthPermalink","linksHasInternal","linksHasExternals","linksNotAllExternals","titleStartWithKeyword","titleSentiment","titleHasPowerWords","titleHasNumber","hasContentAI"],"hasRedirection":false,"hasBreadcrumb":false},"homeUrl":"https:\/\/mein-haus-in-frankreich.de\/fr\/","objectID":23868,"objectType":"post","locale":"fr","localeFull":"fr_FR","overlayImages":{"play":{"name":"Ic\u00f4ne de lecture","url":"https:\/\/mein-haus-in-frankreich.de\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/icon-play.png","path":"\/homepages\/3\/d4298614692\/htdocs\/clickandbuilds\/MeinHausinFrankreich\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/icon-play.png","position":"middle_center"},"gif":{"name":"Ic\u00f4ne GIF","url":"https:\/\/mein-haus-in-frankreich.de\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/icon-gif.png","path":"\/homepages\/3\/d4298614692\/htdocs\/clickandbuilds\/MeinHausinFrankreich\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/icon-gif.png","position":"middle_center"}},"defautOgImage":"https:\/\/meinhausinfrankreich1641.live-website.com\/wp-content\/uploads\/2024\/11\/Logo-Mein-Haus-in-Frankreich.png","customPermalinks":true,"isUserRegistered":true,"autoSuggestKeywords":true,"connectSiteUrl":"https:\/\/rankmath.com\/auth?site=https%3A%2F%2Fmein-haus-in-frankreich.de%2Ffr%2F&r=https%3A%2F%2Fmein-haus-in-frankreich.de%2Ffr%2Fwp-json%2Fwp%2Fv2%2Fpages%2F23868%3Fnonce%3D5caf9d3d33","maxTags":5,"trendsIcon":"<svg viewBox=\"0 0 610 610\"><path d=\"M18.85,446,174.32,290.48l58.08,58.08L76.93,504a14.54,14.54,0,0,1-20.55,0L18.83,466.48a14.54,14.54,0,0,1,0-20.55Z\" style=\"fill:#4285f4\"\/><path d=\"M242.65,242.66,377.59,377.6l-47.75,47.75a14.54,14.54,0,0,1-20.55,0L174.37,290.43l47.75-47.75A14.52,14.52,0,0,1,242.65,242.66Z\" style=\"fill:#ea4335\"\/><polygon points=\"319.53 319.53 479.26 159.8 537.34 217.88 377.61 377.62 319.53 319.53\" style=\"fill:#fabb05\"\/><path d=\"M594.26,262.73V118.61h0a16.94,16.94,0,0,0-16.94-16.94H433.2a16.94,16.94,0,0,0-12,28.92L565.34,274.71h0a16.94,16.94,0,0,0,28.92-12Z\" style=\"fill:#34a853\"\/><rect width=\"610\" height=\"610\" style=\"fill:none\"\/><\/svg>","showScore":true,"siteFavIcon":"https:\/\/mein-haus-in-frankreich.de\/wp-content\/uploads\/2024\/12\/cropped-Logo-Mein-Haus-in-Frankreich-32x32.png","canUser":{"general":false,"advanced":false,"snippet":false,"social":false,"analysis":false,"analytics":false,"content_ai":false},"isPro":false,"is_front_page":false,"trendsUpgradeLink":"https:\/\/rankmath.com\/pricing\/?utm_source=Plugin&utm_medium=CE%20General%20Tab%20Trends&utm_campaign=WP","trendsUpgradeLabel":"Mettre \u00e0 niveau","trendsPreviewImage":"https:\/\/mein-haus-in-frankreich.de\/wp-content\/plugins\/seo-by-rank-math\/assets\/admin\/img\/trends-preview.jpg","currentEditor":false,"homepageData":{"assessor":{"powerWords":["absolument","amazement","astonishing","authentique","beau","bien-\u00eatre","brillant","captivant","charismatique","choc","clair","compl\u00e8tement","confidentiel","confiance","cons\u00e9quent","cr\u00e9atif","d\u00e9finitivement","d\u00e9licieux","d\u00e9montrer","d\u00e9p\u00eachez-vous","d\u00e9termin\u00e9","digne","dynamique","\u00e9blouissant","\u00e9clatant","\u00e9conomique","\u00e9fficace","\u00e9l\u00e9gant","\u00e9motionnel","\u00e9nergique","\u00e9norme","\u00e9poustouflant","essentiel","\u00e9tonnant","exclusif","exp\u00e9rience","fabuleux","fantastique","formidable","fort","garanti","g\u00e9ant","g\u00e9n\u00e9reux","grandiose","gratuit","habile","harmonieux","historique","hors pair","important","incroyable","indispensable","inoubliable","inspirant","innovant","intense","invention","irr\u00e9sistible","l\u00e9gendaire","lumineux","luxe","magique","magnifique","majestueux","marquant","merveilleux","miraculeux","motivant","n\u00e9cessaire","nouvelle","officiel","parfait","passionn\u00e9","persuasif","ph\u00e9nom\u00e9nal","plaisir","populaire","pouvoir","prestigieux","prodigieux","profond","prosp\u00e8re","puissant","qualit\u00e9","radieux","rapide","r\u00e9ussi","r\u00e9volutionnaire","satisfait","s\u00e9curit\u00e9","sensationnel","serein","somptueux","splendide","sublime","surprenant","talentueux","terrifiant","unique","valeur","vibrant","victorieux","vif","vraiment","z\u00e9l\u00e9"],"diacritics":true,"researchesTests":["contentHasTOC","contentHasShortParagraphs","contentHasAssets","keywordInTitle","keywordInMetaDescription","keywordInPermalink","keywordIn10Percent","keywordInContent","keywordInSubheadings","keywordInImageAlt","keywordDensity","keywordNotUsed","lengthContent","lengthPermalink","linksHasInternal","linksHasExternals","linksNotAllExternals","titleStartWithKeyword","titleSentiment","titleHasPowerWords","titleHasNumber","hasContentAI"],"hasBreadcrumb":false,"serpData":{"title":"%sitename% %page% %sep% %sitedesc%","description":"","titleTemplate":"%sitename% %page% %sep% %sitedesc%","descriptionTemplate":"","focusKeywords":"","breadcrumbTitle":"Home","robots":{"index":true},"advancedRobots":{"max-snippet":"-1","max-video-preview":"-1","max-image-preview":"large"},"facebookTitle":"","facebookDescription":"","facebookImage":"","facebookImageID":""}}},"tocTitle":"Table of Contents","tocExcludeHeadings":[],"listStyle":"ul"},"_links":{"self":[{"href":"https:\/\/mein-haus-in-frankreich.de\/fr\/wp-json\/wp\/v2\/pages\/23868","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mein-haus-in-frankreich.de\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mein-haus-in-frankreich.de\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mein-haus-in-frankreich.de\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mein-haus-in-frankreich.de\/fr\/wp-json\/wp\/v2\/comments?post=23868"}],"version-history":[{"count":211,"href":"https:\/\/mein-haus-in-frankreich.de\/fr\/wp-json\/wp\/v2\/pages\/23868\/revisions"}],"predecessor-version":[{"id":25633,"href":"https:\/\/mein-haus-in-frankreich.de\/fr\/wp-json\/wp\/v2\/pages\/23868\/revisions\/25633"}],"wp:attachment":[{"href":"https:\/\/mein-haus-in-frankreich.de\/fr\/wp-json\/wp\/v2\/media?parent=23868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}