{"id":4709,"date":"2026-10-20T15:07:12","date_gmt":"2026-10-20T13:07:12","guid":{"rendered":"https:\/\/camping-lestaubiere.fr\/elaia-metadatas-2\/"},"modified":"2026-10-20T15:07:12","modified_gmt":"2026-10-20T13:07:12","slug":"elaia-metadatas","status":"publish","type":"page","link":"https:\/\/camping-lestaubiere.fr\/nl\/elaia-metadatas\/","title":{"rendered":"Ontdek de omgeving"},"content":{"rendered":"\n\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"ItemList\",\"name\":\"Villes aux alentours\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Bergerac\",\"description\":\"Bergerac is een charmante stad gelegen aan de oevers van de Dordogne, bekend om zijn wijnen en historische centrum.\",\"image\":\"https:\/\/camping-lestaubiere.fr\/wp-content\/uploads\/2021\/09\/camping-bergerac-vieille-ville.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.85006,\"longitude\":0.48476},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de la ville\",\"value\":\"Bergerac\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de la ville (ville \/ villages \/ bourg...)\",\"value\":\"Stad\"},{\"@type\":\"PropertyValue\",\"name\":\"D\u00e9partement\",\"value\":\"Dordogne\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"40\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"45\"},{\"@type\":\"PropertyValue\",\"name\":\"Points d'int\u00e9r\u00eats\",\"value\":\"Historisch centrum, wijngaarden, tabaksmuseum\"},{\"@type\":\"PropertyValue\",\"name\":\"Coups de coeur des g\u00e9rants\",\"value\":\"Wandeling langs de Dordogne bij zonsondergang.\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"Vergt\",\"description\":\"Vergt is een charmant dorp met een bekend lokale markt die elke vrijdagmorgen plaatsvindt.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7ee96b50051.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":45.0280556,\"longitude\":0.7191667},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de la ville\",\"value\":\"Vergt\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de la ville (ville \/ villages \/ bourg...)\",\"value\":\"Dorp\"},{\"@type\":\"PropertyValue\",\"name\":\"D\u00e9partement\",\"value\":\"Dordogne\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"10\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"15\"},{\"@type\":\"PropertyValue\",\"name\":\"Points d'int\u00e9r\u00eats\",\"value\":\"Vrijdag kunstmarkt, kleine lokale winkels\"},{\"@type\":\"PropertyValue\",\"name\":\"Coups de coeur des g\u00e9rants\",\"value\":\"Doe mee aan de markt om regionale producten te ontdekken.\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Castelnaud-la-Chapelle\",\"description\":\"Deze voornaamste dorp staat bekend om zijn middeleeuwse kasteel dat uitkijkt over de Dordogne en zijn pittoreske landschappen.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7ee9b29c97b.jpeg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.8158333,\"longitude\":1.1494444},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de la ville\",\"value\":\"Castelnaud-la-Chapelle\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de la ville (ville \/ villages \/ bourg...)\",\"value\":\"Dorp\"},{\"@type\":\"PropertyValue\",\"name\":\"D\u00e9partement\",\"value\":\"Dordogne\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"55\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"60\"},{\"@type\":\"PropertyValue\",\"name\":\"Points d'int\u00e9r\u00eats\",\"value\":\"Kasteel van Castelnaud, watersportbasis, wandelpaden\"},{\"@type\":\"PropertyValue\",\"name\":\"Coups de coeur des g\u00e9rants\",\"value\":\"Maak een kajaktocht op de Dordogne en bezoek het kasteel.\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Sarlat-la-Can\u00e9da\",\"description\":\"Sarlat is een middeleeuwse stad bekend om zijn bewaarde architectuur, markten en feestelijke sfeer.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7ee90b75e53.jpeg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.892778,\"longitude\":1.215278},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de la ville\",\"value\":\"Sarlat-la-Can\u00e9da\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de la ville (ville \/ villages \/ bourg...)\",\"value\":\"Stad\"},{\"@type\":\"PropertyValue\",\"name\":\"D\u00e9partement\",\"value\":\"Dordogne\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"50\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"55\"},{\"@type\":\"PropertyValue\",\"name\":\"Points d'int\u00e9r\u00eats\",\"value\":\"Place de la Libert\u00e9, middeleeuwse markt, Sainte-Marie kerk\"},{\"@type\":\"PropertyValue\",\"name\":\"Coups de coeur des g\u00e9rants\",\"value\":\"Zaterdagochtendmarkt met lokale producten.\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"P\u00e9rigueux\",\"description\":\"P\u00e9rigueux is een historische stad vlakbij de camping. Ze staat bekend om haar middeleeuwse oude stad, de Saint-Front kathedraal en pittoreske straatjes.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7ee857e16c6.jpeg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":45.18399,\"longitude\":0.715783},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de la ville\",\"value\":\"P\u00e9rigueux\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de la ville (ville \/ villages \/ bourg...)\",\"value\":\"Stad\"},{\"@type\":\"PropertyValue\",\"name\":\"D\u00e9partement\",\"value\":\"Dordogne\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"25\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Points d'int\u00e9r\u00eats\",\"value\":\"Saint-Front Kathedraal, Vesunna Museum, middeleeuwse oude stad\"},{\"@type\":\"PropertyValue\",\"name\":\"Coups de coeur des g\u00e9rants\",\"value\":\"Ontdek de lokale markt en slenter door charmante straatjes.\"}]}}]},{\"@type\":\"ItemList\",\"name\":\"Activit\u00e9s aux alentours \",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Wandelen: Kammenloop\",\"description\":\"Een toegankelijke wandeling die op een lus leidt en prachtige panoramische uitzichten biedt op de omliggende bergkam rond Villamblard. Geschikt voor verschillende niveaus, deze wandeling laat je de omliggende natuur ontdekken in een rustige omgeving.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7eec1aadbaf.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":45.0177,\"longitude\":0.5408},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de l'activit\u00e9\",\"value\":\"Wandelen: Kammenloop\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"6\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"15\"},{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Natuur\"},{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Famille, Enfants, Senior, Ado\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation ? (oui \/ non)\",\"value\":\"non\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"Flexibel, overdag\"},{\"@type\":\"PropertyValue\",\"name\":\"Informations et contact\",\"value\":\"Toeristische informatie van Villamblard\"},{\"@type\":\"PropertyValue\",\"name\":\"Langues parl\u00e9es \",\"value\":\"Frans\"},{\"@type\":\"PropertyValue\",\"name\":\"Animaux accept\u00e9 (oui \/ non)\",\"value\":\"oui\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"Golf de la Marterie\",\"description\":\"Golfbaan gelegen in Saint-F\u00e9lix-de-Reillac-et-Mortemart, met een aangename natuurlijke omgeving voor golfliefhebbers van alle niveaus.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.9991612,\"longitude\":0.8796141},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de l'activit\u00e9\",\"value\":\"Golf de la Marterie\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"35\"},{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Sport\"},{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Volwassenen, Senioren\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation ? (oui \/ non)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"X\"},{\"@type\":\"PropertyValue\",\"name\":\"Informations et contact\",\"value\":\"Golf de la Marterie, 0553056100\"},{\"@type\":\"PropertyValue\",\"name\":\"Langues parl\u00e9es \",\"value\":\"Frans\"},{\"@type\":\"PropertyValue\",\"name\":\"Animaux accept\u00e9 (oui \/ non)\",\"value\":\"non\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Kano \/ Paddle: Roxane Canoe\",\"description\":\"Huur van kano's en paddles in Bergerac om watersportactiviteiten op de rivier de Dordogne te ervaren. Perfect om de regio anders te ontdekken en met familie of vrienden.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7eed641adb5.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.8491928,\"longitude\":0.4767077},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de l'activit\u00e9\",\"value\":\"Kano \/ Paddle: Roxane Canoe\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"25\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Sport, Natuur, Nautisch\"},{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Gezin, Kinderen, Tiener, Volwassenen\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation ? (oui \/ non)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"9:00 - 19:00\"},{\"@type\":\"PropertyValue\",\"name\":\"Informations et contact\",\"value\":\"Roxane Canoe, 05 53 57 22 19, contact@roxanecanoe.fr\"},{\"@type\":\"PropertyValue\",\"name\":\"Langues parl\u00e9es \",\"value\":\"Frans, Engels\"},{\"@type\":\"PropertyValue\",\"name\":\"Animaux accept\u00e9 (oui \/ non)\",\"value\":\"non\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Wandeling: Toppen Loop\",\"description\":\"Een toegankelijke wandeling die op een lus leidt, met schitterende panoramische uitzichten over de randen rond Villamblard. Geschikt voor verschillende niveaus, deze wandeling laat je de omgeving in een rustige setting ontdekken.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7eec1aadbaf.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":45.0177,\"longitude\":0.5408},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de l'activit\u00e9\",\"value\":\"Wandeling: Toppen Loop\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"6\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"15\"},{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Natuur\"},{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Gezin, Kinderen, Senior, Tiener\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation ? (oui \/ non)\",\"value\":\"non\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"Vrij, overdag\"},{\"@type\":\"PropertyValue\",\"name\":\"Informations et contact\",\"value\":\"VVV-bureau Villamblard\"},{\"@type\":\"PropertyValue\",\"name\":\"Langues parl\u00e9es \",\"value\":\"Frans\"},{\"@type\":\"PropertyValue\",\"name\":\"Animaux accept\u00e9 (oui \/ non)\",\"value\":\"oui\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"Visite de Bergerac\",\"description\":\"Visite guid\u00e9e ou libre de Bergerac, charmante ville historique avec ses ruelles, maisons \u00e0 colombages, mus\u00e9es et monuments, notamment autour de la place P\u00e9lissi\u00e8re.\",\"image\":\"https:\/\/camping-lestaubiere.fr\/wp-content\/uploads\/2021\/09\/camping-bergerac-vieille-ville.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.85006,\"longitude\":0.48476},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de l'activit\u00e9\",\"value\":\"Visite de Bergerac\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"25\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Culture, Patrimoine\"},{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Famille, Senior, Ado, Adultes\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation ? (oui \/ non)\",\"value\":\"non\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"Toute la journ\u00e9e, mieux conseill\u00e9 le matin ou l'apr\u00e8s-midi\"},{\"@type\":\"PropertyValue\",\"name\":\"Informations et contact\",\"value\":\"Office de Tourisme de Bergerac, +33 5 53 57 17 44\"},{\"@type\":\"PropertyValue\",\"name\":\"Langues parl\u00e9es \",\"value\":\"Fran\u00e7ais, Anglais\"},{\"@type\":\"PropertyValue\",\"name\":\"Animaux accept\u00e9 (oui \/ non)\",\"value\":\"oui\"}]}},{\"@type\":\"ListItem\",\"position\":6,\"item\":{\"@type\":\"Thing\",\"name\":\"Miniatuurhaven\",\"description\":\"Miniatuurpark met verkleinde replica's van boten, gelegen in Bergerac, ideaal voor een leuke en culturele bezoek.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7eede0d982c.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.8488551,\"longitude\":0.501941},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de l'activit\u00e9\",\"value\":\"Miniatuurhaven\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"25\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Cultuur, Vrije tijd\"},{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Gezin, Kinderen, Senior, Tiener\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation ? (oui \/ non)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"X\"},{\"@type\":\"PropertyValue\",\"name\":\"Informations et contact\",\"value\":\"Port Miniature Bergerac, 0635217937\"},{\"@type\":\"PropertyValue\",\"name\":\"Langues parl\u00e9es \",\"value\":\"Frans\"},{\"@type\":\"PropertyValue\",\"name\":\"Animaux accept\u00e9 (oui \/ non)\",\"value\":\"non\"}]}},{\"@type\":\"ListItem\",\"position\":7,\"item\":{\"@type\":\"Thing\",\"name\":\"Visite de Bergerac\",\"description\":\"Visite guid\u00e9e ou libre de Bergerac, charmante ville historique avec ses ruelles, maisons \u00e0 colombages, mus\u00e9es et monuments, notamment autour de la place P\u00e9lissi\u00e8re.\",\"image\":\"https:\/\/camping-lestaubiere.fr\/wp-content\/uploads\/2021\/09\/camping-bergerac-vieille-ville.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.85006,\"longitude\":0.48476},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de l'activit\u00e9\",\"value\":\"Visite de Bergerac\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"25\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Culture, Patrimoine\"},{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Famille, Senior, Ado, Adultes\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation ? (oui \/ non)\",\"value\":\"non\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"Toute la journ\u00e9e, mieux conseill\u00e9 le matin ou l'apr\u00e8s-midi\"},{\"@type\":\"PropertyValue\",\"name\":\"Informations et contact\",\"value\":\"Office de Tourisme de Bergerac, +33 5 53 57 17 44\"},{\"@type\":\"PropertyValue\",\"name\":\"Langues parl\u00e9es \",\"value\":\"Fran\u00e7ais, Anglais\"},{\"@type\":\"PropertyValue\",\"name\":\"Animaux accept\u00e9 (oui \/ non)\",\"value\":\"oui\"}]}},{\"@type\":\"ListItem\",\"position\":8,\"item\":{\"@type\":\"Thing\",\"name\":\"Golf de la Marterie\",\"description\":\"Golfbaan gelegen in Saint-F\u00e9lix-de-Reillac-et-Mortemart, met een prettige natuurlijke omgeving voor golfenthousiastelingen van alle niveaus.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.9991612,\"longitude\":0.8796141},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de l'activit\u00e9\",\"value\":\"Golf de la Marterie\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"35\"},{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Sport\"},{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Volwassenen, Senior\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation ? (oui \/ non)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"X\"},{\"@type\":\"PropertyValue\",\"name\":\"Informations et contact\",\"value\":\"Golf de la Marterie, 0553056100\"},{\"@type\":\"PropertyValue\",\"name\":\"Langues parl\u00e9es \",\"value\":\"Frans\"},{\"@type\":\"PropertyValue\",\"name\":\"Animaux accept\u00e9 (oui \/ non)\",\"value\":\"non\"}]}},{\"@type\":\"ListItem\",\"position\":9,\"item\":{\"@type\":\"Thing\",\"name\":\"Kajak \/ Paddle: Roxane Canoe\",\"description\":\"Huur van kano's en paddles in Bergerac om te genieten van watersportactiviteiten op de Dordogne-rivier. Perfect om de regio op een andere manier te ontdekken en met familie of vrienden.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7eed641adb5.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.8491928,\"longitude\":0.4767077},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de l'activit\u00e9\",\"value\":\"Kajak \/ Paddle: Roxane Canoe\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"25\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Sport, Natuur, Nautisch\"},{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Gezin, Kinderen, Pubers, Volwassenen\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation ? (oui \/ non)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"9:00 - 19:00\"},{\"@type\":\"PropertyValue\",\"name\":\"Informations et contact\",\"value\":\"Roxane Canoe, 05 53 57 22 19, contact@roxanecanoe.fr\"},{\"@type\":\"PropertyValue\",\"name\":\"Langues parl\u00e9es \",\"value\":\"Frans, Engels\"},{\"@type\":\"PropertyValue\",\"name\":\"Animaux accept\u00e9 (oui \/ non)\",\"value\":\"non\"}]}},{\"@type\":\"ListItem\",\"position\":10,\"item\":{\"@type\":\"Thing\",\"name\":\"Miniatuurhaven\",\"description\":\"Miniatuurpark met verkleinde reproducties van boten, gelegen in Bergerac, ideaal voor een leuke en culturele bezoek.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7eede0d982c.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.8488551,\"longitude\":0.501941},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de l'activit\u00e9\",\"value\":\"Miniatuurhaven\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"25\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Cultuur, Vrije tijd\"},{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Gezin, Kinderen, Senior, Tiener\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation ? (oui \/ non)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"X\"},{\"@type\":\"PropertyValue\",\"name\":\"Informations et contact\",\"value\":\"Port Miniature Bergerac, 0635217937\"},{\"@type\":\"PropertyValue\",\"name\":\"Langues parl\u00e9es \",\"value\":\"Frans\"},{\"@type\":\"PropertyValue\",\"name\":\"Animaux accept\u00e9 (oui \/ non)\",\"value\":\"non\"}]}}]}]}<\/script>\n<style>\n  .mv-wrap {\n    --mv-accent: #2e5e45;\n    --mv-accent-soft: #2e5e451a;\n    --mv-cream: #faf7f2;\n    --mv-line: #ebe5da;\n    --mv-muted: #6b6559;\n    --mv-header: 0px;\n    font-family: 'Inter', -apple-system, sans-serif;\n    color: #1f2a24;\n    max-width: 1440px;\n    margin: 0 auto;\n    padding: 0 24px 56px;\n    box-sizing: border-box;\n  }\n\n  .mv-wrap *,\n  .mv-wrap *::before,\n  .mv-wrap *::after,\n  .mv-modal-overlay *,\n  .mv-modal-overlay *::before,\n  .mv-modal-overlay *::after {\n    box-sizing: border-box;\n  }\n\n  .mv-wrap button,\n  .mv-wrap input,\n  .mv-modal-overlay button {\n    font-family: 'Inter', -apple-system, sans-serif;\n  }\n\n  .mv-icon {\n    display: inline-flex;\n    width: 1em;\n    height: 1em;\n    flex-shrink: 0;\n  }\n\n  .mv-icon svg {\n    width: 100%;\n    height: 100%;\n  }\n\n  \/* \u2500\u2500\u2500 Bandeau \u2500\u2500\u2500 *\/\n  .mv-hero {\n    position: relative;\n    overflow: hidden;\n    margin: 16px 0 24px;\n    padding: 56px 48px;\n    border-radius: 24px;\n    background: var(--mv-cream);\n    background-size: cover;\n    background-position: center right;\n  }\n\n  .mv-hero::before {\n    content: '';\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(90deg, rgba(250, 247, 242, 0.97) 0%, rgba(250, 247, 242, 0.88) 38%, rgba(250, 247, 242, 0.2) 70%, rgba(250, 247, 242, 0) 100%);\n  }\n\n  .mv-hero-inner {\n    position: relative;\n    max-width: 560px;\n  }\n\n  .mv-hero-title {\n    margin: 0 0 12px !important;\n    font-size: clamp(30px, 4vw, 48px) !important;\n    line-height: 1.1 !important;\n    color: #1c2b22 !important;\n  }\n\n  .mv-hero-text {\n    margin: 0 0 20px !important;\n    font-size: 17px;\n    line-height: 1.55;\n    color: #3b4a40;\n  }\n\n  .mv-hero-chip {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    padding: 9px 16px;\n    border-radius: 999px;\n    background: #fff;\n    box-shadow: 0 2px 8px rgba(31, 42, 36, 0.1);\n    font-size: 14px;\n    color: #3b4a40;\n  }\n\n  .mv-hero-chip strong {\n    color: #1c2b22;\n  }\n\n  \/* \u2500\u2500\u2500 Recherche + distance \u2500\u2500\u2500 *\/\n  .mv-controls {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 12px;\n    margin-bottom: 14px;\n  }\n\n  .mv-search {\n    position: relative;\n    flex: 1 1 360px;\n  }\n\n  .mv-search .mv-icon {\n    position: absolute;\n    left: 18px;\n    top: 50%;\n    transform: translateY(-50%);\n    font-size: 18px;\n    color: var(--mv-muted);\n  }\n\n  .mv-search input {\n    width: 100% !important;\n    height: 50px;\n    padding: 0 18px 0 48px !important;\n    border: 1px solid var(--mv-line) !important;\n    border-radius: 999px !important;\n    background: #fff !important;\n    font-size: 15px !important;\n    color: #1f2a24;\n    outline: none;\n    box-shadow: 0 1px 3px rgba(31, 42, 36, 0.05);\n  }\n\n  .mv-search input:focus {\n    border-color: var(--mv-accent) !important;\n    box-shadow: 0 0 0 3px var(--mv-accent-soft) !important;\n  }\n\n  .mv-seg {\n    display: inline-flex;\n    padding: 4px;\n    gap: 2px;\n    border: 1px solid var(--mv-line);\n    border-radius: 999px;\n    background: #fff;\n  }\n\n  .mv-seg button {\n    padding: 0 18px;\n    height: 40px;\n    border: 0;\n    border-radius: 999px;\n    background: transparent;\n    color: #3b4a40;\n    font-size: 14px;\n    font-weight: 600;\n    cursor: pointer;\n    white-space: nowrap;\n    transition: all 0.15s;\n  }\n\n  .mv-seg button:hover {\n    background: var(--mv-cream);\n  }\n\n  .mv-seg button.is-active {\n    background: var(--mv-accent);\n    color: #fff;\n  }\n\n  \/* \u2500\u2500\u2500 Cat\u00e9gories \u2500\u2500\u2500 *\/\n  \/* Cat\u00e9gories : une seule ligne qui d\u00e9file, fl\u00e8ches + fondu sur les bords *\/\n  .mv-cats-wrap {\n    position: relative;\n    margin-bottom: 18px;\n  }\n\n  .mv-cats {\n    display: flex;\n    flex-wrap: nowrap;\n    gap: 8px;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scrollbar-width: none;\n    padding: 2px 0;\n  }\n\n  .mv-cats::-webkit-scrollbar {\n    display: none;\n  }\n\n  .mv-cat {\n    flex-shrink: 0;\n  }\n\n  .mv-cats-arrow {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    z-index: 1;\n    display: none;\n    align-items: center;\n    width: 64px;\n    padding: 0;\n    border: 0;\n    cursor: pointer;\n    font-size: 20px;\n    color: #1f2a24;\n  }\n\n  .mv-cats-arrow span {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 36px;\n    height: 36px;\n    border: 1px solid var(--mv-line);\n    border-radius: 50%;\n    background: #fff;\n    box-shadow: 0 2px 6px rgba(31, 42, 36, 0.12);\n  }\n\n  .mv-cats-arrow--left {\n    left: 0;\n    justify-content: flex-start;\n    background: linear-gradient(90deg, #fff 45%, rgba(255, 255, 255, 0));\n  }\n\n  .mv-cats-arrow--right {\n    right: 0;\n    justify-content: flex-end;\n    background: linear-gradient(270deg, #fff 45%, rgba(255, 255, 255, 0));\n  }\n\n  .mv-cats-wrap.can-left .mv-cats-arrow--left,\n  .mv-cats-wrap.can-right .mv-cats-arrow--right {\n    display: flex;\n  }\n\n  .mv-cat {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    padding: 9px 16px;\n    border: 1px solid var(--mv-line);\n    border-radius: 999px;\n    background: #fff;\n    color: #2f3b33;\n    font-size: 14px;\n    font-weight: 500;\n    cursor: pointer;\n    transition: all 0.15s;\n  }\n\n  .mv-cat .mv-icon {\n    font-size: 17px;\n    color: var(--mv-cat);\n  }\n\n  .mv-cat:hover {\n    border-color: #d6cdbd;\n  }\n\n  .mv-cat.is-active {\n    background: var(--mv-accent);\n    border-color: var(--mv-accent);\n    color: #fff;\n  }\n\n  .mv-cat.is-active .mv-icon {\n    color: #fff;\n  }\n\n  \/* \u2500\u2500\u2500 Barre compteur + liste\/carte \u2500\u2500\u2500 *\/\n  .mv-bar {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 12px;\n    margin-bottom: 16px;\n  }\n\n  .mv-count {\n    margin: 0 !important;\n    font-size: 15px;\n    color: var(--mv-muted);\n  }\n\n  .mv-count strong {\n    color: #1f2a24;\n  }\n\n  \/* \u2500\u2500\u2500 Layout liste + carte \u2500\u2500\u2500 *\/\n  .mv-layout {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) minmax(340px, 38%);\n    gap: 24px;\n    align-items: start;\n  }\n\n  .mv-layout.is-list {\n    grid-template-columns: minmax(0, 1fr);\n  }\n\n  .mv-layout.is-list .mv-map-panel {\n    display: none;\n  }\n\n  .mv-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\n    \/* dense : la fiche \u00ab \u00c0 la une \u00bb (2 colonnes) ne laisse pas de trou sur grand \u00e9cran *\/\n    grid-auto-flow: dense;\n    gap: 18px;\n  }\n\n  \/* Colonne carte (sticky) : carte carr\u00e9e + fiche du rep\u00e8re cliqu\u00e9 en dessous *\/\n  .mv-map-panel {\n    position: sticky;\n    top: calc(var(--mv-header) + 16px);\n    display: flex;\n    flex-direction: column;\n    gap: 12px;\n  }\n\n  .mv-map {\n    width: 100%;\n    aspect-ratio: 1 \/ 1;\n    max-height: max(300px, calc(100vh - var(--mv-header) - 290px));\n    \/* Certains th\u00e8mes rouvrent le d\u00e9bordement des cartes Leaflet : les tuiles\n       d\u00e9passaient alors de la page (camping de la Croze). On rogne quoi qu'il arrive. *\/\n    overflow: hidden !important;\n    contain: paint;\n    border: 1px solid var(--mv-line);\n    border-radius: 20px;\n    background: var(--mv-cream);\n  }\n\n  .mv-preview-hint {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    padding: 16px 18px;\n    border: 1px dashed #d6cdbd;\n    border-radius: 16px;\n    color: var(--mv-muted);\n    font-size: 14px;\n  }\n\n  .mv-preview-hint .mv-icon {\n    font-size: 20px;\n    color: var(--mv-accent);\n  }\n\n  \/* Fiche compacte (horizontale) sous la carte \u2014 s\u00e9lecteurs doubl\u00e9s pour\n     passer devant les r\u00e8gles .mv-card d\u00e9finies plus bas *\/\n  .mv-card.mv-card--mini {\n    flex-direction: row;\n    min-height: 0;\n    border-radius: 16px;\n  }\n\n  .mv-card.mv-card--mini:hover {\n    transform: none;\n  }\n\n  .mv-card.mv-card--mini .mv-card-media {\n    flex: 0 0 120px;\n    width: 120px;\n    aspect-ratio: auto;\n    min-height: 120px;\n  }\n\n  .mv-card.mv-card--mini .mv-card-noimg {\n    font-size: 28px;\n  }\n\n  .mv-card.mv-card--mini .mv-card-body {\n    gap: 4px;\n    min-width: 0;\n    padding: 10px 14px;\n  }\n\n  .mv-card.mv-card--mini .mv-card-title {\n    font-size: 16px !important;\n    -webkit-line-clamp: 1;\n  }\n\n  .mv-card.mv-card--mini .mv-meta {\n    font-size: 12px;\n  }\n\n  .mv-card.mv-card--mini .mv-card-desc {\n    font-size: 13px;\n    -webkit-line-clamp: 2;\n  }\n\n  .mv-card.mv-card--mini .mv-card-foot {\n    padding-top: 2px;\n  }\n\n  .mv-card.mv-card--mini .mv-discover {\n    padding: 5px 12px;\n    font-size: 13px;\n  }\n\n  .mv-card.mv-card--mini .mv-pill {\n    position: static;\n    align-self: flex-start;\n    padding: 2px 10px;\n    font-size: 11px;\n    box-shadow: none;\n  }\n\n  \/* \u2500\u2500\u2500 Carte (fiche) \u2500\u2500\u2500 *\/\n  \/* La liste change brutalement de hauteur au clic sur une cat\u00e9gorie :\n     l'ancrage de d\u00e9filement du navigateur \u00ab corrigeait \u00bb alors la position et\n     contrariait le d\u00e9filement vers les filtres. *\/\n  #mv-app {\n    overflow-anchor: none;\n  }\n\n  .mv-card {\n    position: relative;\n    display: flex;\n    flex-direction: column;\n    min-width: 0;\n    overflow: hidden;\n    border: 1px solid var(--mv-line);\n    border-radius: 18px;\n    background: #fff;\n    box-shadow: 0 1px 3px rgba(31, 42, 36, 0.05);\n    cursor: pointer;\n    transition: box-shadow 0.2s, transform 0.2s;\n  }\n\n  .mv-card:hover,\n  .mv-card.is-hover {\n    box-shadow: 0 12px 28px rgba(31, 42, 36, 0.12);\n    transform: translateY(-2px);\n  }\n\n  .mv-card-media {\n    position: relative;\n    \/* Hauteur fix\u00e9e par le format, jamais par la photo : sans flex-shrink ni\n       taille minimale de contenu, une photo en hauteur \u00e9tirait son cadre et\n       les cartes d'une m\u00eame rang\u00e9e n'avaient plus des images align\u00e9es. *\/\n    flex: 0 0 auto;\n    min-height: 0;\n    \/* Pas d'overflow: hidden ici : la pastille de cat\u00e9gorie est pos\u00e9e \u00e0 cheval\n       sur le bas de l'image. L'image, en absolu, ne d\u00e9borde pas de son cadre. *\/\n    aspect-ratio: 16 \/ 10;\n    background: var(--mv-cream);\n  }\n\n  .mv-card-media img {\n    position: absolute;\n    inset: 0;\n    display: block;\n    width: 100% !important;\n    max-width: none !important;\n    height: 100% !important;\n    object-fit: cover;\n  }\n\n  .mv-card-noimg {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 100%;\n    height: 100%;\n    font-size: 42px;\n    color: var(--mv-cat);\n    background: color-mix(in srgb, var(--mv-cat) 10%, var(--mv-cream));\n  }\n\n  .mv-pill {\n    display: inline-flex;\n    align-items: center;\n    padding: 4px 12px;\n    border-radius: 999px;\n    background: #fff;\n    background: color-mix(in srgb, var(--mv-cat) 14%, #fff);\n    color: var(--mv-cat);\n    font-size: 12px;\n    font-weight: 600;\n    white-space: nowrap;\n  }\n\n  .mv-card-media .mv-pill {\n    position: absolute;\n    left: 12px;\n    bottom: -12px;\n    background: color-mix(in srgb, var(--mv-cat) 12%, #fff);\n    box-shadow: 0 2px 6px rgba(31, 42, 36, 0.12);\n  }\n\n  .mv-card-body {\n    display: flex;\n    flex: 1;\n    flex-direction: column;\n    gap: 7px;\n    padding: 22px 16px 16px;\n  }\n\n  .mv-card-title {\n    margin: 0 !important;\n    font-size: 18px !important;\n    line-height: 1.25 !important;\n    color: #1c2b22 !important;\n    display: -webkit-box;\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n  }\n\n  .mv-meta {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    gap: 6px 12px;\n    margin: 0 !important;\n    font-size: 13px;\n    color: var(--mv-muted);\n  }\n\n  .mv-meta span {\n    display: inline-flex;\n    align-items: center;\n    gap: 5px;\n  }\n\n  .mv-card-desc {\n    margin: 0 !important;\n    font-size: 14px;\n    line-height: 1.5;\n    color: #4b5850;\n    display: -webkit-box;\n    -webkit-line-clamp: 3;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n  }\n\n  .mv-tags {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 6px;\n  }\n\n  .mv-tag {\n    padding: 3px 10px;\n    border-radius: 999px;\n    background: #f3efe8;\n    color: #4b5850;\n    font-size: 12px;\n    max-width: 100%;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n\n  .mv-card-foot {\n    display: flex;\n    justify-content: flex-end;\n    margin-top: auto;\n    padding-top: 6px;\n  }\n\n  .mv-discover {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    padding: 8px 16px;\n    border: 0;\n    border-radius: 999px;\n    background: #f7ebe0;\n    color: #1c2b22;\n    font-size: 14px;\n    font-weight: 600;\n    cursor: pointer;\n    transition: background 0.15s;\n  }\n\n  .mv-card:hover .mv-discover {\n    background: #f1dcc9;\n  }\n\n  \/* Carte \u00ab \u00e0 la une \u00bb : grande, texte sur l'image *\/\n  .mv-card--featured {\n    grid-column: span 2;\n    min-height: 360px;\n  }\n\n  .mv-card--featured .mv-card-media {\n    position: absolute;\n    inset: 0;\n    aspect-ratio: auto;\n  }\n\n  .mv-card--featured .mv-card-media::after {\n    content: '';\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(90deg, rgba(20, 24, 20, 0.72) 0%, rgba(20, 24, 20, 0.35) 55%, rgba(20, 24, 20, 0.05) 100%);\n  }\n\n  .mv-card--featured .mv-card-body {\n    position: relative;\n    justify-content: flex-end;\n    max-width: 480px;\n    padding: 28px;\n    color: #fff;\n  }\n\n  .mv-card--featured .mv-card-title {\n    font-size: 30px !important;\n    color: #fff !important;\n  }\n\n  .mv-card--featured .mv-card-desc,\n  .mv-card--featured .mv-meta {\n    color: rgba(255, 255, 255, 0.9);\n  }\n\n  .mv-card--featured .mv-card-foot {\n    justify-content: flex-start;\n    margin-top: 8px;\n  }\n\n  .mv-card--featured .mv-discover {\n    background: #fff;\n  }\n\n  .mv-flag {\n    align-self: flex-start;\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    margin-bottom: 6px;\n    padding: 6px 12px;\n    border-radius: 999px;\n    background: #c2410c;\n    color: #fff;\n    font-size: 12px;\n    font-weight: 700;\n    letter-spacing: 0.4px;\n    text-transform: uppercase;\n  }\n\n  \/* Pagination *\/\n  .mv-more {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    align-items: center;\n    gap: 6px;\n    margin-top: 28px;\n  }\n\n  .mv-page {\n    min-width: 42px;\n    height: 42px;\n    padding: 0 12px;\n    border: 1px solid var(--mv-line);\n    border-radius: 999px;\n    background: #fff;\n    color: #2f3b33;\n    font-size: 14px;\n    font-weight: 600;\n    cursor: pointer;\n    transition: all 0.15s;\n  }\n\n  .mv-page:hover:not(:disabled):not([aria-current=\"page\"]) {\n    border-color: var(--mv-accent);\n    color: var(--mv-accent);\n  }\n\n  .mv-page[aria-current=\"page\"] {\n    background: var(--mv-accent);\n    border-color: var(--mv-accent);\n    color: #fff;\n    cursor: default;\n  }\n\n  .mv-page:disabled {\n    opacity: 0.4;\n    cursor: not-allowed;\n  }\n\n  .mv-page-gap {\n    padding: 0 4px;\n    color: var(--mv-muted);\n  }\n\n  \/* Bouton \u00ab Revenir \u00e0 la vue d'ensemble \u00bb (visible apr\u00e8s un zoom \/ d\u00e9placement) *\/\n  .mv-map {\n    position: relative;\n  }\n\n  \/* Pas de gros contour noir au clic sur la carte ; contour visible au clavier seulement *\/\n  .mv-map.leaflet-container:focus {\n    outline: none;\n  }\n\n  .mv-map.leaflet-container:focus-visible {\n    outline: 3px solid var(--mv-accent);\n    outline-offset: 2px;\n  }\n\n  .mv-reset {\n    position: absolute;\n    top: 12px;\n    left: 12px;\n    z-index: 500;\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    padding: 8px 14px;\n    border: 0;\n    border-radius: 999px;\n    background: #fff;\n    color: #1c2b22;\n    font-family: 'Inter', -apple-system, sans-serif;\n    font-size: 13px;\n    font-weight: 600;\n    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);\n    cursor: pointer;\n  }\n\n  .mv-reset[hidden] {\n    display: none;\n  }\n\n  .mv-reset:hover {\n    background: var(--mv-accent);\n    color: #fff;\n  }\n\n  .mv-reset .mv-icon {\n    font-size: 15px;\n  }\n\n  \/* Rep\u00e8re de l'\u00e9tablissement (\u00ab vous \u00eates ici \u00bb) *\/\n  .mv-home {\n    background: none;\n    border: none;\n    pointer-events: none;\n  }\n\n  .mv-home-pin {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 44px;\n    height: 44px;\n    border: 3px solid #fff;\n    border-radius: 50%;\n    background: #1c2b22;\n    color: #fff;\n    box-shadow: 0 0 0 5px rgba(28, 43, 34, 0.25), 0 4px 12px rgba(0, 0, 0, 0.35);\n  }\n\n  .mv-home-pin svg {\n    width: 22px;\n    height: 22px;\n  }\n\n  .mv-home-label.leaflet-tooltip {\n    padding: 5px 10px;\n    border: 0;\n    border-radius: 999px;\n    background: #1c2b22;\n    color: #fff;\n    font-family: 'Inter', -apple-system, sans-serif;\n    font-size: 12px;\n    font-weight: 700;\n    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);\n  }\n\n  .mv-home-label.leaflet-tooltip-right::before {\n    border-right-color: #1c2b22;\n  }\n\n  .mv-btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n    padding: 12px 26px;\n    border: 0;\n    border-radius: 999px;\n    background: var(--mv-accent);\n    color: #fff !important;\n    font-size: 15px;\n    font-weight: 600;\n    text-decoration: none !important;\n    cursor: pointer;\n    transition: filter 0.15s;\n  }\n\n  .mv-btn:hover {\n    filter: brightness(0.92);\n  }\n\n  .mv-empty {\n    grid-column: 1 \/ -1;\n    padding: 40px 20px;\n    border: 1px dashed #d6cdbd;\n    border-radius: 18px;\n    background: #fff;\n    color: var(--mv-muted);\n    text-align: center;\n  }\n\n  .mv-empty strong {\n    display: block;\n    margin-bottom: 4px;\n    color: #1f2a24;\n  }\n\n  \/* \u2500\u2500\u2500 Id\u00e9es selon vos envies \u2500\u2500\u2500 *\/\n  .mv-ideas {\n    margin-top: 48px;\n  }\n\n  .mv-ideas-head {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: baseline;\n    justify-content: space-between;\n    gap: 8px 24px;\n    margin-bottom: 16px;\n  }\n\n  .mv-ideas-title {\n    margin: 0 !important;\n    font-size: clamp(22px, 2.6vw, 30px) !important;\n    color: #1c2b22 !important;\n  }\n\n  .mv-ideas-sub {\n    margin: 0 !important;\n    color: var(--mv-muted);\n    font-size: 14px;\n  }\n\n  .mv-ideas-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));\n    gap: 16px;\n  }\n\n  .mv-idea {\n    display: flex;\n    align-items: stretch;\n    overflow: hidden;\n    min-height: 88px;\n    padding: 0;\n    border: 1px solid var(--mv-line);\n    border-radius: 16px;\n    background: #fff;\n    text-align: left;\n    cursor: pointer;\n    transition: box-shadow 0.2s;\n  }\n\n  .mv-idea:hover {\n    box-shadow: 0 8px 20px rgba(31, 42, 36, 0.1);\n  }\n\n  .mv-idea-img {\n    flex: 0 0 38%;\n    background: var(--mv-cream) center \/ cover no-repeat;\n  }\n\n  .mv-idea-body {\n    display: flex;\n    flex: 1;\n    align-items: center;\n    gap: 10px;\n    padding: 12px 14px;\n  }\n\n  .mv-idea-body .mv-icon {\n    font-size: 22px;\n    color: var(--mv-cat);\n  }\n\n  .mv-idea-text {\n    flex: 1;\n    min-width: 0;\n  }\n\n  .mv-idea-text strong {\n    display: block;\n    font-size: 14px;\n    color: #1c2b22;\n    line-height: 1.3;\n  }\n\n  .mv-idea-text span {\n    font-size: 13px;\n    color: var(--mv-muted);\n  }\n\n  \/* \u2500\u2500\u2500 Marqueurs carte \u2500\u2500\u2500 *\/\n  .mv-pin svg {\n    display: block;\n    overflow: visible;\n    transform-origin: 50% 100%;\n    transition: transform 0.15s ease;\n    filter: drop-shadow(0 2px 3px rgba(20, 24, 20, 0.35));\n  }\n\n  .mv-pin.is-hover svg {\n    transform: scale(1.3);\n  }\n\n  .mv-pin.is-selected svg {\n    transform: scale(1.4);\n    filter: drop-shadow(0 0 0 #fff) drop-shadow(0 3px 6px rgba(20, 24, 20, 0.45));\n  }\n\n  .mv-pin.is-selected {\n    z-index: 1001 !important;\n  }\n\n  \/* Pas de carr\u00e9 de focus Leaflet autour du rep\u00e8re cliqu\u00e9 *\/\n  .mv-pin:focus,\n  .mv-pin:focus-visible {\n    outline: none;\n  }\n\n  .mv-pin.is-hover {\n    z-index: 1000 !important;\n  }\n\n  .mv-cluster {\n    background: none;\n    border: none;\n  }\n\n  .mv-cluster span {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    border: 3px solid #fff;\n    border-radius: 50%;\n    background: var(--mv-accent, #2e5e45);\n    color: #fff;\n    font-size: 13px;\n    font-weight: 700;\n    box-shadow: 0 3px 8px rgba(20, 24, 20, 0.3);\n  }\n\n\n  \/* \u2500\u2500\u2500 Modal \u2500\u2500\u2500 *\/\n  .mv-modal-overlay {\n    position: fixed !important;\n    inset: 0 !important;\n    z-index: 99999 !important;\n    max-width: none !important;\n    width: auto !important;\n    margin: 0 !important;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    background: rgba(20, 24, 20, 0.4);\n    backdrop-filter: blur(2px);\n  }\n\n  .mv-modal-overlay[hidden] {\n    display: none !important;\n  }\n\n  .mv-modal {\n    position: relative;\n    width: 100%;\n    max-width: 1080px;\n    max-height: calc(100vh - 32px);\n    overflow-y: auto;\n    border-radius: 22px;\n    background: #fff;\n    box-shadow: 0 24px 60px rgba(20, 24, 20, 0.3);\n    font-family: 'Inter', -apple-system, sans-serif;\n    color: #1f2a24;\n  }\n\n  \/* Cr\u00e9dit photo : discret sur la carte (\u00a9, auteur au survol), lisible en fiche. *\/\n  .mv-credit {\n    position: absolute;\n    top: 8px;\n    right: 8px;\n    z-index: 2;\n    max-width: calc(100% - 16px);\n    padding: 2px 7px;\n    border-radius: 999px;\n    background: rgba(0, 0, 0, 0.45);\n    color: #fff;\n    font-size: 11px;\n    line-height: 1.5;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    cursor: help;\n  }\n\n  .mv-card:hover .mv-credit::after,\n  .mv-credit:focus::after {\n    content: ' ' attr(data-credit);\n  }\n\n  \/* Bandeau : le cr\u00e9dit est \u00e9crit en clair (pas de survol sur une image de fond),\n     en bas \u00e0 droite, loin du titre. *\/\n  .mv-credit--hero {\n    top: auto;\n    bottom: 10px;\n    right: 12px;\n    max-width: 60%;\n    cursor: default;\n  }\n\n  .mv-modal-credit {\n    margin: 6px 2px 0 !important;\n    color: var(--mv-muted, #6b7280);\n    font-size: 12px !important;\n    line-height: 1.4 !important;\n  }\n\n  .mv-modal-img {\n    display: block;\n    width: 100%;\n    aspect-ratio: 4 \/ 3;\n    max-height: 52vh;\n    object-fit: cover;\n    border-radius: 14px;\n  }\n\n  \/* Modal large : contenu sur 2 colonnes (texte \/ m\u00e9dias) pour \u00e9viter de d\u00e9filer *\/\n  .mv-modal-cols {\n    display: grid;\n    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);\n    gap: 28px;\n    align-items: start;\n  }\n\n  \/* Colonne m\u00e9dias : reste visible pendant qu'on lit le texte *\/\n  .mv-modal-col--media {\n    position: sticky;\n    top: 0;\n  }\n\n  .mv-modal-body {\n    padding-top: 26px !important;\n  }\n\n  \/* Place pour le bouton de fermeture en haut \u00e0 droite *\/\n  .mv-modal-cols > .mv-modal-col:last-child {\n    padding-right: 36px;\n  }\n\n  .mv-modal-col {\n    display: flex;\n    flex-direction: column;\n    gap: 14px;\n    min-width: 0;\n  }\n\n  .mv-modal-actions {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px;\n  }\n\n  .mv-btn--ghost {\n    background: #fff;\n    border: 1px solid var(--mv-line);\n    color: #1c2b22 !important;\n  }\n\n  .mv-btn--ghost:hover {\n    filter: none;\n    border-color: var(--mv-accent);\n  }\n\n  @media (max-width: 900px) {\n    .mv-modal-cols {\n      grid-template-columns: minmax(0, 1fr);\n      gap: 14px;\n    }\n\n    \/* Mobile : photo, puis texte, puis boutons \/ m\u00e9dias *\/\n    .mv-modal-cols {\n      display: flex;\n      flex-direction: column;\n    }\n\n    .mv-modal-col--media {\n      display: contents;\n    }\n\n    .mv-modal-col--media > .mv-modal-img {\n      order: -2;\n    }\n\n    .mv-modal-cols > .mv-modal-col:last-child {\n      order: -1;\n    }\n\n    .mv-modal-cols > .mv-modal-col:last-child {\n      padding-right: 0;\n    }\n  }\n\n  .mv-modal-body {\n    display: flex;\n    flex-direction: column;\n    gap: 14px;\n    padding: 22px 26px 26px;\n  }\n\n  .mv-modal-title {\n    margin: 0 !important;\n    font-size: 26px !important;\n    line-height: 1.2 !important;\n    color: #1c2b22 !important;\n  }\n\n  .mv-modal-desc {\n    margin: 0 !important;\n    font-size: 15px;\n    line-height: 1.65;\n    color: #4b5850;\n    white-space: pre-line;\n  }\n\n  .mv-modal-event {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    align-self: flex-start;\n    padding: 7px 12px;\n    border-radius: 10px;\n    background: var(--mv-accent-soft);\n    color: var(--mv-accent);\n    font-size: 14px;\n    font-weight: 600;\n  }\n\n  .mv-fields {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n    gap: 10px 20px;\n    padding: 14px 16px;\n    border-radius: 14px;\n    background: var(--mv-cream);\n  }\n\n  .mv-field span {\n    display: block;\n    margin-bottom: 2px;\n    font-size: 12px;\n    line-height: 1.35 !important;\n    color: var(--mv-muted);\n  }\n\n  .mv-field strong {\n    display: block;\n    font-size: 14px;\n    font-weight: 600;\n    line-height: 1.4 !important;\n    color: #1f2a24;\n    overflow-wrap: anywhere;\n  }\n\n  \/* \u2500\u2500\u2500 Agrandissement automatique par paliers (fiches tr\u00e8s remplies) \u2500\u2500\u2500\n     1. is-wide    : fen\u00eatre plus large, infos sur 3 colonnes, photo plus basse\n     2. is-compact : espacements et textes resserr\u00e9s *\/\n  .mv-modal.is-wide {\n    max-width: min(1320px, calc(100vw - 32px));\n  }\n\n  .mv-modal.is-wide .mv-fields {\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n  }\n\n  .mv-modal.is-wide .mv-modal-img {\n    aspect-ratio: 16 \/ 10;\n    max-height: 36vh;\n  }\n\n  .mv-modal.is-compact .mv-modal-body {\n    gap: 10px;\n    padding: 18px 20px 20px !important;\n  }\n\n  .mv-modal.is-compact .mv-modal-col {\n    gap: 10px;\n  }\n\n  .mv-modal.is-compact .mv-modal-title {\n    font-size: 22px !important;\n  }\n\n  .mv-modal.is-compact .mv-modal-desc {\n    font-size: 14px;\n    line-height: 1.55;\n  }\n\n  .mv-modal.is-compact .mv-fields {\n    gap: 8px 16px;\n    padding: 12px 14px;\n  }\n\n  .mv-modal.is-compact .mv-field strong {\n    font-size: 13px;\n  }\n\n  .mv-modal.is-compact .mv-modal-img {\n    max-height: 30vh;\n  }\n\n  @media (max-width: 900px) {\n    .mv-modal.is-wide .mv-fields {\n      grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));\n    }\n  }\n\n  .mv-modal-sub {\n    margin: 4px 0 0 !important;\n    font-size: 13px;\n    font-weight: 700;\n    letter-spacing: 0.4px;\n    text-transform: uppercase;\n    color: var(--mv-muted);\n  }\n\n  .mv-gallery {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));\n    gap: 8px;\n  }\n\n  .mv-gallery img {\n    display: block;\n    width: 100%;\n    aspect-ratio: 1;\n    object-fit: cover;\n    border-radius: 10px;\n  }\n\n  .mv-docs a {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    padding: 8px 0;\n    color: var(--mv-accent);\n    font-weight: 600;\n    text-decoration: none;\n  }\n\n  .mv-video {\n    position: relative;\n    aspect-ratio: 16 \/ 9;\n    border-radius: 12px;\n    overflow: hidden;\n    background: #000;\n  }\n\n  .mv-video iframe,\n  .mv-video video {\n    position: absolute;\n    inset: 0;\n    width: 100%;\n    height: 100%;\n    border: 0;\n  }\n\n  .mv-faq details {\n    border-bottom: 1px solid var(--mv-line);\n    padding: 10px 0;\n  }\n\n  .mv-faq summary {\n    cursor: pointer;\n    font-size: 15px !important;\n    font-weight: 600;\n    line-height: 1.4 !important;\n    color: #1c2b22;\n  }\n\n  .mv-faq p {\n    margin: 8px 0 0 !important;\n    color: #4b5850;\n    line-height: 1.55;\n  }\n\n  .mv-modal-close {\n    position: absolute;\n    top: 12px;\n    right: 12px;\n    z-index: 2;\n    width: 40px;\n    height: 40px;\n    border: 0;\n    border-radius: 50%;\n    background: rgba(255, 255, 255, 0.95);\n    color: #1f2a24;\n    font-size: 22px;\n    line-height: 1;\n    cursor: pointer;\n    box-shadow: 0 2px 6px rgba(20, 24, 20, 0.2);\n  }\n\n  \/* \u2500\u2500\u2500 Responsive \u2500\u2500\u2500 *\/\n  @media (max-width: 1100px) {\n    .mv-layout {\n      grid-template-columns: minmax(0, 1fr);\n    }\n\n    .mv-map-panel {\n      position: relative;\n      top: 0;\n      order: -1;\n    }\n\n    .mv-map {\n      aspect-ratio: 4 \/ 3;\n      max-height: 420px;\n    }\n  }\n\n  @media (max-width: 720px) {\n    .mv-wrap {\n      padding: 0 12px 40px;\n    }\n\n    .mv-hero {\n      padding: 36px 22px;\n      border-radius: 18px;\n    }\n\n    .mv-hero::before {\n      background: linear-gradient(180deg, rgba(250, 247, 242, 0.95), rgba(250, 247, 242, 0.8));\n    }\n\n    .mv-seg {\n      width: 100%;\n    }\n\n    .mv-seg button {\n      flex: 1;\n      padding: 0 8px;\n    }\n\n\n\n    .mv-card--featured {\n      grid-column: auto;\n      min-height: 320px;\n    }\n\n    .mv-card--featured .mv-card-title {\n      font-size: 24px !important;\n    }\n\n    .mv-modal-img {\n      height: 200px;\n    }\n  }\n<\/style>\n\n\n<div class=\"mv-wrap\" id=\"mv-app\">\n\n  <section class=\"mv-hero\" style=\"background-image:url(https:\/\/camping-lestaubiere.fr\/wp-content\/uploads\/2021\/09\/camping-bergerac-vieille-ville.jpg)\">\n        <div class=\"mv-hero-inner\">\n      <h1 class=\"mv-hero-title\">Ontdek de omgeving<\/h1>\n      <p class=\"mv-hero-text\">Dorpen, stranden, wandelingen, goede adressen en belevenissen rond uw verblijf.<\/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          Rond <strong>Camping Lestaubi\u00e8re<\/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=\"Zoek een plek, een activiteit, een dorp\u2026\" aria-label=\"Zoeken\">\n    <\/label>\n          <div class=\"mv-seg\" role=\"group\" aria-label=\"Maximale afstand\" 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\">Alles<\/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=\"Vorige categorie\u00ebn\"><span>\u2039<\/span><\/button>\n    <div class=\"mv-cats\" id=\"mv-cats\" role=\"group\" aria-label=\"Categorie\u00ebn\"><\/div>\n    <button type=\"button\" class=\"mv-cats-arrow mv-cats-arrow--right\" aria-label=\"Volgende categorie\u00ebn\"><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=\"Weergave\" id=\"mv-view\">\n      <button type=\"button\" data-view=\"list\">Lijst<\/button>\n      <button type=\"button\" data-view=\"map\" class=\"is-active\">Kaart<\/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>Bergerac<\/strong> \u2014 Bergerac is een charmante stad gelegen aan de oevers van de Dordogne, bekend om zijn wijnen en historische centrum.<\/li>\n              <li><strong>Vergt<\/strong> \u2014 Vergt is een charmant dorp met een bekend lokale markt die elke vrijdagmorgen plaatsvindt.<\/li>\n              <li><strong>Castelnaud-la-Chapelle<\/strong> \u2014 Deze voornaamste dorp staat bekend om zijn middeleeuwse kasteel dat uitkijkt over de Dordogne en zijn pittoreske landschappen.<\/li>\n              <li><strong>Sarlat-la-Can\u00e9da<\/strong> \u2014 Sarlat is een middeleeuwse stad bekend om zijn bewaarde architectuur, markten en feestelijke sfeer.<\/li>\n              <li><strong>P\u00e9rigueux<\/strong> \u2014 P\u00e9rigueux is een historische stad vlakbij de camping. Ze staat bekend om haar middeleeuwse oude stad, de Saint-Front kathedraal en pittoreske straatjes.<\/li>\n              <li><strong>Wandelen: Kammenloop<\/strong> \u2014 Een toegankelijke wandeling die op een lus leidt en prachtige panoramische uitzichten biedt op de omliggende bergkam rond Villamblard. Geschikt voor verschillende niveaus, deze wandeling laat je de omliggende natuur&hellip;<\/li>\n              <li><strong>Kano \/ Paddle: Roxane Canoe<\/strong> \u2014 Huur van kano&#039;s en paddles in Bergerac om watersportactiviteiten op de rivier de Dordogne te ervaren. Perfect om de regio anders te ontdekken en met familie of vrienden.<\/li>\n              <li><strong>Wandeling: Toppen Loop<\/strong> \u2014 Een toegankelijke wandeling die op een lus leidt, met schitterende panoramische uitzichten over de randen rond Villamblard. Geschikt voor verschillende niveaus, deze wandeling laat je de omgeving in een rustige&hellip;<\/li>\n              <li><strong>Visite de Bergerac<\/strong> \u2014 Visite guid\u00e9e ou libre de Bergerac, charmante ville historique avec ses ruelles, maisons \u00e0 colombages, mus\u00e9es et monuments, notamment autour de la place P\u00e9lissi\u00e8re.<\/li>\n              <li><strong>Miniatuurhaven<\/strong> \u2014 Miniatuurpark met verkleinde replica&#039;s van boten, gelegen in Bergerac, ideaal voor een leuke en culturele bezoek.<\/li>\n              <li><strong>Visite de Bergerac<\/strong> \u2014 Visite guid\u00e9e ou libre de Bergerac, charmante ville historique avec ses ruelles, maisons \u00e0 colombages, mus\u00e9es et monuments, notamment autour de la place P\u00e9lissi\u00e8re.<\/li>\n              <li><strong>Kajak \/ Paddle: Roxane Canoe<\/strong> \u2014 Huur van kano&#039;s en paddles in Bergerac om te genieten van watersportactiviteiten op de Dordogne-rivier. Perfect om de regio op een andere manier te ontdekken en met familie of vrienden.<\/li>\n              <li><strong>Miniatuurhaven<\/strong> \u2014 Miniatuurpark met verkleinde reproducties van boten, gelegen in Bergerac, ideaal voor een leuke en culturele bezoek.<\/li>\n              <li><strong>Golf de la Marterie<\/strong> \u2014 Golfbaan gelegen in Saint-F\u00e9lix-de-Reillac-et-Mortemart, met een aangename natuurlijke omgeving voor golfliefhebbers van alle niveaus.<\/li>\n              <li><strong>Golf de la Marterie<\/strong> \u2014 Golfbaan gelegen in Saint-F\u00e9lix-de-Reillac-et-Mortemart, met een prettige natuurlijke omgeving voor golfenthousiastelingen van alle niveaus.<\/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=\"Sluiten\">\u00d7<\/button>\n    <div id=\"mv-modal-content\"><\/div>\n  <\/div>\n<\/div>\n\n<script>\n  (function() {\n    var ITEMS = [{\"id\":0,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Bergerac\",\"image\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/wp-content\\\/uploads\\\/2021\\\/09\\\/camping-bergerac-vieille-ville.jpg\",\"credit\":\"\",\"description\":\"Bergerac is een charmante stad gelegen aan de oevers van de Dordogne, bekend om zijn wijnen en historische centrum.\",\"city\":\"\",\"address\":\"\",\"km\":40,\"min\":45,\"lat\":44.85006,\"lng\":0.48476,\"tags\":[],\"fields\":[{\"label\":\"Nom de la ville\",\"value\":\"Bergerac\"},{\"label\":\"Type de la ville (ville \\\/ villages \\\/ bourg...)\",\"value\":\"Stad\"},{\"label\":\"D\\u00e9partement\",\"value\":\"Dordogne\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"40\"},{\"label\":\"Temps de route depuis le camping (min.)\",\"value\":\"45\"},{\"label\":\"Points d'int\\u00e9r\\u00eats\",\"value\":\"Historisch centrum, wijngaarden, tabaksmuseum\"},{\"label\":\"Coups de coeur des g\\u00e9rants\",\"value\":\"Wandeling langs de Dordogne bij zonsondergang.\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Zijn er essenti\\u00eble winkels?\",\"answer\":\"Ja, Bergerac heeft alle benodigde winkels, inclusief lokale markten.\"},{\"question\":\"Wat is de beste tijd om de stad te bezoeken?\",\"answer\":\"De zomer biedt veel buitenactiviteiten en nachtmarkten.\"},{\"question\":\"Waar moet je eten zonder fouten?\",\"answer\":\"Probeer \\\"Les Arcades\\\" voor verfijnde regionale keuken.\"},{\"question\":\"Waar kun je gemakkelijk parkeren?\",\"answer\":\"Er zijn verschillende gratis parkeerplaatsen aan de rand van het stadscentrum.\"},{\"question\":\"Is het stadscentrum toegankelijk voor gehandicapten en strollers?\",\"answer\":\"Het stadscentrum is toegankelijk met enkele geplaveide gebieden, maar over het algemeen goed begaanbaar.\"},{\"question\":\"Wat te doen als het regent in de stad?\",\"answer\":\"Bezoek het tabaksmuseum en geniet van de caf\\u00e9s en winkels in het centrum.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":1,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Vergt\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7ee96b50051.png\",\"credit\":\"\",\"description\":\"Vergt is een charmant dorp met een bekend lokale markt die elke vrijdagmorgen plaatsvindt.\",\"city\":\"\",\"address\":\"\",\"km\":10,\"min\":15,\"lat\":45.0280556,\"lng\":0.7191667,\"tags\":[],\"fields\":[{\"label\":\"Nom de la ville\",\"value\":\"Vergt\"},{\"label\":\"Type de la ville (ville \\\/ villages \\\/ bourg...)\",\"value\":\"Dorp\"},{\"label\":\"D\\u00e9partement\",\"value\":\"Dordogne\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"10\"},{\"label\":\"Temps de route depuis le camping (min.)\",\"value\":\"15\"},{\"label\":\"Points d'int\\u00e9r\\u00eats\",\"value\":\"Vrijdag kunstmarkt, kleine lokale winkels\"},{\"label\":\"Coups de coeur des g\\u00e9rants\",\"value\":\"Doe mee aan de markt om regionale producten te ontdekken.\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Zijn er essenti\\u00eble winkels?\",\"answer\":\"Ja, er is een supermarkt, een kapper, een monteur, een bar en een restaurant in het dorp.\"},{\"question\":\"Wat is de beste tijd om de stad te bezoeken?\",\"answer\":\"Vrijdagochtend om volop van de lokale markt te genieten.\"},{\"question\":\"Waar kun je zonder zorgen eten?\",\"answer\":\"Het restaurant \\\"Le Bistrot du Village\\\" biedt gewaardeerde traditionele gerechten.\"},{\"question\":\"Waar kun je gemakkelijk parkeren?\",\"answer\":\"De parkeergelegenheid is eenvoudig en gratis bij de markt en het centrum.\"},{\"question\":\"Is het stadscentrum toegankelijk voor mindervaliden en kinderwagens?\",\"answer\":\"Ja, het dorp is te voet bereikbaar en gemakkelijk te verkennen met een kinderwagen of rolstoel.\"},{\"question\":\"Wat te doen als het regent in de stad?\",\"answer\":\"Geniet van kleine winkels of een knus caf\\u00e9 om te ontspannen.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":2,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Castelnaud-la-Chapelle\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7ee9b29c97b.jpeg\",\"credit\":\"\",\"description\":\"Deze voornaamste dorp staat bekend om zijn middeleeuwse kasteel dat uitkijkt over de Dordogne en zijn pittoreske landschappen.\",\"city\":\"\",\"address\":\"\",\"km\":55,\"min\":60,\"lat\":44.8158333,\"lng\":1.1494444,\"tags\":[],\"fields\":[{\"label\":\"Nom de la ville\",\"value\":\"Castelnaud-la-Chapelle\"},{\"label\":\"Type de la ville (ville \\\/ villages \\\/ bourg...)\",\"value\":\"Dorp\"},{\"label\":\"D\\u00e9partement\",\"value\":\"Dordogne\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"55\"},{\"label\":\"Temps de route depuis le camping (min.)\",\"value\":\"60\"},{\"label\":\"Points d'int\\u00e9r\\u00eats\",\"value\":\"Kasteel van Castelnaud, watersportbasis, wandelpaden\"},{\"label\":\"Coups de coeur des g\\u00e9rants\",\"value\":\"Maak een kajaktocht op de Dordogne en bezoek het kasteel.\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Zijn er essenti\\u00eble winkels?\",\"answer\":\"Er zijn enkele lokale winkels en restaurants in het dorp.\"},{\"question\":\"Wat is de beste tijd om de stad te bezoeken?\",\"answer\":\"De lente en zomer om optimaal van buitenactiviteiten te genieten.\"},{\"question\":\"Waar te eten zonder fouten?\",\"answer\":\"Het restaurant \\\"La Flamb\\u00e9e\\\" is een veilige keuze om de lokale keuken te proeven.\"},{\"question\":\"Waar gemakkelijk parkeren?\",\"answer\":\"Parkeren is mogelijk bij de ingang van het dorp en nabij het kasteel.\"},{\"question\":\"Is het stadscentrum toegankelijk voor mindervaliden en kinderwagens?\",\"answer\":\"De toegankelijkheid is gedeeltelijk, verwacht enige moeilijkheden op de klinkers en in de steile straten.\"},{\"question\":\"Wat te doen als het in de stad regent?\",\"answer\":\"Bezoek het kasteel en zijn wapencollectie, en ontspan daarna in het lokale caf\\u00e9.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":3,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Sarlat-la-Can\\u00e9da\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7ee90b75e53.jpeg\",\"credit\":\"\",\"description\":\"Sarlat is een middeleeuwse stad bekend om zijn bewaarde architectuur, markten en feestelijke sfeer.\",\"city\":\"\",\"address\":\"\",\"km\":50,\"min\":55,\"lat\":44.892778,\"lng\":1.215278,\"tags\":[],\"fields\":[{\"label\":\"Nom de la ville\",\"value\":\"Sarlat-la-Can\\u00e9da\"},{\"label\":\"Type de la ville (ville \\\/ villages \\\/ bourg...)\",\"value\":\"Stad\"},{\"label\":\"D\\u00e9partement\",\"value\":\"Dordogne\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"50\"},{\"label\":\"Temps de route depuis le camping (min.)\",\"value\":\"55\"},{\"label\":\"Points d'int\\u00e9r\\u00eats\",\"value\":\"Place de la Libert\\u00e9, middeleeuwse markt, Sainte-Marie kerk\"},{\"label\":\"Coups de coeur des g\\u00e9rants\",\"value\":\"Zaterdagochtendmarkt met lokale producten.\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Zijn er essenti\\u00eble winkels?\",\"answer\":\"Ja, Sarlat heeft essenti\\u00eble winkels en een zeer populaire lokale markt.\"},{\"question\":\"Wat is de beste tijd om de stad te bezoeken?\",\"answer\":\"Lente en zomer om markten en evenementen te genieten.\"},{\"question\":\"Waar kun je zonder fouten eten?\",\"answer\":\"Het \\\"Bistrot de l'Octroi\\\" is een uitstekend adres voor de lokale gastronomie.\"},{\"question\":\"Waar kan je gemakkelijk parkeren?\",\"answer\":\"Gebruik de parkeergarages rondom de stad en loop naar het centrum.\"},{\"question\":\"Is het stadscentrum toegankelijk voor rolstoelgebruikers en kinderwagens?\",\"answer\":\"Sommige geplaveide steegjes kunnen moeilijk zijn, maar het centrum blijft toegankelijk.\"},{\"question\":\"Wat te doen als het regent in de stad?\",\"answer\":\"Bezoek kleine ambachtelijke winkels en lokale musea.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":4,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"P\\u00e9rigueux\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7ee857e16c6.jpeg\",\"credit\":\"\",\"description\":\"P\\u00e9rigueux is een historische stad vlakbij de camping. Ze staat bekend om haar middeleeuwse oude stad, de Saint-Front kathedraal en pittoreske straatjes.\",\"city\":\"\",\"address\":\"\",\"km\":25,\"min\":30,\"lat\":45.18399,\"lng\":0.715783,\"tags\":[],\"fields\":[{\"label\":\"Nom de la ville\",\"value\":\"P\\u00e9rigueux\"},{\"label\":\"Type de la ville (ville \\\/ villages \\\/ bourg...)\",\"value\":\"Stad\"},{\"label\":\"D\\u00e9partement\",\"value\":\"Dordogne\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"25\"},{\"label\":\"Temps de route depuis le camping (min.)\",\"value\":\"30\"},{\"label\":\"Points d'int\\u00e9r\\u00eats\",\"value\":\"Saint-Front Kathedraal, Vesunna Museum, middeleeuwse oude stad\"},{\"label\":\"Coups de coeur des g\\u00e9rants\",\"value\":\"Ontdek de lokale markt en slenter door charmante straatjes.\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Zijn er essenti\\u00eble winkels?\",\"answer\":\"Ja, P\\u00e9rigueux heeft essenti\\u00eble winkels zoals supermarkten, apotheken en bakkerijen.\"},{\"question\":\"Wat is de beste tijd om de stad te bezoeken?\",\"answer\":\"Lente en herfst zijn ideaal om P\\u00e9rigueux te bezoeken, als het weer mild en aangenaam is.\"},{\"question\":\"Waar kun je zonder fouten eten?\",\"answer\":\"Het restaurant \\\"Le Petit Parisien\\\" wordt sterk aanbevolen voor zijn authentieke lokale keuken.\"},{\"question\":\"Waar kun je makkelijk parkeren?\",\"answer\":\"Publieke parkeergarages zijn beschikbaar in de buurt van het stadscentrum, wat de toegang vergemakkelijkt.\"},{\"question\":\"Is het stadscentrum toegankelijk voor mindervaliden en kinderwagens?\",\"answer\":\"Ja, het stadscentrum is grotendeels toegankelijk voor mensen met beperkte mobiliteit en kinderwagens.\"},{\"question\":\"Wat te doen als het regent in de stad?\",\"answer\":\"Bezoek het Vesunna Museum en geniet van lokale caf\\u00e9s voor gezellige pauzes.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":5,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Wandelen: Kammenloop\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7eec1aadbaf.png\",\"credit\":\"\",\"description\":\"Een toegankelijke wandeling die op een lus leidt en prachtige panoramische uitzichten biedt op de omliggende bergkam rond Villamblard. Geschikt voor verschillende niveaus, deze wandeling laat je de omliggende natuur ontdekken in een rustige omgeving.\",\"city\":\"\",\"address\":\"\",\"km\":6,\"min\":15,\"lat\":45.0177,\"lng\":0.5408,\"tags\":[],\"fields\":[{\"label\":\"Nom de l'activit\\u00e9\",\"value\":\"Wandelen: Kammenloop\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"6\"},{\"label\":\"Temps de route depuis le camping (min.)\",\"value\":\"15\"},{\"label\":\"Type d'activit\\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Natuur\"},{\"label\":\"Cat\\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Famille, Enfants, Senior, Ado\"},{\"label\":\"R\\u00e9servation ? (oui \\\/ non)\",\"value\":\"non\"},{\"label\":\"Horaires\",\"value\":\"Flexibel, overdag\"},{\"label\":\"Informations et contact\",\"value\":\"Toeristische informatie van Villamblard\"},{\"label\":\"Langues parl\\u00e9es \",\"value\":\"Frans\"},{\"label\":\"Animaux accept\\u00e9 (oui \\\/ non)\",\"value\":\"oui\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Is deze activiteit geschikt voor beginners?\",\"answer\":\"Ja, de Kammenloop is geschikt voor beginners met een goed gemarkeerde route en gemakkelijk toegankelijk zonder grote moeilijkheden.\"},{\"question\":\"Wat is de gemiddelde prijs?\",\"answer\":\"Gratis, het is een vrije natuurgerichte activiteit.\"},{\"question\":\"Is deze activiteit uit te voeren bij slecht weer?\",\"answer\":\"De activiteit wordt afgeraden bij regen of slecht weer vanwege mogelijk glibberige paden.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":7,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Kano \\\/ Paddle: Roxane Canoe\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7eed641adb5.png\",\"credit\":\"\",\"description\":\"Huur van kano's en paddles in Bergerac om watersportactiviteiten op de rivier de Dordogne te ervaren. Perfect om de regio anders te ontdekken en met familie of vrienden.\",\"city\":\"\",\"address\":\"\",\"km\":25,\"min\":30,\"lat\":44.8491928,\"lng\":0.4767077,\"tags\":[],\"fields\":[{\"label\":\"Nom de l'activit\\u00e9\",\"value\":\"Kano \\\/ Paddle: Roxane Canoe\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"25\"},{\"label\":\"Temps de route depuis le camping (min.)\",\"value\":\"30\"},{\"label\":\"Type d'activit\\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Sport, Natuur, Nautisch\"},{\"label\":\"Cat\\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Gezin, Kinderen, Tiener, Volwassenen\"},{\"label\":\"R\\u00e9servation ? (oui \\\/ non)\",\"value\":\"oui\"},{\"label\":\"Horaires\",\"value\":\"9:00 - 19:00\"},{\"label\":\"Informations et contact\",\"value\":\"Roxane Canoe, 05 53 57 22 19, contact@roxanecanoe.fr\"},{\"label\":\"Langues parl\\u00e9es \",\"value\":\"Frans, Engels\"},{\"label\":\"Animaux accept\\u00e9 (oui \\\/ non)\",\"value\":\"non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Is deze activiteit geschikt voor beginners?\",\"answer\":\"Ja, beginners kunnen kano's en paddles huren met een korte briefing.\"},{\"question\":\"Wat is de gemiddelde prijs?\",\"answer\":\"Het huren van een kano kost ongeveer 15 euro per uur.\"},{\"question\":\"Is deze activiteit haalbaar bij slecht weer?\",\"answer\":\"Nee, deze activiteit wordt meestal geannuleerd bij slecht weer om veiligheidsredenen.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":8,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Wandeling: Toppen Loop\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7eec1aadbaf.png\",\"credit\":\"\",\"description\":\"Een toegankelijke wandeling die op een lus leidt, met schitterende panoramische uitzichten over de randen rond Villamblard. Geschikt voor verschillende niveaus, deze wandeling laat je de omgeving in een rustige setting ontdekken.\",\"city\":\"\",\"address\":\"\",\"km\":6,\"min\":15,\"lat\":45.0177,\"lng\":0.5408,\"tags\":[],\"fields\":[{\"label\":\"Nom de l'activit\\u00e9\",\"value\":\"Wandeling: Toppen Loop\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"6\"},{\"label\":\"Temps de route depuis le camping (min.)\",\"value\":\"15\"},{\"label\":\"Type d'activit\\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Natuur\"},{\"label\":\"Cat\\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Gezin, Kinderen, Senior, Tiener\"},{\"label\":\"R\\u00e9servation ? (oui \\\/ non)\",\"value\":\"non\"},{\"label\":\"Horaires\",\"value\":\"Vrij, overdag\"},{\"label\":\"Informations et contact\",\"value\":\"VVV-bureau Villamblard\"},{\"label\":\"Langues parl\\u00e9es \",\"value\":\"Frans\"},{\"label\":\"Animaux accept\\u00e9 (oui \\\/ non)\",\"value\":\"oui\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Is deze activiteit geschikt voor beginners?\",\"answer\":\"Ja, de Toppen Loop is geschikt voor beginners, met een goed gemarkeerd parcours en zonder grote moeilijkheden.\"},{\"question\":\"Wat is de gemiddelde prijs?\",\"answer\":\"Gratis, het is een vrij toegankelijke natuuractiviteit.\"},{\"question\":\"Is deze activiteit mogelijk bij slecht weer?\",\"answer\":\"De activiteit wordt afgeraden bij regen of slecht weer vanwege mogelijk gladde paden.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":9,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Visite de Bergerac\",\"image\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/wp-content\\\/uploads\\\/2021\\\/09\\\/camping-bergerac-vieille-ville.jpg\",\"credit\":\"\",\"description\":\"Visite guid\\u00e9e ou libre de Bergerac, charmante ville historique avec ses ruelles, maisons \\u00e0 colombages, mus\\u00e9es et monuments, notamment autour de la place P\\u00e9lissi\\u00e8re.\",\"city\":\"\",\"address\":\"\",\"km\":25,\"min\":30,\"lat\":44.85006,\"lng\":0.48476,\"tags\":[],\"fields\":[{\"label\":\"Nom de l'activit\\u00e9\",\"value\":\"Visite de Bergerac\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"25\"},{\"label\":\"Temps de route depuis le camping (min.)\",\"value\":\"30\"},{\"label\":\"Type d'activit\\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Culture, Patrimoine\"},{\"label\":\"Cat\\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Famille, Senior, Ado, Adultes\"},{\"label\":\"R\\u00e9servation ? (oui \\\/ non)\",\"value\":\"non\"},{\"label\":\"Horaires\",\"value\":\"Toute la journ\\u00e9e, mieux conseill\\u00e9 le matin ou l'apr\\u00e8s-midi\"},{\"label\":\"Informations et contact\",\"value\":\"Office de Tourisme de Bergerac, +33 5 53 57 17 44\"},{\"label\":\"Langues parl\\u00e9es \",\"value\":\"Fran\\u00e7ais, Anglais\"},{\"label\":\"Animaux accept\\u00e9 (oui \\\/ non)\",\"value\":\"oui\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Is deze activiteit geschikt voor beginners?\",\"answer\":\"Ja, de rondleidingen kunnen worden aangepast aan alle niveaus van kennis.\"},{\"question\":\"Wat is de gemiddelde prijs?\",\"answer\":\"Gratis voor een zelfgeleide rondleiding, rondleidingen kosten ongeveer 10 euro per persoon.\"},{\"question\":\"Is deze activiteit haalbaar bij slecht weer?\",\"answer\":\"Ja, je kunt musea en monumenten bezoeken, zelfs bij slecht weer.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":10,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Miniatuurhaven\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7eede0d982c.png\",\"credit\":\"\",\"description\":\"Miniatuurpark met verkleinde replica's van boten, gelegen in Bergerac, ideaal voor een leuke en culturele bezoek.\",\"city\":\"\",\"address\":\"\",\"km\":25,\"min\":30,\"lat\":44.8488551,\"lng\":0.501941,\"tags\":[],\"fields\":[{\"label\":\"Nom de l'activit\\u00e9\",\"value\":\"Miniatuurhaven\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"25\"},{\"label\":\"Temps de route depuis le camping (min.)\",\"value\":\"30\"},{\"label\":\"Type d'activit\\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Cultuur, Vrije tijd\"},{\"label\":\"Cat\\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Gezin, Kinderen, Senior, Tiener\"},{\"label\":\"R\\u00e9servation ? (oui \\\/ non)\",\"value\":\"oui\"},{\"label\":\"Horaires\",\"value\":\"X\"},{\"label\":\"Informations et contact\",\"value\":\"Port Miniature Bergerac, 0635217937\"},{\"label\":\"Langues parl\\u00e9es \",\"value\":\"Frans\"},{\"label\":\"Animaux accept\\u00e9 (oui \\\/ non)\",\"value\":\"non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Is deze activiteit geschikt voor beginners?\",\"answer\":\"Ja, toegankelijk voor iedereen, inclusief kinderen.\"},{\"question\":\"Wat is de gemiddelde prijs?\",\"answer\":\"Ongeveer 5 euro per persoon.\"},{\"question\":\"Is deze activiteit geschikt bij slecht weer?\",\"answer\":\"Ja, de tentoonstelling is binnen, dus bij slecht weer te doen.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":11,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Visite de Bergerac\",\"image\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/wp-content\\\/uploads\\\/2021\\\/09\\\/camping-bergerac-vieille-ville.jpg\",\"credit\":\"\",\"description\":\"Visite guid\\u00e9e ou libre de Bergerac, charmante ville historique avec ses ruelles, maisons \\u00e0 colombages, mus\\u00e9es et monuments, notamment autour de la place P\\u00e9lissi\\u00e8re.\",\"city\":\"\",\"address\":\"\",\"km\":25,\"min\":30,\"lat\":44.85006,\"lng\":0.48476,\"tags\":[],\"fields\":[{\"label\":\"Nom de l'activit\\u00e9\",\"value\":\"Visite de Bergerac\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"25\"},{\"label\":\"Temps de route depuis le camping (min.)\",\"value\":\"30\"},{\"label\":\"Type d'activit\\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Culture, Patrimoine\"},{\"label\":\"Cat\\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Famille, Senior, Ado, Adultes\"},{\"label\":\"R\\u00e9servation ? (oui \\\/ non)\",\"value\":\"non\"},{\"label\":\"Horaires\",\"value\":\"Toute la journ\\u00e9e, mieux conseill\\u00e9 le matin ou l'apr\\u00e8s-midi\"},{\"label\":\"Informations et contact\",\"value\":\"Office de Tourisme de Bergerac, +33 5 53 57 17 44\"},{\"label\":\"Langues parl\\u00e9es \",\"value\":\"Fran\\u00e7ais, Anglais\"},{\"label\":\"Animaux accept\\u00e9 (oui \\\/ non)\",\"value\":\"oui\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Is deze activiteit geschikt voor beginners?\",\"answer\":\"Ja, de rondleidingen kunnen worden aangepast aan alle niveaus van kennis.\"},{\"question\":\"Wat is de gemiddelde prijs?\",\"answer\":\"Gratis voor self-guided tours, rondleidingen kosten ongeveer 10 euro per persoon.\"},{\"question\":\"Is deze activiteit haalbaar bij slecht weer?\",\"answer\":\"Ja, je kunt musea en monumenten bezoeken, zelfs bij slecht weer.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":13,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Kajak \\\/ Paddle: Roxane Canoe\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7eed641adb5.png\",\"credit\":\"\",\"description\":\"Huur van kano's en paddles in Bergerac om te genieten van watersportactiviteiten op de Dordogne-rivier. Perfect om de regio op een andere manier te ontdekken en met familie of vrienden.\",\"city\":\"\",\"address\":\"\",\"km\":25,\"min\":30,\"lat\":44.8491928,\"lng\":0.4767077,\"tags\":[],\"fields\":[{\"label\":\"Nom de l'activit\\u00e9\",\"value\":\"Kajak \\\/ Paddle: Roxane Canoe\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"25\"},{\"label\":\"Temps de route depuis le camping (min.)\",\"value\":\"30\"},{\"label\":\"Type d'activit\\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Sport, Natuur, Nautisch\"},{\"label\":\"Cat\\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Gezin, Kinderen, Pubers, Volwassenen\"},{\"label\":\"R\\u00e9servation ? (oui \\\/ non)\",\"value\":\"oui\"},{\"label\":\"Horaires\",\"value\":\"9:00 - 19:00\"},{\"label\":\"Informations et contact\",\"value\":\"Roxane Canoe, 05 53 57 22 19, contact@roxanecanoe.fr\"},{\"label\":\"Langues parl\\u00e9es \",\"value\":\"Frans, Engels\"},{\"label\":\"Animaux accept\\u00e9 (oui \\\/ non)\",\"value\":\"non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Is deze activiteit geschikt voor beginners?\",\"answer\":\"Ja, beginners kunnen kano's en paddles huren met een initi\\u00eble briefing.\"},{\"question\":\"Wat is de gemiddelde prijs?\",\"answer\":\"Het huren van een kano kost ongeveer 15 euro per uur.\"},{\"question\":\"Is deze activiteit mogelijk bij slecht weer?\",\"answer\":\"Nee, deze activiteit wordt meestal geannuleerd bij slecht weer om veiligheidsredenen.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":14,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Miniatuurhaven\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7eede0d982c.png\",\"credit\":\"\",\"description\":\"Miniatuurpark met verkleinde reproducties van boten, gelegen in Bergerac, ideaal voor een leuke en culturele bezoek.\",\"city\":\"\",\"address\":\"\",\"km\":25,\"min\":30,\"lat\":44.8488551,\"lng\":0.501941,\"tags\":[],\"fields\":[{\"label\":\"Nom de l'activit\\u00e9\",\"value\":\"Miniatuurhaven\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"25\"},{\"label\":\"Temps de route depuis le camping (min.)\",\"value\":\"30\"},{\"label\":\"Type d'activit\\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Cultuur, Vrije tijd\"},{\"label\":\"Cat\\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Gezin, Kinderen, Senior, Tiener\"},{\"label\":\"R\\u00e9servation ? (oui \\\/ non)\",\"value\":\"oui\"},{\"label\":\"Horaires\",\"value\":\"X\"},{\"label\":\"Informations et contact\",\"value\":\"Port Miniature Bergerac, 0635217937\"},{\"label\":\"Langues parl\\u00e9es \",\"value\":\"Frans\"},{\"label\":\"Animaux accept\\u00e9 (oui \\\/ non)\",\"value\":\"non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Is deze activiteit geschikt voor beginners?\",\"answer\":\"Ja, geschikt voor iedereen, inclusief kinderen.\"},{\"question\":\"Wat is de gemiddelde prijs?\",\"answer\":\"Ongeveer 5 euro per persoon.\"},{\"question\":\"Is deze activiteit geschikt bij slecht weer?\",\"answer\":\"Ja, de tentoonstelling is binnenshuis, dus kan bij slecht weer gedaan worden.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":6,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Golf de la Marterie\",\"image\":\"\",\"credit\":\"\",\"description\":\"Golfbaan gelegen in Saint-F\\u00e9lix-de-Reillac-et-Mortemart, met een aangename natuurlijke omgeving voor golfliefhebbers van alle niveaus.\",\"city\":\"\",\"address\":\"\",\"km\":30,\"min\":35,\"lat\":44.9991612,\"lng\":0.8796141,\"tags\":[],\"fields\":[{\"label\":\"Nom de l'activit\\u00e9\",\"value\":\"Golf de la Marterie\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"30\"},{\"label\":\"Temps de route depuis le camping (min.)\",\"value\":\"35\"},{\"label\":\"Type d'activit\\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Sport\"},{\"label\":\"Cat\\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Volwassenen, Senioren\"},{\"label\":\"R\\u00e9servation ? (oui \\\/ non)\",\"value\":\"oui\"},{\"label\":\"Horaires\",\"value\":\"X\"},{\"label\":\"Informations et contact\",\"value\":\"Golf de la Marterie, 0553056100\"},{\"label\":\"Langues parl\\u00e9es \",\"value\":\"Frans\"},{\"label\":\"Animaux accept\\u00e9 (oui \\\/ non)\",\"value\":\"non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Is deze activiteit geschikt voor beginners?\",\"answer\":\"Nee, het wordt vooral aanbevolen voor ervaren spelers.\"},{\"question\":\"Wat is de gemiddelde prijs?\",\"answer\":\"Ongeveer 40 euro voor de green fee voor 18 holes.\"},{\"question\":\"Is deze activiteit mogelijk bij slecht weer?\",\"answer\":\"Nee, golf is niet te spelen bij regen of slecht weer.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":12,\"featurable\":true,\"type\":\"activites-aux-alentours\",\"name\":\"Golf de la Marterie\",\"image\":\"\",\"credit\":\"\",\"description\":\"Golfbaan gelegen in Saint-F\\u00e9lix-de-Reillac-et-Mortemart, met een prettige natuurlijke omgeving voor golfenthousiastelingen van alle niveaus.\",\"city\":\"\",\"address\":\"\",\"km\":30,\"min\":35,\"lat\":44.9991612,\"lng\":0.8796141,\"tags\":[],\"fields\":[{\"label\":\"Nom de l'activit\\u00e9\",\"value\":\"Golf de la Marterie\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"30\"},{\"label\":\"Temps de route depuis le camping (min.)\",\"value\":\"35\"},{\"label\":\"Type d'activit\\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Sport\"},{\"label\":\"Cat\\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Volwassenen, Senior\"},{\"label\":\"R\\u00e9servation ? (oui \\\/ non)\",\"value\":\"oui\"},{\"label\":\"Horaires\",\"value\":\"X\"},{\"label\":\"Informations et contact\",\"value\":\"Golf de la Marterie, 0553056100\"},{\"label\":\"Langues parl\\u00e9es \",\"value\":\"Frans\"},{\"label\":\"Animaux accept\\u00e9 (oui \\\/ non)\",\"value\":\"non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"Is deze activiteit geschikt voor beginners?\",\"answer\":\"Nee, het wordt vooral aanbevolen voor ervaren spelers.\"},{\"question\":\"Wat is de gemiddelde prijs?\",\"answer\":\"Ongeveer 40 euro voor een green fee voor 18 holes.\"},{\"question\":\"Is deze activiteit bij slecht weer mogelijk?\",\"answer\":\"Nee, golf is niet speelhartig bij regen of slecht weer.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]}];\n    var CATS = {\"villes-aux-alentours\":{\"key\":\"villes-aux-alentours\",\"label\":\"Villes aux alentours\",\"adhoc\":false,\"color\":\"#c2410c\",\"count\":5,\"image\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/wp-content\\\/uploads\\\/2021\\\/09\\\/camping-bergerac-vieille-ville.jpg\"},\"activites-aux-alentours\":{\"key\":\"activites-aux-alentours\",\"label\":\"Activit\\u00e9s aux alentours \",\"adhoc\":false,\"color\":\"#2563eb\",\"count\":10,\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7eec1aadbaf.png\"}};\n    \/\/ Textes d'interface dans la langue de la page (includes\/i18n.php)\n    var T = {\"hero_title\":\"Ontdek de omgeving\",\"hero_text\":\"Dorpen, stranden, wandelingen, goede adressen en belevenissen rond uw verblijf.\",\"around\":\"Rond\",\"search_placeholder\":\"Zoek een plek, een activiteit, een dorp\\u2026\",\"search\":\"Zoeken\",\"max_distance\":\"Maximale afstand\",\"all\":\"Alles\",\"prev_categories\":\"Vorige categorie\\u00ebn\",\"next_categories\":\"Volgende categorie\\u00ebn\",\"categories\":\"Categorie\\u00ebn\",\"display\":\"Weergave\",\"list\":\"Lijst\",\"map\":\"Kaart\",\"close\":\"Sluiten\",\"featured\":\"Uitgelicht\",\"discover\":\"Ontdekken\",\"idea\":\"idee\",\"ideas\":\"idee\\u00ebn\",\"around_you\":\"in de buurt\",\"no_result\":\"Geen resultaten\",\"no_result_hint\":\"Probeer een andere zoekopdracht, categorie of afstand.\",\"pagination\":\"Paginering\",\"prev_page\":\"Vorige pagina\",\"next_page\":\"Volgende pagina\",\"ideas_title\":\"Idee\\u00ebn naar uw zin\",\"ideas_sub\":\"Suggesties voor uw ideale verblijf.\",\"reset_view\":\"Terug naar het overzicht\",\"map_hint\":\"Klik op een markering op de kaart om de details hier te zien.\",\"official_site\":\"Offici\\u00eble website\",\"video\":\"Video\",\"gallery\":\"Galerij\",\"documents\":\"Documenten\",\"faq\":\"Veelgestelde vragen\",\"no_answer\":\"Nog geen antwoord.\",\"see_on_maps\":\"Bekijk op Google Maps\",\"see_place_on_maps\":\"Bekijk de camping op Google Maps\",\"yes\":\"Ja\",\"no\":\"Nee\",\"practical_info\":\"Praktische info\",\"reviews\":\"beoordelingen\",\"read_more\":\"Lees meer\",\"prev_review\":\"Vorige recensie\",\"next_review\":\"Volgende recensie\",\"prev_item\":\"Vorige\",\"next_item\":\"Volgende\",\"photo_credit\":\"Foto: %s\",\"directions\":\"Route\",\"read_less\":\"Minder\",\"stars_out_of_5\":\"%s van de 5 sterren\",\"owner_reply\":\"Reactie van de eigenaar\",\"customer\":\"Gast\",\"customer_reviews\":\"Gastbeoordelingen\",\"rating_label\":\"Beoordeeld met %1$s van de 5, %2$s beoordelingen \\u2014 bekijk de beoordelingen\",\"reviews_by\":\"Beoordelingen gepresenteerd door Elaia\",\"powered_by\":\"Mogelijk gemaakt door\",\"today\":\"Vandaag\",\"today_lc\":\"vandaag\",\"tomorrow\":\"Morgen\",\"until\":\"Tot %s\",\"from_to\":\"Van %1$s tot %2$s\",\"registration\":\"Inschrijving vereist\",\"full\":\"Volgeboekt\",\"all_animations\":\"Alle activiteiten bekijken \\u2192\",\"ago_day\":\"%d dag geleden\",\"ago_days\":\"%d dagen geleden\",\"ago_week\":\"%d week geleden\",\"ago_weeks\":\"%d weken geleden\",\"ago_month\":\"%d maand geleden\",\"ago_months\":\"%d maanden geleden\",\"ago_year\":\"%d jaar geleden\",\"ago_years\":\"%d jaar geleden\",\"anim_unavailable\":\"Het programma is tijdelijk niet beschikbaar\",\"anim_eyebrow\":\"Beleef onvergetelijke momenten\",\"anim_title\":\"Animatie & evenementen\",\"anim_hero_text\":\"Alle activiteiten van het moment, de hoogtepunten van de week en komende evenementen tijdens uw verblijf.\",\"anim_sections\":\"Pagina-onderdelen\",\"anim_nav_today\":\"Vandaag\",\"anim_nav_week\":\"Deze week\",\"anim_nav_upcoming\":\"Binnenkort\",\"anim_nav_calendar\":\"Kalender\",\"anim_where\":\"Waar?\",\"anim_onsite\":\"Ter plaatse\",\"anim_nearby\":\"In de buurt\",\"anim_no_onsite\":\"Momenteel geen activiteit ter plaatse\",\"anim_no_nearby\":\"Momenteel geen evenement in de buurt\",\"anim_all_day\":\"Hele dag\",\"anim_at\":\"om %s\",\"anim_see_detail\":\"details bekijken\",\"anim_live\":\"Bezig\",\"anim_onsite_spot\":\"Ter plaatse \\u00b7 %s\",\"anim_badge_until\":\"Tot\",\"anim_badge_from\":\"Van\",\"anim_badge_today\":\"Vandaag\",\"anim_filter_cat\":\"Filteren op categorie\",\"anim_all_f\":\"Alle\",\"anim_prev_day\":\"Vorige dag\",\"anim_next_day\":\"Volgende dag\",\"anim_today_title\":\"Activiteiten van vandaag\",\"anim_tomorrow_title\":\"Activiteiten van morgen\",\"anim_day_title\":\"Activiteiten op %s\",\"anim_relax_today\":\"Vandaag een rustige dag\",\"anim_nothing_day\":\"Niets gepland op die dag\",\"anim_next_on\":\"Volgende activiteit op %s.\",\"anim_soon\":\"Het programma wordt binnenkort bijgewerkt.\",\"anim_see_day\":\"Die dag bekijken\",\"anim_prev_acts\":\"Vorige activiteiten\",\"anim_next_acts\":\"Volgende activiteiten\",\"anim_prev_week\":\"Vorige week\",\"anim_next_week\":\"Volgende week\",\"anim_week_title\":\"De hoogtepunten van de week\",\"anim_next_week_title\":\"Volgende week\",\"anim_week_of\":\"Week van %s\",\"anim_week_days\":\"Dagen van de week\",\"anim_today_paren\":\"(vandaag)\",\"anim_activity\":\"%d activiteit\",\"anim_activities\":\"%d activiteiten\",\"anim_nothing\":\"niets gepland\",\"anim_pick_day\":\"Kies een andere dag om het programma te zien.\",\"anim_sort\":\"Evenementen sorteren\",\"anim_sort_date\":\"Sorteren op datum\",\"anim_sort_name\":\"Sorteren op naam\",\"anim_upcoming_title\":\"Alle komende evenementen\",\"anim_no_upcoming\":\"Geen komende evenementen\",\"anim_try_cat\":\"Probeer een andere categorie.\",\"anim_more\":\"Meer evenementen (%d)\",\"anim_hide_cal\":\"Kalender verbergen\",\"anim_show_cal\":\"Volledige kalender bekijken\",\"anim_cal_title\":\"Maandkalender\",\"anim_cal_sub\":\"Alle activiteiten van de maand in \\u00e9\\u00e9n oogopslag.\",\"anim_prev_month\":\"Vorige maand\",\"anim_next_month\":\"Volgende maand\",\"anim_more_info\":\"Meer informatie\",\"anim_new_tab\":\"(nieuw tabblad)\",\"date_locale\":\"nl-NL\",\"page_faq\":\"FAQ\",\"page_metadatas\":\"Ontdek de omgeving\",\"page_animations\":\"Animatie en evenementen\",\"page_corpus\":\"Praktische informatie\",\"anim_event\":\"Evenement\"};\n    var DECIMAL = \",\";\n    function plural(n) { return n + ' ' + (n > 1 ? T.ideas : T.idea); }\n    var MAP = {\"tiles_url\":\"https:\\\/\\\/tile.openstreetmap.org\\\/{z}\\\/{x}\\\/{y}.png\",\"attribution\":\"&copy; <a href=\\\"https:\\\/\\\/www.openstreetmap.org\\\/copyright\\\">OpenStreetMap<\\\/a>\",\"home\":null};\n    var ACCENT = \"#2e5e45\";\n    var STEP = 12;\n    var BY_ID = {};\n    ITEMS.forEach(function(it) {\n      BY_ID[it.id] = it;\n    });\n\n    var app = document.getElementById('mv-app');\n    if (!app) return;\n\n    var state = { selected: null, page: 1, q: '', km: 0, cat: 'all', limit: STEP, view: window.matchMedia('(max-width: 1100px)').matches ? 'list' : 'map' };\n\n    \/\/ \u2550\u2550\u2550 Ic\u00f4nes (SVG statiques) + ic\u00f4ne d\u00e9duite de la cat\u00e9gorie \u2550\u2550\u2550\n    var ICONS = {\n      grid: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"4\" y=\"4\" width=\"6\" height=\"6\" rx=\"1\"\/><rect x=\"14\" y=\"4\" width=\"6\" height=\"6\" rx=\"1\"\/><rect x=\"4\" y=\"14\" width=\"6\" height=\"6\" rx=\"1\"\/><rect x=\"14\" y=\"14\" width=\"6\" height=\"6\" rx=\"1\"\/><\/svg>',\n      home: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><path d=\"M3 11l9-7 9 7\"\/><path d=\"M5 10v10h14V10\"\/><path d=\"M10 20v-6h4v6\"\/><\/svg>',\n      beach: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M12 3a9 9 0 0 1 9 9H3a9 9 0 0 1 9-9z\"\/><path d=\"M12 12v9M8 21h8\"\/><\/svg>',\n      leaf: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 19c0-8 5-14 15-14 0 10-6 15-14 15\"\/><path d=\"M5 19l7-7\"\/><\/svg>',\n      family: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"8\" cy=\"6\" r=\"2.5\"\/><circle cx=\"16\" cy=\"6\" r=\"2.5\"\/><path d=\"M4 21v-6a4 4 0 0 1 8 0v6M12 21v-6a4 4 0 0 1 8 0v6\"\/><\/svg>',\n      food: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M7 3v8a2 2 0 0 0 4 0V3M9 11v10M17 3c-2 0-3 2-3 5s1 4 3 4v9\"\/><\/svg>',\n      shop: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><path d=\"M4 9l1.5-5h13L20 9\"\/><path d=\"M4 9h16v2a3 3 0 0 1-6 0 3 3 0 0 1-4 0 3 3 0 0 1-6 0z\"\/><path d=\"M5 13v7h14v-7\"\/><\/svg>',\n      calendar: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\"\/><path d=\"M16 3v4M8 3v4M3 10h18\"\/><\/svg>',\n      wine: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M8 3h8l-.5 6a3.5 3.5 0 0 1-7 0z\"\/><path d=\"M12 13v8M8 21h8\"\/><\/svg>',\n      walk: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"13\" cy=\"4\" r=\"2\"\/><path d=\"M9 21l3-7 3 3v5M8 12l2-4 4 1 3 3\"\/><\/svg>',\n      bed: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M3 18V7M3 14h18v4M21 14v-3a3 3 0 0 0-3-3h-7v6\"\/><circle cx=\"7\" cy=\"11\" r=\"2\"\/><\/svg>',\n      pool: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M2 17c2 0 2-1.5 4-1.5S8 17 10 17s2-1.5 4-1.5 2 1.5 4 1.5 2-1.5 4-1.5M8 14V5a2 2 0 0 1 4 0M14 14V5a2 2 0 0 1 4 0M8 9h6\"\/><\/svg>',\n      info: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 11v6M12 7.5v.5\"\/><\/svg>',\n      pin: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z\"\/><circle cx=\"12\" cy=\"9.5\" r=\"2.5\"\/><\/svg>',\n      car: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 17h14M5 17v2M19 17v2M4 13l2-6h12l2 6v4H4z\"\/><circle cx=\"8\" cy=\"14.5\" r=\"0.5\"\/><circle cx=\"16\" cy=\"14.5\" r=\"0.5\"\/><\/svg>',\n      clock: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 7v5l3 2\"\/><\/svg>',\n      star: '<svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 3l2.8 5.7 6.2.9-4.5 4.4 1.1 6.2L12 17.3 6.4 20.2l1.1-6.2L3 9.6l6.2-.9z\"\/><\/svg>',\n      arrow: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>',\n      home: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3L3 19h18L12 3z\"\/><path d=\"M12 3v16M9 19l3-6 3 6\"\/><\/svg>',\n      reset: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 9V4h5M20 15v5h-5M4 4l6 6M20 20l-6-6M15 4h5v5M9 20H4v-5\"\/><\/svg>',\n      maps: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 4L3 6v14l6-2 6 2 6-2V4l-6 2-6-2z\"\/><path d=\"M9 4v14M15 6v14\"\/><\/svg>',\n      doc: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><path d=\"M6 3h8l4 4v14H6z\"\/><path d=\"M14 3v4h4\"\/><\/svg>'\n    };\n\n    var ICON_RULES = [\n      [\/ville|village|city|alentour\/, 'home'],\n      [\/plage|beach|mer\\b\/, 'beach'],\n      [\/nature|balade|rando|parc|jardin\/, 'leaf'],\n      [\/famil|enfant|kid\/, 'family'],\n      [\/restau|gastro|repas|snack|bar\\b\/, 'food'],\n      [\/march|boutique|commerce|shop\/, 'shop'],\n      [\/evenement|\u00e9v\u00e9nement|event|agenda|atelier|animation\/, 'calendar'],\n      [\/vin|boisson|cave|terroir|bodega\/, 'wine'],\n      [\/activit|sport|loisir|lieu\/, 'walk'],\n      [\/heberg|locatif|accom|mobil\/, 'bed'],\n      [\/piscine|pool|aqua|pataug\/, 'pool'],\n      [\/service|equipement|\u00e9quipement|info\/, 'info']\n    ];\n\n    function catIcon(key) {\n      var c = CATS[key];\n      var hay = (key + ' ' + (c ? c.label : '')).toLowerCase();\n      for (var i = 0; i < ICON_RULES.length; i++) {\n        if (ICON_RULES[i][0].test(hay)) return ICON_RULES[i][1];\n      }\n      return 'pin';\n    }\n\n    function el(tag, cls, text) {\n      var n = document.createElement(tag);\n      if (cls) n.className = cls;\n      if (text != null) n.textContent = text;\n      return n;\n    }\n\n    function icon(name) {\n      var s = el('span', 'mv-icon');\n      s.setAttribute('aria-hidden', 'true');\n      s.innerHTML = ICONS[name] || ICONS.pin;\n      return s;\n    }\n\n    function catColor(key) {\n      return CATS[key] ? CATS[key].color : ACCENT;\n    }\n\n    function norm(s) {\n      return (s || '').toLowerCase().normalize('NFD').replace(\/[\u0300-\u036f]\/g, '');\n    }\n\n    \/\/ \u2550\u2550\u2550 Filtrage \u2550\u2550\u2550\n    function filtered() {\n      var q = norm(state.q.trim());\n      return ITEMS.filter(function(it) {\n        if (state.cat !== 'all' && it.type !== state.cat) return false;\n        \/\/ Distance : seules les fiches qui ont une distance connue sont filtr\u00e9es\n        if (state.km && it.km !== null && it.km > state.km) return false;\n        if (q) {\n          var hay = norm([it.name, it.city, it.description, (CATS[it.type] || {}).label, it.tags.join(' ')].join(' '));\n          if (hay.indexOf(q) === -1) return false;\n        }\n        return true;\n      });\n    }\n\n    \/\/ \u2550\u2550\u2550 Cat\u00e9gories \u2550\u2550\u2550\n    function renderCats() {\n      var box = document.getElementById('mv-cats');\n      box.innerHTML = '';\n      var all = el('button', 'mv-cat' + (state.cat === 'all' ? ' is-active' : ''));\n      all.type = 'button';\n      all.appendChild(icon('grid'));\n      all.appendChild(document.createTextNode(T.all));\n      all.addEventListener('click', function() {\n        setCat('all');\n      });\n      box.appendChild(all);\n      Object.keys(CATS).forEach(function(key) {\n        var b = el('button', 'mv-cat' + (state.cat === key ? ' is-active' : ''));\n        b.type = 'button';\n        b.style.setProperty('--mv-cat', catColor(key));\n        b.appendChild(icon(catIcon(key)));\n        b.appendChild(document.createTextNode(CATS[key].label));\n        b.addEventListener('click', function() {\n          setCat(key);\n        });\n        box.appendChild(b);\n      });\n      updateCatArrows();\n      var active = box.querySelector('.is-active');\n      if (active && active.scrollIntoView && active.offsetLeft + active.offsetWidth > box.scrollLeft + box.clientWidth) {\n        box.scrollLeft = active.offsetLeft - 80;\n      }\n    }\n\n    \/\/ Fl\u00e8ches de la ligne de cat\u00e9gories (visibles seulement s'il reste \u00e0 d\u00e9filer)\n    var catsWrap = document.getElementById('mv-cats-wrap');\n    var catsRow = document.getElementById('mv-cats');\n\n    function updateCatArrows() {\n      var max = catsRow.scrollWidth - catsRow.clientWidth;\n      catsWrap.classList.toggle('can-left', catsRow.scrollLeft > 4);\n      catsWrap.classList.toggle('can-right', catsRow.scrollLeft < max - 4);\n    }\n    catsRow.addEventListener('scroll', updateCatArrows, { passive: true });\n    window.addEventListener('resize', updateCatArrows);\n    catsWrap.querySelector('.mv-cats-arrow--left').addEventListener('click', function() {\n      catsRow.scrollBy({ left: -catsRow.clientWidth * 0.7, behavior: 'smooth' });\n    });\n    catsWrap.querySelector('.mv-cats-arrow--right').addEventListener('click', function() {\n      catsRow.scrollBy({ left: catsRow.clientWidth * 0.7, behavior: 'smooth' });\n    });\n\n    function setCat(key) {\n      state.cat = key;\n      state.limit = STEP;\n      state.page = 1;\n      renderCats();\n      renderList();\n    }\n\n    \/\/ \u2550\u2550\u2550 Cartes \u2550\u2550\u2550\n    function picture(it) {\n      if (!it.image) {\n        var ph = el('div', 'mv-card-noimg');\n        ph.appendChild(icon(catIcon(it.type)));\n        return ph;\n      }\n      var img = el('img');\n      img.src = it.image;\n      img.alt = it.name;\n      img.loading = 'lazy';\n      img.onerror = function() {\n        img.replaceWith(picture({ type: it.type, image: '' }));\n      };\n      return img;\n    }\n\n    function metaLine(it) {\n      var m = el('p', 'mv-meta');\n      if (it.km !== null) {\n        var a = el('span');\n        a.appendChild(icon('car'));\n        a.appendChild(document.createTextNode(String(it.km).replace('.', DECIMAL) + ' km'));\n        m.appendChild(a);\n      }\n      if (it.min !== null) {\n        var b = el('span');\n        b.appendChild(icon('clock'));\n        b.appendChild(document.createTextNode(it.min + ' min'));\n        m.appendChild(b);\n      }\n      if (it.km === null && it.min === null && it.city) {\n        var c = el('span');\n        c.appendChild(icon('pin'));\n        c.appendChild(document.createTextNode(it.city));\n        m.appendChild(c);\n      }\n      return m.childNodes.length ? m : null;\n    }\n\n    function card(it, featured, mini) {\n      var c = el('article', 'mv-card' + (featured ? ' mv-card--featured' : '') + (mini ? ' mv-card--mini' : ''));\n      c.tabIndex = 0;\n      c.dataset.id = it.id;\n      c.style.setProperty('--mv-cat', catColor(it.type));\n\n      var media = el('div', 'mv-card-media');\n      media.appendChild(picture(it));\n      if (!featured && !mini && CATS[it.type]) media.appendChild(el('span', 'mv-pill', CATS[it.type].label));\n      \/\/ Les mini-cartes aussi : la photo y est petite, mais c'est la m\u00eame photo,\n      \/\/ et la licence ne pr\u00e9voit pas d'exception de taille.\n      if (it.credit) {\n        var cr = el('span', 'mv-credit', '\u00a9');\n        cr.title = 'Photo : ' + it.credit;\n        cr.setAttribute('aria-label', 'Photo : ' + it.credit);\n        cr.setAttribute('data-credit', 'Photo : ' + it.credit);\n        media.appendChild(cr);\n      }\n      c.appendChild(media);\n\n      var body = el('div', 'mv-card-body');\n      if (featured) {\n        var flag = el('span', 'mv-flag');\n        flag.appendChild(icon('star'));\n        flag.appendChild(document.createTextNode(T.featured));\n        body.appendChild(flag);\n      }\n      if (mini && CATS[it.type]) body.appendChild(el('span', 'mv-pill', CATS[it.type].label));\n      body.appendChild(el('h3', 'mv-card-title', it.name));\n      var meta = metaLine(it);\n      if (meta) body.appendChild(meta);\n      if (it.description) body.appendChild(el('p', 'mv-card-desc', it.description));\n      if (!featured && !mini && it.tags.length) {\n        var tags = el('div', 'mv-tags');\n        it.tags.forEach(function(t) {\n          tags.appendChild(el('span', 'mv-tag', t));\n        });\n        body.appendChild(tags);\n      }\n      var foot = el('div', 'mv-card-foot');\n      var btn = el('button', 'mv-discover', T.discover);\n      btn.type = 'button';\n      btn.appendChild(icon('arrow'));\n      foot.appendChild(btn);\n      body.appendChild(foot);\n      c.appendChild(body);\n\n      c.addEventListener('click', function() {\n        openModal(it);\n      });\n      c.addEventListener('keydown', function(e) {\n        if (e.key === 'Enter') openModal(it);\n      });\n      if (mini) return c;\n      c.addEventListener('mouseenter', function() {\n        highlightPin(it.id, true);\n      });\n      c.addEventListener('mouseleave', function() {\n        highlightPin(it.id, false);\n      });\n      return c;\n    }\n\n    function renderList() {\n      var list = filtered();\n      var grid = document.getElementById('mv-grid');\n      var more = document.getElementById('mv-more');\n      grid.innerHTML = '';\n      more.innerHTML = '';\n\n      var count = document.getElementById('mv-count');\n      count.innerHTML = '';\n      count.appendChild(el('strong', null, plural(list.length)));\n      count.appendChild(document.createTextNode(' ' + T.around_you));\n\n      if (!list.length) {\n        var empty = el('div', 'mv-empty');\n        empty.appendChild(el('strong', null, T.no_result));\n        empty.appendChild(document.createTextNode(T.no_result_hint));\n        grid.appendChild(empty);\n      }\n\n      \/\/ Pagination : 4 rang\u00e9es pleines par page, selon le nombre de colonnes affich\u00e9es.\n      \/\/ La fiche \u00ab \u00c0 la une \u00bb occupe 2 cases : la 1re page a donc une fiche de moins.\n      var cols = gridColumns();\n      var perPage = cols === 1 ? 8 : cols * 4;\n      var featuredOn = !state.q && list.length > 2 && !!list[0].image && !!list[0].featurable && cols > 1;\n      var first = featuredOn ? perPage - 1 : perPage;\n      var pages = list.length <= first ? 1 : 1 + Math.ceil((list.length - first) \/ perPage);\n      if (state.page > pages) state.page = pages;\n      var start = state.page === 1 ? 0 : first + (state.page - 2) * perPage;\n      var end = state.page === 1 ? first : start + perPage;\n\n      list.slice(start, end).forEach(function(it, i) {\n        grid.appendChild(card(it, featuredOn && state.page === 1 && i === 0));\n      });\n\n      if (pages > 1) renderPager(more, pages);\n\n      updateMap(list);\n    }\n\n    \/**\n     * Remonte au bloc demand\u00e9, sous l'en-t\u00eate fixe du th\u00e8me. Apr\u00e8s le rendu\n     * (image suivante) : la liste vient de changer de hauteur \u2014 28 pages qui\n     * deviennent une \u2014 et une position calcul\u00e9e avant tombait trop haut ou\n     * trop bas selon la cat\u00e9gorie cliqu\u00e9e.\n     *\/\n    var appRoot = document.getElementById('mv-app');\n    if (appRoot) appRoot.style.overflowAnchor = 'none';\n\n    function scrollToBlock(id) {\n      requestAnimationFrame(function() {\n        var target = document.getElementById(id);\n        if (!target) return;\n        var top = target.getBoundingClientRect().top + window.pageYOffset - headerOffset() - 16;\n        window.scrollTo({ top: Math.max(0, top), behavior: 'smooth' });\n      });\n    }\n\n    \/** Nombre de colonnes de la grille (d\u00e9pend de la largeur disponible) *\/\n    function gridColumns() {\n      var g = document.getElementById('mv-grid');\n      var n = g ? getComputedStyle(g).gridTemplateColumns.split(' ').filter(Boolean).length : 3;\n      return Math.max(1, n || 3);\n    }\n\n    function renderPager(box, pages) {\n      box.setAttribute('role', 'navigation');\n      box.setAttribute('aria-label', T.pagination);\n      var go = function(n) {\n        state.page = n;\n        try {\n          renderList();\n        } finally {\n          scrollToBlock('mv-count');\n        }\n      };\n      var btn = function(label, n, opts) {\n        var b = el('button', 'mv-page', label);\n        b.type = 'button';\n        if (opts.aria) b.setAttribute('aria-label', opts.aria);\n        if (opts.current) b.setAttribute('aria-current', 'page');\n        b.disabled = !!opts.disabled;\n        b.addEventListener('click', function() {\n          if (!opts.current) go(n);\n        });\n        box.appendChild(b);\n      };\n      btn('\u2039', state.page - 1, { disabled: state.page === 1, aria: T.prev_page });\n      var last = 0;\n      for (var p = 1; p <= pages; p++) {\n        if (p === 1 || p === pages || Math.abs(p - state.page) <= 1) {\n          if (p - last > 1) box.appendChild(el('span', 'mv-page-gap', '\u2026'));\n          btn(String(p), p, { current: p === state.page, aria: 'Page ' + p });\n          last = p;\n        }\n      }\n      btn('\u203a', state.page + 1, { disabled: state.page === pages, aria: T.next_page });\n    }\n\n    \/\/ \u2550\u2550\u2550 Id\u00e9es selon vos envies (cat\u00e9gories les plus fournies) \u2550\u2550\u2550\n    function renderIdeas() {\n      var sec = document.getElementById('mv-ideas');\n      \/\/ Les fiches sans gabarit (\u00ab Infos pratiques \u00bb) ne sont pas une envie.\n      var keys = Object.keys(CATS).filter(function(k) { return !CATS[k].adhoc; }).sort(function(a, b) {\n        return (CATS[b].image ? 1 : 0) - (CATS[a].image ? 1 : 0) || CATS[b].count - CATS[a].count;\n      }).slice(0, 4);\n      if (keys.length < 2) return;\n\n      var head = el('div', 'mv-ideas-head');\n      var h = el('h2', 'mv-ideas-title', T.ideas_title);\n      h.id = 'mv-ideas-title';\n      head.appendChild(h);\n      head.appendChild(el('p', 'mv-ideas-sub', T.ideas_sub));\n      sec.appendChild(head);\n\n      var grid = el('div', 'mv-ideas-grid');\n      keys.forEach(function(key) {\n        var c = CATS[key];\n        var b = el('button', 'mv-idea');\n        b.type = 'button';\n        b.style.setProperty('--mv-cat', c.color);\n        var img = el('span', 'mv-idea-img');\n        if (c.image) img.style.backgroundImage = 'url(\"' + c.image.replace(\/\"\/g, '%22') + '\")';\n        b.appendChild(img);\n        var body = el('span', 'mv-idea-body');\n        body.appendChild(icon(catIcon(key)));\n        var txt = el('span', 'mv-idea-text');\n        txt.appendChild(el('strong', null, c.label));\n        txt.appendChild(el('span', null, plural(c.count)));\n        body.appendChild(txt);\n        body.appendChild(icon('arrow'));\n        b.appendChild(body);\n        b.addEventListener('click', function() {\n          try {\n            setCat(key);\n          } finally {\n            scrollToBlock('mv-cats');\n          }\n        });\n        grid.appendChild(b);\n      });\n      sec.appendChild(grid);\n    }\n\n    \/\/ \u2550\u2550\u2550 Carte Leaflet \u2550\u2550\u2550\n    var map = null,\n      layer = null,\n      homeMarker = null,\n      radius = null,\n      resetBtn = null,\n      fitting = false, \/\/ cadrage lanc\u00e9 par le code (et non par l'utilisateur)\n      overview = null, \/\/ dernier cadrage \u00ab vue d'ensemble \u00bb\n      pins = {};\n\n    \/\/ Copie de Leaflet utilis\u00e9e pour TOUTE la carte. Sur certains sites (th\u00e8me qui\n    \/\/ d\u00e9place les scripts avec jQuery, WP Rocket\u2026) Leaflet s'ex\u00e9cute deux fois : la\n    \/\/ 2e copie \u00e9crase window.L alors que markercluster s'est attach\u00e9 \u00e0 la 1re.\n    \/\/ M\u00e9langer les deux copies rend les rep\u00e8res invisibles et casse le regroupement.\n    var Lf = null;\n\n    function resolveLeaflet() {\n      var cur = window.L;\n      if (!cur) return null;\n      if (typeof cur.markerClusterGroup === 'function' && typeof cur.MarkerClusterGroup === 'function') return cur;\n      if (typeof cur.noConflict === 'function') {\n        var current = cur.noConflict(); \/\/ window.L \u2190 copie pr\u00e9c\u00e9dente\n        var previous = window.L;\n        if (previous && previous !== current && typeof previous.MarkerClusterGroup === 'function') {\n          \/\/ markercluster lit window.L \u00e0 chaque action (clic, zoom) : on remet\n          \/\/ durablement la copie qui le porte (l'autre n'est qu'un doublon de la m\u00eame version).\n          \/\/ Sans \u00e7a, les identifiants internes des deux copies se m\u00e9langent et les\n          \/\/ clics sur les rep\u00e8res \/ groupes sont perdus.\n          window.L = previous;\n          return previous;\n        }\n        window.L = current;\n      }\n      return null;\n    }\n\n    function pinIcon(color, hover, selected) {\n      return Lf.divIcon({\n        className: 'mv-pin' + (hover ? ' is-hover' : '') + (selected ? ' is-selected' : ''),\n        html: '<svg width=\"30\" height=\"39\" viewBox=\"0 0 28 36\"><path d=\"M14 35C14 35 26 22.5 26 13.5A12 12 0 0 0 2 13.5C2 22.5 14 35 14 35Z\" fill=\"' + color + '\" stroke=\"#fff\" stroke-width=\"2\"\/><circle cx=\"14\" cy=\"13.5\" r=\"4.5\" fill=\"#fff\"\/><\/svg>',\n        iconSize: [30, 39],\n        iconAnchor: [15, 39],\n        popupAnchor: [0, -34]\n      });\n    }\n\n    var mapTries = 0;\n\n    function initMap() {\n      var elMap = document.getElementById('mv-map');\n      if (!elMap) return;\n      \/\/ Attend Leaflet + markercluster (scripts parfois diff\u00e9r\u00e9s), 8 s max ;\n      \/\/ au-del\u00e0, carte sans regroupement plut\u00f4t que pas de carte.\n      Lf = resolveLeaflet();\n      if (!Lf) {\n        if (++mapTries < 80) return setTimeout(initMap, 100);\n        if (!window.L) return;\n        Lf = window.L;\n      }\n      map = Lf.map(elMap, { zoomControl: false, scrollWheelZoom: false, attributionControl: false }).setView([46.6, 1.9], 6);\n      \/\/ Garde-fou : si le th\u00e8me r\u00e9ex\u00e9cute Leaflet plus tard, on remet la bonne copie\n      \/\/ juste avant toute interaction (markercluster lit window.L au moment du clic).\n      ['pointerdown', 'mousedown', 'touchstart', 'click', 'wheel'].forEach(function(t) {\n        elMap.addEventListener(t, function() {\n          if (window.L !== Lf) window.L = Lf;\n        }, true);\n      });\n      Lf.tileLayer(MAP.tiles_url, { maxZoom: 19 }).addTo(map);\n      Lf.control.zoom({ position: 'bottomright' }).addTo(map);\n      Lf.control.attribution({ position: 'bottomleft', prefix: false }).addAttribution(MAP.attribution).addTo(map);\n\n      \/\/ \u00ab Revenir \u00e0 la vue d'ensemble \u00bb : appara\u00eet d\u00e8s que l'utilisateur zoome \/ d\u00e9place la carte\n      resetBtn = el('button', 'mv-reset');\n      resetBtn.type = 'button';\n      resetBtn.hidden = true;\n      resetBtn.appendChild(icon('reset'));\n      resetBtn.appendChild(document.createTextNode(T.reset_view));\n      resetBtn.addEventListener('click', function() {\n        fitOverview();\n        resetBtn.hidden = true;\n      });\n      elMap.appendChild(resetBtn);\n      Lf.DomEvent.disableClickPropagation(resetBtn);\n      map.on('zoomstart movestart', function() {\n        if (!fitting && resetBtn) resetBtn.hidden = false;\n      });\n\n      \/\/ Rep\u00e8re de l'\u00e9tablissement, toujours visible (hors regroupement)\n      if (MAP.home) {\n        homeMarker = Lf.marker([MAP.home.lat, MAP.home.lng], {\n          icon: Lf.divIcon({ className: 'mv-home', html: '<span class=\"mv-home-pin\">' + ICONS.home + '<\/span>', iconSize: [44, 44], iconAnchor: [22, 22] }),\n          \/\/ Sous les rep\u00e8res et groupes : les fiches situ\u00e9es \u00e0 l'\u00e9tablissement m\u00eame\n          \/\/ (souvent nombreuses) restent visibles et cliquables par-dessus.\n          zIndexOffset: -1000,\n          keyboard: false,\n          interactive: false,\n          title: MAP.home.label\n        }).addTo(map);\n        homeMarker.bindTooltip(MAP.home.label, { permanent: true, direction: 'right', offset: [24, 0], className: 'mv-home-label' });\n      }\n\n      layer = (typeof Lf.markerClusterGroup === 'function') ? Lf.markerClusterGroup({\n        showCoverageOnHover: false,\n        maxClusterRadius: 45,\n        iconCreateFunction: function(cl) {\n          var n = cl.getChildCount();\n          var s = n < 10 ? 34 : (n < 50 ? 40 : 46);\n          return Lf.divIcon({ className: 'mv-cluster', html: '<span style=\"width:' + s + 'px;height:' + s + 'px;background:' + ACCENT + '\">' + n + '<\/span>', iconSize: [s, s] });\n        }\n      }) : Lf.layerGroup();\n      layer.addTo(map);\n      renderList();\n    }\n\n    \/**\n     * Met la carte \u00e0 jour sans jamais bloquer la page. Le th\u00e8me (ou WP Rocket)\n     * peut r\u00e9ex\u00e9cuter Leaflet apr\u00e8s coup : markercluster lit alors la mauvaise\n     * copie (\u00ab L.DistanceGrid is not a constructor \u00bb) au moment o\u00f9 la LISTE met\n     * la carte \u00e0 jour. On remet la bonne copie avant, et une erreur de carte\n     * n'emp\u00eache plus la liste ni le d\u00e9filement qui suivent.\n     *\/\n    function updateMap(list) {\n      if (!map || !layer) return;\n      if (Lf && window.L !== Lf) window.L = Lf;\n      try {\n        drawMap(list);\n      } catch (e) {\n        if (window.console) console.warn('Elaia \u2014 carte non mise \u00e0 jour :', e);\n      }\n    }\n\n    function drawMap(list) {\n      layer.clearLayers();\n      pins = {};\n      var bounds = [];\n      var markers = [];\n      list.forEach(function(it) {\n        if (it.lat === null) return;\n        var m = Lf.marker([it.lat, it.lng], { icon: pinIcon(catColor(it.type), false, it.id === state.selected), title: it.name });\n        m.on('click', function() {\n          selectItem(it.id);\n        });\n        markers.push(m);\n        pins[it.id] = m;\n        bounds.push([it.lat, it.lng]);\n      });\n      \/\/ Ajout group\u00e9 : un seul recalcul des regroupements (plus fiable que addLayer un par un)\n      if (typeof layer.addLayers === 'function') layer.addLayers(markers);\n      else markers.forEach(function(m) {\n        layer.addLayer(m);\n      });\n\n      \/\/ Rayon du filtre de distance autour de l'\u00e9tablissement\n      if (radius) {\n        map.removeLayer(radius);\n        radius = null;\n      }\n      if (MAP.home) {\n        bounds.push([MAP.home.lat, MAP.home.lng]);\n        if (state.km) {\n          radius = Lf.circle([MAP.home.lat, MAP.home.lng], {\n            radius: state.km * 1000,\n            color: ACCENT,\n            weight: 1.5,\n            dashArray: '6 6',\n            fillColor: ACCENT,\n            fillOpacity: 0.06,\n            interactive: false\n          }).addTo(map);\n        }\n      }\n\n      if (state.selected !== null && !pins[state.selected]) state.selected = null;\n      renderPreview();\n      overview = radius ? { bounds: radius.getBounds(), padding: [20, 20] } :\n        (bounds.length > 1 ? { bounds: bounds, padding: [40, 40] } :\n          (bounds.length === 1 ? { center: bounds[0] } : null));\n      fitOverview();\n      if (resetBtn) resetBtn.hidden = true;\n      setTimeout(function() {\n        map.invalidateSize();\n      }, 50);\n    }\n\n    \/** Cadre la carte sur la vue d'ensemble, sans afficher le bouton \u00ab Revenir\u2026 \u00bb *\/\n    function fitOverview() {\n      if (!map || !overview) return;\n      fitting = true;\n      if (overview.center) map.setView(overview.center, 13, { animate: false });\n      else map.fitBounds(overview.bounds, { padding: overview.padding, maxZoom: 13, animate: false });\n      setTimeout(function() {\n        fitting = false;\n      }, 50);\n    }\n\n    function highlightPin(id, on) {\n      var m = pins[id];\n      if (!m) return;\n      var it = BY_ID[id];\n      var selected = id === state.selected;\n      m.setIcon(pinIcon(catColor(it.type), on, selected));\n      m.setZIndexOffset(on || selected ? 1000 : 0);\n    }\n\n    \/** S\u00e9lectionne une fiche depuis la carte : rep\u00e8re mis en avant + fiche sous la carte *\/\n    function selectItem(id) {\n      var prev = state.selected;\n      state.selected = id;\n      if (prev !== null) highlightPin(prev, false);\n      highlightPin(id, false);\n      renderPreview();\n    }\n\n    function renderPreview() {\n      var box = document.getElementById('mv-preview');\n      if (!box) return;\n      box.innerHTML = '';\n      var it = state.selected !== null ? BY_ID[state.selected] : null;\n      if (!it) {\n        var hint = el('div', 'mv-preview-hint');\n        hint.appendChild(icon('pin'));\n        hint.appendChild(document.createTextNode(T.map_hint));\n        box.appendChild(hint);\n        return;\n      }\n      box.appendChild(card(it, false, true));\n    }\n\n    \/\/ \u2550\u2550\u2550 Modal \u2550\u2550\u2550\n    var modal = document.getElementById('mv-modal');\n    if (modal.parentNode !== document.body) document.body.appendChild(modal);\n    var content = document.getElementById('mv-modal-content');\n    content.style.setProperty('--mv-accent', ACCENT);\n    content.style.setProperty('--mv-accent-soft', ACCENT + '1a');\n    content.style.setProperty('--mv-cream', '#faf7f2');\n    content.style.setProperty('--mv-line', '#ebe5da');\n    content.style.setProperty('--mv-muted', '#6b6559');\n    var lastFocus = null;\n\n    function openModal(it) {\n      lastFocus = document.activeElement;\n      content.innerHTML = '';\n      content.style.setProperty('--mv-cat', catColor(it.type));\n\n      \/\/ Deux colonnes d\u00e8s le haut : m\u00e9dias \/ actions \u00e0 gauche, texte \u00e0 droite\n      var body = el('div', 'mv-modal-body');\n      var cols = el('div', 'mv-modal-cols');\n      var side = el('div', 'mv-modal-col mv-modal-col--media');\n      var main = el('div', 'mv-modal-col');\n      cols.appendChild(side);\n      cols.appendChild(main);\n      body.appendChild(cols);\n      var mainBody = body;\n\n      if (it.image) {\n        var img = el('img', 'mv-modal-img');\n        img.src = it.image;\n        img.alt = it.name;\n        img.onerror = function() {\n          img.remove();\n          if (cap) cap.remove();\n        };\n        side.appendChild(img);\n        var cap = null;\n        if (it.credit) {\n          cap = el('p', 'mv-modal-credit', 'Photo : ' + it.credit);\n          side.appendChild(cap);\n        }\n      }\n\n      body = main;\n      if (CATS[it.type]) {\n        var pill = el('span', 'mv-pill', CATS[it.type].label);\n        pill.style.alignSelf = 'flex-start';\n        body.appendChild(pill);\n      }\n      var t = el('h2', 'mv-modal-title', it.name);\n      t.id = 'mv-modal-title';\n      body.appendChild(t);\n      var meta = metaLine(it);\n      if (meta) body.appendChild(meta);\n      if (it.event) {\n        var ev = el('span', 'mv-modal-event');\n        ev.appendChild(icon('calendar'));\n        ev.appendChild(document.createTextNode(it.event));\n        body.appendChild(ev);\n      }\n      if (it.description) body.appendChild(el('p', 'mv-modal-desc', it.description));\n\n      if (it.fields.length) {\n        var f = el('div', 'mv-fields');\n        it.fields.forEach(function(fd) {\n          var d = el('div', 'mv-field');\n          d.appendChild(el('span', null, fd.label));\n          d.appendChild(el('strong', null, fd.value));\n          f.appendChild(d);\n        });\n        body.appendChild(f);\n      }\n\n      \/\/ Colonne m\u00e9dias (gauche)\n      body = side;\n      var actions = el('div', 'mv-modal-actions');\n      \/\/ Google Maps seulement si on sait o\u00f9 se trouve la fiche (sinon lien trompeur)\n      var gmTarget = mapsTarget(it);\n      if (gmTarget) {\n        var gm = el('a', 'mv-btn', gmTarget.label);\n        gm.href = gmTarget.url;\n        gm.target = '_blank';\n        gm.rel = 'noopener';\n        gm.insertBefore(icon('maps'), gm.firstChild);\n        actions.appendChild(gm);\n      }\n      if (it.link) {\n        var l = el('a', 'mv-btn mv-btn--ghost', T.official_site);\n        l.href = it.link;\n        l.target = '_blank';\n        l.rel = 'noopener';\n        l.appendChild(icon('arrow'));\n        actions.appendChild(l);\n      }\n      body.appendChild(actions);\n\n      if (it.video_url) {\n        body.appendChild(el('p', 'mv-modal-sub', T.video));\n        var e = it.video_embed;\n        if (e && (e.type === 'youtube' || e.type === 'vimeo') && e.src) {\n          var v = el('div', 'mv-video');\n          var fr = el('iframe');\n          fr.src = e.src;\n          fr.allowFullscreen = true;\n          fr.setAttribute('allow', 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture');\n          fr.referrerPolicy = 'strict-origin-when-cross-origin';\n          v.appendChild(fr);\n          body.appendChild(v);\n        } else if (e && e.type === 'file' && e.src) {\n          var vw = el('div', 'mv-video');\n          var vid = el('video');\n          vid.src = e.src;\n          vid.controls = true;\n          vid.preload = 'metadata';\n          vw.appendChild(vid);\n          body.appendChild(vw);\n        } else {\n          var vl = el('a', null, it.video_url);\n          vl.href = it.video_url;\n          vl.target = '_blank';\n          vl.rel = 'noopener';\n          body.appendChild(vl);\n        }\n      }\n\n      if (it.gallery.length) {\n        body.appendChild(el('p', 'mv-modal-sub', T.gallery));\n        var g = el('div', 'mv-gallery');\n        it.gallery.forEach(function(src) {\n          var a = el('a');\n          a.href = src;\n          a.target = '_blank';\n          a.rel = 'noopener';\n          var gi = el('img');\n          gi.src = src;\n          gi.alt = '';\n          gi.loading = 'lazy';\n          a.appendChild(gi);\n          g.appendChild(a);\n        });\n        body.appendChild(g);\n      }\n\n      var docs = it.documents.filter(function(d) {\n        return d && d.url;\n      });\n      if (docs.length) {\n        body.appendChild(el('p', 'mv-modal-sub', T.documents));\n        var dl = el('div', 'mv-docs');\n        docs.forEach(function(d) {\n          var a = el('a');\n          a.href = d.url;\n          a.target = '_blank';\n          a.rel = 'noopener';\n          a.appendChild(icon('doc'));\n          a.appendChild(document.createTextNode(d.nom || 'Document'));\n          dl.appendChild(a);\n        });\n        body.appendChild(dl);\n      }\n\n      if (it.faq.length) {\n        body = main; \/\/ la FAQ reste dans la colonne texte\n        body.appendChild(el('p', 'mv-modal-sub', T.faq));\n        var fq = el('div', 'mv-faq');\n        it.faq.forEach(function(qa) {\n          var det = el('details');\n          det.appendChild(el('summary', null, qa.question));\n          det.appendChild(el('p', null, qa.answer || T.no_answer));\n          fq.appendChild(det);\n        });\n        body.appendChild(fq);\n      }\n\n      content.appendChild(mainBody);\n      modal.hidden = false;\n      fitModal();\n      content.querySelectorAll('img, iframe, video').forEach(function(m) {\n        m.addEventListener('load', fitModal);\n        m.addEventListener('loadedmetadata', fitModal);\n      });\n      document.documentElement.style.overflow = 'hidden';\n      document.getElementById('mv-modal-close').focus();\n    }\n\n    \/**\n     * Agrandissement automatique : on passe au palier suivant tant que le contenu\n     * d\u00e9passe la hauteur disponible (sur grand \u00e9cran seulement).\n     *\/\n    function fitModal() {\n      var m = modal.querySelector('.mv-modal');\n      if (!m || modal.hidden) return;\n      m.classList.remove('is-wide', 'is-compact');\n      if (window.innerWidth <= 900) return;\n      var overflows = function() {\n        return m.scrollHeight > m.clientHeight + 2;\n      };\n      if (!overflows()) return;\n      m.classList.add('is-wide');\n      if (!overflows()) return;\n      m.classList.add('is-compact');\n    }\n    window.addEventListener('resize', function() {\n      if (!modal.hidden) fitModal();\n    });\n\n    \/** Lien Google Maps : coordonn\u00e9es si connues, sinon nom + ville \/ adresse *\/\n    \/**\n     * Cible Google Maps, par ordre de fiabilit\u00e9 :\n     *   1. coordonn\u00e9es de la fiche\n     *   2. nom + adresse (ou ville)\n     *   3. position de l'\u00e9tablissement (fiche sans lieu = \u00e9quipement sur place)\n     *   4. aucune \u2192 pas de bouton\n     *\/\n    function mapsTarget(it) {\n      var base = 'https:\/\/www.google.com\/maps\/search\/?api=1&query=';\n      if (it.lat !== null) return { url: base + encodeURIComponent(it.lat + ',' + it.lng), label: T.see_on_maps };\n      var where = it.address || it.city;\n      if (where) return { url: base + encodeURIComponent(it.name + ', ' + where), label: T.see_on_maps };\n      if (MAP.home) return { url: base + encodeURIComponent(MAP.home.lat + ',' + MAP.home.lng), label: T.see_place_on_maps };\n      return null;\n    }\n\n    function closeModal() {\n      modal.hidden = true;\n      document.documentElement.style.overflow = '';\n      if (lastFocus) lastFocus.focus();\n    }\n\n    document.getElementById('mv-modal-close').addEventListener('click', closeModal);\n    modal.addEventListener('click', function(e) {\n      if (e.target === modal) closeModal();\n    });\n    document.addEventListener('keydown', function(e) {\n      if (e.key === 'Escape' && !modal.hidden) closeModal();\n    });\n\n    \/\/ \u2550\u2550\u2550 Contr\u00f4les \u2550\u2550\u2550\n    \/**\n     * Hauteur occup\u00e9e en haut de l'\u00e9cran par les barres fixes \/ collantes du site\n     * (barre d'admin, en-t\u00eate, barre de r\u00e9servation\u2026), quelle que soit leur classe :\n     * on sonde le haut de l'\u00e9cran et on empile les barres trouv\u00e9es.\n     *\/\n    function headerOffset() {\n      var bottom = 0;\n      var vw = window.innerWidth,\n        vh = window.innerHeight;\n      var isBar = function(el) {\n        if (!el || el === document.body || el === document.documentElement) return false;\n        if (el.closest('#mv-app, .ea-modal-overlay, .mv-modal-overlay')) return false;\n        var pos = getComputedStyle(el).position;\n        if (pos !== 'fixed' && pos !== 'sticky') return false;\n        var r = el.getBoundingClientRect();\n        \/\/ vraie barre : large, pas trop haute (exclut bulles de chat, boutons flottants, popups)\n        return r.width >= vw * 0.3 && r.height > 0 && r.height < vh * 0.45;\n      };\n      for (var pass = 0; pass < 5; pass++) {\n        var y = bottom + 2,\n          found = 0;\n        if (y >= vh * 0.5) break;\n        [0.15, 0.5, 0.85].forEach(function(fx) {\n          (document.elementsFromPoint(vw * fx, y) || []).forEach(function(el) {\n            for (var n = el; n && n !== document.body; n = n.parentElement) {\n              if (isBar(n)) {\n                var r = n.getBoundingClientRect();\n                if (r.top <= y + 1 && r.bottom > found) found = r.bottom;\n                break;\n              }\n            }\n          });\n        });\n        if (found <= bottom) break;\n        bottom = found;\n      }\n      app.style.setProperty('--mv-header', Math.round(bottom) + 'px');\n      return bottom;\n    }\n\n    var searchTimer = null;\n    document.getElementById('mv-search').addEventListener('input', function(e) {\n      clearTimeout(searchTimer);\n      searchTimer = setTimeout(function() {\n        state.q = e.target.value;\n        state.limit = STEP;\n      state.page = 1;\n        renderList();\n      }, 150);\n    });\n\n    var dist = document.getElementById('mv-distance');\n    if (dist) {\n      dist.querySelectorAll('button').forEach(function(b) {\n        b.addEventListener('click', function() {\n          state.km = parseInt(b.getAttribute('data-km'), 10) || 0;\n          state.limit = STEP;\n      state.page = 1;\n          dist.querySelectorAll('button').forEach(function(x) {\n            x.classList.toggle('is-active', x === b);\n          });\n          renderList();\n        });\n      });\n    }\n\n    var viewSeg = document.getElementById('mv-view');\n    var layoutEl = document.getElementById('mv-layout');\n\n    function setView(v) {\n      state.view = v;\n      layoutEl.classList.toggle('is-list', v === 'list');\n      viewSeg.querySelectorAll('button').forEach(function(x) {\n        x.classList.toggle('is-active', x.getAttribute('data-view') === v);\n      });\n      if (map) setTimeout(function() {\n        map.invalidateSize();\n      }, 60);\n    }\n    viewSeg.querySelectorAll('button').forEach(function(b) {\n      b.addEventListener('click', function() {\n        setView(b.getAttribute('data-view'));\n      });\n    });\n\n    \/\/ Pas de carte si aucune fiche n'est g\u00e9olocalis\u00e9e\n    if (!ITEMS.some(function(it) {\n        return it.lat !== null;\n      })) {\n      viewSeg.style.display = 'none';\n      state.view = 'list';\n    }\n\n    headerOffset();\n    window.addEventListener('resize', headerOffset);\n    \/\/ Les barres du site peuvent appara\u00eetre au d\u00e9filement (barre de r\u00e9servation\u2026)\n    var hoTicking = false;\n    window.addEventListener('scroll', function() {\n      if (hoTicking) return;\n      hoTicking = true;\n      requestAnimationFrame(function() {\n        headerOffset();\n        hoTicking = false;\n      });\n    }, { passive: true });\n    var lastCols = null,\n      resizeTimer = null;\n    window.addEventListener('resize', function() {\n      clearTimeout(resizeTimer);\n      resizeTimer = setTimeout(function() {\n        var c = gridColumns();\n        if (lastCols !== null && c !== lastCols) renderList();\n        lastCols = c;\n      }, 200);\n    });\n    renderCats();\n    renderIdeas();\n    setView(state.view);\n    renderList();\n    renderPreview();\n    initMap();\n  })();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-4709","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>Ontdek de omgeving - Camping Lestaubi\u00e8re<\/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:\/\/camping-lestaubiere.fr\/nl\/elaia-metadatas\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ontdek de omgeving - Camping Lestaubi\u00e8re\" \/>\n<meta property=\"og:url\" content=\"https:\/\/camping-lestaubiere.fr\/nl\/elaia-metadatas\/\" \/>\n<meta property=\"og:site_name\" content=\"Camping Lestaubi\u00e8re\" \/>\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:\\\/\\\/camping-lestaubiere.fr\\\/nl\\\/elaia-metadatas\\\/\",\"url\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/nl\\\/elaia-metadatas\\\/\",\"name\":\"Ontdek de omgeving - Camping Lestaubi\u00e8re\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/nl\\\/#website\"},\"datePublished\":\"2026-10-20T13:07:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/nl\\\/elaia-metadatas\\\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/camping-lestaubiere.fr\\\/nl\\\/elaia-metadatas\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/nl\\\/elaia-metadatas\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Kamperen Dordogne\",\"item\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/nl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ontdek de omgeving\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/nl\\\/#website\",\"url\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/nl\\\/\",\"name\":\"Camping Lestaubi\u00e8re\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/nl\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/nl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/nl\\\/#organization\",\"name\":\"Camping Lestaubiere\",\"url\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/nl\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/nl\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/wp-content\\\/uploads\\\/2021\\\/09\\\/logo-camping-lestaubiere.png\",\"contentUrl\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/wp-content\\\/uploads\\\/2021\\\/09\\\/logo-camping-lestaubiere.png\",\"width\":259,\"height\":89,\"caption\":\"Camping Lestaubiere\"},\"image\":{\"@id\":\"https:\\\/\\\/camping-lestaubiere.fr\\\/nl\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ontdek de omgeving - Camping Lestaubi\u00e8re","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:\/\/camping-lestaubiere.fr\/nl\/elaia-metadatas\/","og_locale":"nl_NL","og_type":"article","og_title":"Ontdek de omgeving - Camping Lestaubi\u00e8re","og_url":"https:\/\/camping-lestaubiere.fr\/nl\/elaia-metadatas\/","og_site_name":"Camping Lestaubi\u00e8re","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/camping-lestaubiere.fr\/nl\/elaia-metadatas\/","url":"https:\/\/camping-lestaubiere.fr\/nl\/elaia-metadatas\/","name":"Ontdek de omgeving - Camping Lestaubi\u00e8re","isPartOf":{"@id":"https:\/\/camping-lestaubiere.fr\/nl\/#website"},"datePublished":"2026-10-20T13:07:12+00:00","breadcrumb":{"@id":"https:\/\/camping-lestaubiere.fr\/nl\/elaia-metadatas\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/camping-lestaubiere.fr\/nl\/elaia-metadatas\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/camping-lestaubiere.fr\/nl\/elaia-metadatas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Kamperen Dordogne","item":"https:\/\/camping-lestaubiere.fr\/nl\/"},{"@type":"ListItem","position":2,"name":"Ontdek de omgeving"}]},{"@type":"WebSite","@id":"https:\/\/camping-lestaubiere.fr\/nl\/#website","url":"https:\/\/camping-lestaubiere.fr\/nl\/","name":"Camping Lestaubi\u00e8re","description":"","publisher":{"@id":"https:\/\/camping-lestaubiere.fr\/nl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/camping-lestaubiere.fr\/nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/camping-lestaubiere.fr\/nl\/#organization","name":"Camping Lestaubiere","url":"https:\/\/camping-lestaubiere.fr\/nl\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/camping-lestaubiere.fr\/nl\/#\/schema\/logo\/image\/","url":"https:\/\/camping-lestaubiere.fr\/wp-content\/uploads\/2021\/09\/logo-camping-lestaubiere.png","contentUrl":"https:\/\/camping-lestaubiere.fr\/wp-content\/uploads\/2021\/09\/logo-camping-lestaubiere.png","width":259,"height":89,"caption":"Camping Lestaubiere"},"image":{"@id":"https:\/\/camping-lestaubiere.fr\/nl\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/camping-lestaubiere.fr\/nl\/wp-json\/wp\/v2\/pages\/4709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/camping-lestaubiere.fr\/nl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/camping-lestaubiere.fr\/nl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/camping-lestaubiere.fr\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/camping-lestaubiere.fr\/nl\/wp-json\/wp\/v2\/comments?post=4709"}],"version-history":[{"count":1,"href":"https:\/\/camping-lestaubiere.fr\/nl\/wp-json\/wp\/v2\/pages\/4709\/revisions"}],"predecessor-version":[{"id":4710,"href":"https:\/\/camping-lestaubiere.fr\/nl\/wp-json\/wp\/v2\/pages\/4709\/revisions\/4710"}],"wp:attachment":[{"href":"https:\/\/camping-lestaubiere.fr\/nl\/wp-json\/wp\/v2\/media?parent=4709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}