{"id":34385,"date":"2026-10-20T15:06:18","date_gmt":"2026-10-20T13:06:18","guid":{"rendered":"https:\/\/www.ile-blanche.com\/elaia-metadatas-2\/"},"modified":"2026-10-20T15:06:18","modified_gmt":"2026-10-20T13:06:18","slug":"elaia-metadatas","status":"publish","type":"page","link":"https:\/\/www.ile-blanche.com\/de\/elaia-metadatas\/","title":{"rendered":"Entdecken Sie die Umgebung"},"content":{"rendered":"\n\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"ItemList\",\"name\":\"Villes aux alentours\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Sainte-Marie-de-R\u00e9\",\"url\":\"https:\/\/www.ile-blanche.com\/actualites\/les-villages-de-lile-de-re\/\",\"image\":\"https:\/\/www.ile-blanche.com\/images\/villages-de-lile-de-re\/sainte-marie-de-re.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":46.1875,\"longitude\":-1.3961},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"10\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit (min)\",\"value\":\"15\"},{\"@type\":\"PropertyValue\",\"name\":\"Unbedingt sehenswerte Orte \/ Aktivit\u00e4ten\",\"value\":\"Sainte-Marie-Kirche, Basse Benaie Strand, Salzpfannen\"},{\"@type\":\"PropertyValue\",\"name\":\"M\u00e4rkte \/ lokale Veranstaltungen\",\"value\":\"Markt von Sainte-Marie, Fest des Saint-Jean\"},{\"@type\":\"PropertyValue\",\"name\":\"Restaurants \/ Spezialit\u00e4ten\",\"value\":\"Bouchot-Mies, Pineau aus Charentes\"},{\"@type\":\"PropertyValue\",\"name\":\"Kommentare oder pers\u00f6nliche Tipps\",\"value\":\"Lebhaftes Dorf mit Sommeraktivit\u00e4ten und blumengeschm\u00fcckten Gassen.\"},{\"@type\":\"PropertyValue\",\"name\":\"Vollst\u00e4ndige Adresse\",\"value\":\"Sainte-Marie-de-R\u00e9, \u00cele de R\u00e9, France\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"Ars-en-R\u00e9\",\"url\":\"https:\/\/www.ile-blanche.com\/actualites\/les-villages-de-lile-de-re\/\",\"image\":\"https:\/\/www.ile-blanche.com\/images\/villages-de-lile-de-re\/ars-en-re.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":46.2,\"longitude\":-1.46},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"20\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit (min)\",\"value\":\"25\"},{\"@type\":\"PropertyValue\",\"name\":\"Unbedingt sehenswerte Orte \/ Aktivit\u00e4ten\",\"value\":\"Saint-\u00c9tienne-Kirche, Buntes Glockenturm, Salzpfannen des Fier\"},{\"@type\":\"PropertyValue\",\"name\":\"M\u00e4rkte \/ lokale Veranstaltungen\",\"value\":\"Markt von Ars-en-R\u00e9, Fest des Saint-\u00c9tienne\"},{\"@type\":\"PropertyValue\",\"name\":\"Restaurants \/ Spezialit\u00e4ten\",\"value\":\"Fier-Austern, Salz von \u00cele de R\u00e9\"},{\"@type\":\"PropertyValue\",\"name\":\"Kommentare oder pers\u00f6nliche Tipps\",\"value\":\"Unter den Sch\u00f6nsten D\u00f6rfern Frankreichs gelistet, bekannt f\u00fcr seinen einzigartigen Glockenturm.\"},{\"@type\":\"PropertyValue\",\"name\":\"Vollst\u00e4ndige Adresse\",\"value\":\"Ars-en-R\u00e9, \u00cele de R\u00e9, Frankreich\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Saint-Martin-de-R\u00e9\",\"url\":\"https:\/\/www.ile-blanche.com\/actualites\/les-villages-de-lile-de-re\/\",\"image\":\"https:\/\/www.ile-blanche.com\/images\/villages-de-lile-de-re\/saint-martin-de-re.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":46.2,\"longitude\":-1.4},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"15\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit (min)\",\"value\":\"20\"},{\"@type\":\"PropertyValue\",\"name\":\"Unbedingt sehenswerte Orte \/ Aktivit\u00e4ten\",\"value\":\"Vauban-Festung, Ernest Cognacq Museum, Stadtmauern Saint-Martin\"},{\"@type\":\"PropertyValue\",\"name\":\"M\u00e4rkte \/ lokale Veranstaltungen\",\"value\":\"Saint-Martin-Markt, Saint-Martin-Fest\"},{\"@type\":\"PropertyValue\",\"name\":\"Restaurants \/ Spezialit\u00e4ten\",\"value\":\"Saint-Martin Austern, Pineau des Charentes\"},{\"@type\":\"PropertyValue\",\"name\":\"Kommentare oder pers\u00f6nliche Tipps\",\"value\":\"Historische Hauptstadt der Insel, UNESCO-Weltkulturerbe.\"},{\"@type\":\"PropertyValue\",\"name\":\"Vollst\u00e4ndige Adresse\",\"value\":\"Saint-Martin-de-R\u00e9, \u00cele de R\u00e9, Frankreich\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Le Bois-Plage-en-R\u00e9\",\"url\":\"https:\/\/www.ile-blanche.com\/actualites\/les-villages-de-lile-de-re\/\",\"image\":\"https:\/\/www.ile-blanche.com\/images\/villages-de-lile-de-re\/le-bois-plage-en-re.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":46.2,\"longitude\":-1.5},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"8\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit (min)\",\"value\":\"10\"},{\"@type\":\"PropertyValue\",\"name\":\"Unbedingt sehenswerte Orte \/ Aktivit\u00e4ten\",\"value\":\"Gollandi\u00e8res Strand, Le Bois-Plage Markt, Trousse-Chemise Wald\"},{\"@type\":\"PropertyValue\",\"name\":\"M\u00e4rkte \/ lokale Veranstaltungen\",\"value\":\"Le Bois-Plage Markt, Saint-Jean Festival\"},{\"@type\":\"PropertyValue\",\"name\":\"Restaurants \/ Spezialit\u00e4ten\",\"value\":\"Bouchot-Muscheln, Salz der Insel R\u00e9\"},{\"@type\":\"PropertyValue\",\"name\":\"Kommentare oder pers\u00f6nliche Tipps\",\"value\":\"Lebhaftes Dorf mit gro\u00dfem Markt im Sommer und Str\u00e4nden, die von D\u00fcnen gesch\u00fctzt sind.\"},{\"@type\":\"PropertyValue\",\"name\":\"Vollst\u00e4ndige Adresse\",\"value\":\"Le Bois-Plage-en-R\u00e9, \u00cele de R\u00e9, Frankreich\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"Rochefort\",\"url\":\"https:\/\/www.rochefort.fr\/\",\"image\":\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/0\/0e\/Rochefort_-_Corderie_Royale.jpg\/1200px-Rochefort_-_Corderie_Royale.jpg\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"32\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit (min)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Unbedingt sehenswerte Orte \/ Aktivit\u00e4ten\",\"value\":\"Kordelfabrik Royal, Marine Museum, Fort Boyard\"},{\"@type\":\"PropertyValue\",\"name\":\"M\u00e4rkte \/ lokale Veranstaltungen\",\"value\":\"Rochefort Markt, Fiction TV Festival\"},{\"@type\":\"PropertyValue\",\"name\":\"Restaurants \/ Spezialit\u00e4ten\",\"value\":\"L'Od\u00e9on-Tisch, Das Atelieri Bistrot\"},{\"@type\":\"PropertyValue\",\"name\":\"Kommentare oder pers\u00f6nliche Tipps\",\"value\":\"Besuchen Sie das Marine Museum f\u00fcr seine reiche maritime Geschichte.\"},{\"@type\":\"PropertyValue\",\"name\":\"Vollst\u00e4ndige Adresse\",\"value\":\"Rochefort, Charente-Maritime, Frankreich\"}]}},{\"@type\":\"ListItem\",\"position\":6,\"item\":{\"@type\":\"Thing\",\"name\":\"La Rochelle\",\"url\":\"https:\/\/www.larochelle.fr\/\",\"image\":\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/4\/4e\/La_Rochelle_-_Vieux_Port.jpg\/1200px-La_Rochelle_-_Vieux_Port.jpg\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"15\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit (min)\",\"value\":\"20\"},{\"@type\":\"PropertyValue\",\"name\":\"Unbedingt sehenswerte Orte \/ Aktivit\u00e4ten\",\"value\":\"Alter Hafen, La Rochelle Aquarium, Leuchtturm\"},{\"@type\":\"PropertyValue\",\"name\":\"M\u00e4rkte \/ lokale Veranstaltungen\",\"value\":\"Zentralmarkt, Francofolies de La Rochelle\"},{\"@type\":\"PropertyValue\",\"name\":\"Restaurants \/ Spezialit\u00e4ten\",\"value\":\"Les Flots, Le Comptoir de l'Atelier\"},{\"@type\":\"PropertyValue\",\"name\":\"Kommentare oder pers\u00f6nliche Tipps\",\"value\":\"Genie\u00dfen Sie eine Bootstour um die T\u00fcrme des Alten Hafens f\u00fcr eine atemberaubende Aussicht auf die Stadt.\"},{\"@type\":\"PropertyValue\",\"name\":\"Vollst\u00e4ndige Adresse\",\"value\":\"La Rochelle, Charente-Maritime, Frankreich\"}]}},{\"@type\":\"ListItem\",\"position\":7,\"item\":{\"@type\":\"Thing\",\"name\":\"La Flotte\",\"url\":\"https:\/\/www.la-flotte.fr\/\",\"image\":\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/4\/4e\/La_Flotte_-_Port.jpg\/1200px-La_Flotte_-_Port.jpg\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"1.5\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit (min)\",\"value\":\"1\"},{\"@type\":\"PropertyValue\",\"name\":\"Unbedingt sehenswerte Orte \/ Aktivit\u00e4ten\",\"value\":\"Hafen von La Flotte, Ch\u00e2teliers-Abtei, Mittelalterlicher Markt\"},{\"@type\":\"PropertyValue\",\"name\":\"M\u00e4rkte \/ lokale Veranstaltungen\",\"value\":\"La Flotte Markt, Saint-Jean Festival\"},{\"@type\":\"PropertyValue\",\"name\":\"Restaurants \/ Spezialit\u00e4ten\",\"value\":\"La Chaloupe, Le Bistrot du March\u00e9\"},{\"@type\":\"PropertyValue\",\"name\":\"Kommentare oder pers\u00f6nliche Tipps\",\"value\":\"Besuchen Sie die Ch\u00e2teliers-Abtei f\u00fcr eine Eintauchen in die mittelalterliche Geschichte der Insel.\"},{\"@type\":\"PropertyValue\",\"name\":\"Vollst\u00e4ndige Adresse\",\"value\":\"La Flotte, Charente-Maritime, Frankreich\"}]}}]},{\"@type\":\"ItemList\",\"name\":\"Activit\u00e9s \\u0026 sites autour du camping\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Wasserpark des Camping L'\u00cele Blanche\",\"description\":\"Vollst\u00e4ndig renovierte Wasserfl\u00e4che mit gro\u00dfem beheiztem \u00fcberdachtem und offenem Becken bei 28\u00b0C, Jacuzzi, Sauna, Solarium und Planschbecken mit Wasserspielen f\u00fcr Kinder.\",\"url\":\"https:\/\/www.ile-blanche.com\/loisirs-camping-ile-de-re\/\",\"image\":\"https:\/\/www.ile-blanche.com\/wp-content\/uploads\/2021\/06\/piscine-couverte-ile-de-re-camping-ile-blanche.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":46.1872,\"longitude\":1.3965},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Kategorie\",\"value\":\"Wassersport\"},{\"@type\":\"PropertyValue\",\"name\":\"Ort\",\"value\":\"La Flotte, \u00cele de R\u00e9\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung erforderlich\",\"value\":\"Non\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"Fahrradverleih\",\"description\":\"Fahrradverleih, um die \u00cele de R\u00e9 in deinem eigenen Tempo zu entdecken, mit sicheren Radwegen und abwechslungsreicher Landschaft.\",\"url\":\"https:\/\/www.ile-blanche.com\/loisirs-camping-ile-de-re\/\",\"image\":\"https:\/\/www.ile-blanche.com\/wp-content\/uploads\/2021\/06\/location-velo-ile-de-re-camping-ile-blanche.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":46.1872,\"longitude\":1.3965},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Kategorie\",\"value\":\"Fahrradtouren\"},{\"@type\":\"PropertyValue\",\"name\":\"Ort\",\"value\":\"La Flotte, \u00cele de R\u00e9\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung erforderlich\",\"value\":\"Oui\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Aquagym\",\"description\":\"Aquagym-Einheiten vom Camping-Team geleitet, perfekt, um fit zu bleiben und Spa\u00df zu haben.\",\"url\":\"https:\/\/www.ile-blanche.com\/loisirs-camping-ile-de-re\/\",\"image\":\"https:\/\/www.ile-blanche.com\/wp-content\/uploads\/2021\/06\/aquagym-ile-de-re-camping-ile-blanche.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":46.1872,\"longitude\":1.3965},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Kategorie\",\"value\":\"Wassersport\"},{\"@type\":\"PropertyValue\",\"name\":\"Ort\",\"value\":\"La Flotte, \u00cele de R\u00e9\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung erforderlich\",\"value\":\"Non\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Les Halles de La Rochelle Markt\",\"description\":\"\u00dcberdachter Markt mit regionalen Produkten, frischen Austern und freundlicher Atmosph\u00e4re.\",\"url\":\"https:\/\/www.ile-blanche.com\/tourisme-ile-de-re\/tourisme-la-rochelle\/\",\"image\":\"https:\/\/www.ile-blanche.com\/wp-content\/uploads\/2021\/06\/marche-des-halles-la-rochelle.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":46.1575,\"longitude\":1.1575},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Ort\",\"value\":\"La Rochelle, Frankreich\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung erforderlich\",\"value\":\"Non\"}]}}]}]}<\/script>\n<style>\n  .mv-wrap {\n    --mv-accent: #2e5e45;\n    --mv-accent-soft: #2e5e451a;\n    --mv-cream: #faf7f2;\n    --mv-line: #ebe5da;\n    --mv-muted: #6b6559;\n    --mv-header: 0px;\n    font-family: 'Inter', -apple-system, sans-serif;\n    color: #1f2a24;\n    max-width: 1440px;\n    margin: 0 auto;\n    padding: 0 24px 56px;\n    box-sizing: border-box;\n  }\n\n  .mv-wrap *,\n  .mv-wrap *::before,\n  .mv-wrap *::after,\n  .mv-modal-overlay *,\n  .mv-modal-overlay *::before,\n  .mv-modal-overlay *::after {\n    box-sizing: border-box;\n  }\n\n  .mv-wrap button,\n  .mv-wrap input,\n  .mv-modal-overlay button {\n    font-family: 'Inter', -apple-system, sans-serif;\n  }\n\n  .mv-icon {\n    display: inline-flex;\n    width: 1em;\n    height: 1em;\n    flex-shrink: 0;\n  }\n\n  .mv-icon svg {\n    width: 100%;\n    height: 100%;\n  }\n\n  \/* \u2500\u2500\u2500 Bandeau \u2500\u2500\u2500 *\/\n  .mv-hero {\n    position: relative;\n    overflow: hidden;\n    margin: 16px 0 24px;\n    padding: 56px 48px;\n    border-radius: 24px;\n    background: var(--mv-cream);\n    background-size: cover;\n    background-position: center right;\n  }\n\n  .mv-hero::before {\n    content: '';\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(90deg, rgba(250, 247, 242, 0.97) 0%, rgba(250, 247, 242, 0.88) 38%, rgba(250, 247, 242, 0.2) 70%, rgba(250, 247, 242, 0) 100%);\n  }\n\n  .mv-hero-inner {\n    position: relative;\n    max-width: 560px;\n  }\n\n  .mv-hero-title {\n    margin: 0 0 12px !important;\n    font-size: clamp(30px, 4vw, 48px) !important;\n    line-height: 1.1 !important;\n    color: #1c2b22 !important;\n  }\n\n  .mv-hero-text {\n    margin: 0 0 20px !important;\n    font-size: 17px;\n    line-height: 1.55;\n    color: #3b4a40;\n  }\n\n  .mv-hero-chip {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    padding: 9px 16px;\n    border-radius: 999px;\n    background: #fff;\n    box-shadow: 0 2px 8px rgba(31, 42, 36, 0.1);\n    font-size: 14px;\n    color: #3b4a40;\n  }\n\n  .mv-hero-chip strong {\n    color: #1c2b22;\n  }\n\n  \/* \u2500\u2500\u2500 Recherche + distance \u2500\u2500\u2500 *\/\n  .mv-controls {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 12px;\n    margin-bottom: 14px;\n  }\n\n  .mv-search {\n    position: relative;\n    flex: 1 1 360px;\n  }\n\n  .mv-search .mv-icon {\n    position: absolute;\n    left: 18px;\n    top: 50%;\n    transform: translateY(-50%);\n    font-size: 18px;\n    color: var(--mv-muted);\n  }\n\n  .mv-search input {\n    width: 100% !important;\n    height: 50px;\n    padding: 0 18px 0 48px !important;\n    border: 1px solid var(--mv-line) !important;\n    border-radius: 999px !important;\n    background: #fff !important;\n    font-size: 15px !important;\n    color: #1f2a24;\n    outline: none;\n    box-shadow: 0 1px 3px rgba(31, 42, 36, 0.05);\n  }\n\n  .mv-search input:focus {\n    border-color: var(--mv-accent) !important;\n    box-shadow: 0 0 0 3px var(--mv-accent-soft) !important;\n  }\n\n  .mv-seg {\n    display: inline-flex;\n    padding: 4px;\n    gap: 2px;\n    border: 1px solid var(--mv-line);\n    border-radius: 999px;\n    background: #fff;\n  }\n\n  .mv-seg button {\n    padding: 0 18px;\n    height: 40px;\n    border: 0;\n    border-radius: 999px;\n    background: transparent;\n    color: #3b4a40;\n    font-size: 14px;\n    font-weight: 600;\n    cursor: pointer;\n    white-space: nowrap;\n    transition: all 0.15s;\n  }\n\n  .mv-seg button:hover {\n    background: var(--mv-cream);\n  }\n\n  .mv-seg button.is-active {\n    background: var(--mv-accent);\n    color: #fff;\n  }\n\n  \/* \u2500\u2500\u2500 Cat\u00e9gories \u2500\u2500\u2500 *\/\n  \/* Cat\u00e9gories : une seule ligne qui d\u00e9file, fl\u00e8ches + fondu sur les bords *\/\n  .mv-cats-wrap {\n    position: relative;\n    margin-bottom: 18px;\n  }\n\n  .mv-cats {\n    display: flex;\n    flex-wrap: nowrap;\n    gap: 8px;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scrollbar-width: none;\n    padding: 2px 0;\n  }\n\n  .mv-cats::-webkit-scrollbar {\n    display: none;\n  }\n\n  .mv-cat {\n    flex-shrink: 0;\n  }\n\n  .mv-cats-arrow {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    z-index: 1;\n    display: none;\n    align-items: center;\n    width: 64px;\n    padding: 0;\n    border: 0;\n    cursor: pointer;\n    font-size: 20px;\n    color: #1f2a24;\n  }\n\n  .mv-cats-arrow span {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 36px;\n    height: 36px;\n    border: 1px solid var(--mv-line);\n    border-radius: 50%;\n    background: #fff;\n    box-shadow: 0 2px 6px rgba(31, 42, 36, 0.12);\n  }\n\n  .mv-cats-arrow--left {\n    left: 0;\n    justify-content: flex-start;\n    background: linear-gradient(90deg, #fff 45%, rgba(255, 255, 255, 0));\n  }\n\n  .mv-cats-arrow--right {\n    right: 0;\n    justify-content: flex-end;\n    background: linear-gradient(270deg, #fff 45%, rgba(255, 255, 255, 0));\n  }\n\n  .mv-cats-wrap.can-left .mv-cats-arrow--left,\n  .mv-cats-wrap.can-right .mv-cats-arrow--right {\n    display: flex;\n  }\n\n  .mv-cat {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    padding: 9px 16px;\n    border: 1px solid var(--mv-line);\n    border-radius: 999px;\n    background: #fff;\n    color: #2f3b33;\n    font-size: 14px;\n    font-weight: 500;\n    cursor: pointer;\n    transition: all 0.15s;\n  }\n\n  .mv-cat .mv-icon {\n    font-size: 17px;\n    color: var(--mv-cat);\n  }\n\n  .mv-cat:hover {\n    border-color: #d6cdbd;\n  }\n\n  .mv-cat.is-active {\n    background: var(--mv-accent);\n    border-color: var(--mv-accent);\n    color: #fff;\n  }\n\n  .mv-cat.is-active .mv-icon {\n    color: #fff;\n  }\n\n  \/* \u2500\u2500\u2500 Barre compteur + liste\/carte \u2500\u2500\u2500 *\/\n  .mv-bar {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 12px;\n    margin-bottom: 16px;\n  }\n\n  .mv-count {\n    margin: 0 !important;\n    font-size: 15px;\n    color: var(--mv-muted);\n  }\n\n  .mv-count strong {\n    color: #1f2a24;\n  }\n\n  \/* \u2500\u2500\u2500 Layout liste + carte \u2500\u2500\u2500 *\/\n  .mv-layout {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) minmax(340px, 38%);\n    gap: 24px;\n    align-items: start;\n  }\n\n  .mv-layout.is-list {\n    grid-template-columns: minmax(0, 1fr);\n  }\n\n  .mv-layout.is-list .mv-map-panel {\n    display: none;\n  }\n\n  .mv-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\n    \/* dense : la fiche \u00ab \u00c0 la une \u00bb (2 colonnes) ne laisse pas de trou sur grand \u00e9cran *\/\n    grid-auto-flow: dense;\n    gap: 18px;\n  }\n\n  \/* Colonne carte (sticky) : carte carr\u00e9e + fiche du rep\u00e8re cliqu\u00e9 en dessous *\/\n  .mv-map-panel {\n    position: sticky;\n    top: calc(var(--mv-header) + 16px);\n    display: flex;\n    flex-direction: column;\n    gap: 12px;\n  }\n\n  .mv-map {\n    width: 100%;\n    aspect-ratio: 1 \/ 1;\n    max-height: max(300px, calc(100vh - var(--mv-header) - 290px));\n    \/* Certains th\u00e8mes rouvrent le d\u00e9bordement des cartes Leaflet : les tuiles\n       d\u00e9passaient alors de la page (camping de la Croze). On rogne quoi qu'il arrive. *\/\n    overflow: hidden !important;\n    contain: paint;\n    border: 1px solid var(--mv-line);\n    border-radius: 20px;\n    background: var(--mv-cream);\n  }\n\n  .mv-preview-hint {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    padding: 16px 18px;\n    border: 1px dashed #d6cdbd;\n    border-radius: 16px;\n    color: var(--mv-muted);\n    font-size: 14px;\n  }\n\n  .mv-preview-hint .mv-icon {\n    font-size: 20px;\n    color: var(--mv-accent);\n  }\n\n  \/* Fiche compacte (horizontale) sous la carte \u2014 s\u00e9lecteurs doubl\u00e9s pour\n     passer devant les r\u00e8gles .mv-card d\u00e9finies plus bas *\/\n  .mv-card.mv-card--mini {\n    flex-direction: row;\n    min-height: 0;\n    border-radius: 16px;\n  }\n\n  .mv-card.mv-card--mini:hover {\n    transform: none;\n  }\n\n  .mv-card.mv-card--mini .mv-card-media {\n    flex: 0 0 120px;\n    width: 120px;\n    aspect-ratio: auto;\n    min-height: 120px;\n  }\n\n  .mv-card.mv-card--mini .mv-card-noimg {\n    font-size: 28px;\n  }\n\n  .mv-card.mv-card--mini .mv-card-body {\n    gap: 4px;\n    min-width: 0;\n    padding: 10px 14px;\n  }\n\n  .mv-card.mv-card--mini .mv-card-title {\n    font-size: 16px !important;\n    -webkit-line-clamp: 1;\n  }\n\n  .mv-card.mv-card--mini .mv-meta {\n    font-size: 12px;\n  }\n\n  .mv-card.mv-card--mini .mv-card-desc {\n    font-size: 13px;\n    -webkit-line-clamp: 2;\n  }\n\n  .mv-card.mv-card--mini .mv-card-foot {\n    padding-top: 2px;\n  }\n\n  .mv-card.mv-card--mini .mv-discover {\n    padding: 5px 12px;\n    font-size: 13px;\n  }\n\n  .mv-card.mv-card--mini .mv-pill {\n    position: static;\n    align-self: flex-start;\n    padding: 2px 10px;\n    font-size: 11px;\n    box-shadow: none;\n  }\n\n  \/* \u2500\u2500\u2500 Carte (fiche) \u2500\u2500\u2500 *\/\n  \/* La liste change brutalement de hauteur au clic sur une cat\u00e9gorie :\n     l'ancrage de d\u00e9filement du navigateur \u00ab corrigeait \u00bb alors la position et\n     contrariait le d\u00e9filement vers les filtres. *\/\n  #mv-app {\n    overflow-anchor: none;\n  }\n\n  .mv-card {\n    position: relative;\n    display: flex;\n    flex-direction: column;\n    min-width: 0;\n    overflow: hidden;\n    border: 1px solid var(--mv-line);\n    border-radius: 18px;\n    background: #fff;\n    box-shadow: 0 1px 3px rgba(31, 42, 36, 0.05);\n    cursor: pointer;\n    transition: box-shadow 0.2s, transform 0.2s;\n  }\n\n  .mv-card:hover,\n  .mv-card.is-hover {\n    box-shadow: 0 12px 28px rgba(31, 42, 36, 0.12);\n    transform: translateY(-2px);\n  }\n\n  .mv-card-media {\n    position: relative;\n    \/* Hauteur fix\u00e9e par le format, jamais par la photo : sans flex-shrink ni\n       taille minimale de contenu, une photo en hauteur \u00e9tirait son cadre et\n       les cartes d'une m\u00eame rang\u00e9e n'avaient plus des images align\u00e9es. *\/\n    flex: 0 0 auto;\n    min-height: 0;\n    \/* Pas d'overflow: hidden ici : la pastille de cat\u00e9gorie est pos\u00e9e \u00e0 cheval\n       sur le bas de l'image. L'image, en absolu, ne d\u00e9borde pas de son cadre. *\/\n    aspect-ratio: 16 \/ 10;\n    background: var(--mv-cream);\n  }\n\n  .mv-card-media img {\n    position: absolute;\n    inset: 0;\n    display: block;\n    width: 100% !important;\n    max-width: none !important;\n    height: 100% !important;\n    object-fit: cover;\n  }\n\n  .mv-card-noimg {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 100%;\n    height: 100%;\n    font-size: 42px;\n    color: var(--mv-cat);\n    background: color-mix(in srgb, var(--mv-cat) 10%, var(--mv-cream));\n  }\n\n  .mv-pill {\n    display: inline-flex;\n    align-items: center;\n    padding: 4px 12px;\n    border-radius: 999px;\n    background: #fff;\n    background: color-mix(in srgb, var(--mv-cat) 14%, #fff);\n    color: var(--mv-cat);\n    font-size: 12px;\n    font-weight: 600;\n    white-space: nowrap;\n  }\n\n  .mv-card-media .mv-pill {\n    position: absolute;\n    left: 12px;\n    bottom: -12px;\n    background: color-mix(in srgb, var(--mv-cat) 12%, #fff);\n    box-shadow: 0 2px 6px rgba(31, 42, 36, 0.12);\n  }\n\n  .mv-card-body {\n    display: flex;\n    flex: 1;\n    flex-direction: column;\n    gap: 7px;\n    padding: 22px 16px 16px;\n  }\n\n  .mv-card-title {\n    margin: 0 !important;\n    font-size: 18px !important;\n    line-height: 1.25 !important;\n    color: #1c2b22 !important;\n    display: -webkit-box;\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n  }\n\n  .mv-meta {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    gap: 6px 12px;\n    margin: 0 !important;\n    font-size: 13px;\n    color: var(--mv-muted);\n  }\n\n  .mv-meta span {\n    display: inline-flex;\n    align-items: center;\n    gap: 5px;\n  }\n\n  .mv-card-desc {\n    margin: 0 !important;\n    font-size: 14px;\n    line-height: 1.5;\n    color: #4b5850;\n    display: -webkit-box;\n    -webkit-line-clamp: 3;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n  }\n\n  .mv-tags {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 6px;\n  }\n\n  .mv-tag {\n    padding: 3px 10px;\n    border-radius: 999px;\n    background: #f3efe8;\n    color: #4b5850;\n    font-size: 12px;\n    max-width: 100%;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n\n  .mv-card-foot {\n    display: flex;\n    justify-content: flex-end;\n    margin-top: auto;\n    padding-top: 6px;\n  }\n\n  .mv-discover {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    padding: 8px 16px;\n    border: 0;\n    border-radius: 999px;\n    background: #f7ebe0;\n    color: #1c2b22;\n    font-size: 14px;\n    font-weight: 600;\n    cursor: pointer;\n    transition: background 0.15s;\n  }\n\n  .mv-card:hover .mv-discover {\n    background: #f1dcc9;\n  }\n\n  \/* Carte \u00ab \u00e0 la une \u00bb : grande, texte sur l'image *\/\n  .mv-card--featured {\n    grid-column: span 2;\n    min-height: 360px;\n  }\n\n  .mv-card--featured .mv-card-media {\n    position: absolute;\n    inset: 0;\n    aspect-ratio: auto;\n  }\n\n  .mv-card--featured .mv-card-media::after {\n    content: '';\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(90deg, rgba(20, 24, 20, 0.72) 0%, rgba(20, 24, 20, 0.35) 55%, rgba(20, 24, 20, 0.05) 100%);\n  }\n\n  .mv-card--featured .mv-card-body {\n    position: relative;\n    justify-content: flex-end;\n    max-width: 480px;\n    padding: 28px;\n    color: #fff;\n  }\n\n  .mv-card--featured .mv-card-title {\n    font-size: 30px !important;\n    color: #fff !important;\n  }\n\n  .mv-card--featured .mv-card-desc,\n  .mv-card--featured .mv-meta {\n    color: rgba(255, 255, 255, 0.9);\n  }\n\n  .mv-card--featured .mv-card-foot {\n    justify-content: flex-start;\n    margin-top: 8px;\n  }\n\n  .mv-card--featured .mv-discover {\n    background: #fff;\n  }\n\n  .mv-flag {\n    align-self: flex-start;\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    margin-bottom: 6px;\n    padding: 6px 12px;\n    border-radius: 999px;\n    background: #c2410c;\n    color: #fff;\n    font-size: 12px;\n    font-weight: 700;\n    letter-spacing: 0.4px;\n    text-transform: uppercase;\n  }\n\n  \/* Pagination *\/\n  .mv-more {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    align-items: center;\n    gap: 6px;\n    margin-top: 28px;\n  }\n\n  .mv-page {\n    min-width: 42px;\n    height: 42px;\n    padding: 0 12px;\n    border: 1px solid var(--mv-line);\n    border-radius: 999px;\n    background: #fff;\n    color: #2f3b33;\n    font-size: 14px;\n    font-weight: 600;\n    cursor: pointer;\n    transition: all 0.15s;\n  }\n\n  .mv-page:hover:not(:disabled):not([aria-current=\"page\"]) {\n    border-color: var(--mv-accent);\n    color: var(--mv-accent);\n  }\n\n  .mv-page[aria-current=\"page\"] {\n    background: var(--mv-accent);\n    border-color: var(--mv-accent);\n    color: #fff;\n    cursor: default;\n  }\n\n  .mv-page:disabled {\n    opacity: 0.4;\n    cursor: not-allowed;\n  }\n\n  .mv-page-gap {\n    padding: 0 4px;\n    color: var(--mv-muted);\n  }\n\n  \/* Bouton \u00ab Revenir \u00e0 la vue d'ensemble \u00bb (visible apr\u00e8s un zoom \/ d\u00e9placement) *\/\n  .mv-map {\n    position: relative;\n  }\n\n  \/* Pas de gros contour noir au clic sur la carte ; contour visible au clavier seulement *\/\n  .mv-map.leaflet-container:focus {\n    outline: none;\n  }\n\n  .mv-map.leaflet-container:focus-visible {\n    outline: 3px solid var(--mv-accent);\n    outline-offset: 2px;\n  }\n\n  .mv-reset {\n    position: absolute;\n    top: 12px;\n    left: 12px;\n    z-index: 500;\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    padding: 8px 14px;\n    border: 0;\n    border-radius: 999px;\n    background: #fff;\n    color: #1c2b22;\n    font-family: 'Inter', -apple-system, sans-serif;\n    font-size: 13px;\n    font-weight: 600;\n    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);\n    cursor: pointer;\n  }\n\n  .mv-reset[hidden] {\n    display: none;\n  }\n\n  .mv-reset:hover {\n    background: var(--mv-accent);\n    color: #fff;\n  }\n\n  .mv-reset .mv-icon {\n    font-size: 15px;\n  }\n\n  \/* Rep\u00e8re de l'\u00e9tablissement (\u00ab vous \u00eates ici \u00bb) *\/\n  .mv-home {\n    background: none;\n    border: none;\n    pointer-events: none;\n  }\n\n  .mv-home-pin {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 44px;\n    height: 44px;\n    border: 3px solid #fff;\n    border-radius: 50%;\n    background: #1c2b22;\n    color: #fff;\n    box-shadow: 0 0 0 5px rgba(28, 43, 34, 0.25), 0 4px 12px rgba(0, 0, 0, 0.35);\n  }\n\n  .mv-home-pin svg {\n    width: 22px;\n    height: 22px;\n  }\n\n  .mv-home-label.leaflet-tooltip {\n    padding: 5px 10px;\n    border: 0;\n    border-radius: 999px;\n    background: #1c2b22;\n    color: #fff;\n    font-family: 'Inter', -apple-system, sans-serif;\n    font-size: 12px;\n    font-weight: 700;\n    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);\n  }\n\n  .mv-home-label.leaflet-tooltip-right::before {\n    border-right-color: #1c2b22;\n  }\n\n  .mv-btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n    padding: 12px 26px;\n    border: 0;\n    border-radius: 999px;\n    background: var(--mv-accent);\n    color: #fff !important;\n    font-size: 15px;\n    font-weight: 600;\n    text-decoration: none !important;\n    cursor: pointer;\n    transition: filter 0.15s;\n  }\n\n  .mv-btn:hover {\n    filter: brightness(0.92);\n  }\n\n  .mv-empty {\n    grid-column: 1 \/ -1;\n    padding: 40px 20px;\n    border: 1px dashed #d6cdbd;\n    border-radius: 18px;\n    background: #fff;\n    color: var(--mv-muted);\n    text-align: center;\n  }\n\n  .mv-empty strong {\n    display: block;\n    margin-bottom: 4px;\n    color: #1f2a24;\n  }\n\n  \/* \u2500\u2500\u2500 Id\u00e9es selon vos envies \u2500\u2500\u2500 *\/\n  .mv-ideas {\n    margin-top: 48px;\n  }\n\n  .mv-ideas-head {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: baseline;\n    justify-content: space-between;\n    gap: 8px 24px;\n    margin-bottom: 16px;\n  }\n\n  .mv-ideas-title {\n    margin: 0 !important;\n    font-size: clamp(22px, 2.6vw, 30px) !important;\n    color: #1c2b22 !important;\n  }\n\n  .mv-ideas-sub {\n    margin: 0 !important;\n    color: var(--mv-muted);\n    font-size: 14px;\n  }\n\n  .mv-ideas-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));\n    gap: 16px;\n  }\n\n  .mv-idea {\n    display: flex;\n    align-items: stretch;\n    overflow: hidden;\n    min-height: 88px;\n    padding: 0;\n    border: 1px solid var(--mv-line);\n    border-radius: 16px;\n    background: #fff;\n    text-align: left;\n    cursor: pointer;\n    transition: box-shadow 0.2s;\n  }\n\n  .mv-idea:hover {\n    box-shadow: 0 8px 20px rgba(31, 42, 36, 0.1);\n  }\n\n  .mv-idea-img {\n    flex: 0 0 38%;\n    background: var(--mv-cream) center \/ cover no-repeat;\n  }\n\n  .mv-idea-body {\n    display: flex;\n    flex: 1;\n    align-items: center;\n    gap: 10px;\n    padding: 12px 14px;\n  }\n\n  .mv-idea-body .mv-icon {\n    font-size: 22px;\n    color: var(--mv-cat);\n  }\n\n  .mv-idea-text {\n    flex: 1;\n    min-width: 0;\n  }\n\n  .mv-idea-text strong {\n    display: block;\n    font-size: 14px;\n    color: #1c2b22;\n    line-height: 1.3;\n  }\n\n  .mv-idea-text span {\n    font-size: 13px;\n    color: var(--mv-muted);\n  }\n\n  \/* \u2500\u2500\u2500 Marqueurs carte \u2500\u2500\u2500 *\/\n  .mv-pin svg {\n    display: block;\n    overflow: visible;\n    transform-origin: 50% 100%;\n    transition: transform 0.15s ease;\n    filter: drop-shadow(0 2px 3px rgba(20, 24, 20, 0.35));\n  }\n\n  .mv-pin.is-hover svg {\n    transform: scale(1.3);\n  }\n\n  .mv-pin.is-selected svg {\n    transform: scale(1.4);\n    filter: drop-shadow(0 0 0 #fff) drop-shadow(0 3px 6px rgba(20, 24, 20, 0.45));\n  }\n\n  .mv-pin.is-selected {\n    z-index: 1001 !important;\n  }\n\n  \/* Pas de carr\u00e9 de focus Leaflet autour du rep\u00e8re cliqu\u00e9 *\/\n  .mv-pin:focus,\n  .mv-pin:focus-visible {\n    outline: none;\n  }\n\n  .mv-pin.is-hover {\n    z-index: 1000 !important;\n  }\n\n  .mv-cluster {\n    background: none;\n    border: none;\n  }\n\n  .mv-cluster span {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    border: 3px solid #fff;\n    border-radius: 50%;\n    background: var(--mv-accent, #2e5e45);\n    color: #fff;\n    font-size: 13px;\n    font-weight: 700;\n    box-shadow: 0 3px 8px rgba(20, 24, 20, 0.3);\n  }\n\n\n  \/* \u2500\u2500\u2500 Modal \u2500\u2500\u2500 *\/\n  .mv-modal-overlay {\n    position: fixed !important;\n    inset: 0 !important;\n    z-index: 99999 !important;\n    max-width: none !important;\n    width: auto !important;\n    margin: 0 !important;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    background: rgba(20, 24, 20, 0.4);\n    backdrop-filter: blur(2px);\n  }\n\n  .mv-modal-overlay[hidden] {\n    display: none !important;\n  }\n\n  .mv-modal {\n    position: relative;\n    width: 100%;\n    max-width: 1080px;\n    max-height: calc(100vh - 32px);\n    overflow-y: auto;\n    border-radius: 22px;\n    background: #fff;\n    box-shadow: 0 24px 60px rgba(20, 24, 20, 0.3);\n    font-family: 'Inter', -apple-system, sans-serif;\n    color: #1f2a24;\n  }\n\n  \/* Cr\u00e9dit photo : discret sur la carte (\u00a9, auteur au survol), lisible en fiche. *\/\n  .mv-credit {\n    position: absolute;\n    top: 8px;\n    right: 8px;\n    z-index: 2;\n    max-width: calc(100% - 16px);\n    padding: 2px 7px;\n    border-radius: 999px;\n    background: rgba(0, 0, 0, 0.45);\n    color: #fff;\n    font-size: 11px;\n    line-height: 1.5;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    cursor: help;\n  }\n\n  .mv-card:hover .mv-credit::after,\n  .mv-credit:focus::after {\n    content: ' ' attr(data-credit);\n  }\n\n  \/* Bandeau : le cr\u00e9dit est \u00e9crit en clair (pas de survol sur une image de fond),\n     en bas \u00e0 droite, loin du titre. *\/\n  .mv-credit--hero {\n    top: auto;\n    bottom: 10px;\n    right: 12px;\n    max-width: 60%;\n    cursor: default;\n  }\n\n  .mv-modal-credit {\n    margin: 6px 2px 0 !important;\n    color: var(--mv-muted, #6b7280);\n    font-size: 12px !important;\n    line-height: 1.4 !important;\n  }\n\n  .mv-modal-img {\n    display: block;\n    width: 100%;\n    aspect-ratio: 4 \/ 3;\n    max-height: 52vh;\n    object-fit: cover;\n    border-radius: 14px;\n  }\n\n  \/* Modal large : contenu sur 2 colonnes (texte \/ m\u00e9dias) pour \u00e9viter de d\u00e9filer *\/\n  .mv-modal-cols {\n    display: grid;\n    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);\n    gap: 28px;\n    align-items: start;\n  }\n\n  \/* Colonne m\u00e9dias : reste visible pendant qu'on lit le texte *\/\n  .mv-modal-col--media {\n    position: sticky;\n    top: 0;\n  }\n\n  .mv-modal-body {\n    padding-top: 26px !important;\n  }\n\n  \/* Place pour le bouton de fermeture en haut \u00e0 droite *\/\n  .mv-modal-cols > .mv-modal-col:last-child {\n    padding-right: 36px;\n  }\n\n  .mv-modal-col {\n    display: flex;\n    flex-direction: column;\n    gap: 14px;\n    min-width: 0;\n  }\n\n  .mv-modal-actions {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px;\n  }\n\n  .mv-btn--ghost {\n    background: #fff;\n    border: 1px solid var(--mv-line);\n    color: #1c2b22 !important;\n  }\n\n  .mv-btn--ghost:hover {\n    filter: none;\n    border-color: var(--mv-accent);\n  }\n\n  @media (max-width: 900px) {\n    .mv-modal-cols {\n      grid-template-columns: minmax(0, 1fr);\n      gap: 14px;\n    }\n\n    \/* Mobile : photo, puis texte, puis boutons \/ m\u00e9dias *\/\n    .mv-modal-cols {\n      display: flex;\n      flex-direction: column;\n    }\n\n    .mv-modal-col--media {\n      display: contents;\n    }\n\n    .mv-modal-col--media > .mv-modal-img {\n      order: -2;\n    }\n\n    .mv-modal-cols > .mv-modal-col:last-child {\n      order: -1;\n    }\n\n    .mv-modal-cols > .mv-modal-col:last-child {\n      padding-right: 0;\n    }\n  }\n\n  .mv-modal-body {\n    display: flex;\n    flex-direction: column;\n    gap: 14px;\n    padding: 22px 26px 26px;\n  }\n\n  .mv-modal-title {\n    margin: 0 !important;\n    font-size: 26px !important;\n    line-height: 1.2 !important;\n    color: #1c2b22 !important;\n  }\n\n  .mv-modal-desc {\n    margin: 0 !important;\n    font-size: 15px;\n    line-height: 1.65;\n    color: #4b5850;\n    white-space: pre-line;\n  }\n\n  .mv-modal-event {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    align-self: flex-start;\n    padding: 7px 12px;\n    border-radius: 10px;\n    background: var(--mv-accent-soft);\n    color: var(--mv-accent);\n    font-size: 14px;\n    font-weight: 600;\n  }\n\n  .mv-fields {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n    gap: 10px 20px;\n    padding: 14px 16px;\n    border-radius: 14px;\n    background: var(--mv-cream);\n  }\n\n  .mv-field span {\n    display: block;\n    margin-bottom: 2px;\n    font-size: 12px;\n    line-height: 1.35 !important;\n    color: var(--mv-muted);\n  }\n\n  .mv-field strong {\n    display: block;\n    font-size: 14px;\n    font-weight: 600;\n    line-height: 1.4 !important;\n    color: #1f2a24;\n    overflow-wrap: anywhere;\n  }\n\n  \/* \u2500\u2500\u2500 Agrandissement automatique par paliers (fiches tr\u00e8s remplies) \u2500\u2500\u2500\n     1. is-wide    : fen\u00eatre plus large, infos sur 3 colonnes, photo plus basse\n     2. is-compact : espacements et textes resserr\u00e9s *\/\n  .mv-modal.is-wide {\n    max-width: min(1320px, calc(100vw - 32px));\n  }\n\n  .mv-modal.is-wide .mv-fields {\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n  }\n\n  .mv-modal.is-wide .mv-modal-img {\n    aspect-ratio: 16 \/ 10;\n    max-height: 36vh;\n  }\n\n  .mv-modal.is-compact .mv-modal-body {\n    gap: 10px;\n    padding: 18px 20px 20px !important;\n  }\n\n  .mv-modal.is-compact .mv-modal-col {\n    gap: 10px;\n  }\n\n  .mv-modal.is-compact .mv-modal-title {\n    font-size: 22px !important;\n  }\n\n  .mv-modal.is-compact .mv-modal-desc {\n    font-size: 14px;\n    line-height: 1.55;\n  }\n\n  .mv-modal.is-compact .mv-fields {\n    gap: 8px 16px;\n    padding: 12px 14px;\n  }\n\n  .mv-modal.is-compact .mv-field strong {\n    font-size: 13px;\n  }\n\n  .mv-modal.is-compact .mv-modal-img {\n    max-height: 30vh;\n  }\n\n  @media (max-width: 900px) {\n    .mv-modal.is-wide .mv-fields {\n      grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));\n    }\n  }\n\n  .mv-modal-sub {\n    margin: 4px 0 0 !important;\n    font-size: 13px;\n    font-weight: 700;\n    letter-spacing: 0.4px;\n    text-transform: uppercase;\n    color: var(--mv-muted);\n  }\n\n  .mv-gallery {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));\n    gap: 8px;\n  }\n\n  .mv-gallery img {\n    display: block;\n    width: 100%;\n    aspect-ratio: 1;\n    object-fit: cover;\n    border-radius: 10px;\n  }\n\n  .mv-docs a {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    padding: 8px 0;\n    color: var(--mv-accent);\n    font-weight: 600;\n    text-decoration: none;\n  }\n\n  .mv-video {\n    position: relative;\n    aspect-ratio: 16 \/ 9;\n    border-radius: 12px;\n    overflow: hidden;\n    background: #000;\n  }\n\n  .mv-video iframe,\n  .mv-video video {\n    position: absolute;\n    inset: 0;\n    width: 100%;\n    height: 100%;\n    border: 0;\n  }\n\n  .mv-faq details {\n    border-bottom: 1px solid var(--mv-line);\n    padding: 10px 0;\n  }\n\n  .mv-faq summary {\n    cursor: pointer;\n    font-size: 15px !important;\n    font-weight: 600;\n    line-height: 1.4 !important;\n    color: #1c2b22;\n  }\n\n  .mv-faq p {\n    margin: 8px 0 0 !important;\n    color: #4b5850;\n    line-height: 1.55;\n  }\n\n  .mv-modal-close {\n    position: absolute;\n    top: 12px;\n    right: 12px;\n    z-index: 2;\n    width: 40px;\n    height: 40px;\n    border: 0;\n    border-radius: 50%;\n    background: rgba(255, 255, 255, 0.95);\n    color: #1f2a24;\n    font-size: 22px;\n    line-height: 1;\n    cursor: pointer;\n    box-shadow: 0 2px 6px rgba(20, 24, 20, 0.2);\n  }\n\n  \/* \u2500\u2500\u2500 Responsive \u2500\u2500\u2500 *\/\n  @media (max-width: 1100px) {\n    .mv-layout {\n      grid-template-columns: minmax(0, 1fr);\n    }\n\n    .mv-map-panel {\n      position: relative;\n      top: 0;\n      order: -1;\n    }\n\n    .mv-map {\n      aspect-ratio: 4 \/ 3;\n      max-height: 420px;\n    }\n  }\n\n  @media (max-width: 720px) {\n    .mv-wrap {\n      padding: 0 12px 40px;\n    }\n\n    .mv-hero {\n      padding: 36px 22px;\n      border-radius: 18px;\n    }\n\n    .mv-hero::before {\n      background: linear-gradient(180deg, rgba(250, 247, 242, 0.95), rgba(250, 247, 242, 0.8));\n    }\n\n    .mv-seg {\n      width: 100%;\n    }\n\n    .mv-seg button {\n      flex: 1;\n      padding: 0 8px;\n    }\n\n\n\n    .mv-card--featured {\n      grid-column: auto;\n      min-height: 320px;\n    }\n\n    .mv-card--featured .mv-card-title {\n      font-size: 24px !important;\n    }\n\n    .mv-modal-img {\n      height: 200px;\n    }\n  }\n<\/style>\n\n\n<div class=\"mv-wrap\" id=\"mv-app\">\n\n  <section class=\"mv-hero\" style=\"background-image:url(https:\/\/www.ile-blanche.com\/images\/villages-de-lile-de-re\/sainte-marie-de-re.jpg)\">\n        <div class=\"mv-hero-inner\">\n      <h1 class=\"mv-hero-title\">In der Umgebung entdecken<\/h1>\n      <p class=\"mv-hero-text\">D\u00f6rfer, Str\u00e4nde, Spazierg\u00e4nge, gute Adressen und Erlebnisse rund um Ihren Aufenthalt.<\/p>\n              <span class=\"mv-hero-chip\">\n          <span class=\"mv-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z\"\/><circle cx=\"12\" cy=\"9.5\" r=\"2.5\"\/><\/svg><\/span>\n          Rund um <strong>L&#039;\u00cele Blanche<\/strong>\n        <\/span>\n          <\/div>\n  <\/section>\n\n  <div class=\"mv-controls\">\n    <label class=\"mv-search\">\n      <span class=\"mv-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"11\" cy=\"11\" r=\"7\"\/><path d=\"M21 21l-4.5-4.5\"\/><\/svg><\/span>\n      <input type=\"search\" id=\"mv-search\" placeholder=\"Einen Ort, eine Aktivit\u00e4t, ein Dorf suchen\u2026\" aria-label=\"Suchen\">\n    <\/label>\n          <div class=\"mv-seg\" role=\"group\" aria-label=\"Maximale Entfernung\" id=\"mv-distance\">\n        <button type=\"button\" data-km=\"15\">15 km<\/button>\n        <button type=\"button\" data-km=\"30\">30 km<\/button>\n        <button type=\"button\" data-km=\"60\">60 km<\/button>\n        <button type=\"button\" data-km=\"0\" class=\"is-active\">Alle<\/button>\n      <\/div>\n      <\/div>\n\n  <div class=\"mv-cats-wrap\" id=\"mv-cats-wrap\">\n    <button type=\"button\" class=\"mv-cats-arrow mv-cats-arrow--left\" aria-label=\"Vorherige Kategorien\"><span>\u2039<\/span><\/button>\n    <div class=\"mv-cats\" id=\"mv-cats\" role=\"group\" aria-label=\"Kategorien\"><\/div>\n    <button type=\"button\" class=\"mv-cats-arrow mv-cats-arrow--right\" aria-label=\"N\u00e4chste Kategorien\"><span>\u203a<\/span><\/button>\n  <\/div>\n\n  <div class=\"mv-bar\">\n    <p class=\"mv-count\" id=\"mv-count\"><\/p>\n    <div class=\"mv-seg\" role=\"group\" aria-label=\"Ansicht\" id=\"mv-view\">\n      <button type=\"button\" data-view=\"list\">Liste<\/button>\n      <button type=\"button\" data-view=\"map\" class=\"is-active\">Karte<\/button>\n    <\/div>\n  <\/div>\n\n  <div class=\"mv-layout\" id=\"mv-layout\">\n    <div>\n      <div class=\"mv-grid\" id=\"mv-grid\"><\/div>\n      <div class=\"mv-more\" id=\"mv-more\"><\/div>\n    <\/div>\n    <aside class=\"mv-map-panel\">\n      <div class=\"mv-map\" id=\"mv-map\"><\/div>\n      <div id=\"mv-preview\" aria-live=\"polite\"><\/div>\n    <\/aside>\n  <\/div>\n\n  <section class=\"mv-ideas\" id=\"mv-ideas\" aria-labelledby=\"mv-ideas-title\"><\/section>\n\n  <noscript>\n    <ul>\n              <li><strong>Sainte-Marie-de-R\u00e9<\/strong> \u2014 Lebhaftes Dorf mit Sommeraktivit\u00e4ten und blumengeschm\u00fcckten Gassen.<\/li>\n              <li><strong>Ars-en-R\u00e9<\/strong> \u2014 Unter den Sch\u00f6nsten D\u00f6rfern Frankreichs gelistet, bekannt f\u00fcr seinen einzigartigen Glockenturm.<\/li>\n              <li><strong>Saint-Martin-de-R\u00e9<\/strong> \u2014 Historische Hauptstadt der Insel, UNESCO-Weltkulturerbe.<\/li>\n              <li><strong>Le Bois-Plage-en-R\u00e9<\/strong> \u2014 Lebhaftes Dorf mit gro\u00dfem Markt im Sommer und Str\u00e4nden, die von D\u00fcnen gesch\u00fctzt sind.<\/li>\n              <li><strong>Rochefort<\/strong> \u2014 Besuchen Sie das Marine Museum f\u00fcr seine reiche maritime Geschichte.<\/li>\n              <li><strong>La Rochelle<\/strong> \u2014 Genie\u00dfen Sie eine Bootstour um die T\u00fcrme des Alten Hafens f\u00fcr eine atemberaubende Aussicht auf die Stadt.<\/li>\n              <li><strong>La Flotte<\/strong> \u2014 Besuchen Sie die Ch\u00e2teliers-Abtei f\u00fcr eine Eintauchen in die mittelalterliche Geschichte der Insel.<\/li>\n              <li><strong>Wasserpark des Camping L&#039;\u00cele Blanche<\/strong> \u2014 Vollst\u00e4ndig renovierte Wasserfl\u00e4che mit gro\u00dfem beheiztem \u00fcberdachtem und offenem Becken bei 28\u00b0C, Jacuzzi, Sauna, Solarium und Planschbecken mit Wasserspielen f\u00fcr Kinder.<\/li>\n              <li><strong>Fahrradverleih<\/strong> \u2014 Fahrradverleih, um die \u00cele de R\u00e9 in deinem eigenen Tempo zu entdecken, mit sicheren Radwegen und abwechslungsreicher Landschaft.<\/li>\n              <li><strong>Aquagym<\/strong> \u2014 Aquagym-Einheiten vom Camping-Team geleitet, perfekt, um fit zu bleiben und Spa\u00df zu haben.<\/li>\n              <li><strong>Les Halles de La Rochelle Markt<\/strong> \u2014 \u00dcberdachter Markt mit regionalen Produkten, frischen Austern und freundlicher Atmosph\u00e4re.<\/li>\n          <\/ul>\n  <\/noscript>\n<\/div>\n\n<div class=\"mv-modal-overlay\" id=\"mv-modal\" hidden>\n  <div class=\"mv-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"mv-modal-title\">\n    <button type=\"button\" class=\"mv-modal-close\" id=\"mv-modal-close\" aria-label=\"Schlie\u00dfen\">\u00d7<\/button>\n    <div id=\"mv-modal-content\"><\/div>\n  <\/div>\n<\/div>\n\n<script>\n  (function() {\n    var ITEMS = [{\"id\":0,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Sainte-Marie-de-R\\u00e9\",\"image\":\"https:\\\/\\\/www.ile-blanche.com\\\/images\\\/villages-de-lile-de-re\\\/sainte-marie-de-re.jpg\",\"credit\":\"\",\"description\":\"Lebhaftes Dorf mit Sommeraktivit\\u00e4ten und blumengeschm\\u00fcckten Gassen.\",\"city\":\"\",\"address\":\"Sainte-Marie-de-R\\u00e9, \\u00cele de R\\u00e9, France\",\"km\":10,\"min\":15,\"lat\":46.1875,\"lng\":-1.3961,\"tags\":[],\"fields\":[{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"10\"},{\"label\":\"Fahrzeit (min)\",\"value\":\"15\"},{\"label\":\"Unbedingt sehenswerte Orte \\\/ Aktivit\\u00e4ten\",\"value\":\"Sainte-Marie-Kirche, Basse Benaie Strand, Salzpfannen\"},{\"label\":\"M\\u00e4rkte \\\/ lokale Veranstaltungen\",\"value\":\"Markt von Sainte-Marie, Fest des Saint-Jean\"},{\"label\":\"Restaurants \\\/ Spezialit\\u00e4ten\",\"value\":\"Bouchot-Mies, Pineau aus Charentes\"},{\"label\":\"Vollst\\u00e4ndige Adresse\",\"value\":\"Sainte-Marie-de-R\\u00e9, \\u00cele de R\\u00e9, France\"}],\"link\":\"https:\\\/\\\/www.ile-blanche.com\\\/actualites\\\/les-villages-de-lile-de-re\\\/\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":1,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Ars-en-R\\u00e9\",\"image\":\"https:\\\/\\\/www.ile-blanche.com\\\/images\\\/villages-de-lile-de-re\\\/ars-en-re.jpg\",\"credit\":\"\",\"description\":\"Unter den Sch\\u00f6nsten D\\u00f6rfern Frankreichs gelistet, bekannt f\\u00fcr seinen einzigartigen Glockenturm.\",\"city\":\"\",\"address\":\"Ars-en-R\\u00e9, \\u00cele de R\\u00e9, Frankreich\",\"km\":20,\"min\":25,\"lat\":46.2,\"lng\":-1.46,\"tags\":[],\"fields\":[{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"20\"},{\"label\":\"Fahrzeit (min)\",\"value\":\"25\"},{\"label\":\"Unbedingt sehenswerte Orte \\\/ Aktivit\\u00e4ten\",\"value\":\"Saint-\\u00c9tienne-Kirche, Buntes Glockenturm, Salzpfannen des Fier\"},{\"label\":\"M\\u00e4rkte \\\/ lokale Veranstaltungen\",\"value\":\"Markt von Ars-en-R\\u00e9, Fest des Saint-\\u00c9tienne\"},{\"label\":\"Restaurants \\\/ Spezialit\\u00e4ten\",\"value\":\"Fier-Austern, Salz von \\u00cele de R\\u00e9\"},{\"label\":\"Vollst\\u00e4ndige Adresse\",\"value\":\"Ars-en-R\\u00e9, \\u00cele de R\\u00e9, Frankreich\"}],\"link\":\"https:\\\/\\\/www.ile-blanche.com\\\/actualites\\\/les-villages-de-lile-de-re\\\/\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":2,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Saint-Martin-de-R\\u00e9\",\"image\":\"https:\\\/\\\/www.ile-blanche.com\\\/images\\\/villages-de-lile-de-re\\\/saint-martin-de-re.jpg\",\"credit\":\"\",\"description\":\"Historische Hauptstadt der Insel, UNESCO-Weltkulturerbe.\",\"city\":\"\",\"address\":\"Saint-Martin-de-R\\u00e9, \\u00cele de R\\u00e9, Frankreich\",\"km\":15,\"min\":20,\"lat\":46.2,\"lng\":-1.4,\"tags\":[],\"fields\":[{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"15\"},{\"label\":\"Fahrzeit (min)\",\"value\":\"20\"},{\"label\":\"Unbedingt sehenswerte Orte \\\/ Aktivit\\u00e4ten\",\"value\":\"Vauban-Festung, Ernest Cognacq Museum, Stadtmauern Saint-Martin\"},{\"label\":\"M\\u00e4rkte \\\/ lokale Veranstaltungen\",\"value\":\"Saint-Martin-Markt, Saint-Martin-Fest\"},{\"label\":\"Restaurants \\\/ Spezialit\\u00e4ten\",\"value\":\"Saint-Martin Austern, Pineau des Charentes\"},{\"label\":\"Vollst\\u00e4ndige Adresse\",\"value\":\"Saint-Martin-de-R\\u00e9, \\u00cele de R\\u00e9, Frankreich\"}],\"link\":\"https:\\\/\\\/www.ile-blanche.com\\\/actualites\\\/les-villages-de-lile-de-re\\\/\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":3,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Le Bois-Plage-en-R\\u00e9\",\"image\":\"https:\\\/\\\/www.ile-blanche.com\\\/images\\\/villages-de-lile-de-re\\\/le-bois-plage-en-re.jpg\",\"credit\":\"\",\"description\":\"Lebhaftes Dorf mit gro\\u00dfem Markt im Sommer und Str\\u00e4nden, die von D\\u00fcnen gesch\\u00fctzt sind.\",\"city\":\"\",\"address\":\"Le Bois-Plage-en-R\\u00e9, \\u00cele de R\\u00e9, Frankreich\",\"km\":8,\"min\":10,\"lat\":46.2,\"lng\":-1.5,\"tags\":[],\"fields\":[{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"8\"},{\"label\":\"Fahrzeit (min)\",\"value\":\"10\"},{\"label\":\"Unbedingt sehenswerte Orte \\\/ Aktivit\\u00e4ten\",\"value\":\"Gollandi\\u00e8res Strand, Le Bois-Plage Markt, Trousse-Chemise Wald\"},{\"label\":\"M\\u00e4rkte \\\/ lokale Veranstaltungen\",\"value\":\"Le Bois-Plage Markt, Saint-Jean Festival\"},{\"label\":\"Restaurants \\\/ Spezialit\\u00e4ten\",\"value\":\"Bouchot-Muscheln, Salz der Insel R\\u00e9\"},{\"label\":\"Vollst\\u00e4ndige Adresse\",\"value\":\"Le Bois-Plage-en-R\\u00e9, \\u00cele de R\\u00e9, Frankreich\"}],\"link\":\"https:\\\/\\\/www.ile-blanche.com\\\/actualites\\\/les-villages-de-lile-de-re\\\/\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":4,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Rochefort\",\"image\":\"https:\\\/\\\/upload.wikimedia.org\\\/wikipedia\\\/commons\\\/thumb\\\/0\\\/0e\\\/Rochefort_-_Corderie_Royale.jpg\\\/1200px-Rochefort_-_Corderie_Royale.jpg\",\"credit\":\"\",\"description\":\"Besuchen Sie das Marine Museum f\\u00fcr seine reiche maritime Geschichte.\",\"city\":\"\",\"address\":\"Rochefort, Charente-Maritime, Frankreich\",\"km\":32,\"min\":30,\"lat\":null,\"lng\":null,\"tags\":[],\"fields\":[{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"32\"},{\"label\":\"Fahrzeit (min)\",\"value\":\"30\"},{\"label\":\"Unbedingt sehenswerte Orte \\\/ Aktivit\\u00e4ten\",\"value\":\"Kordelfabrik Royal, Marine Museum, Fort Boyard\"},{\"label\":\"M\\u00e4rkte \\\/ lokale Veranstaltungen\",\"value\":\"Rochefort Markt, Fiction TV Festival\"},{\"label\":\"Restaurants \\\/ Spezialit\\u00e4ten\",\"value\":\"L'Od\\u00e9on-Tisch, Das Atelieri Bistrot\"},{\"label\":\"Vollst\\u00e4ndige Adresse\",\"value\":\"Rochefort, Charente-Maritime, Frankreich\"}],\"link\":\"https:\\\/\\\/www.rochefort.fr\\\/\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":5,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"La Rochelle\",\"image\":\"https:\\\/\\\/upload.wikimedia.org\\\/wikipedia\\\/commons\\\/thumb\\\/4\\\/4e\\\/La_Rochelle_-_Vieux_Port.jpg\\\/1200px-La_Rochelle_-_Vieux_Port.jpg\",\"credit\":\"\",\"description\":\"Genie\\u00dfen Sie eine Bootstour um die T\\u00fcrme des Alten Hafens f\\u00fcr eine atemberaubende Aussicht auf die Stadt.\",\"city\":\"\",\"address\":\"La Rochelle, Charente-Maritime, Frankreich\",\"km\":15,\"min\":20,\"lat\":null,\"lng\":null,\"tags\":[],\"fields\":[{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"15\"},{\"label\":\"Fahrzeit (min)\",\"value\":\"20\"},{\"label\":\"Unbedingt sehenswerte Orte \\\/ Aktivit\\u00e4ten\",\"value\":\"Alter Hafen, La Rochelle Aquarium, Leuchtturm\"},{\"label\":\"M\\u00e4rkte \\\/ lokale Veranstaltungen\",\"value\":\"Zentralmarkt, Francofolies de La Rochelle\"},{\"label\":\"Restaurants \\\/ Spezialit\\u00e4ten\",\"value\":\"Les Flots, Le Comptoir de l'Atelier\"},{\"label\":\"Vollst\\u00e4ndige Adresse\",\"value\":\"La Rochelle, Charente-Maritime, Frankreich\"}],\"link\":\"https:\\\/\\\/www.larochelle.fr\\\/\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":6,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"La Flotte\",\"image\":\"https:\\\/\\\/upload.wikimedia.org\\\/wikipedia\\\/commons\\\/thumb\\\/4\\\/4e\\\/La_Flotte_-_Port.jpg\\\/1200px-La_Flotte_-_Port.jpg\",\"credit\":\"\",\"description\":\"Besuchen Sie die Ch\\u00e2teliers-Abtei f\\u00fcr eine Eintauchen in die mittelalterliche Geschichte der Insel.\",\"city\":\"\",\"address\":\"La Flotte, Charente-Maritime, Frankreich\",\"km\":1.5,\"min\":1,\"lat\":null,\"lng\":null,\"tags\":[],\"fields\":[{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"1.5\"},{\"label\":\"Fahrzeit (min)\",\"value\":\"1\"},{\"label\":\"Unbedingt sehenswerte Orte \\\/ Aktivit\\u00e4ten\",\"value\":\"Hafen von La Flotte, Ch\\u00e2teliers-Abtei, Mittelalterlicher Markt\"},{\"label\":\"M\\u00e4rkte \\\/ lokale Veranstaltungen\",\"value\":\"La Flotte Markt, Saint-Jean Festival\"},{\"label\":\"Restaurants \\\/ Spezialit\\u00e4ten\",\"value\":\"La Chaloupe, Le Bistrot du March\\u00e9\"},{\"label\":\"Vollst\\u00e4ndige Adresse\",\"value\":\"La Flotte, Charente-Maritime, Frankreich\"}],\"link\":\"https:\\\/\\\/www.la-flotte.fr\\\/\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":7,\"featurable\":true,\"type\":\"activites-sites-autour-du-camping\",\"name\":\"Wasserpark des Camping L'\\u00cele Blanche\",\"image\":\"https:\\\/\\\/www.ile-blanche.com\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/piscine-couverte-ile-de-re-camping-ile-blanche.jpg\",\"credit\":\"\",\"description\":\"Vollst\\u00e4ndig renovierte Wasserfl\\u00e4che mit gro\\u00dfem beheiztem \\u00fcberdachtem und offenem Becken bei 28\\u00b0C, Jacuzzi, Sauna, Solarium und Planschbecken mit Wasserspielen f\\u00fcr Kinder.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":46.1872,\"lng\":1.3965,\"tags\":[\"Wassersport\"],\"fields\":[{\"label\":\"Kategorie\",\"value\":\"Wassersport\"},{\"label\":\"Ort\",\"value\":\"La Flotte, \\u00cele de R\\u00e9\"},{\"label\":\"Reservierung erforderlich\",\"value\":\"Non\"}],\"link\":\"https:\\\/\\\/www.ile-blanche.com\\\/loisirs-camping-ile-de-re\\\/\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":8,\"featurable\":true,\"type\":\"activites-sites-autour-du-camping\",\"name\":\"Fahrradverleih\",\"image\":\"https:\\\/\\\/www.ile-blanche.com\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/location-velo-ile-de-re-camping-ile-blanche.jpg\",\"credit\":\"\",\"description\":\"Fahrradverleih, um die \\u00cele de R\\u00e9 in deinem eigenen Tempo zu entdecken, mit sicheren Radwegen und abwechslungsreicher Landschaft.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":46.1872,\"lng\":1.3965,\"tags\":[\"Fahrradtouren\"],\"fields\":[{\"label\":\"Kategorie\",\"value\":\"Fahrradtouren\"},{\"label\":\"Ort\",\"value\":\"La Flotte, \\u00cele de R\\u00e9\"},{\"label\":\"Reservierung erforderlich\",\"value\":\"Oui\"}],\"link\":\"https:\\\/\\\/www.ile-blanche.com\\\/loisirs-camping-ile-de-re\\\/\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":9,\"featurable\":true,\"type\":\"activites-sites-autour-du-camping\",\"name\":\"Aquagym\",\"image\":\"https:\\\/\\\/www.ile-blanche.com\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/aquagym-ile-de-re-camping-ile-blanche.jpg\",\"credit\":\"\",\"description\":\"Aquagym-Einheiten vom Camping-Team geleitet, perfekt, um fit zu bleiben und Spa\\u00df zu haben.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":46.1872,\"lng\":1.3965,\"tags\":[\"Wassersport\"],\"fields\":[{\"label\":\"Kategorie\",\"value\":\"Wassersport\"},{\"label\":\"Ort\",\"value\":\"La Flotte, \\u00cele de R\\u00e9\"},{\"label\":\"Reservierung erforderlich\",\"value\":\"Non\"}],\"link\":\"https:\\\/\\\/www.ile-blanche.com\\\/loisirs-camping-ile-de-re\\\/\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":10,\"featurable\":true,\"type\":\"activites-sites-autour-du-camping\",\"name\":\"Les Halles de La Rochelle Markt\",\"image\":\"https:\\\/\\\/www.ile-blanche.com\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/marche-des-halles-la-rochelle.jpg\",\"credit\":\"\",\"description\":\"\\u00dcberdachter Markt mit regionalen Produkten, frischen Austern und freundlicher Atmosph\\u00e4re.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":46.1575,\"lng\":1.1575,\"tags\":[],\"fields\":[{\"label\":\"Ort\",\"value\":\"La Rochelle, Frankreich\"},{\"label\":\"Reservierung erforderlich\",\"value\":\"Non\"}],\"link\":\"https:\\\/\\\/www.ile-blanche.com\\\/tourisme-ile-de-re\\\/tourisme-la-rochelle\\\/\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]}];\n    var CATS = {\"villes-aux-alentours\":{\"key\":\"villes-aux-alentours\",\"label\":\"Villes aux alentours\",\"adhoc\":false,\"color\":\"#c2410c\",\"count\":7,\"image\":\"https:\\\/\\\/www.ile-blanche.com\\\/images\\\/villages-de-lile-de-re\\\/sainte-marie-de-re.jpg\"},\"activites-sites-autour-du-camping\":{\"key\":\"activites-sites-autour-du-camping\",\"label\":\"Activit\\u00e9s & sites autour du camping\",\"adhoc\":false,\"color\":\"#2563eb\",\"count\":4,\"image\":\"https:\\\/\\\/www.ile-blanche.com\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/piscine-couverte-ile-de-re-camping-ile-blanche.jpg\"}};\n    \/\/ Textes d'interface dans la langue de la page (includes\/i18n.php)\n    var T = {\"hero_title\":\"In der Umgebung entdecken\",\"hero_text\":\"D\\u00f6rfer, Str\\u00e4nde, Spazierg\\u00e4nge, gute Adressen und Erlebnisse rund um Ihren Aufenthalt.\",\"around\":\"Rund um\",\"search_placeholder\":\"Einen Ort, eine Aktivit\\u00e4t, ein Dorf suchen\\u2026\",\"search\":\"Suchen\",\"max_distance\":\"Maximale Entfernung\",\"all\":\"Alle\",\"prev_categories\":\"Vorherige Kategorien\",\"next_categories\":\"N\\u00e4chste Kategorien\",\"categories\":\"Kategorien\",\"display\":\"Ansicht\",\"list\":\"Liste\",\"map\":\"Karte\",\"close\":\"Schlie\\u00dfen\",\"featured\":\"Highlight\",\"discover\":\"Entdecken\",\"idea\":\"Idee\",\"ideas\":\"Ideen\",\"around_you\":\"in Ihrer N\\u00e4he\",\"no_result\":\"Keine Ergebnisse\",\"no_result_hint\":\"Versuchen Sie eine andere Suche, Kategorie oder Entfernung.\",\"pagination\":\"Seitennavigation\",\"prev_page\":\"Vorherige Seite\",\"next_page\":\"N\\u00e4chste Seite\",\"ideas_title\":\"Ideen nach Lust und Laune\",\"ideas_sub\":\"Vorschl\\u00e4ge f\\u00fcr Ihren perfekten Aufenthalt.\",\"reset_view\":\"Zur\\u00fcck zur \\u00dcbersicht\",\"map_hint\":\"Klicken Sie auf eine Markierung, um die Details hier anzuzeigen.\",\"official_site\":\"Offizielle Website\",\"video\":\"Video\",\"gallery\":\"Galerie\",\"documents\":\"Dokumente\",\"faq\":\"H\\u00e4ufige Fragen\",\"no_answer\":\"Noch keine Antwort.\",\"see_on_maps\":\"Auf Google Maps ansehen\",\"see_place_on_maps\":\"Den Campingplatz auf Google Maps ansehen\",\"yes\":\"Ja\",\"no\":\"Nein\",\"practical_info\":\"Praktische Infos\",\"reviews\":\"Bewertungen\",\"read_more\":\"Weiterlesen\",\"prev_review\":\"Vorherige Bewertung\",\"next_review\":\"N\\u00e4chste Bewertung\",\"prev_item\":\"Zur\\u00fcck\",\"next_item\":\"Weiter\",\"photo_credit\":\"Foto: %s\",\"directions\":\"Route\",\"read_less\":\"Weniger\",\"stars_out_of_5\":\"%s von 5 Sternen\",\"owner_reply\":\"Antwort des Gastgebers\",\"customer\":\"Gast\",\"customer_reviews\":\"G\\u00e4stebewertungen\",\"rating_label\":\"Bewertet mit %1$s von 5, %2$s Bewertungen \\u2014 Bewertungen ansehen\",\"reviews_by\":\"Bewertungen pr\\u00e4sentiert von Elaia\",\"powered_by\":\"Bereitgestellt von\",\"today\":\"Heute\",\"today_lc\":\"heute\",\"tomorrow\":\"Morgen\",\"until\":\"Bis %s\",\"from_to\":\"Vom %1$s bis %2$s\",\"registration\":\"Anmeldung erforderlich\",\"full\":\"Ausgebucht\",\"all_animations\":\"Alle Aktivit\\u00e4ten ansehen \\u2192\",\"ago_day\":\"vor %d Tag\",\"ago_days\":\"vor %d Tagen\",\"ago_week\":\"vor %d Woche\",\"ago_weeks\":\"vor %d Wochen\",\"ago_month\":\"vor %d Monat\",\"ago_months\":\"vor %d Monaten\",\"ago_year\":\"vor %d Jahr\",\"ago_years\":\"vor %d Jahren\",\"anim_unavailable\":\"Das Programm ist vor\\u00fcbergehend nicht verf\\u00fcgbar\",\"anim_eyebrow\":\"Erleben Sie unvergessliche Momente\",\"anim_title\":\"Animationen & Veranstaltungen\",\"anim_hero_text\":\"Alle aktuellen Aktivit\\u00e4ten, die H\\u00f6hepunkte der Woche und kommende Veranstaltungen w\\u00e4hrend Ihres Aufenthalts.\",\"anim_sections\":\"Seitenbereiche\",\"anim_nav_today\":\"Heute\",\"anim_nav_week\":\"Diese Woche\",\"anim_nav_upcoming\":\"Demn\\u00e4chst\",\"anim_nav_calendar\":\"Kalender\",\"anim_where\":\"Wo?\",\"anim_onsite\":\"Vor Ort\",\"anim_nearby\":\"In der Umgebung\",\"anim_no_onsite\":\"Derzeit keine Aktivit\\u00e4t vor Ort\",\"anim_no_nearby\":\"Derzeit keine Veranstaltung in der Umgebung\",\"anim_all_day\":\"Ganzt\\u00e4gig\",\"anim_at\":\"um %s\",\"anim_see_detail\":\"Details ansehen\",\"anim_live\":\"L\\u00e4uft\",\"anim_onsite_spot\":\"Vor Ort \\u00b7 %s\",\"anim_badge_until\":\"Bis\",\"anim_badge_from\":\"Ab\",\"anim_badge_today\":\"Heute\",\"anim_filter_cat\":\"Nach Kategorie filtern\",\"anim_all_f\":\"Alle\",\"anim_prev_day\":\"Vorheriger Tag\",\"anim_next_day\":\"N\\u00e4chster Tag\",\"anim_today_title\":\"Aktivit\\u00e4ten heute\",\"anim_tomorrow_title\":\"Aktivit\\u00e4ten morgen\",\"anim_day_title\":\"Aktivit\\u00e4ten am %s\",\"anim_relax_today\":\"Heute ein entspannter Tag\",\"anim_nothing_day\":\"An diesem Tag ist nichts geplant\",\"anim_next_on\":\"N\\u00e4chste Veranstaltung am %s.\",\"anim_soon\":\"Das Programm wird bald aktualisiert.\",\"anim_see_day\":\"Diesen Tag ansehen\",\"anim_prev_acts\":\"Vorherige Aktivit\\u00e4ten\",\"anim_next_acts\":\"N\\u00e4chste Aktivit\\u00e4ten\",\"anim_prev_week\":\"Vorherige Woche\",\"anim_next_week\":\"N\\u00e4chste Woche\",\"anim_week_title\":\"Die Highlights der Woche\",\"anim_next_week_title\":\"N\\u00e4chste Woche\",\"anim_week_of\":\"Woche vom %s\",\"anim_week_days\":\"Wochentage\",\"anim_today_paren\":\"(heute)\",\"anim_activity\":\"%d Aktivit\\u00e4t\",\"anim_activities\":\"%d Aktivit\\u00e4ten\",\"anim_nothing\":\"nichts geplant\",\"anim_pick_day\":\"W\\u00e4hlen Sie einen anderen Tag, um sein Programm zu sehen.\",\"anim_sort\":\"Veranstaltungen sortieren\",\"anim_sort_date\":\"Nach Datum sortieren\",\"anim_sort_name\":\"Nach Name sortieren\",\"anim_upcoming_title\":\"Alle kommenden Veranstaltungen\",\"anim_no_upcoming\":\"Keine kommenden Veranstaltungen\",\"anim_try_cat\":\"Versuchen Sie eine andere Kategorie.\",\"anim_more\":\"Weitere Veranstaltungen (%d)\",\"anim_hide_cal\":\"Kalender ausblenden\",\"anim_show_cal\":\"Ganzen Kalender ansehen\",\"anim_cal_title\":\"Monatskalender\",\"anim_cal_sub\":\"Alle Termine des Monats auf einen Blick.\",\"anim_prev_month\":\"Vorheriger Monat\",\"anim_next_month\":\"N\\u00e4chster Monat\",\"anim_more_info\":\"Mehr Informationen\",\"anim_new_tab\":\"(neuer Tab)\",\"date_locale\":\"de-DE\",\"page_faq\":\"FAQ\",\"page_metadatas\":\"Entdecken Sie die Umgebung\",\"page_animations\":\"Animationen und Veranstaltungen\",\"page_corpus\":\"Praktische Informationen\",\"anim_event\":\"Veranstaltung\"};\n    var DECIMAL = \",\";\n    function plural(n) { return n + ' ' + (n > 1 ? T.ideas : T.idea); }\n    var MAP = {\"tiles_url\":\"https:\\\/\\\/tile.openstreetmap.org\\\/{z}\\\/{x}\\\/{y}.png\",\"attribution\":\"&copy; <a href=\\\"https:\\\/\\\/www.openstreetmap.org\\\/copyright\\\">OpenStreetMap<\\\/a>\",\"home\":null};\n    var ACCENT = \"#2e5e45\";\n    var STEP = 12;\n    var BY_ID = {};\n    ITEMS.forEach(function(it) {\n      BY_ID[it.id] = it;\n    });\n\n    var app = document.getElementById('mv-app');\n    if (!app) return;\n\n    var state = { selected: null, page: 1, q: '', km: 0, cat: 'all', limit: STEP, view: window.matchMedia('(max-width: 1100px)').matches ? 'list' : 'map' };\n\n    \/\/ \u2550\u2550\u2550 Ic\u00f4nes (SVG statiques) + ic\u00f4ne d\u00e9duite de la cat\u00e9gorie \u2550\u2550\u2550\n    var ICONS = {\n      grid: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"4\" y=\"4\" width=\"6\" height=\"6\" rx=\"1\"\/><rect x=\"14\" y=\"4\" width=\"6\" height=\"6\" rx=\"1\"\/><rect x=\"4\" y=\"14\" width=\"6\" height=\"6\" rx=\"1\"\/><rect x=\"14\" y=\"14\" width=\"6\" height=\"6\" rx=\"1\"\/><\/svg>',\n      home: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><path d=\"M3 11l9-7 9 7\"\/><path d=\"M5 10v10h14V10\"\/><path d=\"M10 20v-6h4v6\"\/><\/svg>',\n      beach: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M12 3a9 9 0 0 1 9 9H3a9 9 0 0 1 9-9z\"\/><path d=\"M12 12v9M8 21h8\"\/><\/svg>',\n      leaf: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 19c0-8 5-14 15-14 0 10-6 15-14 15\"\/><path d=\"M5 19l7-7\"\/><\/svg>',\n      family: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"8\" cy=\"6\" r=\"2.5\"\/><circle cx=\"16\" cy=\"6\" r=\"2.5\"\/><path d=\"M4 21v-6a4 4 0 0 1 8 0v6M12 21v-6a4 4 0 0 1 8 0v6\"\/><\/svg>',\n      food: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M7 3v8a2 2 0 0 0 4 0V3M9 11v10M17 3c-2 0-3 2-3 5s1 4 3 4v9\"\/><\/svg>',\n      shop: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><path d=\"M4 9l1.5-5h13L20 9\"\/><path d=\"M4 9h16v2a3 3 0 0 1-6 0 3 3 0 0 1-4 0 3 3 0 0 1-6 0z\"\/><path d=\"M5 13v7h14v-7\"\/><\/svg>',\n      calendar: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\"\/><path d=\"M16 3v4M8 3v4M3 10h18\"\/><\/svg>',\n      wine: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M8 3h8l-.5 6a3.5 3.5 0 0 1-7 0z\"\/><path d=\"M12 13v8M8 21h8\"\/><\/svg>',\n      walk: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"13\" cy=\"4\" r=\"2\"\/><path d=\"M9 21l3-7 3 3v5M8 12l2-4 4 1 3 3\"\/><\/svg>',\n      bed: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M3 18V7M3 14h18v4M21 14v-3a3 3 0 0 0-3-3h-7v6\"\/><circle cx=\"7\" cy=\"11\" r=\"2\"\/><\/svg>',\n      pool: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M2 17c2 0 2-1.5 4-1.5S8 17 10 17s2-1.5 4-1.5 2 1.5 4 1.5 2-1.5 4-1.5M8 14V5a2 2 0 0 1 4 0M14 14V5a2 2 0 0 1 4 0M8 9h6\"\/><\/svg>',\n      info: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 11v6M12 7.5v.5\"\/><\/svg>',\n      pin: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z\"\/><circle cx=\"12\" cy=\"9.5\" r=\"2.5\"\/><\/svg>',\n      car: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 17h14M5 17v2M19 17v2M4 13l2-6h12l2 6v4H4z\"\/><circle cx=\"8\" cy=\"14.5\" r=\"0.5\"\/><circle cx=\"16\" cy=\"14.5\" r=\"0.5\"\/><\/svg>',\n      clock: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 7v5l3 2\"\/><\/svg>',\n      star: '<svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 3l2.8 5.7 6.2.9-4.5 4.4 1.1 6.2L12 17.3 6.4 20.2l1.1-6.2L3 9.6l6.2-.9z\"\/><\/svg>',\n      arrow: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>',\n      home: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3L3 19h18L12 3z\"\/><path d=\"M12 3v16M9 19l3-6 3 6\"\/><\/svg>',\n      reset: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 9V4h5M20 15v5h-5M4 4l6 6M20 20l-6-6M15 4h5v5M9 20H4v-5\"\/><\/svg>',\n      maps: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 4L3 6v14l6-2 6 2 6-2V4l-6 2-6-2z\"\/><path d=\"M9 4v14M15 6v14\"\/><\/svg>',\n      doc: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><path d=\"M6 3h8l4 4v14H6z\"\/><path d=\"M14 3v4h4\"\/><\/svg>'\n    };\n\n    var ICON_RULES = [\n      [\/ville|village|city|alentour\/, 'home'],\n      [\/plage|beach|mer\\b\/, 'beach'],\n      [\/nature|balade|rando|parc|jardin\/, 'leaf'],\n      [\/famil|enfant|kid\/, 'family'],\n      [\/restau|gastro|repas|snack|bar\\b\/, 'food'],\n      [\/march|boutique|commerce|shop\/, 'shop'],\n      [\/evenement|\u00e9v\u00e9nement|event|agenda|atelier|animation\/, 'calendar'],\n      [\/vin|boisson|cave|terroir|bodega\/, 'wine'],\n      [\/activit|sport|loisir|lieu\/, 'walk'],\n      [\/heberg|locatif|accom|mobil\/, 'bed'],\n      [\/piscine|pool|aqua|pataug\/, 'pool'],\n      [\/service|equipement|\u00e9quipement|info\/, 'info']\n    ];\n\n    function catIcon(key) {\n      var c = CATS[key];\n      var hay = (key + ' ' + (c ? c.label : '')).toLowerCase();\n      for (var i = 0; i < ICON_RULES.length; i++) {\n        if (ICON_RULES[i][0].test(hay)) return ICON_RULES[i][1];\n      }\n      return 'pin';\n    }\n\n    function el(tag, cls, text) {\n      var n = document.createElement(tag);\n      if (cls) n.className = cls;\n      if (text != null) n.textContent = text;\n      return n;\n    }\n\n    function icon(name) {\n      var s = el('span', 'mv-icon');\n      s.setAttribute('aria-hidden', 'true');\n      s.innerHTML = ICONS[name] || ICONS.pin;\n      return s;\n    }\n\n    function catColor(key) {\n      return CATS[key] ? CATS[key].color : ACCENT;\n    }\n\n    function norm(s) {\n      return (s || '').toLowerCase().normalize('NFD').replace(\/[\u0300-\u036f]\/g, '');\n    }\n\n    \/\/ \u2550\u2550\u2550 Filtrage \u2550\u2550\u2550\n    function filtered() {\n      var q = norm(state.q.trim());\n      return ITEMS.filter(function(it) {\n        if (state.cat !== 'all' && it.type !== state.cat) return false;\n        \/\/ Distance : seules les fiches qui ont une distance connue sont filtr\u00e9es\n        if (state.km && it.km !== null && it.km > state.km) return false;\n        if (q) {\n          var hay = norm([it.name, it.city, it.description, (CATS[it.type] || {}).label, it.tags.join(' ')].join(' '));\n          if (hay.indexOf(q) === -1) return false;\n        }\n        return true;\n      });\n    }\n\n    \/\/ \u2550\u2550\u2550 Cat\u00e9gories \u2550\u2550\u2550\n    function renderCats() {\n      var box = document.getElementById('mv-cats');\n      box.innerHTML = '';\n      var all = el('button', 'mv-cat' + (state.cat === 'all' ? ' is-active' : ''));\n      all.type = 'button';\n      all.appendChild(icon('grid'));\n      all.appendChild(document.createTextNode(T.all));\n      all.addEventListener('click', function() {\n        setCat('all');\n      });\n      box.appendChild(all);\n      Object.keys(CATS).forEach(function(key) {\n        var b = el('button', 'mv-cat' + (state.cat === key ? ' is-active' : ''));\n        b.type = 'button';\n        b.style.setProperty('--mv-cat', catColor(key));\n        b.appendChild(icon(catIcon(key)));\n        b.appendChild(document.createTextNode(CATS[key].label));\n        b.addEventListener('click', function() {\n          setCat(key);\n        });\n        box.appendChild(b);\n      });\n      updateCatArrows();\n      var active = box.querySelector('.is-active');\n      if (active && active.scrollIntoView && active.offsetLeft + active.offsetWidth > box.scrollLeft + box.clientWidth) {\n        box.scrollLeft = active.offsetLeft - 80;\n      }\n    }\n\n    \/\/ Fl\u00e8ches de la ligne de cat\u00e9gories (visibles seulement s'il reste \u00e0 d\u00e9filer)\n    var catsWrap = document.getElementById('mv-cats-wrap');\n    var catsRow = document.getElementById('mv-cats');\n\n    function updateCatArrows() {\n      var max = catsRow.scrollWidth - catsRow.clientWidth;\n      catsWrap.classList.toggle('can-left', catsRow.scrollLeft > 4);\n      catsWrap.classList.toggle('can-right', catsRow.scrollLeft < max - 4);\n    }\n    catsRow.addEventListener('scroll', updateCatArrows, { passive: true });\n    window.addEventListener('resize', updateCatArrows);\n    catsWrap.querySelector('.mv-cats-arrow--left').addEventListener('click', function() {\n      catsRow.scrollBy({ left: -catsRow.clientWidth * 0.7, behavior: 'smooth' });\n    });\n    catsWrap.querySelector('.mv-cats-arrow--right').addEventListener('click', function() {\n      catsRow.scrollBy({ left: catsRow.clientWidth * 0.7, behavior: 'smooth' });\n    });\n\n    function setCat(key) {\n      state.cat = key;\n      state.limit = STEP;\n      state.page = 1;\n      renderCats();\n      renderList();\n    }\n\n    \/\/ \u2550\u2550\u2550 Cartes \u2550\u2550\u2550\n    function picture(it) {\n      if (!it.image) {\n        var ph = el('div', 'mv-card-noimg');\n        ph.appendChild(icon(catIcon(it.type)));\n        return ph;\n      }\n      var img = el('img');\n      img.src = it.image;\n      img.alt = it.name;\n      img.loading = 'lazy';\n      img.onerror = function() {\n        img.replaceWith(picture({ type: it.type, image: '' }));\n      };\n      return img;\n    }\n\n    function metaLine(it) {\n      var m = el('p', 'mv-meta');\n      if (it.km !== null) {\n        var a = el('span');\n        a.appendChild(icon('car'));\n        a.appendChild(document.createTextNode(String(it.km).replace('.', DECIMAL) + ' km'));\n        m.appendChild(a);\n      }\n      if (it.min !== null) {\n        var b = el('span');\n        b.appendChild(icon('clock'));\n        b.appendChild(document.createTextNode(it.min + ' min'));\n        m.appendChild(b);\n      }\n      if (it.km === null && it.min === null && it.city) {\n        var c = el('span');\n        c.appendChild(icon('pin'));\n        c.appendChild(document.createTextNode(it.city));\n        m.appendChild(c);\n      }\n      return m.childNodes.length ? m : null;\n    }\n\n    function card(it, featured, mini) {\n      var c = el('article', 'mv-card' + (featured ? ' mv-card--featured' : '') + (mini ? ' mv-card--mini' : ''));\n      c.tabIndex = 0;\n      c.dataset.id = it.id;\n      c.style.setProperty('--mv-cat', catColor(it.type));\n\n      var media = el('div', 'mv-card-media');\n      media.appendChild(picture(it));\n      if (!featured && !mini && CATS[it.type]) media.appendChild(el('span', 'mv-pill', CATS[it.type].label));\n      \/\/ Les mini-cartes aussi : la photo y est petite, mais c'est la m\u00eame photo,\n      \/\/ et la licence ne pr\u00e9voit pas d'exception de taille.\n      if (it.credit) {\n        var cr = el('span', 'mv-credit', '\u00a9');\n        cr.title = 'Photo : ' + it.credit;\n        cr.setAttribute('aria-label', 'Photo : ' + it.credit);\n        cr.setAttribute('data-credit', 'Photo : ' + it.credit);\n        media.appendChild(cr);\n      }\n      c.appendChild(media);\n\n      var body = el('div', 'mv-card-body');\n      if (featured) {\n        var flag = el('span', 'mv-flag');\n        flag.appendChild(icon('star'));\n        flag.appendChild(document.createTextNode(T.featured));\n        body.appendChild(flag);\n      }\n      if (mini && CATS[it.type]) body.appendChild(el('span', 'mv-pill', CATS[it.type].label));\n      body.appendChild(el('h3', 'mv-card-title', it.name));\n      var meta = metaLine(it);\n      if (meta) body.appendChild(meta);\n      if (it.description) body.appendChild(el('p', 'mv-card-desc', it.description));\n      if (!featured && !mini && it.tags.length) {\n        var tags = el('div', 'mv-tags');\n        it.tags.forEach(function(t) {\n          tags.appendChild(el('span', 'mv-tag', t));\n        });\n        body.appendChild(tags);\n      }\n      var foot = el('div', 'mv-card-foot');\n      var btn = el('button', 'mv-discover', T.discover);\n      btn.type = 'button';\n      btn.appendChild(icon('arrow'));\n      foot.appendChild(btn);\n      body.appendChild(foot);\n      c.appendChild(body);\n\n      c.addEventListener('click', function() {\n        openModal(it);\n      });\n      c.addEventListener('keydown', function(e) {\n        if (e.key === 'Enter') openModal(it);\n      });\n      if (mini) return c;\n      c.addEventListener('mouseenter', function() {\n        highlightPin(it.id, true);\n      });\n      c.addEventListener('mouseleave', function() {\n        highlightPin(it.id, false);\n      });\n      return c;\n    }\n\n    function renderList() {\n      var list = filtered();\n      var grid = document.getElementById('mv-grid');\n      var more = document.getElementById('mv-more');\n      grid.innerHTML = '';\n      more.innerHTML = '';\n\n      var count = document.getElementById('mv-count');\n      count.innerHTML = '';\n      count.appendChild(el('strong', null, plural(list.length)));\n      count.appendChild(document.createTextNode(' ' + T.around_you));\n\n      if (!list.length) {\n        var empty = el('div', 'mv-empty');\n        empty.appendChild(el('strong', null, T.no_result));\n        empty.appendChild(document.createTextNode(T.no_result_hint));\n        grid.appendChild(empty);\n      }\n\n      \/\/ Pagination : 4 rang\u00e9es pleines par page, selon le nombre de colonnes affich\u00e9es.\n      \/\/ La fiche \u00ab \u00c0 la une \u00bb occupe 2 cases : la 1re page a donc une fiche de moins.\n      var cols = gridColumns();\n      var perPage = cols === 1 ? 8 : cols * 4;\n      var featuredOn = !state.q && list.length > 2 && !!list[0].image && !!list[0].featurable && cols > 1;\n      var first = featuredOn ? perPage - 1 : perPage;\n      var pages = list.length <= first ? 1 : 1 + Math.ceil((list.length - first) \/ perPage);\n      if (state.page > pages) state.page = pages;\n      var start = state.page === 1 ? 0 : first + (state.page - 2) * perPage;\n      var end = state.page === 1 ? first : start + perPage;\n\n      list.slice(start, end).forEach(function(it, i) {\n        grid.appendChild(card(it, featuredOn && state.page === 1 && i === 0));\n      });\n\n      if (pages > 1) renderPager(more, pages);\n\n      updateMap(list);\n    }\n\n    \/**\n     * Remonte au bloc demand\u00e9, sous l'en-t\u00eate fixe du th\u00e8me. Apr\u00e8s le rendu\n     * (image suivante) : la liste vient de changer de hauteur \u2014 28 pages qui\n     * deviennent une \u2014 et une position calcul\u00e9e avant tombait trop haut ou\n     * trop bas selon la cat\u00e9gorie cliqu\u00e9e.\n     *\/\n    var appRoot = document.getElementById('mv-app');\n    if (appRoot) appRoot.style.overflowAnchor = 'none';\n\n    function scrollToBlock(id) {\n      requestAnimationFrame(function() {\n        var target = document.getElementById(id);\n        if (!target) return;\n        var top = target.getBoundingClientRect().top + window.pageYOffset - headerOffset() - 16;\n        window.scrollTo({ top: Math.max(0, top), behavior: 'smooth' });\n      });\n    }\n\n    \/** Nombre de colonnes de la grille (d\u00e9pend de la largeur disponible) *\/\n    function gridColumns() {\n      var g = document.getElementById('mv-grid');\n      var n = g ? getComputedStyle(g).gridTemplateColumns.split(' ').filter(Boolean).length : 3;\n      return Math.max(1, n || 3);\n    }\n\n    function renderPager(box, pages) {\n      box.setAttribute('role', 'navigation');\n      box.setAttribute('aria-label', T.pagination);\n      var go = function(n) {\n        state.page = n;\n        try {\n          renderList();\n        } finally {\n          scrollToBlock('mv-count');\n        }\n      };\n      var btn = function(label, n, opts) {\n        var b = el('button', 'mv-page', label);\n        b.type = 'button';\n        if (opts.aria) b.setAttribute('aria-label', opts.aria);\n        if (opts.current) b.setAttribute('aria-current', 'page');\n        b.disabled = !!opts.disabled;\n        b.addEventListener('click', function() {\n          if (!opts.current) go(n);\n        });\n        box.appendChild(b);\n      };\n      btn('\u2039', state.page - 1, { disabled: state.page === 1, aria: T.prev_page });\n      var last = 0;\n      for (var p = 1; p <= pages; p++) {\n        if (p === 1 || p === pages || Math.abs(p - state.page) <= 1) {\n          if (p - last > 1) box.appendChild(el('span', 'mv-page-gap', '\u2026'));\n          btn(String(p), p, { current: p === state.page, aria: 'Page ' + p });\n          last = p;\n        }\n      }\n      btn('\u203a', state.page + 1, { disabled: state.page === pages, aria: T.next_page });\n    }\n\n    \/\/ \u2550\u2550\u2550 Id\u00e9es selon vos envies (cat\u00e9gories les plus fournies) \u2550\u2550\u2550\n    function renderIdeas() {\n      var sec = document.getElementById('mv-ideas');\n      \/\/ Les fiches sans gabarit (\u00ab Infos pratiques \u00bb) ne sont pas une envie.\n      var keys = Object.keys(CATS).filter(function(k) { return !CATS[k].adhoc; }).sort(function(a, b) {\n        return (CATS[b].image ? 1 : 0) - (CATS[a].image ? 1 : 0) || CATS[b].count - CATS[a].count;\n      }).slice(0, 4);\n      if (keys.length < 2) return;\n\n      var head = el('div', 'mv-ideas-head');\n      var h = el('h2', 'mv-ideas-title', T.ideas_title);\n      h.id = 'mv-ideas-title';\n      head.appendChild(h);\n      head.appendChild(el('p', 'mv-ideas-sub', T.ideas_sub));\n      sec.appendChild(head);\n\n      var grid = el('div', 'mv-ideas-grid');\n      keys.forEach(function(key) {\n        var c = CATS[key];\n        var b = el('button', 'mv-idea');\n        b.type = 'button';\n        b.style.setProperty('--mv-cat', c.color);\n        var img = el('span', 'mv-idea-img');\n        if (c.image) img.style.backgroundImage = 'url(\"' + c.image.replace(\/\"\/g, '%22') + '\")';\n        b.appendChild(img);\n        var body = el('span', 'mv-idea-body');\n        body.appendChild(icon(catIcon(key)));\n        var txt = el('span', 'mv-idea-text');\n        txt.appendChild(el('strong', null, c.label));\n        txt.appendChild(el('span', null, plural(c.count)));\n        body.appendChild(txt);\n        body.appendChild(icon('arrow'));\n        b.appendChild(body);\n        b.addEventListener('click', function() {\n          try {\n            setCat(key);\n          } finally {\n            scrollToBlock('mv-cats');\n          }\n        });\n        grid.appendChild(b);\n      });\n      sec.appendChild(grid);\n    }\n\n    \/\/ \u2550\u2550\u2550 Carte Leaflet \u2550\u2550\u2550\n    var map = null,\n      layer = null,\n      homeMarker = null,\n      radius = null,\n      resetBtn = null,\n      fitting = false, \/\/ cadrage lanc\u00e9 par le code (et non par l'utilisateur)\n      overview = null, \/\/ dernier cadrage \u00ab vue d'ensemble \u00bb\n      pins = {};\n\n    \/\/ Copie de Leaflet utilis\u00e9e pour TOUTE la carte. Sur certains sites (th\u00e8me qui\n    \/\/ d\u00e9place les scripts avec jQuery, WP Rocket\u2026) Leaflet s'ex\u00e9cute deux fois : la\n    \/\/ 2e copie \u00e9crase window.L alors que markercluster s'est attach\u00e9 \u00e0 la 1re.\n    \/\/ M\u00e9langer les deux copies rend les rep\u00e8res invisibles et casse le regroupement.\n    var Lf = null;\n\n    function resolveLeaflet() {\n      var cur = window.L;\n      if (!cur) return null;\n      if (typeof cur.markerClusterGroup === 'function' && typeof cur.MarkerClusterGroup === 'function') return cur;\n      if (typeof cur.noConflict === 'function') {\n        var current = cur.noConflict(); \/\/ window.L \u2190 copie pr\u00e9c\u00e9dente\n        var previous = window.L;\n        if (previous && previous !== current && typeof previous.MarkerClusterGroup === 'function') {\n          \/\/ markercluster lit window.L \u00e0 chaque action (clic, zoom) : on remet\n          \/\/ durablement la copie qui le porte (l'autre n'est qu'un doublon de la m\u00eame version).\n          \/\/ Sans \u00e7a, les identifiants internes des deux copies se m\u00e9langent et les\n          \/\/ clics sur les rep\u00e8res \/ groupes sont perdus.\n          window.L = previous;\n          return previous;\n        }\n        window.L = current;\n      }\n      return null;\n    }\n\n    function pinIcon(color, hover, selected) {\n      return Lf.divIcon({\n        className: 'mv-pin' + (hover ? ' is-hover' : '') + (selected ? ' is-selected' : ''),\n        html: '<svg width=\"30\" height=\"39\" viewBox=\"0 0 28 36\"><path d=\"M14 35C14 35 26 22.5 26 13.5A12 12 0 0 0 2 13.5C2 22.5 14 35 14 35Z\" fill=\"' + color + '\" stroke=\"#fff\" stroke-width=\"2\"\/><circle cx=\"14\" cy=\"13.5\" r=\"4.5\" fill=\"#fff\"\/><\/svg>',\n        iconSize: [30, 39],\n        iconAnchor: [15, 39],\n        popupAnchor: [0, -34]\n      });\n    }\n\n    var mapTries = 0;\n\n    function initMap() {\n      var elMap = document.getElementById('mv-map');\n      if (!elMap) return;\n      \/\/ Attend Leaflet + markercluster (scripts parfois diff\u00e9r\u00e9s), 8 s max ;\n      \/\/ au-del\u00e0, carte sans regroupement plut\u00f4t que pas de carte.\n      Lf = resolveLeaflet();\n      if (!Lf) {\n        if (++mapTries < 80) return setTimeout(initMap, 100);\n        if (!window.L) return;\n        Lf = window.L;\n      }\n      map = Lf.map(elMap, { zoomControl: false, scrollWheelZoom: false, attributionControl: false }).setView([46.6, 1.9], 6);\n      \/\/ Garde-fou : si le th\u00e8me r\u00e9ex\u00e9cute Leaflet plus tard, on remet la bonne copie\n      \/\/ juste avant toute interaction (markercluster lit window.L au moment du clic).\n      ['pointerdown', 'mousedown', 'touchstart', 'click', 'wheel'].forEach(function(t) {\n        elMap.addEventListener(t, function() {\n          if (window.L !== Lf) window.L = Lf;\n        }, true);\n      });\n      Lf.tileLayer(MAP.tiles_url, { maxZoom: 19 }).addTo(map);\n      Lf.control.zoom({ position: 'bottomright' }).addTo(map);\n      Lf.control.attribution({ position: 'bottomleft', prefix: false }).addAttribution(MAP.attribution).addTo(map);\n\n      \/\/ \u00ab Revenir \u00e0 la vue d'ensemble \u00bb : appara\u00eet d\u00e8s que l'utilisateur zoome \/ d\u00e9place la carte\n      resetBtn = el('button', 'mv-reset');\n      resetBtn.type = 'button';\n      resetBtn.hidden = true;\n      resetBtn.appendChild(icon('reset'));\n      resetBtn.appendChild(document.createTextNode(T.reset_view));\n      resetBtn.addEventListener('click', function() {\n        fitOverview();\n        resetBtn.hidden = true;\n      });\n      elMap.appendChild(resetBtn);\n      Lf.DomEvent.disableClickPropagation(resetBtn);\n      map.on('zoomstart movestart', function() {\n        if (!fitting && resetBtn) resetBtn.hidden = false;\n      });\n\n      \/\/ Rep\u00e8re de l'\u00e9tablissement, toujours visible (hors regroupement)\n      if (MAP.home) {\n        homeMarker = Lf.marker([MAP.home.lat, MAP.home.lng], {\n          icon: Lf.divIcon({ className: 'mv-home', html: '<span class=\"mv-home-pin\">' + ICONS.home + '<\/span>', iconSize: [44, 44], iconAnchor: [22, 22] }),\n          \/\/ Sous les rep\u00e8res et groupes : les fiches situ\u00e9es \u00e0 l'\u00e9tablissement m\u00eame\n          \/\/ (souvent nombreuses) restent visibles et cliquables par-dessus.\n          zIndexOffset: -1000,\n          keyboard: false,\n          interactive: false,\n          title: MAP.home.label\n        }).addTo(map);\n        homeMarker.bindTooltip(MAP.home.label, { permanent: true, direction: 'right', offset: [24, 0], className: 'mv-home-label' });\n      }\n\n      layer = (typeof Lf.markerClusterGroup === 'function') ? Lf.markerClusterGroup({\n        showCoverageOnHover: false,\n        maxClusterRadius: 45,\n        iconCreateFunction: function(cl) {\n          var n = cl.getChildCount();\n          var s = n < 10 ? 34 : (n < 50 ? 40 : 46);\n          return Lf.divIcon({ className: 'mv-cluster', html: '<span style=\"width:' + s + 'px;height:' + s + 'px;background:' + ACCENT + '\">' + n + '<\/span>', iconSize: [s, s] });\n        }\n      }) : Lf.layerGroup();\n      layer.addTo(map);\n      renderList();\n    }\n\n    \/**\n     * Met la carte \u00e0 jour sans jamais bloquer la page. Le th\u00e8me (ou WP Rocket)\n     * peut r\u00e9ex\u00e9cuter Leaflet apr\u00e8s coup : markercluster lit alors la mauvaise\n     * copie (\u00ab L.DistanceGrid is not a constructor \u00bb) au moment o\u00f9 la LISTE met\n     * la carte \u00e0 jour. On remet la bonne copie avant, et une erreur de carte\n     * n'emp\u00eache plus la liste ni le d\u00e9filement qui suivent.\n     *\/\n    function updateMap(list) {\n      if (!map || !layer) return;\n      if (Lf && window.L !== Lf) window.L = Lf;\n      try {\n        drawMap(list);\n      } catch (e) {\n        if (window.console) console.warn('Elaia \u2014 carte non mise \u00e0 jour :', e);\n      }\n    }\n\n    function drawMap(list) {\n      layer.clearLayers();\n      pins = {};\n      var bounds = [];\n      var markers = [];\n      list.forEach(function(it) {\n        if (it.lat === null) return;\n        var m = Lf.marker([it.lat, it.lng], { icon: pinIcon(catColor(it.type), false, it.id === state.selected), title: it.name });\n        m.on('click', function() {\n          selectItem(it.id);\n        });\n        markers.push(m);\n        pins[it.id] = m;\n        bounds.push([it.lat, it.lng]);\n      });\n      \/\/ Ajout group\u00e9 : un seul recalcul des regroupements (plus fiable que addLayer un par un)\n      if (typeof layer.addLayers === 'function') layer.addLayers(markers);\n      else markers.forEach(function(m) {\n        layer.addLayer(m);\n      });\n\n      \/\/ Rayon du filtre de distance autour de l'\u00e9tablissement\n      if (radius) {\n        map.removeLayer(radius);\n        radius = null;\n      }\n      if (MAP.home) {\n        bounds.push([MAP.home.lat, MAP.home.lng]);\n        if (state.km) {\n          radius = Lf.circle([MAP.home.lat, MAP.home.lng], {\n            radius: state.km * 1000,\n            color: ACCENT,\n            weight: 1.5,\n            dashArray: '6 6',\n            fillColor: ACCENT,\n            fillOpacity: 0.06,\n            interactive: false\n          }).addTo(map);\n        }\n      }\n\n      if (state.selected !== null && !pins[state.selected]) state.selected = null;\n      renderPreview();\n      overview = radius ? { bounds: radius.getBounds(), padding: [20, 20] } :\n        (bounds.length > 1 ? { bounds: bounds, padding: [40, 40] } :\n          (bounds.length === 1 ? { center: bounds[0] } : null));\n      fitOverview();\n      if (resetBtn) resetBtn.hidden = true;\n      setTimeout(function() {\n        map.invalidateSize();\n      }, 50);\n    }\n\n    \/** Cadre la carte sur la vue d'ensemble, sans afficher le bouton \u00ab Revenir\u2026 \u00bb *\/\n    function fitOverview() {\n      if (!map || !overview) return;\n      fitting = true;\n      if (overview.center) map.setView(overview.center, 13, { animate: false });\n      else map.fitBounds(overview.bounds, { padding: overview.padding, maxZoom: 13, animate: false });\n      setTimeout(function() {\n        fitting = false;\n      }, 50);\n    }\n\n    function highlightPin(id, on) {\n      var m = pins[id];\n      if (!m) return;\n      var it = BY_ID[id];\n      var selected = id === state.selected;\n      m.setIcon(pinIcon(catColor(it.type), on, selected));\n      m.setZIndexOffset(on || selected ? 1000 : 0);\n    }\n\n    \/** S\u00e9lectionne une fiche depuis la carte : rep\u00e8re mis en avant + fiche sous la carte *\/\n    function selectItem(id) {\n      var prev = state.selected;\n      state.selected = id;\n      if (prev !== null) highlightPin(prev, false);\n      highlightPin(id, false);\n      renderPreview();\n    }\n\n    function renderPreview() {\n      var box = document.getElementById('mv-preview');\n      if (!box) return;\n      box.innerHTML = '';\n      var it = state.selected !== null ? BY_ID[state.selected] : null;\n      if (!it) {\n        var hint = el('div', 'mv-preview-hint');\n        hint.appendChild(icon('pin'));\n        hint.appendChild(document.createTextNode(T.map_hint));\n        box.appendChild(hint);\n        return;\n      }\n      box.appendChild(card(it, false, true));\n    }\n\n    \/\/ \u2550\u2550\u2550 Modal \u2550\u2550\u2550\n    var modal = document.getElementById('mv-modal');\n    if (modal.parentNode !== document.body) document.body.appendChild(modal);\n    var content = document.getElementById('mv-modal-content');\n    content.style.setProperty('--mv-accent', ACCENT);\n    content.style.setProperty('--mv-accent-soft', ACCENT + '1a');\n    content.style.setProperty('--mv-cream', '#faf7f2');\n    content.style.setProperty('--mv-line', '#ebe5da');\n    content.style.setProperty('--mv-muted', '#6b6559');\n    var lastFocus = null;\n\n    function openModal(it) {\n      lastFocus = document.activeElement;\n      content.innerHTML = '';\n      content.style.setProperty('--mv-cat', catColor(it.type));\n\n      \/\/ Deux colonnes d\u00e8s le haut : m\u00e9dias \/ actions \u00e0 gauche, texte \u00e0 droite\n      var body = el('div', 'mv-modal-body');\n      var cols = el('div', 'mv-modal-cols');\n      var side = el('div', 'mv-modal-col mv-modal-col--media');\n      var main = el('div', 'mv-modal-col');\n      cols.appendChild(side);\n      cols.appendChild(main);\n      body.appendChild(cols);\n      var mainBody = body;\n\n      if (it.image) {\n        var img = el('img', 'mv-modal-img');\n        img.src = it.image;\n        img.alt = it.name;\n        img.onerror = function() {\n          img.remove();\n          if (cap) cap.remove();\n        };\n        side.appendChild(img);\n        var cap = null;\n        if (it.credit) {\n          cap = el('p', 'mv-modal-credit', 'Photo : ' + it.credit);\n          side.appendChild(cap);\n        }\n      }\n\n      body = main;\n      if (CATS[it.type]) {\n        var pill = el('span', 'mv-pill', CATS[it.type].label);\n        pill.style.alignSelf = 'flex-start';\n        body.appendChild(pill);\n      }\n      var t = el('h2', 'mv-modal-title', it.name);\n      t.id = 'mv-modal-title';\n      body.appendChild(t);\n      var meta = metaLine(it);\n      if (meta) body.appendChild(meta);\n      if (it.event) {\n        var ev = el('span', 'mv-modal-event');\n        ev.appendChild(icon('calendar'));\n        ev.appendChild(document.createTextNode(it.event));\n        body.appendChild(ev);\n      }\n      if (it.description) body.appendChild(el('p', 'mv-modal-desc', it.description));\n\n      if (it.fields.length) {\n        var f = el('div', 'mv-fields');\n        it.fields.forEach(function(fd) {\n          var d = el('div', 'mv-field');\n          d.appendChild(el('span', null, fd.label));\n          d.appendChild(el('strong', null, fd.value));\n          f.appendChild(d);\n        });\n        body.appendChild(f);\n      }\n\n      \/\/ Colonne m\u00e9dias (gauche)\n      body = side;\n      var actions = el('div', 'mv-modal-actions');\n      \/\/ Google Maps seulement si on sait o\u00f9 se trouve la fiche (sinon lien trompeur)\n      var gmTarget = mapsTarget(it);\n      if (gmTarget) {\n        var gm = el('a', 'mv-btn', gmTarget.label);\n        gm.href = gmTarget.url;\n        gm.target = '_blank';\n        gm.rel = 'noopener';\n        gm.insertBefore(icon('maps'), gm.firstChild);\n        actions.appendChild(gm);\n      }\n      if (it.link) {\n        var l = el('a', 'mv-btn mv-btn--ghost', T.official_site);\n        l.href = it.link;\n        l.target = '_blank';\n        l.rel = 'noopener';\n        l.appendChild(icon('arrow'));\n        actions.appendChild(l);\n      }\n      body.appendChild(actions);\n\n      if (it.video_url) {\n        body.appendChild(el('p', 'mv-modal-sub', T.video));\n        var e = it.video_embed;\n        if (e && (e.type === 'youtube' || e.type === 'vimeo') && e.src) {\n          var v = el('div', 'mv-video');\n          var fr = el('iframe');\n          fr.src = e.src;\n          fr.allowFullscreen = true;\n          fr.setAttribute('allow', 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture');\n          fr.referrerPolicy = 'strict-origin-when-cross-origin';\n          v.appendChild(fr);\n          body.appendChild(v);\n        } else if (e && e.type === 'file' && e.src) {\n          var vw = el('div', 'mv-video');\n          var vid = el('video');\n          vid.src = e.src;\n          vid.controls = true;\n          vid.preload = 'metadata';\n          vw.appendChild(vid);\n          body.appendChild(vw);\n        } else {\n          var vl = el('a', null, it.video_url);\n          vl.href = it.video_url;\n          vl.target = '_blank';\n          vl.rel = 'noopener';\n          body.appendChild(vl);\n        }\n      }\n\n      if (it.gallery.length) {\n        body.appendChild(el('p', 'mv-modal-sub', T.gallery));\n        var g = el('div', 'mv-gallery');\n        it.gallery.forEach(function(src) {\n          var a = el('a');\n          a.href = src;\n          a.target = '_blank';\n          a.rel = 'noopener';\n          var gi = el('img');\n          gi.src = src;\n          gi.alt = '';\n          gi.loading = 'lazy';\n          a.appendChild(gi);\n          g.appendChild(a);\n        });\n        body.appendChild(g);\n      }\n\n      var docs = it.documents.filter(function(d) {\n        return d && d.url;\n      });\n      if (docs.length) {\n        body.appendChild(el('p', 'mv-modal-sub', T.documents));\n        var dl = el('div', 'mv-docs');\n        docs.forEach(function(d) {\n          var a = el('a');\n          a.href = d.url;\n          a.target = '_blank';\n          a.rel = 'noopener';\n          a.appendChild(icon('doc'));\n          a.appendChild(document.createTextNode(d.nom || 'Document'));\n          dl.appendChild(a);\n        });\n        body.appendChild(dl);\n      }\n\n      if (it.faq.length) {\n        body = main; \/\/ la FAQ reste dans la colonne texte\n        body.appendChild(el('p', 'mv-modal-sub', T.faq));\n        var fq = el('div', 'mv-faq');\n        it.faq.forEach(function(qa) {\n          var det = el('details');\n          det.appendChild(el('summary', null, qa.question));\n          det.appendChild(el('p', null, qa.answer || T.no_answer));\n          fq.appendChild(det);\n        });\n        body.appendChild(fq);\n      }\n\n      content.appendChild(mainBody);\n      modal.hidden = false;\n      fitModal();\n      content.querySelectorAll('img, iframe, video').forEach(function(m) {\n        m.addEventListener('load', fitModal);\n        m.addEventListener('loadedmetadata', fitModal);\n      });\n      document.documentElement.style.overflow = 'hidden';\n      document.getElementById('mv-modal-close').focus();\n    }\n\n    \/**\n     * Agrandissement automatique : on passe au palier suivant tant que le contenu\n     * d\u00e9passe la hauteur disponible (sur grand \u00e9cran seulement).\n     *\/\n    function fitModal() {\n      var m = modal.querySelector('.mv-modal');\n      if (!m || modal.hidden) return;\n      m.classList.remove('is-wide', 'is-compact');\n      if (window.innerWidth <= 900) return;\n      var overflows = function() {\n        return m.scrollHeight > m.clientHeight + 2;\n      };\n      if (!overflows()) return;\n      m.classList.add('is-wide');\n      if (!overflows()) return;\n      m.classList.add('is-compact');\n    }\n    window.addEventListener('resize', function() {\n      if (!modal.hidden) fitModal();\n    });\n\n    \/** Lien Google Maps : coordonn\u00e9es si connues, sinon nom + ville \/ adresse *\/\n    \/**\n     * Cible Google Maps, par ordre de fiabilit\u00e9 :\n     *   1. coordonn\u00e9es de la fiche\n     *   2. nom + adresse (ou ville)\n     *   3. position de l'\u00e9tablissement (fiche sans lieu = \u00e9quipement sur place)\n     *   4. aucune \u2192 pas de bouton\n     *\/\n    function mapsTarget(it) {\n      var base = 'https:\/\/www.google.com\/maps\/search\/?api=1&query=';\n      if (it.lat !== null) return { url: base + encodeURIComponent(it.lat + ',' + it.lng), label: T.see_on_maps };\n      var where = it.address || it.city;\n      if (where) return { url: base + encodeURIComponent(it.name + ', ' + where), label: T.see_on_maps };\n      if (MAP.home) return { url: base + encodeURIComponent(MAP.home.lat + ',' + MAP.home.lng), label: T.see_place_on_maps };\n      return null;\n    }\n\n    function closeModal() {\n      modal.hidden = true;\n      document.documentElement.style.overflow = '';\n      if (lastFocus) lastFocus.focus();\n    }\n\n    document.getElementById('mv-modal-close').addEventListener('click', closeModal);\n    modal.addEventListener('click', function(e) {\n      if (e.target === modal) closeModal();\n    });\n    document.addEventListener('keydown', function(e) {\n      if (e.key === 'Escape' && !modal.hidden) closeModal();\n    });\n\n    \/\/ \u2550\u2550\u2550 Contr\u00f4les \u2550\u2550\u2550\n    \/**\n     * Hauteur occup\u00e9e en haut de l'\u00e9cran par les barres fixes \/ collantes du site\n     * (barre d'admin, en-t\u00eate, barre de r\u00e9servation\u2026), quelle que soit leur classe :\n     * on sonde le haut de l'\u00e9cran et on empile les barres trouv\u00e9es.\n     *\/\n    function headerOffset() {\n      var bottom = 0;\n      var vw = window.innerWidth,\n        vh = window.innerHeight;\n      var isBar = function(el) {\n        if (!el || el === document.body || el === document.documentElement) return false;\n        if (el.closest('#mv-app, .ea-modal-overlay, .mv-modal-overlay')) return false;\n        var pos = getComputedStyle(el).position;\n        if (pos !== 'fixed' && pos !== 'sticky') return false;\n        var r = el.getBoundingClientRect();\n        \/\/ vraie barre : large, pas trop haute (exclut bulles de chat, boutons flottants, popups)\n        return r.width >= vw * 0.3 && r.height > 0 && r.height < vh * 0.45;\n      };\n      for (var pass = 0; pass < 5; pass++) {\n        var y = bottom + 2,\n          found = 0;\n        if (y >= vh * 0.5) break;\n        [0.15, 0.5, 0.85].forEach(function(fx) {\n          (document.elementsFromPoint(vw * fx, y) || []).forEach(function(el) {\n            for (var n = el; n && n !== document.body; n = n.parentElement) {\n              if (isBar(n)) {\n                var r = n.getBoundingClientRect();\n                if (r.top <= y + 1 && r.bottom > found) found = r.bottom;\n                break;\n              }\n            }\n          });\n        });\n        if (found <= bottom) break;\n        bottom = found;\n      }\n      app.style.setProperty('--mv-header', Math.round(bottom) + 'px');\n      return bottom;\n    }\n\n    var searchTimer = null;\n    document.getElementById('mv-search').addEventListener('input', function(e) {\n      clearTimeout(searchTimer);\n      searchTimer = setTimeout(function() {\n        state.q = e.target.value;\n        state.limit = STEP;\n      state.page = 1;\n        renderList();\n      }, 150);\n    });\n\n    var dist = document.getElementById('mv-distance');\n    if (dist) {\n      dist.querySelectorAll('button').forEach(function(b) {\n        b.addEventListener('click', function() {\n          state.km = parseInt(b.getAttribute('data-km'), 10) || 0;\n          state.limit = STEP;\n      state.page = 1;\n          dist.querySelectorAll('button').forEach(function(x) {\n            x.classList.toggle('is-active', x === b);\n          });\n          renderList();\n        });\n      });\n    }\n\n    var viewSeg = document.getElementById('mv-view');\n    var layoutEl = document.getElementById('mv-layout');\n\n    function setView(v) {\n      state.view = v;\n      layoutEl.classList.toggle('is-list', v === 'list');\n      viewSeg.querySelectorAll('button').forEach(function(x) {\n        x.classList.toggle('is-active', x.getAttribute('data-view') === v);\n      });\n      if (map) setTimeout(function() {\n        map.invalidateSize();\n      }, 60);\n    }\n    viewSeg.querySelectorAll('button').forEach(function(b) {\n      b.addEventListener('click', function() {\n        setView(b.getAttribute('data-view'));\n      });\n    });\n\n    \/\/ Pas de carte si aucune fiche n'est g\u00e9olocalis\u00e9e\n    if (!ITEMS.some(function(it) {\n        return it.lat !== null;\n      })) {\n      viewSeg.style.display = 'none';\n      state.view = 'list';\n    }\n\n    headerOffset();\n    window.addEventListener('resize', headerOffset);\n    \/\/ Les barres du site peuvent appara\u00eetre au d\u00e9filement (barre de r\u00e9servation\u2026)\n    var hoTicking = false;\n    window.addEventListener('scroll', function() {\n      if (hoTicking) return;\n      hoTicking = true;\n      requestAnimationFrame(function() {\n        headerOffset();\n        hoTicking = false;\n      });\n    }, { passive: true });\n    var lastCols = null,\n      resizeTimer = null;\n    window.addEventListener('resize', function() {\n      clearTimeout(resizeTimer);\n      resizeTimer = setTimeout(function() {\n        var c = gridColumns();\n        if (lastCols !== null && c !== lastCols) renderList();\n        lastCols = c;\n      }, 200);\n    });\n    renderCats();\n    renderIdeas();\n    setView(state.view);\n    renderList();\n    renderPreview();\n    initMap();\n  })();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"sujet":[],"class_list":["post-34385","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Entdecken Sie die Umgebung - L&#039;\u00cele Blanche<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.ile-blanche.com\/de\/elaia-metadatas\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Entdecken Sie die Umgebung - L&#039;\u00cele Blanche\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ile-blanche.com\/de\/elaia-metadatas\/\" \/>\n<meta property=\"og:site_name\" content=\"L&#039;\u00cele Blanche\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.ile-blanche.com\\\/de\\\/elaia-metadatas\\\/\",\"url\":\"https:\\\/\\\/www.ile-blanche.com\\\/de\\\/elaia-metadatas\\\/\",\"name\":\"Entdecken Sie die Umgebung - L&#039;\u00cele Blanche\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ile-blanche.com\\\/de\\\/#website\"},\"datePublished\":\"2026-10-20T13:06:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.ile-blanche.com\\\/de\\\/elaia-metadatas\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.ile-blanche.com\\\/de\\\/elaia-metadatas\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.ile-blanche.com\\\/de\\\/elaia-metadatas\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Campingplatz \u00cele de R\u00e9\",\"item\":\"https:\\\/\\\/www.ile-blanche.com\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Entdecken Sie die Umgebung\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.ile-blanche.com\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.ile-blanche.com\\\/de\\\/\",\"name\":\"L'\u00cele Blanche\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.ile-blanche.com\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.ile-blanche.com\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.ile-blanche.com\\\/de\\\/#organization\",\"name\":\"L'\u00cele Blanche\",\"url\":\"https:\\\/\\\/www.ile-blanche.com\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.ile-blanche.com\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.ile-blanche.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo-alt-ile-blanche.png\",\"contentUrl\":\"https:\\\/\\\/www.ile-blanche.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/cropped-logo-alt-ile-blanche.png\",\"width\":512,\"height\":512,\"caption\":\"L'\u00cele Blanche\"},\"image\":{\"@id\":\"https:\\\/\\\/www.ile-blanche.com\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Entdecken Sie die Umgebung - L&#039;\u00cele Blanche","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.ile-blanche.com\/de\/elaia-metadatas\/","og_locale":"de_DE","og_type":"article","og_title":"Entdecken Sie die Umgebung - L&#039;\u00cele Blanche","og_url":"https:\/\/www.ile-blanche.com\/de\/elaia-metadatas\/","og_site_name":"L&#039;\u00cele Blanche","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.ile-blanche.com\/de\/elaia-metadatas\/","url":"https:\/\/www.ile-blanche.com\/de\/elaia-metadatas\/","name":"Entdecken Sie die Umgebung - L&#039;\u00cele Blanche","isPartOf":{"@id":"https:\/\/www.ile-blanche.com\/de\/#website"},"datePublished":"2026-10-20T13:06:18+00:00","breadcrumb":{"@id":"https:\/\/www.ile-blanche.com\/de\/elaia-metadatas\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ile-blanche.com\/de\/elaia-metadatas\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.ile-blanche.com\/de\/elaia-metadatas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Campingplatz \u00cele de R\u00e9","item":"https:\/\/www.ile-blanche.com\/de\/"},{"@type":"ListItem","position":2,"name":"Entdecken Sie die Umgebung"}]},{"@type":"WebSite","@id":"https:\/\/www.ile-blanche.com\/de\/#website","url":"https:\/\/www.ile-blanche.com\/de\/","name":"L'\u00cele Blanche","description":"","publisher":{"@id":"https:\/\/www.ile-blanche.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.ile-blanche.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.ile-blanche.com\/de\/#organization","name":"L'\u00cele Blanche","url":"https:\/\/www.ile-blanche.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.ile-blanche.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.ile-blanche.com\/wp-content\/uploads\/2022\/06\/cropped-logo-alt-ile-blanche.png","contentUrl":"https:\/\/www.ile-blanche.com\/wp-content\/uploads\/2022\/06\/cropped-logo-alt-ile-blanche.png","width":512,"height":512,"caption":"L'\u00cele Blanche"},"image":{"@id":"https:\/\/www.ile-blanche.com\/de\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.ile-blanche.com\/de\/wp-json\/wp\/v2\/pages\/34385","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ile-blanche.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ile-blanche.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ile-blanche.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ile-blanche.com\/de\/wp-json\/wp\/v2\/comments?post=34385"}],"version-history":[{"count":1,"href":"https:\/\/www.ile-blanche.com\/de\/wp-json\/wp\/v2\/pages\/34385\/revisions"}],"predecessor-version":[{"id":34386,"href":"https:\/\/www.ile-blanche.com\/de\/wp-json\/wp\/v2\/pages\/34385\/revisions\/34386"}],"wp:attachment":[{"href":"https:\/\/www.ile-blanche.com\/de\/wp-json\/wp\/v2\/media?parent=34385"}],"wp:term":[{"taxonomy":"sujet","embeddable":true,"href":"https:\/\/www.ile-blanche.com\/de\/wp-json\/wp\/v2\/sujet?post=34385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}