{"id":13517,"date":"2026-11-12T13:31:19","date_gmt":"2026-11-12T12:31:19","guid":{"rendered":"https:\/\/www.campingbonport.com\/elaia-metadatas-2\/"},"modified":"2026-11-12T13:31:19","modified_gmt":"2026-11-12T12:31:19","slug":"elaia-metadatas","status":"publish","type":"page","link":"https:\/\/www.campingbonport.com\/en\/elaia-metadatas\/","title":{"rendered":"Discover around you"},"content":{"rendered":"\n\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"ItemList\",\"name\":\"Activities\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Canoe kayak in Saint-S\u00e9ri\u00e8s\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a95799f5bb75.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.7315691,\"longitude\":4.1059685},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Sport\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Saint-S\u00e9ri\u00e8s, H\u00e9rault\"},{\"@type\":\"PropertyValue\",\"name\":\"Description\",\"value\":\"Full nature activity on the Vidourle, mentioned as a possible outing around the camping. Suitable for lovers of gentle sensations and sporty walks.\"},{\"@type\":\"PropertyValue\",\"name\":\"Price range\",\"value\":\"Paid\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening dates \/ season\",\"value\":\"According to weather conditions and season\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance from the campsite (km)\",\"value\":\"11\"},{\"@type\":\"PropertyValue\",\"name\":\"Time from the campsite (min)\",\"value\":\"25\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"Oui\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"Horse riding in Grau-du-Roi\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a957a16eaac1.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.513019,\"longitude\":4.129031},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Nature\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Le Grau-du-Roi, H\u00e9rault\"},{\"@type\":\"PropertyValue\",\"name\":\"Description\",\"value\":\"Horse riding outing in Camarguan environment, ideal for discovering the region's landscapes differently. This activity is among the leisure options around Camping Bon Port.\"},{\"@type\":\"PropertyValue\",\"name\":\"Price range\",\"value\":\"Paid\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening dates \/ season\",\"value\":\"According to season and horse riding center availability\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance from the campsite (km)\",\"value\":\"15\"},{\"@type\":\"PropertyValue\",\"name\":\"Time from the campsite (min)\",\"value\":\"20\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"Oui\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Tree climbing at Roc de Massereau\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a9579ff02144.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.761503,\"longitude\":4.094258},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Adventure\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Sommi\u00e8res, Gard\"},{\"@type\":\"PropertyValue\",\"name\":\"Description\",\"value\":\"Tree climbing course for an active outdoor outing, listed among leisure activities near the camping. The activity appeals to both families and groups of friends.\"},{\"@type\":\"PropertyValue\",\"name\":\"Price range\",\"value\":\"Paid\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening dates \/ season\",\"value\":\"Open seasonally\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance from the campsite (km)\",\"value\":\"27\"},{\"@type\":\"PropertyValue\",\"name\":\"Time from the campsite (min)\",\"value\":\"35\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"Recommended\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Visit of Aigues-Mortes\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a95795ae6ccd.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.5675,\"longitude\":4.1933333},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Culture\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Aigues-Mortes, Gard\"},{\"@type\":\"PropertyValue\",\"name\":\"Description\",\"value\":\"Visit of the fortified town and its ramparts, very suitable for a half-day of discovery. The site allows combining heritage, strolling, and medieval atmosphere.\"},{\"@type\":\"PropertyValue\",\"name\":\"Price range\",\"value\":\"Paid depending on visits and access to ramparts\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening dates \/ season\",\"value\":\"All year round\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance from the campsite (km)\",\"value\":\"15\"},{\"@type\":\"PropertyValue\",\"name\":\"Time from the campsite (min)\",\"value\":\"20\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"Non\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"Seaquarium of Grau-du-Roi\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a9579712628d.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.527028,\"longitude\":4.140885},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Family\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Le Grau-du-Roi, H\u00e9rault\"},{\"@type\":\"PropertyValue\",\"name\":\"Description\",\"value\":\"Ideal aquarium for a family outing, with Mediterranean marine species and areas suitable for children. It is one of the activities mentioned around Camping Bon Port.\"},{\"@type\":\"PropertyValue\",\"name\":\"Price range\",\"value\":\"Paid\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening dates \/ season\",\"value\":\"Open according to the site's annual schedule\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance from the campsite (km)\",\"value\":\"12\"},{\"@type\":\"PropertyValue\",\"name\":\"Time from the campsite (min)\",\"value\":\"20\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"Advised during peak periods\"}]}},{\"@type\":\"ListItem\",\"position\":6,\"item\":{\"@type\":\"Thing\",\"name\":\"Lunel\",\"url\":\"https:\/\/www.ot-paysdelunel.fr\/12089-lunel.htm\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/app-builder\/38513c76-3023-4573-a9a9-f08fe2d27768.jpeg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.674949,\"longitude\":4.1352367},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Cultural\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Lunel (H\u00e9rault)\"},{\"@type\":\"PropertyValue\",\"name\":\"Description\",\"value\":\"City with a history between the Mediterranean and the garrigue, known for its medieval heritage, Camargue traditions, muscats, and sites like the Prison Tower Museum. ([herault-tourisme.com](https:\/\/www.herault-tourisme.com\/fr\/decouvrir\/villes-et-villages-dans-lherault\/lunel\/))\"},{\"@type\":\"PropertyValue\",\"name\":\"Price range\",\"value\":\"Free to paid depending on visits and museums\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening dates \/ season\",\"value\":\"All year round\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"Non\"}]}},{\"@type\":\"ListItem\",\"position\":7,\"item\":{\"@type\":\"Thing\",\"name\":\"Marsillargues\",\"url\":\"https:\/\/www.ot-paysdelunel.fr\/12091-marsillargues.htm\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Cultural\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Marsillargues (H\u00e9rault)\"},{\"@type\":\"PropertyValue\",\"name\":\"Description\",\"value\":\"Typical Mediterranean village with rich heritage, castle, Paul Pastre Museum, church, temple, Boulet bridge, and listed arenas. ([ot-paysdelunel.fr](https:\/\/www.ot-paysdelunel.fr\/12091-marsillargues.htm?utm_source=openai))\"},{\"@type\":\"PropertyValue\",\"name\":\"Price range\",\"value\":\"Free to paid depending on sites\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening dates \/ season\",\"value\":\"All year round\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"Non\"}]}},{\"@type\":\"ListItem\",\"position\":8,\"item\":{\"@type\":\"Thing\",\"name\":\"Lunel-Viel\",\"url\":\"https:\/\/www.ot-paysdelunel.fr\/12090-lunel-viel.htm\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Cultural\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Lunel-Viel (H\u00e9rault)\"},{\"@type\":\"PropertyValue\",\"name\":\"Description\",\"value\":\"Wineries village with a historic circuit, Gallo-Roman remains, town hall castle, and a superb orangery in a listed park. ([ot-paysdelunel.fr](https:\/\/www.ot-paysdelunel.fr\/12090-lunel-viel.htm?utm_source=openai))\"},{\"@type\":\"PropertyValue\",\"name\":\"Price range\",\"value\":\"Free to paid depending on visits\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening dates \/ season\",\"value\":\"All year round\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"Non\"}]}},{\"@type\":\"ListItem\",\"position\":9,\"item\":{\"@type\":\"Thing\",\"name\":\"Villetelle\",\"url\":\"https:\/\/www.ot-paysdelunel.fr\/12099-villetelle.htm\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Cultural\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Villetelle (H\u00e9rault)\"},{\"@type\":\"PropertyValue\",\"name\":\"Description\",\"value\":\"Village marked by the archaeological site of Ambrussum, with the Ambroix bridge, a museum, the oppidum, and discovery trails in garrigue. ([ot-paysdelunel.fr](https:\/\/www.ot-paysdelunel.fr\/12099-villetelle.htm?utm_source=openai))\"},{\"@type\":\"PropertyValue\",\"name\":\"Price range\",\"value\":\"Free to paid depending on the site\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening dates \/ season\",\"value\":\"All year round\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"Non\"}]}},{\"@type\":\"ListItem\",\"position\":10,\"item\":{\"@type\":\"Thing\",\"name\":\"Saint-S\u00e9ri\u00e8s\",\"url\":\"https:\/\/www.ot-paysdelunel.fr\/12095-saint-series.htm\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Sport\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Saint-S\u00e9ri\u00e8s (H\u00e9rault)\"},{\"@type\":\"PropertyValue\",\"name\":\"Description\",\"value\":\"Vibrant village for outdoor activities, including canoeing, via ferrata, fishing, and hiking along the Vidourle river, with a view of La Roque. ([ot-paysdelunel.fr](https:\/\/www.ot-paysdelunel.fr\/12095-saint-series.htm?utm_source=openai))\"},{\"@type\":\"PropertyValue\",\"name\":\"Price range\",\"value\":\"Free to paid depending on activity\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening dates \/ season\",\"value\":\"Throughout the year, weather permitting\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"Oui\"}]}},{\"@type\":\"ListItem\",\"position\":11,\"item\":{\"@type\":\"Thing\",\"name\":\"Saturargues\",\"url\":\"https:\/\/www.ot-paysdelunel.fr\/12096-saturargues.htm\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Nature\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Saturargues (H\u00e9rault)\"},{\"@type\":\"PropertyValue\",\"name\":\"Description\",\"value\":\"Ancient village surrounded by garrigue and woods, with walking trails and beautiful viewpoints of Pic Saint-Loup and the C\u00e9vennes. ([ot-paysdelunel.fr](https:\/\/www.ot-paysdelunel.fr\/12096-saturargues.htm?utm_source=openai))\"},{\"@type\":\"PropertyValue\",\"name\":\"Price range\",\"value\":\"Free\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening dates \/ season\",\"value\":\"All year round\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"Non\"}]}},{\"@type\":\"ListItem\",\"position\":12,\"item\":{\"@type\":\"Thing\",\"name\":\"V\u00e9rargues\",\"url\":\"https:\/\/www.ot-paysdelunel.fr\/12098-verargues-entre-vignes.htm\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Gastronomy\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"V\u00e9rargues (Entre-Vignes, H\u00e9rault)\"},{\"@type\":\"PropertyValue\",\"name\":\"Description\",\"value\":\"Village at the heart of Muscat de Lunel production, with wineries and typical wine estates. ([ot-paysdelunel.fr](https:\/\/www.ot-paysdelunel.fr\/12098-verargues-entre-vignes.htm?utm_source=openai))\"},{\"@type\":\"PropertyValue\",\"name\":\"Price range\",\"value\":\"Free to paid depending on tastings and visits\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening dates \/ season\",\"value\":\"All year round, with seasonal viticulture activity\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"Oui\"}]}},{\"@type\":\"ListItem\",\"position\":13,\"item\":{\"@type\":\"Thing\",\"name\":\"Saussines\",\"url\":\"https:\/\/www.ot-paysdelunel.fr\/12097-saussines.htm\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Cultural\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Saussines (H\u00e9rault)\"},{\"@type\":\"PropertyValue\",\"name\":\"Description\",\"value\":\"Village built on an old priory, notable for its vintner houses, Saint-\u00c9tienne church, and Gallo-Roman remains. ([ot-paysdelunel.fr](https:\/\/www.ot-paysdelunel.fr\/12097-saussines.htm?utm_source=openai))\"},{\"@type\":\"PropertyValue\",\"name\":\"Price range\",\"value\":\"Free\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening dates \/ season\",\"value\":\"All year round\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"Non\"}]}},{\"@type\":\"ListItem\",\"position\":14,\"item\":{\"@type\":\"Thing\",\"name\":\"Saint-Christol\",\"url\":\"https:\/\/www.ot-paysdelunel.fr\/12092-saint-christol-entre-vignes.htm\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Gastronomy\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Saint-Christol, Entre-Vignes (H\u00e9rault)\"},{\"@type\":\"PropertyValue\",\"name\":\"Description\",\"value\":\"Historic wine village, known for its A.O.P. and IGP, its past as a relay on pilgrims' routes, and its wine tourism offer ViaVino. ([ot-paysdelunel.fr](https:\/\/www.ot-paysdelunel.fr\/12092-saint-christol-entre-vignes.htm?utm_source=openai))\"},{\"@type\":\"PropertyValue\",\"name\":\"Price range\",\"value\":\"Free to paid depending on activities\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening dates \/ season\",\"value\":\"All year round\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"Oui\"}]}},{\"@type\":\"ListItem\",\"position\":15,\"item\":{\"@type\":\"Thing\",\"name\":\"Aigues-Mortes\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Cultural\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Aigues-Mortes (Gard)\"},{\"@type\":\"PropertyValue\",\"name\":\"Description\",\"value\":\"Destination near the Camargue, listed among the tourist attractions of the area around the Pays de Lunel, particularly for escapes between sea and nature. ([ot-paysdelunel.fr](https:\/\/www.ot-paysdelunel.fr\/tourinsoft\/ASCLAR034V52AROX\/12045-mas-de-la-comtesse.htm?utm_source=openai))\"},{\"@type\":\"PropertyValue\",\"name\":\"Price range\",\"value\":\"Free to paid depending on visits\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening dates \/ season\",\"value\":\"All year round\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"Non\"}]}}]},{\"@type\":\"ItemList\",\"name\":\"Local events\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"BLMA VS CHARNAY\",\"description\":\"Women's basketball league\\nBLMA from LATTES will face Charnay on 09 December 2026 at 8:00 p.m. at the Palais des Rencontres in Lattes.\\n\\nCome support your favorite team!\",\"url\":\"https:\/\/www.blma.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.5697073,\"longitude\":3.9000634},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"BLMA VS CHARNAY\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Sport \\u0026 hiking\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Lattes\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34970\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"EOLIENNE RACE 2026\",\"description\":\"Organized by the Coureurs de l\u2019Eolienne, with the support of the City of Clapiers, the H\u00e9rault Department and logistical assistance from H\u00e9rault Sport, the 24th edition of the Foul\u00e9es de l\u2019Eolienne offers two races of 8 km and 14 km as well as a timed 7 km walk and a race for younger runners starting from Avenue Charles de Gaulle.\\n\\nRegistration fees, online until Friday 20 November, are 10 euros for the 8 km and the walk and 15 euros for the 14 km. An additional 2 euros on site.\\n\\nSchedule:\\n11:00 a.m. \u2013 welcome \u2013 bib collection - registration\\n1:30 p.m. \u2013 Youth races\\n2:30 p.m. \u2013 Timed walk\\n3:00 p.m. \u2013 8 km and 14 km races\\n5:00 p.m. \u2013 Prize ceremony at the H\u00e9rault Sport podium vehicle\",\"url\":\"https:\/\/www.3wsport.com\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.6564547,\"longitude\":3.8838003},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"EOLIENNE RACE 2026\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Sport \\u0026 randonn\u00e9e\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Clapiers\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34830\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"P\u00c9TROLE\",\"description\":\"Sylvain Creuzevault takes on Pasolini\u2019s explosive, unfinished and fragmented final novel, written shortly before his death and published long after. Catch it on December 10 and 11, duration 3h30 with a 20-minute intermission.\\n\\nIn a magma of information and virulent notes, we follow the misadventures of a man torn between his high public office in an hydrocarbons company, once fascist, and his private aspirations to a sexuality outside the norm. All of this unfolds amid the immense political, social and artistic tension of a world then tipping headlong into disgusting neo-liberalism, which in many respects resembles our own, the leaden years between 1970 and 1980, in Italy as elsewhere. The expression \u201cto take it head-on\u201d seems apt, so intensely do the actors bring Pasolini\u2019s furious language to life and struggle with it...\\n\\nA whole novel pushed to its limits, in a prophetic and polemical visual poem that shakes up theatre and our perceptions.\\n\\nDuration 3h30 with 20min intermission\\n\\nThu Dec 10, 7:00 pm\\nFri Dec 11, 7:00 pm\",\"url\":\"https:\/\/book.montpellier-tourisme.fr\/fr\/voir-faire\/2888999\/th%C3%A9%C3%A2tre-des-13-vents-centre-dramatique-national-montpellie\/afficher-les-details\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.6168088,\"longitude\":3.9308567},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"P\u00c9TROLE\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Shows \\u0026 cinema\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Montpellier\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34000\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"MONTPELLIER BASKET VS SAINT-VALLIER (NM2)\",\"description\":\"USA NIGHT\\nMeet us on Saturday, November 14 at 8:30 pm at the Palais des Sports Pierre de Coubertin in Montpellier for an evening with a U.S. vibe!\\n\\nOn the agenda: basketball, entertainment and plenty to enjoy!\\n\\nThe Pompoms of ENSCM, our cheerleaders for the evening, will be there to keep the atmosphere going with several shows throughout the game.\\nBurgers and hot dogs will also be on sale.\\n\\nFor the occasion, wear your finest basketball jersey and dive into the atmosphere of this USA night!\\nWe are looking forward to welcoming lots of you to support Montpellier and share this evening with us!\\n\\nBy reservation\",\"url\":\"https:\/\/www.helloasso.com\/associations\/montpellier-basket-mosson\/evenements\/montpellier-basket-mosson-saint-vallier?utm_source=app_ha\\u0026utm_campaign=share_campaign_button\\u0026utm_medium=ios\\u0026utm_\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.6381909,\"longitude\":3.8140749},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"MONTPELLIER BASKET VS SAINT-VALLIER (NM2)\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Sports \\u0026 hiking\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Montpellier\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34080\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"Aimargues weekly market\",\"description\":\"Local produce market and flea market\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.686619,\"longitude\":4.208336},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Aimargues weekly market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Aimargues\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"30470\"}]}},{\"@type\":\"ListItem\",\"position\":6,\"item\":{\"@type\":\"Thing\",\"name\":\"HANDBALL: MHB VS DUNKERQUE\",\"description\":\"The FDI Stadium in Montpellier hosts the MHB \/ Dunkerque match on 13 November at 8:00 p.m. in the Daikin StarLigue!\\n\\nCome and support your favorite team!\",\"url\":\"https:\/\/www.montpellierhandball.com\/fr\/venir-au-match\/les-matchs-venir\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.6382899,\"longitude\":3.8744048},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"HANDBALL: MHB VS DUNKERQUE\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Sport \\u0026 hiking\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Montpellier\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34090\"}]}},{\"@type\":\"ListItem\",\"position\":7,\"item\":{\"@type\":\"Thing\",\"name\":\"Lou Casa, Barbara et Brel\",\"description\":\"Brel\u2019s and Barbara\u2019s songs respond to one another, revealing an unexpected unity and sensitivity, as well as the artistic and friendship ties that connected them. Lou Casa adds its own rapport with the audience, in a sensitive and warm performance.\",\"url\":\"https:\/\/www.helloasso.com\/associations\/j-ai-rendez-vous-avec-vous\/evenements\/festival12nov26\",\"image\":\"https:\/\/www.grandpicsaintloup-tourisme.fr\/_objects\/tao_suite_agenda\/fma\/photos\/75027757-1322514097908288-5103157588510375936-n-54384.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.693517,\"longitude\":3.8073787},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Lou Casa, Barbara et Brel\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Concerts, music \\u0026 festivals\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Saint-G\u00e9ly-du-Fesc\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34980\"}]}},{\"@type\":\"ListItem\",\"position\":8,\"item\":{\"@type\":\"Thing\",\"name\":\"MICHELE LAROQUE \\u0026 KAD MERAD \\\"L'\u00c2GE B\u00caTE\\\"\",\"description\":\"Benoit and Claire have just met, and they want to live their new love story to the fullest, without limits. Rebellious and free, they proudly embrace their love of sex, alcohol and football: they are the new sixty-somethings. They refuse to be boxed in by age. Despite their deeply rooted habits, they want to keep living like young people and have a blast. Welcome to their \u201c\u00e2ge b\u00eate\u201d.\\n\\nAccessible seating reservation\\njulie@adamconcerts.com\",\"url\":\"https:\/\/www.zenithsud-montpellier.com\/fr\/agenda\/theatre-humour\/michele-laroque-kad-merad\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.61216,\"longitude\":3.93028},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"MICHELE LAROQUE \\u0026 KAD MERAD \\\"L'\u00c2GE B\u00caTE\\\"\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Shows \\u0026 cinema\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Montpellier\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34000\"}]}},{\"@type\":\"ListItem\",\"position\":9,\"item\":{\"@type\":\"Thing\",\"name\":\"VERY IMPRO PEOPLE - GAZETTE CAF\u00c9\",\"description\":\"Three evenings of improvisation at Gazette Caf\u00e9\\nIn November, Very Impro People take over Gazette Caf\u00e9 for three dates dedicated to theatrical improvisation.\\n\\nCabaret, an original concept, or an improvised long-form story: each evening offers a different way to discover the troupe and share the unexpected with the artists.\\nOn the program\\n\\nFriday, November 13, 2026: Le Cabaret \u2014 short, spontaneous scenes inspired by audience suggestions.\\nFriday, November 20, 2026: Carte Blanche \u2014 the VIPs explore an original concept and a different way of improvising.\\nFriday, November 27, 2026: STORIES \u2014 an improvised story, with a universe and characters created before the audience\u2019s eyes.\\n\\nat 8:00 pm\\n\\nPrice: free admission, pay-what-you-want exit\\nBooking: strongly recommended, by email at vip.impro@gmail.com\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.6046079,\"longitude\":3.8783711},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"VERY IMPRO PEOPLE - GAZETTE CAF\u00c9\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Shows \\u0026 cinema\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Montpellier\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34000\"}]}},{\"@type\":\"ListItem\",\"position\":10,\"item\":{\"@type\":\"Thing\",\"name\":\"Calvisson weekly market\",\"description\":\"Every Sunday, the large square in Calvisson hosts a colorful market with many vendors, all year round.\",\"url\":\"http:\/\/www.calvisson.com\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.786023,\"longitude\":4.193234},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Calvisson weekly market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Calvisson\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"30420\"}]}},{\"@type\":\"ListItem\",\"position\":11,\"item\":{\"@type\":\"Thing\",\"name\":\"ICE HOCKEY: VIPERS VS HCMP\",\"description\":\"The Vipers host HCMP on November 14, 2026 at the V\u00e9gapolis ice rink.\\nCome support your favorite team!\",\"url\":\"https:\/\/www.montpellier-vipers.com\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.6030338,\"longitude\":3.9152617},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"ICE HOCKEY: VIPERS VS HCMP\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Sport \\u0026 hiking\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Montpellier\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34000\"}]}},{\"@type\":\"ListItem\",\"position\":12,\"item\":{\"@type\":\"Thing\",\"name\":\"Christmas Market\",\"description\":\"On November 22, Sainte-Croix-de-Quintillargues invites you to its Christmas Market at Espace Claude Saumade.\\n\\nDiscover many exhibitors in a festive atmosphere: gift ideas, treats, food and entertainment will set the pace for the day, including Christmas songs by the Magic Christmas Band.\\n\\nA friendly event for young and old in the heart of the village!\",\"url\":\"https:\/\/mairie-saintecroixdequintillargues.fr\/\",\"image\":\"https:\/\/www.grandpicsaintloup-tourisme.fr\/_objects\/tao_suite_agenda\/fma\/photos\/flyer-marche-de-noel-2026-54389-54407.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.7738828,\"longitude\":3.9105105},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Christmas Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Sainte-Croix-de-Quintillargues\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34270\"}]}},{\"@type\":\"ListItem\",\"position\":13,\"item\":{\"@type\":\"Thing\",\"name\":\"Junas weekly market\",\"description\":\"Every Tuesday. The small market welcomes two local producers in the village center.\",\"url\":\"https:\/\/www.junas.fr\/notre-village\/junas-pratique\/commerces\/joomlannuaire\/fiche\/14-le-petit-marche-du-mardi\/5-commerces.html\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.770828,\"longitude\":4.120622},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Junas weekly market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Junas\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"30250\"}]}},{\"@type\":\"ListItem\",\"position\":14,\"item\":{\"@type\":\"Thing\",\"name\":\"Julia Kaulbach Exhibition\",\"description\":\"Julia Kaulbach, a German artist who lives and works in Sauve, presents a selection of her recent works at the Auberge du C\u00e8dre in Lauret, from August 23 to November 14, 2026. Come meet her during the vernissage on Sunday, August 23 at 5 p.m. for a friendly moment and discover her oil paintings, watercolors, engravings, linocuts and works from her new acrylic series entitled \u00ab Multiverses \u00bb. In her work, traditional techniques meet a contemporary pictorial language. Many of her watercolors are created directly in the landscapes of the C\u00e9vennes and even at the Auberge, while her large-format paintings explore themes such as perception, transformation and the invisible links between things. See you very soon for this beautiful encounter.\",\"url\":\"http:\/\/auberge-du-cedre.com\/\",\"image\":\"https:\/\/www.grandpicsaintloup-tourisme.fr\/_objects\/tao_suite_agenda\/fma\/photos\/affiche-projet-1-52111-52436.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.8317394,\"longitude\":3.8733294},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Julia Kaulbach Exhibition\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Exhibitions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Lauret\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34270\"}]}},{\"@type\":\"ListItem\",\"position\":15,\"item\":{\"@type\":\"Thing\",\"name\":\"BLACK, JEWISH AND ONE-EYED, THE STORY OF SAMMY DAVIS\",\"description\":\"Sammy Davis Jr. is extraordinary and constantly raises questions about identity. In a time when people are made to believe that they can only define themselves by a single criterion, this attitude is truly radical.\\n\\nTelling Sammy Davis Jr.'s story today is a necessity.\\n\\nIn a world where nuance has been forgotten, he turns it into a lesson for life.\\n\\nBlack, Jewish and One-Eyed \u201cThe Story of Sammy Davis Jr.\u201d\\n\\nHe is that child from Harlem\\n\\nHe is the one who was on stage from the age of 3\\n\\nHe is the one who knew war\\n\\nHe is the one who brought JFK to power\\n\\nHe is a friend of Frank Sinatra and Elvis Presley\\n\\nHe is an actor\\n\\nHe is a dancer\\n\\nHe is Hollywood\\n\\nHe is black, Jewish and one-eyed\\n\\nHe is Sammy Davis Jr.\\n\\nFriday 11 December 2026 at 8:00 p.m.\\n\\nMusical show\\nDuration: 1h10\\nAll audiences\",\"url\":\"https:\/\/lekiasma.vostickets.fr\/Billet\/FR\/representation-LE_KIASMA-35426-0.wb?REFID=DzUcAAAAAAAAAAAAFAA\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.6325874,\"longitude\":3.8990258},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"BLACK, JEWISH AND ONE-EYED, THE STORY OF SAMMY DAVIS\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Spectacles \\u0026 cin\u00e9ma\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Castelnau-le-Lez\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34170\"}]}},{\"@type\":\"ListItem\",\"position\":16,\"item\":{\"@type\":\"Thing\",\"name\":\"THEATRE \u201cMIRABEAU THE BOLD\u201d\",\"description\":\"by Les Rid O\u2019Philes\\n\\nPrice: \u20ac8, free for under 14s and subscription available\\n\\nChapelle Notre-Dame-de-la-Route\\n\\nInfo and bookings: www.billetweb.fr\/ridophiles-palavas-les-flots\",\"url\":\"https:\/\/www.billetweb.fr\/ridophiles-palavas-les-flots\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.53454,\"longitude\":3.951016},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"THEATRE \u201cMIRABEAU THE BOLD\u201d\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Spectacles \\u0026 cin\u00e9ma\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Palavas-les-Flots\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34250\"}]}},{\"@type\":\"ListItem\",\"position\":17,\"item\":{\"@type\":\"Thing\",\"name\":\"WITH LITTLE LUGGAGE\",\"description\":\"A chronicle of the events of the Spanish Civil War.\\n\\nThis show portrays the end of the Spanish Civil War, the exile and then the \\\"welcome\\\" and detention of these almost 500,000 refugees who were imprisoned in different camps in the south of France, just before the Second World War.\\n\\nIt follows a grandson who seeks to understand and his grandfather who will recount, from painful memory, his retirada and his life afterward.\\n\\nMore than a story about the retirada inspired by testimonies, it raises the question of heritage, from a humanist, political and historical perspective.\\n\\nDuration: 1h+30min discussion - From 12 years old\\nHistorical\",\"url\":\"https:\/\/beauxartstabard.fr\/spectacles-adultes\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.6169362,\"longitude\":3.8782244},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"WITH LITTLE LUGGAGE\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Shows \\u0026 cinema\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Montpellier\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34090\"}]}},{\"@type\":\"ListItem\",\"position\":18,\"item\":{\"@type\":\"Thing\",\"name\":\"BLMA VS LANDERNEAU\",\"description\":\"Women's basketball league\\nThe BLMA of LATTES will face Landerneau on 22 November 2026 at 3:30 p.m. at the Palais des Rencontres in Lattes.\\n\\nCome support your favorite team!\",\"url\":\"https:\/\/www.blma.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.5697073,\"longitude\":3.9000634},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"BLMA VS LANDERNEAU\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Sport \\u0026 randonn\u00e9e\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Lattes\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34970\"}]}},{\"@type\":\"ListItem\",\"position\":19,\"item\":{\"@type\":\"Thing\",\"name\":\"THE QUEENS OF BURLESQUE\",\"description\":\"Humor and glamour in the purest tradition of American-style shows!\\n\\nA sparkling cabaret from which you\u2019ll leave with stars in your eyes! Under the guidance of LILI CHANTILLY, famous burlesque striptease artist, accompanied by her cheerful troupe of dancers! For LILI CHANTILLY, passionate about Hollywood charm and the sophisticated world of the 1930s, burlesque striptease is an art, an art of costume, dance, and comedy that she is eager to share with you!\\n\\nReservation required\",\"url\":\"https:\/\/book.montpellier-tourisme.fr\/fr\/voir-faire\/2868270\/th%C3%A9%C3%A2tre-le-point-com%C3%A9die-les-reines-du-burlesque\/afficher-les-details?page=2\\u0026filter=c%3D58791%2C33858%2C32320%3Bd%3D20220408%7C99991231\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.6137079,\"longitude\":3.8787137},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"THE QUEENS OF BURLESQUE\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Shows \\u0026 cinema\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Montpellier\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34000\"}]}},{\"@type\":\"ListItem\",\"position\":20,\"item\":{\"@type\":\"Thing\",\"name\":\"THE ROOF OF THE WORLD\",\"description\":\"Paris, 1945. Henry Vernot is looking for his brother, Antoine, who has vanished without a trace.\\n\\nThe only way to find Antoine is to get hold of a painting, or rather what is inside it... A victim of a past he would like to forget, the search for his brother will unearth a shameful truth that he would have liked to keep secret. Paris, 1945. It is the story of Antoine and Henry Vernot.\\n\\nDuration: 1h10 - From 12 years old\\nTheatre Thriller\",\"url\":\"https:\/\/book.montpellier-tourisme.fr\/fr\/voir-faire\/2881196\/th%C3%A9%C3%A2tre-beaux-arts-tabard\/afficher-les-details?filter=c%3D58791%2C33858%2C32320%3Bd%3D20220408%7C99991231\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.6169362,\"longitude\":3.8782244},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"THE ROOF OF THE WORLD\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Shows \\u0026 cinema\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Montpellier\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"34090\"}]}}]},{\"@type\":\"ItemList\",\"name\":\"Record without template\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Aigues-Mortes\",\"description\":\"Aigues-Mortes is a medieval town located in the Camargue region, famous for its well-preserved ramparts and historic towers.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.5767,\"longitude\":4.2247},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Population\",\"value\":\"8,000\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance\",\"value\":\"15\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"N\u00eemes\",\"description\":\"N\u00eemes is a city in southern France, renowned for its exceptional Roman heritage, including the N\u00eemes arena and the Maison Carr\u00e9e.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.8367,\"longitude\":4.3601},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Population\",\"value\":\"150,000\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance\",\"value\":\"25\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"V\u00e9z\u00e9nobres\",\"description\":\"V\u00e9z\u00e9nobres is a charming medieval village perched on a hill, offering panoramic views and picturesque lanes.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.0425,\"longitude\":4.0861},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Population\",\"value\":\"2,000\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance\",\"value\":\"30\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Sommi\u00e8res\",\"description\":\"Sommi\u00e8res is a small picturesque town crossed by the Vidourle, offering a lively Proven\u00e7al market and medieval lanes.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.7267,\"longitude\":4.1056},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Population\",\"value\":\"3,000\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance\",\"value\":\"12\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"Montpellier\",\"description\":\"Montpellier is a dynamic city in Languedoc-Roussillon, known for its historic center, Place de la Com\u00e9die, and the Arc de Triomphe.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.6117,\"longitude\":3.8767},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Population\",\"value\":\"290,000\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance\",\"value\":\"20\"}]}},{\"@type\":\"ListItem\",\"position\":6,\"item\":{\"@type\":\"Thing\",\"name\":\"Theatre performance \\\"La Fleur au Fusil\\\"\",\"description\":\"Attend the performance of \\\"La Fleur au Fusil\\\" by the troupe of Amis du Th\u00e9\u00e2tre Populaire. A captivating tragicomedy.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.7075,\"longitude\":4.0869},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Date\",\"value\":\"2026-11-24\"},{\"@type\":\"PropertyValue\",\"name\":\"Schedule\",\"value\":\"20:00\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Th\u00e9\u00e2tre de Lunel\"},{\"@type\":\"PropertyValue\",\"name\":\"Rate\",\"value\":\"Tickets available on site\"}]}},{\"@type\":\"ListItem\",\"position\":7,\"item\":{\"@type\":\"Thing\",\"name\":\"15th Oenotrail of Lunellois\",\"description\":\"Take part in the 15th edition of the Oenotrail of Lunellois, a running event combining sport and tasting of local wines. A must-see event for wine and nature lovers.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.7075,\"longitude\":4.0869},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Date\",\"value\":\"2026-11-28\"},{\"@type\":\"PropertyValue\",\"name\":\"Schedule\",\"value\":\"08:00\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Sommi\u00e8res\"},{\"@type\":\"PropertyValue\",\"name\":\"Rate\",\"value\":\"Prior registration required\"}]}},{\"@type\":\"ListItem\",\"position\":8,\"item\":{\"@type\":\"Thing\",\"name\":\"Lunel Christmas Market\",\"description\":\"Come celebrate the holiday season at the Lunel Christmas Market. Enjoy local artisan stalls, children's activities, and gastronomic specialties.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.7075,\"longitude\":4.0869},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Date\",\"value\":\"2026-12-12\"},{\"@type\":\"PropertyValue\",\"name\":\"Schedule\",\"value\":\"10:00\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Place de la R\u00e9publique, Lunel\"},{\"@type\":\"PropertyValue\",\"name\":\"Rate\",\"value\":\"Free entry\"}]}},{\"@type\":\"ListItem\",\"position\":9,\"item\":{\"@type\":\"Thing\",\"name\":\"Theatre performance \\\"Les C\u0153urs Andalous\\\"\",\"description\":\"Come discover \\\"Les C\u0153urs Andalous\\\", an emotional play performed by the troupe of Amis du Th\u00e9\u00e2tre Populaire.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.7075,\"longitude\":4.0869},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Date\",\"value\":\"2026-12-15\"},{\"@type\":\"PropertyValue\",\"name\":\"Schedule\",\"value\":\"20:00\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Th\u00e9\u00e2tre de Lunel\"},{\"@type\":\"PropertyValue\",\"name\":\"Rate\",\"value\":\"Tickets available on site\"}]}},{\"@type\":\"ListItem\",\"position\":10,\"item\":{\"@type\":\"Thing\",\"name\":\"Open house at Domaine des Hospitaliers\",\"description\":\"Come and discover Domaine des Hospitaliers during this open house day. Enjoy a guided tour of the facilities and vineyards, with local wine tastings.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.7075,\"longitude\":4.0869},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Date\",\"value\":\"2026-11-14\"},{\"@type\":\"PropertyValue\",\"name\":\"Schedule\",\"value\":\"10:00\"},{\"@type\":\"PropertyValue\",\"name\":\"Location\",\"value\":\"Domaine des Hospitaliers, Sommi\u00e8res\"},{\"@type\":\"PropertyValue\",\"name\":\"Rate\",\"value\":\"Free entry\"}]}},{\"@type\":\"ListItem\",\"position\":11,\"item\":{\"@type\":\"Thing\",\"name\":\"Tree climbing at Roc de Massereau in Sommi\u00e8res\",\"description\":\"Enjoy a day of tree climbing at Roc de Massereau, a treetop course suitable for all ages, located about 40 minutes by car from Camping Bon Port.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.7917,\"longitude\":4.0514},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Address\",\"value\":\"D25, 30250 Sommi\u00e8res\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening hours\",\"value\":\"March to November, 10 a.m. to 6 p.m.\"},{\"@type\":\"PropertyValue\",\"name\":\"Rates\",\"value\":\"From \u20ac15 to \u20ac25 depending on the course\"},{\"@type\":\"PropertyValue\",\"name\":\"Contact\",\"value\":\"Roc de Massereau: +33 4 66 80 85 29\"}]}},{\"@type\":\"ListItem\",\"position\":12,\"item\":{\"@type\":\"Thing\",\"name\":\"Visit the fortified town of Aigues-Mortes\",\"description\":\"Explore the medieval town of Aigues-Mortes, famous for its impressive ramparts, towers and rich history, 30 minutes by car from Camping Bon Port.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.5616,\"longitude\":4.1937},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Address\",\"value\":\"Place Saint-Louis, 30220 Aigues-Mortes\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening hours\",\"value\":\"From 1 April to 30 September: 9 am-7 pm; From 1 October to 31 March: 10 am-5 pm\"},{\"@type\":\"PropertyValue\",\"name\":\"Rates\",\"value\":\"Ramparts entrance: \u20ac8 adult, free under 18\"},{\"@type\":\"PropertyValue\",\"name\":\"Contact\",\"value\":\"Aigues-Mortes Tourist Office: +33 4 66 73 44 24\"}]}},{\"@type\":\"ListItem\",\"position\":13,\"item\":{\"@type\":\"Thing\",\"name\":\"Water sports at the nautical base on Grand Travers beach\",\"description\":\"Enjoy canoeing, paddleboarding, diving, jet skiing or a boat trip from the nautical base near Camping Bon Port, located at Grand Travers beach between La Grande-Motte and Carnon.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.5912,\"longitude\":4.0443},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Address\",\"value\":\"Plage du Grand Travers, 34280 La Grande-Motte\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening hours\",\"value\":\"April to September, 9 a.m. to 7 p.m.\"},{\"@type\":\"PropertyValue\",\"name\":\"Rates\",\"value\":\"From \u20ac10 to \u20ac50 depending on the activity\"},{\"@type\":\"PropertyValue\",\"name\":\"Contact\",\"value\":\"La Grande-Motte nautical base: +33 4 67 56 34 26\"}]}},{\"@type\":\"ListItem\",\"position\":14,\"item\":{\"@type\":\"Thing\",\"name\":\"Pont de Gau Ornithological Park\",\"description\":\"Discover the local wildlife and migratory birds in this natural park located in Les Saintes-Maries-de-la-Mer, a privileged visit for nature and biodiversity lovers.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.5056,\"longitude\":4.4291},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Address\",\"value\":\"Route des Saintes Maries, 13460 Les Saintes-Maries-de-la-Mer\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening hours\",\"value\":\"Open every day from 9 am to 6 pm\"},{\"@type\":\"PropertyValue\",\"name\":\"Rates\",\"value\":\"\u20ac10 adult, \u20ac6 child\"},{\"@type\":\"PropertyValue\",\"name\":\"Contact\",\"value\":\"Pont de Gau Ornithological Park: +33 4 90 97 70 80\"}]}},{\"@type\":\"ListItem\",\"position\":15,\"item\":{\"@type\":\"Thing\",\"name\":\"Hiking and mountain biking in Petite Camargue\",\"description\":\"Discover the hiking and mountain biking trails around Camping Bon Port, including the coastal routes of Petite Camargue and itineraries to the C\u00e9vennes, suitable for all levels.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.629,\"longitude\":4.243},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Address\",\"value\":\"383 Chemin Du Mas De Saint-Ange, 34400 Lunel\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening hours\",\"value\":\"All year round, depending on weather conditions\"},{\"@type\":\"PropertyValue\",\"name\":\"Rates\",\"value\":\"Free\"},{\"@type\":\"PropertyValue\",\"name\":\"Contact\",\"value\":\"Lunel Tourist Office: +33 4 67 78 80 00\"}]}},{\"@type\":\"ListItem\",\"position\":16,\"item\":{\"@type\":\"Thing\",\"name\":\"Le Bistrot de Caro\",\"description\":\"Restaurant offering contemporary French cuisine in a modern setting.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.656118,\"longitude\":4.142084},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name of the establishment\",\"value\":\"Le Bistrot de Caro\"},{\"@type\":\"PropertyValue\",\"name\":\"Type of establishment\",\"value\":\"Restaurant\"},{\"@type\":\"PropertyValue\",\"name\":\"Address\",\"value\":\"4 Rue de la R\u00e9publique, 34400 Lunel\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening hours\",\"value\":\"From Tuesday to Saturday from 12:00 p.m. to 2:00 p.m. and from 7:00 p.m. to 10:00 p.m.\"},{\"@type\":\"PropertyValue\",\"name\":\"Website\",\"value\":\"https:\/\/www.facebook.com\/Le-Bistrot-de-Caro-345678901234567\/\"},{\"@type\":\"PropertyValue\",\"name\":\"Phone number\",\"value\":\"04 67 73 45 67\"}]}},{\"@type\":\"ListItem\",\"position\":17,\"item\":{\"@type\":\"Thing\",\"name\":\"Restaurant Bar Le National\",\"description\":\"Traditional French restaurant-bar offering cuisine and themed evenings.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.656118,\"longitude\":4.142084},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name of the establishment\",\"value\":\"Le National\"},{\"@type\":\"PropertyValue\",\"name\":\"Type of establishment\",\"value\":\"Restaurant\"},{\"@type\":\"PropertyValue\",\"name\":\"Address\",\"value\":\"6 Rue de la R\u00e9publique, 34400 Lunel\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening hours\",\"value\":\"From Tuesday to Saturday from 12:00 to 14:00 and from 19:00 to 22:00.\"},{\"@type\":\"PropertyValue\",\"name\":\"Website\",\"value\":\"https:\/\/www.facebook.com\/Restaurant-Bar-Le-National-567890123456789\/\"},{\"@type\":\"PropertyValue\",\"name\":\"Phone number\",\"value\":\"04 67 75 67 89\"}]}},{\"@type\":\"ListItem\",\"position\":18,\"item\":{\"@type\":\"Thing\",\"name\":\"La Soupe Os\u00e9e Restaurant\",\"description\":\"Restaurant offering traditional French cuisine in a warm atmosphere.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.656118,\"longitude\":4.142084},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name of the establishment\",\"value\":\"La Soupe Os\u00e9e\"},{\"@type\":\"PropertyValue\",\"name\":\"Type of establishment\",\"value\":\"Restaurant\"},{\"@type\":\"PropertyValue\",\"name\":\"Address\",\"value\":\"2 Rue de la R\u00e9publique, 34400 Lunel\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening hours\",\"value\":\"From Tuesday to Saturday from 12:00 to 2:00 pm and from 7:00 pm to 10:00 pm.\"},{\"@type\":\"PropertyValue\",\"name\":\"Website\",\"value\":\"https:\/\/www.facebook.com\/La-Soupe-Os\u00e9e-104567890123456\/\"},{\"@type\":\"PropertyValue\",\"name\":\"Phone number\",\"value\":\"04 67 71 23 45\"}]}},{\"@type\":\"ListItem\",\"position\":19,\"item\":{\"@type\":\"Thing\",\"name\":\"Restaurant L'Entracte\",\"description\":\"Restaurant offering Mediterranean cuisine with local products.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.656118,\"longitude\":4.142084},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name of the establishment\",\"value\":\"L'Entracte\"},{\"@type\":\"PropertyValue\",\"name\":\"Type of establishment\",\"value\":\"Restaurant\"},{\"@type\":\"PropertyValue\",\"name\":\"Address\",\"value\":\"3 Rue de la R\u00e9publique, 34400 Lunel\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening hours\",\"value\":\"From Tuesday to Saturday from 12:00 to 14:00 and from 19:00 to 22:00.\"},{\"@type\":\"PropertyValue\",\"name\":\"Website\",\"value\":\"https:\/\/www.facebook.com\/Restaurant-LEntracte-234567890123456\/\"},{\"@type\":\"PropertyValue\",\"name\":\"Phone number\",\"value\":\"04 67 72 34 56\"}]}},{\"@type\":\"ListItem\",\"position\":20,\"item\":{\"@type\":\"Thing\",\"name\":\"Restaurant La Terrasse\",\"description\":\"Restaurant offering traditional French cuisine with a pleasant terrace.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.656118,\"longitude\":4.142084},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name of the establishment\",\"value\":\"La Terrasse\"},{\"@type\":\"PropertyValue\",\"name\":\"Type of establishment\",\"value\":\"Restaurant\"},{\"@type\":\"PropertyValue\",\"name\":\"Address\",\"value\":\"5 Rue de la R\u00e9publique, 34400 Lunel\"},{\"@type\":\"PropertyValue\",\"name\":\"Opening hours\",\"value\":\"Tuesday to Saturday from 12:00 to 14:00 and from 19:00 to 22:00.\"},{\"@type\":\"PropertyValue\",\"name\":\"Website\",\"value\":\"https:\/\/www.facebook.com\/Restaurant-La-Terrasse-456789012345678\/\"},{\"@type\":\"PropertyValue\",\"name\":\"Phone number\",\"value\":\"04 67 74 56 78\"}]}}]}]}<\/script>\n<style>\n  .mv-wrap {\n    --mv-accent: #2e5e45;\n    --mv-accent-soft: #2e5e451a;\n    --mv-cream: #faf7f2;\n    --mv-line: #ebe5da;\n    --mv-muted: #6b6559;\n    --mv-header: 0px;\n    font-family: 'Inter', -apple-system, sans-serif;\n    color: #1f2a24;\n    max-width: 1440px;\n    margin: 0 auto;\n    padding: 0 24px 56px;\n    box-sizing: border-box;\n  }\n\n  .mv-wrap *,\n  .mv-wrap *::before,\n  .mv-wrap *::after,\n  .mv-modal-overlay *,\n  .mv-modal-overlay *::before,\n  .mv-modal-overlay *::after {\n    box-sizing: border-box;\n  }\n\n  .mv-wrap button,\n  .mv-wrap input,\n  .mv-modal-overlay button {\n    font-family: 'Inter', -apple-system, sans-serif;\n  }\n\n  .mv-icon {\n    display: inline-flex;\n    width: 1em;\n    height: 1em;\n    flex-shrink: 0;\n  }\n\n  .mv-icon svg {\n    width: 100%;\n    height: 100%;\n  }\n\n  \/* \u2500\u2500\u2500 Bandeau \u2500\u2500\u2500 *\/\n  .mv-hero {\n    position: relative;\n    overflow: hidden;\n    margin: 16px 0 24px;\n    padding: 56px 48px;\n    border-radius: 24px;\n    background: var(--mv-cream);\n    background-size: cover;\n    background-position: center right;\n  }\n\n  .mv-hero::before {\n    content: '';\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(90deg, rgba(250, 247, 242, 0.97) 0%, rgba(250, 247, 242, 0.88) 38%, rgba(250, 247, 242, 0.2) 70%, rgba(250, 247, 242, 0) 100%);\n  }\n\n  .mv-hero-inner {\n    position: relative;\n    max-width: 560px;\n  }\n\n  .mv-hero-title {\n    margin: 0 0 12px !important;\n    font-size: clamp(30px, 4vw, 48px) !important;\n    line-height: 1.1 !important;\n    color: #1c2b22 !important;\n  }\n\n  .mv-hero-text {\n    margin: 0 0 20px !important;\n    font-size: 17px;\n    line-height: 1.55;\n    color: #3b4a40;\n  }\n\n  .mv-hero-chip {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    padding: 9px 16px;\n    border-radius: 999px;\n    background: #fff;\n    box-shadow: 0 2px 8px rgba(31, 42, 36, 0.1);\n    font-size: 14px;\n    color: #3b4a40;\n  }\n\n  .mv-hero-chip strong {\n    color: #1c2b22;\n  }\n\n  \/* \u2500\u2500\u2500 Recherche + distance \u2500\u2500\u2500 *\/\n  .mv-controls {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 12px;\n    margin-bottom: 14px;\n  }\n\n  .mv-search {\n    position: relative;\n    flex: 1 1 360px;\n  }\n\n  .mv-search .mv-icon {\n    position: absolute;\n    left: 18px;\n    top: 50%;\n    transform: translateY(-50%);\n    font-size: 18px;\n    color: var(--mv-muted);\n  }\n\n  .mv-search input {\n    width: 100% !important;\n    height: 50px;\n    padding: 0 18px 0 48px !important;\n    border: 1px solid var(--mv-line) !important;\n    border-radius: 999px !important;\n    background: #fff !important;\n    font-size: 15px !important;\n    color: #1f2a24;\n    outline: none;\n    box-shadow: 0 1px 3px rgba(31, 42, 36, 0.05);\n  }\n\n  .mv-search input:focus {\n    border-color: var(--mv-accent) !important;\n    box-shadow: 0 0 0 3px var(--mv-accent-soft) !important;\n  }\n\n  .mv-seg {\n    display: inline-flex;\n    padding: 4px;\n    gap: 2px;\n    border: 1px solid var(--mv-line);\n    border-radius: 999px;\n    background: #fff;\n  }\n\n  .mv-seg button {\n    padding: 0 18px;\n    height: 40px;\n    border: 0;\n    border-radius: 999px;\n    background: transparent;\n    color: #3b4a40;\n    font-size: 14px;\n    font-weight: 600;\n    cursor: pointer;\n    white-space: nowrap;\n    transition: all 0.15s;\n  }\n\n  .mv-seg button:hover {\n    background: var(--mv-cream);\n  }\n\n  .mv-seg button.is-active {\n    background: var(--mv-accent);\n    color: #fff;\n  }\n\n  \/* \u2500\u2500\u2500 Cat\u00e9gories \u2500\u2500\u2500 *\/\n  \/* Cat\u00e9gories : une seule ligne qui d\u00e9file, fl\u00e8ches + fondu sur les bords *\/\n  .mv-cats-wrap {\n    position: relative;\n    margin-bottom: 18px;\n  }\n\n  .mv-cats {\n    display: flex;\n    flex-wrap: nowrap;\n    gap: 8px;\n    overflow-x: auto;\n    scroll-behavior: smooth;\n    scrollbar-width: none;\n    padding: 2px 0;\n  }\n\n  .mv-cats::-webkit-scrollbar {\n    display: none;\n  }\n\n  .mv-cat {\n    flex-shrink: 0;\n  }\n\n  .mv-cats-arrow {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    z-index: 1;\n    display: none;\n    align-items: center;\n    width: 64px;\n    padding: 0;\n    border: 0;\n    cursor: pointer;\n    font-size: 20px;\n    color: #1f2a24;\n  }\n\n  .mv-cats-arrow span {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 36px;\n    height: 36px;\n    border: 1px solid var(--mv-line);\n    border-radius: 50%;\n    background: #fff;\n    box-shadow: 0 2px 6px rgba(31, 42, 36, 0.12);\n  }\n\n  .mv-cats-arrow--left {\n    left: 0;\n    justify-content: flex-start;\n    background: linear-gradient(90deg, #fff 45%, rgba(255, 255, 255, 0));\n  }\n\n  .mv-cats-arrow--right {\n    right: 0;\n    justify-content: flex-end;\n    background: linear-gradient(270deg, #fff 45%, rgba(255, 255, 255, 0));\n  }\n\n  .mv-cats-wrap.can-left .mv-cats-arrow--left,\n  .mv-cats-wrap.can-right .mv-cats-arrow--right {\n    display: flex;\n  }\n\n  .mv-cat {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    padding: 9px 16px;\n    border: 1px solid var(--mv-line);\n    border-radius: 999px;\n    background: #fff;\n    color: #2f3b33;\n    font-size: 14px;\n    font-weight: 500;\n    cursor: pointer;\n    transition: all 0.15s;\n  }\n\n  .mv-cat .mv-icon {\n    font-size: 17px;\n    color: var(--mv-cat);\n  }\n\n  .mv-cat:hover {\n    border-color: #d6cdbd;\n  }\n\n  .mv-cat.is-active {\n    background: var(--mv-accent);\n    border-color: var(--mv-accent);\n    color: #fff;\n  }\n\n  .mv-cat.is-active .mv-icon {\n    color: #fff;\n  }\n\n  \/* \u2500\u2500\u2500 Barre compteur + liste\/carte \u2500\u2500\u2500 *\/\n  .mv-bar {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 12px;\n    margin-bottom: 16px;\n  }\n\n  .mv-count {\n    margin: 0 !important;\n    font-size: 15px;\n    color: var(--mv-muted);\n  }\n\n  .mv-count strong {\n    color: #1f2a24;\n  }\n\n  \/* \u2500\u2500\u2500 Layout liste + carte \u2500\u2500\u2500 *\/\n  .mv-layout {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) minmax(340px, 38%);\n    gap: 24px;\n    align-items: start;\n  }\n\n  .mv-layout.is-list {\n    grid-template-columns: minmax(0, 1fr);\n  }\n\n  .mv-layout.is-list .mv-map-panel {\n    display: none;\n  }\n\n  .mv-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));\n    \/* dense : la fiche \u00ab \u00c0 la une \u00bb (2 colonnes) ne laisse pas de trou sur grand \u00e9cran *\/\n    grid-auto-flow: dense;\n    gap: 18px;\n  }\n\n  \/* Colonne carte (sticky) : carte carr\u00e9e + fiche du rep\u00e8re cliqu\u00e9 en dessous *\/\n  .mv-map-panel {\n    position: sticky;\n    top: calc(var(--mv-header) + 16px);\n    display: flex;\n    flex-direction: column;\n    gap: 12px;\n  }\n\n  .mv-map {\n    width: 100%;\n    aspect-ratio: 1 \/ 1;\n    max-height: max(300px, calc(100vh - var(--mv-header) - 290px));\n    \/* Certains th\u00e8mes rouvrent le d\u00e9bordement des cartes Leaflet : les tuiles\n       d\u00e9passaient alors de la page (camping de la Croze). On rogne quoi qu'il arrive. *\/\n    overflow: hidden !important;\n    contain: paint;\n    border: 1px solid var(--mv-line);\n    border-radius: 20px;\n    background: var(--mv-cream);\n  }\n\n  .mv-preview-hint {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    padding: 16px 18px;\n    border: 1px dashed #d6cdbd;\n    border-radius: 16px;\n    color: var(--mv-muted);\n    font-size: 14px;\n  }\n\n  .mv-preview-hint .mv-icon {\n    font-size: 20px;\n    color: var(--mv-accent);\n  }\n\n  \/* Fiche compacte (horizontale) sous la carte \u2014 s\u00e9lecteurs doubl\u00e9s pour\n     passer devant les r\u00e8gles .mv-card d\u00e9finies plus bas *\/\n  .mv-card.mv-card--mini {\n    flex-direction: row;\n    min-height: 0;\n    border-radius: 16px;\n  }\n\n  .mv-card.mv-card--mini:hover {\n    transform: none;\n  }\n\n  .mv-card.mv-card--mini .mv-card-media {\n    flex: 0 0 120px;\n    width: 120px;\n    aspect-ratio: auto;\n    min-height: 120px;\n  }\n\n  .mv-card.mv-card--mini .mv-card-noimg {\n    font-size: 28px;\n  }\n\n  .mv-card.mv-card--mini .mv-card-body {\n    gap: 4px;\n    min-width: 0;\n    padding: 10px 14px;\n  }\n\n  .mv-card.mv-card--mini .mv-card-title {\n    font-size: 16px !important;\n    -webkit-line-clamp: 1;\n  }\n\n  .mv-card.mv-card--mini .mv-meta {\n    font-size: 12px;\n  }\n\n  .mv-card.mv-card--mini .mv-card-desc {\n    font-size: 13px;\n    -webkit-line-clamp: 2;\n  }\n\n  .mv-card.mv-card--mini .mv-card-foot {\n    padding-top: 2px;\n  }\n\n  .mv-card.mv-card--mini .mv-discover {\n    padding: 5px 12px;\n    font-size: 13px;\n  }\n\n  .mv-card.mv-card--mini .mv-pill {\n    position: static;\n    align-self: flex-start;\n    padding: 2px 10px;\n    font-size: 11px;\n    box-shadow: none;\n  }\n\n  \/* \u2500\u2500\u2500 Carte (fiche) \u2500\u2500\u2500 *\/\n  \/* La liste change brutalement de hauteur au clic sur une cat\u00e9gorie :\n     l'ancrage de d\u00e9filement du navigateur \u00ab corrigeait \u00bb alors la position et\n     contrariait le d\u00e9filement vers les filtres. *\/\n  #mv-app {\n    overflow-anchor: none;\n  }\n\n  .mv-card {\n    position: relative;\n    display: flex;\n    flex-direction: column;\n    min-width: 0;\n    overflow: hidden;\n    border: 1px solid var(--mv-line);\n    border-radius: 18px;\n    background: #fff;\n    box-shadow: 0 1px 3px rgba(31, 42, 36, 0.05);\n    cursor: pointer;\n    transition: box-shadow 0.2s, transform 0.2s;\n  }\n\n  .mv-card:hover,\n  .mv-card.is-hover {\n    box-shadow: 0 12px 28px rgba(31, 42, 36, 0.12);\n    transform: translateY(-2px);\n  }\n\n  .mv-card-media {\n    position: relative;\n    \/* Hauteur fix\u00e9e par le format, jamais par la photo : sans flex-shrink ni\n       taille minimale de contenu, une photo en hauteur \u00e9tirait son cadre et\n       les cartes d'une m\u00eame rang\u00e9e n'avaient plus des images align\u00e9es. *\/\n    flex: 0 0 auto;\n    min-height: 0;\n    \/* Pas d'overflow: hidden ici : la pastille de cat\u00e9gorie est pos\u00e9e \u00e0 cheval\n       sur le bas de l'image. L'image, en absolu, ne d\u00e9borde pas de son cadre. *\/\n    aspect-ratio: 16 \/ 10;\n    background: var(--mv-cream);\n  }\n\n  .mv-card-media img {\n    position: absolute;\n    inset: 0;\n    display: block;\n    width: 100% !important;\n    max-width: none !important;\n    height: 100% !important;\n    object-fit: cover;\n  }\n\n  .mv-card-noimg {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 100%;\n    height: 100%;\n    font-size: 42px;\n    color: var(--mv-cat);\n    background: color-mix(in srgb, var(--mv-cat) 10%, var(--mv-cream));\n  }\n\n  .mv-pill {\n    display: inline-flex;\n    align-items: center;\n    padding: 4px 12px;\n    border-radius: 999px;\n    background: #fff;\n    background: color-mix(in srgb, var(--mv-cat) 14%, #fff);\n    color: var(--mv-cat);\n    font-size: 12px;\n    font-weight: 600;\n    white-space: nowrap;\n  }\n\n  .mv-card-media .mv-pill {\n    position: absolute;\n    left: 12px;\n    bottom: -12px;\n    background: color-mix(in srgb, var(--mv-cat) 12%, #fff);\n    box-shadow: 0 2px 6px rgba(31, 42, 36, 0.12);\n  }\n\n  .mv-card-body {\n    display: flex;\n    flex: 1;\n    flex-direction: column;\n    gap: 7px;\n    padding: 22px 16px 16px;\n  }\n\n  .mv-card-title {\n    margin: 0 !important;\n    font-size: 18px !important;\n    line-height: 1.25 !important;\n    color: #1c2b22 !important;\n    display: -webkit-box;\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n  }\n\n  .mv-meta {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    gap: 6px 12px;\n    margin: 0 !important;\n    font-size: 13px;\n    color: var(--mv-muted);\n  }\n\n  .mv-meta span {\n    display: inline-flex;\n    align-items: center;\n    gap: 5px;\n  }\n\n  .mv-card-desc {\n    margin: 0 !important;\n    font-size: 14px;\n    line-height: 1.5;\n    color: #4b5850;\n    display: -webkit-box;\n    -webkit-line-clamp: 3;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n  }\n\n  .mv-tags {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 6px;\n  }\n\n  .mv-tag {\n    padding: 3px 10px;\n    border-radius: 999px;\n    background: #f3efe8;\n    color: #4b5850;\n    font-size: 12px;\n    max-width: 100%;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n\n  .mv-card-foot {\n    display: flex;\n    justify-content: flex-end;\n    margin-top: auto;\n    padding-top: 6px;\n  }\n\n  .mv-discover {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    padding: 8px 16px;\n    border: 0;\n    border-radius: 999px;\n    background: #f7ebe0;\n    color: #1c2b22;\n    font-size: 14px;\n    font-weight: 600;\n    cursor: pointer;\n    transition: background 0.15s;\n  }\n\n  .mv-card:hover .mv-discover {\n    background: #f1dcc9;\n  }\n\n  \/* Carte \u00ab \u00e0 la une \u00bb : grande, texte sur l'image *\/\n  .mv-card--featured {\n    grid-column: span 2;\n    min-height: 360px;\n  }\n\n  .mv-card--featured .mv-card-media {\n    position: absolute;\n    inset: 0;\n    aspect-ratio: auto;\n  }\n\n  .mv-card--featured .mv-card-media::after {\n    content: '';\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(90deg, rgba(20, 24, 20, 0.72) 0%, rgba(20, 24, 20, 0.35) 55%, rgba(20, 24, 20, 0.05) 100%);\n  }\n\n  .mv-card--featured .mv-card-body {\n    position: relative;\n    justify-content: flex-end;\n    max-width: 480px;\n    padding: 28px;\n    color: #fff;\n  }\n\n  .mv-card--featured .mv-card-title {\n    font-size: 30px !important;\n    color: #fff !important;\n  }\n\n  .mv-card--featured .mv-card-desc,\n  .mv-card--featured .mv-meta {\n    color: rgba(255, 255, 255, 0.9);\n  }\n\n  .mv-card--featured .mv-card-foot {\n    justify-content: flex-start;\n    margin-top: 8px;\n  }\n\n  .mv-card--featured .mv-discover {\n    background: #fff;\n  }\n\n  .mv-flag {\n    align-self: flex-start;\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    margin-bottom: 6px;\n    padding: 6px 12px;\n    border-radius: 999px;\n    background: #c2410c;\n    color: #fff;\n    font-size: 12px;\n    font-weight: 700;\n    letter-spacing: 0.4px;\n    text-transform: uppercase;\n  }\n\n  \/* Pagination *\/\n  .mv-more {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    align-items: center;\n    gap: 6px;\n    margin-top: 28px;\n  }\n\n  .mv-page {\n    min-width: 42px;\n    height: 42px;\n    padding: 0 12px;\n    border: 1px solid var(--mv-line);\n    border-radius: 999px;\n    background: #fff;\n    color: #2f3b33;\n    font-size: 14px;\n    font-weight: 600;\n    cursor: pointer;\n    transition: all 0.15s;\n  }\n\n  .mv-page:hover:not(:disabled):not([aria-current=\"page\"]) {\n    border-color: var(--mv-accent);\n    color: var(--mv-accent);\n  }\n\n  .mv-page[aria-current=\"page\"] {\n    background: var(--mv-accent);\n    border-color: var(--mv-accent);\n    color: #fff;\n    cursor: default;\n  }\n\n  .mv-page:disabled {\n    opacity: 0.4;\n    cursor: not-allowed;\n  }\n\n  .mv-page-gap {\n    padding: 0 4px;\n    color: var(--mv-muted);\n  }\n\n  \/* Bouton \u00ab Revenir \u00e0 la vue d'ensemble \u00bb (visible apr\u00e8s un zoom \/ d\u00e9placement) *\/\n  .mv-map {\n    position: relative;\n  }\n\n  \/* Pas de gros contour noir au clic sur la carte ; contour visible au clavier seulement *\/\n  .mv-map.leaflet-container:focus {\n    outline: none;\n  }\n\n  .mv-map.leaflet-container:focus-visible {\n    outline: 3px solid var(--mv-accent);\n    outline-offset: 2px;\n  }\n\n  .mv-reset {\n    position: absolute;\n    top: 12px;\n    left: 12px;\n    z-index: 500;\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    padding: 8px 14px;\n    border: 0;\n    border-radius: 999px;\n    background: #fff;\n    color: #1c2b22;\n    font-family: 'Inter', -apple-system, sans-serif;\n    font-size: 13px;\n    font-weight: 600;\n    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);\n    cursor: pointer;\n  }\n\n  .mv-reset[hidden] {\n    display: none;\n  }\n\n  .mv-reset:hover {\n    background: var(--mv-accent);\n    color: #fff;\n  }\n\n  .mv-reset .mv-icon {\n    font-size: 15px;\n  }\n\n  \/* Rep\u00e8re de l'\u00e9tablissement (\u00ab vous \u00eates ici \u00bb) *\/\n  .mv-home {\n    background: none;\n    border: none;\n    pointer-events: none;\n  }\n\n  .mv-home-pin {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 44px;\n    height: 44px;\n    border: 3px solid #fff;\n    border-radius: 50%;\n    background: #1c2b22;\n    color: #fff;\n    box-shadow: 0 0 0 5px rgba(28, 43, 34, 0.25), 0 4px 12px rgba(0, 0, 0, 0.35);\n  }\n\n  .mv-home-pin svg {\n    width: 22px;\n    height: 22px;\n  }\n\n  .mv-home-label.leaflet-tooltip {\n    padding: 5px 10px;\n    border: 0;\n    border-radius: 999px;\n    background: #1c2b22;\n    color: #fff;\n    font-family: 'Inter', -apple-system, sans-serif;\n    font-size: 12px;\n    font-weight: 700;\n    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);\n  }\n\n  .mv-home-label.leaflet-tooltip-right::before {\n    border-right-color: #1c2b22;\n  }\n\n  .mv-btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n    padding: 12px 26px;\n    border: 0;\n    border-radius: 999px;\n    background: var(--mv-accent);\n    color: #fff !important;\n    font-size: 15px;\n    font-weight: 600;\n    text-decoration: none !important;\n    cursor: pointer;\n    transition: filter 0.15s;\n  }\n\n  .mv-btn:hover {\n    filter: brightness(0.92);\n  }\n\n  .mv-empty {\n    grid-column: 1 \/ -1;\n    padding: 40px 20px;\n    border: 1px dashed #d6cdbd;\n    border-radius: 18px;\n    background: #fff;\n    color: var(--mv-muted);\n    text-align: center;\n  }\n\n  .mv-empty strong {\n    display: block;\n    margin-bottom: 4px;\n    color: #1f2a24;\n  }\n\n  \/* \u2500\u2500\u2500 Id\u00e9es selon vos envies \u2500\u2500\u2500 *\/\n  .mv-ideas {\n    margin-top: 48px;\n  }\n\n  .mv-ideas-head {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: baseline;\n    justify-content: space-between;\n    gap: 8px 24px;\n    margin-bottom: 16px;\n  }\n\n  .mv-ideas-title {\n    margin: 0 !important;\n    font-size: clamp(22px, 2.6vw, 30px) !important;\n    color: #1c2b22 !important;\n  }\n\n  .mv-ideas-sub {\n    margin: 0 !important;\n    color: var(--mv-muted);\n    font-size: 14px;\n  }\n\n  .mv-ideas-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));\n    gap: 16px;\n  }\n\n  .mv-idea {\n    display: flex;\n    align-items: stretch;\n    overflow: hidden;\n    min-height: 88px;\n    padding: 0;\n    border: 1px solid var(--mv-line);\n    border-radius: 16px;\n    background: #fff;\n    text-align: left;\n    cursor: pointer;\n    transition: box-shadow 0.2s;\n  }\n\n  .mv-idea:hover {\n    box-shadow: 0 8px 20px rgba(31, 42, 36, 0.1);\n  }\n\n  .mv-idea-img {\n    flex: 0 0 38%;\n    background: var(--mv-cream) center \/ cover no-repeat;\n  }\n\n  .mv-idea-body {\n    display: flex;\n    flex: 1;\n    align-items: center;\n    gap: 10px;\n    padding: 12px 14px;\n  }\n\n  .mv-idea-body .mv-icon {\n    font-size: 22px;\n    color: var(--mv-cat);\n  }\n\n  .mv-idea-text {\n    flex: 1;\n    min-width: 0;\n  }\n\n  .mv-idea-text strong {\n    display: block;\n    font-size: 14px;\n    color: #1c2b22;\n    line-height: 1.3;\n  }\n\n  .mv-idea-text span {\n    font-size: 13px;\n    color: var(--mv-muted);\n  }\n\n  \/* \u2500\u2500\u2500 Marqueurs carte \u2500\u2500\u2500 *\/\n  .mv-pin svg {\n    display: block;\n    overflow: visible;\n    transform-origin: 50% 100%;\n    transition: transform 0.15s ease;\n    filter: drop-shadow(0 2px 3px rgba(20, 24, 20, 0.35));\n  }\n\n  .mv-pin.is-hover svg {\n    transform: scale(1.3);\n  }\n\n  .mv-pin.is-selected svg {\n    transform: scale(1.4);\n    filter: drop-shadow(0 0 0 #fff) drop-shadow(0 3px 6px rgba(20, 24, 20, 0.45));\n  }\n\n  .mv-pin.is-selected {\n    z-index: 1001 !important;\n  }\n\n  \/* Pas de carr\u00e9 de focus Leaflet autour du rep\u00e8re cliqu\u00e9 *\/\n  .mv-pin:focus,\n  .mv-pin:focus-visible {\n    outline: none;\n  }\n\n  .mv-pin.is-hover {\n    z-index: 1000 !important;\n  }\n\n  .mv-cluster {\n    background: none;\n    border: none;\n  }\n\n  .mv-cluster span {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    border: 3px solid #fff;\n    border-radius: 50%;\n    background: var(--mv-accent, #2e5e45);\n    color: #fff;\n    font-size: 13px;\n    font-weight: 700;\n    box-shadow: 0 3px 8px rgba(20, 24, 20, 0.3);\n  }\n\n\n  \/* \u2500\u2500\u2500 Modal \u2500\u2500\u2500 *\/\n  .mv-modal-overlay {\n    position: fixed !important;\n    inset: 0 !important;\n    z-index: 99999 !important;\n    max-width: none !important;\n    width: auto !important;\n    margin: 0 !important;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    background: rgba(20, 24, 20, 0.4);\n    backdrop-filter: blur(2px);\n  }\n\n  .mv-modal-overlay[hidden] {\n    display: none !important;\n  }\n\n  .mv-modal {\n    position: relative;\n    width: 100%;\n    max-width: 1080px;\n    max-height: calc(100vh - 32px);\n    overflow-y: auto;\n    border-radius: 22px;\n    background: #fff;\n    box-shadow: 0 24px 60px rgba(20, 24, 20, 0.3);\n    font-family: 'Inter', -apple-system, sans-serif;\n    color: #1f2a24;\n  }\n\n  \/* Cr\u00e9dit photo : discret sur la carte (\u00a9, auteur au survol), lisible en fiche. *\/\n  .mv-credit {\n    position: absolute;\n    top: 8px;\n    right: 8px;\n    z-index: 2;\n    max-width: calc(100% - 16px);\n    padding: 2px 7px;\n    border-radius: 999px;\n    background: rgba(0, 0, 0, 0.45);\n    color: #fff;\n    font-size: 11px;\n    line-height: 1.5;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    cursor: help;\n  }\n\n  .mv-card:hover .mv-credit::after,\n  .mv-credit:focus::after {\n    content: ' ' attr(data-credit);\n  }\n\n  \/* Bandeau : le cr\u00e9dit est \u00e9crit en clair (pas de survol sur une image de fond),\n     en bas \u00e0 droite, loin du titre. *\/\n  .mv-credit--hero {\n    top: auto;\n    bottom: 10px;\n    right: 12px;\n    max-width: 60%;\n    cursor: default;\n  }\n\n  .mv-modal-credit {\n    margin: 6px 2px 0 !important;\n    color: var(--mv-muted, #6b7280);\n    font-size: 12px !important;\n    line-height: 1.4 !important;\n  }\n\n  .mv-modal-img {\n    display: block;\n    width: 100%;\n    aspect-ratio: 4 \/ 3;\n    max-height: 52vh;\n    object-fit: cover;\n    border-radius: 14px;\n  }\n\n  \/* Modal large : contenu sur 2 colonnes (texte \/ m\u00e9dias) pour \u00e9viter de d\u00e9filer *\/\n  .mv-modal-cols {\n    display: grid;\n    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);\n    gap: 28px;\n    align-items: start;\n  }\n\n  \/* Colonne m\u00e9dias : reste visible pendant qu'on lit le texte *\/\n  .mv-modal-col--media {\n    position: sticky;\n    top: 0;\n  }\n\n  .mv-modal-body {\n    padding-top: 26px !important;\n  }\n\n  \/* Place pour le bouton de fermeture en haut \u00e0 droite *\/\n  .mv-modal-cols > .mv-modal-col:last-child {\n    padding-right: 36px;\n  }\n\n  .mv-modal-col {\n    display: flex;\n    flex-direction: column;\n    gap: 14px;\n    min-width: 0;\n  }\n\n  .mv-modal-actions {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px;\n  }\n\n  .mv-btn--ghost {\n    background: #fff;\n    border: 1px solid var(--mv-line);\n    color: #1c2b22 !important;\n  }\n\n  .mv-btn--ghost:hover {\n    filter: none;\n    border-color: var(--mv-accent);\n  }\n\n  @media (max-width: 900px) {\n    .mv-modal-cols {\n      grid-template-columns: minmax(0, 1fr);\n      gap: 14px;\n    }\n\n    \/* Mobile : photo, puis texte, puis boutons \/ m\u00e9dias *\/\n    .mv-modal-cols {\n      display: flex;\n      flex-direction: column;\n    }\n\n    .mv-modal-col--media {\n      display: contents;\n    }\n\n    .mv-modal-col--media > .mv-modal-img {\n      order: -2;\n    }\n\n    .mv-modal-cols > .mv-modal-col:last-child {\n      order: -1;\n    }\n\n    .mv-modal-cols > .mv-modal-col:last-child {\n      padding-right: 0;\n    }\n  }\n\n  .mv-modal-body {\n    display: flex;\n    flex-direction: column;\n    gap: 14px;\n    padding: 22px 26px 26px;\n  }\n\n  .mv-modal-title {\n    margin: 0 !important;\n    font-size: 26px !important;\n    line-height: 1.2 !important;\n    color: #1c2b22 !important;\n  }\n\n  .mv-modal-desc {\n    margin: 0 !important;\n    font-size: 15px;\n    line-height: 1.65;\n    color: #4b5850;\n    white-space: pre-line;\n  }\n\n  .mv-modal-event {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    align-self: flex-start;\n    padding: 7px 12px;\n    border-radius: 10px;\n    background: var(--mv-accent-soft);\n    color: var(--mv-accent);\n    font-size: 14px;\n    font-weight: 600;\n  }\n\n  .mv-fields {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n    gap: 10px 20px;\n    padding: 14px 16px;\n    border-radius: 14px;\n    background: var(--mv-cream);\n  }\n\n  .mv-field span {\n    display: block;\n    margin-bottom: 2px;\n    font-size: 12px;\n    line-height: 1.35 !important;\n    color: var(--mv-muted);\n  }\n\n  .mv-field strong {\n    display: block;\n    font-size: 14px;\n    font-weight: 600;\n    line-height: 1.4 !important;\n    color: #1f2a24;\n    overflow-wrap: anywhere;\n  }\n\n  \/* \u2500\u2500\u2500 Agrandissement automatique par paliers (fiches tr\u00e8s remplies) \u2500\u2500\u2500\n     1. is-wide    : fen\u00eatre plus large, infos sur 3 colonnes, photo plus basse\n     2. is-compact : espacements et textes resserr\u00e9s *\/\n  .mv-modal.is-wide {\n    max-width: min(1320px, calc(100vw - 32px));\n  }\n\n  .mv-modal.is-wide .mv-fields {\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n  }\n\n  .mv-modal.is-wide .mv-modal-img {\n    aspect-ratio: 16 \/ 10;\n    max-height: 36vh;\n  }\n\n  .mv-modal.is-compact .mv-modal-body {\n    gap: 10px;\n    padding: 18px 20px 20px !important;\n  }\n\n  .mv-modal.is-compact .mv-modal-col {\n    gap: 10px;\n  }\n\n  .mv-modal.is-compact .mv-modal-title {\n    font-size: 22px !important;\n  }\n\n  .mv-modal.is-compact .mv-modal-desc {\n    font-size: 14px;\n    line-height: 1.55;\n  }\n\n  .mv-modal.is-compact .mv-fields {\n    gap: 8px 16px;\n    padding: 12px 14px;\n  }\n\n  .mv-modal.is-compact .mv-field strong {\n    font-size: 13px;\n  }\n\n  .mv-modal.is-compact .mv-modal-img {\n    max-height: 30vh;\n  }\n\n  @media (max-width: 900px) {\n    .mv-modal.is-wide .mv-fields {\n      grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));\n    }\n  }\n\n  .mv-modal-sub {\n    margin: 4px 0 0 !important;\n    font-size: 13px;\n    font-weight: 700;\n    letter-spacing: 0.4px;\n    text-transform: uppercase;\n    color: var(--mv-muted);\n  }\n\n  .mv-gallery {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));\n    gap: 8px;\n  }\n\n  .mv-gallery img {\n    display: block;\n    width: 100%;\n    aspect-ratio: 1;\n    object-fit: cover;\n    border-radius: 10px;\n  }\n\n  .mv-docs a {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    padding: 8px 0;\n    color: var(--mv-accent);\n    font-weight: 600;\n    text-decoration: none;\n  }\n\n  .mv-video {\n    position: relative;\n    aspect-ratio: 16 \/ 9;\n    border-radius: 12px;\n    overflow: hidden;\n    background: #000;\n  }\n\n  .mv-video iframe,\n  .mv-video video {\n    position: absolute;\n    inset: 0;\n    width: 100%;\n    height: 100%;\n    border: 0;\n  }\n\n  .mv-faq details {\n    border-bottom: 1px solid var(--mv-line);\n    padding: 10px 0;\n  }\n\n  .mv-faq summary {\n    cursor: pointer;\n    font-size: 15px !important;\n    font-weight: 600;\n    line-height: 1.4 !important;\n    color: #1c2b22;\n  }\n\n  .mv-faq p {\n    margin: 8px 0 0 !important;\n    color: #4b5850;\n    line-height: 1.55;\n  }\n\n  .mv-modal-close {\n    position: absolute;\n    top: 12px;\n    right: 12px;\n    z-index: 2;\n    width: 40px;\n    height: 40px;\n    border: 0;\n    border-radius: 50%;\n    background: rgba(255, 255, 255, 0.95);\n    color: #1f2a24;\n    font-size: 22px;\n    line-height: 1;\n    cursor: pointer;\n    box-shadow: 0 2px 6px rgba(20, 24, 20, 0.2);\n  }\n\n  \/* \u2500\u2500\u2500 Responsive \u2500\u2500\u2500 *\/\n  @media (max-width: 1100px) {\n    .mv-layout {\n      grid-template-columns: minmax(0, 1fr);\n    }\n\n    .mv-map-panel {\n      position: relative;\n      top: 0;\n      order: -1;\n    }\n\n    .mv-map {\n      aspect-ratio: 4 \/ 3;\n      max-height: 420px;\n    }\n  }\n\n  @media (max-width: 720px) {\n    .mv-wrap {\n      padding: 0 12px 40px;\n    }\n\n    .mv-hero {\n      padding: 36px 22px;\n      border-radius: 18px;\n    }\n\n    .mv-hero::before {\n      background: linear-gradient(180deg, rgba(250, 247, 242, 0.95), rgba(250, 247, 242, 0.8));\n    }\n\n    .mv-seg {\n      width: 100%;\n    }\n\n    .mv-seg button {\n      flex: 1;\n      padding: 0 8px;\n    }\n\n\n\n    .mv-card--featured {\n      grid-column: auto;\n      min-height: 320px;\n    }\n\n    .mv-card--featured .mv-card-title {\n      font-size: 24px !important;\n    }\n\n    .mv-modal-img {\n      height: 200px;\n    }\n  }\n<\/style>\n\n\n<div class=\"mv-wrap\" id=\"mv-app\">\n\n  <section class=\"mv-hero\" style=\"background-image:url(https:\/\/www.campingbonport.com\/wp-content\/uploads\/2021\/11\/camping-camargue-bon-port.jpg)\">\n        <div class=\"mv-hero-inner\">\n      <h1 class=\"mv-hero-title\">Things to discover nearby<\/h1>\n      <p class=\"mv-hero-text\">Villages, beaches, walks, good addresses and experiences selected around your stay.<\/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          Around <strong>Camping Bon Port<\/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=\"Search for a place, an activity, a village\u2026\" aria-label=\"Search\">\n    <\/label>\n          <div class=\"mv-seg\" role=\"group\" aria-label=\"Maximum distance\" 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\">All<\/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=\"Previous categories\"><span>\u2039<\/span><\/button>\n    <div class=\"mv-cats\" id=\"mv-cats\" role=\"group\" aria-label=\"Categories\"><\/div>\n    <button type=\"button\" class=\"mv-cats-arrow mv-cats-arrow--right\" aria-label=\"Next categories\"><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=\"Display\" id=\"mv-view\">\n      <button type=\"button\" data-view=\"list\">List<\/button>\n      <button type=\"button\" data-view=\"map\" class=\"is-active\">Map<\/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>Canoe kayak in Saint-S\u00e9ri\u00e8s<\/strong><\/li>\n              <li><strong>Horse riding in Grau-du-Roi<\/strong><\/li>\n              <li><strong>Tree climbing at Roc de Massereau<\/strong><\/li>\n              <li><strong>Visit of Aigues-Mortes<\/strong><\/li>\n              <li><strong>Seaquarium of Grau-du-Roi<\/strong><\/li>\n              <li><strong>Lunel<\/strong><\/li>\n              <li><strong>Lou Casa, Barbara et Brel<\/strong> \u2014 Brel\u2019s and Barbara\u2019s songs respond to one another, revealing an unexpected unity and sensitivity, as well as the artistic and friendship ties that connected them. Lou Casa adds its own&hellip;<\/li>\n              <li><strong>Christmas Market<\/strong> \u2014 On November 22, Sainte-Croix-de-Quintillargues invites you to its Christmas Market at Espace Claude Saumade. Discover many exhibitors in a festive atmosphere: gift ideas, treats, food and entertainment will set the&hellip;<\/li>\n              <li><strong>Julia Kaulbach Exhibition<\/strong> \u2014 Julia Kaulbach, a German artist who lives and works in Sauve, presents a selection of her recent works at the Auberge du C\u00e8dre in Lauret, from August 23 to November&hellip;<\/li>\n              <li><strong>Marsillargues<\/strong><\/li>\n              <li><strong>Lunel-Viel<\/strong><\/li>\n              <li><strong>Villetelle<\/strong><\/li>\n              <li><strong>Saint-S\u00e9ri\u00e8s<\/strong><\/li>\n              <li><strong>Saturargues<\/strong><\/li>\n              <li><strong>V\u00e9rargues<\/strong><\/li>\n              <li><strong>Saussines<\/strong><\/li>\n              <li><strong>Saint-Christol<\/strong><\/li>\n              <li><strong>Aigues-Mortes<\/strong><\/li>\n              <li><strong>BLMA VS CHARNAY<\/strong> \u2014 Women&#039;s basketball league BLMA from LATTES will face Charnay on 09 December 2026 at 8:00 p.m. at the Palais des Rencontres in Lattes. Come support your favorite team!<\/li>\n              <li><strong>EOLIENNE RACE 2026<\/strong> \u2014 Organized by the Coureurs de l\u2019Eolienne, with the support of the City of Clapiers, the H\u00e9rault Department and logistical assistance from H\u00e9rault Sport, the 24th edition of the Foul\u00e9es de&hellip;<\/li>\n              <li><strong>P\u00c9TROLE<\/strong> \u2014 Sylvain Creuzevault takes on Pasolini\u2019s explosive, unfinished and fragmented final novel, written shortly before his death and published long after. Catch it on December 10 and 11, duration 3h30 with&hellip;<\/li>\n              <li><strong>MONTPELLIER BASKET VS SAINT-VALLIER (NM2)<\/strong> \u2014 USA NIGHT Meet us on Saturday, November 14 at 8:30 pm at the Palais des Sports Pierre de Coubertin in Montpellier for an evening with a U.S. vibe! On the&hellip;<\/li>\n              <li><strong>Aimargues weekly market<\/strong> \u2014 Local produce market and flea market<\/li>\n              <li><strong>HANDBALL: MHB VS DUNKERQUE<\/strong> \u2014 The FDI Stadium in Montpellier hosts the MHB \/ Dunkerque match on 13 November at 8:00 p.m. in the Daikin StarLigue! Come and support your favorite team!<\/li>\n              <li><strong>MICHELE LAROQUE &amp; KAD MERAD &quot;L&#039;\u00c2GE B\u00caTE&quot;<\/strong> \u2014 Benoit and Claire have just met, and they want to live their new love story to the fullest, without limits. Rebellious and free, they proudly embrace their love of sex,&hellip;<\/li>\n              <li><strong>VERY IMPRO PEOPLE - GAZETTE CAF\u00c9<\/strong> \u2014 Three evenings of improvisation at Gazette Caf\u00e9 In November, Very Impro People take over Gazette Caf\u00e9 for three dates dedicated to theatrical improvisation. Cabaret, an original concept, or an improvised&hellip;<\/li>\n              <li><strong>Calvisson weekly market<\/strong> \u2014 Every Sunday, the large square in Calvisson hosts a colorful market with many vendors, all year round.<\/li>\n              <li><strong>ICE HOCKEY: VIPERS VS HCMP<\/strong> \u2014 The Vipers host HCMP on November 14, 2026 at the V\u00e9gapolis ice rink. Come support your favorite team!<\/li>\n              <li><strong>Junas weekly market<\/strong> \u2014 Every Tuesday. The small market welcomes two local producers in the village center.<\/li>\n              <li><strong>BLACK, JEWISH AND ONE-EYED, THE STORY OF SAMMY DAVIS<\/strong> \u2014 Sammy Davis Jr. is extraordinary and constantly raises questions about identity. In a time when people are made to believe that they can only define themselves by a single criterion,&hellip;<\/li>\n              <li><strong>THEATRE \u201cMIRABEAU THE BOLD\u201d<\/strong> \u2014 by Les Rid O\u2019Philes Price: \u20ac8, free for under 14s and subscription available Chapelle Notre-Dame-de-la-Route Info and bookings: www.billetweb.fr\/ridophiles-palavas-les-flots<\/li>\n              <li><strong>WITH LITTLE LUGGAGE<\/strong> \u2014 A chronicle of the events of the Spanish Civil War. This show portrays the end of the Spanish Civil War, the exile and then the &quot;welcome&quot; and detention of these&hellip;<\/li>\n              <li><strong>BLMA VS LANDERNEAU<\/strong> \u2014 Women&#039;s basketball league The BLMA of LATTES will face Landerneau on 22 November 2026 at 3:30 p.m. at the Palais des Rencontres in Lattes. Come support your favorite team!<\/li>\n              <li><strong>THE QUEENS OF BURLESQUE<\/strong> \u2014 Humor and glamour in the purest tradition of American-style shows! A sparkling cabaret from which you\u2019ll leave with stars in your eyes! Under the guidance of LILI CHANTILLY, famous burlesque&hellip;<\/li>\n              <li><strong>THE ROOF OF THE WORLD<\/strong> \u2014 Paris, 1945. Henry Vernot is looking for his brother, Antoine, who has vanished without a trace. The only way to find Antoine is to get hold of a painting, or&hellip;<\/li>\n              <li><strong>Aigues-Mortes<\/strong> \u2014 Aigues-Mortes is a medieval town located in the Camargue region, famous for its well-preserved ramparts and historic towers.<\/li>\n              <li><strong>N\u00eemes<\/strong> \u2014 N\u00eemes is a city in southern France, renowned for its exceptional Roman heritage, including the N\u00eemes arena and the Maison Carr\u00e9e.<\/li>\n              <li><strong>V\u00e9z\u00e9nobres<\/strong> \u2014 V\u00e9z\u00e9nobres is a charming medieval village perched on a hill, offering panoramic views and picturesque lanes.<\/li>\n              <li><strong>Sommi\u00e8res<\/strong> \u2014 Sommi\u00e8res is a small picturesque town crossed by the Vidourle, offering a lively Proven\u00e7al market and medieval lanes.<\/li>\n              <li><strong>Montpellier<\/strong> \u2014 Montpellier is a dynamic city in Languedoc-Roussillon, known for its historic center, Place de la Com\u00e9die, and the Arc de Triomphe.<\/li>\n              <li><strong>Theatre performance &quot;La Fleur au Fusil&quot;<\/strong> \u2014 Attend the performance of &quot;La Fleur au Fusil&quot; by the troupe of Amis du Th\u00e9\u00e2tre Populaire. A captivating tragicomedy.<\/li>\n              <li><strong>15th Oenotrail of Lunellois<\/strong> \u2014 Take part in the 15th edition of the Oenotrail of Lunellois, a running event combining sport and tasting of local wines. A must-see event for wine and nature lovers.<\/li>\n              <li><strong>Lunel Christmas Market<\/strong> \u2014 Come celebrate the holiday season at the Lunel Christmas Market. Enjoy local artisan stalls, children&#039;s activities, and gastronomic specialties.<\/li>\n              <li><strong>Theatre performance &quot;Les C\u0153urs Andalous&quot;<\/strong> \u2014 Come discover &quot;Les C\u0153urs Andalous&quot;, an emotional play performed by the troupe of Amis du Th\u00e9\u00e2tre Populaire.<\/li>\n              <li><strong>Open house at Domaine des Hospitaliers<\/strong> \u2014 Come and discover Domaine des Hospitaliers during this open house day. Enjoy a guided tour of the facilities and vineyards, with local wine tastings.<\/li>\n              <li><strong>Tree climbing at Roc de Massereau in Sommi\u00e8res<\/strong> \u2014 Enjoy a day of tree climbing at Roc de Massereau, a treetop course suitable for all ages, located about 40 minutes by car from Camping Bon Port.<\/li>\n              <li><strong>Visit the fortified town of Aigues-Mortes<\/strong> \u2014 Explore the medieval town of Aigues-Mortes, famous for its impressive ramparts, towers and rich history, 30 minutes by car from Camping Bon Port.<\/li>\n              <li><strong>Water sports at the nautical base on Grand Travers beach<\/strong> \u2014 Enjoy canoeing, paddleboarding, diving, jet skiing or a boat trip from the nautical base near Camping Bon Port, located at Grand Travers beach between La Grande-Motte and Carnon.<\/li>\n              <li><strong>Pont de Gau Ornithological Park<\/strong> \u2014 Discover the local wildlife and migratory birds in this natural park located in Les Saintes-Maries-de-la-Mer, a privileged visit for nature and biodiversity lovers.<\/li>\n              <li><strong>Hiking and mountain biking in Petite Camargue<\/strong> \u2014 Discover the hiking and mountain biking trails around Camping Bon Port, including the coastal routes of Petite Camargue and itineraries to the C\u00e9vennes, suitable for all levels.<\/li>\n              <li><strong>Le Bistrot de Caro<\/strong> \u2014 Restaurant offering contemporary French cuisine in a modern setting.<\/li>\n              <li><strong>Restaurant Bar Le National<\/strong> \u2014 Traditional French restaurant-bar offering cuisine and themed evenings.<\/li>\n              <li><strong>La Soupe Os\u00e9e Restaurant<\/strong> \u2014 Restaurant offering traditional French cuisine in a warm atmosphere.<\/li>\n              <li><strong>Restaurant L&#039;Entracte<\/strong> \u2014 Restaurant offering Mediterranean cuisine with local products.<\/li>\n              <li><strong>Restaurant La Terrasse<\/strong> \u2014 Restaurant offering traditional French cuisine with a pleasant terrace.<\/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=\"Close\">\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,\"featured\":false,\"type\":\"activites\",\"name\":\"Canoe kayak in Saint-S\\u00e9ri\\u00e8s\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a95799f5bb75.png\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":11,\"min\":25,\"lat\":43.7315691,\"lng\":4.1059685,\"tags\":[\"Sport\",\"Paid\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Sport\"},{\"label\":\"Location\",\"value\":\"Saint-S\\u00e9ri\\u00e8s, H\\u00e9rault\"},{\"label\":\"Description\",\"value\":\"Full nature activity on the Vidourle, mentioned as a possible outing around the camping. Suitable for lovers of gentle sensations and sporty walks.\"},{\"label\":\"Price range\",\"value\":\"Paid\"},{\"label\":\"Opening dates \\\/ season\",\"value\":\"According to weather conditions and season\"},{\"label\":\"Distance from the campsite (km)\",\"value\":\"11\"},{\"label\":\"Time from the campsite (min)\",\"value\":\"25\"},{\"label\":\"Reservation\",\"value\":\"Oui\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":1,\"featurable\":true,\"featured\":false,\"type\":\"activites\",\"name\":\"Horse riding in Grau-du-Roi\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a957a16eaac1.jpg\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":15,\"min\":20,\"lat\":43.513019,\"lng\":4.129031,\"tags\":[\"Nature\",\"Paid\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Nature\"},{\"label\":\"Location\",\"value\":\"Le Grau-du-Roi, H\\u00e9rault\"},{\"label\":\"Description\",\"value\":\"Horse riding outing in Camarguan environment, ideal for discovering the region's landscapes differently. This activity is among the leisure options around Camping Bon Port.\"},{\"label\":\"Price range\",\"value\":\"Paid\"},{\"label\":\"Opening dates \\\/ season\",\"value\":\"According to season and horse riding center availability\"},{\"label\":\"Distance from the campsite (km)\",\"value\":\"15\"},{\"label\":\"Time from the campsite (min)\",\"value\":\"20\"},{\"label\":\"Reservation\",\"value\":\"Oui\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":2,\"featurable\":true,\"featured\":false,\"type\":\"activites\",\"name\":\"Tree climbing at Roc de Massereau\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a9579ff02144.jpg\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":27,\"min\":35,\"lat\":43.761503,\"lng\":4.094258,\"tags\":[\"Adventure\",\"Paid\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Adventure\"},{\"label\":\"Location\",\"value\":\"Sommi\\u00e8res, Gard\"},{\"label\":\"Description\",\"value\":\"Tree climbing course for an active outdoor outing, listed among leisure activities near the camping. The activity appeals to both families and groups of friends.\"},{\"label\":\"Price range\",\"value\":\"Paid\"},{\"label\":\"Opening dates \\\/ season\",\"value\":\"Open seasonally\"},{\"label\":\"Distance from the campsite (km)\",\"value\":\"27\"},{\"label\":\"Time from the campsite (min)\",\"value\":\"35\"},{\"label\":\"Reservation\",\"value\":\"Recommended\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":3,\"featurable\":true,\"featured\":false,\"type\":\"activites\",\"name\":\"Visit of Aigues-Mortes\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a95795ae6ccd.png\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":15,\"min\":20,\"lat\":43.5675,\"lng\":4.1933333,\"tags\":[\"Culture\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Culture\"},{\"label\":\"Location\",\"value\":\"Aigues-Mortes, Gard\"},{\"label\":\"Description\",\"value\":\"Visit of the fortified town and its ramparts, very suitable for a half-day of discovery. The site allows combining heritage, strolling, and medieval atmosphere.\"},{\"label\":\"Price range\",\"value\":\"Paid depending on visits and access to ramparts\"},{\"label\":\"Opening dates \\\/ season\",\"value\":\"All year round\"},{\"label\":\"Distance from the campsite (km)\",\"value\":\"15\"},{\"label\":\"Time from the campsite (min)\",\"value\":\"20\"},{\"label\":\"Reservation\",\"value\":\"Non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":4,\"featurable\":true,\"featured\":false,\"type\":\"activites\",\"name\":\"Seaquarium of Grau-du-Roi\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a9579712628d.png\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":12,\"min\":20,\"lat\":43.527028,\"lng\":4.140885,\"tags\":[\"Family\",\"Paid\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Family\"},{\"label\":\"Location\",\"value\":\"Le Grau-du-Roi, H\\u00e9rault\"},{\"label\":\"Description\",\"value\":\"Ideal aquarium for a family outing, with Mediterranean marine species and areas suitable for children. It is one of the activities mentioned around Camping Bon Port.\"},{\"label\":\"Price range\",\"value\":\"Paid\"},{\"label\":\"Opening dates \\\/ season\",\"value\":\"Open according to the site's annual schedule\"},{\"label\":\"Distance from the campsite (km)\",\"value\":\"12\"},{\"label\":\"Time from the campsite (min)\",\"value\":\"20\"},{\"label\":\"Reservation\",\"value\":\"Advised during peak periods\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":5,\"featurable\":true,\"featured\":false,\"type\":\"activites\",\"name\":\"Lunel\",\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/app-builder\\\/38513c76-3023-4573-a9a9-f08fe2d27768.jpeg\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.674949,\"lng\":4.1352367,\"tags\":[\"Cultural\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Cultural\"},{\"label\":\"Location\",\"value\":\"Lunel (H\\u00e9rault)\"},{\"label\":\"Description\",\"value\":\"City with a history between the Mediterranean and the garrigue, known for its medieval heritage, Camargue traditions, muscats, and sites like the Prison Tower Museum. ([herault-tourisme.com](https:\\\/\\\/www.herault-tourisme.com\\\/fr\\\/decouvrir\\\/villes-et-villages-dans-lherault\\\/lunel\\\/))\"},{\"label\":\"Price range\",\"value\":\"Free to paid depending on visits and museums\"},{\"label\":\"Opening dates \\\/ season\",\"value\":\"All year round\"},{\"label\":\"Reservation\",\"value\":\"Non\"}],\"link\":\"https:\\\/\\\/www.ot-paysdelunel.fr\\\/12089-lunel.htm\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":21,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"Lou Casa, Barbara et Brel\",\"image\":\"https:\\\/\\\/www.grandpicsaintloup-tourisme.fr\\\/_objects\\\/tao_suite_agenda\\\/fma\\\/photos\\\/75027757-1322514097908288-5103157588510375936-n-54384.jpg\",\"credit\":\"Lou Casa\",\"description\":\"Brel\\u2019s and Barbara\\u2019s songs respond to one another, revealing an unexpected unity and sensitivity, as well as the artistic and friendship ties that connected them. Lou Casa adds its own rapport with the audience, in a sensitive and warm performance.\",\"city\":\"Saint-G\\u00e9ly-du-Fesc\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.693517,\"lng\":3.8073787,\"tags\":[],\"fields\":[{\"label\":\"Category\",\"value\":\"Concerts, music & festivals\"},{\"label\":\"City\",\"value\":\"Saint-G\\u00e9ly-du-Fesc\"},{\"label\":\"Postal code\",\"value\":\"34980\"}],\"link\":\"https:\\\/\\\/www.helloasso.com\\\/associations\\\/j-ai-rendez-vous-avec-vous\\\/evenements\\\/festival12nov26\",\"event\":\"Du 12\\\/11\\\/2026 \\u00e0 20:30 au 12\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":26,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"Christmas Market\",\"image\":\"https:\\\/\\\/www.grandpicsaintloup-tourisme.fr\\\/_objects\\\/tao_suite_agenda\\\/fma\\\/photos\\\/flyer-marche-de-noel-2026-54389-54407.png\",\"credit\":\"Mairie Sainte-Croix-de-Quintillargues\",\"description\":\"On November 22, Sainte-Croix-de-Quintillargues invites you to its Christmas Market at Espace Claude Saumade.\\n\\nDiscover many exhibitors in a festive atmosphere: gift ideas, treats, food and entertainment will set the pace for the day, including Christmas songs by the Magic Christmas Band.\\n\\nA friendly event for young and old in the heart of the village!\",\"city\":\"Sainte-Croix-de-Quintillargues\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.7738828,\"lng\":3.9105105,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Sainte-Croix-de-Quintillargues\"},{\"label\":\"Postal code\",\"value\":\"34270\"}],\"link\":\"https:\\\/\\\/mairie-saintecroixdequintillargues.fr\\\/\",\"event\":\"Du 22\\\/11\\\/2026 \\u00e0 10:00 au 22\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":28,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"Julia Kaulbach Exhibition\",\"image\":\"https:\\\/\\\/www.grandpicsaintloup-tourisme.fr\\\/_objects\\\/tao_suite_agenda\\\/fma\\\/photos\\\/affiche-projet-1-52111-52436.jpg\",\"credit\":\"\",\"description\":\"Julia Kaulbach, a German artist who lives and works in Sauve, presents a selection of her recent works at the Auberge du C\\u00e8dre in Lauret, from August 23 to November 14, 2026. Come meet her during the vernissage on Sunday, August 23 at 5 p.m. for a friendly moment and discover her oil paintings, watercolors, engravings, linocuts and works from her new acrylic series entitled \\u00ab Multiverses \\u00bb. In her work, traditional techniques meet a contemporary pictorial language. Many of her watercolors are created directly in the landscapes of the C\\u00e9vennes and even at the Auberge, while her large-format paintings explore themes such as perception, transformation and the invisible links between things. See you very soon for this beautiful encounter.\",\"city\":\"Lauret\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.8317394,\"lng\":3.8733294,\"tags\":[\"Exhibitions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Exhibitions\"},{\"label\":\"City\",\"value\":\"Lauret\"},{\"label\":\"Postal code\",\"value\":\"34270\"}],\"link\":\"http:\\\/\\\/auberge-du-cedre.com\\\/\",\"event\":\"Du 23\\\/08\\\/2026 au 14\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":6,\"featurable\":true,\"featured\":false,\"type\":\"activites\",\"name\":\"Marsillargues\",\"image\":\"\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":null,\"lng\":null,\"tags\":[\"Cultural\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Cultural\"},{\"label\":\"Location\",\"value\":\"Marsillargues (H\\u00e9rault)\"},{\"label\":\"Description\",\"value\":\"Typical Mediterranean village with rich heritage, castle, Paul Pastre Museum, church, temple, Boulet bridge, and listed arenas. ([ot-paysdelunel.fr](https:\\\/\\\/www.ot-paysdelunel.fr\\\/12091-marsillargues.htm?utm_source=openai))\"},{\"label\":\"Price range\",\"value\":\"Free to paid depending on sites\"},{\"label\":\"Opening dates \\\/ season\",\"value\":\"All year round\"},{\"label\":\"Reservation\",\"value\":\"Non\"}],\"link\":\"https:\\\/\\\/www.ot-paysdelunel.fr\\\/12091-marsillargues.htm\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":7,\"featurable\":true,\"featured\":false,\"type\":\"activites\",\"name\":\"Lunel-Viel\",\"image\":\"\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":null,\"lng\":null,\"tags\":[\"Cultural\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Cultural\"},{\"label\":\"Location\",\"value\":\"Lunel-Viel (H\\u00e9rault)\"},{\"label\":\"Description\",\"value\":\"Wineries village with a historic circuit, Gallo-Roman remains, town hall castle, and a superb orangery in a listed park. ([ot-paysdelunel.fr](https:\\\/\\\/www.ot-paysdelunel.fr\\\/12090-lunel-viel.htm?utm_source=openai))\"},{\"label\":\"Price range\",\"value\":\"Free to paid depending on visits\"},{\"label\":\"Opening dates \\\/ season\",\"value\":\"All year round\"},{\"label\":\"Reservation\",\"value\":\"Non\"}],\"link\":\"https:\\\/\\\/www.ot-paysdelunel.fr\\\/12090-lunel-viel.htm\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":8,\"featurable\":true,\"featured\":false,\"type\":\"activites\",\"name\":\"Villetelle\",\"image\":\"\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":null,\"lng\":null,\"tags\":[\"Cultural\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Cultural\"},{\"label\":\"Location\",\"value\":\"Villetelle (H\\u00e9rault)\"},{\"label\":\"Description\",\"value\":\"Village marked by the archaeological site of Ambrussum, with the Ambroix bridge, a museum, the oppidum, and discovery trails in garrigue. ([ot-paysdelunel.fr](https:\\\/\\\/www.ot-paysdelunel.fr\\\/12099-villetelle.htm?utm_source=openai))\"},{\"label\":\"Price range\",\"value\":\"Free to paid depending on the site\"},{\"label\":\"Opening dates \\\/ season\",\"value\":\"All year round\"},{\"label\":\"Reservation\",\"value\":\"Non\"}],\"link\":\"https:\\\/\\\/www.ot-paysdelunel.fr\\\/12099-villetelle.htm\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":9,\"featurable\":true,\"featured\":false,\"type\":\"activites\",\"name\":\"Saint-S\\u00e9ri\\u00e8s\",\"image\":\"\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":null,\"lng\":null,\"tags\":[\"Sport\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Sport\"},{\"label\":\"Location\",\"value\":\"Saint-S\\u00e9ri\\u00e8s (H\\u00e9rault)\"},{\"label\":\"Description\",\"value\":\"Vibrant village for outdoor activities, including canoeing, via ferrata, fishing, and hiking along the Vidourle river, with a view of La Roque. ([ot-paysdelunel.fr](https:\\\/\\\/www.ot-paysdelunel.fr\\\/12095-saint-series.htm?utm_source=openai))\"},{\"label\":\"Price range\",\"value\":\"Free to paid depending on activity\"},{\"label\":\"Opening dates \\\/ season\",\"value\":\"Throughout the year, weather permitting\"},{\"label\":\"Reservation\",\"value\":\"Oui\"}],\"link\":\"https:\\\/\\\/www.ot-paysdelunel.fr\\\/12095-saint-series.htm\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":10,\"featurable\":true,\"featured\":false,\"type\":\"activites\",\"name\":\"Saturargues\",\"image\":\"\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":null,\"lng\":null,\"tags\":[\"Nature\",\"Free\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Nature\"},{\"label\":\"Location\",\"value\":\"Saturargues (H\\u00e9rault)\"},{\"label\":\"Description\",\"value\":\"Ancient village surrounded by garrigue and woods, with walking trails and beautiful viewpoints of Pic Saint-Loup and the C\\u00e9vennes. ([ot-paysdelunel.fr](https:\\\/\\\/www.ot-paysdelunel.fr\\\/12096-saturargues.htm?utm_source=openai))\"},{\"label\":\"Price range\",\"value\":\"Free\"},{\"label\":\"Opening dates \\\/ season\",\"value\":\"All year round\"},{\"label\":\"Reservation\",\"value\":\"Non\"}],\"link\":\"https:\\\/\\\/www.ot-paysdelunel.fr\\\/12096-saturargues.htm\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":11,\"featurable\":true,\"featured\":false,\"type\":\"activites\",\"name\":\"V\\u00e9rargues\",\"image\":\"\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":null,\"lng\":null,\"tags\":[\"Gastronomy\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Gastronomy\"},{\"label\":\"Location\",\"value\":\"V\\u00e9rargues (Entre-Vignes, H\\u00e9rault)\"},{\"label\":\"Description\",\"value\":\"Village at the heart of Muscat de Lunel production, with wineries and typical wine estates. ([ot-paysdelunel.fr](https:\\\/\\\/www.ot-paysdelunel.fr\\\/12098-verargues-entre-vignes.htm?utm_source=openai))\"},{\"label\":\"Price range\",\"value\":\"Free to paid depending on tastings and visits\"},{\"label\":\"Opening dates \\\/ season\",\"value\":\"All year round, with seasonal viticulture activity\"},{\"label\":\"Reservation\",\"value\":\"Oui\"}],\"link\":\"https:\\\/\\\/www.ot-paysdelunel.fr\\\/12098-verargues-entre-vignes.htm\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":12,\"featurable\":true,\"featured\":false,\"type\":\"activites\",\"name\":\"Saussines\",\"image\":\"\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":null,\"lng\":null,\"tags\":[\"Cultural\",\"Free\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Cultural\"},{\"label\":\"Location\",\"value\":\"Saussines (H\\u00e9rault)\"},{\"label\":\"Description\",\"value\":\"Village built on an old priory, notable for its vintner houses, Saint-\\u00c9tienne church, and Gallo-Roman remains. ([ot-paysdelunel.fr](https:\\\/\\\/www.ot-paysdelunel.fr\\\/12097-saussines.htm?utm_source=openai))\"},{\"label\":\"Price range\",\"value\":\"Free\"},{\"label\":\"Opening dates \\\/ season\",\"value\":\"All year round\"},{\"label\":\"Reservation\",\"value\":\"Non\"}],\"link\":\"https:\\\/\\\/www.ot-paysdelunel.fr\\\/12097-saussines.htm\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":13,\"featurable\":true,\"featured\":false,\"type\":\"activites\",\"name\":\"Saint-Christol\",\"image\":\"\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":null,\"lng\":null,\"tags\":[\"Gastronomy\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Gastronomy\"},{\"label\":\"Location\",\"value\":\"Saint-Christol, Entre-Vignes (H\\u00e9rault)\"},{\"label\":\"Description\",\"value\":\"Historic wine village, known for its A.O.P. and IGP, its past as a relay on pilgrims' routes, and its wine tourism offer ViaVino. ([ot-paysdelunel.fr](https:\\\/\\\/www.ot-paysdelunel.fr\\\/12092-saint-christol-entre-vignes.htm?utm_source=openai))\"},{\"label\":\"Price range\",\"value\":\"Free to paid depending on activities\"},{\"label\":\"Opening dates \\\/ season\",\"value\":\"All year round\"},{\"label\":\"Reservation\",\"value\":\"Oui\"}],\"link\":\"https:\\\/\\\/www.ot-paysdelunel.fr\\\/12092-saint-christol-entre-vignes.htm\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":14,\"featurable\":true,\"featured\":false,\"type\":\"activites\",\"name\":\"Aigues-Mortes\",\"image\":\"\",\"credit\":\"\",\"description\":\"\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":null,\"lng\":null,\"tags\":[\"Cultural\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Cultural\"},{\"label\":\"Location\",\"value\":\"Aigues-Mortes (Gard)\"},{\"label\":\"Description\",\"value\":\"Destination near the Camargue, listed among the tourist attractions of the area around the Pays de Lunel, particularly for escapes between sea and nature. ([ot-paysdelunel.fr](https:\\\/\\\/www.ot-paysdelunel.fr\\\/tourinsoft\\\/ASCLAR034V52AROX\\\/12045-mas-de-la-comtesse.htm?utm_source=openai))\"},{\"label\":\"Price range\",\"value\":\"Free to paid depending on visits\"},{\"label\":\"Opening dates \\\/ season\",\"value\":\"All year round\"},{\"label\":\"Reservation\",\"value\":\"Non\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":15,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"BLMA VS CHARNAY\",\"image\":\"\",\"credit\":\"\",\"description\":\"Women's basketball league\\nBLMA from LATTES will face Charnay on 09 December 2026 at 8:00 p.m. at the Palais des Rencontres in Lattes.\\n\\nCome support your favorite team!\",\"city\":\"Lattes\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.5697073,\"lng\":3.9000634,\"tags\":[\"Sport & hiking\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Sport & hiking\"},{\"label\":\"City\",\"value\":\"Lattes\"},{\"label\":\"Postal code\",\"value\":\"34970\"}],\"link\":\"https:\\\/\\\/www.blma.fr\\\/\",\"event\":\"Du 09\\\/12\\\/2026 au 09\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":16,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"EOLIENNE RACE 2026\",\"image\":\"\",\"credit\":\"\",\"description\":\"Organized by the Coureurs de l\\u2019Eolienne, with the support of the City of Clapiers, the H\\u00e9rault Department and logistical assistance from H\\u00e9rault Sport, the 24th edition of the Foul\\u00e9es de l\\u2019Eolienne offers two races of 8 km and 14 km as well as a timed 7 km walk and a race for younger runners starting from Avenue Charles de Gaulle.\\n\\nRegistration fees, online until Friday 20 November, are 10 euros for the 8 km and the walk and 15 euros for the 14 km. An additional 2 euros on site.\\n\\nSchedule:\\n11:00 a.m. \\u2013 welcome \\u2013 bib collection - registration\\n1:30 p.m. \\u2013 Youth races\\n2:30 p.m. \\u2013 Timed walk\\n3:00 p.m. \\u2013 8 km and 14 km races\\n5:00 p.m. \\u2013 Prize ceremony at the H\\u00e9rault Sport podium vehicle\",\"city\":\"Clapiers\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.6564547,\"lng\":3.8838003,\"tags\":[\"Sport & randonn\\u00e9e\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Sport & randonn\\u00e9e\"},{\"label\":\"City\",\"value\":\"Clapiers\"},{\"label\":\"Postal code\",\"value\":\"34830\"}],\"link\":\"https:\\\/\\\/www.3wsport.com\\\/\",\"event\":\"Du 21\\\/11\\\/2026 au 21\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":17,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"P\\u00c9TROLE\",\"image\":\"\",\"credit\":\"\",\"description\":\"Sylvain Creuzevault takes on Pasolini\\u2019s explosive, unfinished and fragmented final novel, written shortly before his death and published long after. Catch it on December 10 and 11, duration 3h30 with a 20-minute intermission.\\n\\nIn a magma of information and virulent notes, we follow the misadventures of a man torn between his high public office in an hydrocarbons company, once fascist, and his private aspirations to a sexuality outside the norm. All of this unfolds amid the immense political, social and artistic tension of a world then tipping headlong into disgusting neo-liberalism, which in many respects resembles our own, the leaden years between 1970 and 1980, in Italy as elsewhere. The expression \\u201cto take it head-on\\u201d seems apt, so intensely do the actors bring Pasolini\\u2019s furious language to life and struggle with it...\\n\\nA whole novel pushed to its limits, in a prophetic and polemical visual poem that shakes up theatre and our perceptions.\\n\\nDuration 3h30 with 20min intermission\\n\\nThu Dec 10, 7:00 pm\\nFri Dec 11, 7:00 pm\",\"city\":\"Montpellier\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.6168088,\"lng\":3.9308567,\"tags\":[\"Shows & cinema\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Shows & cinema\"},{\"label\":\"City\",\"value\":\"Montpellier\"},{\"label\":\"Postal code\",\"value\":\"34000\"}],\"link\":\"https:\\\/\\\/book.montpellier-tourisme.fr\\\/fr\\\/voir-faire\\\/2888999\\\/th%C3%A9%C3%A2tre-des-13-vents-centre-dramatique-national-montpellie\\\/afficher-les-details\",\"event\":\"Du 10\\\/12\\\/2026 au 10\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":18,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"MONTPELLIER BASKET VS SAINT-VALLIER (NM2)\",\"image\":\"\",\"credit\":\"\",\"description\":\"USA NIGHT\\nMeet us on Saturday, November 14 at 8:30 pm at the Palais des Sports Pierre de Coubertin in Montpellier for an evening with a U.S. vibe!\\n\\nOn the agenda: basketball, entertainment and plenty to enjoy!\\n\\nThe Pompoms of ENSCM, our cheerleaders for the evening, will be there to keep the atmosphere going with several shows throughout the game.\\nBurgers and hot dogs will also be on sale.\\n\\nFor the occasion, wear your finest basketball jersey and dive into the atmosphere of this USA night!\\nWe are looking forward to welcoming lots of you to support Montpellier and share this evening with us!\\n\\nBy reservation\",\"city\":\"Montpellier\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.6381909,\"lng\":3.8140749,\"tags\":[\"Sports & hiking\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Sports & hiking\"},{\"label\":\"City\",\"value\":\"Montpellier\"},{\"label\":\"Postal code\",\"value\":\"34080\"}],\"link\":\"https:\\\/\\\/www.helloasso.com\\\/associations\\\/montpellier-basket-mosson\\\/evenements\\\/montpellier-basket-mosson-saint-vallier?utm_source=app_ha&utm_campaign=share_campaign_button&utm_medium=ios&utm_\",\"event\":\"Du 14\\\/11\\\/2026 au 14\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":19,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"Aimargues weekly market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Local produce market and flea market\",\"city\":\"Aimargues\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.686619,\"lng\":4.208336,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Aimargues\"},{\"label\":\"Postal code\",\"value\":\"30470\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":20,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"HANDBALL: MHB VS DUNKERQUE\",\"image\":\"\",\"credit\":\"\",\"description\":\"The FDI Stadium in Montpellier hosts the MHB \\\/ Dunkerque match on 13 November at 8:00 p.m. in the Daikin StarLigue!\\n\\nCome and support your favorite team!\",\"city\":\"Montpellier\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.6382899,\"lng\":3.8744048,\"tags\":[\"Sport & hiking\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Sport & hiking\"},{\"label\":\"City\",\"value\":\"Montpellier\"},{\"label\":\"Postal code\",\"value\":\"34090\"}],\"link\":\"https:\\\/\\\/www.montpellierhandball.com\\\/fr\\\/venir-au-match\\\/les-matchs-venir\",\"event\":\"Du 13\\\/11\\\/2026 au 13\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":22,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"MICHELE LAROQUE & KAD MERAD \\\"L'\\u00c2GE B\\u00caTE\\\"\",\"image\":\"\",\"credit\":\"\",\"description\":\"Benoit and Claire have just met, and they want to live their new love story to the fullest, without limits. Rebellious and free, they proudly embrace their love of sex, alcohol and football: they are the new sixty-somethings. They refuse to be boxed in by age. Despite their deeply rooted habits, they want to keep living like young people and have a blast. Welcome to their \\u201c\\u00e2ge b\\u00eate\\u201d.\\n\\nAccessible seating reservation\\njulie@adamconcerts.com\",\"city\":\"Montpellier\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.61216,\"lng\":3.93028,\"tags\":[\"Shows & cinema\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Shows & cinema\"},{\"label\":\"City\",\"value\":\"Montpellier\"},{\"label\":\"Postal code\",\"value\":\"34000\"}],\"link\":\"https:\\\/\\\/www.zenithsud-montpellier.com\\\/fr\\\/agenda\\\/theatre-humour\\\/michele-laroque-kad-merad\",\"event\":\"Du 11\\\/12\\\/2026 au 11\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":23,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"VERY IMPRO PEOPLE - GAZETTE CAF\\u00c9\",\"image\":\"\",\"credit\":\"\",\"description\":\"Three evenings of improvisation at Gazette Caf\\u00e9\\nIn November, Very Impro People take over Gazette Caf\\u00e9 for three dates dedicated to theatrical improvisation.\\n\\nCabaret, an original concept, or an improvised long-form story: each evening offers a different way to discover the troupe and share the unexpected with the artists.\\nOn the program\\n\\nFriday, November 13, 2026: Le Cabaret \\u2014 short, spontaneous scenes inspired by audience suggestions.\\nFriday, November 20, 2026: Carte Blanche \\u2014 the VIPs explore an original concept and a different way of improvising.\\nFriday, November 27, 2026: STORIES \\u2014 an improvised story, with a universe and characters created before the audience\\u2019s eyes.\\n\\nat 8:00 pm\\n\\nPrice: free admission, pay-what-you-want exit\\nBooking: strongly recommended, by email at vip.impro@gmail.com\",\"city\":\"Montpellier\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.6046079,\"lng\":3.8783711,\"tags\":[\"Shows & cinema\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Shows & cinema\"},{\"label\":\"City\",\"value\":\"Montpellier\"},{\"label\":\"Postal code\",\"value\":\"34000\"}],\"link\":\"\",\"event\":\"Du 13\\\/11\\\/2026 au 13\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":24,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"Calvisson weekly market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Every Sunday, the large square in Calvisson hosts a colorful market with many vendors, all year round.\",\"city\":\"Calvisson\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.786023,\"lng\":4.193234,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Calvisson\"},{\"label\":\"Postal code\",\"value\":\"30420\"}],\"link\":\"http:\\\/\\\/www.calvisson.com\\\/\",\"event\":\"Du 20\\\/07\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":25,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"ICE HOCKEY: VIPERS VS HCMP\",\"image\":\"\",\"credit\":\"\",\"description\":\"The Vipers host HCMP on November 14, 2026 at the V\\u00e9gapolis ice rink.\\nCome support your favorite team!\",\"city\":\"Montpellier\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.6030338,\"lng\":3.9152617,\"tags\":[\"Sport & hiking\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Sport & hiking\"},{\"label\":\"City\",\"value\":\"Montpellier\"},{\"label\":\"Postal code\",\"value\":\"34000\"}],\"link\":\"https:\\\/\\\/www.montpellier-vipers.com\\\/\",\"event\":\"Du 14\\\/11\\\/2026 au 14\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":27,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"Junas weekly market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Every Tuesday. The small market welcomes two local producers in the village center.\",\"city\":\"Junas\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.770828,\"lng\":4.120622,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Junas\"},{\"label\":\"Postal code\",\"value\":\"30250\"}],\"link\":\"https:\\\/\\\/www.junas.fr\\\/notre-village\\\/junas-pratique\\\/commerces\\\/joomlannuaire\\\/fiche\\\/14-le-petit-marche-du-mardi\\\/5-commerces.html\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 09:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":29,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"BLACK, JEWISH AND ONE-EYED, THE STORY OF SAMMY DAVIS\",\"image\":\"\",\"credit\":\"\",\"description\":\"Sammy Davis Jr. is extraordinary and constantly raises questions about identity. In a time when people are made to believe that they can only define themselves by a single criterion, this attitude is truly radical.\\n\\nTelling Sammy Davis Jr.'s story today is a necessity.\\n\\nIn a world where nuance has been forgotten, he turns it into a lesson for life.\\n\\nBlack, Jewish and One-Eyed \\u201cThe Story of Sammy Davis Jr.\\u201d\\n\\nHe is that child from Harlem\\n\\nHe is the one who was on stage from the age of 3\\n\\nHe is the one who knew war\\n\\nHe is the one who brought JFK to power\\n\\nHe is a friend of Frank Sinatra and Elvis Presley\\n\\nHe is an actor\\n\\nHe is a dancer\\n\\nHe is Hollywood\\n\\nHe is black, Jewish and one-eyed\\n\\nHe is Sammy Davis Jr.\\n\\nFriday 11 December 2026 at 8:00 p.m.\\n\\nMusical show\\nDuration: 1h10\\nAll audiences\",\"city\":\"Castelnau-le-Lez\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.6325874,\"lng\":3.8990258,\"tags\":[\"Spectacles & cin\\u00e9ma\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Spectacles & cin\\u00e9ma\"},{\"label\":\"City\",\"value\":\"Castelnau-le-Lez\"},{\"label\":\"Postal code\",\"value\":\"34170\"}],\"link\":\"https:\\\/\\\/lekiasma.vostickets.fr\\\/Billet\\\/FR\\\/representation-LE_KIASMA-35426-0.wb?REFID=DzUcAAAAAAAAAAAAFAA\",\"event\":\"Du 11\\\/12\\\/2026 au 11\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":30,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"THEATRE \\u201cMIRABEAU THE BOLD\\u201d\",\"image\":\"\",\"credit\":\"\",\"description\":\"by Les Rid O\\u2019Philes\\n\\nPrice: \\u20ac8, free for under 14s and subscription available\\n\\nChapelle Notre-Dame-de-la-Route\\n\\nInfo and bookings: www.billetweb.fr\\\/ridophiles-palavas-les-flots\",\"city\":\"Palavas-les-Flots\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.53454,\"lng\":3.951016,\"tags\":[\"Spectacles & cin\\u00e9ma\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Spectacles & cin\\u00e9ma\"},{\"label\":\"City\",\"value\":\"Palavas-les-Flots\"},{\"label\":\"Postal code\",\"value\":\"34250\"}],\"link\":\"https:\\\/\\\/www.billetweb.fr\\\/ridophiles-palavas-les-flots\",\"event\":\"Du 15\\\/11\\\/2026 au 15\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":31,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"WITH LITTLE LUGGAGE\",\"image\":\"\",\"credit\":\"\",\"description\":\"A chronicle of the events of the Spanish Civil War.\\n\\nThis show portrays the end of the Spanish Civil War, the exile and then the \\\"welcome\\\" and detention of these almost 500,000 refugees who were imprisoned in different camps in the south of France, just before the Second World War.\\n\\nIt follows a grandson who seeks to understand and his grandfather who will recount, from painful memory, his retirada and his life afterward.\\n\\nMore than a story about the retirada inspired by testimonies, it raises the question of heritage, from a humanist, political and historical perspective.\\n\\nDuration: 1h+30min discussion - From 12 years old\\nHistorical\",\"city\":\"Montpellier\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.6169362,\"lng\":3.8782244,\"tags\":[\"Shows & cinema\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Shows & cinema\"},{\"label\":\"City\",\"value\":\"Montpellier\"},{\"label\":\"Postal code\",\"value\":\"34090\"}],\"link\":\"https:\\\/\\\/beauxartstabard.fr\\\/spectacles-adultes\",\"event\":\"Du 19\\\/11\\\/2026 au 19\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":32,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"BLMA VS LANDERNEAU\",\"image\":\"\",\"credit\":\"\",\"description\":\"Women's basketball league\\nThe BLMA of LATTES will face Landerneau on 22 November 2026 at 3:30 p.m. at the Palais des Rencontres in Lattes.\\n\\nCome support your favorite team!\",\"city\":\"Lattes\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.5697073,\"lng\":3.9000634,\"tags\":[\"Sport & randonn\\u00e9e\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Sport & randonn\\u00e9e\"},{\"label\":\"City\",\"value\":\"Lattes\"},{\"label\":\"Postal code\",\"value\":\"34970\"}],\"link\":\"https:\\\/\\\/www.blma.fr\\\/\",\"event\":\"Du 22\\\/11\\\/2026 au 22\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":33,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"THE QUEENS OF BURLESQUE\",\"image\":\"\",\"credit\":\"\",\"description\":\"Humor and glamour in the purest tradition of American-style shows!\\n\\nA sparkling cabaret from which you\\u2019ll leave with stars in your eyes! Under the guidance of LILI CHANTILLY, famous burlesque striptease artist, accompanied by her cheerful troupe of dancers! For LILI CHANTILLY, passionate about Hollywood charm and the sophisticated world of the 1930s, burlesque striptease is an art, an art of costume, dance, and comedy that she is eager to share with you!\\n\\nReservation required\",\"city\":\"Montpellier\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.6137079,\"lng\":3.8787137,\"tags\":[\"Shows & cinema\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Shows & cinema\"},{\"label\":\"City\",\"value\":\"Montpellier\"},{\"label\":\"Postal code\",\"value\":\"34000\"}],\"link\":\"https:\\\/\\\/book.montpellier-tourisme.fr\\\/fr\\\/voir-faire\\\/2868270\\\/th%C3%A9%C3%A2tre-le-point-com%C3%A9die-les-reines-du-burlesque\\\/afficher-les-details?page=2&filter=c%3D58791%2C33858%2C32320%3Bd%3D20220408%7C99991231\",\"event\":\"Du 19\\\/11\\\/2026 au 19\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":34,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-203\",\"name\":\"THE ROOF OF THE WORLD\",\"image\":\"\",\"credit\":\"\",\"description\":\"Paris, 1945. Henry Vernot is looking for his brother, Antoine, who has vanished without a trace.\\n\\nThe only way to find Antoine is to get hold of a painting, or rather what is inside it... A victim of a past he would like to forget, the search for his brother will unearth a shameful truth that he would have liked to keep secret. Paris, 1945. It is the story of Antoine and Henry Vernot.\\n\\nDuration: 1h10 - From 12 years old\\nTheatre Thriller\",\"city\":\"Montpellier\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.6169362,\"lng\":3.8782244,\"tags\":[\"Shows & cinema\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Shows & cinema\"},{\"label\":\"City\",\"value\":\"Montpellier\"},{\"label\":\"Postal code\",\"value\":\"34090\"}],\"link\":\"https:\\\/\\\/book.montpellier-tourisme.fr\\\/fr\\\/voir-faire\\\/2881196\\\/th%C3%A9%C3%A2tre-beaux-arts-tabard\\\/afficher-les-details?filter=c%3D58791%2C33858%2C32320%3Bd%3D20220408%7C99991231\",\"event\":\"Du 27\\\/11\\\/2026 au 27\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":35,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"Aigues-Mortes\",\"image\":\"\",\"credit\":\"\",\"description\":\"Aigues-Mortes is a medieval town located in the Camargue region, famous for its well-preserved ramparts and historic towers.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.5767,\"lng\":4.2247,\"tags\":[],\"fields\":[{\"label\":\"Title\",\"value\":\"Aigues-Mortes\"},{\"label\":\"Population\",\"value\":\"8,000\"},{\"label\":\"Distance\",\"value\":\"15\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":36,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"N\\u00eemes\",\"image\":\"\",\"credit\":\"\",\"description\":\"N\\u00eemes is a city in southern France, renowned for its exceptional Roman heritage, including the N\\u00eemes arena and the Maison Carr\\u00e9e.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.8367,\"lng\":4.3601,\"tags\":[],\"fields\":[{\"label\":\"Title\",\"value\":\"N\\u00eemes\"},{\"label\":\"Population\",\"value\":\"150,000\"},{\"label\":\"Distance\",\"value\":\"25\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":37,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"V\\u00e9z\\u00e9nobres\",\"image\":\"\",\"credit\":\"\",\"description\":\"V\\u00e9z\\u00e9nobres is a charming medieval village perched on a hill, offering panoramic views and picturesque lanes.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":44.0425,\"lng\":4.0861,\"tags\":[],\"fields\":[{\"label\":\"Title\",\"value\":\"V\\u00e9z\\u00e9nobres\"},{\"label\":\"Population\",\"value\":\"2,000\"},{\"label\":\"Distance\",\"value\":\"30\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":38,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"Sommi\\u00e8res\",\"image\":\"\",\"credit\":\"\",\"description\":\"Sommi\\u00e8res is a small picturesque town crossed by the Vidourle, offering a lively Proven\\u00e7al market and medieval lanes.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.7267,\"lng\":4.1056,\"tags\":[],\"fields\":[{\"label\":\"Title\",\"value\":\"Sommi\\u00e8res\"},{\"label\":\"Population\",\"value\":\"3,000\"},{\"label\":\"Distance\",\"value\":\"12\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":39,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"Montpellier\",\"image\":\"\",\"credit\":\"\",\"description\":\"Montpellier is a dynamic city in Languedoc-Roussillon, known for its historic center, Place de la Com\\u00e9die, and the Arc de Triomphe.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.6117,\"lng\":3.8767,\"tags\":[],\"fields\":[{\"label\":\"Title\",\"value\":\"Montpellier\"},{\"label\":\"Population\",\"value\":\"290,000\"},{\"label\":\"Distance\",\"value\":\"20\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":40,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"Theatre performance \\\"La Fleur au Fusil\\\"\",\"image\":\"\",\"credit\":\"\",\"description\":\"Attend the performance of \\\"La Fleur au Fusil\\\" by the troupe of Amis du Th\\u00e9\\u00e2tre Populaire. A captivating tragicomedy.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.7075,\"lng\":4.0869,\"tags\":[],\"fields\":[{\"label\":\"Title\",\"value\":\"Theatre performance \\\"La Fleur au Fusil\\\"\"},{\"label\":\"Date\",\"value\":\"2026-11-24\"},{\"label\":\"Schedule\",\"value\":\"20:00\"},{\"label\":\"Location\",\"value\":\"Th\\u00e9\\u00e2tre de Lunel\"},{\"label\":\"Rate\",\"value\":\"Tickets available on site\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":41,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"15th Oenotrail of Lunellois\",\"image\":\"\",\"credit\":\"\",\"description\":\"Take part in the 15th edition of the Oenotrail of Lunellois, a running event combining sport and tasting of local wines. A must-see event for wine and nature lovers.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.7075,\"lng\":4.0869,\"tags\":[],\"fields\":[{\"label\":\"Title\",\"value\":\"15th Oenotrail of Lunellois\"},{\"label\":\"Date\",\"value\":\"2026-11-28\"},{\"label\":\"Schedule\",\"value\":\"08:00\"},{\"label\":\"Location\",\"value\":\"Sommi\\u00e8res\"},{\"label\":\"Rate\",\"value\":\"Prior registration required\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":42,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"Lunel Christmas Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Come celebrate the holiday season at the Lunel Christmas Market. Enjoy local artisan stalls, children's activities, and gastronomic specialties.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.7075,\"lng\":4.0869,\"tags\":[],\"fields\":[{\"label\":\"Title\",\"value\":\"Lunel Christmas Market\"},{\"label\":\"Date\",\"value\":\"2026-12-12\"},{\"label\":\"Schedule\",\"value\":\"10:00\"},{\"label\":\"Location\",\"value\":\"Place de la R\\u00e9publique, Lunel\"},{\"label\":\"Rate\",\"value\":\"Free entry\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":43,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"Theatre performance \\\"Les C\\u0153urs Andalous\\\"\",\"image\":\"\",\"credit\":\"\",\"description\":\"Come discover \\\"Les C\\u0153urs Andalous\\\", an emotional play performed by the troupe of Amis du Th\\u00e9\\u00e2tre Populaire.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.7075,\"lng\":4.0869,\"tags\":[],\"fields\":[{\"label\":\"Title\",\"value\":\"Theatre performance \\\"Les C\\u0153urs Andalous\\\"\"},{\"label\":\"Date\",\"value\":\"2026-12-15\"},{\"label\":\"Schedule\",\"value\":\"20:00\"},{\"label\":\"Location\",\"value\":\"Th\\u00e9\\u00e2tre de Lunel\"},{\"label\":\"Rate\",\"value\":\"Tickets available on site\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":44,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"Open house at Domaine des Hospitaliers\",\"image\":\"\",\"credit\":\"\",\"description\":\"Come and discover Domaine des Hospitaliers during this open house day. Enjoy a guided tour of the facilities and vineyards, with local wine tastings.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.7075,\"lng\":4.0869,\"tags\":[],\"fields\":[{\"label\":\"Title\",\"value\":\"Open house at Domaine des Hospitaliers\"},{\"label\":\"Date\",\"value\":\"2026-11-14\"},{\"label\":\"Schedule\",\"value\":\"10:00\"},{\"label\":\"Location\",\"value\":\"Domaine des Hospitaliers, Sommi\\u00e8res\"},{\"label\":\"Rate\",\"value\":\"Free entry\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":45,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"Tree climbing at Roc de Massereau in Sommi\\u00e8res\",\"image\":\"\",\"credit\":\"\",\"description\":\"Enjoy a day of tree climbing at Roc de Massereau, a treetop course suitable for all ages, located about 40 minutes by car from Camping Bon Port.\",\"city\":\"\",\"address\":\"D25, 30250 Sommi\\u00e8res\",\"km\":null,\"min\":null,\"lat\":43.7917,\"lng\":4.0514,\"tags\":[],\"fields\":[{\"label\":\"Title\",\"value\":\"Tree climbing at Roc de Massereau in Sommi\\u00e8res\"},{\"label\":\"Address\",\"value\":\"D25, 30250 Sommi\\u00e8res\"},{\"label\":\"Opening hours\",\"value\":\"March to November, 10 a.m. to 6 p.m.\"},{\"label\":\"Rates\",\"value\":\"From \\u20ac15 to \\u20ac25 depending on the course\"},{\"label\":\"Contact\",\"value\":\"Roc de Massereau: +33 4 66 80 85 29\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"What are the main activities offered at Camping Bon Port?\",\"answer\":\"Tree climbing is a sporting and fun activity available at Roc de Massereau.\"},{\"question\":\"What points of interest are near Camping Bon Port?\",\"answer\":\"The natural area around Sommi\\u00e8res offers a pleasant and safe setting for outdoor activities.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":46,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"Visit the fortified town of Aigues-Mortes\",\"image\":\"\",\"credit\":\"\",\"description\":\"Explore the medieval town of Aigues-Mortes, famous for its impressive ramparts, towers and rich history, 30 minutes by car from Camping Bon Port.\",\"city\":\"\",\"address\":\"Place Saint-Louis, 30220 Aigues-Mortes\",\"km\":null,\"min\":null,\"lat\":43.5616,\"lng\":4.1937,\"tags\":[],\"fields\":[{\"label\":\"Title\",\"value\":\"Visit the fortified town of Aigues-Mortes\"},{\"label\":\"Address\",\"value\":\"Place Saint-Louis, 30220 Aigues-Mortes\"},{\"label\":\"Opening hours\",\"value\":\"From 1 April to 30 September: 9 am-7 pm; From 1 October to 31 March: 10 am-5 pm\"},{\"label\":\"Rates\",\"value\":\"Ramparts entrance: \\u20ac8 adult, free under 18\"},{\"label\":\"Contact\",\"value\":\"Aigues-Mortes Tourist Office: +33 4 66 73 44 24\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"What are the main activities offered at Camping Bon Port?\",\"answer\":\"A visit to the fortified town of Aigues-Mortes is a must-do cultural activity.\"},{\"question\":\"What points of interest are near Camping Bon Port?\",\"answer\":\"The ramparts, medieval towers and the history of the town are major points of interest for visitors.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":47,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"Water sports at the nautical base on Grand Travers beach\",\"image\":\"\",\"credit\":\"\",\"description\":\"Enjoy canoeing, paddleboarding, diving, jet skiing or a boat trip from the nautical base near Camping Bon Port, located at Grand Travers beach between La Grande-Motte and Carnon.\",\"city\":\"\",\"address\":\"Plage du Grand Travers, 34280 La Grande-Motte\",\"km\":null,\"min\":null,\"lat\":43.5912,\"lng\":4.0443,\"tags\":[],\"fields\":[{\"label\":\"Title\",\"value\":\"Water sports at the nautical base on Grand Travers beach\"},{\"label\":\"Address\",\"value\":\"Plage du Grand Travers, 34280 La Grande-Motte\"},{\"label\":\"Opening hours\",\"value\":\"April to September, 9 a.m. to 7 p.m.\"},{\"label\":\"Rates\",\"value\":\"From \\u20ac10 to \\u20ac50 depending on the activity\"},{\"label\":\"Contact\",\"value\":\"La Grande-Motte nautical base: +33 4 67 56 34 26\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"What points of interest are near Camping Bon Port?\",\"answer\":\"Grand Travers beach is a supervised beach with free parking, ideal for swimming and water sports.\"},{\"question\":\"What are the main activities offered at Camping Bon Port?\",\"answer\":\"Various water activities such as canoeing, paddleboarding and diving are offered at the nautical base near the campsite.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":48,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"Pont de Gau Ornithological Park\",\"image\":\"\",\"credit\":\"\",\"description\":\"Discover the local wildlife and migratory birds in this natural park located in Les Saintes-Maries-de-la-Mer, a privileged visit for nature and biodiversity lovers.\",\"city\":\"\",\"address\":\"Route des Saintes Maries, 13460 Les Saintes-Maries-de-la-Mer\",\"km\":null,\"min\":null,\"lat\":43.5056,\"lng\":4.4291,\"tags\":[],\"fields\":[{\"label\":\"Title\",\"value\":\"Pont de Gau Ornithological Park\"},{\"label\":\"Address\",\"value\":\"Route des Saintes Maries, 13460 Les Saintes-Maries-de-la-Mer\"},{\"label\":\"Opening hours\",\"value\":\"Open every day from 9 am to 6 pm\"},{\"label\":\"Rates\",\"value\":\"\\u20ac10 adult, \\u20ac6 child\"},{\"label\":\"Contact\",\"value\":\"Pont de Gau Ornithological Park: +33 4 90 97 70 80\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"What points of interest are near Camping Bon Port?\",\"answer\":\"It is a recognized protected natural site, perfect for discovering the biodiversity of the Camargue.\"},{\"question\":\"What are the main activities offered at Camping Bon Port?\",\"answer\":\"The park offers birdwatching, guided walks, and nature awareness activities.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":49,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"Hiking and mountain biking in Petite Camargue\",\"image\":\"\",\"credit\":\"\",\"description\":\"Discover the hiking and mountain biking trails around Camping Bon Port, including the coastal routes of Petite Camargue and itineraries to the C\\u00e9vennes, suitable for all levels.\",\"city\":\"\",\"address\":\"383 Chemin Du Mas De Saint-Ange, 34400 Lunel\",\"km\":null,\"min\":null,\"lat\":43.629,\"lng\":4.243,\"tags\":[],\"fields\":[{\"label\":\"Title\",\"value\":\"Hiking and mountain biking in Petite Camargue\"},{\"label\":\"Address\",\"value\":\"383 Chemin Du Mas De Saint-Ange, 34400 Lunel\"},{\"label\":\"Opening hours\",\"value\":\"All year round, depending on weather conditions\"},{\"label\":\"Rates\",\"value\":\"Free\"},{\"label\":\"Contact\",\"value\":\"Lunel Tourist Office: +33 4 67 78 80 00\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"What are the points of interest near Camping Bon Port?\",\"answer\":\"Petite Camargue is a remarkable natural site nearby, ideal for nature lovers.\"},{\"question\":\"What are the main activities offered at Camping Bon Port?\",\"answer\":\"At Camping Bon Port, the main activities include hiking and mountain biking on the trails of Petite Camargue and towards the C\\u00e9vennes.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":50,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"Le Bistrot de Caro\",\"image\":\"\",\"credit\":\"\",\"description\":\"Restaurant offering contemporary French cuisine in a modern setting.\",\"city\":\"\",\"address\":\"4 Rue de la R\\u00e9publique, 34400 Lunel\",\"km\":null,\"min\":null,\"lat\":43.656118,\"lng\":4.142084,\"tags\":[\"Restaurant\"],\"fields\":[{\"label\":\"Title\",\"value\":\"Le Bistrot de Caro\"},{\"label\":\"Name of the establishment\",\"value\":\"Le Bistrot de Caro\"},{\"label\":\"Type of establishment\",\"value\":\"Restaurant\"},{\"label\":\"Address\",\"value\":\"4 Rue de la R\\u00e9publique, 34400 Lunel\"},{\"label\":\"Opening hours\",\"value\":\"From Tuesday to Saturday from 12:00 p.m. to 2:00 p.m. and from 7:00 p.m. to 10:00 p.m.\"},{\"label\":\"Website\",\"value\":\"https:\\\/\\\/www.facebook.com\\\/Le-Bistrot-de-Caro-345678901234567\\\/\"},{\"label\":\"Phone number\",\"value\":\"04 67 73 45 67\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"What are the opening hours of this establishment?\",\"answer\":\"From Tuesday to Saturday from 12:00 p.m. to 2:00 p.m. and from 7:00 p.m. to 10:00 p.m.\"},{\"question\":\"Is it necessary to book in advance for this establishment?\",\"answer\":\"Recommended.\"},{\"question\":\"What is the average price of a meal or a drink at this establishment?\",\"answer\":\"Menu from \\u20ac35.\"},{\"question\":\"Is this establishment accessible to people with reduced mobility?\",\"answer\":\"Accessible to people with reduced mobility.\"},{\"question\":\"What specialties are offered by this establishment?\",\"answer\":\"Contemporary French cuisine.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":51,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"Restaurant Bar Le National\",\"image\":\"\",\"credit\":\"\",\"description\":\"Traditional French restaurant-bar offering cuisine and themed evenings.\",\"city\":\"\",\"address\":\"6 Rue de la R\\u00e9publique, 34400 Lunel\",\"km\":null,\"min\":null,\"lat\":43.656118,\"lng\":4.142084,\"tags\":[\"Restaurant\"],\"fields\":[{\"label\":\"Title\",\"value\":\"Restaurant Bar Le National\"},{\"label\":\"Name of the establishment\",\"value\":\"Le National\"},{\"label\":\"Type of establishment\",\"value\":\"Restaurant\"},{\"label\":\"Address\",\"value\":\"6 Rue de la R\\u00e9publique, 34400 Lunel\"},{\"label\":\"Opening hours\",\"value\":\"From Tuesday to Saturday from 12:00 to 14:00 and from 19:00 to 22:00.\"},{\"label\":\"Website\",\"value\":\"https:\\\/\\\/www.facebook.com\\\/Restaurant-Bar-Le-National-567890123456789\\\/\"},{\"label\":\"Phone number\",\"value\":\"04 67 75 67 89\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"What are the opening hours of this establishment?\",\"answer\":\"From Tuesday to Saturday from 12:00 p.m. to 2:00 p.m. and from 7:00 p.m. to 10:00 p.m.\"},{\"question\":\"Is it necessary to book in advance for this establishment?\",\"answer\":\"Recommended.\"},{\"question\":\"What is the average price of a meal or a drink at this establishment?\",\"answer\":\"Menu from \\u20ac32.\"},{\"question\":\"Is this establishment accessible to people with reduced mobility?\",\"answer\":\"Accessible to people with reduced mobility.\"},{\"question\":\"What specialties does this establishment offer?\",\"answer\":\"Traditional French cuisine and themed evenings.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":52,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"La Soupe Os\\u00e9e Restaurant\",\"image\":\"\",\"credit\":\"\",\"description\":\"Restaurant offering traditional French cuisine in a warm atmosphere.\",\"city\":\"\",\"address\":\"2 Rue de la R\\u00e9publique, 34400 Lunel\",\"km\":null,\"min\":null,\"lat\":43.656118,\"lng\":4.142084,\"tags\":[\"Restaurant\"],\"fields\":[{\"label\":\"Title\",\"value\":\"La Soupe Os\\u00e9e Restaurant\"},{\"label\":\"Name of the establishment\",\"value\":\"La Soupe Os\\u00e9e\"},{\"label\":\"Type of establishment\",\"value\":\"Restaurant\"},{\"label\":\"Address\",\"value\":\"2 Rue de la R\\u00e9publique, 34400 Lunel\"},{\"label\":\"Opening hours\",\"value\":\"From Tuesday to Saturday from 12:00 to 2:00 pm and from 7:00 pm to 10:00 pm.\"},{\"label\":\"Website\",\"value\":\"https:\\\/\\\/www.facebook.com\\\/La-Soupe-Os\\u00e9e-104567890123456\\\/\"},{\"label\":\"Phone number\",\"value\":\"04 67 71 23 45\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"What are the opening hours of this establishment?\",\"answer\":\"From Tuesday to Saturday from 12:00 to 2:00 pm and from 7:00 pm to 10:00 pm.\"},{\"question\":\"What is the average price of a meal or a drink at this establishment?\",\"answer\":\"Menu starting at \\u20ac25.\"},{\"question\":\"Is it necessary to book in advance for this establishment?\",\"answer\":\"Recommended.\"},{\"question\":\"What specialties does this establishment offer?\",\"answer\":\"Traditional French cuisine.\"},{\"question\":\"Is this establishment accessible to people with reduced mobility?\",\"answer\":\"Accessible to people with reduced mobility.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":53,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"Restaurant L'Entracte\",\"image\":\"\",\"credit\":\"\",\"description\":\"Restaurant offering Mediterranean cuisine with local products.\",\"city\":\"\",\"address\":\"3 Rue de la R\\u00e9publique, 34400 Lunel\",\"km\":null,\"min\":null,\"lat\":43.656118,\"lng\":4.142084,\"tags\":[\"Restaurant\"],\"fields\":[{\"label\":\"Title\",\"value\":\"Restaurant L'Entracte\"},{\"label\":\"Name of the establishment\",\"value\":\"L'Entracte\"},{\"label\":\"Type of establishment\",\"value\":\"Restaurant\"},{\"label\":\"Address\",\"value\":\"3 Rue de la R\\u00e9publique, 34400 Lunel\"},{\"label\":\"Opening hours\",\"value\":\"From Tuesday to Saturday from 12:00 to 14:00 and from 19:00 to 22:00.\"},{\"label\":\"Website\",\"value\":\"https:\\\/\\\/www.facebook.com\\\/Restaurant-LEntracte-234567890123456\\\/\"},{\"label\":\"Phone number\",\"value\":\"04 67 72 34 56\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"What are the opening hours of this establishment?\",\"answer\":\"From Tuesday to Saturday from 12:00 to 14:00 and from 19:00 to 22:00.\"},{\"question\":\"What specialties does this establishment offer?\",\"answer\":\"Mediterranean cuisine with local products.\"},{\"question\":\"Is it necessary to book in advance for this establishment?\",\"answer\":\"Recommended.\"},{\"question\":\"What is the average price of a meal or drink in this establishment?\",\"answer\":\"Menu starting from \\u20ac30.\"},{\"question\":\"Is this establishment accessible to people with reduced mobility?\",\"answer\":\"Accessible to people with reduced mobility.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":54,\"featurable\":true,\"featured\":false,\"type\":\"infos-pratiques\",\"name\":\"Restaurant La Terrasse\",\"image\":\"\",\"credit\":\"\",\"description\":\"Restaurant offering traditional French cuisine with a pleasant terrace.\",\"city\":\"\",\"address\":\"5 Rue de la R\\u00e9publique, 34400 Lunel\",\"km\":null,\"min\":null,\"lat\":43.656118,\"lng\":4.142084,\"tags\":[\"Restaurant\"],\"fields\":[{\"label\":\"Title\",\"value\":\"Restaurant La Terrasse\"},{\"label\":\"Name of the establishment\",\"value\":\"La Terrasse\"},{\"label\":\"Type of establishment\",\"value\":\"Restaurant\"},{\"label\":\"Address\",\"value\":\"5 Rue de la R\\u00e9publique, 34400 Lunel\"},{\"label\":\"Opening hours\",\"value\":\"Tuesday to Saturday from 12:00 to 14:00 and from 19:00 to 22:00.\"},{\"label\":\"Website\",\"value\":\"https:\\\/\\\/www.facebook.com\\\/Restaurant-La-Terrasse-456789012345678\\\/\"},{\"label\":\"Phone number\",\"value\":\"04 67 74 56 78\"}],\"link\":\"\",\"event\":\"\",\"faq\":[{\"question\":\"What are the opening hours of this establishment?\",\"answer\":\"Tuesday to Saturday from 12:00 to 14:00 and from 19:00 to 22:00.\"},{\"question\":\"Is it necessary to book in advance for this establishment?\",\"answer\":\"Recommended.\"},{\"question\":\"What is the average price of a meal or a drink at this establishment?\",\"answer\":\"Menu from \\u20ac28.\"},{\"question\":\"What specialties are offered by this establishment?\",\"answer\":\"Traditional French cuisine.\"},{\"question\":\"Is this establishment accessible to people with reduced mobility?\",\"answer\":\"Accessible to people with reduced mobility.\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]}];\n    var CATS = {\"activites\":{\"key\":\"activites\",\"label\":\"Activities\",\"adhoc\":false,\"color\":\"#c2410c\",\"count\":15,\"image\":\"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a95799f5bb75.png\"},\"evenements-locaux-203\":{\"key\":\"evenements-locaux-203\",\"label\":\"Local events\",\"adhoc\":false,\"color\":\"#2563eb\",\"count\":20,\"image\":\"https:\\\/\\\/www.grandpicsaintloup-tourisme.fr\\\/_objects\\\/tao_suite_agenda\\\/fma\\\/photos\\\/75027757-1322514097908288-5103157588510375936-n-54384.jpg\"},\"infos-pratiques\":{\"key\":\"infos-pratiques\",\"label\":\"Practical information\",\"adhoc\":true,\"color\":\"#15803d\",\"count\":20,\"image\":\"\"}};\n    \/\/ Textes d'interface dans la langue de la page (includes\/i18n.php)\n    var T = {\"blog_read_more\":\"Read the article\",\"blog_empty\":\"No articles yet.\",\"blog_newer\":\"Newer articles\",\"blog_older\":\"Older articles\",\"blog_label\":\"Articles\",\"hero_title\":\"Things to discover nearby\",\"hero_text\":\"Villages, beaches, walks, good addresses and experiences selected around your stay.\",\"around\":\"Around\",\"search_placeholder\":\"Search for a place, an activity, a village\\u2026\",\"search\":\"Search\",\"max_distance\":\"Maximum distance\",\"all\":\"All\",\"prev_categories\":\"Previous categories\",\"next_categories\":\"Next categories\",\"categories\":\"Categories\",\"display\":\"Display\",\"list\":\"List\",\"map\":\"Map\",\"close\":\"Close\",\"featured\":\"Featured\",\"discover\":\"Discover\",\"idea\":\"idea\",\"ideas\":\"ideas\",\"around_you\":\"around you\",\"no_result\":\"No results\",\"no_result_hint\":\"Try another search, category or distance.\",\"pagination\":\"Ideas pagination\",\"prev_page\":\"Previous page\",\"next_page\":\"Next page\",\"ideas_title\":\"Ideas to suit your mood\",\"ideas_sub\":\"Suggestions to plan your perfect stay.\",\"reset_view\":\"Back to the overview\",\"map_hint\":\"Click a marker on the map to show its details here.\",\"official_site\":\"Official website\",\"video\":\"Video\",\"gallery\":\"Gallery\",\"documents\":\"Documents\",\"faq\":\"Frequently asked questions\",\"no_answer\":\"No answer yet.\",\"see_on_maps\":\"View on Google Maps\",\"see_place_on_maps\":\"View the campsite on Google Maps\",\"yes\":\"Yes\",\"no\":\"No\",\"practical_info\":\"Practical information\",\"reviews\":\"reviews\",\"read_more\":\"Read more\",\"prev_review\":\"Previous review\",\"next_review\":\"Next review\",\"prev_item\":\"Previous\",\"next_item\":\"Next\",\"photo_credit\":\"Photo: %s\",\"directions\":\"Directions\",\"read_less\":\"Show less\",\"article_in_this\":\"In this article\",\"article_toc\":\"Article contents\",\"see_original\":\"Automatically translated \\u00b7 See original\",\"see_translation\":\"See translation\",\"stars_out_of_5\":\"%s stars out of 5\",\"owner_reply\":\"Response from the owner\",\"customer\":\"Guest\",\"customer_reviews\":\"Guest reviews\",\"rating_label\":\"Rated %1$s out of 5, %2$s reviews \\u2014 see the reviews\",\"reviews_by\":\"Reviews presented by Elaia\",\"powered_by\":\"Powered by\",\"today\":\"Today\",\"today_lc\":\"today\",\"tomorrow\":\"Tomorrow\",\"until\":\"Until %s\",\"from_to\":\"From %1$s to %2$s\",\"registration\":\"Booking required\",\"full\":\"Full\",\"all_animations\":\"See all activities \\u2192\",\"ago_day\":\"%d day ago\",\"ago_days\":\"%d days ago\",\"ago_week\":\"%d week ago\",\"ago_weeks\":\"%d weeks ago\",\"ago_month\":\"%d month ago\",\"ago_months\":\"%d months ago\",\"ago_year\":\"%d year ago\",\"ago_years\":\"%d years ago\",\"anim_unavailable\":\"The programme is temporarily unavailable\",\"content_unavailable\":\"This content is temporarily unavailable\",\"anim_eyebrow\":\"Enjoy unforgettable moments\",\"anim_title\":\"Activities & events\",\"anim_hero_text\":\"Find all current activities, this week's highlights and upcoming events during your stay.\",\"anim_sections\":\"Page sections\",\"anim_nav_today\":\"Today\",\"anim_nav_week\":\"This week\",\"anim_nav_upcoming\":\"Upcoming\",\"anim_nav_calendar\":\"Calendar\",\"anim_where\":\"Where?\",\"anim_onsite\":\"On site\",\"anim_nearby\":\"Nearby\",\"anim_no_onsite\":\"No on-site activity at the moment\",\"anim_no_nearby\":\"No nearby event at the moment\",\"anim_all_day\":\"All day\",\"anim_at\":\"at %s\",\"anim_see_detail\":\"see details\",\"anim_live\":\"Ongoing\",\"anim_onsite_spot\":\"On site \\u00b7 %s\",\"anim_badge_until\":\"Until\",\"anim_badge_from\":\"From\",\"anim_badge_today\":\"Today\",\"anim_filter_cat\":\"Filter by category\",\"anim_all_f\":\"All\",\"anim_prev_day\":\"Previous day\",\"anim_next_day\":\"Next day\",\"anim_today_title\":\"Today's activities\",\"anim_tomorrow_title\":\"Tomorrow's activities\",\"anim_day_title\":\"Activities on %s\",\"anim_relax_today\":\"A relaxing day today\",\"anim_nothing_day\":\"Nothing planned that day\",\"anim_next_on\":\"Next event on %s.\",\"anim_soon\":\"The programme will be updated soon.\",\"anim_see_day\":\"See that day\",\"anim_prev_acts\":\"Previous activities\",\"anim_next_acts\":\"Next activities\",\"anim_prev_week\":\"Previous week\",\"anim_next_week\":\"Next week\",\"anim_week_title\":\"This week's highlights\",\"anim_next_week_title\":\"Next week\",\"anim_week_of\":\"Week of %s\",\"anim_week_days\":\"Days of the week\",\"anim_today_paren\":\"(today)\",\"anim_activity\":\"%d activity\",\"anim_activities\":\"%d activities\",\"anim_nothing\":\"nothing planned\",\"anim_pick_day\":\"Select another day to see its programme.\",\"anim_sort\":\"Sort events\",\"anim_sort_date\":\"Sort by date\",\"anim_sort_name\":\"Sort by name\",\"anim_upcoming_title\":\"All upcoming events\",\"anim_no_upcoming\":\"No upcoming events\",\"anim_try_cat\":\"Try another category.\",\"anim_more\":\"See more events (%d)\",\"anim_hide_cal\":\"Hide the calendar\",\"anim_show_cal\":\"See the full calendar\",\"anim_cal_title\":\"Monthly calendar\",\"anim_cal_sub\":\"All of the month's events at a glance.\",\"anim_prev_month\":\"Previous month\",\"anim_next_month\":\"Next month\",\"anim_more_info\":\"More information\",\"anim_new_tab\":\"(new tab)\",\"date_locale\":\"en-GB\",\"page_faq\":\"FAQ\",\"page_metadatas\":\"Discover around you\",\"page_animations\":\"Activities and events\",\"page_corpus\":\"Practical information\",\"anim_event\":\"Event\"};\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\":\"\\u00a9 <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-13517","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Discover around you - Camping Bon Port<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.campingbonport.com\/en\/elaia-metadatas\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Discover around you - Camping Bon Port\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.campingbonport.com\/en\/elaia-metadatas\/\" \/>\n<meta property=\"og:site_name\" content=\"Camping Bon Port\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.campingbonport.com\\\/en\\\/elaia-metadatas\\\/\",\"url\":\"https:\\\/\\\/www.campingbonport.com\\\/en\\\/elaia-metadatas\\\/\",\"name\":\"Discover around you - Camping Bon Port\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.campingbonport.com\\\/en\\\/#website\"},\"datePublished\":\"2026-11-12T12:31:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.campingbonport.com\\\/en\\\/elaia-metadatas\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.campingbonport.com\\\/en\\\/elaia-metadatas\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.campingbonport.com\\\/en\\\/elaia-metadatas\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Camping Camargue\",\"item\":\"https:\\\/\\\/www.campingbonport.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Discover around you\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.campingbonport.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.campingbonport.com\\\/en\\\/\",\"name\":\"Camping Bon Port\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.campingbonport.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.campingbonport.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.campingbonport.com\\\/en\\\/#organization\",\"name\":\"Camping Bon Port\",\"url\":\"https:\\\/\\\/www.campingbonport.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.campingbonport.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.campingbonport.com\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/logo-bon-port.jpg\",\"contentUrl\":\"https:\\\/\\\/www.campingbonport.com\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/logo-bon-port.jpg\",\"width\":736,\"height\":917,\"caption\":\"Camping Bon Port\"},\"image\":{\"@id\":\"https:\\\/\\\/www.campingbonport.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Discover around you - Camping Bon Port","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.campingbonport.com\/en\/elaia-metadatas\/","og_locale":"en_US","og_type":"article","og_title":"Discover around you - Camping Bon Port","og_url":"https:\/\/www.campingbonport.com\/en\/elaia-metadatas\/","og_site_name":"Camping Bon Port","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.campingbonport.com\/en\/elaia-metadatas\/","url":"https:\/\/www.campingbonport.com\/en\/elaia-metadatas\/","name":"Discover around you - Camping Bon Port","isPartOf":{"@id":"https:\/\/www.campingbonport.com\/en\/#website"},"datePublished":"2026-11-12T12:31:19+00:00","breadcrumb":{"@id":"https:\/\/www.campingbonport.com\/en\/elaia-metadatas\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.campingbonport.com\/en\/elaia-metadatas\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.campingbonport.com\/en\/elaia-metadatas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Camping Camargue","item":"https:\/\/www.campingbonport.com\/en\/"},{"@type":"ListItem","position":2,"name":"Discover around you"}]},{"@type":"WebSite","@id":"https:\/\/www.campingbonport.com\/en\/#website","url":"https:\/\/www.campingbonport.com\/en\/","name":"Camping Bon Port","description":"","publisher":{"@id":"https:\/\/www.campingbonport.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.campingbonport.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.campingbonport.com\/en\/#organization","name":"Camping Bon Port","url":"https:\/\/www.campingbonport.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.campingbonport.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.campingbonport.com\/wp-content\/uploads\/2021\/11\/logo-bon-port.jpg","contentUrl":"https:\/\/www.campingbonport.com\/wp-content\/uploads\/2021\/11\/logo-bon-port.jpg","width":736,"height":917,"caption":"Camping Bon Port"},"image":{"@id":"https:\/\/www.campingbonport.com\/en\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.campingbonport.com\/en\/wp-json\/wp\/v2\/pages\/13517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.campingbonport.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.campingbonport.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.campingbonport.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.campingbonport.com\/en\/wp-json\/wp\/v2\/comments?post=13517"}],"version-history":[{"count":1,"href":"https:\/\/www.campingbonport.com\/en\/wp-json\/wp\/v2\/pages\/13517\/revisions"}],"predecessor-version":[{"id":13518,"href":"https:\/\/www.campingbonport.com\/en\/wp-json\/wp\/v2\/pages\/13517\/revisions\/13518"}],"wp:attachment":[{"href":"https:\/\/www.campingbonport.com\/en\/wp-json\/wp\/v2\/media?parent=13517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}