{"id":11836,"date":"2026-10-20T22:46:25","date_gmt":"2026-10-20T20:46:25","guid":{"rendered":"https:\/\/www.uronea.com\/elaia-metadatas-2\/"},"modified":"2026-10-20T22:46:25","modified_gmt":"2026-10-20T20:46:25","slug":"elaia-metadatas","status":"publish","type":"page","link":"https:\/\/www.uronea.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\":\"Villes aux alentours\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Biarritz\",\"description\":\"Biarritz is an iconic seaside resort on the Basque Coast, known for its beaches and elegant atmosphere. This city is ideal for surfing and relaxing by the sea, also offering a rich cultural heritage.\",\"url\":\"https:\/\/www.biarritz.fr\",\"image\":\"https:\/\/www.uronea.com\/wp-content\/uploads\/2020\/11\/plage-biarritz.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.4832,\"longitude\":-1.5586},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de la ville\",\"value\":\"Biarritz\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de la ville (ville \/ villages \/ bourg...)\",\"value\":\"city\"},{\"@type\":\"PropertyValue\",\"name\":\"D\u00e9partement\",\"value\":\"Pyr\u00e9n\u00e9es-Atlantiques\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"5\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min)\",\"value\":\"10\"},{\"@type\":\"PropertyValue\",\"name\":\"Points d'int\u00e9r\u00eats\",\"value\":\"Vierge's Rock, Aquarium, Beaches, Casinos\"},{\"@type\":\"PropertyValue\",\"name\":\"Coups de coeur des g\u00e9rants\",\"value\":\"Sunset from Vierge's Rock\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"Saint-Jean-de-Luz\",\"description\":\"Saint-Jean-de-Luz is a renowned Basque port city famous for its old port, pedestrian streets, and historic buildings. It combines a lively maritime atmosphere with a rich cultural and gastronomic heritage.\",\"url\":\"https:\/\/www.saintjeandeluz-tourisme.com\",\"image\":\"https:\/\/www.uronea.com\/wp-content\/uploads\/2020\/11\/camping-bord-de-mer-bidart.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.3857,\"longitude\":-1.6562},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de la ville\",\"value\":\"Saint-Jean-de-Luz\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de la ville (ville \/ villages \/ bourg...)\",\"value\":\"city\"},{\"@type\":\"PropertyValue\",\"name\":\"D\u00e9partement\",\"value\":\"Pyr\u00e9n\u00e9es-Atlantiques\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"9\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min)\",\"value\":\"15\"},{\"@type\":\"PropertyValue\",\"name\":\"Points d'int\u00e9r\u00eats\",\"value\":\"Fishing port, Infante House, Beach, Covered market\"},{\"@type\":\"PropertyValue\",\"name\":\"Coups de coeur des g\u00e9rants\",\"value\":\"Local fish specialties and a walk along the port\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Bidart\",\"description\":\"Bidart is a charming Basque coastal village, located just 600 meters from Ur Onea campsite. It is renowned for its fine sandy beaches, friendly atmosphere, and picturesque heritage. Ideal for enjoying the sea and discovering local culture.\",\"url\":\"https:\/\/www.bidart-facile.com\",\"image\":\"https:\/\/www.uronea.com\/wp-content\/uploads\/2020\/12\/littoral-basque.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.4424,\"longitude\":-1.5666},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de la ville\",\"value\":\"Bidart\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de la ville (ville \/ villages \/ bourg...)\",\"value\":\"village\"},{\"@type\":\"PropertyValue\",\"name\":\"D\u00e9partement\",\"value\":\"Pyr\u00e9n\u00e9es-Atlantiques\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"0.6\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min)\",\"value\":\"5\"},{\"@type\":\"PropertyValue\",\"name\":\"Points d'int\u00e9r\u00eats\",\"value\":\"Beaches, Saint-Jean-Baptiste Church, coastal trails\"},{\"@type\":\"PropertyValue\",\"name\":\"Coups de coeur des g\u00e9rants\",\"value\":\"Walking along the beach and the Sunday morning local market\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Saint-Jean-Pied-de-Port\",\"description\":\"Saint-Jean-Pied-de-Port is a charming and renowned borough, starting point of the Camino de Santiago. It offers a picturesque medieval setting at the foot of the Pyrenees, between history and nature.\",\"url\":\"https:\/\/www.saintjeanpieddepart-tourisme.fr\",\"image\":\"https:\/\/www.uronea.com\/wp-content\/uploads\/2020\/11\/espelette-vacances.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.1637,\"longitude\":-1.2372},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de la ville\",\"value\":\"Saint-Jean-Pied-de-Port\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de la ville (ville \/ villages \/ bourg...)\",\"value\":\"borough\"},{\"@type\":\"PropertyValue\",\"name\":\"D\u00e9partement\",\"value\":\"Pyr\u00e9n\u00e9es-Atlantiques\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"35\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min)\",\"value\":\"40\"},{\"@type\":\"PropertyValue\",\"name\":\"Points d'int\u00e9r\u00eats\",\"value\":\"Citadel, Saint-Jacques Gate, paved alleys, hiking trails\"},{\"@type\":\"PropertyValue\",\"name\":\"Coups de coeur des g\u00e9rants\",\"value\":\"The medieval atmosphere and mountain views\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"Bayonne\",\"description\":\"Bayonne is a historic city known for its ramparts, medieval center, and rich Basque heritage. It is famous for its cuisine, including Bayonne ham, and numerous traditional festivals.\",\"url\":\"https:\/\/www.bayonne-tourisme.com\",\"image\":\"https:\/\/www.uronea.com\/wp-content\/uploads\/2020\/10\/bayonne.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.4925,\"longitude\":-1.4743},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de la ville\",\"value\":\"Bayonne\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de la ville (ville \/ villages \/ bourg...)\",\"value\":\"city\"},{\"@type\":\"PropertyValue\",\"name\":\"D\u00e9partement\",\"value\":\"Pyr\u00e9n\u00e9es-Atlantiques\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"14\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min)\",\"value\":\"20\"},{\"@type\":\"PropertyValue\",\"name\":\"Points d'int\u00e9r\u00eats\",\"value\":\"Ramparts, Sainte-Marie Cathedral, Basque Museum, Old Castle\"},{\"@type\":\"PropertyValue\",\"name\":\"Coups de coeur des g\u00e9rants\",\"value\":\"Medieval alleys and lively markets\"}]}}]},{\"@type\":\"ItemList\",\"name\":\"Service\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Service\",\"name\":\"Parking\",\"description\":\"A parking lot is available on site for camping guests, facilitating vehicle parking during the stay.\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom du service\",\"value\":\"Parking\"},{\"@type\":\"PropertyValue\",\"name\":\"Type (Laverie, Wifi, Sup\u00e9rette, Location mat\u00e9riel, Sant\u00e9, Transport, Divertissement\u2026)\",\"value\":\"Transport\"},{\"@type\":\"PropertyValue\",\"name\":\"Gratuit \/ Payant (oui\/non)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"Accessible PMR (Oui\/Non)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires d'ouverture\",\"value\":\"24\/7\"},{\"@type\":\"PropertyValue\",\"name\":\"Acc\u00e8s libre ou sur demande\",\"value\":\"Open access\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Service\",\"name\":\"Entertainment and leisure activities\",\"description\":\"The campsite offers various activities: creative workshops, face painting, circus, sports tournaments, lively evenings and shows for children and adults.\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom du service\",\"value\":\"Entertainment and leisure activities\"},{\"@type\":\"PropertyValue\",\"name\":\"Type (Laverie, Wifi, Sup\u00e9rette, Location mat\u00e9riel, Sant\u00e9, Transport, Divertissement\u2026)\",\"value\":\"Divertissement\"},{\"@type\":\"PropertyValue\",\"name\":\"Gratuit \/ Payant (oui\/non)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"Accessible PMR (Oui\/Non)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires d'ouverture\",\"value\":\"According to weekly schedule\"},{\"@type\":\"PropertyValue\",\"name\":\"Acc\u00e8s libre ou sur demande\",\"value\":\"Open access\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Service\",\"name\":\"Medical assistance and insurance\",\"description\":\"Medical assistance and insurance service offered in partnership with Mutuaide Assistance to cover guarantees in case of illness, accident, or repatriation.\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom du service\",\"value\":\"Medical assistance and insurance\"},{\"@type\":\"PropertyValue\",\"name\":\"Type (Laverie, Wifi, Sup\u00e9rette, Location mat\u00e9riel, Sant\u00e9, Transport, Divertissement\u2026)\",\"value\":\"Sant\u00e9\"},{\"@type\":\"PropertyValue\",\"name\":\"Gratuit \/ Payant (oui\/non)\",\"value\":\"non\"},{\"@type\":\"PropertyValue\",\"name\":\"Accessible PMR (Oui\/Non)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires d'ouverture\",\"value\":\"24\/7\"},{\"@type\":\"PropertyValue\",\"name\":\"Acc\u00e8s libre ou sur demande\",\"value\":\"On request\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Service\",\"name\":\"Refrigerator rental\",\"description\":\"Rental of approximately 100 L refrigerator without freezer, under a closed shelter, for the duration of the stay. Service offered with a daily rate.\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom du service\",\"value\":\"Refrigerator rental\"},{\"@type\":\"PropertyValue\",\"name\":\"Type (Laverie, Wifi, Sup\u00e9rette, Location mat\u00e9riel, Sant\u00e9, Transport, Divertissement\u2026)\",\"value\":\"Location mat\u00e9riel\"},{\"@type\":\"PropertyValue\",\"name\":\"Gratuit \/ Payant (oui\/non)\",\"value\":\"non\"},{\"@type\":\"PropertyValue\",\"name\":\"Accessible PMR (Oui\/Non)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires d'ouverture\",\"value\":\"According to reception hours\"},{\"@type\":\"PropertyValue\",\"name\":\"Acc\u00e8s libre ou sur demande\",\"value\":\"On request\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Service\",\"name\":\"Free Wi-Fi\",\"description\":\"The campsite offers free Wi-Fi service in rental accommodations and common areas to allow guests to stay easily connected.\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom du service\",\"value\":\"Free Wi-Fi\"},{\"@type\":\"PropertyValue\",\"name\":\"Type (Laverie, Wifi, Sup\u00e9rette, Location mat\u00e9riel, Sant\u00e9, Transport, Divertissement\u2026)\",\"value\":\"Wifi\"},{\"@type\":\"PropertyValue\",\"name\":\"Gratuit \/ Payant (oui\/non)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"Accessible PMR (Oui\/Non)\",\"value\":\"oui\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires d'ouverture\",\"value\":\"24\/7\"},{\"@type\":\"PropertyValue\",\"name\":\"Acc\u00e8s libre ou sur demande\",\"value\":\"Open access\"}]}}]},{\"@type\":\"ItemList\",\"name\":\"\u00c9v\u00e9nements locaux\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Exhibition \\\"Gu\u00e9thary and its history\\\"\",\"description\":\"Exhibition of 500 old postcards.\\nEvery Wednesday from 2 pm to 5 pm.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.4227254,\"longitude\":-1.6087443},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Exhibition \\\"Gu\u00e9thary and its history\\\"\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Exhibitions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Gu\u00e9thary\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64210\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"Nestor Basterretxea Exhibition\",\"description\":\"The theme of the exhibition is collages, drawings, and sculptures.\",\"url\":\"https:\/\/www.artebideak.com\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.38532,\"longitude\":-1.66784},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Nestor Basterretxea Exhibition\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Exhibitions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Ciboure\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64500\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Exposition PARCC : \\\" Brasilia\/Chandigarh \\\" de Louidgi Beltrame\",\"description\":\"Brasilia et Chandigarh. Deux capitales construites \u00e0 la fin des ann\u00e9es 1950, sur deux continents. D'un c\u00f4t\u00e9, la nouvelle capitale administrative du Br\u00e9sil con\u00e7ue par Oscar Niemeyer ; de l'autre, la ville imagin\u00e9e par Le Corbusier pour le Pendjab indien.\\n\\nVid\u00e9o de Louidgi Beltrame - dur\u00e9e : 26 mn\",\"url\":\"http:\/\/parcc.cc-macs.org\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.5957555,\"longitude\":-1.4295004},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Exposition PARCC : \\\" Brasilia\/Chandigarh \\\" de Louidgi Beltrame\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Expositions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Labenne\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"40530\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"PARCC Exhibition: \\\"Making Non-Border\\\" by Chourouk Hriech\",\"description\":\"\\\"Making Non-Border\\\" is an exhibition by Chourouk Hriech that explores the landscapes of Landes through the history of maritime pines, an emblematic figure of a territory shaped both by natural dynamics and human interventions. Drawing has always been at the heart of the artist's practice. It becomes a space where landscapes, architectures, cartographies, stories, and imaginaries meet. Based on research about the Landes forest, Chourouk Hriech offers a sensitive reading of the territory, seen as a living space traversed by migrations, memories, exchanges, and landscape transformations.\",\"url\":\"http:\/\/parcc.cc-macs.org\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.5957555,\"longitude\":-1.4295004},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"PARCC Exhibition: \\\"Making Non-Border\\\" by Chourouk Hriech\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Exhibitions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Labenne\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"40530\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"Exhibition \\\"Body and Ocean\\\" at Olatu\",\"description\":\"Drawings and paintings by amateur students from the Higher School of Art Basque Country.\\nExhibiting artists are volunteer students registered for drawing\/painting\/model life workshops, supervised by Benoit Pingeot, artist-teacher at the City of Arts in Bayonne.\\nToday, he invites his students to be actors in this beautiful research place that Olatu embodies, and we are invited to join the circle.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.521735,\"longitude\":-1.5029869},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Exhibition \\\"Body and Ocean\\\" at Olatu\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Exhibitions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Anglet\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64600\"}]}},{\"@type\":\"ListItem\",\"position\":6,\"item\":{\"@type\":\"Thing\",\"name\":\"Exposition h\u00f4tel Chantaco: Sandrine Jarrosson\",\"description\":\"Artiste peintre depuis plus de 21 ans au Pays Basque ,J\u2019expose mes \u0153uvres \u00e0 L\u2019h\u00f4tel Chantaco en partenariat avec la Galerie Murmuse-art\",\"url\":\"https:\/\/www.sandrinejarrosson.com\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.3808294,\"longitude\":-1.6408555},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Exposition h\u00f4tel Chantaco: Sandrine Jarrosson\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Expositions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Saint-Jean-de-Luz\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64500\"}]}},{\"@type\":\"ListItem\",\"position\":7,\"item\":{\"@type\":\"Thing\",\"name\":\"Photo exhibition \\\"On the hill of Akababyeyi\\\"\",\"description\":\"The 61 engineering students of ISA BTP involved in the Human\u2019Isa XXVI mission succeeded in their challenge: creating a preschool that allows hundreds of Rwandan children aged three to seven to start school in September. A beautiful adventure to see through a photo exhibition.\\n\\nThe fifth-year engineering students of ISA BTP in Anglet returned from Rwanda on April 9, with a sense of accomplishment and touching memories. \\\"It was a beautiful adventure,\\\" says Justine Pouyaut, co-president of the Human\u2019Isa XXVI association. In the village of Akababyeyi, in the Kigali region, they built a preschool group where hundreds of children - some vulnerable and orphaned - started school in September. It was their final engineering project: designing a construction project from A to Z.\",\"url\":\"https:\/\/www.humanisa.org\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.4764579,\"longitude\":-1.5085873},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Photo exhibition \\\"On the hill of Akababyeyi\\\"\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Expositions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Anglet\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64600\"}]}},{\"@type\":\"ListItem\",\"position\":8,\"item\":{\"@type\":\"Thing\",\"name\":\"Automne au restaurant\",\"description\":\"Durant cette semaine, nombreux restaurants du Sud-Labourd participent \u00e0 l'op\u00e9ration \\\"L'Automne au Restaurant\\\" en proposant des menus \u00e0 prix fixes.\\nProfitez de cette occasion pour (re)d\u00e9couvrir les restaurants : Les Chasseurs et Trabenia \u00e0 Ascain.\",\"url\":\"https:\/\/www.en-pays-basque.fr\/lautomne-au-restaurant\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.3446201,\"longitude\":-1.6211654},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Automne au restaurant\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Autres \u00e9v\u00e9nements\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Ascain\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64310\"}]}},{\"@type\":\"ListItem\",\"position\":9,\"item\":{\"@type\":\"Thing\",\"name\":\"Exposition au didam: Terres de silence\",\"description\":\"Figure reconnue de la sc\u00e8ne artistique bayonnaise, fascinant par une imagerie minutieuse et onirique, Evelyne H\u00e9risson pratique un art de l'architecture et du volume, habit\u00e9 de motifs humains ou naturels faisant r\u00e9f\u00e9rence au temps qui passe. Cette exposition propose un parcours de peintures et dessins, dont une importante partie a \u00e9t\u00e9 con\u00e7ue sp\u00e9cialement pour le Didam, \u00e9crin \u00e9ph\u00e9m\u00e8re de sa cr\u00e9ation.\",\"url\":\"https:\/\/didam.bayonne.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.4959078,\"longitude\":-1.4719288},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Exposition au didam: Terres de silence\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Expositions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Bayonne\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64100\"}]}},{\"@type\":\"ListItem\",\"position\":10,\"item\":{\"@type\":\"Thing\",\"name\":\"Autumn at the restaurant\",\"description\":\"During this week, many restaurants in South-Labourd participate in the \\\"Autumn at the Restaurant\\\" campaign by offering fixed-price menus.\\nTake this opportunity to (re)discover the restaurants: Kafia and Arraya in Sare.\",\"url\":\"https:\/\/www.en-pays-basque.fr\/lautomne-au-restaurant\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.3127075,\"longitude\":-1.5793099},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Autumn at the restaurant\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Other events\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Sare\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64310\"}]}},{\"@type\":\"ListItem\",\"position\":11,\"item\":{\"@type\":\"Thing\",\"name\":\"Exposition Itzalek diotena, ce que disent les ombres\",\"description\":\"\u00abItzalek diotena\u00bb \/ \u00abCe que disent les ombres\u00bb rassemble des photographies, vid\u00e9os et \u00e9crits \\npo\u00e9tiques dans une continuit\u00e9 visuelle et th\u00e9matique qui unit la lumi\u00e8re et l'obscurit\u00e9, le cycle \\nterrestre du jour et de la nuit, l'image photographique et le son musical. \\nDans cette exposition, Ihintza-Chlo\u00eb Hargous Aranburu pr\u00e9sente des photographies d'artefacts \\narchitecturaux, des variations de couleurs murales et des inscriptions graphiques qui s'av\u00e8rent \u00eatre \\ndes lettres, des chiffres, des mots et des signes parfois crypt\u00e9s. Image apr\u00e8s image, on \u00e9tablit des \\nliens entre les diff\u00e9rents \u00e9l\u00e9ments, des \u00e9chos apparaissent \u00e0 l'int\u00e9rieur d'une s\u00e9rie qui \u00e9volue dans \\nune grande lumi\u00e8re qui laisse peu de place \u00e0 l'ombre. Un tournant s'op\u00e8re dans la s\u00e9rie quand \\nl'obscurit\u00e9 s'installe; l'image est boulevers\u00e9e.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.3621933,\"longitude\":-1.6995029},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Exposition Itzalek diotena, ce que disent les ombres\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Expositions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Urrugne\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64122\"}]}},{\"@type\":\"ListItem\",\"position\":12,\"item\":{\"@type\":\"Thing\",\"name\":\"Exposition de Chouette Plume\",\"description\":\"The small wall of the Zoom Artiste du Point Com hosts Chouette Plume and her colorful Posca drawings. At the center of the work: an onomatopoeia! Hop, Pschittt, Wow, Chuuuut... so many funny sounds that inspire this artist crazy about words and manga. Small illustrative elements mixed with shapes, in a zentangle style, enrich the drawing. \\nA fresh and joyful universe to discover at the Point Com (tourist office \\u0026 shared space) from Monday to Friday from 10 am to 1 pm and from 2 pm to 6 pm.\",\"url\":\"https:\/\/www.instagram.com\/lachouetteplume\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.5637679,\"longitude\":-1.4457155},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Exposition de Chouette Plume\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Exhibitions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Ondres\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"40440\"}]}},{\"@type\":\"ListItem\",\"position\":13,\"item\":{\"@type\":\"Thing\",\"name\":\"Temporary Exhibition - Wilhelm Von Humbolt and the Basque Country in 1800\",\"description\":\"Wilhelm von Humboldt (1767-1835), linguist, philosopher, and Prussian high official, visited the Basque Country in 1801 for two months of investigation and meetings, on both sides of the border, after having previously studied all the knowledge accumulated on the history and language of this territory. This immersion was documented in a memoir, Die Vasken (The Basques), published long after his death, in the 20th century, and translated into French for the first time in 2025.\\nThe exhibition, designed in partnership with the \u00c9cole d\u2019Art du Pays Basque and the Euskampus Foundation, invites visitors to dive into the Basque Country of 1800 seen through Wilhelm von Humboldt\u2019s eyes, encountering landscapes, people, and ideas. A historical journey that helps illuminate the present.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.4911279,\"longitude\":-1.4738194},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Temporary Exhibition - Wilhelm Von Humbolt and the Basque Country in 1800\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Exhibitions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Bayonne\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64100\"}]}},{\"@type\":\"ListItem\",\"position\":14,\"item\":{\"@type\":\"Thing\",\"name\":\"Markets in Biarritz\",\"description\":\"At the halls:\\nCovered market: Every day from 7:30 am to 2 pm\\nTextile and decor market (outdoor): Every day from Easter to All Saints from 8:30 am to 2 pm\\nProducer's market (outdoor): Saturdays from 7:30 am to 1 pm\\nCraftsmen's market (outdoor): Every day (July-August, except Saturday) from 8:30 am to 2 pm\\nWithin neighborhoods:\\nFood market: Wednesdays from 9 am to 1 pm at Saint-Martin\\nFridays from 9 am to 1 pm at Saint-Charles\\nArtistic meetings: Second Saturday of each month from 10 am to 6 pm at Place Saint-Charles\\nCraftsmen's market: Third Friday of each month from 3 pm to 10 pm at Iraty neighborhood, Halle Darla\\nNight markets:\\nWednesdays and Fridays from 7 pm to midnight at Port des P\u00eacheurs\\nTuesdays from 7 pm to 11 pm at Docks de Biarritz\",\"url\":\"http:\/\/www.halles-biarritz.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.48103,\"longitude\":-1.56151},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Markets in Biarritz\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Biarritz\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64200\"}]}},{\"@type\":\"ListItem\",\"position\":15,\"item\":{\"@type\":\"Thing\",\"name\":\"Outdoor Exhibition: Evolution of Biarritz from 1952 - 2024\",\"description\":\"The City of Biarritz offers a traveling open-air exhibition in districts to explore the history of Biarritz through old and contemporary aerial photographs from IGN, in partnership with the Le Pachyderme Cultural association.\\nNine sites will display, each for nearly a month, photographs taken in 1952 and 2024, symbols of the evolution and transformation of the town, district by district. This exhibition aims to highlight local heritage, intergenerational transmission, education, and awareness of territorial development. Each photograph is accompanied by a historical text describing the territorial situation of the time and today, enriched with anecdotes about infrastructure such as businesses, stadiums, schools, etc.\",\"url\":\"https:\/\/www.biarritz.fr\/les-actualites\/actualite\/expo-en-plein-air-evolution-de-biarritz-1952-2024\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.4831519,\"longitude\":-1.558626},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Outdoor Exhibition: Evolution of Biarritz from 1952 - 2024\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Exhibitions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Biarritz\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64200\"}]}},{\"@type\":\"ListItem\",\"position\":16,\"item\":{\"@type\":\"Thing\",\"name\":\"Participative Artwork: Atuna\",\"description\":\"An emblematic figure of the maritime economy and heritage of the bay, tuna embodies history, skills, and memories linked to fishing. It reminds us that heritage is built and transmitted across generations.\\nAs part of the 10th anniversary of the label, the CIAP hosts Atuna, a participative artwork created by Cilourien sculptor Blaise Guirao.\\nEach visitor is invited to take part in this collective creation by inscribing a word evoking maritime heritage, thus helping to keep and share this common memory.\",\"url\":\"https:\/\/boutique.otpaysbasque.com\/sites-et-musees\/centre-interpretation-architecture-et-patrimoine-ciboure\/visite-libre-ciap\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.38526,\"longitude\":-1.665491},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Participative Artwork: Atuna\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Other events\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Ciboure\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64500\"}]}},{\"@type\":\"ListItem\",\"position\":17,\"item\":{\"@type\":\"Thing\",\"name\":\"Neptune's Number at the Biarritz Aquarium\",\"description\":\"Discover Neptune's Number by Good Bye Hippocrate. This new immersive installation combines illustration and video to explore the myths of the Ocean. Dive into a unique universe inhabited by a kleptomaniac octopus, a machine room homage to Jules Verne, flying jellyfish, and Neptune's Cabaret: an aquatic show where a seahorse passionate about pole dancing and a troupe of shrimps bring to life a revue as fanciful as poetic.\",\"url\":\"https:\/\/www.destination-biarritz.fr\/loisir\/aquarium-de-biarritz\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.4621347,\"longitude\":-1.5722815},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Neptune's Number at the Biarritz Aquarium\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Family\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Biarritz\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64200\"}]}},{\"@type\":\"ListItem\",\"position\":18,\"item\":{\"@type\":\"Thing\",\"name\":\"Temporary Exhibition at the Bonnat-Helleu Museum - Mythologies\",\"description\":\"The first temporary exhibition since the reopening of the Bonnat-Helleu Museum in Bayonne, 'Mythologies' brings to dialogue the great founding narratives that traverse human history, from Pharaonic Egypt to modern Japan, and from Ancient Greece to the Basque Mountains. Designed in partnership with the Louvre Museum and with the exceptional participation of the Quai Branly -Jacques Chirac Museum, it gathers nearly a hundred works from all eras and continents. How was the world created? What powers inhabit it? How do heroines and heroes manage to influence its destiny? These are the essential questions our myths attempt to answer. 'Mythologies' offers an unprecedented dialogue between these figures and stories, where for the first time the Pyrenean worlds and major Mediterranean traditions meet.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.4920757,\"longitude\":-1.4721566},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Temporary Exhibition at the Bonnat-Helleu Museum - Mythologies\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Exhibitions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Bayonne\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64100\"}]}},{\"@type\":\"ListItem\",\"position\":19,\"item\":{\"@type\":\"Thing\",\"name\":\"Exposition au mus\u00e9e historique : Lumi\u00e8res du Sud\",\"description\":\"On the occasion of the centenary of Joseph Saint-Germier's death, Lumi\u00e8res du Sud offers the first retrospective dedicated to this Toulouse artist. Trained in Paris with Alexandre Cabanel and L\u00e9on Bonnat, he achieved success by the late 19th century through his participation in the Salon and his distinction at the 1900 World's Fair.\\nHis work, blending academic tradition and modernity, stands out for luminous paintings inspired by his travels in Europe and North Africa. The exhibition notably highlights his views of Venice, famous for their play of light and vibrant atmospheres, as well as his depictions of the South and the Basque Country.\\nThrough a selection of major works, Lumi\u00e8res du Sud invites rediscovery of a painter recognized during his lifetime, still largely unknown today.\",\"url\":\"https:\/\/www.musee-historique-biarritz.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.48148,\"longitude\":-1.562797},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Exposition au mus\u00e9e historique : Lumi\u00e8res du Sud\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Expositions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Biarritz\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64200\"}]}},{\"@type\":\"ListItem\",\"position\":20,\"item\":{\"@type\":\"Thing\",\"name\":\"Exhibition: The Label, Already 10 Years!\",\"description\":\"On the occasion of the 10th anniversary of the label, the Pays d\u2019art et d\u2019histoire de Saint-Jean-de-Luz et Ciboure invites you to discover the exhibition \u00ab Already 10 Years! \u00bb. \\nThis retrospective highlights the actions carried out since 2016: visits, exhibitions, workshops, meetings, and cultural projects that have contributed to bringing the heritage of the territory to life and sharing it.\\nAn exhibition to relive a decade of commitment and transmission of local history.\\nOpen Tuesday to Friday from 2 pm to 6 pm and Saturday from 10 am to 1 pm and 2 pm to 6 pm.\\nExhibition from March 28 to October 31.\",\"url\":\"https:\/\/boutique.otpaysbasque.com\/sites-et-musees\/centre-interpretation-architecture-et-patrimoine-ciboure\/visite-libre-ciap\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.38526,\"longitude\":-1.665491},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Exhibition: The Label, Already 10 Years!\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Expositions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Ciboure\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64500\"}]}},{\"@type\":\"ListItem\",\"position\":21,\"item\":{\"@type\":\"Thing\",\"name\":\"Exhibition: Municipal Biodiversity Atlas\",\"description\":\"Starting May 20, the Natural History Museum invites you to an immersive adventure into local biodiversity.\\nThis new exhibition offers a journey through the ecosystems of Bayonne: forests, urban environments, wetlands... not forgetting nocturnal nature, often little known.\\nDesigned for all audiences, it includes a rich and participatory program: naturalist outings, conferences, collectible card games, and a traveling version that will circulate in several cultural venues around the city.\",\"url\":\"https:\/\/www.bayonne.fr\/cest-a-bayonne\/a-decouvrir\/la-plaine-dansot-et-le-museum-dhistoire-naturelle-de-bayonne\/le-museum-dhistoire-naturelle-de-bayonne\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.4766684,\"longitude\":-1.4725537},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Exhibition: Municipal Biodiversity Atlas\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Other events\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Bayonne\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64100\"}]}},{\"@type\":\"ListItem\",\"position\":22,\"item\":{\"@type\":\"Thing\",\"name\":\"The Wildlife Odyssey Exhibition, an Underwater Photography Immersion\",\"description\":\"The City of the Ocean hosts a brand new photography exhibition titled The Wildlife Odyssey, created by Romain Barats and C\u00e9cile Gabillon Barats. \\nThrough 19 underwater shots, these two Toulouse-based doctors turned photographers and explorers of the marine world share their view on marine biodiversity.\",\"url\":\"https:\/\/www.destination-biarritz.fr\/patrimoine-culturel\/la-cite-de-locean\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.4621347,\"longitude\":-1.5722815},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"The Wildlife Odyssey Exhibition, an Underwater Photography Immersion\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Exhibitions\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Biarritz\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64200\"}]}},{\"@type\":\"ListItem\",\"position\":23,\"item\":{\"@type\":\"Thing\",\"name\":\"Automne au restaurant\",\"description\":\"Durant cette semaine, de nombreux restaurants du Sud Labourd participent \u00e0 l'op\u00e9ration \\\"L'Automne au Restaurant\\\" en proposant des menus \u00e0 prix fixes.\\nProfitez de cette occasion pour (re)d\u00e9couvrir les restaurants Ahoa et l'Auberge Lukaina \u00e0 Urrugne.\",\"url\":\"https:\/\/www.en-pays-basque.fr\/lautomne-au-restaurant\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.3621695,\"longitude\":-1.6992691},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Automne au restaurant\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Autres \u00e9v\u00e9nements\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Urrugne\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"64122\"}]}}]}]}<\/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.uronea.com\/wp-content\/uploads\/2020\/11\/plage-biarritz.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 Ur-Onea<\/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>Biarritz<\/strong> \u2014 Biarritz is an iconic seaside resort on the Basque Coast, known for its beaches and elegant atmosphere. This city is ideal for surfing and relaxing by the sea, also offering&hellip;<\/li>\n              <li><strong>Saint-Jean-de-Luz<\/strong> \u2014 Saint-Jean-de-Luz is a renowned Basque port city famous for its old port, pedestrian streets, and historic buildings. It combines a lively maritime atmosphere with a rich cultural and gastronomic heritage.<\/li>\n              <li><strong>Bidart<\/strong> \u2014 Bidart is a charming Basque coastal village, located just 600 meters from Ur Onea campsite. It is renowned for its fine sandy beaches, friendly atmosphere, and picturesque heritage. Ideal for&hellip;<\/li>\n              <li><strong>Saint-Jean-Pied-de-Port<\/strong> \u2014 Saint-Jean-Pied-de-Port is a charming and renowned borough, starting point of the Camino de Santiago. It offers a picturesque medieval setting at the foot of the Pyrenees, between history and nature.<\/li>\n              <li><strong>Bayonne<\/strong> \u2014 Bayonne is a historic city known for its ramparts, medieval center, and rich Basque heritage. It is famous for its cuisine, including Bayonne ham, and numerous traditional festivals.<\/li>\n              <li><strong>Parking<\/strong> \u2014 A parking lot is available on site for camping guests, facilitating vehicle parking during the stay.<\/li>\n              <li><strong>Entertainment and leisure activities<\/strong> \u2014 The campsite offers various activities: creative workshops, face painting, circus, sports tournaments, lively evenings and shows for children and adults.<\/li>\n              <li><strong>Medical assistance and insurance<\/strong> \u2014 Medical assistance and insurance service offered in partnership with Mutuaide Assistance to cover guarantees in case of illness, accident, or repatriation.<\/li>\n              <li><strong>Refrigerator rental<\/strong> \u2014 Rental of approximately 100 L refrigerator without freezer, under a closed shelter, for the duration of the stay. Service offered with a daily rate.<\/li>\n              <li><strong>Free Wi-Fi<\/strong> \u2014 The campsite offers free Wi-Fi service in rental accommodations and common areas to allow guests to stay easily connected.<\/li>\n              <li><strong>Exhibition &quot;Gu\u00e9thary and its history&quot;<\/strong> \u2014 Exhibition of 500 old postcards. Every Wednesday from 2 pm to 5 pm.<\/li>\n              <li><strong>Nestor Basterretxea Exhibition<\/strong> \u2014 The theme of the exhibition is collages, drawings, and sculptures.<\/li>\n              <li><strong>Exposition PARCC : &quot; Brasilia\/Chandigarh &quot; de Louidgi Beltrame<\/strong> \u2014 Brasilia et Chandigarh. Deux capitales construites \u00e0 la fin des ann\u00e9es 1950, sur deux continents. D&#039;un c\u00f4t\u00e9, la nouvelle capitale administrative du Br\u00e9sil con\u00e7ue par Oscar Niemeyer ; de l&#039;autre,&hellip;<\/li>\n              <li><strong>PARCC Exhibition: &quot;Making Non-Border&quot; by Chourouk Hriech<\/strong> \u2014 &quot;Making Non-Border&quot; is an exhibition by Chourouk Hriech that explores the landscapes of Landes through the history of maritime pines, an emblematic figure of a territory shaped both by natural&hellip;<\/li>\n              <li><strong>Exhibition &quot;Body and Ocean&quot; at Olatu<\/strong> \u2014 Drawings and paintings by amateur students from the Higher School of Art Basque Country. Exhibiting artists are volunteer students registered for drawing\/painting\/model life workshops, supervised by Benoit Pingeot, artist-teacher at&hellip;<\/li>\n              <li><strong>Exposition h\u00f4tel Chantaco: Sandrine Jarrosson<\/strong> \u2014 Artiste peintre depuis plus de 21 ans au Pays Basque ,J\u2019expose mes \u0153uvres \u00e0 L\u2019h\u00f4tel Chantaco en partenariat avec la Galerie Murmuse-art<\/li>\n              <li><strong>Photo exhibition &quot;On the hill of Akababyeyi&quot;<\/strong> \u2014 The 61 engineering students of ISA BTP involved in the Human\u2019Isa XXVI mission succeeded in their challenge: creating a preschool that allows hundreds of Rwandan children aged three to seven&hellip;<\/li>\n              <li><strong>Automne au restaurant<\/strong> \u2014 Durant cette semaine, nombreux restaurants du Sud-Labourd participent \u00e0 l&#039;op\u00e9ration &quot;L&#039;Automne au Restaurant&quot; en proposant des menus \u00e0 prix fixes. Profitez de cette occasion pour (re)d\u00e9couvrir les restaurants : Les&hellip;<\/li>\n              <li><strong>Exposition au didam: Terres de silence<\/strong> \u2014 Figure reconnue de la sc\u00e8ne artistique bayonnaise, fascinant par une imagerie minutieuse et onirique, Evelyne H\u00e9risson pratique un art de l&#039;architecture et du volume, habit\u00e9 de motifs humains ou naturels&hellip;<\/li>\n              <li><strong>Autumn at the restaurant<\/strong> \u2014 During this week, many restaurants in South-Labourd participate in the &quot;Autumn at the Restaurant&quot; campaign by offering fixed-price menus. Take this opportunity to (re)discover the restaurants: Kafia and Arraya in&hellip;<\/li>\n              <li><strong>Exposition Itzalek diotena, ce que disent les ombres<\/strong> \u2014 \u00abItzalek diotena\u00bb \/ \u00abCe que disent les ombres\u00bb rassemble des photographies, vid\u00e9os et \u00e9crits po\u00e9tiques dans une continuit\u00e9 visuelle et th\u00e9matique qui unit la lumi\u00e8re et l&#039;obscurit\u00e9, le cycle terrestre&hellip;<\/li>\n              <li><strong>Exposition de Chouette Plume<\/strong> \u2014 The small wall of the Zoom Artiste du Point Com hosts Chouette Plume and her colorful Posca drawings. At the center of the work: an onomatopoeia! Hop, Pschittt, Wow, Chuuuut...&hellip;<\/li>\n              <li><strong>Temporary Exhibition - Wilhelm Von Humbolt and the Basque Country in 1800<\/strong> \u2014 Wilhelm von Humboldt (1767-1835), linguist, philosopher, and Prussian high official, visited the Basque Country in 1801 for two months of investigation and meetings, on both sides of the border, after&hellip;<\/li>\n              <li><strong>Markets in Biarritz<\/strong> \u2014 At the halls: Covered market: Every day from 7:30 am to 2 pm Textile and decor market (outdoor): Every day from Easter to All Saints from 8:30 am to 2&hellip;<\/li>\n              <li><strong>Outdoor Exhibition: Evolution of Biarritz from 1952 - 2024<\/strong> \u2014 The City of Biarritz offers a traveling open-air exhibition in districts to explore the history of Biarritz through old and contemporary aerial photographs from IGN, in partnership with the Le&hellip;<\/li>\n              <li><strong>Participative Artwork: Atuna<\/strong> \u2014 An emblematic figure of the maritime economy and heritage of the bay, tuna embodies history, skills, and memories linked to fishing. It reminds us that heritage is built and transmitted&hellip;<\/li>\n              <li><strong>Neptune&#039;s Number at the Biarritz Aquarium<\/strong> \u2014 Discover Neptune&#039;s Number by Good Bye Hippocrate. This new immersive installation combines illustration and video to explore the myths of the Ocean. Dive into a unique universe inhabited by a&hellip;<\/li>\n              <li><strong>Temporary Exhibition at the Bonnat-Helleu Museum - Mythologies<\/strong> \u2014 The first temporary exhibition since the reopening of the Bonnat-Helleu Museum in Bayonne, &#039;Mythologies&#039; brings to dialogue the great founding narratives that traverse human history, from Pharaonic Egypt to modern&hellip;<\/li>\n              <li><strong>Exposition au mus\u00e9e historique : Lumi\u00e8res du Sud<\/strong> \u2014 On the occasion of the centenary of Joseph Saint-Germier&#039;s death, Lumi\u00e8res du Sud offers the first retrospective dedicated to this Toulouse artist. Trained in Paris with Alexandre Cabanel and L\u00e9on&hellip;<\/li>\n              <li><strong>Exhibition: The Label, Already 10 Years!<\/strong> \u2014 On the occasion of the 10th anniversary of the label, the Pays d\u2019art et d\u2019histoire de Saint-Jean-de-Luz et Ciboure invites you to discover the exhibition \u00ab Already 10 Years! \u00bb.&hellip;<\/li>\n              <li><strong>Exhibition: Municipal Biodiversity Atlas<\/strong> \u2014 Starting May 20, the Natural History Museum invites you to an immersive adventure into local biodiversity. This new exhibition offers a journey through the ecosystems of Bayonne: forests, urban environments,&hellip;<\/li>\n              <li><strong>The Wildlife Odyssey Exhibition, an Underwater Photography Immersion<\/strong> \u2014 The City of the Ocean hosts a brand new photography exhibition titled The Wildlife Odyssey, created by Romain Barats and C\u00e9cile Gabillon Barats. Through 19 underwater shots, these two Toulouse-based&hellip;<\/li>\n              <li><strong>Automne au restaurant<\/strong> \u2014 Durant cette semaine, de nombreux restaurants du Sud Labourd participent \u00e0 l&#039;op\u00e9ration &quot;L&#039;Automne au Restaurant&quot; en proposant des menus \u00e0 prix fixes. Profitez de cette occasion pour (re)d\u00e9couvrir les restaurants&hellip;<\/li>\n          <\/ul>\n  <\/noscript>\n<\/div>\n\n<div class=\"mv-modal-overlay\" id=\"mv-modal\" hidden>\n  <div class=\"mv-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"mv-modal-title\">\n    <button type=\"button\" class=\"mv-modal-close\" id=\"mv-modal-close\" aria-label=\"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,\"type\":\"villes-aux-alentours\",\"name\":\"Biarritz\",\"image\":\"https:\\\/\\\/www.uronea.com\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/plage-biarritz.jpg\",\"credit\":\"\",\"description\":\"Biarritz is an iconic seaside resort on the Basque Coast, known for its beaches and elegant atmosphere. This city is ideal for surfing and relaxing by the sea, also offering a rich cultural heritage.\",\"city\":\"\",\"address\":\"\",\"km\":5,\"min\":10,\"lat\":43.4832,\"lng\":-1.5586,\"tags\":[],\"fields\":[{\"label\":\"Nom de la ville\",\"value\":\"Biarritz\"},{\"label\":\"Type de la ville (ville \\\/ villages \\\/ bourg...)\",\"value\":\"city\"},{\"label\":\"D\\u00e9partement\",\"value\":\"Pyr\\u00e9n\\u00e9es-Atlantiques\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"5\"},{\"label\":\"Temps de route depuis le camping (min)\",\"value\":\"10\"},{\"label\":\"Points d'int\\u00e9r\\u00eats\",\"value\":\"Vierge's Rock, Aquarium, Beaches, Casinos\"},{\"label\":\"Coups de coeur des g\\u00e9rants\",\"value\":\"Sunset from Vierge's Rock\"}],\"link\":\"https:\\\/\\\/www.biarritz.fr\",\"event\":\"\",\"faq\":[{\"question\":\"Are there essential shops?\",\"answer\":\"\"},{\"question\":\"What is the best time to visit the city?\",\"answer\":\"\"},{\"question\":\"Where to eat without making mistakes?\",\"answer\":\"\"},{\"question\":\"Where to park easily?\",\"answer\":\"\"},{\"question\":\"Is the city center accessible to PWD and strollers?\",\"answer\":\"\"},{\"question\":\"What to do when it rains in the city?\",\"answer\":\"\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":1,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Saint-Jean-de-Luz\",\"image\":\"https:\\\/\\\/www.uronea.com\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/camping-bord-de-mer-bidart.jpg\",\"credit\":\"\",\"description\":\"Saint-Jean-de-Luz is a renowned Basque port city famous for its old port, pedestrian streets, and historic buildings. It combines a lively maritime atmosphere with a rich cultural and gastronomic heritage.\",\"city\":\"\",\"address\":\"\",\"km\":9,\"min\":15,\"lat\":43.3857,\"lng\":-1.6562,\"tags\":[],\"fields\":[{\"label\":\"Nom de la ville\",\"value\":\"Saint-Jean-de-Luz\"},{\"label\":\"Type de la ville (ville \\\/ villages \\\/ bourg...)\",\"value\":\"city\"},{\"label\":\"D\\u00e9partement\",\"value\":\"Pyr\\u00e9n\\u00e9es-Atlantiques\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"9\"},{\"label\":\"Temps de route depuis le camping (min)\",\"value\":\"15\"},{\"label\":\"Points d'int\\u00e9r\\u00eats\",\"value\":\"Fishing port, Infante House, Beach, Covered market\"},{\"label\":\"Coups de coeur des g\\u00e9rants\",\"value\":\"Local fish specialties and a walk along the port\"}],\"link\":\"https:\\\/\\\/www.saintjeandeluz-tourisme.com\",\"event\":\"\",\"faq\":[{\"question\":\"Are there essential shops?\",\"answer\":\"\"},{\"question\":\"What is the best time to visit the city?\",\"answer\":\"\"},{\"question\":\"Where to eat without making mistakes?\",\"answer\":\"\"},{\"question\":\"Where to park easily?\",\"answer\":\"\"},{\"question\":\"Is the city center accessible for disabled persons and strollers?\",\"answer\":\"\"},{\"question\":\"What to do when it rains in the city?\",\"answer\":\"\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":2,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Bidart\",\"image\":\"https:\\\/\\\/www.uronea.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/littoral-basque.jpg\",\"credit\":\"\",\"description\":\"Bidart is a charming Basque coastal village, located just 600 meters from Ur Onea campsite. It is renowned for its fine sandy beaches, friendly atmosphere, and picturesque heritage. Ideal for enjoying the sea and discovering local culture.\",\"city\":\"\",\"address\":\"\",\"km\":0.6,\"min\":5,\"lat\":43.4424,\"lng\":-1.5666,\"tags\":[],\"fields\":[{\"label\":\"Nom de la ville\",\"value\":\"Bidart\"},{\"label\":\"Type de la ville (ville \\\/ villages \\\/ bourg...)\",\"value\":\"village\"},{\"label\":\"D\\u00e9partement\",\"value\":\"Pyr\\u00e9n\\u00e9es-Atlantiques\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"0.6\"},{\"label\":\"Temps de route depuis le camping (min)\",\"value\":\"5\"},{\"label\":\"Points d'int\\u00e9r\\u00eats\",\"value\":\"Beaches, Saint-Jean-Baptiste Church, coastal trails\"},{\"label\":\"Coups de coeur des g\\u00e9rants\",\"value\":\"Walking along the beach and the Sunday morning local market\"}],\"link\":\"https:\\\/\\\/www.bidart-facile.com\",\"event\":\"\",\"faq\":[{\"question\":\"Are there essential shops?\",\"answer\":\"\"},{\"question\":\"What is the best time to visit the city?\",\"answer\":\"\"},{\"question\":\"Where to eat without making a mistake?\",\"answer\":\"\"},{\"question\":\"Where to park easily?\",\"answer\":\"\"},{\"question\":\"Is the town center accessible to PWD and strollers?\",\"answer\":\"\"},{\"question\":\"What to do when it rains in the city?\",\"answer\":\"\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":3,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Saint-Jean-Pied-de-Port\",\"image\":\"https:\\\/\\\/www.uronea.com\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/espelette-vacances.jpg\",\"credit\":\"\",\"description\":\"Saint-Jean-Pied-de-Port is a charming and renowned borough, starting point of the Camino de Santiago. It offers a picturesque medieval setting at the foot of the Pyrenees, between history and nature.\",\"city\":\"\",\"address\":\"\",\"km\":35,\"min\":40,\"lat\":43.1637,\"lng\":-1.2372,\"tags\":[],\"fields\":[{\"label\":\"Nom de la ville\",\"value\":\"Saint-Jean-Pied-de-Port\"},{\"label\":\"Type de la ville (ville \\\/ villages \\\/ bourg...)\",\"value\":\"borough\"},{\"label\":\"D\\u00e9partement\",\"value\":\"Pyr\\u00e9n\\u00e9es-Atlantiques\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"35\"},{\"label\":\"Temps de route depuis le camping (min)\",\"value\":\"40\"},{\"label\":\"Points d'int\\u00e9r\\u00eats\",\"value\":\"Citadel, Saint-Jacques Gate, paved alleys, hiking trails\"},{\"label\":\"Coups de coeur des g\\u00e9rants\",\"value\":\"The medieval atmosphere and mountain views\"}],\"link\":\"https:\\\/\\\/www.saintjeanpieddepart-tourisme.fr\",\"event\":\"\",\"faq\":[{\"question\":\"Are there any essential shops?\",\"answer\":\"\"},{\"question\":\"What is the best time to visit the city?\",\"answer\":\"\"},{\"question\":\"Where to eat without going wrong?\",\"answer\":\"\"},{\"question\":\"Where to park easily?\",\"answer\":\"\"},{\"question\":\"Is the city center accessible to PWD and strollers?\",\"answer\":\"\"},{\"question\":\"What to do when it rains in the city?\",\"answer\":\"\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":4,\"featurable\":true,\"type\":\"villes-aux-alentours\",\"name\":\"Bayonne\",\"image\":\"https:\\\/\\\/www.uronea.com\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/bayonne.jpg\",\"credit\":\"\",\"description\":\"Bayonne is a historic city known for its ramparts, medieval center, and rich Basque heritage. It is famous for its cuisine, including Bayonne ham, and numerous traditional festivals.\",\"city\":\"\",\"address\":\"\",\"km\":14,\"min\":20,\"lat\":43.4925,\"lng\":-1.4743,\"tags\":[],\"fields\":[{\"label\":\"Nom de la ville\",\"value\":\"Bayonne\"},{\"label\":\"Type de la ville (ville \\\/ villages \\\/ bourg...)\",\"value\":\"city\"},{\"label\":\"D\\u00e9partement\",\"value\":\"Pyr\\u00e9n\\u00e9es-Atlantiques\"},{\"label\":\"Distance depuis le camping (km)\",\"value\":\"14\"},{\"label\":\"Temps de route depuis le camping (min)\",\"value\":\"20\"},{\"label\":\"Points d'int\\u00e9r\\u00eats\",\"value\":\"Ramparts, Sainte-Marie Cathedral, Basque Museum, Old Castle\"},{\"label\":\"Coups de coeur des g\\u00e9rants\",\"value\":\"Medieval alleys and lively markets\"}],\"link\":\"https:\\\/\\\/www.bayonne-tourisme.com\",\"event\":\"\",\"faq\":[{\"question\":\"Are there essential shops?\",\"answer\":\"\"},{\"question\":\"When is the best time to visit the city?\",\"answer\":\"\"},{\"question\":\"Where to eat without making a mistake?\",\"answer\":\"\"},{\"question\":\"Where to park easily?\",\"answer\":\"\"},{\"question\":\"Is the city center accessible for disabled persons and strollers?\",\"answer\":\"\"},{\"question\":\"What to do when it rains in the city?\",\"answer\":\"\"}],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":5,\"featurable\":false,\"type\":\"service\",\"name\":\"Parking\",\"image\":\"\",\"credit\":\"\",\"description\":\"A parking lot is available on site for camping guests, facilitating vehicle parking during the stay.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":null,\"lng\":null,\"tags\":[],\"fields\":[{\"label\":\"Nom du service\",\"value\":\"Parking\"},{\"label\":\"Type (Laverie, Wifi, Sup\\u00e9rette, Location mat\\u00e9riel, Sant\\u00e9, Transport, Divertissement\\u2026)\",\"value\":\"Transport\"},{\"label\":\"Gratuit \\\/ Payant (oui\\\/non)\",\"value\":\"oui\"},{\"label\":\"Accessible PMR (Oui\\\/Non)\",\"value\":\"oui\"},{\"label\":\"Horaires d'ouverture\",\"value\":\"24\\\/7\"},{\"label\":\"Acc\\u00e8s libre ou sur demande\",\"value\":\"Open access\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":6,\"featurable\":false,\"type\":\"service\",\"name\":\"Entertainment and leisure activities\",\"image\":\"\",\"credit\":\"\",\"description\":\"The campsite offers various activities: creative workshops, face painting, circus, sports tournaments, lively evenings and shows for children and adults.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":null,\"lng\":null,\"tags\":[],\"fields\":[{\"label\":\"Nom du service\",\"value\":\"Entertainment and leisure activities\"},{\"label\":\"Type (Laverie, Wifi, Sup\\u00e9rette, Location mat\\u00e9riel, Sant\\u00e9, Transport, Divertissement\\u2026)\",\"value\":\"Divertissement\"},{\"label\":\"Gratuit \\\/ Payant (oui\\\/non)\",\"value\":\"oui\"},{\"label\":\"Accessible PMR (Oui\\\/Non)\",\"value\":\"oui\"},{\"label\":\"Horaires d'ouverture\",\"value\":\"According to weekly schedule\"},{\"label\":\"Acc\\u00e8s libre ou sur demande\",\"value\":\"Open access\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":7,\"featurable\":false,\"type\":\"service\",\"name\":\"Medical assistance and insurance\",\"image\":\"\",\"credit\":\"\",\"description\":\"Medical assistance and insurance service offered in partnership with Mutuaide Assistance to cover guarantees in case of illness, accident, or repatriation.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":null,\"lng\":null,\"tags\":[],\"fields\":[{\"label\":\"Nom du service\",\"value\":\"Medical assistance and insurance\"},{\"label\":\"Type (Laverie, Wifi, Sup\\u00e9rette, Location mat\\u00e9riel, Sant\\u00e9, Transport, Divertissement\\u2026)\",\"value\":\"Sant\\u00e9\"},{\"label\":\"Gratuit \\\/ Payant (oui\\\/non)\",\"value\":\"non\"},{\"label\":\"Accessible PMR (Oui\\\/Non)\",\"value\":\"oui\"},{\"label\":\"Horaires d'ouverture\",\"value\":\"24\\\/7\"},{\"label\":\"Acc\\u00e8s libre ou sur demande\",\"value\":\"On request\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":8,\"featurable\":false,\"type\":\"service\",\"name\":\"Refrigerator rental\",\"image\":\"\",\"credit\":\"\",\"description\":\"Rental of approximately 100 L refrigerator without freezer, under a closed shelter, for the duration of the stay. Service offered with a daily rate.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":null,\"lng\":null,\"tags\":[],\"fields\":[{\"label\":\"Nom du service\",\"value\":\"Refrigerator rental\"},{\"label\":\"Type (Laverie, Wifi, Sup\\u00e9rette, Location mat\\u00e9riel, Sant\\u00e9, Transport, Divertissement\\u2026)\",\"value\":\"Location mat\\u00e9riel\"},{\"label\":\"Gratuit \\\/ Payant (oui\\\/non)\",\"value\":\"non\"},{\"label\":\"Accessible PMR (Oui\\\/Non)\",\"value\":\"oui\"},{\"label\":\"Horaires d'ouverture\",\"value\":\"According to reception hours\"},{\"label\":\"Acc\\u00e8s libre ou sur demande\",\"value\":\"On request\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":9,\"featurable\":false,\"type\":\"service\",\"name\":\"Free Wi-Fi\",\"image\":\"\",\"credit\":\"\",\"description\":\"The campsite offers free Wi-Fi service in rental accommodations and common areas to allow guests to stay easily connected.\",\"city\":\"\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":null,\"lng\":null,\"tags\":[],\"fields\":[{\"label\":\"Nom du service\",\"value\":\"Free Wi-Fi\"},{\"label\":\"Type (Laverie, Wifi, Sup\\u00e9rette, Location mat\\u00e9riel, Sant\\u00e9, Transport, Divertissement\\u2026)\",\"value\":\"Wifi\"},{\"label\":\"Gratuit \\\/ Payant (oui\\\/non)\",\"value\":\"oui\"},{\"label\":\"Accessible PMR (Oui\\\/Non)\",\"value\":\"oui\"},{\"label\":\"Horaires d'ouverture\",\"value\":\"24\\\/7\"},{\"label\":\"Acc\\u00e8s libre ou sur demande\",\"value\":\"Open access\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":10,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Exhibition \\\"Gu\\u00e9thary and its history\\\"\",\"image\":\"\",\"credit\":\"\",\"description\":\"Exhibition of 500 old postcards.\\nEvery Wednesday from 2 pm to 5 pm.\",\"city\":\"Gu\\u00e9thary\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.4227254,\"lng\":-1.6087443,\"tags\":[\"Exhibitions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Exhibitions\"},{\"label\":\"City\",\"value\":\"Gu\\u00e9thary\"},{\"label\":\"Postal code\",\"value\":\"64210\"}],\"link\":\"\",\"event\":\"Du 26\\\/08\\\/2026 \\u00e0 14:00 au 23\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":11,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Nestor Basterretxea Exhibition\",\"image\":\"\",\"credit\":\"\",\"description\":\"The theme of the exhibition is collages, drawings, and sculptures.\",\"city\":\"Ciboure\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.38532,\"lng\":-1.66784,\"tags\":[\"Exhibitions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Exhibitions\"},{\"label\":\"City\",\"value\":\"Ciboure\"},{\"label\":\"Postal code\",\"value\":\"64500\"}],\"link\":\"https:\\\/\\\/www.artebideak.com\\\/\",\"event\":\"Du 04\\\/09\\\/2026 \\u00e0 11:00 au 18\\\/10\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":12,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Exposition PARCC : \\\" Brasilia\\\/Chandigarh \\\" de Louidgi Beltrame\",\"image\":\"\",\"credit\":\"\",\"description\":\"Brasilia et Chandigarh. Deux capitales construites \\u00e0 la fin des ann\\u00e9es 1950, sur deux continents. D'un c\\u00f4t\\u00e9, la nouvelle capitale administrative du Br\\u00e9sil con\\u00e7ue par Oscar Niemeyer ; de l'autre, la ville imagin\\u00e9e par Le Corbusier pour le Pendjab indien.\\n\\nVid\\u00e9o de Louidgi Beltrame - dur\\u00e9e : 26 mn\",\"city\":\"Labenne\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.5957555,\"lng\":-1.4295004,\"tags\":[\"Expositions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Expositions\"},{\"label\":\"City\",\"value\":\"Labenne\"},{\"label\":\"Postal code\",\"value\":\"40530\"}],\"link\":\"http:\\\/\\\/parcc.cc-macs.org\\\/\",\"event\":\"Du 19\\\/09\\\/2026 \\u00e0 14:00 au 03\\\/01\\\/2027 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":13,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"PARCC Exhibition: \\\"Making Non-Border\\\" by Chourouk Hriech\",\"image\":\"\",\"credit\":\"\",\"description\":\"\\\"Making Non-Border\\\" is an exhibition by Chourouk Hriech that explores the landscapes of Landes through the history of maritime pines, an emblematic figure of a territory shaped both by natural dynamics and human interventions. Drawing has always been at the heart of the artist's practice. It becomes a space where landscapes, architectures, cartographies, stories, and imaginaries meet. Based on research about the Landes forest, Chourouk Hriech offers a sensitive reading of the territory, seen as a living space traversed by migrations, memories, exchanges, and landscape transformations.\",\"city\":\"Labenne\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.5957555,\"lng\":-1.4295004,\"tags\":[\"Exhibitions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Exhibitions\"},{\"label\":\"City\",\"value\":\"Labenne\"},{\"label\":\"Postal code\",\"value\":\"40530\"}],\"link\":\"http:\\\/\\\/parcc.cc-macs.org\\\/\",\"event\":\"Du 19\\\/09\\\/2026 \\u00e0 14:00 au 03\\\/01\\\/2027 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":14,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Exhibition \\\"Body and Ocean\\\" at Olatu\",\"image\":\"\",\"credit\":\"\",\"description\":\"Drawings and paintings by amateur students from the Higher School of Art Basque Country.\\nExhibiting artists are volunteer students registered for drawing\\\/painting\\\/model life workshops, supervised by Benoit Pingeot, artist-teacher at the City of Arts in Bayonne.\\nToday, he invites his students to be actors in this beautiful research place that Olatu embodies, and we are invited to join the circle.\",\"city\":\"Anglet\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.521735,\"lng\":-1.5029869,\"tags\":[\"Exhibitions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Exhibitions\"},{\"label\":\"City\",\"value\":\"Anglet\"},{\"label\":\"Postal code\",\"value\":\"64600\"}],\"link\":\"\",\"event\":\"Du 01\\\/09\\\/2026 au 29\\\/10\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":15,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Exposition h\\u00f4tel Chantaco: Sandrine Jarrosson\",\"image\":\"\",\"credit\":\"\",\"description\":\"Artiste peintre depuis plus de 21 ans au Pays Basque ,J\\u2019expose mes \\u0153uvres \\u00e0 L\\u2019h\\u00f4tel Chantaco en partenariat avec la Galerie Murmuse-art\",\"city\":\"Saint-Jean-de-Luz\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.3808294,\"lng\":-1.6408555,\"tags\":[\"Expositions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Expositions\"},{\"label\":\"City\",\"value\":\"Saint-Jean-de-Luz\"},{\"label\":\"Postal code\",\"value\":\"64500\"}],\"link\":\"https:\\\/\\\/www.sandrinejarrosson.com\\\/\",\"event\":\"Du 14\\\/09\\\/2026 \\u00e0 10:00 au 30\\\/10\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":16,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Photo exhibition \\\"On the hill of Akababyeyi\\\"\",\"image\":\"\",\"credit\":\"\",\"description\":\"The 61 engineering students of ISA BTP involved in the Human\\u2019Isa XXVI mission succeeded in their challenge: creating a preschool that allows hundreds of Rwandan children aged three to seven to start school in September. A beautiful adventure to see through a photo exhibition.\\n\\nThe fifth-year engineering students of ISA BTP in Anglet returned from Rwanda on April 9, with a sense of accomplishment and touching memories. \\\"It was a beautiful adventure,\\\" says Justine Pouyaut, co-president of the Human\\u2019Isa XXVI association. In the village of Akababyeyi, in the Kigali region, they built a preschool group where hundreds of children - some vulnerable and orphaned - started school in September. It was their final engineering project: designing a construction project from A to Z.\",\"city\":\"Anglet\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.4764579,\"lng\":-1.5085873,\"tags\":[\"Expositions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Expositions\"},{\"label\":\"City\",\"value\":\"Anglet\"},{\"label\":\"Postal code\",\"value\":\"64600\"}],\"link\":\"https:\\\/\\\/www.humanisa.org\\\/\",\"event\":\"Du 31\\\/08\\\/2026 au 30\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":17,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Automne au restaurant\",\"image\":\"\",\"credit\":\"\",\"description\":\"Durant cette semaine, nombreux restaurants du Sud-Labourd participent \\u00e0 l'op\\u00e9ration \\\"L'Automne au Restaurant\\\" en proposant des menus \\u00e0 prix fixes.\\nProfitez de cette occasion pour (re)d\\u00e9couvrir les restaurants : Les Chasseurs et Trabenia \\u00e0 Ascain.\",\"city\":\"Ascain\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.3446201,\"lng\":-1.6211654,\"tags\":[\"Autres \\u00e9v\\u00e9nements\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Autres \\u00e9v\\u00e9nements\"},{\"label\":\"City\",\"value\":\"Ascain\"},{\"label\":\"Postal code\",\"value\":\"64310\"}],\"link\":\"https:\\\/\\\/www.en-pays-basque.fr\\\/lautomne-au-restaurant\\\/\",\"event\":\"Du 10\\\/10\\\/2026 \\u00e0 19:30 au 16\\\/10\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":18,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Exposition au didam: Terres de silence\",\"image\":\"\",\"credit\":\"\",\"description\":\"Figure reconnue de la sc\\u00e8ne artistique bayonnaise, fascinant par une imagerie minutieuse et onirique, Evelyne H\\u00e9risson pratique un art de l'architecture et du volume, habit\\u00e9 de motifs humains ou naturels faisant r\\u00e9f\\u00e9rence au temps qui passe. Cette exposition propose un parcours de peintures et dessins, dont une importante partie a \\u00e9t\\u00e9 con\\u00e7ue sp\\u00e9cialement pour le Didam, \\u00e9crin \\u00e9ph\\u00e9m\\u00e8re de sa cr\\u00e9ation.\",\"city\":\"Bayonne\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.4959078,\"lng\":-1.4719288,\"tags\":[\"Expositions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Expositions\"},{\"label\":\"City\",\"value\":\"Bayonne\"},{\"label\":\"Postal code\",\"value\":\"64100\"}],\"link\":\"https:\\\/\\\/didam.bayonne.fr\\\/\",\"event\":\"Du 25\\\/09\\\/2026 au 22\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":19,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Autumn at the restaurant\",\"image\":\"\",\"credit\":\"\",\"description\":\"During this week, many restaurants in South-Labourd participate in the \\\"Autumn at the Restaurant\\\" campaign by offering fixed-price menus.\\nTake this opportunity to (re)discover the restaurants: Kafia and Arraya in Sare.\",\"city\":\"Sare\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.3127075,\"lng\":-1.5793099,\"tags\":[\"Other events\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Other events\"},{\"label\":\"City\",\"value\":\"Sare\"},{\"label\":\"Postal code\",\"value\":\"64310\"}],\"link\":\"https:\\\/\\\/www.en-pays-basque.fr\\\/lautomne-au-restaurant\\\/\",\"event\":\"Du 10\\\/10\\\/2026 \\u00e0 19:30 au 16\\\/10\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":20,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Exposition Itzalek diotena, ce que disent les ombres\",\"image\":\"\",\"credit\":\"\",\"description\":\"\\u00abItzalek diotena\\u00bb \\\/ \\u00abCe que disent les ombres\\u00bb rassemble des photographies, vid\\u00e9os et \\u00e9crits \\npo\\u00e9tiques dans une continuit\\u00e9 visuelle et th\\u00e9matique qui unit la lumi\\u00e8re et l'obscurit\\u00e9, le cycle \\nterrestre du jour et de la nuit, l'image photographique et le son musical. \\nDans cette exposition, Ihintza-Chlo\\u00eb Hargous Aranburu pr\\u00e9sente des photographies d'artefacts \\narchitecturaux, des variations de couleurs murales et des inscriptions graphiques qui s'av\\u00e8rent \\u00eatre \\ndes lettres, des chiffres, des mots et des signes parfois crypt\\u00e9s. Image apr\\u00e8s image, on \\u00e9tablit des \\nliens entre les diff\\u00e9rents \\u00e9l\\u00e9ments, des \\u00e9chos apparaissent \\u00e0 l'int\\u00e9rieur d'une s\\u00e9rie qui \\u00e9volue dans \\nune grande lumi\\u00e8re qui laisse peu de place \\u00e0 l'ombre. Un tournant s'op\\u00e8re dans la s\\u00e9rie quand \\nl'obscurit\\u00e9 s'installe; l'image est boulevers\\u00e9e.\",\"city\":\"Urrugne\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.3621933,\"lng\":-1.6995029,\"tags\":[\"Expositions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Expositions\"},{\"label\":\"City\",\"value\":\"Urrugne\"},{\"label\":\"Postal code\",\"value\":\"64122\"}],\"link\":\"\",\"event\":\"Du 11\\\/09\\\/2026 \\u00e0 09:00 au 16\\\/10\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":21,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Exposition de Chouette Plume\",\"image\":\"\",\"credit\":\"\",\"description\":\"The small wall of the Zoom Artiste du Point Com hosts Chouette Plume and her colorful Posca drawings. At the center of the work: an onomatopoeia! Hop, Pschittt, Wow, Chuuuut... so many funny sounds that inspire this artist crazy about words and manga. Small illustrative elements mixed with shapes, in a zentangle style, enrich the drawing. \\nA fresh and joyful universe to discover at the Point Com (tourist office & shared space) from Monday to Friday from 10 am to 1 pm and from 2 pm to 6 pm.\",\"city\":\"Ondres\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.5637679,\"lng\":-1.4457155,\"tags\":[\"Exhibitions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Exhibitions\"},{\"label\":\"City\",\"value\":\"Ondres\"},{\"label\":\"Postal code\",\"value\":\"40440\"}],\"link\":\"https:\\\/\\\/www.instagram.com\\\/lachouetteplume\\\/\",\"event\":\"Du 07\\\/09\\\/2026 \\u00e0 10:00 au 09\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":22,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Temporary Exhibition - Wilhelm Von Humbolt and the Basque Country in 1800\",\"image\":\"\",\"credit\":\"\",\"description\":\"Wilhelm von Humboldt (1767-1835), linguist, philosopher, and Prussian high official, visited the Basque Country in 1801 for two months of investigation and meetings, on both sides of the border, after having previously studied all the knowledge accumulated on the history and language of this territory. This immersion was documented in a memoir, Die Vasken (The Basques), published long after his death, in the 20th century, and translated into French for the first time in 2025.\\nThe exhibition, designed in partnership with the \\u00c9cole d\\u2019Art du Pays Basque and the Euskampus Foundation, invites visitors to dive into the Basque Country of 1800 seen through Wilhelm von Humboldt\\u2019s eyes, encountering landscapes, people, and ideas. A historical journey that helps illuminate the present.\",\"city\":\"Bayonne\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.4911279,\"lng\":-1.4738194,\"tags\":[\"Exhibitions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Exhibitions\"},{\"label\":\"City\",\"value\":\"Bayonne\"},{\"label\":\"Postal code\",\"value\":\"64100\"}],\"link\":\"\",\"event\":\"Du 10\\\/07\\\/2026 \\u00e0 10:00 au 10\\\/01\\\/2027 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":23,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Markets in Biarritz\",\"image\":\"\",\"credit\":\"\",\"description\":\"At the halls:\\nCovered market: Every day from 7:30 am to 2 pm\\nTextile and decor market (outdoor): Every day from Easter to All Saints from 8:30 am to 2 pm\\nProducer's market (outdoor): Saturdays from 7:30 am to 1 pm\\nCraftsmen's market (outdoor): Every day (July-August, except Saturday) from 8:30 am to 2 pm\\nWithin neighborhoods:\\nFood market: Wednesdays from 9 am to 1 pm at Saint-Martin\\nFridays from 9 am to 1 pm at Saint-Charles\\nArtistic meetings: Second Saturday of each month from 10 am to 6 pm at Place Saint-Charles\\nCraftsmen's market: Third Friday of each month from 3 pm to 10 pm at Iraty neighborhood, Halle Darla\\nNight markets:\\nWednesdays and Fridays from 7 pm to midnight at Port des P\\u00eacheurs\\nTuesdays from 7 pm to 11 pm at Docks de Biarritz\",\"city\":\"Biarritz\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.48103,\"lng\":-1.56151,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Biarritz\"},{\"label\":\"Postal code\",\"value\":\"64200\"}],\"link\":\"http:\\\/\\\/www.halles-biarritz.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2025 \\u00e0 07:30 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":24,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Outdoor Exhibition: Evolution of Biarritz from 1952 - 2024\",\"image\":\"\",\"credit\":\"\",\"description\":\"The City of Biarritz offers a traveling open-air exhibition in districts to explore the history of Biarritz through old and contemporary aerial photographs from IGN, in partnership with the Le Pachyderme Cultural association.\\nNine sites will display, each for nearly a month, photographs taken in 1952 and 2024, symbols of the evolution and transformation of the town, district by district. This exhibition aims to highlight local heritage, intergenerational transmission, education, and awareness of territorial development. Each photograph is accompanied by a historical text describing the territorial situation of the time and today, enriched with anecdotes about infrastructure such as businesses, stadiums, schools, etc.\",\"city\":\"Biarritz\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.4831519,\"lng\":-1.558626,\"tags\":[\"Exhibitions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Exhibitions\"},{\"label\":\"City\",\"value\":\"Biarritz\"},{\"label\":\"Postal code\",\"value\":\"64200\"}],\"link\":\"https:\\\/\\\/www.biarritz.fr\\\/les-actualites\\\/actualite\\\/expo-en-plein-air-evolution-de-biarritz-1952-2024\",\"event\":\"Du 24\\\/04\\\/2026 au 11\\\/01\\\/2027 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":25,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Participative Artwork: Atuna\",\"image\":\"\",\"credit\":\"\",\"description\":\"An emblematic figure of the maritime economy and heritage of the bay, tuna embodies history, skills, and memories linked to fishing. It reminds us that heritage is built and transmitted across generations.\\nAs part of the 10th anniversary of the label, the CIAP hosts Atuna, a participative artwork created by Cilourien sculptor Blaise Guirao.\\nEach visitor is invited to take part in this collective creation by inscribing a word evoking maritime heritage, thus helping to keep and share this common memory.\",\"city\":\"Ciboure\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.38526,\"lng\":-1.665491,\"tags\":[\"Other events\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Other events\"},{\"label\":\"City\",\"value\":\"Ciboure\"},{\"label\":\"Postal code\",\"value\":\"64500\"}],\"link\":\"https:\\\/\\\/boutique.otpaysbasque.com\\\/sites-et-musees\\\/centre-interpretation-architecture-et-patrimoine-ciboure\\\/visite-libre-ciap\",\"event\":\"Du 01\\\/09\\\/2026 \\u00e0 14:00 au 31\\\/10\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":26,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Neptune's Number at the Biarritz Aquarium\",\"image\":\"\",\"credit\":\"\",\"description\":\"Discover Neptune's Number by Good Bye Hippocrate. This new immersive installation combines illustration and video to explore the myths of the Ocean. Dive into a unique universe inhabited by a kleptomaniac octopus, a machine room homage to Jules Verne, flying jellyfish, and Neptune's Cabaret: an aquatic show where a seahorse passionate about pole dancing and a troupe of shrimps bring to life a revue as fanciful as poetic.\",\"city\":\"Biarritz\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.4621347,\"lng\":-1.5722815,\"tags\":[\"Family\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Family\"},{\"label\":\"City\",\"value\":\"Biarritz\"},{\"label\":\"Postal code\",\"value\":\"64200\"}],\"link\":\"https:\\\/\\\/www.destination-biarritz.fr\\\/loisir\\\/aquarium-de-biarritz\\\/\",\"event\":\"Du 03\\\/07\\\/2026 au 03\\\/07\\\/2027 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":27,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Temporary Exhibition at the Bonnat-Helleu Museum - Mythologies\",\"image\":\"\",\"credit\":\"\",\"description\":\"The first temporary exhibition since the reopening of the Bonnat-Helleu Museum in Bayonne, 'Mythologies' brings to dialogue the great founding narratives that traverse human history, from Pharaonic Egypt to modern Japan, and from Ancient Greece to the Basque Mountains. Designed in partnership with the Louvre Museum and with the exceptional participation of the Quai Branly -Jacques Chirac Museum, it gathers nearly a hundred works from all eras and continents. How was the world created? What powers inhabit it? How do heroines and heroes manage to influence its destiny? These are the essential questions our myths attempt to answer. 'Mythologies' offers an unprecedented dialogue between these figures and stories, where for the first time the Pyrenean worlds and major Mediterranean traditions meet.\",\"city\":\"Bayonne\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.4920757,\"lng\":-1.4721566,\"tags\":[\"Exhibitions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Exhibitions\"},{\"label\":\"City\",\"value\":\"Bayonne\"},{\"label\":\"Postal code\",\"value\":\"64100\"}],\"link\":\"\",\"event\":\"Du 08\\\/07\\\/2026 \\u00e0 10:00 au 09\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":28,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Exposition au mus\\u00e9e historique : Lumi\\u00e8res du Sud\",\"image\":\"\",\"credit\":\"\",\"description\":\"On the occasion of the centenary of Joseph Saint-Germier's death, Lumi\\u00e8res du Sud offers the first retrospective dedicated to this Toulouse artist. Trained in Paris with Alexandre Cabanel and L\\u00e9on Bonnat, he achieved success by the late 19th century through his participation in the Salon and his distinction at the 1900 World's Fair.\\nHis work, blending academic tradition and modernity, stands out for luminous paintings inspired by his travels in Europe and North Africa. The exhibition notably highlights his views of Venice, famous for their play of light and vibrant atmospheres, as well as his depictions of the South and the Basque Country.\\nThrough a selection of major works, Lumi\\u00e8res du Sud invites rediscovery of a painter recognized during his lifetime, still largely unknown today.\",\"city\":\"Biarritz\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.48148,\"lng\":-1.562797,\"tags\":[\"Expositions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Expositions\"},{\"label\":\"City\",\"value\":\"Biarritz\"},{\"label\":\"Postal code\",\"value\":\"64200\"}],\"link\":\"https:\\\/\\\/www.musee-historique-biarritz.fr\\\/\",\"event\":\"Du 04\\\/07\\\/2026 au 31\\\/10\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":29,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Exhibition: The Label, Already 10 Years!\",\"image\":\"\",\"credit\":\"\",\"description\":\"On the occasion of the 10th anniversary of the label, the Pays d\\u2019art et d\\u2019histoire de Saint-Jean-de-Luz et Ciboure invites you to discover the exhibition \\u00ab Already 10 Years! \\u00bb. \\nThis retrospective highlights the actions carried out since 2016: visits, exhibitions, workshops, meetings, and cultural projects that have contributed to bringing the heritage of the territory to life and sharing it.\\nAn exhibition to relive a decade of commitment and transmission of local history.\\nOpen Tuesday to Friday from 2 pm to 6 pm and Saturday from 10 am to 1 pm and 2 pm to 6 pm.\\nExhibition from March 28 to October 31.\",\"city\":\"Ciboure\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.38526,\"lng\":-1.665491,\"tags\":[\"Expositions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Expositions\"},{\"label\":\"City\",\"value\":\"Ciboure\"},{\"label\":\"Postal code\",\"value\":\"64500\"}],\"link\":\"https:\\\/\\\/boutique.otpaysbasque.com\\\/sites-et-musees\\\/centre-interpretation-architecture-et-patrimoine-ciboure\\\/visite-libre-ciap\",\"event\":\"Du 01\\\/09\\\/2026 \\u00e0 14:00 au 31\\\/10\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":30,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Exhibition: Municipal Biodiversity Atlas\",\"image\":\"\",\"credit\":\"\",\"description\":\"Starting May 20, the Natural History Museum invites you to an immersive adventure into local biodiversity.\\nThis new exhibition offers a journey through the ecosystems of Bayonne: forests, urban environments, wetlands... not forgetting nocturnal nature, often little known.\\nDesigned for all audiences, it includes a rich and participatory program: naturalist outings, conferences, collectible card games, and a traveling version that will circulate in several cultural venues around the city.\",\"city\":\"Bayonne\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.4766684,\"lng\":-1.4725537,\"tags\":[\"Other events\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Other events\"},{\"label\":\"City\",\"value\":\"Bayonne\"},{\"label\":\"Postal code\",\"value\":\"64100\"}],\"link\":\"https:\\\/\\\/www.bayonne.fr\\\/cest-a-bayonne\\\/a-decouvrir\\\/la-plaine-dansot-et-le-museum-dhistoire-naturelle-de-bayonne\\\/le-museum-dhistoire-naturelle-de-bayonne\",\"event\":\"Du 20\\\/05\\\/2025 au 02\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":31,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"The Wildlife Odyssey Exhibition, an Underwater Photography Immersion\",\"image\":\"\",\"credit\":\"\",\"description\":\"The City of the Ocean hosts a brand new photography exhibition titled The Wildlife Odyssey, created by Romain Barats and C\\u00e9cile Gabillon Barats. \\nThrough 19 underwater shots, these two Toulouse-based doctors turned photographers and explorers of the marine world share their view on marine biodiversity.\",\"city\":\"Biarritz\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.4621347,\"lng\":-1.5722815,\"tags\":[\"Exhibitions\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Exhibitions\"},{\"label\":\"City\",\"value\":\"Biarritz\"},{\"label\":\"Postal code\",\"value\":\"64200\"}],\"link\":\"https:\\\/\\\/www.destination-biarritz.fr\\\/patrimoine-culturel\\\/la-cite-de-locean\\\/\",\"event\":\"Du 01\\\/04\\\/2026 au 30\\\/04\\\/2027 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":32,\"featurable\":true,\"type\":\"evenements-locaux-51\",\"name\":\"Automne au restaurant\",\"image\":\"\",\"credit\":\"\",\"description\":\"Durant cette semaine, de nombreux restaurants du Sud Labourd participent \\u00e0 l'op\\u00e9ration \\\"L'Automne au Restaurant\\\" en proposant des menus \\u00e0 prix fixes.\\nProfitez de cette occasion pour (re)d\\u00e9couvrir les restaurants Ahoa et l'Auberge Lukaina \\u00e0 Urrugne.\",\"city\":\"Urrugne\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.3621695,\"lng\":-1.6992691,\"tags\":[\"Autres \\u00e9v\\u00e9nements\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Autres \\u00e9v\\u00e9nements\"},{\"label\":\"City\",\"value\":\"Urrugne\"},{\"label\":\"Postal code\",\"value\":\"64122\"}],\"link\":\"https:\\\/\\\/www.en-pays-basque.fr\\\/lautomne-au-restaurant\\\/\",\"event\":\"Du 10\\\/10\\\/2026 \\u00e0 12:00 au 16\\\/10\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]}];\n    var CATS = {\"villes-aux-alentours\":{\"key\":\"villes-aux-alentours\",\"label\":\"Villes aux alentours\",\"adhoc\":false,\"color\":\"#c2410c\",\"count\":5,\"image\":\"https:\\\/\\\/www.uronea.com\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/plage-biarritz.jpg\"},\"service\":{\"key\":\"service\",\"label\":\"Service\",\"adhoc\":false,\"color\":\"#2563eb\",\"count\":5,\"image\":\"\"},\"evenements-locaux-51\":{\"key\":\"evenements-locaux-51\",\"label\":\"\\u00c9v\\u00e9nements locaux\",\"adhoc\":false,\"color\":\"#15803d\",\"count\":23,\"image\":\"\"}};\n    \/\/ Textes d'interface dans la langue de la page (includes\/i18n.php)\n    var T = {\"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\",\"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\",\"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\":\"&copy; <a href=\\\"https:\\\/\\\/www.openstreetmap.org\\\/copyright\\\">OpenStreetMap<\\\/a>\",\"home\":null};\n    var ACCENT = \"#2e5e45\";\n    var STEP = 12;\n    var BY_ID = {};\n    ITEMS.forEach(function(it) {\n      BY_ID[it.id] = it;\n    });\n\n    var app = document.getElementById('mv-app');\n    if (!app) return;\n\n    var state = { selected: null, page: 1, q: '', km: 0, cat: 'all', limit: STEP, view: window.matchMedia('(max-width: 1100px)').matches ? 'list' : 'map' };\n\n    \/\/ \u2550\u2550\u2550 Ic\u00f4nes (SVG statiques) + ic\u00f4ne d\u00e9duite de la cat\u00e9gorie \u2550\u2550\u2550\n    var ICONS = {\n      grid: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"4\" y=\"4\" width=\"6\" height=\"6\" rx=\"1\"\/><rect x=\"14\" y=\"4\" width=\"6\" height=\"6\" rx=\"1\"\/><rect x=\"4\" y=\"14\" width=\"6\" height=\"6\" rx=\"1\"\/><rect x=\"14\" y=\"14\" width=\"6\" height=\"6\" rx=\"1\"\/><\/svg>',\n      home: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><path d=\"M3 11l9-7 9 7\"\/><path d=\"M5 10v10h14V10\"\/><path d=\"M10 20v-6h4v6\"\/><\/svg>',\n      beach: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M12 3a9 9 0 0 1 9 9H3a9 9 0 0 1 9-9z\"\/><path d=\"M12 12v9M8 21h8\"\/><\/svg>',\n      leaf: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 19c0-8 5-14 15-14 0 10-6 15-14 15\"\/><path d=\"M5 19l7-7\"\/><\/svg>',\n      family: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"8\" cy=\"6\" r=\"2.5\"\/><circle cx=\"16\" cy=\"6\" r=\"2.5\"\/><path d=\"M4 21v-6a4 4 0 0 1 8 0v6M12 21v-6a4 4 0 0 1 8 0v6\"\/><\/svg>',\n      food: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M7 3v8a2 2 0 0 0 4 0V3M9 11v10M17 3c-2 0-3 2-3 5s1 4 3 4v9\"\/><\/svg>',\n      shop: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><path d=\"M4 9l1.5-5h13L20 9\"\/><path d=\"M4 9h16v2a3 3 0 0 1-6 0 3 3 0 0 1-4 0 3 3 0 0 1-6 0z\"\/><path d=\"M5 13v7h14v-7\"\/><\/svg>',\n      calendar: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\"\/><path d=\"M16 3v4M8 3v4M3 10h18\"\/><\/svg>',\n      wine: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M8 3h8l-.5 6a3.5 3.5 0 0 1-7 0z\"\/><path d=\"M12 13v8M8 21h8\"\/><\/svg>',\n      walk: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"13\" cy=\"4\" r=\"2\"\/><path d=\"M9 21l3-7 3 3v5M8 12l2-4 4 1 3 3\"\/><\/svg>',\n      bed: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M3 18V7M3 14h18v4M21 14v-3a3 3 0 0 0-3-3h-7v6\"\/><circle cx=\"7\" cy=\"11\" r=\"2\"\/><\/svg>',\n      pool: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M2 17c2 0 2-1.5 4-1.5S8 17 10 17s2-1.5 4-1.5 2 1.5 4 1.5 2-1.5 4-1.5M8 14V5a2 2 0 0 1 4 0M14 14V5a2 2 0 0 1 4 0M8 9h6\"\/><\/svg>',\n      info: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 11v6M12 7.5v.5\"\/><\/svg>',\n      pin: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z\"\/><circle cx=\"12\" cy=\"9.5\" r=\"2.5\"\/><\/svg>',\n      car: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 17h14M5 17v2M19 17v2M4 13l2-6h12l2 6v4H4z\"\/><circle cx=\"8\" cy=\"14.5\" r=\"0.5\"\/><circle cx=\"16\" cy=\"14.5\" r=\"0.5\"\/><\/svg>',\n      clock: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 7v5l3 2\"\/><\/svg>',\n      star: '<svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 3l2.8 5.7 6.2.9-4.5 4.4 1.1 6.2L12 17.3 6.4 20.2l1.1-6.2L3 9.6l6.2-.9z\"\/><\/svg>',\n      arrow: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>',\n      home: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3L3 19h18L12 3z\"\/><path d=\"M12 3v16M9 19l3-6 3 6\"\/><\/svg>',\n      reset: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 9V4h5M20 15v5h-5M4 4l6 6M20 20l-6-6M15 4h5v5M9 20H4v-5\"\/><\/svg>',\n      maps: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 4L3 6v14l6-2 6 2 6-2V4l-6 2-6-2z\"\/><path d=\"M9 4v14M15 6v14\"\/><\/svg>',\n      doc: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><path d=\"M6 3h8l4 4v14H6z\"\/><path d=\"M14 3v4h4\"\/><\/svg>'\n    };\n\n    var ICON_RULES = [\n      [\/ville|village|city|alentour\/, 'home'],\n      [\/plage|beach|mer\\b\/, 'beach'],\n      [\/nature|balade|rando|parc|jardin\/, 'leaf'],\n      [\/famil|enfant|kid\/, 'family'],\n      [\/restau|gastro|repas|snack|bar\\b\/, 'food'],\n      [\/march|boutique|commerce|shop\/, 'shop'],\n      [\/evenement|\u00e9v\u00e9nement|event|agenda|atelier|animation\/, 'calendar'],\n      [\/vin|boisson|cave|terroir|bodega\/, 'wine'],\n      [\/activit|sport|loisir|lieu\/, 'walk'],\n      [\/heberg|locatif|accom|mobil\/, 'bed'],\n      [\/piscine|pool|aqua|pataug\/, 'pool'],\n      [\/service|equipement|\u00e9quipement|info\/, 'info']\n    ];\n\n    function catIcon(key) {\n      var c = CATS[key];\n      var hay = (key + ' ' + (c ? c.label : '')).toLowerCase();\n      for (var i = 0; i < ICON_RULES.length; i++) {\n        if (ICON_RULES[i][0].test(hay)) return ICON_RULES[i][1];\n      }\n      return 'pin';\n    }\n\n    function el(tag, cls, text) {\n      var n = document.createElement(tag);\n      if (cls) n.className = cls;\n      if (text != null) n.textContent = text;\n      return n;\n    }\n\n    function icon(name) {\n      var s = el('span', 'mv-icon');\n      s.setAttribute('aria-hidden', 'true');\n      s.innerHTML = ICONS[name] || ICONS.pin;\n      return s;\n    }\n\n    function catColor(key) {\n      return CATS[key] ? CATS[key].color : ACCENT;\n    }\n\n    function norm(s) {\n      return (s || '').toLowerCase().normalize('NFD').replace(\/[\u0300-\u036f]\/g, '');\n    }\n\n    \/\/ \u2550\u2550\u2550 Filtrage \u2550\u2550\u2550\n    function filtered() {\n      var q = norm(state.q.trim());\n      return ITEMS.filter(function(it) {\n        if (state.cat !== 'all' && it.type !== state.cat) return false;\n        \/\/ Distance : seules les fiches qui ont une distance connue sont filtr\u00e9es\n        if (state.km && it.km !== null && it.km > state.km) return false;\n        if (q) {\n          var hay = norm([it.name, it.city, it.description, (CATS[it.type] || {}).label, it.tags.join(' ')].join(' '));\n          if (hay.indexOf(q) === -1) return false;\n        }\n        return true;\n      });\n    }\n\n    \/\/ \u2550\u2550\u2550 Cat\u00e9gories \u2550\u2550\u2550\n    function renderCats() {\n      var box = document.getElementById('mv-cats');\n      box.innerHTML = '';\n      var all = el('button', 'mv-cat' + (state.cat === 'all' ? ' is-active' : ''));\n      all.type = 'button';\n      all.appendChild(icon('grid'));\n      all.appendChild(document.createTextNode(T.all));\n      all.addEventListener('click', function() {\n        setCat('all');\n      });\n      box.appendChild(all);\n      Object.keys(CATS).forEach(function(key) {\n        var b = el('button', 'mv-cat' + (state.cat === key ? ' is-active' : ''));\n        b.type = 'button';\n        b.style.setProperty('--mv-cat', catColor(key));\n        b.appendChild(icon(catIcon(key)));\n        b.appendChild(document.createTextNode(CATS[key].label));\n        b.addEventListener('click', function() {\n          setCat(key);\n        });\n        box.appendChild(b);\n      });\n      updateCatArrows();\n      var active = box.querySelector('.is-active');\n      if (active && active.scrollIntoView && active.offsetLeft + active.offsetWidth > box.scrollLeft + box.clientWidth) {\n        box.scrollLeft = active.offsetLeft - 80;\n      }\n    }\n\n    \/\/ Fl\u00e8ches de la ligne de cat\u00e9gories (visibles seulement s'il reste \u00e0 d\u00e9filer)\n    var catsWrap = document.getElementById('mv-cats-wrap');\n    var catsRow = document.getElementById('mv-cats');\n\n    function updateCatArrows() {\n      var max = catsRow.scrollWidth - catsRow.clientWidth;\n      catsWrap.classList.toggle('can-left', catsRow.scrollLeft > 4);\n      catsWrap.classList.toggle('can-right', catsRow.scrollLeft < max - 4);\n    }\n    catsRow.addEventListener('scroll', updateCatArrows, { passive: true });\n    window.addEventListener('resize', updateCatArrows);\n    catsWrap.querySelector('.mv-cats-arrow--left').addEventListener('click', function() {\n      catsRow.scrollBy({ left: -catsRow.clientWidth * 0.7, behavior: 'smooth' });\n    });\n    catsWrap.querySelector('.mv-cats-arrow--right').addEventListener('click', function() {\n      catsRow.scrollBy({ left: catsRow.clientWidth * 0.7, behavior: 'smooth' });\n    });\n\n    function setCat(key) {\n      state.cat = key;\n      state.limit = STEP;\n      state.page = 1;\n      renderCats();\n      renderList();\n    }\n\n    \/\/ \u2550\u2550\u2550 Cartes \u2550\u2550\u2550\n    function picture(it) {\n      if (!it.image) {\n        var ph = el('div', 'mv-card-noimg');\n        ph.appendChild(icon(catIcon(it.type)));\n        return ph;\n      }\n      var img = el('img');\n      img.src = it.image;\n      img.alt = it.name;\n      img.loading = 'lazy';\n      img.onerror = function() {\n        img.replaceWith(picture({ type: it.type, image: '' }));\n      };\n      return img;\n    }\n\n    function metaLine(it) {\n      var m = el('p', 'mv-meta');\n      if (it.km !== null) {\n        var a = el('span');\n        a.appendChild(icon('car'));\n        a.appendChild(document.createTextNode(String(it.km).replace('.', DECIMAL) + ' km'));\n        m.appendChild(a);\n      }\n      if (it.min !== null) {\n        var b = el('span');\n        b.appendChild(icon('clock'));\n        b.appendChild(document.createTextNode(it.min + ' min'));\n        m.appendChild(b);\n      }\n      if (it.km === null && it.min === null && it.city) {\n        var c = el('span');\n        c.appendChild(icon('pin'));\n        c.appendChild(document.createTextNode(it.city));\n        m.appendChild(c);\n      }\n      return m.childNodes.length ? m : null;\n    }\n\n    function card(it, featured, mini) {\n      var c = el('article', 'mv-card' + (featured ? ' mv-card--featured' : '') + (mini ? ' mv-card--mini' : ''));\n      c.tabIndex = 0;\n      c.dataset.id = it.id;\n      c.style.setProperty('--mv-cat', catColor(it.type));\n\n      var media = el('div', 'mv-card-media');\n      media.appendChild(picture(it));\n      if (!featured && !mini && CATS[it.type]) media.appendChild(el('span', 'mv-pill', CATS[it.type].label));\n      \/\/ Les mini-cartes aussi : la photo y est petite, mais c'est la m\u00eame photo,\n      \/\/ et la licence ne pr\u00e9voit pas d'exception de taille.\n      if (it.credit) {\n        var cr = el('span', 'mv-credit', '\u00a9');\n        cr.title = 'Photo : ' + it.credit;\n        cr.setAttribute('aria-label', 'Photo : ' + it.credit);\n        cr.setAttribute('data-credit', 'Photo : ' + it.credit);\n        media.appendChild(cr);\n      }\n      c.appendChild(media);\n\n      var body = el('div', 'mv-card-body');\n      if (featured) {\n        var flag = el('span', 'mv-flag');\n        flag.appendChild(icon('star'));\n        flag.appendChild(document.createTextNode(T.featured));\n        body.appendChild(flag);\n      }\n      if (mini && CATS[it.type]) body.appendChild(el('span', 'mv-pill', CATS[it.type].label));\n      body.appendChild(el('h3', 'mv-card-title', it.name));\n      var meta = metaLine(it);\n      if (meta) body.appendChild(meta);\n      if (it.description) body.appendChild(el('p', 'mv-card-desc', it.description));\n      if (!featured && !mini && it.tags.length) {\n        var tags = el('div', 'mv-tags');\n        it.tags.forEach(function(t) {\n          tags.appendChild(el('span', 'mv-tag', t));\n        });\n        body.appendChild(tags);\n      }\n      var foot = el('div', 'mv-card-foot');\n      var btn = el('button', 'mv-discover', T.discover);\n      btn.type = 'button';\n      btn.appendChild(icon('arrow'));\n      foot.appendChild(btn);\n      body.appendChild(foot);\n      c.appendChild(body);\n\n      c.addEventListener('click', function() {\n        openModal(it);\n      });\n      c.addEventListener('keydown', function(e) {\n        if (e.key === 'Enter') openModal(it);\n      });\n      if (mini) return c;\n      c.addEventListener('mouseenter', function() {\n        highlightPin(it.id, true);\n      });\n      c.addEventListener('mouseleave', function() {\n        highlightPin(it.id, false);\n      });\n      return c;\n    }\n\n    function renderList() {\n      var list = filtered();\n      var grid = document.getElementById('mv-grid');\n      var more = document.getElementById('mv-more');\n      grid.innerHTML = '';\n      more.innerHTML = '';\n\n      var count = document.getElementById('mv-count');\n      count.innerHTML = '';\n      count.appendChild(el('strong', null, plural(list.length)));\n      count.appendChild(document.createTextNode(' ' + T.around_you));\n\n      if (!list.length) {\n        var empty = el('div', 'mv-empty');\n        empty.appendChild(el('strong', null, T.no_result));\n        empty.appendChild(document.createTextNode(T.no_result_hint));\n        grid.appendChild(empty);\n      }\n\n      \/\/ Pagination : 4 rang\u00e9es pleines par page, selon le nombre de colonnes affich\u00e9es.\n      \/\/ La fiche \u00ab \u00c0 la une \u00bb occupe 2 cases : la 1re page a donc une fiche de moins.\n      var cols = gridColumns();\n      var perPage = cols === 1 ? 8 : cols * 4;\n      var featuredOn = !state.q && list.length > 2 && !!list[0].image && !!list[0].featurable && cols > 1;\n      var first = featuredOn ? perPage - 1 : perPage;\n      var pages = list.length <= first ? 1 : 1 + Math.ceil((list.length - first) \/ perPage);\n      if (state.page > pages) state.page = pages;\n      var start = state.page === 1 ? 0 : first + (state.page - 2) * perPage;\n      var end = state.page === 1 ? first : start + perPage;\n\n      list.slice(start, end).forEach(function(it, i) {\n        grid.appendChild(card(it, featuredOn && state.page === 1 && i === 0));\n      });\n\n      if (pages > 1) renderPager(more, pages);\n\n      updateMap(list);\n    }\n\n    \/**\n     * Remonte au bloc demand\u00e9, sous l'en-t\u00eate fixe du th\u00e8me. Apr\u00e8s le rendu\n     * (image suivante) : la liste vient de changer de hauteur \u2014 28 pages qui\n     * deviennent une \u2014 et une position calcul\u00e9e avant tombait trop haut ou\n     * trop bas selon la cat\u00e9gorie cliqu\u00e9e.\n     *\/\n    var appRoot = document.getElementById('mv-app');\n    if (appRoot) appRoot.style.overflowAnchor = 'none';\n\n    function scrollToBlock(id) {\n      requestAnimationFrame(function() {\n        var target = document.getElementById(id);\n        if (!target) return;\n        var top = target.getBoundingClientRect().top + window.pageYOffset - headerOffset() - 16;\n        window.scrollTo({ top: Math.max(0, top), behavior: 'smooth' });\n      });\n    }\n\n    \/** Nombre de colonnes de la grille (d\u00e9pend de la largeur disponible) *\/\n    function gridColumns() {\n      var g = document.getElementById('mv-grid');\n      var n = g ? getComputedStyle(g).gridTemplateColumns.split(' ').filter(Boolean).length : 3;\n      return Math.max(1, n || 3);\n    }\n\n    function renderPager(box, pages) {\n      box.setAttribute('role', 'navigation');\n      box.setAttribute('aria-label', T.pagination);\n      var go = function(n) {\n        state.page = n;\n        try {\n          renderList();\n        } finally {\n          scrollToBlock('mv-count');\n        }\n      };\n      var btn = function(label, n, opts) {\n        var b = el('button', 'mv-page', label);\n        b.type = 'button';\n        if (opts.aria) b.setAttribute('aria-label', opts.aria);\n        if (opts.current) b.setAttribute('aria-current', 'page');\n        b.disabled = !!opts.disabled;\n        b.addEventListener('click', function() {\n          if (!opts.current) go(n);\n        });\n        box.appendChild(b);\n      };\n      btn('\u2039', state.page - 1, { disabled: state.page === 1, aria: T.prev_page });\n      var last = 0;\n      for (var p = 1; p <= pages; p++) {\n        if (p === 1 || p === pages || Math.abs(p - state.page) <= 1) {\n          if (p - last > 1) box.appendChild(el('span', 'mv-page-gap', '\u2026'));\n          btn(String(p), p, { current: p === state.page, aria: 'Page ' + p });\n          last = p;\n        }\n      }\n      btn('\u203a', state.page + 1, { disabled: state.page === pages, aria: T.next_page });\n    }\n\n    \/\/ \u2550\u2550\u2550 Id\u00e9es selon vos envies (cat\u00e9gories les plus fournies) \u2550\u2550\u2550\n    function renderIdeas() {\n      var sec = document.getElementById('mv-ideas');\n      \/\/ Les fiches sans gabarit (\u00ab Infos pratiques \u00bb) ne sont pas une envie.\n      var keys = Object.keys(CATS).filter(function(k) { return !CATS[k].adhoc; }).sort(function(a, b) {\n        return (CATS[b].image ? 1 : 0) - (CATS[a].image ? 1 : 0) || CATS[b].count - CATS[a].count;\n      }).slice(0, 4);\n      if (keys.length < 2) return;\n\n      var head = el('div', 'mv-ideas-head');\n      var h = el('h2', 'mv-ideas-title', T.ideas_title);\n      h.id = 'mv-ideas-title';\n      head.appendChild(h);\n      head.appendChild(el('p', 'mv-ideas-sub', T.ideas_sub));\n      sec.appendChild(head);\n\n      var grid = el('div', 'mv-ideas-grid');\n      keys.forEach(function(key) {\n        var c = CATS[key];\n        var b = el('button', 'mv-idea');\n        b.type = 'button';\n        b.style.setProperty('--mv-cat', c.color);\n        var img = el('span', 'mv-idea-img');\n        if (c.image) img.style.backgroundImage = 'url(\"' + c.image.replace(\/\"\/g, '%22') + '\")';\n        b.appendChild(img);\n        var body = el('span', 'mv-idea-body');\n        body.appendChild(icon(catIcon(key)));\n        var txt = el('span', 'mv-idea-text');\n        txt.appendChild(el('strong', null, c.label));\n        txt.appendChild(el('span', null, plural(c.count)));\n        body.appendChild(txt);\n        body.appendChild(icon('arrow'));\n        b.appendChild(body);\n        b.addEventListener('click', function() {\n          try {\n            setCat(key);\n          } finally {\n            scrollToBlock('mv-cats');\n          }\n        });\n        grid.appendChild(b);\n      });\n      sec.appendChild(grid);\n    }\n\n    \/\/ \u2550\u2550\u2550 Carte Leaflet \u2550\u2550\u2550\n    var map = null,\n      layer = null,\n      homeMarker = null,\n      radius = null,\n      resetBtn = null,\n      fitting = false, \/\/ cadrage lanc\u00e9 par le code (et non par l'utilisateur)\n      overview = null, \/\/ dernier cadrage \u00ab vue d'ensemble \u00bb\n      pins = {};\n\n    \/\/ Copie de Leaflet utilis\u00e9e pour TOUTE la carte. Sur certains sites (th\u00e8me qui\n    \/\/ d\u00e9place les scripts avec jQuery, WP Rocket\u2026) Leaflet s'ex\u00e9cute deux fois : la\n    \/\/ 2e copie \u00e9crase window.L alors que markercluster s'est attach\u00e9 \u00e0 la 1re.\n    \/\/ M\u00e9langer les deux copies rend les rep\u00e8res invisibles et casse le regroupement.\n    var Lf = null;\n\n    function resolveLeaflet() {\n      var cur = window.L;\n      if (!cur) return null;\n      if (typeof cur.markerClusterGroup === 'function' && typeof cur.MarkerClusterGroup === 'function') return cur;\n      if (typeof cur.noConflict === 'function') {\n        var current = cur.noConflict(); \/\/ window.L \u2190 copie pr\u00e9c\u00e9dente\n        var previous = window.L;\n        if (previous && previous !== current && typeof previous.MarkerClusterGroup === 'function') {\n          \/\/ markercluster lit window.L \u00e0 chaque action (clic, zoom) : on remet\n          \/\/ durablement la copie qui le porte (l'autre n'est qu'un doublon de la m\u00eame version).\n          \/\/ Sans \u00e7a, les identifiants internes des deux copies se m\u00e9langent et les\n          \/\/ clics sur les rep\u00e8res \/ groupes sont perdus.\n          window.L = previous;\n          return previous;\n        }\n        window.L = current;\n      }\n      return null;\n    }\n\n    function pinIcon(color, hover, selected) {\n      return Lf.divIcon({\n        className: 'mv-pin' + (hover ? ' is-hover' : '') + (selected ? ' is-selected' : ''),\n        html: '<svg width=\"30\" height=\"39\" viewBox=\"0 0 28 36\"><path d=\"M14 35C14 35 26 22.5 26 13.5A12 12 0 0 0 2 13.5C2 22.5 14 35 14 35Z\" fill=\"' + color + '\" stroke=\"#fff\" stroke-width=\"2\"\/><circle cx=\"14\" cy=\"13.5\" r=\"4.5\" fill=\"#fff\"\/><\/svg>',\n        iconSize: [30, 39],\n        iconAnchor: [15, 39],\n        popupAnchor: [0, -34]\n      });\n    }\n\n    var mapTries = 0;\n\n    function initMap() {\n      var elMap = document.getElementById('mv-map');\n      if (!elMap) return;\n      \/\/ Attend Leaflet + markercluster (scripts parfois diff\u00e9r\u00e9s), 8 s max ;\n      \/\/ au-del\u00e0, carte sans regroupement plut\u00f4t que pas de carte.\n      Lf = resolveLeaflet();\n      if (!Lf) {\n        if (++mapTries < 80) return setTimeout(initMap, 100);\n        if (!window.L) return;\n        Lf = window.L;\n      }\n      map = Lf.map(elMap, { zoomControl: false, scrollWheelZoom: false, attributionControl: false }).setView([46.6, 1.9], 6);\n      \/\/ Garde-fou : si le th\u00e8me r\u00e9ex\u00e9cute Leaflet plus tard, on remet la bonne copie\n      \/\/ juste avant toute interaction (markercluster lit window.L au moment du clic).\n      ['pointerdown', 'mousedown', 'touchstart', 'click', 'wheel'].forEach(function(t) {\n        elMap.addEventListener(t, function() {\n          if (window.L !== Lf) window.L = Lf;\n        }, true);\n      });\n      Lf.tileLayer(MAP.tiles_url, { maxZoom: 19 }).addTo(map);\n      Lf.control.zoom({ position: 'bottomright' }).addTo(map);\n      Lf.control.attribution({ position: 'bottomleft', prefix: false }).addAttribution(MAP.attribution).addTo(map);\n\n      \/\/ \u00ab Revenir \u00e0 la vue d'ensemble \u00bb : appara\u00eet d\u00e8s que l'utilisateur zoome \/ d\u00e9place la carte\n      resetBtn = el('button', 'mv-reset');\n      resetBtn.type = 'button';\n      resetBtn.hidden = true;\n      resetBtn.appendChild(icon('reset'));\n      resetBtn.appendChild(document.createTextNode(T.reset_view));\n      resetBtn.addEventListener('click', function() {\n        fitOverview();\n        resetBtn.hidden = true;\n      });\n      elMap.appendChild(resetBtn);\n      Lf.DomEvent.disableClickPropagation(resetBtn);\n      map.on('zoomstart movestart', function() {\n        if (!fitting && resetBtn) resetBtn.hidden = false;\n      });\n\n      \/\/ Rep\u00e8re de l'\u00e9tablissement, toujours visible (hors regroupement)\n      if (MAP.home) {\n        homeMarker = Lf.marker([MAP.home.lat, MAP.home.lng], {\n          icon: Lf.divIcon({ className: 'mv-home', html: '<span class=\"mv-home-pin\">' + ICONS.home + '<\/span>', iconSize: [44, 44], iconAnchor: [22, 22] }),\n          \/\/ Sous les rep\u00e8res et groupes : les fiches situ\u00e9es \u00e0 l'\u00e9tablissement m\u00eame\n          \/\/ (souvent nombreuses) restent visibles et cliquables par-dessus.\n          zIndexOffset: -1000,\n          keyboard: false,\n          interactive: false,\n          title: MAP.home.label\n        }).addTo(map);\n        homeMarker.bindTooltip(MAP.home.label, { permanent: true, direction: 'right', offset: [24, 0], className: 'mv-home-label' });\n      }\n\n      layer = (typeof Lf.markerClusterGroup === 'function') ? Lf.markerClusterGroup({\n        showCoverageOnHover: false,\n        maxClusterRadius: 45,\n        iconCreateFunction: function(cl) {\n          var n = cl.getChildCount();\n          var s = n < 10 ? 34 : (n < 50 ? 40 : 46);\n          return Lf.divIcon({ className: 'mv-cluster', html: '<span style=\"width:' + s + 'px;height:' + s + 'px;background:' + ACCENT + '\">' + n + '<\/span>', iconSize: [s, s] });\n        }\n      }) : Lf.layerGroup();\n      layer.addTo(map);\n      renderList();\n    }\n\n    \/**\n     * Met la carte \u00e0 jour sans jamais bloquer la page. Le th\u00e8me (ou WP Rocket)\n     * peut r\u00e9ex\u00e9cuter Leaflet apr\u00e8s coup : markercluster lit alors la mauvaise\n     * copie (\u00ab L.DistanceGrid is not a constructor \u00bb) au moment o\u00f9 la LISTE met\n     * la carte \u00e0 jour. On remet la bonne copie avant, et une erreur de carte\n     * n'emp\u00eache plus la liste ni le d\u00e9filement qui suivent.\n     *\/\n    function updateMap(list) {\n      if (!map || !layer) return;\n      if (Lf && window.L !== Lf) window.L = Lf;\n      try {\n        drawMap(list);\n      } catch (e) {\n        if (window.console) console.warn('Elaia \u2014 carte non mise \u00e0 jour :', e);\n      }\n    }\n\n    function drawMap(list) {\n      layer.clearLayers();\n      pins = {};\n      var bounds = [];\n      var markers = [];\n      list.forEach(function(it) {\n        if (it.lat === null) return;\n        var m = Lf.marker([it.lat, it.lng], { icon: pinIcon(catColor(it.type), false, it.id === state.selected), title: it.name });\n        m.on('click', function() {\n          selectItem(it.id);\n        });\n        markers.push(m);\n        pins[it.id] = m;\n        bounds.push([it.lat, it.lng]);\n      });\n      \/\/ Ajout group\u00e9 : un seul recalcul des regroupements (plus fiable que addLayer un par un)\n      if (typeof layer.addLayers === 'function') layer.addLayers(markers);\n      else markers.forEach(function(m) {\n        layer.addLayer(m);\n      });\n\n      \/\/ Rayon du filtre de distance autour de l'\u00e9tablissement\n      if (radius) {\n        map.removeLayer(radius);\n        radius = null;\n      }\n      if (MAP.home) {\n        bounds.push([MAP.home.lat, MAP.home.lng]);\n        if (state.km) {\n          radius = Lf.circle([MAP.home.lat, MAP.home.lng], {\n            radius: state.km * 1000,\n            color: ACCENT,\n            weight: 1.5,\n            dashArray: '6 6',\n            fillColor: ACCENT,\n            fillOpacity: 0.06,\n            interactive: false\n          }).addTo(map);\n        }\n      }\n\n      if (state.selected !== null && !pins[state.selected]) state.selected = null;\n      renderPreview();\n      overview = radius ? { bounds: radius.getBounds(), padding: [20, 20] } :\n        (bounds.length > 1 ? { bounds: bounds, padding: [40, 40] } :\n          (bounds.length === 1 ? { center: bounds[0] } : null));\n      fitOverview();\n      if (resetBtn) resetBtn.hidden = true;\n      setTimeout(function() {\n        map.invalidateSize();\n      }, 50);\n    }\n\n    \/** Cadre la carte sur la vue d'ensemble, sans afficher le bouton \u00ab Revenir\u2026 \u00bb *\/\n    function fitOverview() {\n      if (!map || !overview) return;\n      fitting = true;\n      if (overview.center) map.setView(overview.center, 13, { animate: false });\n      else map.fitBounds(overview.bounds, { padding: overview.padding, maxZoom: 13, animate: false });\n      setTimeout(function() {\n        fitting = false;\n      }, 50);\n    }\n\n    function highlightPin(id, on) {\n      var m = pins[id];\n      if (!m) return;\n      var it = BY_ID[id];\n      var selected = id === state.selected;\n      m.setIcon(pinIcon(catColor(it.type), on, selected));\n      m.setZIndexOffset(on || selected ? 1000 : 0);\n    }\n\n    \/** S\u00e9lectionne une fiche depuis la carte : rep\u00e8re mis en avant + fiche sous la carte *\/\n    function selectItem(id) {\n      var prev = state.selected;\n      state.selected = id;\n      if (prev !== null) highlightPin(prev, false);\n      highlightPin(id, false);\n      renderPreview();\n    }\n\n    function renderPreview() {\n      var box = document.getElementById('mv-preview');\n      if (!box) return;\n      box.innerHTML = '';\n      var it = state.selected !== null ? BY_ID[state.selected] : null;\n      if (!it) {\n        var hint = el('div', 'mv-preview-hint');\n        hint.appendChild(icon('pin'));\n        hint.appendChild(document.createTextNode(T.map_hint));\n        box.appendChild(hint);\n        return;\n      }\n      box.appendChild(card(it, false, true));\n    }\n\n    \/\/ \u2550\u2550\u2550 Modal \u2550\u2550\u2550\n    var modal = document.getElementById('mv-modal');\n    if (modal.parentNode !== document.body) document.body.appendChild(modal);\n    var content = document.getElementById('mv-modal-content');\n    content.style.setProperty('--mv-accent', ACCENT);\n    content.style.setProperty('--mv-accent-soft', ACCENT + '1a');\n    content.style.setProperty('--mv-cream', '#faf7f2');\n    content.style.setProperty('--mv-line', '#ebe5da');\n    content.style.setProperty('--mv-muted', '#6b6559');\n    var lastFocus = null;\n\n    function openModal(it) {\n      lastFocus = document.activeElement;\n      content.innerHTML = '';\n      content.style.setProperty('--mv-cat', catColor(it.type));\n\n      \/\/ Deux colonnes d\u00e8s le haut : m\u00e9dias \/ actions \u00e0 gauche, texte \u00e0 droite\n      var body = el('div', 'mv-modal-body');\n      var cols = el('div', 'mv-modal-cols');\n      var side = el('div', 'mv-modal-col mv-modal-col--media');\n      var main = el('div', 'mv-modal-col');\n      cols.appendChild(side);\n      cols.appendChild(main);\n      body.appendChild(cols);\n      var mainBody = body;\n\n      if (it.image) {\n        var img = el('img', 'mv-modal-img');\n        img.src = it.image;\n        img.alt = it.name;\n        img.onerror = function() {\n          img.remove();\n          if (cap) cap.remove();\n        };\n        side.appendChild(img);\n        var cap = null;\n        if (it.credit) {\n          cap = el('p', 'mv-modal-credit', 'Photo : ' + it.credit);\n          side.appendChild(cap);\n        }\n      }\n\n      body = main;\n      if (CATS[it.type]) {\n        var pill = el('span', 'mv-pill', CATS[it.type].label);\n        pill.style.alignSelf = 'flex-start';\n        body.appendChild(pill);\n      }\n      var t = el('h2', 'mv-modal-title', it.name);\n      t.id = 'mv-modal-title';\n      body.appendChild(t);\n      var meta = metaLine(it);\n      if (meta) body.appendChild(meta);\n      if (it.event) {\n        var ev = el('span', 'mv-modal-event');\n        ev.appendChild(icon('calendar'));\n        ev.appendChild(document.createTextNode(it.event));\n        body.appendChild(ev);\n      }\n      if (it.description) body.appendChild(el('p', 'mv-modal-desc', it.description));\n\n      if (it.fields.length) {\n        var f = el('div', 'mv-fields');\n        it.fields.forEach(function(fd) {\n          var d = el('div', 'mv-field');\n          d.appendChild(el('span', null, fd.label));\n          d.appendChild(el('strong', null, fd.value));\n          f.appendChild(d);\n        });\n        body.appendChild(f);\n      }\n\n      \/\/ Colonne m\u00e9dias (gauche)\n      body = side;\n      var actions = el('div', 'mv-modal-actions');\n      \/\/ Google Maps seulement si on sait o\u00f9 se trouve la fiche (sinon lien trompeur)\n      var gmTarget = mapsTarget(it);\n      if (gmTarget) {\n        var gm = el('a', 'mv-btn', gmTarget.label);\n        gm.href = gmTarget.url;\n        gm.target = '_blank';\n        gm.rel = 'noopener';\n        gm.insertBefore(icon('maps'), gm.firstChild);\n        actions.appendChild(gm);\n      }\n      if (it.link) {\n        var l = el('a', 'mv-btn mv-btn--ghost', T.official_site);\n        l.href = it.link;\n        l.target = '_blank';\n        l.rel = 'noopener';\n        l.appendChild(icon('arrow'));\n        actions.appendChild(l);\n      }\n      body.appendChild(actions);\n\n      if (it.video_url) {\n        body.appendChild(el('p', 'mv-modal-sub', T.video));\n        var e = it.video_embed;\n        if (e && (e.type === 'youtube' || e.type === 'vimeo') && e.src) {\n          var v = el('div', 'mv-video');\n          var fr = el('iframe');\n          fr.src = e.src;\n          fr.allowFullscreen = true;\n          fr.setAttribute('allow', 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture');\n          fr.referrerPolicy = 'strict-origin-when-cross-origin';\n          v.appendChild(fr);\n          body.appendChild(v);\n        } else if (e && e.type === 'file' && e.src) {\n          var vw = el('div', 'mv-video');\n          var vid = el('video');\n          vid.src = e.src;\n          vid.controls = true;\n          vid.preload = 'metadata';\n          vw.appendChild(vid);\n          body.appendChild(vw);\n        } else {\n          var vl = el('a', null, it.video_url);\n          vl.href = it.video_url;\n          vl.target = '_blank';\n          vl.rel = 'noopener';\n          body.appendChild(vl);\n        }\n      }\n\n      if (it.gallery.length) {\n        body.appendChild(el('p', 'mv-modal-sub', T.gallery));\n        var g = el('div', 'mv-gallery');\n        it.gallery.forEach(function(src) {\n          var a = el('a');\n          a.href = src;\n          a.target = '_blank';\n          a.rel = 'noopener';\n          var gi = el('img');\n          gi.src = src;\n          gi.alt = '';\n          gi.loading = 'lazy';\n          a.appendChild(gi);\n          g.appendChild(a);\n        });\n        body.appendChild(g);\n      }\n\n      var docs = it.documents.filter(function(d) {\n        return d && d.url;\n      });\n      if (docs.length) {\n        body.appendChild(el('p', 'mv-modal-sub', T.documents));\n        var dl = el('div', 'mv-docs');\n        docs.forEach(function(d) {\n          var a = el('a');\n          a.href = d.url;\n          a.target = '_blank';\n          a.rel = 'noopener';\n          a.appendChild(icon('doc'));\n          a.appendChild(document.createTextNode(d.nom || 'Document'));\n          dl.appendChild(a);\n        });\n        body.appendChild(dl);\n      }\n\n      if (it.faq.length) {\n        body = main; \/\/ la FAQ reste dans la colonne texte\n        body.appendChild(el('p', 'mv-modal-sub', T.faq));\n        var fq = el('div', 'mv-faq');\n        it.faq.forEach(function(qa) {\n          var det = el('details');\n          det.appendChild(el('summary', null, qa.question));\n          det.appendChild(el('p', null, qa.answer || T.no_answer));\n          fq.appendChild(det);\n        });\n        body.appendChild(fq);\n      }\n\n      content.appendChild(mainBody);\n      modal.hidden = false;\n      fitModal();\n      content.querySelectorAll('img, iframe, video').forEach(function(m) {\n        m.addEventListener('load', fitModal);\n        m.addEventListener('loadedmetadata', fitModal);\n      });\n      document.documentElement.style.overflow = 'hidden';\n      document.getElementById('mv-modal-close').focus();\n    }\n\n    \/**\n     * Agrandissement automatique : on passe au palier suivant tant que le contenu\n     * d\u00e9passe la hauteur disponible (sur grand \u00e9cran seulement).\n     *\/\n    function fitModal() {\n      var m = modal.querySelector('.mv-modal');\n      if (!m || modal.hidden) return;\n      m.classList.remove('is-wide', 'is-compact');\n      if (window.innerWidth <= 900) return;\n      var overflows = function() {\n        return m.scrollHeight > m.clientHeight + 2;\n      };\n      if (!overflows()) return;\n      m.classList.add('is-wide');\n      if (!overflows()) return;\n      m.classList.add('is-compact');\n    }\n    window.addEventListener('resize', function() {\n      if (!modal.hidden) fitModal();\n    });\n\n    \/** Lien Google Maps : coordonn\u00e9es si connues, sinon nom + ville \/ adresse *\/\n    \/**\n     * Cible Google Maps, par ordre de fiabilit\u00e9 :\n     *   1. coordonn\u00e9es de la fiche\n     *   2. nom + adresse (ou ville)\n     *   3. position de l'\u00e9tablissement (fiche sans lieu = \u00e9quipement sur place)\n     *   4. aucune \u2192 pas de bouton\n     *\/\n    function mapsTarget(it) {\n      var base = 'https:\/\/www.google.com\/maps\/search\/?api=1&query=';\n      if (it.lat !== null) return { url: base + encodeURIComponent(it.lat + ',' + it.lng), label: T.see_on_maps };\n      var where = it.address || it.city;\n      if (where) return { url: base + encodeURIComponent(it.name + ', ' + where), label: T.see_on_maps };\n      if (MAP.home) return { url: base + encodeURIComponent(MAP.home.lat + ',' + MAP.home.lng), label: T.see_place_on_maps };\n      return null;\n    }\n\n    function closeModal() {\n      modal.hidden = true;\n      document.documentElement.style.overflow = '';\n      if (lastFocus) lastFocus.focus();\n    }\n\n    document.getElementById('mv-modal-close').addEventListener('click', closeModal);\n    modal.addEventListener('click', function(e) {\n      if (e.target === modal) closeModal();\n    });\n    document.addEventListener('keydown', function(e) {\n      if (e.key === 'Escape' && !modal.hidden) closeModal();\n    });\n\n    \/\/ \u2550\u2550\u2550 Contr\u00f4les \u2550\u2550\u2550\n    \/**\n     * Hauteur occup\u00e9e en haut de l'\u00e9cran par les barres fixes \/ collantes du site\n     * (barre d'admin, en-t\u00eate, barre de r\u00e9servation\u2026), quelle que soit leur classe :\n     * on sonde le haut de l'\u00e9cran et on empile les barres trouv\u00e9es.\n     *\/\n    function headerOffset() {\n      var bottom = 0;\n      var vw = window.innerWidth,\n        vh = window.innerHeight;\n      var isBar = function(el) {\n        if (!el || el === document.body || el === document.documentElement) return false;\n        if (el.closest('#mv-app, .ea-modal-overlay, .mv-modal-overlay')) return false;\n        var pos = getComputedStyle(el).position;\n        if (pos !== 'fixed' && pos !== 'sticky') return false;\n        var r = el.getBoundingClientRect();\n        \/\/ vraie barre : large, pas trop haute (exclut bulles de chat, boutons flottants, popups)\n        return r.width >= vw * 0.3 && r.height > 0 && r.height < vh * 0.45;\n      };\n      for (var pass = 0; pass < 5; pass++) {\n        var y = bottom + 2,\n          found = 0;\n        if (y >= vh * 0.5) break;\n        [0.15, 0.5, 0.85].forEach(function(fx) {\n          (document.elementsFromPoint(vw * fx, y) || []).forEach(function(el) {\n            for (var n = el; n && n !== document.body; n = n.parentElement) {\n              if (isBar(n)) {\n                var r = n.getBoundingClientRect();\n                if (r.top <= y + 1 && r.bottom > found) found = r.bottom;\n                break;\n              }\n            }\n          });\n        });\n        if (found <= bottom) break;\n        bottom = found;\n      }\n      app.style.setProperty('--mv-header', Math.round(bottom) + 'px');\n      return bottom;\n    }\n\n    var searchTimer = null;\n    document.getElementById('mv-search').addEventListener('input', function(e) {\n      clearTimeout(searchTimer);\n      searchTimer = setTimeout(function() {\n        state.q = e.target.value;\n        state.limit = STEP;\n      state.page = 1;\n        renderList();\n      }, 150);\n    });\n\n    var dist = document.getElementById('mv-distance');\n    if (dist) {\n      dist.querySelectorAll('button').forEach(function(b) {\n        b.addEventListener('click', function() {\n          state.km = parseInt(b.getAttribute('data-km'), 10) || 0;\n          state.limit = STEP;\n      state.page = 1;\n          dist.querySelectorAll('button').forEach(function(x) {\n            x.classList.toggle('is-active', x === b);\n          });\n          renderList();\n        });\n      });\n    }\n\n    var viewSeg = document.getElementById('mv-view');\n    var layoutEl = document.getElementById('mv-layout');\n\n    function setView(v) {\n      state.view = v;\n      layoutEl.classList.toggle('is-list', v === 'list');\n      viewSeg.querySelectorAll('button').forEach(function(x) {\n        x.classList.toggle('is-active', x.getAttribute('data-view') === v);\n      });\n      if (map) setTimeout(function() {\n        map.invalidateSize();\n      }, 60);\n    }\n    viewSeg.querySelectorAll('button').forEach(function(b) {\n      b.addEventListener('click', function() {\n        setView(b.getAttribute('data-view'));\n      });\n    });\n\n    \/\/ Pas de carte si aucune fiche n'est g\u00e9olocalis\u00e9e\n    if (!ITEMS.some(function(it) {\n        return it.lat !== null;\n      })) {\n      viewSeg.style.display = 'none';\n      state.view = 'list';\n    }\n\n    headerOffset();\n    window.addEventListener('resize', headerOffset);\n    \/\/ Les barres du site peuvent appara\u00eetre au d\u00e9filement (barre de r\u00e9servation\u2026)\n    var hoTicking = false;\n    window.addEventListener('scroll', function() {\n      if (hoTicking) return;\n      hoTicking = true;\n      requestAnimationFrame(function() {\n        headerOffset();\n        hoTicking = false;\n      });\n    }, { passive: true });\n    var lastCols = null,\n      resizeTimer = null;\n    window.addEventListener('resize', function() {\n      clearTimeout(resizeTimer);\n      resizeTimer = setTimeout(function() {\n        var c = gridColumns();\n        if (lastCols !== null && c !== lastCols) renderList();\n        lastCols = c;\n      }, 200);\n    });\n    renderCats();\n    renderIdeas();\n    setView(state.view);\n    renderList();\n    renderPreview();\n    initMap();\n  })();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-11836","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Discover around you - Camping Ur-Onea<\/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.uronea.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 Ur-Onea\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.uronea.com\/en\/elaia-metadatas\/\" \/>\n<meta property=\"og:site_name\" content=\"Camping Ur-Onea\" \/>\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.uronea.com\/en\/elaia-metadatas\/\",\"url\":\"https:\/\/www.uronea.com\/en\/elaia-metadatas\/\",\"name\":\"Discover around you - Camping Ur-Onea\",\"isPartOf\":{\"@id\":\"https:\/\/www.uronea.com\/en\/#website\"},\"datePublished\":\"2026-10-20T20:46:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.uronea.com\/en\/elaia-metadatas\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.uronea.com\/en\/elaia-metadatas\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.uronea.com\/en\/elaia-metadatas\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Campsite Bidart\",\"item\":\"https:\/\/www.uronea.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Discover around you\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.uronea.com\/en\/#website\",\"url\":\"https:\/\/www.uronea.com\/en\/\",\"name\":\"Camping Ur-Onea\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.uronea.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Discover around you - Camping Ur-Onea","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.uronea.com\/en\/elaia-metadatas\/","og_locale":"en_US","og_type":"article","og_title":"Discover around you - Camping Ur-Onea","og_url":"https:\/\/www.uronea.com\/en\/elaia-metadatas\/","og_site_name":"Camping Ur-Onea","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.uronea.com\/en\/elaia-metadatas\/","url":"https:\/\/www.uronea.com\/en\/elaia-metadatas\/","name":"Discover around you - Camping Ur-Onea","isPartOf":{"@id":"https:\/\/www.uronea.com\/en\/#website"},"datePublished":"2026-10-20T20:46:25+00:00","breadcrumb":{"@id":"https:\/\/www.uronea.com\/en\/elaia-metadatas\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.uronea.com\/en\/elaia-metadatas\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.uronea.com\/en\/elaia-metadatas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Campsite Bidart","item":"https:\/\/www.uronea.com\/en\/"},{"@type":"ListItem","position":2,"name":"Discover around you"}]},{"@type":"WebSite","@id":"https:\/\/www.uronea.com\/en\/#website","url":"https:\/\/www.uronea.com\/en\/","name":"Camping Ur-Onea","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.uronea.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.uronea.com\/en\/wp-json\/wp\/v2\/pages\/11836"}],"collection":[{"href":"https:\/\/www.uronea.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.uronea.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.uronea.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.uronea.com\/en\/wp-json\/wp\/v2\/comments?post=11836"}],"version-history":[{"count":0,"href":"https:\/\/www.uronea.com\/en\/wp-json\/wp\/v2\/pages\/11836\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.uronea.com\/en\/wp-json\/wp\/v2\/media?parent=11836"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}