{"id":8895,"date":"2026-10-20T12:12:48","date_gmt":"2026-10-20T10:12:48","guid":{"rendered":"https:\/\/www.camping-florac.com\/elaia-metadatas-2\/"},"modified":"2026-10-20T12:12:48","modified_gmt":"2026-10-20T10:12:48","slug":"elaia-metadatas","status":"publish","type":"page","link":"https:\/\/www.camping-florac.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\":\"Florac\",\"description\":\"Florac ist eine charmante kleine Stadt, nur 2,5 km vom Campingplatz Le Pont du Tarn entfernt. Sie ist bekannt f\u00fcr ihre freundliche Atmosph\u00e4re, lokale M\u00e4rkte und den nahen Zugang zum C\u00e9vennes-Nationalpark. Ein ausgezeichneter Ausgangspunkt, um die Region zu erkunden.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7dd6a9bd2a2.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.3246156,\"longitude\":3.5943317},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Stadtname\",\"value\":\"Florac\"},{\"@type\":\"PropertyValue\",\"name\":\"Stadtart (Stadt \/ D\u00f6rfer \/ Weiler...)\",\"value\":\"Stadt\"},{\"@type\":\"PropertyValue\",\"name\":\"Abteilung\",\"value\":\"Loz\u00e8re\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"2.5\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"5\"},{\"@type\":\"PropertyValue\",\"name\":\"Sehensw\u00fcrdigkeiten\",\"value\":\"C\u00e9vennes-Nationalpark, Donnerstagmorgenmarkt, Tarn-Fluss, Gorges du Tarn\"},{\"@type\":\"PropertyValue\",\"name\":\"Lieblingspl\u00e4tze der Betreiber\",\"value\":\"Der lokale Donnerstagmorgenmarkt und Wanderungen im C\u00e9vennes-Nationalpark\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"Le Pont-de-Montvert\",\"description\":\"Le Pont-de-Montvert ist ein typisches C\u00e9venol-Dorf ca. 15 km vom Camping entfernt. Es bietet eine authentische Umgebung mit seiner steinernen Br\u00fccke und Kieselstr\u00e4nden am Fluss.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7dd72255892.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.3632783,\"longitude\":3.7453377},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Stadtname\",\"value\":\"Le Pont-de-Montvert\"},{\"@type\":\"PropertyValue\",\"name\":\"Stadtart (Stadt \/ D\u00f6rfer \/ Weiler...)\",\"value\":\"Dorf\"},{\"@type\":\"PropertyValue\",\"name\":\"Abteilung\",\"value\":\"Loz\u00e8re\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"15\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"20\"},{\"@type\":\"PropertyValue\",\"name\":\"Sehensw\u00fcrdigkeiten\",\"value\":\"Historisches Dorf, Kieselstrand, Tarn-Fluss, Wochenmarkt\"},{\"@type\":\"PropertyValue\",\"name\":\"Lieblingspl\u00e4tze der Betreiber\",\"value\":\"Pittorescher Strand unter der alten Br\u00fccke und die Ruhe des Dorfes\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Saint-Jean-du-Gard\",\"description\":\"Saint-Jean-du-Gard ist eine charmante c\u00e9venole Stadt etwa 35 km vom Campingplatz entfernt. Mit ihrem reichen Erbe bietet sie zahlreiche kulturelle und Outdoor-Aktivit\u00e4ten.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7dd7f8486e5.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.1055556,\"longitude\":3.8869444},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Stadtname\",\"value\":\"Saint-Jean-du-Gard\"},{\"@type\":\"PropertyValue\",\"name\":\"Stadtart (Stadt \/ D\u00f6rfer \/ Weiler...)\",\"value\":\"Stadt\"},{\"@type\":\"PropertyValue\",\"name\":\"Abteilung\",\"value\":\"Gard\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"35\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"1 Stunde 15\"},{\"@type\":\"PropertyValue\",\"name\":\"Sehensw\u00fcrdigkeiten\",\"value\":\"C\u00e9venol Museum, Wanderwege, Altstadt, lokale Handwerkskunst\"},{\"@type\":\"PropertyValue\",\"name\":\"Lieblingspl\u00e4tze der Betreiber\",\"value\":\"Das C\u00e9venol-Museum und die Naturwanderwege\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Sainte-Enimie\",\"description\":\"Sainte-Enimie ist eines der sch\u00f6nsten D\u00f6rfer Frankreichs, etwa 25 km vom Campingplatz entfernt. Bekannt f\u00fcr seine mittelalterlichen Gassen und den Zugang zu den Gorges du Tarn.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7dd87a16a33.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.3675,\"longitude\":3.41194},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Stadtname\",\"value\":\"Sainte-Enimie\"},{\"@type\":\"PropertyValue\",\"name\":\"Stadtart (Stadt \/ D\u00f6rfer \/ Weiler...)\",\"value\":\"Dorf\"},{\"@type\":\"PropertyValue\",\"name\":\"Abteilung\",\"value\":\"Loz\u00e8re\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"25\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Sehensw\u00fcrdigkeiten\",\"value\":\"Mittelalterliches Dorf, Gorges du Tarn, Wanderwege, Kunsthandwerk\"},{\"@type\":\"PropertyValue\",\"name\":\"Lieblingspl\u00e4tze der Betreiber\",\"value\":\"Die alten Gassen und die Panoramaaussicht auf die Gorges du Tarn\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"Meyrueis\",\"description\":\"Meyrueis ist eine lebendige Stadt, die 18 km vom Camping entfernt liegt, mit reichem nat\u00fcrlichen und kulturellem Erbe entlang der C\u00e9vennes.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7dd8e5c4fe2.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.17944,\"longitude\":3.43028},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Stadtname\",\"value\":\"Meyrueis\"},{\"@type\":\"PropertyValue\",\"name\":\"Stadtart (Stadt \/ D\u00f6rfer \/ Weiler...)\",\"value\":\"Stadt\"},{\"@type\":\"PropertyValue\",\"name\":\"Abteilung\",\"value\":\"Loz\u00e8re\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"18\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"25\"},{\"@type\":\"PropertyValue\",\"name\":\"Sehensw\u00fcrdigkeiten\",\"value\":\"Schluchten der Jonte, Wochenmarkt, H\u00f6hlen, Wanderwege\"},{\"@type\":\"PropertyValue\",\"name\":\"Lieblingspl\u00e4tze der Betreiber\",\"value\":\"Les visites guid\u00e9es des grottes et les paysages naturels environnants\"}]}}]},{\"@type\":\"ItemList\",\"name\":\"Activit\u00e9s aux alentours \",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Naturbeobachtung im C\u00e9vennes-Nationalpark\",\"description\":\"Aktivit\u00e4t zur Beobachtung der nat\u00fcrlichen Sch\u00e4tze des C\u00e9vennes-Nationalparks, einschlie\u00dflich Fauna, Flora und Landschaften, f\u00fcr alle \u00f6ffentlich zug\u00e4nglich.\",\"image\":\"https:\/\/www.camping-florac.com\/wp-content\/uploads\/2026\/05\/3-cameras-filment-en-direct-les-nids.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.3226,\"longitude\":3.593},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Aktivit\u00e4tsname\",\"value\":\"Naturbeobachtung im C\u00e9vennes-Nationalpark\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"5\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"10\"},{\"@type\":\"PropertyValue\",\"name\":\"Art der Aktivit\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Natur, Kultur\"},{\"@type\":\"PropertyValue\",\"name\":\"Zielgruppe (Familie, Kinder, Senior, Jugendliche, etc.)\",\"value\":\"Familie, Kinder, Senioren\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung? (ja \/ nein)\",\"value\":\"non\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00d6ffnungszeiten\",\"value\":\"Frei, tags\u00fcber\"},{\"@type\":\"PropertyValue\",\"name\":\"Informationen und Kontakt\",\"value\":\"Informationsb\u00fcro des C\u00e9vennes-Nationalparks, Florac\"},{\"@type\":\"PropertyValue\",\"name\":\"Gesprochene Sprachen\",\"value\":\"Franz\u00f6sisch\"},{\"@type\":\"PropertyValue\",\"name\":\"Tiere akzeptiert (ja \/ nein)\",\"value\":\"oui\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"Florac Baumkronenpfad\",\"description\":\"Baumkronenpark mit mehreren Parcours in den B\u00e4umen f\u00fcr alle Niveaus, ideal f\u00fcr Familien und Naturfreunde.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7dd96cd7290.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.5215,\"longitude\":3.7439},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Aktivit\u00e4tsname\",\"value\":\"Florac Baumkronenpfad\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"10\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"15\"},{\"@type\":\"PropertyValue\",\"name\":\"Art der Aktivit\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Sport, Natur, Freizeit\"},{\"@type\":\"PropertyValue\",\"name\":\"Zielgruppe (Familie, Kinder, Senior, Jugendliche, etc.)\",\"value\":\"Familie, Kinder, Teenager\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung? (ja \/ nein)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00d6ffnungszeiten\",\"value\":\"Von 10 bis 18 Uhr, Sommersaison\"},{\"@type\":\"PropertyValue\",\"name\":\"Informationen und Kontakt\",\"value\":\"Le Vallon du Villaret, Florac, contact@accrobranche-florac.fr\"},{\"@type\":\"PropertyValue\",\"name\":\"Gesprochene Sprachen\",\"value\":\"Franz\u00f6sisch\"},{\"@type\":\"PropertyValue\",\"name\":\"Tiere akzeptiert (ja \/ nein)\",\"value\":\"non\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Wandern auf dem GR 70 Stevenson-Pfad\",\"description\":\"Ikonischer Wanderweg, zug\u00e4nglich f\u00fcr Liebhaber aller Niveaus, erm\u00f6glicht die Entdeckung der vielf\u00e4ltigen Landschaften der C\u00e9vennes und der umliegenden Natur. Ideal f\u00fcr Familien und Wanderbegeisterte.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7dd9f4d2dfe.png\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Aktivit\u00e4tsname\",\"value\":\"Wandern auf dem GR 70 Stevenson-Pfad\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"0\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"0\"},{\"@type\":\"PropertyValue\",\"name\":\"Art der Aktivit\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Natur, Sport\"},{\"@type\":\"PropertyValue\",\"name\":\"Zielgruppe (Familie, Kinder, Senior, Jugendliche, etc.)\",\"value\":\"Familie, Teenager, Senior\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung? (ja \/ nein)\",\"value\":\"non\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00d6ffnungszeiten\",\"value\":\"Ganzj\u00e4hrig, flexibel\"},{\"@type\":\"PropertyValue\",\"name\":\"Informationen und Kontakt\",\"value\":\"Tourismusb\u00fcro C\u00e9vennes, Florac\"},{\"@type\":\"PropertyValue\",\"name\":\"Gesprochene Sprachen\",\"value\":\"Franz\u00f6sisch\"},{\"@type\":\"PropertyValue\",\"name\":\"Tiere akzeptiert (ja \/ nein)\",\"value\":\"oui\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Cano\u00eb-Kajak auf dem Tarn bei Saint Enimie\",\"description\":\"Abfahrt mit dem Kanu-Kajak auf dem Fluss Tarn, zug\u00e4nglich f\u00fcr die \u00d6ffentlichkeit mit verschiedenen geeigneten Niveaus und bietet eine einzigartige Aussicht auf die Gorges du Tarn.\",\"image\":\"https:\/\/www.camping-florac.com\/wp-content\/uploads\/2026\/05\/canyon-gorges-du-tarn-scaled-1.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.3287,\"longitude\":3.364},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Aktivit\u00e4tsname\",\"value\":\"Cano\u00eb-Kajak auf dem Tarn bei Saint Enimie\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"25\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Art der Aktivit\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Sport, Natur\"},{\"@type\":\"PropertyValue\",\"name\":\"Zielgruppe (Familie, Kinder, Senior, Jugendliche, etc.)\",\"value\":\"Familie, Teenager, Erwachsene\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung? (ja \/ nein)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00d6ffnungszeiten\",\"value\":\"Von 9 Uhr bis 18 Uhr, saisonabh\u00e4ngig\"},{\"@type\":\"PropertyValue\",\"name\":\"Informationen und Kontakt\",\"value\":\"C\u00e9vennes \u00c9vasion, Saint Enimie, contact@cevennes-evasion.fr\"},{\"@type\":\"PropertyValue\",\"name\":\"Gesprochene Sprachen\",\"value\":\"Franz\u00f6sisch, Englisch\"},{\"@type\":\"PropertyValue\",\"name\":\"Tiere akzeptiert (ja \/ nein)\",\"value\":\"non\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"Klettern in den Gorges du Tarn\",\"description\":\"Renommierter Kletterspot mit vielen Routen f\u00fcr verschiedene Niveaus. Sport- und Abenteuergeschehen in einem au\u00dfergew\u00f6hnlichen Naturraum.\",\"image\":\"https:\/\/www.camping-florac.com\/wp-content\/uploads\/2026\/05\/canyon-gorges-du-tarn-scaled-1.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.3287,\"longitude\":3.364},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Aktivit\u00e4tsname\",\"value\":\"Klettern in den Gorges du Tarn\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Campingplatz (km)\",\"value\":\"15\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"20\"},{\"@type\":\"PropertyValue\",\"name\":\"Art der Aktivit\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Sport, Natur, Abenteuer\"},{\"@type\":\"PropertyValue\",\"name\":\"Zielgruppe (Familie, Kinder, Senior, Jugendliche, etc.)\",\"value\":\"Jugendliche, Erwachsene\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung? (ja \/ nein)\",\"value\":\"non\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00d6ffnungszeiten\",\"value\":\"Von 8 bis 19 Uhr, das ganze Jahr\"},{\"@type\":\"PropertyValue\",\"name\":\"Informationen und Kontakt\",\"value\":\"Informationsb\u00fcro des Parc National des C\u00e9vennes\"},{\"@type\":\"PropertyValue\",\"name\":\"Gesprochene Sprachen\",\"value\":\"Franz\u00f6sisch\"},{\"@type\":\"PropertyValue\",\"name\":\"Tiere akzeptiert (ja \/ nein)\",\"value\":\"non\"}]}}]},{\"@type\":\"ItemList\",\"name\":\"Wasserspielplatz\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Wasserbereich des Camping le Pont du Tarn\",\"description\":\"Der Wasserbereich des Camping le Pont du Tarn bietet eine Lagunen-Atmosph\u00e4re mit mehreren Becken f\u00fcr alle Altersgruppen und Bed\u00fcrfnisse. Hier gibt es ein beheiztes Planschbecken f\u00fcr Kleinkinder, ein Lagunenbecken zum Abk\u00fchlen, ein Schwimmbecken sowie einen Balneobereich mit Whirlpool-B\u00e4dern zur Entspannung. Das Wasser wird auf etwa 26\u00b0C beheizt und der Bereich ist von Mitte Mai bis Mitte September ge\u00f6ffnet, abh\u00e4ngig vom Wetter. Er ist mit Rutschen und Wasserspielen ausgestattet und abends beleuchtet, um die Badezeit zu verl\u00e4ngern. Die Solarium-Liegefl\u00e4che l\u00e4dt zur Erholung ein, mit verf\u00fcgbaren Sonnenliegen im Freien.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6accb04de779e.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.2534,\"longitude\":3.6411},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Hauptausstattung\",\"value\":\"Une pataugeoire chauff\u00e9e, trois toboggans, une piscine lagon, une piscine de nage, un espace baln\u00e9o avec bains bouillonnants, solarium avec transats, jeux aquatiques, \u00e9clairage nocturne.\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00d6ffnungszeiten\",\"value\":\"10h00 \u00e0 19h00\"},{\"@type\":\"PropertyValue\",\"name\":\"Adresse\",\"value\":\"Route du Pont de Montvert, 48400 Florac-Trois-Rivi\u00e8res\"}]}}]},{\"@type\":\"ItemList\",\"name\":\"Vordruck ohne Vorlage\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Mobil-home Oasis Premium 35m\u00b2 - 2 chambres \\nOffrez-vous une parenth\u00e8se de confort dans notre mobil-home Oasis Premium 2 chambres, un h\u00e9bergement spacieux et raffin\u00e9 de 35 m\u00b2, id\u00e9al pour les couples, les familles ou les amis en qu\u00eate de vacances tout confort. Pens\u00e9 pour conjuguer \u00e9l\u00e9gance et praticit\u00e9, il s\u00e9duit par ses lignes contemporaines, ses \u00e9quipements de qualit\u00e9 et ses espaces g\u00e9n\u00e9reusement am\u00e9nag\u00e9s. Son int\u00e9rieur lumineux cr\u00e9e une atmosph\u00e8re accueillante o\u00f9 il fait bon se retrouver apr\u00e8s une journ\u00e9e de baignade, de randonn\u00e9e ou de d\u00e9couverte des C\u00e9vennes. Les deux chambres offrent un cadre reposant et fonctionnel, tandis que la vaste pi\u00e8ce de vie invite \u00e0 partager des moments privil\u00e9gi\u00e9s en toute simplicit\u00e9. \u00c0 l'ext\u00e9rieur, profitez pleinement de la douceur du climat c\u00e9venol gr\u00e2ce \u00e0 sa grande terrasse sur\u00e9lev\u00e9e \u00e9quip\u00e9e d'une plancha. Un v\u00e9ritable espace de vie suppl\u00e9mentaire pour savourer vos repas en plein air, vous d\u00e9tendre ou simplement appr\u00e9cier le calme de la nature environnante. \",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6accab60cda81.png\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Fl\u00e4che (m\u00b2)\",\"value\":\"35\"},{\"@type\":\"PropertyValue\",\"name\":\"Anzahl der Zimmer\",\"value\":\"2\"},{\"@type\":\"PropertyValue\",\"name\":\"Anzahl der Badezimmer\",\"value\":\"1\"},{\"@type\":\"PropertyValue\",\"name\":\"Hauptausstattung\",\"value\":\"Cuisine \u00e9quip\u00e9e, terrasse couverte semi-couverte, lave-vaisselle, climatisation, plancha, mobilier de jardin, chauffage, Wi-Fi gratuit\"},{\"@type\":\"PropertyValue\",\"name\":\"Ungef\u00e4hrer Preis\",\"value\":\"De 46 \u20ac \u00e0 247 \u20ac par jour suivant la p\u00e9riode.\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"37m\u00b2 Oasis Premium Mobilheim - 3 Schlafzimmer\\nLassen Sie sich von Oasis Premium verzaubern, unserer neuen Generation von Mobilheimen, die Komfort, Raum und Modernit\u00e4t im Herzen der C\u00e9vennes vereinen. Mit seinem zeitgen\u00f6ssischen Design, hochwertiger Ausstattung und gro\u00dfz\u00fcgigen Volumen bietet Oasis Premium eine warme Urlaubsatmosph\u00e4re, in der jeder seinen Platz findet. Das helle, ger\u00e4umige Wohnzimmer l\u00e4dt zum Entspannen ein, w\u00e4hrend die drei komfortablen Schlafzimmer ruhige N\u00e4chte nach einem Tag voller Entdeckungen garantieren. F\u00fcr Familien und Freunde gedacht, bietet dieses Mobilheim Platz f\u00fcr bis zu 6 Personen unter besten Komfortbedingungen. Drau\u00dfen verl\u00e4ngern Sie die Geselligkeit auf der gro\u00dfen erh\u00f6hten Terrasse mit Plancha. Fr\u00fchst\u00fcck im Freien, Familienessen oder Sommerabende unter den Sternen: alles ist vorhanden, um Ihren Urlaub in einer au\u00dfergew\u00f6hnlichen Naturumgebung voll zu genie\u00dfen.\",\"url\":\"https:\/\/www.camping-florac.com\/location-mobil-home-lozere\/\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6acca457ad4ab.png\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Fl\u00e4che (m\u00b2)\",\"value\":\"37 m\u00b2\"},{\"@type\":\"PropertyValue\",\"name\":\"Anzahl der Zimmer\",\"value\":\"3\"},{\"@type\":\"PropertyValue\",\"name\":\"Anzahl der Badezimmer\",\"value\":\"1\"},{\"@type\":\"PropertyValue\",\"name\":\"Hauptausstattung\",\"value\":\"Voll ausgestattete K\u00fcche, halb\u00fcberdachte Terrasse, Fernseher, Geschirrsp\u00fcler, Klimaanlage, Plancha, Gartenm\u00f6bel, Heizung, kostenloses WLAN\"},{\"@type\":\"PropertyValue\",\"name\":\"Ungef\u00e4hrer Preis\",\"value\":\"De 96 \u20ac \u00e0 256 \u20ac par jour suivant la p\u00e9riode\"}]}}]}]}<\/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:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7dd6a9bd2a2.png)\">\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>Camping Pont du Tarn<\/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>Florac<\/strong> \u2014 Florac ist eine charmante kleine Stadt, nur 2,5 km vom Campingplatz Le Pont du Tarn entfernt. Sie ist bekannt f\u00fcr ihre freundliche Atmosph\u00e4re, lokale M\u00e4rkte und den nahen Zugang zum&hellip;<\/li>\n              <li><strong>Le Pont-de-Montvert<\/strong> \u2014 Le Pont-de-Montvert ist ein typisches C\u00e9venol-Dorf ca. 15 km vom Camping entfernt. Es bietet eine authentische Umgebung mit seiner steinernen Br\u00fccke und Kieselstr\u00e4nden am Fluss.<\/li>\n              <li><strong>Saint-Jean-du-Gard<\/strong> \u2014 Saint-Jean-du-Gard ist eine charmante c\u00e9venole Stadt etwa 35 km vom Campingplatz entfernt. Mit ihrem reichen Erbe bietet sie zahlreiche kulturelle und Outdoor-Aktivit\u00e4ten.<\/li>\n              <li><strong>Sainte-Enimie<\/strong> \u2014 Sainte-Enimie ist eines der sch\u00f6nsten D\u00f6rfer Frankreichs, etwa 25 km vom Campingplatz entfernt. Bekannt f\u00fcr seine mittelalterlichen Gassen und den Zugang zu den Gorges du Tarn.<\/li>\n              <li><strong>Meyrueis<\/strong> \u2014 Meyrueis ist eine lebendige Stadt, die 18 km vom Camping entfernt liegt, mit reichem nat\u00fcrlichen und kulturellem Erbe entlang der C\u00e9vennes.<\/li>\n              <li><strong>Naturbeobachtung im C\u00e9vennes-Nationalpark<\/strong> \u2014 Aktivit\u00e4t zur Beobachtung der nat\u00fcrlichen Sch\u00e4tze des C\u00e9vennes-Nationalparks, einschlie\u00dflich Fauna, Flora und Landschaften, f\u00fcr alle \u00f6ffentlich zug\u00e4nglich.<\/li>\n              <li><strong>Florac Baumkronenpfad<\/strong> \u2014 Baumkronenpark mit mehreren Parcours in den B\u00e4umen f\u00fcr alle Niveaus, ideal f\u00fcr Familien und Naturfreunde.<\/li>\n              <li><strong>Wandern auf dem GR 70 Stevenson-Pfad<\/strong> \u2014 Ikonischer Wanderweg, zug\u00e4nglich f\u00fcr Liebhaber aller Niveaus, erm\u00f6glicht die Entdeckung der vielf\u00e4ltigen Landschaften der C\u00e9vennes und der umliegenden Natur. Ideal f\u00fcr Familien und Wanderbegeisterte.<\/li>\n              <li><strong>Cano\u00eb-Kajak auf dem Tarn bei Saint Enimie<\/strong> \u2014 Abfahrt mit dem Kanu-Kajak auf dem Fluss Tarn, zug\u00e4nglich f\u00fcr die \u00d6ffentlichkeit mit verschiedenen geeigneten Niveaus und bietet eine einzigartige Aussicht auf die Gorges du Tarn.<\/li>\n              <li><strong>Klettern in den Gorges du Tarn<\/strong> \u2014 Renommierter Kletterspot mit vielen Routen f\u00fcr verschiedene Niveaus. Sport- und Abenteuergeschehen in einem au\u00dfergew\u00f6hnlichen Naturraum.<\/li>\n              <li><strong>Wasserbereich des Camping le Pont du Tarn<\/strong> \u2014 Der Wasserbereich des Camping le Pont du Tarn bietet eine Lagunen-Atmosph\u00e4re mit mehreren Becken f\u00fcr alle Altersgruppen und Bed\u00fcrfnisse. Hier gibt es ein beheiztes Planschbecken f\u00fcr Kleinkinder, ein Lagunenbecken zum&hellip;<\/li>\n              <li><strong>Mobil-home Oasis Premium 35m\u00b2 - 2 chambres \nOffrez-vous une parenth\u00e8se de confort dans notre mobil-home Oasis Premium 2 chambres, un h\u00e9bergement spacieux et raffin\u00e9 de 35 m\u00b2, id\u00e9al pour les couples, les familles ou les amis en qu\u00eate de vacances tout confort. Pens\u00e9 pour conjuguer \u00e9l\u00e9gance et praticit\u00e9, il s\u00e9duit par ses lignes contemporaines, ses \u00e9quipements de qualit\u00e9 et ses espaces g\u00e9n\u00e9reusement am\u00e9nag\u00e9s. Son int\u00e9rieur lumineux cr\u00e9e une atmosph\u00e8re accueillante o\u00f9 il fait bon se retrouver apr\u00e8s une journ\u00e9e de baignade, de randonn\u00e9e ou de d\u00e9couverte des C\u00e9vennes. Les deux chambres offrent un cadre reposant et fonctionnel, tandis que la vaste pi\u00e8ce de vie invite \u00e0 partager des moments privil\u00e9gi\u00e9s en toute simplicit\u00e9. \u00c0 l&#039;ext\u00e9rieur, profitez pleinement de la douceur du climat c\u00e9venol gr\u00e2ce \u00e0 sa grande terrasse sur\u00e9lev\u00e9e \u00e9quip\u00e9e d&#039;une plancha. Un v\u00e9ritable espace de vie suppl\u00e9mentaire pour savourer vos repas en plein air, vous d\u00e9tendre ou simplement appr\u00e9cier le calme de la nature environnante.<\/strong><\/li>\n              <li><strong>37m\u00b2 Oasis Premium Mobilheim - 3 Schlafzimmer\nLassen Sie sich von Oasis Premium verzaubern, unserer neuen Generation von Mobilheimen, die Komfort, Raum und Modernit\u00e4t im Herzen der C\u00e9vennes vereinen. Mit seinem zeitgen\u00f6ssischen Design, hochwertiger Ausstattung und gro\u00dfz\u00fcgigen Volumen bietet Oasis Premium eine warme Urlaubsatmosph\u00e4re, in der jeder seinen Platz findet. Das helle, ger\u00e4umige Wohnzimmer l\u00e4dt zum Entspannen ein, w\u00e4hrend die drei komfortablen Schlafzimmer ruhige N\u00e4chte nach einem Tag voller Entdeckungen garantieren. F\u00fcr Familien und Freunde gedacht, bietet dieses Mobilheim Platz f\u00fcr bis zu 6 Personen unter besten Komfortbedingungen. Drau\u00dfen verl\u00e4ngern Sie die Geselligkeit auf der gro\u00dfen erh\u00f6hten Terrasse mit Plancha. Fr\u00fchst\u00fcck im Freien, Familienessen oder Sommerabende unter den Sternen: alles ist vorhanden, um Ihren Urlaub in einer au\u00dfergew\u00f6hnlichen Naturumgebung voll zu genie\u00dfen.<\/strong><\/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\":\"Florac\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7dd6a9bd2a2.png\",\"credit\":\"\",\"description\":\"Florac ist eine charmante kleine Stadt, nur 2,5 km vom Campingplatz Le Pont du Tarn entfernt. Sie ist bekannt f\\u00fcr ihre freundliche Atmosph\\u00e4re, lokale M\\u00e4rkte und den nahen Zugang zum C\\u00e9vennes-Nationalpark. Ein ausgezeichneter Ausgangspunkt, um die Region zu erkunden.\",\"city\":\"\",\"address\":\"\",\"km\":2.5,\"min\":5,\"lat\":44.3246156,\"lng\":3.5943317,\"tags\":[],\"fields\":[{\"label\":\"Stadtname\",\"value\":\"Florac\"},{\"label\":\"Stadtart (Stadt \\\/ D\\u00f6rfer \\\/ Weiler...)\",\"value\":\"Stadt\"},{\"label\":\"Abteilung\",\"value\":\"Loz\\u00e8re\"},{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"2.5\"},{\"label\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"5\"},{\"label\":\"Sehensw\\u00fcrdigkeiten\",\"value\":\"C\\u00e9vennes-Nationalpark, Donnerstagmorgenmarkt, Tarn-Fluss, Gorges du Tarn\"},{\"label\":\"Lieblingspl\\u00e4tze der Betreiber\",\"value\":\"Der lokale Donnerstagmorgenmarkt und Wanderungen im C\\u00e9vennes-Nationalpark\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Gibt es essentielle Gesch\\u00e4fte?\",\"answer\":\"Ja, Florac hat grundlegende Gesch\\u00e4fte wie einen Lebensmittelladen, eine B\\u00e4ckerei und lokale M\\u00e4rkte.\"},{\"question\":\"Wann ist die beste Zeit, die Stadt zu besichtigen?\",\"answer\":\"Der Fr\\u00fchling und der Sommer sind die besten Zeiten, um Florac zu besuchen, vor allem um die M\\u00e4rkte und Outdoor-Aktivit\\u00e4ten zu genie\\u00dfen.\"},{\"question\":\"O\\u00f9 manger sans se tromper ?\",\"answer\":\"Nous recommandons les restaurants proposant des sp\\u00e9cialit\\u00e9s locales comme le p\\u00e9lardon et la charcuterie c\\u00e9venole.\"},{\"question\":\"O\\u00f9 se garer facilement ?\",\"answer\":\"Le parking principal se trouve pr\\u00e8s du centre-ville avec des places gratuites et payantes.\"},{\"question\":\"Ist das Stadtzentrum barrierefrei f\\u00fcr Menschen mit Behinderungen und Kinderwagen?\",\"answer\":\"Ja, das Stadtzentrum ist leicht zug\\u00e4nglich f\\u00fcr Personen mit eingeschr\\u00e4nkter Mobilit\\u00e4t und Kinderwagen.\"},{\"question\":\"Was tun bei Regen in der Stadt?\",\"answer\":\"Lokale kleine Museen besuchen oder die \\u00fcberdachten Caf\\u00e9s und Gesch\\u00e4fte in der Innenstadt genie\\u00dfen.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":1,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Le Pont-de-Montvert\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7dd72255892.png\",\"credit\":\"\",\"description\":\"Le Pont-de-Montvert ist ein typisches C\\u00e9venol-Dorf ca. 15 km vom Camping entfernt. Es bietet eine authentische Umgebung mit seiner steinernen Br\\u00fccke und Kieselstr\\u00e4nden am Fluss.\",\"city\":\"\",\"address\":\"\",\"km\":15,\"min\":20,\"lat\":44.3632783,\"lng\":3.7453377,\"tags\":[],\"fields\":[{\"label\":\"Stadtname\",\"value\":\"Le Pont-de-Montvert\"},{\"label\":\"Stadtart (Stadt \\\/ D\\u00f6rfer \\\/ Weiler...)\",\"value\":\"Dorf\"},{\"label\":\"Abteilung\",\"value\":\"Loz\\u00e8re\"},{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"15\"},{\"label\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"20\"},{\"label\":\"Sehensw\\u00fcrdigkeiten\",\"value\":\"Historisches Dorf, Kieselstrand, Tarn-Fluss, Wochenmarkt\"},{\"label\":\"Lieblingspl\\u00e4tze der Betreiber\",\"value\":\"Pittorescher Strand unter der alten Br\\u00fccke und die Ruhe des Dorfes\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Gibt es wesentliche Gesch\\u00e4fte?\",\"answer\":\"Das Dorf verf\\u00fcgt \\u00fcber mehrere grundlegende Gesch\\u00e4fte, darunter einen Lebensmittelladen und eine lokale B\\u00e4ckerei.\"},{\"question\":\"Wann ist die beste Zeit, die Stadt zu besuchen?\",\"answer\":\"Der Sommer ist ideal, um die nat\\u00fcrlichen Str\\u00e4nde und M\\u00e4rkte zu genie\\u00dfen.\"},{\"question\":\"Wo kann man ohne Fehler essen?\",\"answer\":\"Die traditionellen Gasth\\u00e4user bieten schmackhafte C\\u00e9vennes-Gerichte, die man nicht verpassen sollte.\"},{\"question\":\"Wo kann man bequem parken?\",\"answer\":\"Parkpl\\u00e4tze sind in der N\\u00e4he des Dorfes vorhanden, oft kostenlos in der Nebensaison.\"},{\"question\":\"Ist das Stadtzentrum f\\u00fcr Behinderte und Kinderwagen zug\\u00e4nglich?\",\"answer\":\"Das Dorf hat enge Stra\\u00dfen, aber das Zentrum ist gr\\u00f6\\u00dftenteils zug\\u00e4nglich.\"},{\"question\":\"Was tun, wenn es in der Stadt regnet?\",\"answer\":\"Die lokale Kirche und kleine Handwerksl\\u00e4den besichtigen.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":2,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Saint-Jean-du-Gard\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7dd7f8486e5.png\",\"credit\":\"\",\"description\":\"Saint-Jean-du-Gard ist eine charmante c\\u00e9venole Stadt etwa 35 km vom Campingplatz entfernt. Mit ihrem reichen Erbe bietet sie zahlreiche kulturelle und Outdoor-Aktivit\\u00e4ten.\",\"city\":\"\",\"address\":\"\",\"km\":35,\"min\":1,\"lat\":44.1055556,\"lng\":3.8869444,\"tags\":[],\"fields\":[{\"label\":\"Stadtname\",\"value\":\"Saint-Jean-du-Gard\"},{\"label\":\"Stadtart (Stadt \\\/ D\\u00f6rfer \\\/ Weiler...)\",\"value\":\"Stadt\"},{\"label\":\"Abteilung\",\"value\":\"Gard\"},{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"35\"},{\"label\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"1 Stunde 15\"},{\"label\":\"Sehensw\\u00fcrdigkeiten\",\"value\":\"C\\u00e9venol Museum, Wanderwege, Altstadt, lokale Handwerkskunst\"},{\"label\":\"Lieblingspl\\u00e4tze der Betreiber\",\"value\":\"Das C\\u00e9venol-Museum und die Naturwanderwege\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Gibt es grundlegende Gesch\\u00e4fte?\",\"answer\":\"Ja, es gibt mehrere Gesch\\u00e4fte, darunter B\\u00e4ckereien, Lebensmittelgesch\\u00e4fte und Apotheken.\"},{\"question\":\"Wann ist die beste Zeit, um die Stadt zu besuchen?\",\"answer\":\"Fr\\u00fchling und Herbst, um die Menschenmassen zu vermeiden und das milde Klima zu genie\\u00dfen.\"},{\"question\":\"Wo kann man ohne Fehl greifen essen?\",\"answer\":\"Lokale Restaurants servieren typische regionale Gerichte aus frischen Produkten.\"},{\"question\":\"Wo kann man leicht parken?\",\"answer\":\"Der kommunale Parkplatz ist zentral und leicht zug\\u00e4nglich.\"},{\"question\":\"Ist das Stadtzentrum barrierefrei f\\u00fcr behinderte Menschen und Kinderwagen?\",\"answer\":\"Das Stadtzentrum ist gr\\u00f6\\u00dftenteils barrierefrei f\\u00fcr Menschen mit eingeschr\\u00e4nkter Mobilit\\u00e4t und Kinderwagen.\"},{\"question\":\"Was tun bei Regen in der Stadt?\",\"answer\":\"Das Museum besuchen oder an \\u00fcberdachten Handwerksworkshops teilnehmen.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":3,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Sainte-Enimie\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7dd87a16a33.png\",\"credit\":\"\",\"description\":\"Sainte-Enimie ist eines der sch\\u00f6nsten D\\u00f6rfer Frankreichs, etwa 25 km vom Campingplatz entfernt. Bekannt f\\u00fcr seine mittelalterlichen Gassen und den Zugang zu den Gorges du Tarn.\",\"city\":\"\",\"address\":\"\",\"km\":25,\"min\":30,\"lat\":44.3675,\"lng\":3.41194,\"tags\":[],\"fields\":[{\"label\":\"Stadtname\",\"value\":\"Sainte-Enimie\"},{\"label\":\"Stadtart (Stadt \\\/ D\\u00f6rfer \\\/ Weiler...)\",\"value\":\"Dorf\"},{\"label\":\"Abteilung\",\"value\":\"Loz\\u00e8re\"},{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"25\"},{\"label\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"30\"},{\"label\":\"Sehensw\\u00fcrdigkeiten\",\"value\":\"Mittelalterliches Dorf, Gorges du Tarn, Wanderwege, Kunsthandwerk\"},{\"label\":\"Lieblingspl\\u00e4tze der Betreiber\",\"value\":\"Die alten Gassen und die Panoramaaussicht auf die Gorges du Tarn\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Gibt es wichtige Gesch\\u00e4fte?\",\"answer\":\"Ja, kleine Lebensmittelgesch\\u00e4fte und Kunsthandwerksl\\u00e4den sind im Dorf vorhanden.\"},{\"question\":\"Wann ist die beste Zeit, um die Stadt zu besuchen?\",\"answer\":\"Der Sommer, um die Outdoor-Aktivit\\u00e4ten und lokalen Festivals vollst\\u00e4ndig zu genie\\u00dfen.\"},{\"question\":\"Wo unfallfrei essen?\",\"answer\":\"Die Restaurants im Dorf bieten traditionelle K\\u00fcche mit lokalen Produkten.\"},{\"question\":\"Wo kann man leicht parken?\",\"answer\":\"Es gibt geb\\u00fchrenpflichtige Parkpl\\u00e4tze am Eingang des Dorfes.\"},{\"question\":\"Ist das Stadtzentrum f\\u00fcr Menschen mit Behinderungen und Kinderwagen zug\\u00e4nglich?\",\"answer\":\"Die Barrierefreiheit ist teilweise aufgrund der gepflasterten und engen Gassen.\"},{\"question\":\"Was tun bei Regen in der Stadt?\",\"answer\":\"Lokale Kunsthandwerk entdecken und die Dorfkirche besuchen.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":4,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Meyrueis\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7dd8e5c4fe2.png\",\"credit\":\"\",\"description\":\"Meyrueis ist eine lebendige Stadt, die 18 km vom Camping entfernt liegt, mit reichem nat\\u00fcrlichen und kulturellem Erbe entlang der C\\u00e9vennes.\",\"city\":\"\",\"address\":\"\",\"km\":18,\"min\":25,\"lat\":44.17944,\"lng\":3.43028,\"tags\":[],\"fields\":[{\"label\":\"Stadtname\",\"value\":\"Meyrueis\"},{\"label\":\"Stadtart (Stadt \\\/ D\\u00f6rfer \\\/ Weiler...)\",\"value\":\"Stadt\"},{\"label\":\"Abteilung\",\"value\":\"Loz\\u00e8re\"},{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"18\"},{\"label\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"25\"},{\"label\":\"Sehensw\\u00fcrdigkeiten\",\"value\":\"Schluchten der Jonte, Wochenmarkt, H\\u00f6hlen, Wanderwege\"},{\"label\":\"Lieblingspl\\u00e4tze der Betreiber\",\"value\":\"Les visites guid\\u00e9es des grottes et les paysages naturels environnants\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Gibt es wesentliche Gesch\\u00e4fte?\",\"answer\":\"Ja, die Stadt verf\\u00fcgt \\u00fcber wichtige Gesch\\u00e4fte wie Supermarkt, B\\u00e4ckerei, Apotheke.\"},{\"question\":\"Wann ist die beste Zeit, um die Stadt zu besuchen?\",\"answer\":\"Fr\\u00fchling und Herbst, um Spazierg\\u00e4nge und die beruhigende Natur zu genie\\u00dfen.\"},{\"question\":\"Wo kann man ohne Fehl greifen essen?\",\"answer\":\"Traditionelle Restaurants mit regionalen Spezialit\\u00e4ten sind zu empfehlen.\"},{\"question\":\"Wo leicht parken?\",\"answer\":\"Einfaches Parken in \\u00f6ffentlichen Parkpl\\u00e4tzen in der N\\u00e4he des Stadtzentrums.\"},{\"question\":\"Ist das Stadtzentrum barrierefrei f\\u00fcr Menschen mit Behinderung und Kinderwagen?\",\"answer\":\"Das Stadtzentrum ist im Allgemeinen barrierefrei f\\u00fcr Menschen mit Behinderung und Kinderwagen.\"},{\"question\":\"Was tun bei Regen in der Stadt?\",\"answer\":\"Besuchen Sie gesch\\u00fctzte H\\u00f6hlen oder lokale Museen.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":5,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Naturbeobachtung im C\\u00e9vennes-Nationalpark\",\"image\":\"https:\\\/\\\/www.camping-florac.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/3-cameras-filment-en-direct-les-nids.jpg\",\"credit\":\"\",\"description\":\"Aktivit\\u00e4t zur Beobachtung der nat\\u00fcrlichen Sch\\u00e4tze des C\\u00e9vennes-Nationalparks, einschlie\\u00dflich Fauna, Flora und Landschaften, f\\u00fcr alle \\u00f6ffentlich zug\\u00e4nglich.\",\"city\":\"\",\"address\":\"\",\"km\":5,\"min\":10,\"lat\":44.3226,\"lng\":3.593,\"tags\":[],\"fields\":[{\"label\":\"Aktivit\\u00e4tsname\",\"value\":\"Naturbeobachtung im C\\u00e9vennes-Nationalpark\"},{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"5\"},{\"label\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"10\"},{\"label\":\"Art der Aktivit\\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Natur, Kultur\"},{\"label\":\"Zielgruppe (Familie, Kinder, Senior, Jugendliche, etc.)\",\"value\":\"Familie, Kinder, Senioren\"},{\"label\":\"Reservierung? (ja \\\/ nein)\",\"value\":\"non\"},{\"label\":\"\\u00d6ffnungszeiten\",\"value\":\"Frei, tags\\u00fcber\"},{\"label\":\"Informationen und Kontakt\",\"value\":\"Informationsb\\u00fcro des C\\u00e9vennes-Nationalparks, Florac\"},{\"label\":\"Gesprochene Sprachen\",\"value\":\"Franz\\u00f6sisch\"},{\"label\":\"Tiere akzeptiert (ja \\\/ nein)\",\"value\":\"oui\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Ist diese Aktivit\\u00e4t f\\u00fcr Anf\\u00e4nger geeignet?\",\"answer\":\"Ja, eine zug\\u00e4ngliche und p\\u00e4dagogische Aktivit\\u00e4t f\\u00fcr alle.\"},{\"question\":\"Was ist der durchschnittliche Preis?\",\"answer\":\"Kostenlos.\"},{\"question\":\"Ist diese Aktivit\\u00e4t bei schlechtem Wetter durchf\\u00fchrbar?\",\"answer\":\"Kann unter einem Unterstand oder drinnen (Ausstellungen) ausgef\\u00fchrt werden.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":6,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Florac Baumkronenpfad\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7dd96cd7290.jpg\",\"credit\":\"\",\"description\":\"Baumkronenpark mit mehreren Parcours in den B\\u00e4umen f\\u00fcr alle Niveaus, ideal f\\u00fcr Familien und Naturfreunde.\",\"city\":\"\",\"address\":\"\",\"km\":10,\"min\":15,\"lat\":44.5215,\"lng\":3.7439,\"tags\":[],\"fields\":[{\"label\":\"Aktivit\\u00e4tsname\",\"value\":\"Florac Baumkronenpfad\"},{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"10\"},{\"label\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"15\"},{\"label\":\"Art der Aktivit\\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Sport, Natur, Freizeit\"},{\"label\":\"Zielgruppe (Familie, Kinder, Senior, Jugendliche, etc.)\",\"value\":\"Familie, Kinder, Teenager\"},{\"label\":\"Reservierung? (ja \\\/ nein)\",\"value\":\"oui\"},{\"label\":\"\\u00d6ffnungszeiten\",\"value\":\"Von 10 bis 18 Uhr, Sommersaison\"},{\"label\":\"Informationen und Kontakt\",\"value\":\"Le Vallon du Villaret, Florac, contact@accrobranche-florac.fr\"},{\"label\":\"Gesprochene Sprachen\",\"value\":\"Franz\\u00f6sisch\"},{\"label\":\"Tiere akzeptiert (ja \\\/ nein)\",\"value\":\"non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Ist diese Aktivit\\u00e4t f\\u00fcr Anf\\u00e4nger geeignet?\",\"answer\":\"Ja, f\\u00fcr Anf\\u00e4nger werden einfache Parcours angeboten.\"},{\"question\":\"Was ist der Durchschnittspreis?\",\"answer\":\"Etwa 15 bis 25 Euro, je nach Alter und Parcours.\"},{\"question\":\"Ist diese Aktivit\\u00e4t bei schlechtem Wetter durchf\\u00fchrbar?\",\"answer\":\"Nein, der Park ist bei schlechtem Wetter geschlossen.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":7,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Wandern auf dem GR 70 Stevenson-Pfad\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7dd9f4d2dfe.png\",\"credit\":\"\",\"description\":\"Ikonischer Wanderweg, zug\\u00e4nglich f\\u00fcr Liebhaber aller Niveaus, erm\\u00f6glicht die Entdeckung der vielf\\u00e4ltigen Landschaften der C\\u00e9vennes und der umliegenden Natur. Ideal f\\u00fcr Familien und Wanderbegeisterte.\",\"city\":\"\",\"address\":\"\",\"km\":0,\"min\":0,\"lat\":null,\"lng\":null,\"tags\":[],\"fields\":[{\"label\":\"Aktivit\\u00e4tsname\",\"value\":\"Wandern auf dem GR 70 Stevenson-Pfad\"},{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"0\"},{\"label\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"0\"},{\"label\":\"Art der Aktivit\\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Natur, Sport\"},{\"label\":\"Zielgruppe (Familie, Kinder, Senior, Jugendliche, etc.)\",\"value\":\"Familie, Teenager, Senior\"},{\"label\":\"Reservierung? (ja \\\/ nein)\",\"value\":\"non\"},{\"label\":\"\\u00d6ffnungszeiten\",\"value\":\"Ganzj\\u00e4hrig, flexibel\"},{\"label\":\"Informationen und Kontakt\",\"value\":\"Tourismusb\\u00fcro C\\u00e9vennes, Florac\"},{\"label\":\"Gesprochene Sprachen\",\"value\":\"Franz\\u00f6sisch\"},{\"label\":\"Tiere akzeptiert (ja \\\/ nein)\",\"value\":\"oui\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Ist diese Aktivit\\u00e4t f\\u00fcr Anf\\u00e4nger geeignet?\",\"answer\":\"Ja, dieser Weg ist gut f\\u00fcr Anf\\u00e4nger geeignet und bietet leichte Etappen.\"},{\"question\":\"Was ist der Durchschnittspreis?\",\"answer\":\"Der Zugang zum Weg ist kostenlos.\"},{\"question\":\"Ist diese Aktivit\\u00e4t bei schlechtem Wetter durchf\\u00fchrbar?\",\"answer\":\"Bei starken Regenf\\u00e4llen oder Gewittern aus Sicherheitsgr\\u00fcnden zu vermeiden.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":8,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Cano\\u00eb-Kajak auf dem Tarn bei Saint Enimie\",\"image\":\"https:\\\/\\\/www.camping-florac.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/canyon-gorges-du-tarn-scaled-1.jpg\",\"credit\":\"\",\"description\":\"Abfahrt mit dem Kanu-Kajak auf dem Fluss Tarn, zug\\u00e4nglich f\\u00fcr die \\u00d6ffentlichkeit mit verschiedenen geeigneten Niveaus und bietet eine einzigartige Aussicht auf die Gorges du Tarn.\",\"city\":\"\",\"address\":\"\",\"km\":25,\"min\":30,\"lat\":44.3287,\"lng\":3.364,\"tags\":[],\"fields\":[{\"label\":\"Aktivit\\u00e4tsname\",\"value\":\"Cano\\u00eb-Kajak auf dem Tarn bei Saint Enimie\"},{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"25\"},{\"label\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"30\"},{\"label\":\"Art der Aktivit\\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Sport, Natur\"},{\"label\":\"Zielgruppe (Familie, Kinder, Senior, Jugendliche, etc.)\",\"value\":\"Familie, Teenager, Erwachsene\"},{\"label\":\"Reservierung? (ja \\\/ nein)\",\"value\":\"oui\"},{\"label\":\"\\u00d6ffnungszeiten\",\"value\":\"Von 9 Uhr bis 18 Uhr, saisonabh\\u00e4ngig\"},{\"label\":\"Informationen und Kontakt\",\"value\":\"C\\u00e9vennes \\u00c9vasion, Saint Enimie, contact@cevennes-evasion.fr\"},{\"label\":\"Gesprochene Sprachen\",\"value\":\"Franz\\u00f6sisch, Englisch\"},{\"label\":\"Tiere akzeptiert (ja \\\/ nein)\",\"value\":\"non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Ist diese Aktivit\\u00e4t f\\u00fcr Anf\\u00e4nger geeignet?\",\"answer\":\"Ja, es gibt Einsteigerangebote mit Betreuung.\"},{\"question\":\"Was ist der durchschnittliche Preis?\",\"answer\":\"Etwa 20 bis 40 Euro, abh\\u00e4ngig von Dauer und gew\\u00e4hlter Option.\"},{\"question\":\"Ist diese Aktivit\\u00e4t bei schlechtem Wetter durchf\\u00fchrbar?\",\"answer\":\"Nein, sie wird bei schlechtem Wetter oder Hochwasser ausgesetzt.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":9,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Klettern in den Gorges du Tarn\",\"image\":\"https:\\\/\\\/www.camping-florac.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/canyon-gorges-du-tarn-scaled-1.jpg\",\"credit\":\"\",\"description\":\"Renommierter Kletterspot mit vielen Routen f\\u00fcr verschiedene Niveaus. Sport- und Abenteuergeschehen in einem au\\u00dfergew\\u00f6hnlichen Naturraum.\",\"city\":\"\",\"address\":\"\",\"km\":15,\"min\":20,\"lat\":44.3287,\"lng\":3.364,\"tags\":[],\"fields\":[{\"label\":\"Aktivit\\u00e4tsname\",\"value\":\"Klettern in den Gorges du Tarn\"},{\"label\":\"Entfernung vom Campingplatz (km)\",\"value\":\"15\"},{\"label\":\"Fahrzeit vom Campingplatz (Min)\",\"value\":\"20\"},{\"label\":\"Art der Aktivit\\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Sport, Natur, Abenteuer\"},{\"label\":\"Zielgruppe (Familie, Kinder, Senior, Jugendliche, etc.)\",\"value\":\"Jugendliche, Erwachsene\"},{\"label\":\"Reservierung? (ja \\\/ nein)\",\"value\":\"non\"},{\"label\":\"\\u00d6ffnungszeiten\",\"value\":\"Von 8 bis 19 Uhr, das ganze Jahr\"},{\"label\":\"Informationen und Kontakt\",\"value\":\"Informationsb\\u00fcro des Parc National des C\\u00e9vennes\"},{\"label\":\"Gesprochene Sprachen\",\"value\":\"Franz\\u00f6sisch\"},{\"label\":\"Tiere akzeptiert (ja \\\/ nein)\",\"value\":\"non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Ist diese Aktivit\\u00e4t f\\u00fcr Anf\\u00e4nger geeignet?\",\"answer\":\"F\\u00fcr Anf\\u00e4nger wird Betreuung empfohlen.\"},{\"question\":\"Was ist der Durchschnittspreis?\",\"answer\":\"Freier Zutritt, kostenpflichtige Ausr\\u00fcstungsvermietung.\"},{\"question\":\"Ist diese Aktivit\\u00e4t bei schlechtem Wetter durchf\\u00fchrbar?\",\"answer\":\"Nein, bei Regen oder Sturm nicht empfohlen.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":10,\"featurable\":true,\"type\":\"espace-aquatique\",\"name\":\"Wasserbereich des Camping le Pont du Tarn\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6accb04de779e.jpg\",\"credit\":\"\",\"description\":\"Der Wasserbereich des Camping le Pont du Tarn bietet eine Lagunen-Atmosph\\u00e4re mit mehreren Becken f\\u00fcr alle Altersgruppen und Bed\\u00fcrfnisse. Hier gibt es ein beheiztes Planschbecken f\\u00fcr Kleinkinder, ein Lagunenbecken zum Abk\\u00fchlen, ein Schwimmbecken sowie einen Balneobereich mit Whirlpool-B\\u00e4dern zur Entspannung. Das Wasser wird auf etwa 26\\u00b0C beheizt und der Bereich ist von Mitte Mai bis Mitte September ge\\u00f6ffnet, abh\\u00e4ngig vom Wetter. Er ist mit Rutschen und Wasserspielen ausgestattet und abends beleuchtet, um die Badezeit zu verl\\u00e4ngern. Die Solarium-Liegefl\\u00e4che l\\u00e4dt zur Erholung ein, mit verf\\u00fcgbaren Sonnenliegen im Freien.\",\"city\":\"\",\"address\":\"Route du Pont de Montvert, 48400 Florac-Trois-Rivi\\u00e8res\",\"km\":null,\"min\":null,\"lat\":44.2534,\"lng\":3.6411,\"tags\":[],\"fields\":[{\"label\":\"Modell\",\"value\":\"Wasserbereich des Camping le Pont du Tarn\"},{\"label\":\"Hauptausstattung\",\"value\":\"Une pataugeoire chauff\\u00e9e, trois toboggans, une piscine lagon, une piscine de nage, un espace baln\\u00e9o avec bains bouillonnants, solarium avec transats, jeux aquatiques, \\u00e9clairage nocturne.\"},{\"label\":\"\\u00d6ffnungszeiten\",\"value\":\"10h00 \\u00e0 19h00\"},{\"label\":\"Adresse\",\"value\":\"Route du Pont de Montvert, 48400 Florac-Trois-Rivi\\u00e8res\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Wie hoch sind die Geb\\u00fchren f\\u00fcr den Zugang zum Wasserbereich?\",\"answer\":\"Der Zugang zum Wasserbereich ist im Campingaufenthalt inbegriffen, ohne zus\\u00e4tzliche Kosten.\"},{\"question\":\"Wie sind die Zugangsvoraussetzungen zum Wasserbereich?\",\"answer\":\"Das Tragen von Badeshorts ist nicht erlaubt, das Tragen einer Badekappe ist nicht obligatorisch. Der Zugang erfordert ein Armband. Kinder m\\u00fcssen begleitet werden.\"},{\"question\":\"Gibt es ein Mindestalter f\\u00fcr die Nutzung des Wasserbereichs?\",\"answer\":\"Kinder k\\u00f6nnen den Wasserbereich betreten, m\\u00fcssen aber von einem Erwachsenen begleitet werden. Kein strenges Mindestalter, aber das Kleinkindbecken ist f\\u00fcr kleine Kinder konzipiert.\"},{\"question\":\"Um wieviel Uhr schlie\\u00dft der Wasserbereich jeden Tag?\",\"answer\":\"Der Wasserbereich schlie\\u00dft jeden Tag um 19:00 Uhr.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6accb07eb6524.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6accb07f77a94.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6accb0807760d.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6accb0810a200.jpg\"]},{\"id\":11,\"featurable\":true,\"type\":\"infos-pratiques\",\"name\":\"Mobil-home Oasis Premium 35m\\u00b2 - 2 chambres \\nOffrez-vous une parenth\\u00e8se de confort dans notre mobil-home Oasis Premium 2 chambres, un h\\u00e9bergement spacieux et raffin\\u00e9 de 35 m\\u00b2, id\\u00e9al pour les couples, les familles ou les amis en qu\\u00eate de vacances tout confort. Pens\\u00e9 pour conjuguer \\u00e9l\\u00e9gance et praticit\\u00e9, il s\\u00e9duit par ses lignes contemporaines, ses \\u00e9quipements de qualit\\u00e9 et ses espaces g\\u00e9n\\u00e9reusement am\\u00e9nag\\u00e9s. Son int\\u00e9rieur lumineux cr\\u00e9e une atmosph\\u00e8re accueillante o\\u00f9 il fait bon se retrouver apr\\u00e8s une journ\\u00e9e de baignade, de randonn\\u00e9e ou de d\\u00e9couverte des C\\u00e9vennes. Les deux chambres offrent un cadre reposant et fonctionnel, tandis que la vaste pi\\u00e8ce de vie invite \\u00e0 partager des moments privil\\u00e9gi\\u00e9s en toute simplicit\\u00e9. \\u00c0 l'ext\\u00e9rieur, profitez pleinement de la douceur du climat c\\u00e9venol gr\\u00e2ce \\u00e0 sa grande terrasse sur\\u00e9lev\\u00e9e \\u00e9quip\\u00e9e d'une plancha. Un v\\u00e9ritable espace de vie suppl\\u00e9mentaire pour savourer vos repas en plein air, vous d\\u00e9tendre ou simplement appr\\u00e9cier le calme de la nature environnante.\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6accab60cda81.png\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":null,\"lng\":null,\"tags\":[],\"fields\":[{\"label\":\"Modell\",\"value\":\"Mobil-home Oasis Premium 35m\\u00b2 - 2 chambres \\nOffrez-vous une parenth\\u00e8se de confort dans notre mobil-home Oasis Premium 2 chambres, un h\\u00e9bergement spacieux et raffin\\u00e9 de 35 m\\u00b2, id\\u00e9al pour les couples, les familles ou les amis en qu\\u00eate de vacances tout confort. Pens\\u00e9 pour conjuguer \\u00e9l\\u00e9gance et praticit\\u00e9, il s\\u00e9duit par ses lignes contemporaines, ses \\u00e9quipements de qualit\\u00e9 et ses espaces g\\u00e9n\\u00e9reusement am\\u00e9nag\\u00e9s. Son int\\u00e9rieur lumineux cr\\u00e9e une atmosph\\u00e8re accueillante o\\u00f9 il fait bon se retrouver apr\\u00e8s une journ\\u00e9e de baignade, de randonn\\u00e9e ou de d\\u00e9couverte des C\\u00e9vennes. Les deux chambres offrent un cadre reposant et fonctionnel, tandis que la vaste pi\\u00e8ce de vie invite \\u00e0 partager des moments privil\\u00e9gi\\u00e9s en toute simplicit\\u00e9. \\u00c0 l'ext\\u00e9rieur, profitez pleinement de la douceur du climat c\\u00e9venol gr\\u00e2ce \\u00e0 sa grande terrasse sur\\u00e9lev\\u00e9e \\u00e9quip\\u00e9e d'une plancha. Un v\\u00e9ritable espace de vie suppl\\u00e9mentaire pour savourer vos repas en plein air, vous d\\u00e9tendre ou simplement appr\\u00e9cier le calme de la nature environnante. \"},{\"label\":\"Fl\\u00e4che (m\\u00b2)\",\"value\":\"35\"},{\"label\":\"Anzahl der Zimmer\",\"value\":\"2\"},{\"label\":\"Anzahl der Badezimmer\",\"value\":\"1\"},{\"label\":\"Hauptausstattung\",\"value\":\"Cuisine \\u00e9quip\\u00e9e, terrasse couverte semi-couverte, lave-vaisselle, climatisation, plancha, mobilier de jardin, chauffage, Wi-Fi gratuit\"},{\"label\":\"Ungef\\u00e4hrer Preis\",\"value\":\"De 46 \\u20ac \\u00e0 247 \\u20ac par jour suivant la p\\u00e9riode.\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6accabda5f229.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6accabdb10279.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6accabdbbeded.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6accabdc5de08.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6accabdcb2638.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6accabdd32ca2.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6accabdd7f937.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6accabdda688b.jpg\"]},{\"id\":12,\"featurable\":true,\"type\":\"infos-pratiques\",\"name\":\"37m\\u00b2 Oasis Premium Mobilheim - 3 Schlafzimmer\\nLassen Sie sich von Oasis Premium verzaubern, unserer neuen Generation von Mobilheimen, die Komfort, Raum und Modernit\\u00e4t im Herzen der C\\u00e9vennes vereinen. Mit seinem zeitgen\\u00f6ssischen Design, hochwertiger Ausstattung und gro\\u00dfz\\u00fcgigen Volumen bietet Oasis Premium eine warme Urlaubsatmosph\\u00e4re, in der jeder seinen Platz findet. Das helle, ger\\u00e4umige Wohnzimmer l\\u00e4dt zum Entspannen ein, w\\u00e4hrend die drei komfortablen Schlafzimmer ruhige N\\u00e4chte nach einem Tag voller Entdeckungen garantieren. F\\u00fcr Familien und Freunde gedacht, bietet dieses Mobilheim Platz f\\u00fcr bis zu 6 Personen unter besten Komfortbedingungen. Drau\\u00dfen verl\\u00e4ngern Sie die Geselligkeit auf der gro\\u00dfen erh\\u00f6hten Terrasse mit Plancha. Fr\\u00fchst\\u00fcck im Freien, Familienessen oder Sommerabende unter den Sternen: alles ist vorhanden, um Ihren Urlaub in einer au\\u00dfergew\\u00f6hnlichen Naturumgebung voll zu genie\\u00dfen.\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6acca457ad4ab.png\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":null,\"lng\":null,\"tags\":[],\"fields\":[{\"label\":\"Modell\",\"value\":\"37m\\u00b2 Oasis Premium Mobilheim - 3 Schlafzimmer\\nLassen Sie sich von Oasis Premium verzaubern, unserer neuen Generation von Mobilheimen, die Komfort, Raum und Modernit\\u00e4t im Herzen der C\\u00e9vennes vereinen. Mit seinem zeitgen\\u00f6ssischen Design, hochwertiger Ausstattung und gro\\u00dfz\\u00fcgigen Volumen bietet Oasis Premium eine warme Urlaubsatmosph\\u00e4re, in der jeder seinen Platz findet. Das helle, ger\\u00e4umige Wohnzimmer l\\u00e4dt zum Entspannen ein, w\\u00e4hrend die drei komfortablen Schlafzimmer ruhige N\\u00e4chte nach einem Tag voller Entdeckungen garantieren. F\\u00fcr Familien und Freunde gedacht, bietet dieses Mobilheim Platz f\\u00fcr bis zu 6 Personen unter besten Komfortbedingungen. Drau\\u00dfen verl\\u00e4ngern Sie die Geselligkeit auf der gro\\u00dfen erh\\u00f6hten Terrasse mit Plancha. Fr\\u00fchst\\u00fcck im Freien, Familienessen oder Sommerabende unter den Sternen: alles ist vorhanden, um Ihren Urlaub in einer au\\u00dfergew\\u00f6hnlichen Naturumgebung voll zu genie\\u00dfen.\"},{\"label\":\"Fl\\u00e4che (m\\u00b2)\",\"value\":\"37 m\\u00b2\"},{\"label\":\"Anzahl der Zimmer\",\"value\":\"3\"},{\"label\":\"Anzahl der Badezimmer\",\"value\":\"1\"},{\"label\":\"Hauptausstattung\",\"value\":\"Voll ausgestattete K\\u00fcche, halb\\u00fcberdachte Terrasse, Fernseher, Geschirrsp\\u00fcler, Klimaanlage, Plancha, Gartenm\\u00f6bel, Heizung, kostenloses WLAN\"},{\"label\":\"Ungef\\u00e4hrer Preis\",\"value\":\"De 96 \\u20ac \\u00e0 256 \\u20ac par jour suivant la p\\u00e9riode\"}],\"link\":\"https:\\\/\\\/www.camping-florac.com\\\/location-mobil-home-lozere\\\/\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6acca75ec6b66.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6acca75fb2a01.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6acca75fe3ff2.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6acca9e7bd183.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6accaa051a888.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6accaa12ebbb0.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6accaa27138db.jpg\",\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/corpus_gallery\\\/gallery_6accaa406ada9.jpg\"]}];\n    var CATS = {\"villes-aux-alentours\":{\"key\":\"villes-aux-alentours\",\"label\":\"Villes aux alentours\",\"adhoc\":false,\"color\":\"#c2410c\",\"count\":5,\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7dd6a9bd2a2.png\"},\"activites-aux-alentours\":{\"key\":\"activites-aux-alentours\",\"label\":\"Activit\\u00e9s aux alentours \",\"adhoc\":false,\"color\":\"#2563eb\",\"count\":5,\"image\":\"https:\\\/\\\/www.camping-florac.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/3-cameras-filment-en-direct-les-nids.jpg\"},\"espace-aquatique\":{\"key\":\"espace-aquatique\",\"label\":\"Wasserspielplatz\",\"adhoc\":false,\"color\":\"#15803d\",\"count\":1,\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6accb04de779e.jpg\"},\"infos-pratiques\":{\"key\":\"infos-pratiques\",\"label\":\"Praktische Infos\",\"adhoc\":true,\"color\":\"#be185d\",\"count\":2,\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6accab60cda81.png\"}};\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":""},"class_list":["post-8895","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 - Camping Pont du Tarn<\/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.camping-florac.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 - Camping Pont du Tarn\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.camping-florac.com\/de\/elaia-metadatas\/\" \/>\n<meta property=\"og:site_name\" content=\"Camping Pont du Tarn\" \/>\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.camping-florac.com\\\/de\\\/elaia-metadatas\\\/\",\"url\":\"https:\\\/\\\/www.camping-florac.com\\\/de\\\/elaia-metadatas\\\/\",\"name\":\"Entdecken Sie die Umgebung - Camping Pont du Tarn\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.camping-florac.com\\\/de\\\/#website\"},\"datePublished\":\"2026-10-20T10:12:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.camping-florac.com\\\/de\\\/elaia-metadatas\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.camping-florac.com\\\/de\\\/elaia-metadatas\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.camping-florac.com\\\/de\\\/elaia-metadatas\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Camping Loz\u00e8re\",\"item\":\"https:\\\/\\\/www.camping-florac.com\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Entdecken Sie die Umgebung\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.camping-florac.com\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.camping-florac.com\\\/de\\\/\",\"name\":\"Camping Pont du Tarn\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.camping-florac.com\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Entdecken Sie die Umgebung - Camping Pont du Tarn","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.camping-florac.com\/de\/elaia-metadatas\/","og_locale":"de_DE","og_type":"article","og_title":"Entdecken Sie die Umgebung - Camping Pont du Tarn","og_url":"https:\/\/www.camping-florac.com\/de\/elaia-metadatas\/","og_site_name":"Camping Pont du Tarn","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.camping-florac.com\/de\/elaia-metadatas\/","url":"https:\/\/www.camping-florac.com\/de\/elaia-metadatas\/","name":"Entdecken Sie die Umgebung - Camping Pont du Tarn","isPartOf":{"@id":"https:\/\/www.camping-florac.com\/de\/#website"},"datePublished":"2026-10-20T10:12:48+00:00","breadcrumb":{"@id":"https:\/\/www.camping-florac.com\/de\/elaia-metadatas\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.camping-florac.com\/de\/elaia-metadatas\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.camping-florac.com\/de\/elaia-metadatas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Camping Loz\u00e8re","item":"https:\/\/www.camping-florac.com\/de\/"},{"@type":"ListItem","position":2,"name":"Entdecken Sie die Umgebung"}]},{"@type":"WebSite","@id":"https:\/\/www.camping-florac.com\/de\/#website","url":"https:\/\/www.camping-florac.com\/de\/","name":"Camping Pont du Tarn","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.camping-florac.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"}]}},"_links":{"self":[{"href":"https:\/\/www.camping-florac.com\/de\/wp-json\/wp\/v2\/pages\/8895","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.camping-florac.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.camping-florac.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.camping-florac.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.camping-florac.com\/de\/wp-json\/wp\/v2\/comments?post=8895"}],"version-history":[{"count":1,"href":"https:\/\/www.camping-florac.com\/de\/wp-json\/wp\/v2\/pages\/8895\/revisions"}],"predecessor-version":[{"id":8896,"href":"https:\/\/www.camping-florac.com\/de\/wp-json\/wp\/v2\/pages\/8895\/revisions\/8896"}],"wp:attachment":[{"href":"https:\/\/www.camping-florac.com\/de\/wp-json\/wp\/v2\/media?parent=8895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}