{"id":2363,"date":"2026-10-20T12:15:25","date_gmt":"2026-10-20T10:15:25","guid":{"rendered":"https:\/\/www.camping-tournon.fr\/elaia-metadatas-2\/"},"modified":"2026-10-20T12:15:25","modified_gmt":"2026-10-20T10:15:25","slug":"elaia-metadatas","status":"publish","type":"page","link":"https:\/\/www.camping-tournon.fr\/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\":\"Activit\u00e9s aux alentours \",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Besuche in den Weinbergen der n\u00f6rdlichen Rh\u00f4ne-T\u00e4ler\",\"description\":\"Entdecken Sie die prestigetr\u00e4chtigen regionale Bezeichnungen: Condrieu, Croze Hermitage, Hermitage, Saint Joseph, Cornas, Saint P\u00e9ray. Sie k\u00f6nnen mehrere renommierte Weing\u00fcter wie Chapoutier, Cave de Tain, Delas, Domaine Jaboulet A\u00een\u00e9 besuchen und verkosten.\",\"image\":\"https:\/\/www.camping-tournon.fr\/wp-content\/uploads\/2021\/03\/camping-tournon-cta-vignoble.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":45.054155,\"longitude\":4.815476},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name der Aktivit\u00e4t\",\"value\":\"Besuche in den Weinbergen der n\u00f6rdlichen Rh\u00f4ne-T\u00e4ler\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Camping (km)\",\"value\":\"0\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"5\"},{\"@type\":\"PropertyValue\",\"name\":\"Art der Aktivit\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Gastronomie, Kultur\"},{\"@type\":\"PropertyValue\",\"name\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Erwachsene\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung? (ja \/ nein)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00d6ffnungszeiten\",\"value\":\"Je nach Weingut in der Regel von 9 bis 18 Uhr\"},{\"@type\":\"PropertyValue\",\"name\":\"Informationen und Kontakt\",\"value\":\"Lokale Weing\u00fcter, Touristeninformation\"},{\"@type\":\"PropertyValue\",\"name\":\"Gesprochene Sprachen\",\"value\":\"Franz\u00f6sisch, Englisch\"},{\"@type\":\"PropertyValue\",\"name\":\"Tiere erlaubt (ja \/ nein)\",\"value\":\"non\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"La Cit\u00e9 du Chocolat Valrhona\",\"description\":\"Dieser sinnliche Erlebnisraum ist dem Schokolade gewidmet. Die ValRh\u00f4na Schokoladenfabrik ist das ganze Jahr ge\u00f6ffnet, 7 Tage die Woche. Sie entdecken alle Geheimnisse der Schokolade und k\u00f6nnen im Laden probieren und einkaufen.\",\"image\":\"https:\/\/www.camping-tournon.fr\/wp-content\/uploads\/2021\/03\/cite-chocolat.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":45.0687,\"longitude\":4.84352},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name der Aktivit\u00e4t\",\"value\":\"La Cit\u00e9 du Chocolat Valrhona\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Camping (km)\",\"value\":\"1\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"10 (zu Fu\u00df)\"},{\"@type\":\"PropertyValue\",\"name\":\"Art der Aktivit\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Kultur, Gastronomie\"},{\"@type\":\"PropertyValue\",\"name\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Familie, Kinder, Erwachsene\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung? (ja \/ nein)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00d6ffnungszeiten\",\"value\":\"Jeden Tag, variable Zeiten je nach Saison\"},{\"@type\":\"PropertyValue\",\"name\":\"Informationen und Kontakt\",\"value\":\"Kontakt \u00fcber ValRh\u00f4na Schokoladenfabrik, Tournon sur Rh\u00f4ne\"},{\"@type\":\"PropertyValue\",\"name\":\"Gesprochene Sprachen\",\"value\":\"Franz\u00f6sisch, Englisch\"},{\"@type\":\"PropertyValue\",\"name\":\"Tiere erlaubt (ja \/ nein)\",\"value\":\"non\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Zug der Ard\u00e8che\",\"description\":\"Dieser historische Zug, fr\u00fcher Mastrou genannt, bietet eine unvergessliche Reise zwischen Saint-Jean-de-Muzols und Lamastre durch die wundersch\u00f6nen Gorges du Doux. Es ist ein freundliches Erlebnis, das man mit Familie oder Freunden machen kann.\",\"image\":\"https:\/\/www.camping-tournon.fr\/wp-content\/uploads\/2021\/03\/train-gare-e1616508090441.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":45.0588806,\"longitude\":4.8374176},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name der Aktivit\u00e4t\",\"value\":\"Zug der Ard\u00e8che\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Camping (km)\",\"value\":\"8\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"10\"},{\"@type\":\"PropertyValue\",\"name\":\"Art der Aktivit\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Kultur, Tourismus\"},{\"@type\":\"PropertyValue\",\"name\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Familie, Erwachsene, Senioren\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung? (ja \/ nein)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00d6ffnungszeiten\",\"value\":\"Saisonabh\u00e4ngig, Kontakt zum Veranstalter\"},{\"@type\":\"PropertyValue\",\"name\":\"Informationen und Kontakt\",\"value\":\"Train der Ard\u00e8che, Saint-Jean-de-Muzols\"},{\"@type\":\"PropertyValue\",\"name\":\"Gesprochene Sprachen\",\"value\":\"Franz\u00f6sisch\"},{\"@type\":\"PropertyValue\",\"name\":\"Tiere erlaubt (ja \/ nein)\",\"value\":\"non\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Le Canotier Boot\",\"description\":\"Dieses Sightseeing-Schiff zeigt Ihnen die Sch\u00f6nheit des Rhonetals. Es akzeptiert Fahrr\u00e4der an Bord und erm\u00f6glicht die R\u00fcckkehr via ViaRh\u00f4na. Themenfahrten, inklusive Aperitifs, Mahlzeiten oder Fr\u00fchst\u00fcck, werden angeboten.\",\"image\":\"https:\/\/www.camping-tournon.fr\/wp-content\/uploads\/2021\/03\/bateau-roue-drome-e1616507882416.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":45.0670649,\"longitude\":4.839735},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name der Aktivit\u00e4t\",\"value\":\"Le Canotier Boot\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Camping (km)\",\"value\":\"0\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"0\"},{\"@type\":\"PropertyValue\",\"name\":\"Art der Aktivit\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Freizeit, Natur\"},{\"@type\":\"PropertyValue\",\"name\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Familie, Erwachsene\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung? (ja \/ nein)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00d6ffnungszeiten\",\"value\":\"Themenfahrten mit variablen Zeiten je nach Programm\"},{\"@type\":\"PropertyValue\",\"name\":\"Informationen und Kontakt\",\"value\":\"Reservierungen ab Tournon, Kontakt Camping oder lokaler Bootsmann\"},{\"@type\":\"PropertyValue\",\"name\":\"Gesprochene Sprachen\",\"value\":\"Franz\u00f6sisch\"},{\"@type\":\"PropertyValue\",\"name\":\"Tiere erlaubt (ja \/ nein)\",\"value\":\"non\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"La ViaRh\u00f4na\",\"description\":\"La ViaRh\u00f4na ist eine Radroute, die den Genfersee mit dem Mittelmeer verbindet und dem Rh\u00f4ne-Fluss folgt. Sie bietet au\u00dfergew\u00f6hnliche Landschaften und ist sowohl f\u00fcr Sportler als auch f\u00fcr Enthusiasten geeignet. Die Radroute erm\u00f6glicht Spazierg\u00e4nge von wenigen Stunden bis zu mehreren Tagen. Das Le Rh\u00f4ne Camping liegt ideal an dieser Route f\u00fcr eine bequeme Pause.\",\"image\":\"https:\/\/www.camping-tournon.fr\/wp-content\/uploads\/2021\/03\/camping-tournon-cta-velo-route.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":45.054155,\"longitude\":4.815476},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name der Aktivit\u00e4t\",\"value\":\"La ViaRh\u00f4na\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Camping (km)\",\"value\":\"0\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"0\"},{\"@type\":\"PropertyValue\",\"name\":\"Art der Aktivit\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Sport\"},{\"@type\":\"PropertyValue\",\"name\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Familie, Erwachsener, Senior\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung? (ja \/ nein)\",\"value\":\"non\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00d6ffnungszeiten\",\"value\":\"Ganzj\u00e4hrig zug\u00e4nglich\"},{\"@type\":\"PropertyValue\",\"name\":\"Informationen und Kontakt\",\"value\":\"Weitere Informationen an der Camping-Rezeption oder unter www.camping-tournon.fr\"},{\"@type\":\"PropertyValue\",\"name\":\"Gesprochene Sprachen\",\"value\":\"Franz\u00f6sisch, Englisch\"},{\"@type\":\"PropertyValue\",\"name\":\"Tiere erlaubt (ja \/ nein)\",\"value\":\"oui\"}]}},{\"@type\":\"ListItem\",\"position\":6,\"item\":{\"@type\":\"Thing\",\"name\":\"V\u00e9lorail\",\"description\":\"Le v\u00e9lorail consiste en des voiturettes \u00e0 p\u00e9dales sur rail. Cette activit\u00e9 conviviale permet de d\u00e9couvrir la Vall\u00e9e du Doux en famille ou entre amis. Deux parcours sont propos\u00e9s au d\u00e9part de Boucieu le Roi, village de caract\u00e8re.\",\"image\":\"https:\/\/www.camping-tournon.fr\/wp-content\/uploads\/2021\/03\/velorail-doux-areche.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":45.0617301,\"longitude\":4.8429966},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name der Aktivit\u00e4t\",\"value\":\"V\u00e9lorail\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Camping (km)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Art der Aktivit\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Sport, Nature\"},{\"@type\":\"PropertyValue\",\"name\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Famille, Adultes\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung? (ja \/ nein)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00d6ffnungszeiten\",\"value\":\"De 9h \u00e0 18h, selon saison\"},{\"@type\":\"PropertyValue\",\"name\":\"Informationen und Kontakt\",\"value\":\"R\u00e9servation au d\u00e9part de Boucieu le Roi\"},{\"@type\":\"PropertyValue\",\"name\":\"Gesprochene Sprachen\",\"value\":\"Fran\u00e7ais\"},{\"@type\":\"PropertyValue\",\"name\":\"Tiere erlaubt (ja \/ nein)\",\"value\":\"non\"}]}},{\"@type\":\"ListItem\",\"position\":7,\"item\":{\"@type\":\"Thing\",\"name\":\"Zoo und Safari von Peaugres\",\"description\":\"40 Minuten vom Campingplatz entfernt, ist dieser Zoo der gr\u00f6\u00dfte in Rh\u00f4ne-Alpes mit fast 1000 Tieren. Der Besuch umfasst eine Autofahrt-Safari gefolgt von einem Spaziergang. Im Sommer ist ein Wasserbereich f\u00fcr Kinder und Erwachsene zug\u00e4nglich.\",\"image\":\"https:\/\/www.camping-tournon.fr\/wp-content\/uploads\/2021\/03\/camping-tournon-cta-safari.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":45.2691,\"longitude\":4.717},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name der Aktivit\u00e4t\",\"value\":\"Zoo und Safari von Peaugres\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Camping (km)\",\"value\":\"40\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"40\"},{\"@type\":\"PropertyValue\",\"name\":\"Art der Aktivit\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Natur, Familie\"},{\"@type\":\"PropertyValue\",\"name\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Familie, Kinder, Erwachsene\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung? (ja \/ nein)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00d6ffnungszeiten\",\"value\":\"Von 9 bis 19 Uhr im Sommer und eingeschr\u00e4nkte \u00d6ffnungszeiten in anderen Jahreszeiten\"},{\"@type\":\"PropertyValue\",\"name\":\"Informationen und Kontakt\",\"value\":\"Zoo de Peaugres, offizielle Website\"},{\"@type\":\"PropertyValue\",\"name\":\"Gesprochene Sprachen\",\"value\":\"Franz\u00f6sisch, Englisch\"},{\"@type\":\"PropertyValue\",\"name\":\"Tiere erlaubt (ja \/ nein)\",\"value\":\"non\"}]}},{\"@type\":\"ListItem\",\"position\":8,\"item\":{\"@type\":\"Thing\",\"name\":\"Ch\u00e2teau-Museum Tournon\",\"description\":\"Entdecken Sie das Ch\u00e2teau-Museum Tournon, nur 5 Gehminuten vom Campingplatz entfernt. Ein Ort voller Geschichte, an dem Sie das architektonische und kulturelle Erbe der Region erkunden k\u00f6nnen.\",\"image\":\"https:\/\/www.camping-tournon.fr\/wp-content\/uploads\/2021\/03\/chateau-tournon-e1616508068488.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":45.0680556,\"longitude\":4.8333333},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name der Aktivit\u00e4t\",\"value\":\"Ch\u00e2teau-Museum Tournon\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Camping (km)\",\"value\":\"0.4\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"5\"},{\"@type\":\"PropertyValue\",\"name\":\"Art der Aktivit\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Kultur\"},{\"@type\":\"PropertyValue\",\"name\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Familie, Erwachsene, Senioren\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung? (ja \/ nein)\",\"value\":\"non\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00d6ffnungszeiten\",\"value\":\"T\u00e4glich von 10 bis 18 Uhr ge\u00f6ffnet\"},{\"@type\":\"PropertyValue\",\"name\":\"Informationen und Kontakt\",\"value\":\"Kontakt \u00fcber das Fremdenverkehrsamt Tournon\"},{\"@type\":\"PropertyValue\",\"name\":\"Gesprochene Sprachen\",\"value\":\"Franz\u00f6sisch, Englisch\"},{\"@type\":\"PropertyValue\",\"name\":\"Tiere erlaubt (ja \/ nein)\",\"value\":\"non\"}]}},{\"@type\":\"ListItem\",\"position\":9,\"item\":{\"@type\":\"Thing\",\"name\":\"Palais Id\u00e9al du Facteur Cheval\",\"description\":\"Dieses historische Monument in Hauterives, Dr\u00f4me, ist ein einzigartiges architektonisches Werk, das von einem einzelnen Mann \u00fcber 33 Jahre gebaut wurde. Es zeigt Motive aus Postkarten aus aller Welt. Die St\u00e4tte umfasst den Palast und das Grab des Brieftr\u00e4gers.\",\"url\":\"https:\/\/www.facteurcheval.com\/\",\"image\":\"https:\/\/www.camping-tournon.fr\/wp-content\/uploads\/2021\/03\/camping-tournon-cta-palais.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":45.256267,\"longitude\":5.028506},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name der Aktivit\u00e4t\",\"value\":\"Palais Id\u00e9al du Facteur Cheval\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Camping (km)\",\"value\":\"90\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"90\"},{\"@type\":\"PropertyValue\",\"name\":\"Art der Aktivit\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Kultur, Tourismus\"},{\"@type\":\"PropertyValue\",\"name\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Familie, Erwachsene, Senioren\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung? (ja \/ nein)\",\"value\":\"non\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00d6ffnungszeiten\",\"value\":\"Von 9 bis 18 Uhr, je nach Saison\"},{\"@type\":\"PropertyValue\",\"name\":\"Informationen und Kontakt\",\"value\":\"Palais Id\u00e9al, Hauterives, Dr\u00f4me\"},{\"@type\":\"PropertyValue\",\"name\":\"Gesprochene Sprachen\",\"value\":\"Franz\u00f6sisch\"},{\"@type\":\"PropertyValue\",\"name\":\"Tiere erlaubt (ja \/ nein)\",\"value\":\"non\"}]}}]},{\"@type\":\"ItemList\",\"name\":\"Evenements aux alentours\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Musikalischer Sommerabend an den Farconnet-Kaimauern\",\"description\":\"Ein festlicher Abend mit Essen und Musik findet jede Woche vom 14. Juli bis 15. August an den Farconnet-Kaimauern statt, nur wenige Schritte vom Camping Le Rh\u00f4ne entfernt. Dieses freundliche Ereignis erm\u00f6glicht es, eine lebendige Atmosph\u00e4re zu genie\u00dfen, w\u00e4hrend man lokale Spezialit\u00e4ten probiert.\",\"image\":\"https:\/\/www.camping-tournon.fr\/wp-content\/uploads\/2021\/03\/vin-blanc-rhone.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":45.069451,\"longitude\":4.828934},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name\",\"value\":\"Musikalischer Sommerabend an den Farconnet-Kaimauern\"},{\"@type\":\"PropertyValue\",\"name\":\"Veranstaltungskategorie: (Musik, Ausstellung, Festival, Messe, Flohmarkt, Markt, etc.)\",\"value\":\"Musik\"},{\"@type\":\"PropertyValue\",\"name\":\"Zielpublikum: (Familie, Kinder, Erwachsene, Senioren, Jugendliche, etc.)\",\"value\":\"Familie, Erwachsene, Jugendliche\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservierung (ja\/nein)\",\"value\":\"Non\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00d6ffnungszeiten\",\"value\":\"Ein Abend pro Woche vom 14.07 bis 15.08, bis 23 Uhr\"},{\"@type\":\"PropertyValue\",\"name\":\"Praktische Informationen und Kontakt\",\"value\":\"Veranstaltung an den Farconnet-Kaimauern, in unmittelbarer N\u00e4he zum Camping. Reservierungen sind nicht erforderlich.\"},{\"@type\":\"PropertyValue\",\"name\":\"Entfernung vom Hotel: (km)\",\"value\":\"0.1\"},{\"@type\":\"PropertyValue\",\"name\":\"Fahrzeit vom Hotel (Min.)\",\"value\":\"2\"},{\"@type\":\"PropertyValue\",\"name\":\"Informationen und Kontakt\",\"value\":\"Informationen an der Rezeption des Camping Le Rh\u00f4ne, 1 Promenade Roche Defrance, Tournon sur Rh\u00f4ne. Tel: 04.75.08.05.28, E-Mail: camping@camping-tournon.fr\"},{\"@type\":\"PropertyValue\",\"name\":\"Gesprochene Sprachen\",\"value\":\"Franz\u00f6sisch\"},{\"@type\":\"PropertyValue\",\"name\":\"Tiere: (Akzeptiert oder nicht)\",\"value\":\"Nicht erlaubt w\u00e4hrend der Veranstaltung\"}]}}]}]}<\/script>\n<style>\n  .mv-wrap {\n    --mv-accent: #2e5e45;\n    --mv-accent-soft: #2e5e451a;\n    --mv-cream: #faf7f2;\n    --mv-line: #ebe5da;\n    --mv-muted: #6b6559;\n    --mv-header: 0px;\n    font-family: 'Inter', -apple-system, sans-serif;\n    color: #1f2a24;\n    max-width: 1440px;\n    margin: 0 auto;\n    padding: 0 24px 56px;\n    box-sizing: border-box;\n  }\n\n  .mv-wrap *,\n  .mv-wrap *::before,\n  .mv-wrap *::after,\n  .mv-modal-overlay *,\n  .mv-modal-overlay *::before,\n  .mv-modal-overlay *::after {\n    box-sizing: border-box;\n  }\n\n  .mv-wrap button,\n  .mv-wrap input,\n  .mv-modal-overlay button {\n    font-family: 'Inter', -apple-system, sans-serif;\n  }\n\n  .mv-icon {\n    display: inline-flex;\n    width: 1em;\n    height: 1em;\n    flex-shrink: 0;\n  }\n\n  .mv-icon svg {\n    width: 100%;\n    height: 100%;\n  }\n\n  \/* \u2500\u2500\u2500 Bandeau \u2500\u2500\u2500 *\/\n  .mv-hero {\n    position: relative;\n    overflow: hidden;\n    margin: 16px 0 24px;\n    padding: 56px 48px;\n    border-radius: 24px;\n    background: var(--mv-cream);\n    background-size: cover;\n    background-position: center right;\n  }\n\n  .mv-hero::before {\n    content: '';\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(90deg, rgba(250, 247, 242, 0.97) 0%, rgba(250, 247, 242, 0.88) 38%, rgba(250, 247, 242, 0.2) 70%, rgba(250, 247, 242, 0) 100%);\n  }\n\n  .mv-hero-inner {\n    position: relative;\n    max-width: 560px;\n  }\n\n  .mv-hero-title {\n    margin: 0 0 12px !important;\n    font-size: clamp(30px, 4vw, 48px) !important;\n    line-height: 1.1 !important;\n    color: #1c2b22 !important;\n  }\n\n  .mv-hero-text {\n    margin: 0 0 20px !important;\n    font-size: 17px;\n    line-height: 1.55;\n    color: #3b4a40;\n  }\n\n  .mv-hero-chip {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    padding: 9px 16px;\n    border-radius: 999px;\n    background: #fff;\n    box-shadow: 0 2px 8px rgba(31, 42, 36, 0.1);\n    font-size: 14px;\n    color: #3b4a40;\n  }\n\n  .mv-hero-chip strong {\n    color: #1c2b22;\n  }\n\n  \/* \u2500\u2500\u2500 Recherche + distance \u2500\u2500\u2500 *\/\n  .mv-controls {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 12px;\n    margin-bottom: 14px;\n  }\n\n  .mv-search {\n    position: relative;\n    flex: 1 1 360px;\n  }\n\n  .mv-search .mv-icon {\n    position: absolute;\n    left: 18px;\n    top: 50%;\n    transform: translateY(-50%);\n    font-size: 18px;\n    color: var(--mv-muted);\n  }\n\n  .mv-search input {\n    width: 100% !important;\n    height: 50px;\n    padding: 0 18px 0 48px !important;\n    border: 1px solid var(--mv-line) !important;\n    border-radius: 999px !important;\n    background: #fff !important;\n    font-size: 15px !important;\n    color: #1f2a24;\n    outline: none;\n    box-shadow: 0 1px 3px rgba(31, 42, 36, 0.05);\n  }\n\n  .mv-search input:focus {\n    border-color: var(--mv-accent) !important;\n    box-shadow: 0 0 0 3px var(--mv-accent-soft) !important;\n  }\n\n  .mv-seg {\n    display: inline-flex;\n    padding: 4px;\n    gap: 2px;\n    border: 1px solid var(--mv-line);\n    border-radius: 999px;\n    background: #fff;\n  }\n\n  .mv-seg button {\n    padding: 0 18px;\n    height: 40px;\n    border: 0;\n    border-radius: 999px;\n    background: transparent;\n    color: #3b4a40;\n    font-size: 14px;\n    font-weight: 600;\n    cursor: pointer;\n    white-space: nowrap;\n    transition: all 0.15s;\n  }\n\n  .mv-seg button:hover {\n    background: var(--mv-cream);\n  }\n\n  .mv-seg button.is-active {\n    background: var(--mv-accent);\n    color: #fff;\n  }\n\n  \/* \u2500\u2500\u2500 Cat\u00e9gories \u2500\u2500\u2500 *\/\n  \/* Cat\u00e9gories : une seule ligne qui d\u00e9file, fl\u00e8ches + fondu sur les bords *\/\n  .mv-cats-wrap {\n    position: relative;\n    margin-bottom: 18px;\n  }\n\n  .mv-cats {\n    display: flex;\n    flex-wrap: nowrap;\n    gap: 8px;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scrollbar-width: none;\n    padding: 2px 0;\n  }\n\n  .mv-cats::-webkit-scrollbar {\n    display: none;\n  }\n\n  .mv-cat {\n    flex-shrink: 0;\n  }\n\n  .mv-cats-arrow {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    z-index: 1;\n    display: none;\n    align-items: center;\n    width: 64px;\n    padding: 0;\n    border: 0;\n    cursor: pointer;\n    font-size: 20px;\n    color: #1f2a24;\n  }\n\n  .mv-cats-arrow span {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 36px;\n    height: 36px;\n    border: 1px solid var(--mv-line);\n    border-radius: 50%;\n    background: #fff;\n    box-shadow: 0 2px 6px rgba(31, 42, 36, 0.12);\n  }\n\n  .mv-cats-arrow--left {\n    left: 0;\n    justify-content: flex-start;\n    background: linear-gradient(90deg, #fff 45%, rgba(255, 255, 255, 0));\n  }\n\n  .mv-cats-arrow--right {\n    right: 0;\n    justify-content: flex-end;\n    background: linear-gradient(270deg, #fff 45%, rgba(255, 255, 255, 0));\n  }\n\n  .mv-cats-wrap.can-left .mv-cats-arrow--left,\n  .mv-cats-wrap.can-right .mv-cats-arrow--right {\n    display: flex;\n  }\n\n  .mv-cat {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    padding: 9px 16px;\n    border: 1px solid var(--mv-line);\n    border-radius: 999px;\n    background: #fff;\n    color: #2f3b33;\n    font-size: 14px;\n    font-weight: 500;\n    cursor: pointer;\n    transition: all 0.15s;\n  }\n\n  .mv-cat .mv-icon {\n    font-size: 17px;\n    color: var(--mv-cat);\n  }\n\n  .mv-cat:hover {\n    border-color: #d6cdbd;\n  }\n\n  .mv-cat.is-active {\n    background: var(--mv-accent);\n    border-color: var(--mv-accent);\n    color: #fff;\n  }\n\n  .mv-cat.is-active .mv-icon {\n    color: #fff;\n  }\n\n  \/* \u2500\u2500\u2500 Barre compteur + liste\/carte \u2500\u2500\u2500 *\/\n  .mv-bar {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 12px;\n    margin-bottom: 16px;\n  }\n\n  .mv-count {\n    margin: 0 !important;\n    font-size: 15px;\n    color: var(--mv-muted);\n  }\n\n  .mv-count strong {\n    color: #1f2a24;\n  }\n\n  \/* \u2500\u2500\u2500 Layout liste + carte \u2500\u2500\u2500 *\/\n  .mv-layout {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) minmax(340px, 38%);\n    gap: 24px;\n    align-items: start;\n  }\n\n  .mv-layout.is-list {\n    grid-template-columns: minmax(0, 1fr);\n  }\n\n  .mv-layout.is-list .mv-map-panel {\n    display: none;\n  }\n\n  .mv-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\n    \/* dense : la fiche \u00ab \u00c0 la une \u00bb (2 colonnes) ne laisse pas de trou sur grand \u00e9cran *\/\n    grid-auto-flow: dense;\n    gap: 18px;\n  }\n\n  \/* Colonne carte (sticky) : carte carr\u00e9e + fiche du rep\u00e8re cliqu\u00e9 en dessous *\/\n  .mv-map-panel {\n    position: sticky;\n    top: calc(var(--mv-header) + 16px);\n    display: flex;\n    flex-direction: column;\n    gap: 12px;\n  }\n\n  .mv-map {\n    width: 100%;\n    aspect-ratio: 1 \/ 1;\n    max-height: max(300px, calc(100vh - var(--mv-header) - 290px));\n    \/* Certains th\u00e8mes rouvrent le d\u00e9bordement des cartes Leaflet : les tuiles\n       d\u00e9passaient alors de la page (camping de la Croze). On rogne quoi qu'il arrive. *\/\n    overflow: hidden !important;\n    contain: paint;\n    border: 1px solid var(--mv-line);\n    border-radius: 20px;\n    background: var(--mv-cream);\n  }\n\n  .mv-preview-hint {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    padding: 16px 18px;\n    border: 1px dashed #d6cdbd;\n    border-radius: 16px;\n    color: var(--mv-muted);\n    font-size: 14px;\n  }\n\n  .mv-preview-hint .mv-icon {\n    font-size: 20px;\n    color: var(--mv-accent);\n  }\n\n  \/* Fiche compacte (horizontale) sous la carte \u2014 s\u00e9lecteurs doubl\u00e9s pour\n     passer devant les r\u00e8gles .mv-card d\u00e9finies plus bas *\/\n  .mv-card.mv-card--mini {\n    flex-direction: row;\n    min-height: 0;\n    border-radius: 16px;\n  }\n\n  .mv-card.mv-card--mini:hover {\n    transform: none;\n  }\n\n  .mv-card.mv-card--mini .mv-card-media {\n    flex: 0 0 120px;\n    width: 120px;\n    aspect-ratio: auto;\n    min-height: 120px;\n  }\n\n  .mv-card.mv-card--mini .mv-card-noimg {\n    font-size: 28px;\n  }\n\n  .mv-card.mv-card--mini .mv-card-body {\n    gap: 4px;\n    min-width: 0;\n    padding: 10px 14px;\n  }\n\n  .mv-card.mv-card--mini .mv-card-title {\n    font-size: 16px !important;\n    -webkit-line-clamp: 1;\n  }\n\n  .mv-card.mv-card--mini .mv-meta {\n    font-size: 12px;\n  }\n\n  .mv-card.mv-card--mini .mv-card-desc {\n    font-size: 13px;\n    -webkit-line-clamp: 2;\n  }\n\n  .mv-card.mv-card--mini .mv-card-foot {\n    padding-top: 2px;\n  }\n\n  .mv-card.mv-card--mini .mv-discover {\n    padding: 5px 12px;\n    font-size: 13px;\n  }\n\n  .mv-card.mv-card--mini .mv-pill {\n    position: static;\n    align-self: flex-start;\n    padding: 2px 10px;\n    font-size: 11px;\n    box-shadow: none;\n  }\n\n  \/* \u2500\u2500\u2500 Carte (fiche) \u2500\u2500\u2500 *\/\n  \/* La liste change brutalement de hauteur au clic sur une cat\u00e9gorie :\n     l'ancrage de d\u00e9filement du navigateur \u00ab corrigeait \u00bb alors la position et\n     contrariait le d\u00e9filement vers les filtres. *\/\n  #mv-app {\n    overflow-anchor: none;\n  }\n\n  .mv-card {\n    position: relative;\n    display: flex;\n    flex-direction: column;\n    min-width: 0;\n    overflow: hidden;\n    border: 1px solid var(--mv-line);\n    border-radius: 18px;\n    background: #fff;\n    box-shadow: 0 1px 3px rgba(31, 42, 36, 0.05);\n    cursor: pointer;\n    transition: box-shadow 0.2s, transform 0.2s;\n  }\n\n  .mv-card:hover,\n  .mv-card.is-hover {\n    box-shadow: 0 12px 28px rgba(31, 42, 36, 0.12);\n    transform: translateY(-2px);\n  }\n\n  .mv-card-media {\n    position: relative;\n    \/* Hauteur fix\u00e9e par le format, jamais par la photo : sans flex-shrink ni\n       taille minimale de contenu, une photo en hauteur \u00e9tirait son cadre et\n       les cartes d'une m\u00eame rang\u00e9e n'avaient plus des images align\u00e9es. *\/\n    flex: 0 0 auto;\n    min-height: 0;\n    \/* Pas d'overflow: hidden ici : la pastille de cat\u00e9gorie est pos\u00e9e \u00e0 cheval\n       sur le bas de l'image. L'image, en absolu, ne d\u00e9borde pas de son cadre. *\/\n    aspect-ratio: 16 \/ 10;\n    background: var(--mv-cream);\n  }\n\n  .mv-card-media img {\n    position: absolute;\n    inset: 0;\n    display: block;\n    width: 100% !important;\n    max-width: none !important;\n    height: 100% !important;\n    object-fit: cover;\n  }\n\n  .mv-card-noimg {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 100%;\n    height: 100%;\n    font-size: 42px;\n    color: var(--mv-cat);\n    background: color-mix(in srgb, var(--mv-cat) 10%, var(--mv-cream));\n  }\n\n  .mv-pill {\n    display: inline-flex;\n    align-items: center;\n    padding: 4px 12px;\n    border-radius: 999px;\n    background: #fff;\n    background: color-mix(in srgb, var(--mv-cat) 14%, #fff);\n    color: var(--mv-cat);\n    font-size: 12px;\n    font-weight: 600;\n    white-space: nowrap;\n  }\n\n  .mv-card-media .mv-pill {\n    position: absolute;\n    left: 12px;\n    bottom: -12px;\n    background: color-mix(in srgb, var(--mv-cat) 12%, #fff);\n    box-shadow: 0 2px 6px rgba(31, 42, 36, 0.12);\n  }\n\n  .mv-card-body {\n    display: flex;\n    flex: 1;\n    flex-direction: column;\n    gap: 7px;\n    padding: 22px 16px 16px;\n  }\n\n  .mv-card-title {\n    margin: 0 !important;\n    font-size: 18px !important;\n    line-height: 1.25 !important;\n    color: #1c2b22 !important;\n    display: -webkit-box;\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n  }\n\n  .mv-meta {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    gap: 6px 12px;\n    margin: 0 !important;\n    font-size: 13px;\n    color: var(--mv-muted);\n  }\n\n  .mv-meta span {\n    display: inline-flex;\n    align-items: center;\n    gap: 5px;\n  }\n\n  .mv-card-desc {\n    margin: 0 !important;\n    font-size: 14px;\n    line-height: 1.5;\n    color: #4b5850;\n    display: -webkit-box;\n    -webkit-line-clamp: 3;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n  }\n\n  .mv-tags {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 6px;\n  }\n\n  .mv-tag {\n    padding: 3px 10px;\n    border-radius: 999px;\n    background: #f3efe8;\n    color: #4b5850;\n    font-size: 12px;\n    max-width: 100%;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n\n  .mv-card-foot {\n    display: flex;\n    justify-content: flex-end;\n    margin-top: auto;\n    padding-top: 6px;\n  }\n\n  .mv-discover {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    padding: 8px 16px;\n    border: 0;\n    border-radius: 999px;\n    background: #f7ebe0;\n    color: #1c2b22;\n    font-size: 14px;\n    font-weight: 600;\n    cursor: pointer;\n    transition: background 0.15s;\n  }\n\n  .mv-card:hover .mv-discover {\n    background: #f1dcc9;\n  }\n\n  \/* Carte \u00ab \u00e0 la une \u00bb : grande, texte sur l'image *\/\n  .mv-card--featured {\n    grid-column: span 2;\n    min-height: 360px;\n  }\n\n  .mv-card--featured .mv-card-media {\n    position: absolute;\n    inset: 0;\n    aspect-ratio: auto;\n  }\n\n  .mv-card--featured .mv-card-media::after {\n    content: '';\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(90deg, rgba(20, 24, 20, 0.72) 0%, rgba(20, 24, 20, 0.35) 55%, rgba(20, 24, 20, 0.05) 100%);\n  }\n\n  .mv-card--featured .mv-card-body {\n    position: relative;\n    justify-content: flex-end;\n    max-width: 480px;\n    padding: 28px;\n    color: #fff;\n  }\n\n  .mv-card--featured .mv-card-title {\n    font-size: 30px !important;\n    color: #fff !important;\n  }\n\n  .mv-card--featured .mv-card-desc,\n  .mv-card--featured .mv-meta {\n    color: rgba(255, 255, 255, 0.9);\n  }\n\n  .mv-card--featured .mv-card-foot {\n    justify-content: flex-start;\n    margin-top: 8px;\n  }\n\n  .mv-card--featured .mv-discover {\n    background: #fff;\n  }\n\n  .mv-flag {\n    align-self: flex-start;\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    margin-bottom: 6px;\n    padding: 6px 12px;\n    border-radius: 999px;\n    background: #c2410c;\n    color: #fff;\n    font-size: 12px;\n    font-weight: 700;\n    letter-spacing: 0.4px;\n    text-transform: uppercase;\n  }\n\n  \/* Pagination *\/\n  .mv-more {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    align-items: center;\n    gap: 6px;\n    margin-top: 28px;\n  }\n\n  .mv-page {\n    min-width: 42px;\n    height: 42px;\n    padding: 0 12px;\n    border: 1px solid var(--mv-line);\n    border-radius: 999px;\n    background: #fff;\n    color: #2f3b33;\n    font-size: 14px;\n    font-weight: 600;\n    cursor: pointer;\n    transition: all 0.15s;\n  }\n\n  .mv-page:hover:not(:disabled):not([aria-current=\"page\"]) {\n    border-color: var(--mv-accent);\n    color: var(--mv-accent);\n  }\n\n  .mv-page[aria-current=\"page\"] {\n    background: var(--mv-accent);\n    border-color: var(--mv-accent);\n    color: #fff;\n    cursor: default;\n  }\n\n  .mv-page:disabled {\n    opacity: 0.4;\n    cursor: not-allowed;\n  }\n\n  .mv-page-gap {\n    padding: 0 4px;\n    color: var(--mv-muted);\n  }\n\n  \/* Bouton \u00ab Revenir \u00e0 la vue d'ensemble \u00bb (visible apr\u00e8s un zoom \/ d\u00e9placement) *\/\n  .mv-map {\n    position: relative;\n  }\n\n  \/* Pas de gros contour noir au clic sur la carte ; contour visible au clavier seulement *\/\n  .mv-map.leaflet-container:focus {\n    outline: none;\n  }\n\n  .mv-map.leaflet-container:focus-visible {\n    outline: 3px solid var(--mv-accent);\n    outline-offset: 2px;\n  }\n\n  .mv-reset {\n    position: absolute;\n    top: 12px;\n    left: 12px;\n    z-index: 500;\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    padding: 8px 14px;\n    border: 0;\n    border-radius: 999px;\n    background: #fff;\n    color: #1c2b22;\n    font-family: 'Inter', -apple-system, sans-serif;\n    font-size: 13px;\n    font-weight: 600;\n    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);\n    cursor: pointer;\n  }\n\n  .mv-reset[hidden] {\n    display: none;\n  }\n\n  .mv-reset:hover {\n    background: var(--mv-accent);\n    color: #fff;\n  }\n\n  .mv-reset .mv-icon {\n    font-size: 15px;\n  }\n\n  \/* Rep\u00e8re de l'\u00e9tablissement (\u00ab vous \u00eates ici \u00bb) *\/\n  .mv-home {\n    background: none;\n    border: none;\n    pointer-events: none;\n  }\n\n  .mv-home-pin {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 44px;\n    height: 44px;\n    border: 3px solid #fff;\n    border-radius: 50%;\n    background: #1c2b22;\n    color: #fff;\n    box-shadow: 0 0 0 5px rgba(28, 43, 34, 0.25), 0 4px 12px rgba(0, 0, 0, 0.35);\n  }\n\n  .mv-home-pin svg {\n    width: 22px;\n    height: 22px;\n  }\n\n  .mv-home-label.leaflet-tooltip {\n    padding: 5px 10px;\n    border: 0;\n    border-radius: 999px;\n    background: #1c2b22;\n    color: #fff;\n    font-family: 'Inter', -apple-system, sans-serif;\n    font-size: 12px;\n    font-weight: 700;\n    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);\n  }\n\n  .mv-home-label.leaflet-tooltip-right::before {\n    border-right-color: #1c2b22;\n  }\n\n  .mv-btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n    padding: 12px 26px;\n    border: 0;\n    border-radius: 999px;\n    background: var(--mv-accent);\n    color: #fff !important;\n    font-size: 15px;\n    font-weight: 600;\n    text-decoration: none !important;\n    cursor: pointer;\n    transition: filter 0.15s;\n  }\n\n  .mv-btn:hover {\n    filter: brightness(0.92);\n  }\n\n  .mv-empty {\n    grid-column: 1 \/ -1;\n    padding: 40px 20px;\n    border: 1px dashed #d6cdbd;\n    border-radius: 18px;\n    background: #fff;\n    color: var(--mv-muted);\n    text-align: center;\n  }\n\n  .mv-empty strong {\n    display: block;\n    margin-bottom: 4px;\n    color: #1f2a24;\n  }\n\n  \/* \u2500\u2500\u2500 Id\u00e9es selon vos envies \u2500\u2500\u2500 *\/\n  .mv-ideas {\n    margin-top: 48px;\n  }\n\n  .mv-ideas-head {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: baseline;\n    justify-content: space-between;\n    gap: 8px 24px;\n    margin-bottom: 16px;\n  }\n\n  .mv-ideas-title {\n    margin: 0 !important;\n    font-size: clamp(22px, 2.6vw, 30px) !important;\n    color: #1c2b22 !important;\n  }\n\n  .mv-ideas-sub {\n    margin: 0 !important;\n    color: var(--mv-muted);\n    font-size: 14px;\n  }\n\n  .mv-ideas-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));\n    gap: 16px;\n  }\n\n  .mv-idea {\n    display: flex;\n    align-items: stretch;\n    overflow: hidden;\n    min-height: 88px;\n    padding: 0;\n    border: 1px solid var(--mv-line);\n    border-radius: 16px;\n    background: #fff;\n    text-align: left;\n    cursor: pointer;\n    transition: box-shadow 0.2s;\n  }\n\n  .mv-idea:hover {\n    box-shadow: 0 8px 20px rgba(31, 42, 36, 0.1);\n  }\n\n  .mv-idea-img {\n    flex: 0 0 38%;\n    background: var(--mv-cream) center \/ cover no-repeat;\n  }\n\n  .mv-idea-body {\n    display: flex;\n    flex: 1;\n    align-items: center;\n    gap: 10px;\n    padding: 12px 14px;\n  }\n\n  .mv-idea-body .mv-icon {\n    font-size: 22px;\n    color: var(--mv-cat);\n  }\n\n  .mv-idea-text {\n    flex: 1;\n    min-width: 0;\n  }\n\n  .mv-idea-text strong {\n    display: block;\n    font-size: 14px;\n    color: #1c2b22;\n    line-height: 1.3;\n  }\n\n  .mv-idea-text span {\n    font-size: 13px;\n    color: var(--mv-muted);\n  }\n\n  \/* \u2500\u2500\u2500 Marqueurs carte \u2500\u2500\u2500 *\/\n  .mv-pin svg {\n    display: block;\n    overflow: visible;\n    transform-origin: 50% 100%;\n    transition: transform 0.15s ease;\n    filter: drop-shadow(0 2px 3px rgba(20, 24, 20, 0.35));\n  }\n\n  .mv-pin.is-hover svg {\n    transform: scale(1.3);\n  }\n\n  .mv-pin.is-selected svg {\n    transform: scale(1.4);\n    filter: drop-shadow(0 0 0 #fff) drop-shadow(0 3px 6px rgba(20, 24, 20, 0.45));\n  }\n\n  .mv-pin.is-selected {\n    z-index: 1001 !important;\n  }\n\n  \/* Pas de carr\u00e9 de focus Leaflet autour du rep\u00e8re cliqu\u00e9 *\/\n  .mv-pin:focus,\n  .mv-pin:focus-visible {\n    outline: none;\n  }\n\n  .mv-pin.is-hover {\n    z-index: 1000 !important;\n  }\n\n  .mv-cluster {\n    background: none;\n    border: none;\n  }\n\n  .mv-cluster span {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    border: 3px solid #fff;\n    border-radius: 50%;\n    background: var(--mv-accent, #2e5e45);\n    color: #fff;\n    font-size: 13px;\n    font-weight: 700;\n    box-shadow: 0 3px 8px rgba(20, 24, 20, 0.3);\n  }\n\n\n  \/* \u2500\u2500\u2500 Modal \u2500\u2500\u2500 *\/\n  .mv-modal-overlay {\n    position: fixed !important;\n    inset: 0 !important;\n    z-index: 99999 !important;\n    max-width: none !important;\n    width: auto !important;\n    margin: 0 !important;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    background: rgba(20, 24, 20, 0.4);\n    backdrop-filter: blur(2px);\n  }\n\n  .mv-modal-overlay[hidden] {\n    display: none !important;\n  }\n\n  .mv-modal {\n    position: relative;\n    width: 100%;\n    max-width: 1080px;\n    max-height: calc(100vh - 32px);\n    overflow-y: auto;\n    border-radius: 22px;\n    background: #fff;\n    box-shadow: 0 24px 60px rgba(20, 24, 20, 0.3);\n    font-family: 'Inter', -apple-system, sans-serif;\n    color: #1f2a24;\n  }\n\n  \/* Cr\u00e9dit photo : discret sur la carte (\u00a9, auteur au survol), lisible en fiche. *\/\n  .mv-credit {\n    position: absolute;\n    top: 8px;\n    right: 8px;\n    z-index: 2;\n    max-width: calc(100% - 16px);\n    padding: 2px 7px;\n    border-radius: 999px;\n    background: rgba(0, 0, 0, 0.45);\n    color: #fff;\n    font-size: 11px;\n    line-height: 1.5;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    cursor: help;\n  }\n\n  .mv-card:hover .mv-credit::after,\n  .mv-credit:focus::after {\n    content: ' ' attr(data-credit);\n  }\n\n  \/* Bandeau : le cr\u00e9dit est \u00e9crit en clair (pas de survol sur une image de fond),\n     en bas \u00e0 droite, loin du titre. *\/\n  .mv-credit--hero {\n    top: auto;\n    bottom: 10px;\n    right: 12px;\n    max-width: 60%;\n    cursor: default;\n  }\n\n  .mv-modal-credit {\n    margin: 6px 2px 0 !important;\n    color: var(--mv-muted, #6b7280);\n    font-size: 12px !important;\n    line-height: 1.4 !important;\n  }\n\n  .mv-modal-img {\n    display: block;\n    width: 100%;\n    aspect-ratio: 4 \/ 3;\n    max-height: 52vh;\n    object-fit: cover;\n    border-radius: 14px;\n  }\n\n  \/* Modal large : contenu sur 2 colonnes (texte \/ m\u00e9dias) pour \u00e9viter de d\u00e9filer *\/\n  .mv-modal-cols {\n    display: grid;\n    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);\n    gap: 28px;\n    align-items: start;\n  }\n\n  \/* Colonne m\u00e9dias : reste visible pendant qu'on lit le texte *\/\n  .mv-modal-col--media {\n    position: sticky;\n    top: 0;\n  }\n\n  .mv-modal-body {\n    padding-top: 26px !important;\n  }\n\n  \/* Place pour le bouton de fermeture en haut \u00e0 droite *\/\n  .mv-modal-cols > .mv-modal-col:last-child {\n    padding-right: 36px;\n  }\n\n  .mv-modal-col {\n    display: flex;\n    flex-direction: column;\n    gap: 14px;\n    min-width: 0;\n  }\n\n  .mv-modal-actions {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px;\n  }\n\n  .mv-btn--ghost {\n    background: #fff;\n    border: 1px solid var(--mv-line);\n    color: #1c2b22 !important;\n  }\n\n  .mv-btn--ghost:hover {\n    filter: none;\n    border-color: var(--mv-accent);\n  }\n\n  @media (max-width: 900px) {\n    .mv-modal-cols {\n      grid-template-columns: minmax(0, 1fr);\n      gap: 14px;\n    }\n\n    \/* Mobile : photo, puis texte, puis boutons \/ m\u00e9dias *\/\n    .mv-modal-cols {\n      display: flex;\n      flex-direction: column;\n    }\n\n    .mv-modal-col--media {\n      display: contents;\n    }\n\n    .mv-modal-col--media > .mv-modal-img {\n      order: -2;\n    }\n\n    .mv-modal-cols > .mv-modal-col:last-child {\n      order: -1;\n    }\n\n    .mv-modal-cols > .mv-modal-col:last-child {\n      padding-right: 0;\n    }\n  }\n\n  .mv-modal-body {\n    display: flex;\n    flex-direction: column;\n    gap: 14px;\n    padding: 22px 26px 26px;\n  }\n\n  .mv-modal-title {\n    margin: 0 !important;\n    font-size: 26px !important;\n    line-height: 1.2 !important;\n    color: #1c2b22 !important;\n  }\n\n  .mv-modal-desc {\n    margin: 0 !important;\n    font-size: 15px;\n    line-height: 1.65;\n    color: #4b5850;\n    white-space: pre-line;\n  }\n\n  .mv-modal-event {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    align-self: flex-start;\n    padding: 7px 12px;\n    border-radius: 10px;\n    background: var(--mv-accent-soft);\n    color: var(--mv-accent);\n    font-size: 14px;\n    font-weight: 600;\n  }\n\n  .mv-fields {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n    gap: 10px 20px;\n    padding: 14px 16px;\n    border-radius: 14px;\n    background: var(--mv-cream);\n  }\n\n  .mv-field span {\n    display: block;\n    margin-bottom: 2px;\n    font-size: 12px;\n    line-height: 1.35 !important;\n    color: var(--mv-muted);\n  }\n\n  .mv-field strong {\n    display: block;\n    font-size: 14px;\n    font-weight: 600;\n    line-height: 1.4 !important;\n    color: #1f2a24;\n    overflow-wrap: anywhere;\n  }\n\n  \/* \u2500\u2500\u2500 Agrandissement automatique par paliers (fiches tr\u00e8s remplies) \u2500\u2500\u2500\n     1. is-wide    : fen\u00eatre plus large, infos sur 3 colonnes, photo plus basse\n     2. is-compact : espacements et textes resserr\u00e9s *\/\n  .mv-modal.is-wide {\n    max-width: min(1320px, calc(100vw - 32px));\n  }\n\n  .mv-modal.is-wide .mv-fields {\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n  }\n\n  .mv-modal.is-wide .mv-modal-img {\n    aspect-ratio: 16 \/ 10;\n    max-height: 36vh;\n  }\n\n  .mv-modal.is-compact .mv-modal-body {\n    gap: 10px;\n    padding: 18px 20px 20px !important;\n  }\n\n  .mv-modal.is-compact .mv-modal-col {\n    gap: 10px;\n  }\n\n  .mv-modal.is-compact .mv-modal-title {\n    font-size: 22px !important;\n  }\n\n  .mv-modal.is-compact .mv-modal-desc {\n    font-size: 14px;\n    line-height: 1.55;\n  }\n\n  .mv-modal.is-compact .mv-fields {\n    gap: 8px 16px;\n    padding: 12px 14px;\n  }\n\n  .mv-modal.is-compact .mv-field strong {\n    font-size: 13px;\n  }\n\n  .mv-modal.is-compact .mv-modal-img {\n    max-height: 30vh;\n  }\n\n  @media (max-width: 900px) {\n    .mv-modal.is-wide .mv-fields {\n      grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));\n    }\n  }\n\n  .mv-modal-sub {\n    margin: 4px 0 0 !important;\n    font-size: 13px;\n    font-weight: 700;\n    letter-spacing: 0.4px;\n    text-transform: uppercase;\n    color: var(--mv-muted);\n  }\n\n  .mv-gallery {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));\n    gap: 8px;\n  }\n\n  .mv-gallery img {\n    display: block;\n    width: 100%;\n    aspect-ratio: 1;\n    object-fit: cover;\n    border-radius: 10px;\n  }\n\n  .mv-docs a {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    padding: 8px 0;\n    color: var(--mv-accent);\n    font-weight: 600;\n    text-decoration: none;\n  }\n\n  .mv-video {\n    position: relative;\n    aspect-ratio: 16 \/ 9;\n    border-radius: 12px;\n    overflow: hidden;\n    background: #000;\n  }\n\n  .mv-video iframe,\n  .mv-video video {\n    position: absolute;\n    inset: 0;\n    width: 100%;\n    height: 100%;\n    border: 0;\n  }\n\n  .mv-faq details {\n    border-bottom: 1px solid var(--mv-line);\n    padding: 10px 0;\n  }\n\n  .mv-faq summary {\n    cursor: pointer;\n    font-size: 15px !important;\n    font-weight: 600;\n    line-height: 1.4 !important;\n    color: #1c2b22;\n  }\n\n  .mv-faq p {\n    margin: 8px 0 0 !important;\n    color: #4b5850;\n    line-height: 1.55;\n  }\n\n  .mv-modal-close {\n    position: absolute;\n    top: 12px;\n    right: 12px;\n    z-index: 2;\n    width: 40px;\n    height: 40px;\n    border: 0;\n    border-radius: 50%;\n    background: rgba(255, 255, 255, 0.95);\n    color: #1f2a24;\n    font-size: 22px;\n    line-height: 1;\n    cursor: pointer;\n    box-shadow: 0 2px 6px rgba(20, 24, 20, 0.2);\n  }\n\n  \/* \u2500\u2500\u2500 Responsive \u2500\u2500\u2500 *\/\n  @media (max-width: 1100px) {\n    .mv-layout {\n      grid-template-columns: minmax(0, 1fr);\n    }\n\n    .mv-map-panel {\n      position: relative;\n      top: 0;\n      order: -1;\n    }\n\n    .mv-map {\n      aspect-ratio: 4 \/ 3;\n      max-height: 420px;\n    }\n  }\n\n  @media (max-width: 720px) {\n    .mv-wrap {\n      padding: 0 12px 40px;\n    }\n\n    .mv-hero {\n      padding: 36px 22px;\n      border-radius: 18px;\n    }\n\n    .mv-hero::before {\n      background: linear-gradient(180deg, rgba(250, 247, 242, 0.95), rgba(250, 247, 242, 0.8));\n    }\n\n    .mv-seg {\n      width: 100%;\n    }\n\n    .mv-seg button {\n      flex: 1;\n      padding: 0 8px;\n    }\n\n\n\n    .mv-card--featured {\n      grid-column: auto;\n      min-height: 320px;\n    }\n\n    .mv-card--featured .mv-card-title {\n      font-size: 24px !important;\n    }\n\n    .mv-modal-img {\n      height: 200px;\n    }\n  }\n<\/style>\n\n\n<div class=\"mv-wrap\" id=\"mv-app\">\n\n  <section class=\"mv-hero\" style=\"background-image:url(https:\/\/www.camping-tournon.fr\/wp-content\/uploads\/2021\/03\/camping-tournon-cta-vignoble.jpg)\">\n        <div class=\"mv-hero-inner\">\n      <h1 class=\"mv-hero-title\">In der Umgebung entdecken<\/h1>\n      <p class=\"mv-hero-text\">D\u00f6rfer, Str\u00e4nde, Spazierg\u00e4nge, gute Adressen und Erlebnisse rund um Ihren Aufenthalt.<\/p>\n              <span class=\"mv-hero-chip\">\n          <span class=\"mv-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z\"\/><circle cx=\"12\" cy=\"9.5\" r=\"2.5\"\/><\/svg><\/span>\n          Rund um <strong>Camping Tournon<\/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>Besuche in den Weinbergen der n\u00f6rdlichen Rh\u00f4ne-T\u00e4ler<\/strong> \u2014 Entdecken Sie die prestigetr\u00e4chtigen regionale Bezeichnungen: Condrieu, Croze Hermitage, Hermitage, Saint Joseph, Cornas, Saint P\u00e9ray. Sie k\u00f6nnen mehrere renommierte Weing\u00fcter wie Chapoutier, Cave de Tain, Delas, Domaine Jaboulet A\u00een\u00e9 besuchen&hellip;<\/li>\n              <li><strong>La Cit\u00e9 du Chocolat Valrhona<\/strong> \u2014 Dieser sinnliche Erlebnisraum ist dem Schokolade gewidmet. Die ValRh\u00f4na Schokoladenfabrik ist das ganze Jahr ge\u00f6ffnet, 7 Tage die Woche. Sie entdecken alle Geheimnisse der Schokolade und k\u00f6nnen im Laden probieren&hellip;<\/li>\n              <li><strong>Zug der Ard\u00e8che<\/strong> \u2014 Dieser historische Zug, fr\u00fcher Mastrou genannt, bietet eine unvergessliche Reise zwischen Saint-Jean-de-Muzols und Lamastre durch die wundersch\u00f6nen Gorges du Doux. Es ist ein freundliches Erlebnis, das man mit Familie oder&hellip;<\/li>\n              <li><strong>Le Canotier Boot<\/strong> \u2014 Dieses Sightseeing-Schiff zeigt Ihnen die Sch\u00f6nheit des Rhonetals. Es akzeptiert Fahrr\u00e4der an Bord und erm\u00f6glicht die R\u00fcckkehr via ViaRh\u00f4na. Themenfahrten, inklusive Aperitifs, Mahlzeiten oder Fr\u00fchst\u00fcck, werden angeboten.<\/li>\n              <li><strong>La ViaRh\u00f4na<\/strong> \u2014 La ViaRh\u00f4na ist eine Radroute, die den Genfersee mit dem Mittelmeer verbindet und dem Rh\u00f4ne-Fluss folgt. Sie bietet au\u00dfergew\u00f6hnliche Landschaften und ist sowohl f\u00fcr Sportler als auch f\u00fcr Enthusiasten geeignet.&hellip;<\/li>\n              <li><strong>V\u00e9lorail<\/strong> \u2014 Le v\u00e9lorail consiste en des voiturettes \u00e0 p\u00e9dales sur rail. Cette activit\u00e9 conviviale permet de d\u00e9couvrir la Vall\u00e9e du Doux en famille ou entre amis. Deux parcours sont propos\u00e9s au&hellip;<\/li>\n              <li><strong>Zoo und Safari von Peaugres<\/strong> \u2014 40 Minuten vom Campingplatz entfernt, ist dieser Zoo der gr\u00f6\u00dfte in Rh\u00f4ne-Alpes mit fast 1000 Tieren. Der Besuch umfasst eine Autofahrt-Safari gefolgt von einem Spaziergang. Im Sommer ist ein Wasserbereich&hellip;<\/li>\n              <li><strong>Ch\u00e2teau-Museum Tournon<\/strong> \u2014 Entdecken Sie das Ch\u00e2teau-Museum Tournon, nur 5 Gehminuten vom Campingplatz entfernt. Ein Ort voller Geschichte, an dem Sie das architektonische und kulturelle Erbe der Region erkunden k\u00f6nnen.<\/li>\n              <li><strong>Palais Id\u00e9al du Facteur Cheval<\/strong> \u2014 Dieses historische Monument in Hauterives, Dr\u00f4me, ist ein einzigartiges architektonisches Werk, das von einem einzelnen Mann \u00fcber 33 Jahre gebaut wurde. Es zeigt Motive aus Postkarten aus aller Welt. Die&hellip;<\/li>\n              <li><strong>Musikalischer Sommerabend an den Farconnet-Kaimauern<\/strong> \u2014 Ein festlicher Abend mit Essen und Musik findet jede Woche vom 14. Juli bis 15. August an den Farconnet-Kaimauern statt, nur wenige Schritte vom Camping Le Rh\u00f4ne entfernt. Dieses freundliche&hellip;<\/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\":\"activites-aux-alentours\",\"name\":\"Besuche in den Weinbergen der n\\u00f6rdlichen Rh\\u00f4ne-T\\u00e4ler\",\"image\":\"https:\\\/\\\/www.camping-tournon.fr\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/camping-tournon-cta-vignoble.jpg\",\"credit\":\"\",\"description\":\"Entdecken Sie die prestigetr\\u00e4chtigen regionale Bezeichnungen: Condrieu, Croze Hermitage, Hermitage, Saint Joseph, Cornas, Saint P\\u00e9ray. Sie k\\u00f6nnen mehrere renommierte Weing\\u00fcter wie Chapoutier, Cave de Tain, Delas, Domaine Jaboulet A\\u00een\\u00e9 besuchen und verkosten.\",\"city\":\"\",\"address\":\"\",\"km\":0,\"min\":5,\"lat\":45.054155,\"lng\":4.815476,\"tags\":[],\"fields\":[{\"label\":\"Name der Aktivit\\u00e4t\",\"value\":\"Besuche in den Weinbergen der n\\u00f6rdlichen Rh\\u00f4ne-T\\u00e4ler\"},{\"label\":\"Entfernung vom Camping (km)\",\"value\":\"0\"},{\"label\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"5\"},{\"label\":\"Art der Aktivit\\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Gastronomie, Kultur\"},{\"label\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Erwachsene\"},{\"label\":\"Reservierung? (ja \\\/ nein)\",\"value\":\"oui\"},{\"label\":\"\\u00d6ffnungszeiten\",\"value\":\"Je nach Weingut in der Regel von 9 bis 18 Uhr\"},{\"label\":\"Informationen und Kontakt\",\"value\":\"Lokale Weing\\u00fcter, Touristeninformation\"},{\"label\":\"Gesprochene Sprachen\",\"value\":\"Franz\\u00f6sisch, Englisch\"},{\"label\":\"Tiere erlaubt (ja \\\/ nein)\",\"value\":\"non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Ist diese Aktivit\\u00e4t f\\u00fcr Anf\\u00e4nger geeignet?\",\"answer\":\"Ja, F\\u00fchrungen und Verkostungen sind f\\u00fcr Anf\\u00e4nger geeignet.\"},{\"question\":\"Was ist der Durchschnittspreis?\",\"answer\":\"Die Preise f\\u00fcr F\\u00fchrungen variieren, h\\u00e4ufig zwischen 10 und 20 Euro, manchmal im Kauf der Flaschen inbegriffen.\"},{\"question\":\"Ist diese Aktivit\\u00e4t bei schlechtem Wetter machbar?\",\"answer\":\"Die Besuche sind teilweise innen, daher bei schlechtem Wetter durchf\\u00fchrbar.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":1,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"La Cit\\u00e9 du Chocolat Valrhona\",\"image\":\"https:\\\/\\\/www.camping-tournon.fr\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/cite-chocolat.jpg\",\"credit\":\"\",\"description\":\"Dieser sinnliche Erlebnisraum ist dem Schokolade gewidmet. Die ValRh\\u00f4na Schokoladenfabrik ist das ganze Jahr ge\\u00f6ffnet, 7 Tage die Woche. Sie entdecken alle Geheimnisse der Schokolade und k\\u00f6nnen im Laden probieren und einkaufen.\",\"city\":\"\",\"address\":\"\",\"km\":1,\"min\":10,\"lat\":45.0687,\"lng\":4.84352,\"tags\":[],\"fields\":[{\"label\":\"Name der Aktivit\\u00e4t\",\"value\":\"La Cit\\u00e9 du Chocolat Valrhona\"},{\"label\":\"Entfernung vom Camping (km)\",\"value\":\"1\"},{\"label\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"10 (zu Fu\\u00df)\"},{\"label\":\"Art der Aktivit\\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Kultur, Gastronomie\"},{\"label\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Familie, Kinder, Erwachsene\"},{\"label\":\"Reservierung? (ja \\\/ nein)\",\"value\":\"oui\"},{\"label\":\"\\u00d6ffnungszeiten\",\"value\":\"Jeden Tag, variable Zeiten je nach Saison\"},{\"label\":\"Informationen und Kontakt\",\"value\":\"Kontakt \\u00fcber ValRh\\u00f4na Schokoladenfabrik, Tournon sur Rh\\u00f4ne\"},{\"label\":\"Gesprochene Sprachen\",\"value\":\"Franz\\u00f6sisch, Englisch\"},{\"label\":\"Tiere erlaubt (ja \\\/ nein)\",\"value\":\"non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Ist diese Aktivit\\u00e4t f\\u00fcr Anf\\u00e4nger geeignet?\",\"answer\":\"Ja, der Besuch ist so gestaltet, dass er f\\u00fcr jedermann zug\\u00e4nglich ist, auch f\\u00fcr Anf\\u00e4nger in der Schokoladenherstellung.\"},{\"question\":\"Was ist der Durchschnittspreis?\",\"answer\":\"Der durchschnittliche Eintrittspreis liegt in der Regel zwischen 10 und 15 Euro pro Person und variiert je nach Ausstellungen und Workshops.\"},{\"question\":\"Ist diese Aktivit\\u00e4t bei schlechtem Wetter m\\u00f6glich?\",\"answer\":\"Ja, die Aktivit\\u00e4t findet haupts\\u00e4chlich drinnen statt, sodass sie bei Regen durchf\\u00fchrbar ist.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":2,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Zug der Ard\\u00e8che\",\"image\":\"https:\\\/\\\/www.camping-tournon.fr\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/train-gare-e1616508090441.jpg\",\"credit\":\"\",\"description\":\"Dieser historische Zug, fr\\u00fcher Mastrou genannt, bietet eine unvergessliche Reise zwischen Saint-Jean-de-Muzols und Lamastre durch die wundersch\\u00f6nen Gorges du Doux. Es ist ein freundliches Erlebnis, das man mit Familie oder Freunden machen kann.\",\"city\":\"\",\"address\":\"\",\"km\":8,\"min\":10,\"lat\":45.0588806,\"lng\":4.8374176,\"tags\":[],\"fields\":[{\"label\":\"Name der Aktivit\\u00e4t\",\"value\":\"Zug der Ard\\u00e8che\"},{\"label\":\"Entfernung vom Camping (km)\",\"value\":\"8\"},{\"label\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"10\"},{\"label\":\"Art der Aktivit\\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Kultur, Tourismus\"},{\"label\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Familie, Erwachsene, Senioren\"},{\"label\":\"Reservierung? (ja \\\/ nein)\",\"value\":\"oui\"},{\"label\":\"\\u00d6ffnungszeiten\",\"value\":\"Saisonabh\\u00e4ngig, Kontakt zum Veranstalter\"},{\"label\":\"Informationen und Kontakt\",\"value\":\"Train der Ard\\u00e8che, Saint-Jean-de-Muzols\"},{\"label\":\"Gesprochene Sprachen\",\"value\":\"Franz\\u00f6sisch\"},{\"label\":\"Tiere erlaubt (ja \\\/ nein)\",\"value\":\"non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Ist diese Aktivit\\u00e4t f\\u00fcr Anf\\u00e4nger geeignet?\",\"answer\":\"Ja, es ist eine leicht zug\\u00e4ngliche Aktivit\\u00e4t, ideal f\\u00fcr alle Altersgruppen.\"},{\"question\":\"Was ist der Durchschnittspreis?\",\"answer\":\"Der Preis f\\u00fcr ein Erwachsenenticket liegt je nach Saison normalerweise zwischen 15 und 25 Euro.\"},{\"question\":\"Ist diese Aktivit\\u00e4t bei schlechtem Wetter durchf\\u00fchrbar?\",\"answer\":\"Die Aktivit\\u00e4t ist teilweise \\u00fcberdacht, sodass sie bei schlechtem Wetter nutzbar ist.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":3,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Le Canotier Boot\",\"image\":\"https:\\\/\\\/www.camping-tournon.fr\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/bateau-roue-drome-e1616507882416.jpg\",\"credit\":\"\",\"description\":\"Dieses Sightseeing-Schiff zeigt Ihnen die Sch\\u00f6nheit des Rhonetals. Es akzeptiert Fahrr\\u00e4der an Bord und erm\\u00f6glicht die R\\u00fcckkehr via ViaRh\\u00f4na. Themenfahrten, inklusive Aperitifs, Mahlzeiten oder Fr\\u00fchst\\u00fcck, werden angeboten.\",\"city\":\"\",\"address\":\"\",\"km\":0,\"min\":0,\"lat\":45.0670649,\"lng\":4.839735,\"tags\":[],\"fields\":[{\"label\":\"Name der Aktivit\\u00e4t\",\"value\":\"Le Canotier Boot\"},{\"label\":\"Entfernung vom Camping (km)\",\"value\":\"0\"},{\"label\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"0\"},{\"label\":\"Art der Aktivit\\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Freizeit, Natur\"},{\"label\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Familie, Erwachsene\"},{\"label\":\"Reservierung? (ja \\\/ nein)\",\"value\":\"oui\"},{\"label\":\"\\u00d6ffnungszeiten\",\"value\":\"Themenfahrten mit variablen Zeiten je nach Programm\"},{\"label\":\"Informationen und Kontakt\",\"value\":\"Reservierungen ab Tournon, Kontakt Camping oder lokaler Bootsmann\"},{\"label\":\"Gesprochene Sprachen\",\"value\":\"Franz\\u00f6sisch\"},{\"label\":\"Tiere erlaubt (ja \\\/ nein)\",\"value\":\"non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Ist diese Aktivit\\u00e4t f\\u00fcr Anf\\u00e4nger geeignet?\",\"answer\":\"Ja, die Aktivit\\u00e4t ist f\\u00fcr jedermann zug\\u00e4nglich, keine besonderen F\\u00e4higkeiten erforderlich.\"},{\"question\":\"Was ist der Durchschnittspreis?\",\"answer\":\"Die Preise variieren je nach angebotener Tour, im Durchschnitt etwa 25 bis 40 Euro.\"},{\"question\":\"Ist diese Aktivit\\u00e4t bei schlechtem Wetter durchf\\u00fchrbar?\",\"answer\":\"Die Aktivit\\u00e4t ist wetterabh\\u00e4ngig; Ausfahrten k\\u00f6nnen bei schlechtem Wetter abgesagt werden.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":4,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"La ViaRh\\u00f4na\",\"image\":\"https:\\\/\\\/www.camping-tournon.fr\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/camping-tournon-cta-velo-route.jpg\",\"credit\":\"\",\"description\":\"La ViaRh\\u00f4na ist eine Radroute, die den Genfersee mit dem Mittelmeer verbindet und dem Rh\\u00f4ne-Fluss folgt. Sie bietet au\\u00dfergew\\u00f6hnliche Landschaften und ist sowohl f\\u00fcr Sportler als auch f\\u00fcr Enthusiasten geeignet. Die Radroute erm\\u00f6glicht Spazierg\\u00e4nge von wenigen Stunden bis zu mehreren Tagen. Das Le Rh\\u00f4ne Camping liegt ideal an dieser Route f\\u00fcr eine bequeme Pause.\",\"city\":\"\",\"address\":\"\",\"km\":0,\"min\":0,\"lat\":45.054155,\"lng\":4.815476,\"tags\":[],\"fields\":[{\"label\":\"Name der Aktivit\\u00e4t\",\"value\":\"La ViaRh\\u00f4na\"},{\"label\":\"Entfernung vom Camping (km)\",\"value\":\"0\"},{\"label\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"0\"},{\"label\":\"Art der Aktivit\\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Sport\"},{\"label\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Familie, Erwachsener, Senior\"},{\"label\":\"Reservierung? (ja \\\/ nein)\",\"value\":\"non\"},{\"label\":\"\\u00d6ffnungszeiten\",\"value\":\"Ganzj\\u00e4hrig zug\\u00e4nglich\"},{\"label\":\"Informationen und Kontakt\",\"value\":\"Weitere Informationen an der Camping-Rezeption oder unter www.camping-tournon.fr\"},{\"label\":\"Gesprochene Sprachen\",\"value\":\"Franz\\u00f6sisch, Englisch\"},{\"label\":\"Tiere erlaubt (ja \\\/ nein)\",\"value\":\"oui\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Cette activit\\u00e9 est-elle adapt\\u00e9e aux d\\u00e9butants ?\",\"answer\":\"Oui, la ViaRh\\u00f4na est adapt\\u00e9e aussi bien aux d\\u00e9butants qu'aux cyclistes exp\\u00e9riment\\u00e9s. Les tron\\u00e7ons peuvent \\u00eatre choisis selon le niveau souhait\\u00e9.\"},{\"question\":\"Quel est le tarif moyen ?\",\"answer\":\"L'acc\\u00e8s \\u00e0 la ViaRh\\u00f4na est gratuit, seuls les \\u00e9ventuels frais de location de v\\u00e9lo peuvent s'appliquer.\"},{\"question\":\"Ist diese Aktivit\\u00e4t bei schlechtem Wetter m\\u00f6glich?\",\"answer\":\"Die Aktivit\\u00e4t h\\u00e4ngt von den Wetterbedingungen ab; sie ist bei Regen oder starkem Wind weniger angenehm.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":5,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"V\\u00e9lorail\",\"image\":\"https:\\\/\\\/www.camping-tournon.fr\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/velorail-doux-areche.jpg\",\"credit\":\"\",\"description\":\"Le v\\u00e9lorail consiste en des voiturettes \\u00e0 p\\u00e9dales sur rail. Cette activit\\u00e9 conviviale permet de d\\u00e9couvrir la Vall\\u00e9e du Doux en famille ou entre amis. Deux parcours sont propos\\u00e9s au d\\u00e9part de Boucieu le Roi, village de caract\\u00e8re.\",\"city\":\"\",\"address\":\"\",\"km\":30,\"min\":30,\"lat\":45.0617301,\"lng\":4.8429966,\"tags\":[],\"fields\":[{\"label\":\"Name der Aktivit\\u00e4t\",\"value\":\"V\\u00e9lorail\"},{\"label\":\"Entfernung vom Camping (km)\",\"value\":\"30\"},{\"label\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"30\"},{\"label\":\"Art der Aktivit\\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Sport, Nature\"},{\"label\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Famille, Adultes\"},{\"label\":\"Reservierung? (ja \\\/ nein)\",\"value\":\"oui\"},{\"label\":\"\\u00d6ffnungszeiten\",\"value\":\"De 9h \\u00e0 18h, selon saison\"},{\"label\":\"Informationen und Kontakt\",\"value\":\"R\\u00e9servation au d\\u00e9part de Boucieu le Roi\"},{\"label\":\"Gesprochene Sprachen\",\"value\":\"Fran\\u00e7ais\"},{\"label\":\"Tiere erlaubt (ja \\\/ nein)\",\"value\":\"non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Ist diese Aktivit\\u00e4t f\\u00fcr Anf\\u00e4nger geeignet?\",\"answer\":\"Ja, die Aktivit\\u00e4t erfordert keine besonderen F\\u00e4higkeiten, geeignet f\\u00fcr Anf\\u00e4nger.\"},{\"question\":\"Was ist der Durchschnittspreis?\",\"answer\":\"Der Durchschnittspreis liegt bei ca. 20 bis 30 Euro pro Person, abh\\u00e4ngig von der L\\u00e4nge der Strecke.\"},{\"question\":\"Ist diese Aktivit\\u00e4t bei schlechtem Wetter durchf\\u00fchrbar?\",\"answer\":\"Die Aktivit\\u00e4t wird bei schlechtem Wetter nicht empfohlen, da sie im Freien stattfindet.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":6,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Zoo und Safari von Peaugres\",\"image\":\"https:\\\/\\\/www.camping-tournon.fr\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/camping-tournon-cta-safari.jpg\",\"credit\":\"\",\"description\":\"40 Minuten vom Campingplatz entfernt, ist dieser Zoo der gr\\u00f6\\u00dfte in Rh\\u00f4ne-Alpes mit fast 1000 Tieren. Der Besuch umfasst eine Autofahrt-Safari gefolgt von einem Spaziergang. Im Sommer ist ein Wasserbereich f\\u00fcr Kinder und Erwachsene zug\\u00e4nglich.\",\"city\":\"\",\"address\":\"\",\"km\":40,\"min\":40,\"lat\":45.2691,\"lng\":4.717,\"tags\":[],\"fields\":[{\"label\":\"Name der Aktivit\\u00e4t\",\"value\":\"Zoo und Safari von Peaugres\"},{\"label\":\"Entfernung vom Camping (km)\",\"value\":\"40\"},{\"label\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"40\"},{\"label\":\"Art der Aktivit\\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Natur, Familie\"},{\"label\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Familie, Kinder, Erwachsene\"},{\"label\":\"Reservierung? (ja \\\/ nein)\",\"value\":\"oui\"},{\"label\":\"\\u00d6ffnungszeiten\",\"value\":\"Von 9 bis 19 Uhr im Sommer und eingeschr\\u00e4nkte \\u00d6ffnungszeiten in anderen Jahreszeiten\"},{\"label\":\"Informationen und Kontakt\",\"value\":\"Zoo de Peaugres, offizielle Website\"},{\"label\":\"Gesprochene Sprachen\",\"value\":\"Franz\\u00f6sisch, Englisch\"},{\"label\":\"Tiere erlaubt (ja \\\/ nein)\",\"value\":\"non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Ist diese Aktivit\\u00e4t f\\u00fcr Anf\\u00e4nger geeignet?\",\"answer\":\"Ja, die Aktivit\\u00e4t ist f\\u00fcr alle zug\\u00e4nglich, einschlie\\u00dflich Kinder und Anf\\u00e4nger.\"},{\"question\":\"Was ist der Durchschnittspreis?\",\"answer\":\"Die Preise liegen zwischen 15 und 25 Euro f\\u00fcr einen Erwachseneneintritt.\"},{\"question\":\"Ist diese Aktivit\\u00e4t bei schlechtem Wetter machbar?\",\"answer\":\"Der Safariteil erfolgt im Auto, bei schlechtem Wetter geeignet; der Spaziergang h\\u00e4ngt von den Bedingungen ab.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":7,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Ch\\u00e2teau-Museum Tournon\",\"image\":\"https:\\\/\\\/www.camping-tournon.fr\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/chateau-tournon-e1616508068488.jpg\",\"credit\":\"\",\"description\":\"Entdecken Sie das Ch\\u00e2teau-Museum Tournon, nur 5 Gehminuten vom Campingplatz entfernt. Ein Ort voller Geschichte, an dem Sie das architektonische und kulturelle Erbe der Region erkunden k\\u00f6nnen.\",\"city\":\"\",\"address\":\"\",\"km\":0.4,\"min\":5,\"lat\":45.0680556,\"lng\":4.8333333,\"tags\":[],\"fields\":[{\"label\":\"Name der Aktivit\\u00e4t\",\"value\":\"Ch\\u00e2teau-Museum Tournon\"},{\"label\":\"Entfernung vom Camping (km)\",\"value\":\"0.4\"},{\"label\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"5\"},{\"label\":\"Art der Aktivit\\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Kultur\"},{\"label\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Familie, Erwachsene, Senioren\"},{\"label\":\"Reservierung? (ja \\\/ nein)\",\"value\":\"non\"},{\"label\":\"\\u00d6ffnungszeiten\",\"value\":\"T\\u00e4glich von 10 bis 18 Uhr ge\\u00f6ffnet\"},{\"label\":\"Informationen und Kontakt\",\"value\":\"Kontakt \\u00fcber das Fremdenverkehrsamt Tournon\"},{\"label\":\"Gesprochene Sprachen\",\"value\":\"Franz\\u00f6sisch, Englisch\"},{\"label\":\"Tiere erlaubt (ja \\\/ nein)\",\"value\":\"non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Cette activit\\u00e9 est-elle adapt\\u00e9e aux d\\u00e9butants ?\",\"answer\":\"Oui, cette visite est accessible \\u00e0 tous les publics, y compris les d\\u00e9butants en histoire et culture.\"},{\"question\":\"Quel est le tarif moyen ?\",\"answer\":\"Le tarif d'entr\\u00e9e est d'environ 6 \\u00e0 10 euros par personne.\"},{\"question\":\"Cette activit\\u00e9 est-elle praticable par mauvais temps ?\",\"answer\":\"Oui, c'est une activit\\u00e9 en int\\u00e9rieur, donc praticable par mauvais temps.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":8,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Palais Id\\u00e9al du Facteur Cheval\",\"image\":\"https:\\\/\\\/www.camping-tournon.fr\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/camping-tournon-cta-palais.jpg\",\"credit\":\"\",\"description\":\"Dieses historische Monument in Hauterives, Dr\\u00f4me, ist ein einzigartiges architektonisches Werk, das von einem einzelnen Mann \\u00fcber 33 Jahre gebaut wurde. Es zeigt Motive aus Postkarten aus aller Welt. Die St\\u00e4tte umfasst den Palast und das Grab des Brieftr\\u00e4gers.\",\"city\":\"\",\"address\":\"\",\"km\":90,\"min\":90,\"lat\":45.256267,\"lng\":5.028506,\"tags\":[],\"fields\":[{\"label\":\"Name der Aktivit\\u00e4t\",\"value\":\"Palais Id\\u00e9al du Facteur Cheval\"},{\"label\":\"Entfernung vom Camping (km)\",\"value\":\"90\"},{\"label\":\"Fahrzeit vom Campingplatz (Min.)\",\"value\":\"90\"},{\"label\":\"Art der Aktivit\\u00e4t (Natur, Sport, Kultur, etc.)\",\"value\":\"Kultur, Tourismus\"},{\"label\":\"Zielgruppe (Familie, Kinder, Senioren, Jugendliche, etc.)\",\"value\":\"Familie, Erwachsene, Senioren\"},{\"label\":\"Reservierung? (ja \\\/ nein)\",\"value\":\"non\"},{\"label\":\"\\u00d6ffnungszeiten\",\"value\":\"Von 9 bis 18 Uhr, je nach Saison\"},{\"label\":\"Informationen und Kontakt\",\"value\":\"Palais Id\\u00e9al, Hauterives, Dr\\u00f4me\"},{\"label\":\"Gesprochene Sprachen\",\"value\":\"Franz\\u00f6sisch\"},{\"label\":\"Tiere erlaubt (ja \\\/ nein)\",\"value\":\"non\"}],\"link\":\"https:\\\/\\\/www.facteurcheval.com\\\/\",\"event\":\"\",\"faq\":[{\"question\":\"Ist diese Aktivit\\u00e4t f\\u00fcr Anf\\u00e4nger geeignet?\",\"answer\":\"Ja, der Palastbesuch ist f\\u00fcr Besucher aller Niveaus zug\\u00e4nglich.\"},{\"question\":\"Was ist der durchschnittliche Preis?\",\"answer\":\"Der Eintritt kostet etwa 8 bis 10 Euro pro Erwachsenem.\"},{\"question\":\"Ist diese Aktivit\\u00e4t bei schlechtem Wetter machbar?\",\"answer\":\"Die Aktivit\\u00e4t findet im Freien statt, kann aber bei schlechtem Wetter besucht werden, indem man in \\u00fcberdachten Bereichen bleibt.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":9,\"featurable\":true,\"type\":\"evenements-aux-alentours\",\"name\":\"Musikalischer Sommerabend an den Farconnet-Kaimauern\",\"image\":\"https:\\\/\\\/www.camping-tournon.fr\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/vin-blanc-rhone.jpg\",\"credit\":\"\",\"description\":\"Ein festlicher Abend mit Essen und Musik findet jede Woche vom 14. Juli bis 15. August an den Farconnet-Kaimauern statt, nur wenige Schritte vom Camping Le Rh\\u00f4ne entfernt. Dieses freundliche Ereignis erm\\u00f6glicht es, eine lebendige Atmosph\\u00e4re zu genie\\u00dfen, w\\u00e4hrend man lokale Spezialit\\u00e4ten probiert.\",\"city\":\"\",\"address\":\"\",\"km\":0.1,\"min\":2,\"lat\":45.069451,\"lng\":4.828934,\"tags\":[],\"fields\":[{\"label\":\"Name\",\"value\":\"Musikalischer Sommerabend an den Farconnet-Kaimauern\"},{\"label\":\"Veranstaltungskategorie: (Musik, Ausstellung, Festival, Messe, Flohmarkt, Markt, etc.)\",\"value\":\"Musik\"},{\"label\":\"Zielpublikum: (Familie, Kinder, Erwachsene, Senioren, Jugendliche, etc.)\",\"value\":\"Familie, Erwachsene, Jugendliche\"},{\"label\":\"Reservierung (ja\\\/nein)\",\"value\":\"Non\"},{\"label\":\"\\u00d6ffnungszeiten\",\"value\":\"Ein Abend pro Woche vom 14.07 bis 15.08, bis 23 Uhr\"},{\"label\":\"Praktische Informationen und Kontakt\",\"value\":\"Veranstaltung an den Farconnet-Kaimauern, in unmittelbarer N\\u00e4he zum Camping. Reservierungen sind nicht erforderlich.\"},{\"label\":\"Entfernung vom Hotel: (km)\",\"value\":\"0.1\"},{\"label\":\"Fahrzeit vom Hotel (Min.)\",\"value\":\"2\"},{\"label\":\"Informationen und Kontakt\",\"value\":\"Informationen an der Rezeption des Camping Le Rh\\u00f4ne, 1 Promenade Roche Defrance, Tournon sur Rh\\u00f4ne. Tel: 04.75.08.05.28, E-Mail: camping@camping-tournon.fr\"},{\"label\":\"Gesprochene Sprachen\",\"value\":\"Franz\\u00f6sisch\"},{\"label\":\"Tiere: (Akzeptiert oder nicht)\",\"value\":\"Nicht erlaubt w\\u00e4hrend der Veranstaltung\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Sollte ich die Tickets im Voraus kaufen?\",\"answer\":\"Die Teilnahme am musikalischen Abend an den Farconnet-Kaimauern erfordert keinen vorherigen Ticketkauf; Sie k\\u00f6nnen frei kommen.\"},{\"question\":\"Wo finde ich das vollst\\u00e4ndige Programm?\",\"answer\":\"Der vollst\\u00e4ndige Sommeraktionsplan ist an der Rezeption des Campingplatzes erh\\u00e4ltlich.\"},{\"question\":\"Gibt es einen hauseigenen Parkplatz oder einen Shuttleservice?\",\"answer\":\"Parkpl\\u00e4tze stehen im Stadtzentrum zur Verf\\u00fcgung, der Standort ist vom Camping aus zu Fu\\u00df erreichbar, und es wird kein Shuttleservice angeboten.\"},{\"question\":\"Wie lange dauert die Veranstaltung?\",\"answer\":\"Jeder Abend dauert bis 23 Uhr, meist beginnend am sp\\u00e4ten Nachmittag oder fr\\u00fchen Abend.\"},{\"question\":\"Ist diese Veranstaltung f\\u00fcr Kinder geeignet?\",\"answer\":\"Ja, es ist eine familienfreundliche Veranstaltung mit einer lebhaften und freundlichen Atmosph\\u00e4re.\"},{\"question\":\"Ist die Veranstaltung f\\u00fcr Senioren oder Menschen mit eingeschr\\u00e4nkter Mobilit\\u00e4t geeignet?\",\"answer\":\"Ja, die Veranstaltung ist f\\u00fcr Senioren und Menschen mit eingeschr\\u00e4nkter Mobilit\\u00e4t zug\\u00e4nglich, mit einfachem Zugang, da die Kais in einer st\\u00e4dtischen Gegend liegen.\"},{\"question\":\"Ist es eher familienfreundlich, festlich oder kulturell?\",\"answer\":\"Dieses Ereignis ist eher festlich und familienfreundlich, f\\u00f6rdert Freundschaft und Teilen rund um Musik und Essen.\"},{\"question\":\"Gibt es eine Altersbegrenzung f\\u00fcr bestimmte Aktivit\\u00e4ten?\",\"answer\":\"Es wird kein Alterslimit f\\u00fcr diesen Musikabend festgelegt.\"},{\"question\":\"Gibt es erm\\u00e4\\u00dfigte Preise (Familie, Kinder, Senioren)?\",\"answer\":\"Die Teilnahme am Event ist kostenlos; es werden keine Geb\\u00fchren erhoben.\"},{\"question\":\"Sollte vor Ort ein Budget eingeplant werden (Verpflegung, Getr\\u00e4nke, Handwerker)?\",\"answer\":\"Ja, es ist ratsam, ein Budget f\\u00fcr die Verpflegung und Getr\\u00e4nke vor Ort einzuplanen.\"},{\"question\":\"Gibt es lokale Verpflegung oder Produzenten vor Ort?\",\"answer\":\"W\\u00e4hrend des Events wird lokale Verpflegung angeboten, manchmal mit Produkten von lokalen Produzenten.\"},{\"question\":\"Gibt es dort Kunsthandwerk oder Souvenirs?\",\"answer\":\"Nein, bei dieser Veranstaltung werden keine speziell handwerklichen Gegenst\\u00e4nde oder Souvenirs angeboten.\"},{\"question\":\"Findet die Veranstaltung drinnen oder drau\\u00dfen statt?\",\"answer\":\"Die Veranstaltung findet im Freien statt, an den Kais am Ufer der Rh\\u00f4ne.\"},{\"question\":\"Wann ist die beste Zeit, um anzukommen, um Menschenmassen zu vermeiden?\",\"answer\":\"Es ist am besten, fr\\u00fch am Abend anzukommen, um die Menschenmassen zu vermeiden und das Programm voll auszukosten.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]}];\n    var CATS = {\"activites-aux-alentours\":{\"key\":\"activites-aux-alentours\",\"label\":\"Activit\\u00e9s aux alentours \",\"adhoc\":false,\"color\":\"#c2410c\",\"count\":9,\"image\":\"https:\\\/\\\/www.camping-tournon.fr\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/camping-tournon-cta-vignoble.jpg\"},\"evenements-aux-alentours\":{\"key\":\"evenements-aux-alentours\",\"label\":\"Evenements aux alentours\",\"adhoc\":false,\"color\":\"#2563eb\",\"count\":1,\"image\":\"https:\\\/\\\/www.camping-tournon.fr\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/vin-blanc-rhone.jpg\"}};\n    \/\/ Textes d'interface dans la langue de la page (includes\/i18n.php)\n    var T = {\"hero_title\":\"In der Umgebung entdecken\",\"hero_text\":\"D\\u00f6rfer, Str\\u00e4nde, Spazierg\\u00e4nge, gute Adressen und Erlebnisse rund um Ihren Aufenthalt.\",\"around\":\"Rund um\",\"search_placeholder\":\"Einen Ort, eine Aktivit\\u00e4t, ein Dorf suchen\\u2026\",\"search\":\"Suchen\",\"max_distance\":\"Maximale Entfernung\",\"all\":\"Alle\",\"prev_categories\":\"Vorherige Kategorien\",\"next_categories\":\"N\\u00e4chste Kategorien\",\"categories\":\"Kategorien\",\"display\":\"Ansicht\",\"list\":\"Liste\",\"map\":\"Karte\",\"close\":\"Schlie\\u00dfen\",\"featured\":\"Highlight\",\"discover\":\"Entdecken\",\"idea\":\"Idee\",\"ideas\":\"Ideen\",\"around_you\":\"in Ihrer N\\u00e4he\",\"no_result\":\"Keine Ergebnisse\",\"no_result_hint\":\"Versuchen Sie eine andere Suche, Kategorie oder Entfernung.\",\"pagination\":\"Seitennavigation\",\"prev_page\":\"Vorherige Seite\",\"next_page\":\"N\\u00e4chste Seite\",\"ideas_title\":\"Ideen nach Lust und Laune\",\"ideas_sub\":\"Vorschl\\u00e4ge f\\u00fcr Ihren perfekten Aufenthalt.\",\"reset_view\":\"Zur\\u00fcck zur \\u00dcbersicht\",\"map_hint\":\"Klicken Sie auf eine Markierung, um die Details hier anzuzeigen.\",\"official_site\":\"Offizielle Website\",\"video\":\"Video\",\"gallery\":\"Galerie\",\"documents\":\"Dokumente\",\"faq\":\"H\\u00e4ufige Fragen\",\"no_answer\":\"Noch keine Antwort.\",\"see_on_maps\":\"Auf Google Maps ansehen\",\"see_place_on_maps\":\"Den Campingplatz auf Google Maps ansehen\",\"yes\":\"Ja\",\"no\":\"Nein\",\"practical_info\":\"Praktische Infos\",\"reviews\":\"Bewertungen\",\"read_more\":\"Weiterlesen\",\"prev_review\":\"Vorherige Bewertung\",\"next_review\":\"N\\u00e4chste Bewertung\",\"prev_item\":\"Zur\\u00fcck\",\"next_item\":\"Weiter\",\"photo_credit\":\"Foto: %s\",\"directions\":\"Route\",\"read_less\":\"Weniger\",\"stars_out_of_5\":\"%s von 5 Sternen\",\"owner_reply\":\"Antwort des Gastgebers\",\"customer\":\"Gast\",\"customer_reviews\":\"G\\u00e4stebewertungen\",\"rating_label\":\"Bewertet mit %1$s von 5, %2$s Bewertungen \\u2014 Bewertungen ansehen\",\"reviews_by\":\"Bewertungen pr\\u00e4sentiert von Elaia\",\"powered_by\":\"Bereitgestellt von\",\"today\":\"Heute\",\"today_lc\":\"heute\",\"tomorrow\":\"Morgen\",\"until\":\"Bis %s\",\"from_to\":\"Vom %1$s bis %2$s\",\"registration\":\"Anmeldung erforderlich\",\"full\":\"Ausgebucht\",\"all_animations\":\"Alle Aktivit\\u00e4ten ansehen \\u2192\",\"ago_day\":\"vor %d Tag\",\"ago_days\":\"vor %d Tagen\",\"ago_week\":\"vor %d Woche\",\"ago_weeks\":\"vor %d Wochen\",\"ago_month\":\"vor %d Monat\",\"ago_months\":\"vor %d Monaten\",\"ago_year\":\"vor %d Jahr\",\"ago_years\":\"vor %d Jahren\",\"anim_unavailable\":\"Das Programm ist vor\\u00fcbergehend nicht verf\\u00fcgbar\",\"anim_eyebrow\":\"Erleben Sie unvergessliche Momente\",\"anim_title\":\"Animationen & Veranstaltungen\",\"anim_hero_text\":\"Alle aktuellen Aktivit\\u00e4ten, die H\\u00f6hepunkte der Woche und kommende Veranstaltungen w\\u00e4hrend Ihres Aufenthalts.\",\"anim_sections\":\"Seitenbereiche\",\"anim_nav_today\":\"Heute\",\"anim_nav_week\":\"Diese Woche\",\"anim_nav_upcoming\":\"Demn\\u00e4chst\",\"anim_nav_calendar\":\"Kalender\",\"anim_where\":\"Wo?\",\"anim_onsite\":\"Vor Ort\",\"anim_nearby\":\"In der Umgebung\",\"anim_no_onsite\":\"Derzeit keine Aktivit\\u00e4t vor Ort\",\"anim_no_nearby\":\"Derzeit keine Veranstaltung in der Umgebung\",\"anim_all_day\":\"Ganzt\\u00e4gig\",\"anim_at\":\"um %s\",\"anim_see_detail\":\"Details ansehen\",\"anim_live\":\"L\\u00e4uft\",\"anim_onsite_spot\":\"Vor Ort \\u00b7 %s\",\"anim_badge_until\":\"Bis\",\"anim_badge_from\":\"Ab\",\"anim_badge_today\":\"Heute\",\"anim_filter_cat\":\"Nach Kategorie filtern\",\"anim_all_f\":\"Alle\",\"anim_prev_day\":\"Vorheriger Tag\",\"anim_next_day\":\"N\\u00e4chster Tag\",\"anim_today_title\":\"Aktivit\\u00e4ten heute\",\"anim_tomorrow_title\":\"Aktivit\\u00e4ten morgen\",\"anim_day_title\":\"Aktivit\\u00e4ten am %s\",\"anim_relax_today\":\"Heute ein entspannter Tag\",\"anim_nothing_day\":\"An diesem Tag ist nichts geplant\",\"anim_next_on\":\"N\\u00e4chste Veranstaltung am %s.\",\"anim_soon\":\"Das Programm wird bald aktualisiert.\",\"anim_see_day\":\"Diesen Tag ansehen\",\"anim_prev_acts\":\"Vorherige Aktivit\\u00e4ten\",\"anim_next_acts\":\"N\\u00e4chste Aktivit\\u00e4ten\",\"anim_prev_week\":\"Vorherige Woche\",\"anim_next_week\":\"N\\u00e4chste Woche\",\"anim_week_title\":\"Die Highlights der Woche\",\"anim_next_week_title\":\"N\\u00e4chste Woche\",\"anim_week_of\":\"Woche vom %s\",\"anim_week_days\":\"Wochentage\",\"anim_today_paren\":\"(heute)\",\"anim_activity\":\"%d Aktivit\\u00e4t\",\"anim_activities\":\"%d Aktivit\\u00e4ten\",\"anim_nothing\":\"nichts geplant\",\"anim_pick_day\":\"W\\u00e4hlen Sie einen anderen Tag, um sein Programm zu sehen.\",\"anim_sort\":\"Veranstaltungen sortieren\",\"anim_sort_date\":\"Nach Datum sortieren\",\"anim_sort_name\":\"Nach Name sortieren\",\"anim_upcoming_title\":\"Alle kommenden Veranstaltungen\",\"anim_no_upcoming\":\"Keine kommenden Veranstaltungen\",\"anim_try_cat\":\"Versuchen Sie eine andere Kategorie.\",\"anim_more\":\"Weitere Veranstaltungen (%d)\",\"anim_hide_cal\":\"Kalender ausblenden\",\"anim_show_cal\":\"Ganzen Kalender ansehen\",\"anim_cal_title\":\"Monatskalender\",\"anim_cal_sub\":\"Alle Termine des Monats auf einen Blick.\",\"anim_prev_month\":\"Vorheriger Monat\",\"anim_next_month\":\"N\\u00e4chster Monat\",\"anim_more_info\":\"Mehr Informationen\",\"anim_new_tab\":\"(neuer Tab)\",\"date_locale\":\"de-DE\",\"page_faq\":\"FAQ\",\"page_metadatas\":\"Entdecken Sie die Umgebung\",\"page_animations\":\"Animationen und Veranstaltungen\",\"page_corpus\":\"Praktische Informationen\",\"anim_event\":\"Veranstaltung\"};\n    var DECIMAL = \",\";\n    function plural(n) { return n + ' ' + (n > 1 ? T.ideas : T.idea); }\n    var MAP = {\"tiles_url\":\"https:\\\/\\\/tile.openstreetmap.org\\\/{z}\\\/{x}\\\/{y}.png\",\"attribution\":\"&copy; <a href=\\\"https:\\\/\\\/www.openstreetmap.org\\\/copyright\\\">OpenStreetMap<\\\/a>\",\"home\":null};\n    var ACCENT = \"#2e5e45\";\n    var STEP = 12;\n    var BY_ID = {};\n    ITEMS.forEach(function(it) {\n      BY_ID[it.id] = it;\n    });\n\n    var app = document.getElementById('mv-app');\n    if (!app) return;\n\n    var state = { selected: null, page: 1, q: '', km: 0, cat: 'all', limit: STEP, view: window.matchMedia('(max-width: 1100px)').matches ? 'list' : 'map' };\n\n    \/\/ \u2550\u2550\u2550 Ic\u00f4nes (SVG statiques) + ic\u00f4ne d\u00e9duite de la cat\u00e9gorie \u2550\u2550\u2550\n    var ICONS = {\n      grid: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"4\" y=\"4\" width=\"6\" height=\"6\" rx=\"1\"\/><rect x=\"14\" y=\"4\" width=\"6\" height=\"6\" rx=\"1\"\/><rect x=\"4\" y=\"14\" width=\"6\" height=\"6\" rx=\"1\"\/><rect x=\"14\" y=\"14\" width=\"6\" height=\"6\" rx=\"1\"\/><\/svg>',\n      home: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><path d=\"M3 11l9-7 9 7\"\/><path d=\"M5 10v10h14V10\"\/><path d=\"M10 20v-6h4v6\"\/><\/svg>',\n      beach: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M12 3a9 9 0 0 1 9 9H3a9 9 0 0 1 9-9z\"\/><path d=\"M12 12v9M8 21h8\"\/><\/svg>',\n      leaf: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 19c0-8 5-14 15-14 0 10-6 15-14 15\"\/><path d=\"M5 19l7-7\"\/><\/svg>',\n      family: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"8\" cy=\"6\" r=\"2.5\"\/><circle cx=\"16\" cy=\"6\" r=\"2.5\"\/><path d=\"M4 21v-6a4 4 0 0 1 8 0v6M12 21v-6a4 4 0 0 1 8 0v6\"\/><\/svg>',\n      food: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M7 3v8a2 2 0 0 0 4 0V3M9 11v10M17 3c-2 0-3 2-3 5s1 4 3 4v9\"\/><\/svg>',\n      shop: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><path d=\"M4 9l1.5-5h13L20 9\"\/><path d=\"M4 9h16v2a3 3 0 0 1-6 0 3 3 0 0 1-4 0 3 3 0 0 1-6 0z\"\/><path d=\"M5 13v7h14v-7\"\/><\/svg>',\n      calendar: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\"\/><path d=\"M16 3v4M8 3v4M3 10h18\"\/><\/svg>',\n      wine: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M8 3h8l-.5 6a3.5 3.5 0 0 1-7 0z\"\/><path d=\"M12 13v8M8 21h8\"\/><\/svg>',\n      walk: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"13\" cy=\"4\" r=\"2\"\/><path d=\"M9 21l3-7 3 3v5M8 12l2-4 4 1 3 3\"\/><\/svg>',\n      bed: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M3 18V7M3 14h18v4M21 14v-3a3 3 0 0 0-3-3h-7v6\"\/><circle cx=\"7\" cy=\"11\" r=\"2\"\/><\/svg>',\n      pool: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M2 17c2 0 2-1.5 4-1.5S8 17 10 17s2-1.5 4-1.5 2 1.5 4 1.5 2-1.5 4-1.5M8 14V5a2 2 0 0 1 4 0M14 14V5a2 2 0 0 1 4 0M8 9h6\"\/><\/svg>',\n      info: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 11v6M12 7.5v.5\"\/><\/svg>',\n      pin: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z\"\/><circle cx=\"12\" cy=\"9.5\" r=\"2.5\"\/><\/svg>',\n      car: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 17h14M5 17v2M19 17v2M4 13l2-6h12l2 6v4H4z\"\/><circle cx=\"8\" cy=\"14.5\" r=\"0.5\"\/><circle cx=\"16\" cy=\"14.5\" r=\"0.5\"\/><\/svg>',\n      clock: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 7v5l3 2\"\/><\/svg>',\n      star: '<svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 3l2.8 5.7 6.2.9-4.5 4.4 1.1 6.2L12 17.3 6.4 20.2l1.1-6.2L3 9.6l6.2-.9z\"\/><\/svg>',\n      arrow: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>',\n      home: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3L3 19h18L12 3z\"\/><path d=\"M12 3v16M9 19l3-6 3 6\"\/><\/svg>',\n      reset: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 9V4h5M20 15v5h-5M4 4l6 6M20 20l-6-6M15 4h5v5M9 20H4v-5\"\/><\/svg>',\n      maps: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 4L3 6v14l6-2 6 2 6-2V4l-6 2-6-2z\"\/><path d=\"M9 4v14M15 6v14\"\/><\/svg>',\n      doc: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><path d=\"M6 3h8l4 4v14H6z\"\/><path d=\"M14 3v4h4\"\/><\/svg>'\n    };\n\n    var ICON_RULES = [\n      [\/ville|village|city|alentour\/, 'home'],\n      [\/plage|beach|mer\\b\/, 'beach'],\n      [\/nature|balade|rando|parc|jardin\/, 'leaf'],\n      [\/famil|enfant|kid\/, 'family'],\n      [\/restau|gastro|repas|snack|bar\\b\/, 'food'],\n      [\/march|boutique|commerce|shop\/, 'shop'],\n      [\/evenement|\u00e9v\u00e9nement|event|agenda|atelier|animation\/, 'calendar'],\n      [\/vin|boisson|cave|terroir|bodega\/, 'wine'],\n      [\/activit|sport|loisir|lieu\/, 'walk'],\n      [\/heberg|locatif|accom|mobil\/, 'bed'],\n      [\/piscine|pool|aqua|pataug\/, 'pool'],\n      [\/service|equipement|\u00e9quipement|info\/, 'info']\n    ];\n\n    function catIcon(key) {\n      var c = CATS[key];\n      var hay = (key + ' ' + (c ? c.label : '')).toLowerCase();\n      for (var i = 0; i < ICON_RULES.length; i++) {\n        if (ICON_RULES[i][0].test(hay)) return ICON_RULES[i][1];\n      }\n      return 'pin';\n    }\n\n    function el(tag, cls, text) {\n      var n = document.createElement(tag);\n      if (cls) n.className = cls;\n      if (text != null) n.textContent = text;\n      return n;\n    }\n\n    function icon(name) {\n      var s = el('span', 'mv-icon');\n      s.setAttribute('aria-hidden', 'true');\n      s.innerHTML = ICONS[name] || ICONS.pin;\n      return s;\n    }\n\n    function catColor(key) {\n      return CATS[key] ? CATS[key].color : ACCENT;\n    }\n\n    function norm(s) {\n      return (s || '').toLowerCase().normalize('NFD').replace(\/[\u0300-\u036f]\/g, '');\n    }\n\n    \/\/ \u2550\u2550\u2550 Filtrage \u2550\u2550\u2550\n    function filtered() {\n      var q = norm(state.q.trim());\n      return ITEMS.filter(function(it) {\n        if (state.cat !== 'all' && it.type !== state.cat) return false;\n        \/\/ Distance : seules les fiches qui ont une distance connue sont filtr\u00e9es\n        if (state.km && it.km !== null && it.km > state.km) return false;\n        if (q) {\n          var hay = norm([it.name, it.city, it.description, (CATS[it.type] || {}).label, it.tags.join(' ')].join(' '));\n          if (hay.indexOf(q) === -1) return false;\n        }\n        return true;\n      });\n    }\n\n    \/\/ \u2550\u2550\u2550 Cat\u00e9gories \u2550\u2550\u2550\n    function renderCats() {\n      var box = document.getElementById('mv-cats');\n      box.innerHTML = '';\n      var all = el('button', 'mv-cat' + (state.cat === 'all' ? ' is-active' : ''));\n      all.type = 'button';\n      all.appendChild(icon('grid'));\n      all.appendChild(document.createTextNode(T.all));\n      all.addEventListener('click', function() {\n        setCat('all');\n      });\n      box.appendChild(all);\n      Object.keys(CATS).forEach(function(key) {\n        var b = el('button', 'mv-cat' + (state.cat === key ? ' is-active' : ''));\n        b.type = 'button';\n        b.style.setProperty('--mv-cat', catColor(key));\n        b.appendChild(icon(catIcon(key)));\n        b.appendChild(document.createTextNode(CATS[key].label));\n        b.addEventListener('click', function() {\n          setCat(key);\n        });\n        box.appendChild(b);\n      });\n      updateCatArrows();\n      var active = box.querySelector('.is-active');\n      if (active && active.scrollIntoView && active.offsetLeft + active.offsetWidth > box.scrollLeft + box.clientWidth) {\n        box.scrollLeft = active.offsetLeft - 80;\n      }\n    }\n\n    \/\/ Fl\u00e8ches de la ligne de cat\u00e9gories (visibles seulement s'il reste \u00e0 d\u00e9filer)\n    var catsWrap = document.getElementById('mv-cats-wrap');\n    var catsRow = document.getElementById('mv-cats');\n\n    function updateCatArrows() {\n      var max = catsRow.scrollWidth - catsRow.clientWidth;\n      catsWrap.classList.toggle('can-left', catsRow.scrollLeft > 4);\n      catsWrap.classList.toggle('can-right', catsRow.scrollLeft < max - 4);\n    }\n    catsRow.addEventListener('scroll', updateCatArrows, { passive: true });\n    window.addEventListener('resize', updateCatArrows);\n    catsWrap.querySelector('.mv-cats-arrow--left').addEventListener('click', function() {\n      catsRow.scrollBy({ left: -catsRow.clientWidth * 0.7, behavior: 'smooth' });\n    });\n    catsWrap.querySelector('.mv-cats-arrow--right').addEventListener('click', function() {\n      catsRow.scrollBy({ left: catsRow.clientWidth * 0.7, behavior: 'smooth' });\n    });\n\n    function setCat(key) {\n      state.cat = key;\n      state.limit = STEP;\n      state.page = 1;\n      renderCats();\n      renderList();\n    }\n\n    \/\/ \u2550\u2550\u2550 Cartes \u2550\u2550\u2550\n    function picture(it) {\n      if (!it.image) {\n        var ph = el('div', 'mv-card-noimg');\n        ph.appendChild(icon(catIcon(it.type)));\n        return ph;\n      }\n      var img = el('img');\n      img.src = it.image;\n      img.alt = it.name;\n      img.loading = 'lazy';\n      img.onerror = function() {\n        img.replaceWith(picture({ type: it.type, image: '' }));\n      };\n      return img;\n    }\n\n    function metaLine(it) {\n      var m = el('p', 'mv-meta');\n      if (it.km !== null) {\n        var a = el('span');\n        a.appendChild(icon('car'));\n        a.appendChild(document.createTextNode(String(it.km).replace('.', DECIMAL) + ' km'));\n        m.appendChild(a);\n      }\n      if (it.min !== null) {\n        var b = el('span');\n        b.appendChild(icon('clock'));\n        b.appendChild(document.createTextNode(it.min + ' min'));\n        m.appendChild(b);\n      }\n      if (it.km === null && it.min === null && it.city) {\n        var c = el('span');\n        c.appendChild(icon('pin'));\n        c.appendChild(document.createTextNode(it.city));\n        m.appendChild(c);\n      }\n      return m.childNodes.length ? m : null;\n    }\n\n    function card(it, featured, mini) {\n      var c = el('article', 'mv-card' + (featured ? ' mv-card--featured' : '') + (mini ? ' mv-card--mini' : ''));\n      c.tabIndex = 0;\n      c.dataset.id = it.id;\n      c.style.setProperty('--mv-cat', catColor(it.type));\n\n      var media = el('div', 'mv-card-media');\n      media.appendChild(picture(it));\n      if (!featured && !mini && CATS[it.type]) media.appendChild(el('span', 'mv-pill', CATS[it.type].label));\n      \/\/ Les mini-cartes aussi : la photo y est petite, mais c'est la m\u00eame photo,\n      \/\/ et la licence ne pr\u00e9voit pas d'exception de taille.\n      if (it.credit) {\n        var cr = el('span', 'mv-credit', '\u00a9');\n        cr.title = 'Photo : ' + it.credit;\n        cr.setAttribute('aria-label', 'Photo : ' + it.credit);\n        cr.setAttribute('data-credit', 'Photo : ' + it.credit);\n        media.appendChild(cr);\n      }\n      c.appendChild(media);\n\n      var body = el('div', 'mv-card-body');\n      if (featured) {\n        var flag = el('span', 'mv-flag');\n        flag.appendChild(icon('star'));\n        flag.appendChild(document.createTextNode(T.featured));\n        body.appendChild(flag);\n      }\n      if (mini && CATS[it.type]) body.appendChild(el('span', 'mv-pill', CATS[it.type].label));\n      body.appendChild(el('h3', 'mv-card-title', it.name));\n      var meta = metaLine(it);\n      if (meta) body.appendChild(meta);\n      if (it.description) body.appendChild(el('p', 'mv-card-desc', it.description));\n      if (!featured && !mini && it.tags.length) {\n        var tags = el('div', 'mv-tags');\n        it.tags.forEach(function(t) {\n          tags.appendChild(el('span', 'mv-tag', t));\n        });\n        body.appendChild(tags);\n      }\n      var foot = el('div', 'mv-card-foot');\n      var btn = el('button', 'mv-discover', T.discover);\n      btn.type = 'button';\n      btn.appendChild(icon('arrow'));\n      foot.appendChild(btn);\n      body.appendChild(foot);\n      c.appendChild(body);\n\n      c.addEventListener('click', function() {\n        openModal(it);\n      });\n      c.addEventListener('keydown', function(e) {\n        if (e.key === 'Enter') openModal(it);\n      });\n      if (mini) return c;\n      c.addEventListener('mouseenter', function() {\n        highlightPin(it.id, true);\n      });\n      c.addEventListener('mouseleave', function() {\n        highlightPin(it.id, false);\n      });\n      return c;\n    }\n\n    function renderList() {\n      var list = filtered();\n      var grid = document.getElementById('mv-grid');\n      var more = document.getElementById('mv-more');\n      grid.innerHTML = '';\n      more.innerHTML = '';\n\n      var count = document.getElementById('mv-count');\n      count.innerHTML = '';\n      count.appendChild(el('strong', null, plural(list.length)));\n      count.appendChild(document.createTextNode(' ' + T.around_you));\n\n      if (!list.length) {\n        var empty = el('div', 'mv-empty');\n        empty.appendChild(el('strong', null, T.no_result));\n        empty.appendChild(document.createTextNode(T.no_result_hint));\n        grid.appendChild(empty);\n      }\n\n      \/\/ Pagination : 4 rang\u00e9es pleines par page, selon le nombre de colonnes affich\u00e9es.\n      \/\/ La fiche \u00ab \u00c0 la une \u00bb occupe 2 cases : la 1re page a donc une fiche de moins.\n      var cols = gridColumns();\n      var perPage = cols === 1 ? 8 : cols * 4;\n      var featuredOn = !state.q && list.length > 2 && !!list[0].image && !!list[0].featurable && cols > 1;\n      var first = featuredOn ? perPage - 1 : perPage;\n      var pages = list.length <= first ? 1 : 1 + Math.ceil((list.length - first) \/ perPage);\n      if (state.page > pages) state.page = pages;\n      var start = state.page === 1 ? 0 : first + (state.page - 2) * perPage;\n      var end = state.page === 1 ? first : start + perPage;\n\n      list.slice(start, end).forEach(function(it, i) {\n        grid.appendChild(card(it, featuredOn && state.page === 1 && i === 0));\n      });\n\n      if (pages > 1) renderPager(more, pages);\n\n      updateMap(list);\n    }\n\n    \/**\n     * Remonte au bloc demand\u00e9, sous l'en-t\u00eate fixe du th\u00e8me. Apr\u00e8s le rendu\n     * (image suivante) : la liste vient de changer de hauteur \u2014 28 pages qui\n     * deviennent une \u2014 et une position calcul\u00e9e avant tombait trop haut ou\n     * trop bas selon la cat\u00e9gorie cliqu\u00e9e.\n     *\/\n    var appRoot = document.getElementById('mv-app');\n    if (appRoot) appRoot.style.overflowAnchor = 'none';\n\n    function scrollToBlock(id) {\n      requestAnimationFrame(function() {\n        var target = document.getElementById(id);\n        if (!target) return;\n        var top = target.getBoundingClientRect().top + window.pageYOffset - headerOffset() - 16;\n        window.scrollTo({ top: Math.max(0, top), behavior: 'smooth' });\n      });\n    }\n\n    \/** Nombre de colonnes de la grille (d\u00e9pend de la largeur disponible) *\/\n    function gridColumns() {\n      var g = document.getElementById('mv-grid');\n      var n = g ? getComputedStyle(g).gridTemplateColumns.split(' ').filter(Boolean).length : 3;\n      return Math.max(1, n || 3);\n    }\n\n    function renderPager(box, pages) {\n      box.setAttribute('role', 'navigation');\n      box.setAttribute('aria-label', T.pagination);\n      var go = function(n) {\n        state.page = n;\n        try {\n          renderList();\n        } finally {\n          scrollToBlock('mv-count');\n        }\n      };\n      var btn = function(label, n, opts) {\n        var b = el('button', 'mv-page', label);\n        b.type = 'button';\n        if (opts.aria) b.setAttribute('aria-label', opts.aria);\n        if (opts.current) b.setAttribute('aria-current', 'page');\n        b.disabled = !!opts.disabled;\n        b.addEventListener('click', function() {\n          if (!opts.current) go(n);\n        });\n        box.appendChild(b);\n      };\n      btn('\u2039', state.page - 1, { disabled: state.page === 1, aria: T.prev_page });\n      var last = 0;\n      for (var p = 1; p <= pages; p++) {\n        if (p === 1 || p === pages || Math.abs(p - state.page) <= 1) {\n          if (p - last > 1) box.appendChild(el('span', 'mv-page-gap', '\u2026'));\n          btn(String(p), p, { current: p === state.page, aria: 'Page ' + p });\n          last = p;\n        }\n      }\n      btn('\u203a', state.page + 1, { disabled: state.page === pages, aria: T.next_page });\n    }\n\n    \/\/ \u2550\u2550\u2550 Id\u00e9es selon vos envies (cat\u00e9gories les plus fournies) \u2550\u2550\u2550\n    function renderIdeas() {\n      var sec = document.getElementById('mv-ideas');\n      \/\/ Les fiches sans gabarit (\u00ab Infos pratiques \u00bb) ne sont pas une envie.\n      var keys = Object.keys(CATS).filter(function(k) { return !CATS[k].adhoc; }).sort(function(a, b) {\n        return (CATS[b].image ? 1 : 0) - (CATS[a].image ? 1 : 0) || CATS[b].count - CATS[a].count;\n      }).slice(0, 4);\n      if (keys.length < 2) return;\n\n      var head = el('div', 'mv-ideas-head');\n      var h = el('h2', 'mv-ideas-title', T.ideas_title);\n      h.id = 'mv-ideas-title';\n      head.appendChild(h);\n      head.appendChild(el('p', 'mv-ideas-sub', T.ideas_sub));\n      sec.appendChild(head);\n\n      var grid = el('div', 'mv-ideas-grid');\n      keys.forEach(function(key) {\n        var c = CATS[key];\n        var b = el('button', 'mv-idea');\n        b.type = 'button';\n        b.style.setProperty('--mv-cat', c.color);\n        var img = el('span', 'mv-idea-img');\n        if (c.image) img.style.backgroundImage = 'url(\"' + c.image.replace(\/\"\/g, '%22') + '\")';\n        b.appendChild(img);\n        var body = el('span', 'mv-idea-body');\n        body.appendChild(icon(catIcon(key)));\n        var txt = el('span', 'mv-idea-text');\n        txt.appendChild(el('strong', null, c.label));\n        txt.appendChild(el('span', null, plural(c.count)));\n        body.appendChild(txt);\n        body.appendChild(icon('arrow'));\n        b.appendChild(body);\n        b.addEventListener('click', function() {\n          try {\n            setCat(key);\n          } finally {\n            scrollToBlock('mv-cats');\n          }\n        });\n        grid.appendChild(b);\n      });\n      sec.appendChild(grid);\n    }\n\n    \/\/ \u2550\u2550\u2550 Carte Leaflet \u2550\u2550\u2550\n    var map = null,\n      layer = null,\n      homeMarker = null,\n      radius = null,\n      resetBtn = null,\n      fitting = false, \/\/ cadrage lanc\u00e9 par le code (et non par l'utilisateur)\n      overview = null, \/\/ dernier cadrage \u00ab vue d'ensemble \u00bb\n      pins = {};\n\n    \/\/ Copie de Leaflet utilis\u00e9e pour TOUTE la carte. Sur certains sites (th\u00e8me qui\n    \/\/ d\u00e9place les scripts avec jQuery, WP Rocket\u2026) Leaflet s'ex\u00e9cute deux fois : la\n    \/\/ 2e copie \u00e9crase window.L alors que markercluster s'est attach\u00e9 \u00e0 la 1re.\n    \/\/ M\u00e9langer les deux copies rend les rep\u00e8res invisibles et casse le regroupement.\n    var Lf = null;\n\n    function resolveLeaflet() {\n      var cur = window.L;\n      if (!cur) return null;\n      if (typeof cur.markerClusterGroup === 'function' && typeof cur.MarkerClusterGroup === 'function') return cur;\n      if (typeof cur.noConflict === 'function') {\n        var current = cur.noConflict(); \/\/ window.L \u2190 copie pr\u00e9c\u00e9dente\n        var previous = window.L;\n        if (previous && previous !== current && typeof previous.MarkerClusterGroup === 'function') {\n          \/\/ markercluster lit window.L \u00e0 chaque action (clic, zoom) : on remet\n          \/\/ durablement la copie qui le porte (l'autre n'est qu'un doublon de la m\u00eame version).\n          \/\/ Sans \u00e7a, les identifiants internes des deux copies se m\u00e9langent et les\n          \/\/ clics sur les rep\u00e8res \/ groupes sont perdus.\n          window.L = previous;\n          return previous;\n        }\n        window.L = current;\n      }\n      return null;\n    }\n\n    function pinIcon(color, hover, selected) {\n      return Lf.divIcon({\n        className: 'mv-pin' + (hover ? ' is-hover' : '') + (selected ? ' is-selected' : ''),\n        html: '<svg width=\"30\" height=\"39\" viewBox=\"0 0 28 36\"><path d=\"M14 35C14 35 26 22.5 26 13.5A12 12 0 0 0 2 13.5C2 22.5 14 35 14 35Z\" fill=\"' + color + '\" stroke=\"#fff\" stroke-width=\"2\"\/><circle cx=\"14\" cy=\"13.5\" r=\"4.5\" fill=\"#fff\"\/><\/svg>',\n        iconSize: [30, 39],\n        iconAnchor: [15, 39],\n        popupAnchor: [0, -34]\n      });\n    }\n\n    var mapTries = 0;\n\n    function initMap() {\n      var elMap = document.getElementById('mv-map');\n      if (!elMap) return;\n      \/\/ Attend Leaflet + markercluster (scripts parfois diff\u00e9r\u00e9s), 8 s max ;\n      \/\/ au-del\u00e0, carte sans regroupement plut\u00f4t que pas de carte.\n      Lf = resolveLeaflet();\n      if (!Lf) {\n        if (++mapTries < 80) return setTimeout(initMap, 100);\n        if (!window.L) return;\n        Lf = window.L;\n      }\n      map = Lf.map(elMap, { zoomControl: false, scrollWheelZoom: false, attributionControl: false }).setView([46.6, 1.9], 6);\n      \/\/ Garde-fou : si le th\u00e8me r\u00e9ex\u00e9cute Leaflet plus tard, on remet la bonne copie\n      \/\/ juste avant toute interaction (markercluster lit window.L au moment du clic).\n      ['pointerdown', 'mousedown', 'touchstart', 'click', 'wheel'].forEach(function(t) {\n        elMap.addEventListener(t, function() {\n          if (window.L !== Lf) window.L = Lf;\n        }, true);\n      });\n      Lf.tileLayer(MAP.tiles_url, { maxZoom: 19 }).addTo(map);\n      Lf.control.zoom({ position: 'bottomright' }).addTo(map);\n      Lf.control.attribution({ position: 'bottomleft', prefix: false }).addAttribution(MAP.attribution).addTo(map);\n\n      \/\/ \u00ab Revenir \u00e0 la vue d'ensemble \u00bb : appara\u00eet d\u00e8s que l'utilisateur zoome \/ d\u00e9place la carte\n      resetBtn = el('button', 'mv-reset');\n      resetBtn.type = 'button';\n      resetBtn.hidden = true;\n      resetBtn.appendChild(icon('reset'));\n      resetBtn.appendChild(document.createTextNode(T.reset_view));\n      resetBtn.addEventListener('click', function() {\n        fitOverview();\n        resetBtn.hidden = true;\n      });\n      elMap.appendChild(resetBtn);\n      Lf.DomEvent.disableClickPropagation(resetBtn);\n      map.on('zoomstart movestart', function() {\n        if (!fitting && resetBtn) resetBtn.hidden = false;\n      });\n\n      \/\/ Rep\u00e8re de l'\u00e9tablissement, toujours visible (hors regroupement)\n      if (MAP.home) {\n        homeMarker = Lf.marker([MAP.home.lat, MAP.home.lng], {\n          icon: Lf.divIcon({ className: 'mv-home', html: '<span class=\"mv-home-pin\">' + ICONS.home + '<\/span>', iconSize: [44, 44], iconAnchor: [22, 22] }),\n          \/\/ Sous les rep\u00e8res et groupes : les fiches situ\u00e9es \u00e0 l'\u00e9tablissement m\u00eame\n          \/\/ (souvent nombreuses) restent visibles et cliquables par-dessus.\n          zIndexOffset: -1000,\n          keyboard: false,\n          interactive: false,\n          title: MAP.home.label\n        }).addTo(map);\n        homeMarker.bindTooltip(MAP.home.label, { permanent: true, direction: 'right', offset: [24, 0], className: 'mv-home-label' });\n      }\n\n      layer = (typeof Lf.markerClusterGroup === 'function') ? Lf.markerClusterGroup({\n        showCoverageOnHover: false,\n        maxClusterRadius: 45,\n        iconCreateFunction: function(cl) {\n          var n = cl.getChildCount();\n          var s = n < 10 ? 34 : (n < 50 ? 40 : 46);\n          return Lf.divIcon({ className: 'mv-cluster', html: '<span style=\"width:' + s + 'px;height:' + s + 'px;background:' + ACCENT + '\">' + n + '<\/span>', iconSize: [s, s] });\n        }\n      }) : Lf.layerGroup();\n      layer.addTo(map);\n      renderList();\n    }\n\n    \/**\n     * Met la carte \u00e0 jour sans jamais bloquer la page. Le th\u00e8me (ou WP Rocket)\n     * peut r\u00e9ex\u00e9cuter Leaflet apr\u00e8s coup : markercluster lit alors la mauvaise\n     * copie (\u00ab L.DistanceGrid is not a constructor \u00bb) au moment o\u00f9 la LISTE met\n     * la carte \u00e0 jour. On remet la bonne copie avant, et une erreur de carte\n     * n'emp\u00eache plus la liste ni le d\u00e9filement qui suivent.\n     *\/\n    function updateMap(list) {\n      if (!map || !layer) return;\n      if (Lf && window.L !== Lf) window.L = Lf;\n      try {\n        drawMap(list);\n      } catch (e) {\n        if (window.console) console.warn('Elaia \u2014 carte non mise \u00e0 jour :', e);\n      }\n    }\n\n    function drawMap(list) {\n      layer.clearLayers();\n      pins = {};\n      var bounds = [];\n      var markers = [];\n      list.forEach(function(it) {\n        if (it.lat === null) return;\n        var m = Lf.marker([it.lat, it.lng], { icon: pinIcon(catColor(it.type), false, it.id === state.selected), title: it.name });\n        m.on('click', function() {\n          selectItem(it.id);\n        });\n        markers.push(m);\n        pins[it.id] = m;\n        bounds.push([it.lat, it.lng]);\n      });\n      \/\/ Ajout group\u00e9 : un seul recalcul des regroupements (plus fiable que addLayer un par un)\n      if (typeof layer.addLayers === 'function') layer.addLayers(markers);\n      else markers.forEach(function(m) {\n        layer.addLayer(m);\n      });\n\n      \/\/ Rayon du filtre de distance autour de l'\u00e9tablissement\n      if (radius) {\n        map.removeLayer(radius);\n        radius = null;\n      }\n      if (MAP.home) {\n        bounds.push([MAP.home.lat, MAP.home.lng]);\n        if (state.km) {\n          radius = Lf.circle([MAP.home.lat, MAP.home.lng], {\n            radius: state.km * 1000,\n            color: ACCENT,\n            weight: 1.5,\n            dashArray: '6 6',\n            fillColor: ACCENT,\n            fillOpacity: 0.06,\n            interactive: false\n          }).addTo(map);\n        }\n      }\n\n      if (state.selected !== null && !pins[state.selected]) state.selected = null;\n      renderPreview();\n      overview = radius ? { bounds: radius.getBounds(), padding: [20, 20] } :\n        (bounds.length > 1 ? { bounds: bounds, padding: [40, 40] } :\n          (bounds.length === 1 ? { center: bounds[0] } : null));\n      fitOverview();\n      if (resetBtn) resetBtn.hidden = true;\n      setTimeout(function() {\n        map.invalidateSize();\n      }, 50);\n    }\n\n    \/** Cadre la carte sur la vue d'ensemble, sans afficher le bouton \u00ab Revenir\u2026 \u00bb *\/\n    function fitOverview() {\n      if (!map || !overview) return;\n      fitting = true;\n      if (overview.center) map.setView(overview.center, 13, { animate: false });\n      else map.fitBounds(overview.bounds, { padding: overview.padding, maxZoom: 13, animate: false });\n      setTimeout(function() {\n        fitting = false;\n      }, 50);\n    }\n\n    function highlightPin(id, on) {\n      var m = pins[id];\n      if (!m) return;\n      var it = BY_ID[id];\n      var selected = id === state.selected;\n      m.setIcon(pinIcon(catColor(it.type), on, selected));\n      m.setZIndexOffset(on || selected ? 1000 : 0);\n    }\n\n    \/** S\u00e9lectionne une fiche depuis la carte : rep\u00e8re mis en avant + fiche sous la carte *\/\n    function selectItem(id) {\n      var prev = state.selected;\n      state.selected = id;\n      if (prev !== null) highlightPin(prev, false);\n      highlightPin(id, false);\n      renderPreview();\n    }\n\n    function renderPreview() {\n      var box = document.getElementById('mv-preview');\n      if (!box) return;\n      box.innerHTML = '';\n      var it = state.selected !== null ? BY_ID[state.selected] : null;\n      if (!it) {\n        var hint = el('div', 'mv-preview-hint');\n        hint.appendChild(icon('pin'));\n        hint.appendChild(document.createTextNode(T.map_hint));\n        box.appendChild(hint);\n        return;\n      }\n      box.appendChild(card(it, false, true));\n    }\n\n    \/\/ \u2550\u2550\u2550 Modal \u2550\u2550\u2550\n    var modal = document.getElementById('mv-modal');\n    if (modal.parentNode !== document.body) document.body.appendChild(modal);\n    var content = document.getElementById('mv-modal-content');\n    content.style.setProperty('--mv-accent', ACCENT);\n    content.style.setProperty('--mv-accent-soft', ACCENT + '1a');\n    content.style.setProperty('--mv-cream', '#faf7f2');\n    content.style.setProperty('--mv-line', '#ebe5da');\n    content.style.setProperty('--mv-muted', '#6b6559');\n    var lastFocus = null;\n\n    function openModal(it) {\n      lastFocus = document.activeElement;\n      content.innerHTML = '';\n      content.style.setProperty('--mv-cat', catColor(it.type));\n\n      \/\/ Deux colonnes d\u00e8s le haut : m\u00e9dias \/ actions \u00e0 gauche, texte \u00e0 droite\n      var body = el('div', 'mv-modal-body');\n      var cols = el('div', 'mv-modal-cols');\n      var side = el('div', 'mv-modal-col mv-modal-col--media');\n      var main = el('div', 'mv-modal-col');\n      cols.appendChild(side);\n      cols.appendChild(main);\n      body.appendChild(cols);\n      var mainBody = body;\n\n      if (it.image) {\n        var img = el('img', 'mv-modal-img');\n        img.src = it.image;\n        img.alt = it.name;\n        img.onerror = function() {\n          img.remove();\n          if (cap) cap.remove();\n        };\n        side.appendChild(img);\n        var cap = null;\n        if (it.credit) {\n          cap = el('p', 'mv-modal-credit', 'Photo : ' + it.credit);\n          side.appendChild(cap);\n        }\n      }\n\n      body = main;\n      if (CATS[it.type]) {\n        var pill = el('span', 'mv-pill', CATS[it.type].label);\n        pill.style.alignSelf = 'flex-start';\n        body.appendChild(pill);\n      }\n      var t = el('h2', 'mv-modal-title', it.name);\n      t.id = 'mv-modal-title';\n      body.appendChild(t);\n      var meta = metaLine(it);\n      if (meta) body.appendChild(meta);\n      if (it.event) {\n        var ev = el('span', 'mv-modal-event');\n        ev.appendChild(icon('calendar'));\n        ev.appendChild(document.createTextNode(it.event));\n        body.appendChild(ev);\n      }\n      if (it.description) body.appendChild(el('p', 'mv-modal-desc', it.description));\n\n      if (it.fields.length) {\n        var f = el('div', 'mv-fields');\n        it.fields.forEach(function(fd) {\n          var d = el('div', 'mv-field');\n          d.appendChild(el('span', null, fd.label));\n          d.appendChild(el('strong', null, fd.value));\n          f.appendChild(d);\n        });\n        body.appendChild(f);\n      }\n\n      \/\/ Colonne m\u00e9dias (gauche)\n      body = side;\n      var actions = el('div', 'mv-modal-actions');\n      \/\/ Google Maps seulement si on sait o\u00f9 se trouve la fiche (sinon lien trompeur)\n      var gmTarget = mapsTarget(it);\n      if (gmTarget) {\n        var gm = el('a', 'mv-btn', gmTarget.label);\n        gm.href = gmTarget.url;\n        gm.target = '_blank';\n        gm.rel = 'noopener';\n        gm.insertBefore(icon('maps'), gm.firstChild);\n        actions.appendChild(gm);\n      }\n      if (it.link) {\n        var l = el('a', 'mv-btn mv-btn--ghost', T.official_site);\n        l.href = it.link;\n        l.target = '_blank';\n        l.rel = 'noopener';\n        l.appendChild(icon('arrow'));\n        actions.appendChild(l);\n      }\n      body.appendChild(actions);\n\n      if (it.video_url) {\n        body.appendChild(el('p', 'mv-modal-sub', T.video));\n        var e = it.video_embed;\n        if (e && (e.type === 'youtube' || e.type === 'vimeo') && e.src) {\n          var v = el('div', 'mv-video');\n          var fr = el('iframe');\n          fr.src = e.src;\n          fr.allowFullscreen = true;\n          fr.setAttribute('allow', 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture');\n          fr.referrerPolicy = 'strict-origin-when-cross-origin';\n          v.appendChild(fr);\n          body.appendChild(v);\n        } else if (e && e.type === 'file' && e.src) {\n          var vw = el('div', 'mv-video');\n          var vid = el('video');\n          vid.src = e.src;\n          vid.controls = true;\n          vid.preload = 'metadata';\n          vw.appendChild(vid);\n          body.appendChild(vw);\n        } else {\n          var vl = el('a', null, it.video_url);\n          vl.href = it.video_url;\n          vl.target = '_blank';\n          vl.rel = 'noopener';\n          body.appendChild(vl);\n        }\n      }\n\n      if (it.gallery.length) {\n        body.appendChild(el('p', 'mv-modal-sub', T.gallery));\n        var g = el('div', 'mv-gallery');\n        it.gallery.forEach(function(src) {\n          var a = el('a');\n          a.href = src;\n          a.target = '_blank';\n          a.rel = 'noopener';\n          var gi = el('img');\n          gi.src = src;\n          gi.alt = '';\n          gi.loading = 'lazy';\n          a.appendChild(gi);\n          g.appendChild(a);\n        });\n        body.appendChild(g);\n      }\n\n      var docs = it.documents.filter(function(d) {\n        return d && d.url;\n      });\n      if (docs.length) {\n        body.appendChild(el('p', 'mv-modal-sub', T.documents));\n        var dl = el('div', 'mv-docs');\n        docs.forEach(function(d) {\n          var a = el('a');\n          a.href = d.url;\n          a.target = '_blank';\n          a.rel = 'noopener';\n          a.appendChild(icon('doc'));\n          a.appendChild(document.createTextNode(d.nom || 'Document'));\n          dl.appendChild(a);\n        });\n        body.appendChild(dl);\n      }\n\n      if (it.faq.length) {\n        body = main; \/\/ la FAQ reste dans la colonne texte\n        body.appendChild(el('p', 'mv-modal-sub', T.faq));\n        var fq = el('div', 'mv-faq');\n        it.faq.forEach(function(qa) {\n          var det = el('details');\n          det.appendChild(el('summary', null, qa.question));\n          det.appendChild(el('p', null, qa.answer || T.no_answer));\n          fq.appendChild(det);\n        });\n        body.appendChild(fq);\n      }\n\n      content.appendChild(mainBody);\n      modal.hidden = false;\n      fitModal();\n      content.querySelectorAll('img, iframe, video').forEach(function(m) {\n        m.addEventListener('load', fitModal);\n        m.addEventListener('loadedmetadata', fitModal);\n      });\n      document.documentElement.style.overflow = 'hidden';\n      document.getElementById('mv-modal-close').focus();\n    }\n\n    \/**\n     * Agrandissement automatique : on passe au palier suivant tant que le contenu\n     * d\u00e9passe la hauteur disponible (sur grand \u00e9cran seulement).\n     *\/\n    function fitModal() {\n      var m = modal.querySelector('.mv-modal');\n      if (!m || modal.hidden) return;\n      m.classList.remove('is-wide', 'is-compact');\n      if (window.innerWidth <= 900) return;\n      var overflows = function() {\n        return m.scrollHeight > m.clientHeight + 2;\n      };\n      if (!overflows()) return;\n      m.classList.add('is-wide');\n      if (!overflows()) return;\n      m.classList.add('is-compact');\n    }\n    window.addEventListener('resize', function() {\n      if (!modal.hidden) fitModal();\n    });\n\n    \/** Lien Google Maps : coordonn\u00e9es si connues, sinon nom + ville \/ adresse *\/\n    \/**\n     * Cible Google Maps, par ordre de fiabilit\u00e9 :\n     *   1. coordonn\u00e9es de la fiche\n     *   2. nom + adresse (ou ville)\n     *   3. position de l'\u00e9tablissement (fiche sans lieu = \u00e9quipement sur place)\n     *   4. aucune \u2192 pas de bouton\n     *\/\n    function mapsTarget(it) {\n      var base = 'https:\/\/www.google.com\/maps\/search\/?api=1&query=';\n      if (it.lat !== null) return { url: base + encodeURIComponent(it.lat + ',' + it.lng), label: T.see_on_maps };\n      var where = it.address || it.city;\n      if (where) return { url: base + encodeURIComponent(it.name + ', ' + where), label: T.see_on_maps };\n      if (MAP.home) return { url: base + encodeURIComponent(MAP.home.lat + ',' + MAP.home.lng), label: T.see_place_on_maps };\n      return null;\n    }\n\n    function closeModal() {\n      modal.hidden = true;\n      document.documentElement.style.overflow = '';\n      if (lastFocus) lastFocus.focus();\n    }\n\n    document.getElementById('mv-modal-close').addEventListener('click', closeModal);\n    modal.addEventListener('click', function(e) {\n      if (e.target === modal) closeModal();\n    });\n    document.addEventListener('keydown', function(e) {\n      if (e.key === 'Escape' && !modal.hidden) closeModal();\n    });\n\n    \/\/ \u2550\u2550\u2550 Contr\u00f4les \u2550\u2550\u2550\n    \/**\n     * Hauteur occup\u00e9e en haut de l'\u00e9cran par les barres fixes \/ collantes du site\n     * (barre d'admin, en-t\u00eate, barre de r\u00e9servation\u2026), quelle que soit leur classe :\n     * on sonde le haut de l'\u00e9cran et on empile les barres trouv\u00e9es.\n     *\/\n    function headerOffset() {\n      var bottom = 0;\n      var vw = window.innerWidth,\n        vh = window.innerHeight;\n      var isBar = function(el) {\n        if (!el || el === document.body || el === document.documentElement) return false;\n        if (el.closest('#mv-app, .ea-modal-overlay, .mv-modal-overlay')) return false;\n        var pos = getComputedStyle(el).position;\n        if (pos !== 'fixed' && pos !== 'sticky') return false;\n        var r = el.getBoundingClientRect();\n        \/\/ vraie barre : large, pas trop haute (exclut bulles de chat, boutons flottants, popups)\n        return r.width >= vw * 0.3 && r.height > 0 && r.height < vh * 0.45;\n      };\n      for (var pass = 0; pass < 5; pass++) {\n        var y = bottom + 2,\n          found = 0;\n        if (y >= vh * 0.5) break;\n        [0.15, 0.5, 0.85].forEach(function(fx) {\n          (document.elementsFromPoint(vw * fx, y) || []).forEach(function(el) {\n            for (var n = el; n && n !== document.body; n = n.parentElement) {\n              if (isBar(n)) {\n                var r = n.getBoundingClientRect();\n                if (r.top <= y + 1 && r.bottom > found) found = r.bottom;\n                break;\n              }\n            }\n          });\n        });\n        if (found <= bottom) break;\n        bottom = found;\n      }\n      app.style.setProperty('--mv-header', Math.round(bottom) + 'px');\n      return bottom;\n    }\n\n    var searchTimer = null;\n    document.getElementById('mv-search').addEventListener('input', function(e) {\n      clearTimeout(searchTimer);\n      searchTimer = setTimeout(function() {\n        state.q = e.target.value;\n        state.limit = STEP;\n      state.page = 1;\n        renderList();\n      }, 150);\n    });\n\n    var dist = document.getElementById('mv-distance');\n    if (dist) {\n      dist.querySelectorAll('button').forEach(function(b) {\n        b.addEventListener('click', function() {\n          state.km = parseInt(b.getAttribute('data-km'), 10) || 0;\n          state.limit = STEP;\n      state.page = 1;\n          dist.querySelectorAll('button').forEach(function(x) {\n            x.classList.toggle('is-active', x === b);\n          });\n          renderList();\n        });\n      });\n    }\n\n    var viewSeg = document.getElementById('mv-view');\n    var layoutEl = document.getElementById('mv-layout');\n\n    function setView(v) {\n      state.view = v;\n      layoutEl.classList.toggle('is-list', v === 'list');\n      viewSeg.querySelectorAll('button').forEach(function(x) {\n        x.classList.toggle('is-active', x.getAttribute('data-view') === v);\n      });\n      if (map) setTimeout(function() {\n        map.invalidateSize();\n      }, 60);\n    }\n    viewSeg.querySelectorAll('button').forEach(function(b) {\n      b.addEventListener('click', function() {\n        setView(b.getAttribute('data-view'));\n      });\n    });\n\n    \/\/ Pas de carte si aucune fiche n'est g\u00e9olocalis\u00e9e\n    if (!ITEMS.some(function(it) {\n        return it.lat !== null;\n      })) {\n      viewSeg.style.display = 'none';\n      state.view = 'list';\n    }\n\n    headerOffset();\n    window.addEventListener('resize', headerOffset);\n    \/\/ Les barres du site peuvent appara\u00eetre au d\u00e9filement (barre de r\u00e9servation\u2026)\n    var hoTicking = false;\n    window.addEventListener('scroll', function() {\n      if (hoTicking) return;\n      hoTicking = true;\n      requestAnimationFrame(function() {\n        headerOffset();\n        hoTicking = false;\n      });\n    }, { passive: true });\n    var lastCols = null,\n      resizeTimer = null;\n    window.addEventListener('resize', function() {\n      clearTimeout(resizeTimer);\n      resizeTimer = setTimeout(function() {\n        var c = gridColumns();\n        if (lastCols !== null && c !== lastCols) renderList();\n        lastCols = c;\n      }, 200);\n    });\n    renderCats();\n    renderIdeas();\n    setView(state.view);\n    renderList();\n    renderPreview();\n    initMap();\n  })();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2363","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 Tournon<\/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-tournon.fr\/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 Tournon\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.camping-tournon.fr\/de\/elaia-metadatas\/\" \/>\n<meta property=\"og:site_name\" content=\"Camping Tournon\" \/>\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-tournon.fr\\\/de\\\/elaia-metadatas\\\/\",\"url\":\"https:\\\/\\\/www.camping-tournon.fr\\\/de\\\/elaia-metadatas\\\/\",\"name\":\"Entdecken Sie die Umgebung - Camping Tournon\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.camping-tournon.fr\\\/de\\\/#website\"},\"datePublished\":\"2026-10-20T10:15:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.camping-tournon.fr\\\/de\\\/elaia-metadatas\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.camping-tournon.fr\\\/de\\\/elaia-metadatas\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.camping-tournon.fr\\\/de\\\/elaia-metadatas\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Camping Ard\u00e8che\",\"item\":\"https:\\\/\\\/www.camping-tournon.fr\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Entdecken Sie die Umgebung\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.camping-tournon.fr\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.camping-tournon.fr\\\/de\\\/\",\"name\":\"Camping Tournon\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.camping-tournon.fr\\\/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 Tournon","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-tournon.fr\/de\/elaia-metadatas\/","og_locale":"de_DE","og_type":"article","og_title":"Entdecken Sie die Umgebung - Camping Tournon","og_url":"https:\/\/www.camping-tournon.fr\/de\/elaia-metadatas\/","og_site_name":"Camping Tournon","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.camping-tournon.fr\/de\/elaia-metadatas\/","url":"https:\/\/www.camping-tournon.fr\/de\/elaia-metadatas\/","name":"Entdecken Sie die Umgebung - Camping Tournon","isPartOf":{"@id":"https:\/\/www.camping-tournon.fr\/de\/#website"},"datePublished":"2026-10-20T10:15:25+00:00","breadcrumb":{"@id":"https:\/\/www.camping-tournon.fr\/de\/elaia-metadatas\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.camping-tournon.fr\/de\/elaia-metadatas\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.camping-tournon.fr\/de\/elaia-metadatas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Camping Ard\u00e8che","item":"https:\/\/www.camping-tournon.fr\/de\/"},{"@type":"ListItem","position":2,"name":"Entdecken Sie die Umgebung"}]},{"@type":"WebSite","@id":"https:\/\/www.camping-tournon.fr\/de\/#website","url":"https:\/\/www.camping-tournon.fr\/de\/","name":"Camping Tournon","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.camping-tournon.fr\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"}]}},"_links":{"self":[{"href":"https:\/\/www.camping-tournon.fr\/de\/wp-json\/wp\/v2\/pages\/2363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.camping-tournon.fr\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.camping-tournon.fr\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.camping-tournon.fr\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.camping-tournon.fr\/de\/wp-json\/wp\/v2\/comments?post=2363"}],"version-history":[{"count":1,"href":"https:\/\/www.camping-tournon.fr\/de\/wp-json\/wp\/v2\/pages\/2363\/revisions"}],"predecessor-version":[{"id":2364,"href":"https:\/\/www.camping-tournon.fr\/de\/wp-json\/wp\/v2\/pages\/2363\/revisions\/2364"}],"wp:attachment":[{"href":"https:\/\/www.camping-tournon.fr\/de\/wp-json\/wp\/v2\/media?parent=2363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}