{"id":2098,"date":"2026-10-20T14:26:08","date_gmt":"2026-10-20T12:26:08","guid":{"rendered":"https:\/\/www.chalets-de-fiolles.com\/elaia-metadatas-2\/"},"modified":"2026-10-20T14:27:10","modified_gmt":"2026-10-20T12:27:10","slug":"elaia-metadatas","status":"publish","type":"page","link":"https:\/\/www.chalets-de-fiolles.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\":\"Gabarit - Fiche Villes \\u0026 Villages\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Gaillac\",\"description\":\"Gaillac is a lively wine-growing town in Tarn, known for its cellars and pleasant setting on the banks of the Tarn. It offers a mix of historic heritage, colorful facades, and welcoming terraces, ideal for a half-day or a family day out.\",\"image\":\"https:\/\/www.tourisme-tarn.com\/wp-content\/uploads\/2018\/07\/73_-abbaye_st.michel_gaillac_raynaud-photo-3-1-1200x800.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.900002,\"longitude\":1.91667},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name\",\"value\":\"Gaillac\"},{\"@type\":\"PropertyValue\",\"name\":\"Type\",\"value\":\"(*) ville, ( ) village, ( ) bourg, ( ) hameau, ( ) cit\u00e9, ( ) chef-lieu, ( ) contraire\"},{\"@type\":\"PropertyValue\",\"name\":\"Department\",\"value\":\"81\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance from the campsite (km)\",\"value\":\"2\"},{\"@type\":\"PropertyValue\",\"name\":\"Travel time from the campsite (min)\",\"value\":\"6\"},{\"@type\":\"PropertyValue\",\"name\":\"Highlights \/ Assets\",\"value\":\"Vineyards and tastings, charming city center, walks along the Tarn, local markets, friendly atmosphere.\"},{\"@type\":\"PropertyValue\",\"name\":\"Must-see places\",\"value\":\"Saint-Michel Church, Old Ramparts Tower, 18th-century mansions, wineries and vineyards.\"},{\"@type\":\"PropertyValue\",\"name\":\"Markets \/ Fairs\",\"value\":\"Les mardis Noctambio \u00e0 partir de 16h place du Griffoul\\nLes vendredis matin place de la Lib\u00e9ration et du Griffoul\\nLes dimanches matin place du Griffoul\"},{\"@type\":\"PropertyValue\",\"name\":\"City Events\",\"value\":\"Seasonal festivals and markets; summer music festival; craft fairs and tastings in local cellars.\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"Cordes-sur-Ciel\",\"description\":\"Cordes-sur-Ciel is a perched medieval town, ranked among the most beautiful villages. Its cobbled streets, medieval facades, and panoramic views make it a must-explore destination for history and culture enthusiasts.\",\"image\":\"https:\/\/www.la-toscane-occitane.com\/app\/uploads\/iris-images\/18327\/rando-cordes-sur-ciel-randonneur-grain-de-sel-french-wanderers-1920x1080-f50_50.webp\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.0636623,\"longitude\":1.9509283},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name\",\"value\":\"Cordes-sur-Ciel\"},{\"@type\":\"PropertyValue\",\"name\":\"Type\",\"value\":\"(*) ville, ( ) village, ( ) bourg, ( ) hameau, ( ) cit\u00e9, ( ) chef-lieu, ( ) contraire\"},{\"@type\":\"PropertyValue\",\"name\":\"Department\",\"value\":\"81\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance from the campsite (km)\",\"value\":\"0\"},{\"@type\":\"PropertyValue\",\"name\":\"Travel time from the campsite (min)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Highlights \/ Assets\",\"value\":\"Medieval architecture, artisan shops, panoramic views, medieval atmosphere, summer festivals.\"},{\"@type\":\"PropertyValue\",\"name\":\"Must-see places\",\"value\":\"Medieval halls, Saint-Michel Church, ramparts and viewpoints, artisan shops, typical alleys.\"},{\"@type\":\"PropertyValue\",\"name\":\"Markets \/ Fairs\",\"value\":\"Les Samedis\\tde 07h30 \u00e0 13h00\"},{\"@type\":\"PropertyValue\",\"name\":\"City Events\",\"value\":\"Medieval markets and summer festivals; cultural events in the old city.\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Albi\",\"description\":\"Albi is a historic city dominated by its Sainte-C\u00e9cile Cathedral and the Toulouse-Lautrec Museum. Its promenade along the Tarn and its listed city center offer an ideal blend of culture and nature.\",\"image\":\"https:\/\/www.albi-tourisme.fr\/app\/uploads\/iris-images\/32427\/albi-la-cite-episcopale-vue-aerienne-credit-qb-pixels-pour-albi-tourism2-1220x680-f50_50.webp\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.9246985,\"longitude\":2.1477538},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name\",\"value\":\"Albi\"},{\"@type\":\"PropertyValue\",\"name\":\"Type\",\"value\":\"(*) ville, ( ) village, ( ) bourg, ( ) hameau, ( ) cit\u00e9, ( ) chef-lieu, ( ) contraire\"},{\"@type\":\"PropertyValue\",\"name\":\"Department\",\"value\":\"81\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance from the campsite (km)\",\"value\":\"0\"},{\"@type\":\"PropertyValue\",\"name\":\"Travel time from the campsite (min)\",\"value\":\"15\"},{\"@type\":\"PropertyValue\",\"name\":\"Highlights \/ Assets\",\"value\":\"UNESCO Cathedral, Toulouse-Lautrec Museum, historic district, local gastronomy.\"},{\"@type\":\"PropertyValue\",\"name\":\"Must-see places\",\"value\":\"Sainte-C\u00e9cile Cathedral, Toulouse-Lautrec Museum, William Bridge, old town and gardens.\"},{\"@type\":\"PropertyValue\",\"name\":\"Markets \/ Fairs\",\"value\":\"Mardi de 7h \u00e0 13h \u2013 Place Fernand Pelloutier \u00e0 Albi. \\nJeudi de 7h \u00e0 13h \u2013 Place du march\u00e9 \u00e0 Saint-Ju\u00e9ry. \\nSamedi de 7h \u00e0 13h \u2013 Place Fernand Pelloutier, boulevard de Strasbourg et tout autour du March\u00e9 couvert.\"},{\"@type\":\"PropertyValue\",\"name\":\"City Events\",\"value\":\"Summer festivals, outdoor concerts, cultural festivals, weekly markets.\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Puycelsi\",\"description\":\"Puycelsi is a perched bastide village offering views over the surrounding valleys and a preserved medieval atmosphere, perfect for a peaceful getaway in the heart of Tarn.\",\"image\":\"https:\/\/puycelsi.fr\/wp-content\/uploads\/sites\/136\/2022\/11\/cropped-puycelsi01.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.9668315,\"longitude\":1.7185305},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name\",\"value\":\"Puycelsi\"},{\"@type\":\"PropertyValue\",\"name\":\"Type\",\"value\":\"( ) ville, (*) village, ( ) bourg, ( ) hameau, ( ) cit\u00e9, ( ) chef-lieu, ( ) contraire\"},{\"@type\":\"PropertyValue\",\"name\":\"Department\",\"value\":\"81\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance from the campsite (km)\",\"value\":\"0\"},{\"@type\":\"PropertyValue\",\"name\":\"Travel time from the campsite (min)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Highlights \/ Assets\",\"value\":\"Medieval bastide, panoramic views, old alleys, bucolic setting.\"},{\"@type\":\"PropertyValue\",\"name\":\"Must-see places\",\"value\":\"Ch\u00e2teau de Puycelsi and medieval alleys, panoramic view of Tarn countryside.\"},{\"@type\":\"PropertyValue\",\"name\":\"Markets \/ Fairs\",\"value\":\"Rendez-vous au village les 1er et 8 mai pour rencontrer producteurs et artisans locaux. Restauration gourmande sur place. Profitez de l'occasion pour (re)visiter le village et ses commerces.\"},{\"@type\":\"PropertyValue\",\"name\":\"City Events\",\"value\":\"Medieval festivals and local activities during summer.\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"Lavaur\",\"description\":\"Lavaur is a small town surrounded by greenery, with a rich historical heritage and charming alleys, perfect for a peaceful visit with cafes and local markets.\",\"image\":\"https:\/\/www.tourisme-tarn.com\/wp-content\/uploads\/wpetourisme\/3638267-diaporama.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.6994114,\"longitude\":1.8176693},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name\",\"value\":\"Lavaur\"},{\"@type\":\"PropertyValue\",\"name\":\"Type\",\"value\":\"(*) ville, ( ) village, ( ) bourg, ( ) hameau, ( ) cit\u00e9, ( ) chef-lieu, ( ) contraire\"},{\"@type\":\"PropertyValue\",\"name\":\"Department\",\"value\":\"81\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance from the campsite (km)\",\"value\":\"0\"},{\"@type\":\"PropertyValue\",\"name\":\"Travel time from the campsite (min)\",\"value\":\"35\"},{\"@type\":\"PropertyValue\",\"name\":\"Highlights \/ Assets\",\"value\":\"Pleasant historic center, local markets, Tarn cuisine, friendly local life.\"},{\"@type\":\"PropertyValue\",\"name\":\"Must-see places\",\"value\":\"Notre-Dame de Lavaur Church, G\u00e9n\u00e9ral de Gaulle Square, old town and green landscapes.\"},{\"@type\":\"PropertyValue\",\"name\":\"Markets \/ Fairs\",\"value\":\"\u2013 le petit march\u00e9 du mercredi est r\u00e9serv\u00e9 aux producteurs locaux,\\n\u2013 le march\u00e9 du samedi est ouvert \u00e0 tous : charcuterie, boucherie, boulangerie, poissonnerie, fromagerie, volailler, primeur et autres producteurs divers en fruits et l\u00e9gumes de saisons, mais aussi, chapellerie, v\u00eatements et accessoires, chaussures, quincaillerie, friperie, bouquinistes et divers camelots.\"},{\"@type\":\"PropertyValue\",\"name\":\"City Events\",\"value\":\"Local festivals and seasonal markets, cultural events during summer.\"}]}}]},{\"@type\":\"ItemList\",\"name\":\"Gabarit Activit\u00e9s \u00e0 proximit\u00e9\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Cordes-sur-Ciel - medieval village\",\"description\":\"Discover the fortified village of Cordes-sur-Ciel, ranked among the most beautiful villages in France. Walk through cobbled streets, enjoy spectacular views, and see typical medieval architecture from the Tarn region.\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name\",\"value\":\"Cordes-sur-Ciel - medieval village\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance from the campsite (km)\",\"value\":\"35\"},{\"@type\":\"PropertyValue\",\"name\":\"Travel time from the campsite (min)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Type\",\"value\":\"( ) Nature, ( ) Sport, (*) Culture, ( ) Gastronomie, ( ) Aventure, ( ) Famille, ( ) \u00c9ducatif, ( ) Bien-\u00eatre\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"(*) Famille, ( ) Enfants, ( ) Adultes, ( ) Seniors, ( ) Ados, ( ) Couples, ( ) Groupe\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"( ) Oui, ( ) Non\"},{\"@type\":\"PropertyValue\",\"name\":\"Languages spoken\",\"value\":\"( ) Anglais, ( ) Fran\u00e7ais, ( ) Allemand, ( ) Espagnol, ( ) N\u00e9erlandais, ( ) Italiens\"},{\"@type\":\"PropertyValue\",\"name\":\"Pets accepted\",\"value\":\"( ) Oui, ( ) Non, ( ) Sur demande, ( ) \u00c0 confirmer\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"Gaillac and its vineyards\",\"description\":\"Explore the vineyards of Gaillac and visit local cellars to learn about Tarn\u2019s wine-making history and its typical grape varieties.\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name\",\"value\":\"Gaillac and its vineyards\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance from the campsite (km)\",\"value\":\"18\"},{\"@type\":\"PropertyValue\",\"name\":\"Travel time from the campsite (min)\",\"value\":\"25\"},{\"@type\":\"PropertyValue\",\"name\":\"Type\",\"value\":\"( ) Nature, ( ) Sport, ( ) Culture, (*) Gastronomie, ( ) Aventure, ( ) Famille, ( ) \u00c9ducatif, ( ) Bien-\u00eatre\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"( ) Famille, ( ) Enfants, (*) Adultes, ( ) Seniors, ( ) Ados, ( ) Couples, ( ) Groupe\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"( ) Oui, ( ) Non\"},{\"@type\":\"PropertyValue\",\"name\":\"Languages spoken\",\"value\":\"( ) Anglais, ( ) Fran\u00e7ais, ( ) Allemand, ( ) Espagnol, ( ) N\u00e9erlandais, ( ) Italiens\"},{\"@type\":\"PropertyValue\",\"name\":\"Pets accepted\",\"value\":\"( ) Oui, ( ) Non, ( ) Sur demande, ( ) \u00c0 confirmer\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Albi and the Sainte-Caix Cathedral (UNESCO)\",\"description\":\"Visit the episcopal city of Albi and its UNESCO-listed cathedral, a major testament to Tarn\u2019s heritage.\",\"image\":\"https:\/\/www.albi-tourisme.fr\/app\/uploads\/iris-images\/117\/20210826-101926-1920x1080-f50_50.jpg\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name\",\"value\":\"Albi and the Sainte-Caix Cathedral (UNESCO)\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance from the campsite (km)\",\"value\":\"25\"},{\"@type\":\"PropertyValue\",\"name\":\"Travel time from the campsite (min)\",\"value\":\"15\"},{\"@type\":\"PropertyValue\",\"name\":\"Type\",\"value\":\"( ) Nature, ( ) Sport, (*) Culture, ( ) Gastronomie, ( ) Aventure, ( ) Famille, ( ) \u00c9ducatif, ( ) Bien-\u00eatre\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"( ) Famille, ( ) Enfants, (*) Adultes, ( ) Seniors, ( ) Ados, ( ) Couples, ( ) Groupe\"},{\"@type\":\"PropertyValue\",\"name\":\"Price\",\"value\":\"Visites individuelles : 6 \u20ac par personne, gratuit\u00e9 pour les moins de 14 ans et pour les personnes en situation de handicap et leur accompagnateur. Ce tarif comprend l'acc\u00e8s au ch\u0153ur des chanoines et aux salles du tr\u00e9sor, ainsi que le pr\u00eat d'un audioguide. Pour les groupes \u00e0 partir de dix personnes : 5 \u20ac par personne. Ce tarif comprend les m\u00eames prestations, avec le pr\u00eat d'un audioguide ou d'un audiophone si le groupe est accompagn\u00e9 par un guide. Visites de groupes scolaires : 8 \u20ac pour une classe de trente \u00e9l\u00e8ves, gratuit\u00e9 pour les enseignants et les accompagnateurs. Ce tarif comprend les m\u00eames prestations que pr\u00e9c\u00e9demment.\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"( ) Oui, (*) Non\"},{\"@type\":\"PropertyValue\",\"name\":\"Schedule\",\"value\":\"OUVERT TOUS LES JOURS  DE 10 h \u00c0 18 h 30\"},{\"@type\":\"PropertyValue\",\"name\":\"Info and contact\",\"value\":\"Place  Sainte-C\u00e9cile\\n81000 ALBI\\nMail : cathedrale.ste.cecile@gmail.com\\nT\u00e9l\u00e9phone : 05 63 38 47 40\"},{\"@type\":\"PropertyValue\",\"name\":\"Languages spoken\",\"value\":\"( ) Anglais, (*) Fran\u00e7ais, ( ) Allemand, ( ) Espagnol, ( ) N\u00e9erlandais, ( ) Italiens\"},{\"@type\":\"PropertyValue\",\"name\":\"Pets accepted\",\"value\":\"( ) Oui, ( ) Non, ( ) Sur demande, (*) \u00c0 confirmer\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Bord du Tarn and water activities\",\"description\":\"Walk along the Tarn River and enjoy canoe\/kayak activities in the region to experience a pleasant natural setting.\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name\",\"value\":\"Bord du Tarn and water activities\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance from the campsite (km)\",\"value\":\"10\"},{\"@type\":\"PropertyValue\",\"name\":\"Travel time from the campsite (min)\",\"value\":\"20\"},{\"@type\":\"PropertyValue\",\"name\":\"Type\",\"value\":\"(*) Nature, ( ) Sport, ( ) Culture, ( ) Gastronomie, ( ) Aventure, ( ) Famille, ( ) \u00c9ducatif, ( ) Bien-\u00eatre\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"(*) Famille, ( ) Enfants, ( ) Adultes, ( ) Seniors, ( ) Ados, ( ) Couples, ( ) Groupe\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"( ) Oui, ( ) Non\"},{\"@type\":\"PropertyValue\",\"name\":\"Languages spoken\",\"value\":\"( ) Anglais, ( ) Fran\u00e7ais, ( ) Allemand, ( ) Espagnol, ( ) N\u00e9erlandais, ( ) Italiens\"},{\"@type\":\"PropertyValue\",\"name\":\"Pets accepted\",\"value\":\"( ) Oui, ( ) Non, ( ) Sur demande, ( ) \u00c0 confirmer\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"Perched villages and excursions around Brens\",\"description\":\"Short routes to bastides and perched villages in the surroundings (Cordes-sur-Ciel, Puycelsi) with landscapes and heritage to explore with family or friends.\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Name\",\"value\":\"Perched villages and excursions around Brens\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance from the campsite (km)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Travel time from the campsite (min)\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Type\",\"value\":\"(*) Nature, ( ) Sport, ( ) Culture, ( ) Gastronomie, ( ) Aventure, ( ) Famille, ( ) \u00c9ducatif, ( ) Bien-\u00eatre\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"( ) Famille, ( ) Enfants, ( ) Adultes, ( ) Seniors, ( ) Ados, ( ) Couples, (*) Groupe\"},{\"@type\":\"PropertyValue\",\"name\":\"Reservation\",\"value\":\"( ) Oui, (*) Non\"},{\"@type\":\"PropertyValue\",\"name\":\"Languages spoken\",\"value\":\"( ) Anglais, ( ) Fran\u00e7ais, ( ) Allemand, ( ) Espagnol, ( ) N\u00e9erlandais, ( ) Italiens\"},{\"@type\":\"PropertyValue\",\"name\":\"Pets accepted\",\"value\":\"( ) Oui, ( ) Non, ( ) Sur demande, ( ) \u00c0 confirmer\"}]}}]},{\"@type\":\"ItemList\",\"name\":\"\u00c9v\u00e9nements locaux\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Market - Fernand Pelloutier Square\",\"description\":\"Fernand Pelloutier Square, just 10 minutes from the historic center, a dozen traders set up their stalls to offer the public fruits, vegetables, meats, and more!\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.925667,\"longitude\":2.152635},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Market - Fernand Pelloutier Square\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Albi\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81000\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"Brens Market\",\"description\":\"Come and do your shopping for fresh and local products!\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.889635,\"longitude\":1.90953},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Brens Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Brens\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81600\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Graulhet Sunday Morning Market\",\"description\":\"The weekly market takes place in the heart of the town, Place de la R\u00e9publique and Place du Jourdain.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.761937,\"longitude\":1.989962},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Graulhet Sunday Morning Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Graulhet\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81300\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Thursday Morning Market in Graulhet\",\"description\":\"In a friendly atmosphere, find everything you need at the Thursday market.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.761937,\"longitude\":1.989962},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Thursday Morning Market in Graulhet\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Graulhet\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81300\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"Producer's Market in Lavaur\",\"description\":\"Small market dedicated to local producers.\",\"url\":\"http:\/\/www.ville-lavaur.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.69903,\"longitude\":1.815034},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Producer's Market in Lavaur\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Lavaur\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81500\"}]}},{\"@type\":\"ListItem\",\"position\":6,\"item\":{\"@type\":\"Thing\",\"name\":\"Small Salvagnac Market\",\"description\":\"Throughout the year, come discover the Salvagnac market from 8 am. Fruits, vegetables, butchery, pizzas, and fish await you.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.905603,\"longitude\":1.687194},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Small Salvagnac Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Salvagnac\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81630\"}]}},{\"@type\":\"ListItem\",\"position\":7,\"item\":{\"@type\":\"Thing\",\"name\":\"Lescure d'Albigeois Outdoor Market\",\"description\":\"The Lescure market: a producer market\",\"url\":\"https:\/\/www.lescure-albigeois.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.953145,\"longitude\":2.170234},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Lescure d'Albigeois Outdoor Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Lescure-d'Albigeois\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81380\"}]}},{\"@type\":\"ListItem\",\"position\":8,\"item\":{\"@type\":\"Thing\",\"name\":\"Saint-Paul-Cap-de-Joux Weekly Market\",\"description\":\"Every Tuesday morning, a small farmers' market in the village square! Good fresh local products for everyone!\",\"url\":\"http:\/\/www.saintpaulcapdejoux.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.647721,\"longitude\":1.975614},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Saint-Paul-Cap-de-Joux Weekly Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Saint-Paul-Cap-de-Joux\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81220\"}]}},{\"@type\":\"ListItem\",\"position\":9,\"item\":{\"@type\":\"Thing\",\"name\":\"Little Saint-Pierre District Market - Graulhet\",\"description\":\"Some food vendors offer their local products and vegetables in short supply chains.\",\"url\":\"https:\/\/www.ville-graulhet.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.760292,\"longitude\":2.004637},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Little Saint-Pierre District Market - Graulhet\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Graulhet\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81300\"}]}},{\"@type\":\"ListItem\",\"position\":10,\"item\":{\"@type\":\"Thing\",\"name\":\"Arth\u00e8s Outdoor Market\",\"description\":\"Every Saturday morning, find the Arth\u00e8s market at the Fran\u00e7ois Mitterrand Square.\",\"url\":\"http:\/\/www.mairie-arthes.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.954166,\"longitude\":2.206821},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Arth\u00e8s Outdoor Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Arth\u00e8s\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81160\"}]}},{\"@type\":\"ListItem\",\"position\":11,\"item\":{\"@type\":\"Thing\",\"name\":\"Madeleine Market\",\"description\":\"Boulevard de Strasbourg, just 5 minutes from the historic center, about thirty vendors set up their stalls to offer fruits, vegetables, meats, and more!\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.933905,\"longitude\":2.146379},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Madeleine Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Albi\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81000\"}]}},{\"@type\":\"ListItem\",\"position\":12,\"item\":{\"@type\":\"Thing\",\"name\":\"Cabaret Evening at the Farm\",\"description\":\"7:00 PM: Welcome - 8:00 PM: Meal - 10:00 PM: Show\",\"url\":\"https:\/\/lesfoliesfermieres.com\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.710799,\"longitude\":1.708941},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Cabaret Evening at the Farm\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Other events\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Garrigues\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81500\"}]}},{\"@type\":\"ListItem\",\"position\":13,\"item\":{\"@type\":\"Thing\",\"name\":\"Barri\u00e8res Producers Market\",\"description\":\"All year round, take time to browse this small producers' market, a true concentrate of local flavors. You'll find a selection of local producers: seasonal vegetables, cheeses, and caterer's dishes.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.894636,\"longitude\":1.762771},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Barri\u00e8res Producers Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Lisle-sur-Tarn\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81310\"}]}},{\"@type\":\"ListItem\",\"position\":14,\"item\":{\"@type\":\"Thing\",\"name\":\"\u00c9cho Loco \/ Noctambio de Labastide Saint-Georges\",\"description\":\"Every Thursday from 5 p.m. to 7 p.m. in Place de la Fraternit\u00e9, come and find your farmers\u2019 and organic market.\\r\\nYou will find a wide range of organic and local products.\\r\\nFree parking.\",\"url\":\"https:\/\/www.nptarn.org\/evenements\/les-noctambios#17\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.699387,\"longitude\":1.841832},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"\u00c9cho Loco \/ Noctambio de Labastide Saint-Georges\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Labastide-Saint-Georges\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81500\"}]}},{\"@type\":\"ListItem\",\"position\":15,\"item\":{\"@type\":\"Thing\",\"name\":\"March\u00e9 de la Guilde Laroque\",\"description\":\"Weekly market at the Guilde Laroque\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.699594,\"longitude\":2.194254},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"March\u00e9 de la Guilde Laroque\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Peyregoux\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81440\"}]}},{\"@type\":\"ListItem\",\"position\":16,\"item\":{\"@type\":\"Thing\",\"name\":\"JAM SOULEY\",\"description\":\"Let yourself be carried away by the warm atmosphere of an evening dedicated to live music and the joy of playing together. Whether you are an experienced musician, a beginner or simply a lover of great encounters, you will find a space for exchange where everyone can bring their personal touch.\\n\\nAs the evening unfolds, you can listen, improvise, share a tune or discover new musical worlds in a friendly and relaxed atmosphere. All styles and all instruments are welcome, encouraging encounters and spontaneous creativity.\\n\\nMeet at the Auberge de Loubens Lauragais from 7:30 pm to enjoy a moment of music, sharing and good cheer, driven by the collective desire to play together.\",\"image\":\"http:\/\/cdt31.media.tourinsoft.eu\/upload\/833701878-1056445880720710-742694986371225743-n.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.5733655,\"longitude\":1.7846495},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"JAM SOULEY\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Concerts, music \\u0026 festivals\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Loubens-Lauragais\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"31460\"}]}},{\"@type\":\"ListItem\",\"position\":17,\"item\":{\"@type\":\"Thing\",\"name\":\"TOURISM AND CULTURE EVENTS - DISCOVER SPIRULINA\",\"description\":\"Nicolas Fourtouil, after a career in transport and aeronautical logistics, decided to grow this aquatic micro-organism on the outskirts of Toulouse. His project: local production, a human-scale farm, a product intended for the people of Toulouse. During the educational visit, which lasts about 1 hour, Nicolas will tell you all about the origins, the benefits and the cultivation of this \u201csuperfood\u201d as the WHO describes spirulina.\\n\\nYou will also learn that spirulina is one of the 9 staple foods of astronauts, that its cultivation uses very little energy, and that everyone can find a benefit in consuming it, and more. To see everything and learn everything, sign up!\",\"url\":\"http:\/\/www.spirulinetolosane.com\/event-details\/visitez-la-ferme-de-spiruline-tolosane-2026-01-21-14-30\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.732276,\"longitude\":1.524838},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"TOURISM AND CULTURE EVENTS - DISCOVER SPIRULINA\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Other events\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Bazus\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"31380\"}]}},{\"@type\":\"ListItem\",\"position\":18,\"item\":{\"@type\":\"Thing\",\"name\":\"Organic and local producers' market in Teulat\",\"description\":\"Meet every Thursday of the year, from 5 p.m. to 8 p.m., under the Hall of the public garden of Teulat to discover a market of local and organic produce, offered by the producers of the village and the surrounding area.\",\"url\":\"https:\/\/mairie-teulat.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.6333,\"longitude\":1.7},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Organic and local producers' market in Teulat\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Teulat\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81500\"}]}},{\"@type\":\"ListItem\",\"position\":19,\"item\":{\"@type\":\"Thing\",\"name\":\"Monthly market of Vielmur-sur-Agout\",\"description\":\"Open-air market in Vielmur. Come and meet the producers.\",\"url\":\"http:\/\/lepaysdecocagne.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.619874,\"longitude\":2.090325},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Monthly market of Vielmur-sur-Agout\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Vielmur-sur-Agout\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81570\"}]}},{\"@type\":\"ListItem\",\"position\":20,\"item\":{\"@type\":\"Thing\",\"name\":\"ASSEMBLY WORKSHOP AT CH\u00c2TEAU LA LOGE\",\"description\":\"Every second Saturday of the month, Maxime welcomes you to the estate for a morning dedicated to creativity and conviviality (from 10 a.m. to 12 p.m.)!\\n\\nForget boring theory: here, you touch, smell, taste and blend.\\n\\n1 - We explore our 6 ha of organic vineyards together.\\n2 - We handle test tubes and play with the grape varieties to find the perfect balance.\\n3 - You leave with a unique souvenir: your own personalized 75 cl bottle!\\n\\nIt is friendly, professional and accessible to everyone, whether you are an expert or simply curious.\\n\\nWorkshop confirmed from 6 participants (perfect for groups!) - Limited places, booking required.\",\"image\":\"http:\/\/cdt31.media.tourinsoft.eu\/upload\/atelier-assemblage-la-loge.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.818511,\"longitude\":1.492355},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"ASSEMBLY WORKSHOP AT CH\u00c2TEAU LA LOGE\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Other events\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Villematier\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"31340\"}]}},{\"@type\":\"ListItem\",\"position\":21,\"item\":{\"@type\":\"Thing\",\"name\":\"17TH PLANT DAYS AT CHATEAU DE BONREPOS RIQUET\",\"description\":\"For a whole weekend, many exhibitors from the region and beyond will present their plant collections, including many rare, old or little-known species. Specialized nurseries, growers, collectors and artisans will share their expertise and advice with visitors.\\n\\nThis event will be an opportunity to discover a great diversity of plants: perennials, shrubs, citrus fruits, bulbs and rhizomes, grasses, collector irises, orchids, carnivorous plants, aromatic and medicinal plants, roses, heritage varieties and other carefully selected botanical treasures.\\n\\nIn the exceptional setting of Domaine de Bonrepos-Riquet, visitors will be able to talk with passionate professionals, learn about environmentally friendly gardening practices and find plenty of ideas to enhance gardens, terraces and balconies.\\n\\nBeyond the horticultural aspect, these Plant Days will also offer a moment of strolling and discovery, in a friendly and family atmosphere.\\n\\nWhether you are an amateur gardener, an experienced collector or simply curious, this event promises a true immersion in the fascinating world of plants.\",\"url\":\"https:\/\/www.bonrepos-riquet.fr\/index.php\/chateau\",\"image\":\"http:\/\/cdt31.media.tourinsoft.eu\/upload\/JPLANTES2026.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.676309,\"longitude\":1.6246428},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"17TH PLANT DAYS AT CHATEAU DE BONREPOS RIQUET\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Concerts, music \\u0026 festivals\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Bonrepos-Riquet\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"31590\"}]}},{\"@type\":\"ListItem\",\"position\":22,\"item\":{\"@type\":\"Thing\",\"name\":\"Saint-Sulpice Small Market\",\"description\":\"On the main square, a small market of local producers.\",\"url\":\"https:\/\/www.saintsulpicelapointe.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.773993,\"longitude\":1.686425},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Saint-Sulpice Small Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Saint-Sulpice-la-Pointe\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81370\"}]}},{\"@type\":\"ListItem\",\"position\":23,\"item\":{\"@type\":\"Thing\",\"name\":\"Village Market\",\"description\":\"Every Thursday from 5 PM to 9 PM, small producers' market in the car park of the community hall! Good fresh local products for everyone!\",\"url\":\"https:\/\/mairie-damiatte.com\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.651801,\"longitude\":1.975415},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Village Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"March\u00e9s \\u0026 foires\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Damiatte\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81220\"}]}},{\"@type\":\"ListItem\",\"position\":24,\"item\":{\"@type\":\"Thing\",\"name\":\"ZUMBA MORNING\",\"description\":\"Fancy getting moving in a friendly, energetic atmosphere? Join the Zumba Morning held at the Faget multipurpose hall. For an hour and a half, let yourself go to lively rhythms and accessible choreography that will help you recharge while sharing a warm moment with the other participants.\\n\\nWhether you are used to Zumba classes or simply curious to discover this activity combining dance and fitness, this morning is a great opportunity to exercise in a relaxed and motivating atmosphere.\\n\\nThe event is offered by SELFAGET, with a price of \u20ac10 for members and \u20ac12 for non-members. Meet from 10:30 to 12:00 to enjoy this sporty and festive break.\",\"image\":\"http:\/\/cdt31.media.tourinsoft.eu\/upload\/825351746-122139940689383488-572255916299534193-n.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.5664849,\"longitude\":1.8289466},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"ZUMBA MORNING\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Other events\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Le Faget\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"31460\"}]}},{\"@type\":\"ListItem\",\"position\":25,\"item\":{\"@type\":\"Thing\",\"name\":\"Producer Market - S\u00e9nouillac\",\"description\":\"Come and end your day browsing this small producer market.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.942021,\"longitude\":1.94797},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Producer Market - S\u00e9nouillac\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Senouillac\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81600\"}]}},{\"@type\":\"ListItem\",\"position\":26,\"item\":{\"@type\":\"Thing\",\"name\":\"Castelnau-de-L\u00e9vis Open-air Market\",\"description\":\"Every Friday evening, find the producers' market in Castelnau-de-L\u00e9vis on the village square.\",\"url\":\"http:\/\/www.carlus.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.938162,\"longitude\":2.082754},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Castelnau-de-L\u00e9vis Open-air Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Castelnau-de-L\u00e9vis\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81150\"}]}},{\"@type\":\"ListItem\",\"position\":27,\"item\":{\"@type\":\"Thing\",\"name\":\"Saint Michel de Vax Market\",\"description\":\"Local producers' market: vegetable growers, winemakers, bread, honey, beer, cheese, small on-site refreshments.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.106085,\"longitude\":1.798973},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Saint Michel de Vax Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Saint-Michel-de-Vax\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81140\"}]}},{\"@type\":\"ListItem\",\"position\":28,\"item\":{\"@type\":\"Thing\",\"name\":\"Monthly Market of Guitalens-L'Albar\u00e8de\",\"description\":\"The outdoor market of Guitalens-l'Albar\u00e8de. Come and meet local producers!\",\"url\":\"http:\/\/lepaysdecocagne.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.643869,\"longitude\":2.045591},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Monthly Market of Guitalens-L'Albar\u00e8de\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Guitalens-L'Albar\u00e8de\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81220\"}]}},{\"@type\":\"ListItem\",\"position\":29,\"item\":{\"@type\":\"Thing\",\"name\":\"Covered Market Hall\",\"description\":\"Shop in a listed site in the heart of the historic center!\",\"url\":\"http:\/\/www.marchecouvert-albi.com\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.928925,\"longitude\":2.144975},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Covered Market Hall\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Albi\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81000\"}]}},{\"@type\":\"ListItem\",\"position\":30,\"item\":{\"@type\":\"Thing\",\"name\":\"Lisle-sur-Tarn Market\",\"description\":\"Lisle-sur-Tarn Market, Sunday morning on the Paul Saissac square for a friendly and delicious moment.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.852713,\"longitude\":1.810468},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Lisle-sur-Tarn Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Lisle-sur-Tarn\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81310\"}]}},{\"@type\":\"ListItem\",\"position\":31,\"item\":{\"@type\":\"Thing\",\"name\":\"Grand Saturday Market in Lavaur\",\"description\":\"Located on the alleys, you can enjoy one of the largest markets in the region!\",\"url\":\"http:\/\/www.ville-lavaur.fr\/Marches-foires-54#.WqE3CnwiEdU\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.69903,\"longitude\":1.815034},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Grand Saturday Market in Lavaur\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Lavaur\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81500\"}]}},{\"@type\":\"ListItem\",\"position\":32,\"item\":{\"@type\":\"Thing\",\"name\":\"Cabannes Market\",\"description\":\"Local producers, food shops.\\nFishmongery, fruit and vegetable sales, local market gardener, bakery and pastry shop, florists, beekeeper, winemaker.\",\"url\":\"https:\/\/www.lescabannes81.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.066585,\"longitude\":1.940996},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Cabannes Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Les Cabannes\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81170\"}]}},{\"@type\":\"ListItem\",\"position\":33,\"item\":{\"@type\":\"Thing\",\"name\":\"Village Market\",\"description\":\"Every Friday morning, a small producer market on the central square of Lautrec! Good fresh local products for everyone!\",\"url\":\"http:\/\/www.lautrec.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.706263,\"longitude\":2.138542},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Village Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Lautrec\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81440\"}]}},{\"@type\":\"ListItem\",\"position\":34,\"item\":{\"@type\":\"Thing\",\"name\":\"Carlus Open-air Market\",\"description\":\"The outdoor market is a highlight of the economic and social life of the village of Carlus.\",\"url\":\"http:\/\/www.carlus.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.886117,\"longitude\":2.108243},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Carlus Open-air Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Carlus\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81990\"}]}},{\"@type\":\"ListItem\",\"position\":35,\"item\":{\"@type\":\"Thing\",\"name\":\"Castelviel Country Producers Market\",\"description\":\"Just a few steps from the cathedral, a country producers market takes place every Thursday (located within 60 km of Albi) under the Castelviel fairground hall; delighting even the most gourmets with farm products\",\"url\":\"https:\/\/www.bienvenue-a-la-ferme.com\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.926603,\"longitude\":2.136299},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Castelviel Country Producers Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Albi\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81000\"}]}},{\"@type\":\"ListItem\",\"position\":36,\"item\":{\"@type\":\"Thing\",\"name\":\"Carmaux Weekly Market\",\"description\":\"The Friday morning weekly market in Carmaux is a must-visit. Fill your baskets with good local products.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.050034,\"longitude\":2.16075},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Carmaux Weekly Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Carmaux\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81400\"}]}},{\"@type\":\"ListItem\",\"position\":37,\"item\":{\"@type\":\"Thing\",\"name\":\"Wednesday Market at Saint-Sulpice\",\"description\":\"On the main square, along the esplanade, find fresh and farm produce from the region.\",\"url\":\"https:\/\/www.saintsulpicelapointe.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.773993,\"longitude\":1.686425},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Wednesday Market at Saint-Sulpice\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Saint-Sulpice-la-Pointe\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81370\"}]}},{\"@type\":\"ListItem\",\"position\":38,\"item\":{\"@type\":\"Thing\",\"name\":\"Rabastens Market\",\"description\":\"Taste fresh and seasonal products from local producers!\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.821189,\"longitude\":1.724549},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Rabastens Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Rabastens\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81800\"}]}},{\"@type\":\"ListItem\",\"position\":39,\"item\":{\"@type\":\"Thing\",\"name\":\"Small Market of Cahuzac-sur-V\u00e8re\",\"description\":\"A small market on the village square.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.983497,\"longitude\":1.911397},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Small Market of Cahuzac-sur-V\u00e8re\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Cahuzac-sur-V\u00e8re\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81140\"}]}},{\"@type\":\"ListItem\",\"position\":40,\"item\":{\"@type\":\"Thing\",\"name\":\"Gaillac Market\",\"description\":\"Come do your weekly shopping at Gaillac market! Fruits, vegetables, plants and flowers, cheeses and other treats... Also find artisans. From December 20 to February 21, a truffle stand will be available.\",\"url\":\"https:\/\/www.gaillac.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.899981,\"longitude\":1.897823},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Gaillac Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Gaillac\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81600\"}]}},{\"@type\":\"ListItem\",\"position\":41,\"item\":{\"@type\":\"Thing\",\"name\":\"Gaillac Noctambio\",\"description\":\"Every Tuesday of the year, find organic small producers under the hall of the Griffoul square.\",\"url\":\"https:\/\/www.nptarn.org\/biocybele\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.900825,\"longitude\":1.89735},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Gaillac Noctambio\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Gaillac\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81600\"}]}},{\"@type\":\"ListItem\",\"position\":42,\"item\":{\"@type\":\"Thing\",\"name\":\"Weekly Market\",\"description\":\"Meet local producers in the heart of the village.\",\"url\":\"http:\/\/www.cagnac-les-mines.fr\/default\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.986,\"longitude\":2.1405},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Weekly Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Cagnac-les-Mines\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81130\"}]}},{\"@type\":\"ListItem\",\"position\":43,\"item\":{\"@type\":\"Thing\",\"name\":\"The Creation and Booksellers Market\",\"description\":\"Attention to reading and craft enthusiasts!\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.928237,\"longitude\":2.144678},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"The Creation and Booksellers Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Albi\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81000\"}]}},{\"@type\":\"ListItem\",\"position\":44,\"item\":{\"@type\":\"Thing\",\"name\":\"Lombers Market\",\"description\":\"Sunday market in the village of Lombers.\",\"url\":\"http:\/\/www.lombers.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.804883,\"longitude\":2.149199},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Lombers Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Lombers\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81120\"}]}},{\"@type\":\"ListItem\",\"position\":45,\"item\":{\"@type\":\"Thing\",\"name\":\"Small Market of Gaillac\",\"description\":\"Enjoy fresh local products and the friendliness of the vendors!\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.901336,\"longitude\":1.897252},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Small Market of Gaillac\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Gaillac\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81600\"}]}},{\"@type\":\"ListItem\",\"position\":46,\"item\":{\"@type\":\"Thing\",\"name\":\"Market - Place de la Pile\",\"description\":\"The Place de la Pile market is located around the covered market.\\nOn Saturday, from 7 am to 1 pm.\",\"url\":\"http:\/\/www.mairie-albi.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.928203,\"longitude\":2.143863},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Market - Place de la Pile\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Albi\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81000\"}]}},{\"@type\":\"ListItem\",\"position\":47,\"item\":{\"@type\":\"Thing\",\"name\":\"Marssac Open-Air Market\",\"description\":\"The open-air market is a highlight of our village's economic and social life.\",\"url\":\"http:\/\/www.marssac-sur-tarn.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.917626,\"longitude\":2.029224},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Marssac Open-Air Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Marssac-sur-Tarn\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81150\"}]}},{\"@type\":\"ListItem\",\"position\":48,\"item\":{\"@type\":\"Thing\",\"name\":\"Small Briatexte Market\",\"description\":\"Small market on the village square.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.751163,\"longitude\":1.908161},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Small Briatexte Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Briatexte\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81390\"}]}},{\"@type\":\"ListItem\",\"position\":49,\"item\":{\"@type\":\"Thing\",\"name\":\"Castelnau de Montmiral Market\",\"description\":\"The Arcades Square in Castelnau hosts its producers' market.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.965685,\"longitude\":1.820007},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Castelnau de Montmiral Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Castelnau-de-Montmiral\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81140\"}]}},{\"@type\":\"ListItem\",\"position\":50,\"item\":{\"@type\":\"Thing\",\"name\":\"Local producers market of Salvagnac\",\"description\":\"All year round, discover the farmers' market of Salvagnac from 5pm. In summer, the market starts at 6pm.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.905603,\"longitude\":1.687194},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Local producers market of Salvagnac\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Salvagnac\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81630\"}]}},{\"@type\":\"ListItem\",\"position\":51,\"item\":{\"@type\":\"Thing\",\"name\":\"L'\u00e9cho Loco, organic producers market in Labastide-Saint-Georges\",\"description\":\"The \u00c9cho Loco market waits for you every Thursday from 7pm to 8:30pm in the Fraternit\u00e9 square. This producers' market is certified Organic AB, Nature and Progress, Biodynamics, or similar.\",\"url\":\"https:\/\/app.cagette.net\/group\/7015\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.699312,\"longitude\":1.842729},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"L'\u00e9cho Loco, organic producers market in Labastide-Saint-Georges\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Labastide-Saint-Georges\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81500\"}]}},{\"@type\":\"ListItem\",\"position\":52,\"item\":{\"@type\":\"Thing\",\"name\":\"Cordes sur Ciel Market\",\"description\":\"Local producers, delicatessen shops, textiles, flowers...\",\"url\":\"http:\/\/www.mairie.cordessurciel.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.062399,\"longitude\":1.958343},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Cordes sur Ciel Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Cordes-sur-Ciel\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81170\"}]}},{\"@type\":\"ListItem\",\"position\":53,\"item\":{\"@type\":\"Thing\",\"name\":\"Vaour Market\",\"description\":\"Stands of local producers.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.07285,\"longitude\":1.801892},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Vaour Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Vaour\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81140\"}]}},{\"@type\":\"ListItem\",\"position\":54,\"item\":{\"@type\":\"Thing\",\"name\":\"Organic Market - Place Fernand Pelloutier\",\"description\":\"About ten vendors welcome you at Place Fernand Pelloutier, every Tuesday from 4pm to 8pm: local farmers, bread, cheese, biscuits, savory pies and seasonal fruits and vegetables from local producers, ice creams, producers' plants.\",\"url\":\"https:\/\/www.nptarn.org\/evenements\/les-noctambios#17\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.925627,\"longitude\":2.152761},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Organic Market - Place Fernand Pelloutier\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Albi\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81000\"}]}},{\"@type\":\"ListItem\",\"position\":55,\"item\":{\"@type\":\"Thing\",\"name\":\"Saint-Ju\u00e9ry Open-Air Market\",\"description\":\"Every Thursday morning, find the \\\"classic\\\" market of Saint-Ju\u00e9ry at the station esplanade.\",\"url\":\"http:\/\/ville-saint-juery.fr\/\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.947377,\"longitude\":2.21012},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Saint-Ju\u00e9ry Open-Air Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Saint-Ju\u00e9ry\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81160\"}]}},{\"@type\":\"ListItem\",\"position\":56,\"item\":{\"@type\":\"Thing\",\"name\":\"Penne Weekly Market\",\"description\":\"Local producers' market. Don't miss the Thursday evening meeting with small bites and a drinks stand! In February and March, the market is only on the last Thursday of the month.\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":44.076776,\"longitude\":1.730882},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Penne Weekly Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Penne\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81140\"}]}},{\"@type\":\"ListItem\",\"position\":57,\"item\":{\"@type\":\"Thing\",\"name\":\"R\u00e9almont Market\",\"description\":\"R\u00e9almont's market is one of the oldest in the department. It dates back to the 13th century.\",\"url\":\"https:\/\/www.realmont.fr\/quotidien\/commerces\/marche-mercredi\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.775789,\"longitude\":2.188018},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"R\u00e9almont Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"R\u00e9almont\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81120\"}]}},{\"@type\":\"ListItem\",\"position\":58,\"item\":{\"@type\":\"Thing\",\"name\":\"Noctambio - Market\",\"description\":\"The \\\"Noctambio\\\" market takes place on Marie Curie square, every Monday from 4 PM to 7 PM. Come enjoy local products!\",\"url\":\"https:\/\/www.nptarn.org\/evenements\/les-noctambios#17\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.946582,\"longitude\":2.209981},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Title\",\"value\":\"Noctambio - Market\"},{\"@type\":\"PropertyValue\",\"name\":\"Category\",\"value\":\"Markets \\u0026 Fairs\"},{\"@type\":\"PropertyValue\",\"name\":\"City\",\"value\":\"Saint-Ju\u00e9ry\"},{\"@type\":\"PropertyValue\",\"name\":\"Postal code\",\"value\":\"81160\"}]}}]}]}<\/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(http:\/\/cdt31.media.tourinsoft.eu\/upload\/833701878-1056445880720710-742694986371225743-n.jpg)\">\n          <span class=\"mv-credit mv-credit--hero\">Photo : Auberge de Loubens<\/span>\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>Les Chalets de Fiolles<\/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>JAM SOULEY<\/strong> \u2014 Let yourself be carried away by the warm atmosphere of an evening dedicated to live music and the joy of playing together. Whether you are an experienced musician, a beginner&hellip;<\/li>\n              <li><strong>Gaillac<\/strong> \u2014 Gaillac is a lively wine-growing town in Tarn, known for its cellars and pleasant setting on the banks of the Tarn. It offers a mix of historic heritage, colorful facades,&hellip;<\/li>\n              <li><strong>Cordes-sur-Ciel<\/strong> \u2014 Cordes-sur-Ciel is a perched medieval town, ranked among the most beautiful villages. Its cobbled streets, medieval facades, and panoramic views make it a must-explore destination for history and culture enthusiasts.<\/li>\n              <li><strong>Albi<\/strong> \u2014 Albi is a historic city dominated by its Sainte-C\u00e9cile Cathedral and the Toulouse-Lautrec Museum. Its promenade along the Tarn and its listed city center offer an ideal blend of culture&hellip;<\/li>\n              <li><strong>Puycelsi<\/strong> \u2014 Puycelsi is a perched bastide village offering views over the surrounding valleys and a preserved medieval atmosphere, perfect for a peaceful getaway in the heart of Tarn.<\/li>\n              <li><strong>Lavaur<\/strong> \u2014 Lavaur is a small town surrounded by greenery, with a rich historical heritage and charming alleys, perfect for a peaceful visit with cafes and local markets.<\/li>\n              <li><strong>Albi and the Sainte-Caix Cathedral (UNESCO)<\/strong> \u2014 Visit the episcopal city of Albi and its UNESCO-listed cathedral, a major testament to Tarn\u2019s heritage.<\/li>\n              <li><strong>ASSEMBLY WORKSHOP AT CH\u00c2TEAU LA LOGE<\/strong> \u2014 Every second Saturday of the month, Maxime welcomes you to the estate for a morning dedicated to creativity and conviviality (from 10 a.m. to 12 p.m.)! Forget boring theory: here,&hellip;<\/li>\n              <li><strong>17TH PLANT DAYS AT CHATEAU DE BONREPOS RIQUET<\/strong> \u2014 For a whole weekend, many exhibitors from the region and beyond will present their plant collections, including many rare, old or little-known species. Specialized nurseries, growers, collectors and artisans will&hellip;<\/li>\n              <li><strong>ZUMBA MORNING<\/strong> \u2014 Fancy getting moving in a friendly, energetic atmosphere? Join the Zumba Morning held at the Faget multipurpose hall. For an hour and a half, let yourself go to lively rhythms&hellip;<\/li>\n              <li><strong>Cordes-sur-Ciel - medieval village<\/strong> \u2014 Discover the fortified village of Cordes-sur-Ciel, ranked among the most beautiful villages in France. Walk through cobbled streets, enjoy spectacular views, and see typical medieval architecture from the Tarn region.<\/li>\n              <li><strong>Gaillac and its vineyards<\/strong> \u2014 Explore the vineyards of Gaillac and visit local cellars to learn about Tarn\u2019s wine-making history and its typical grape varieties.<\/li>\n              <li><strong>Bord du Tarn and water activities<\/strong> \u2014 Walk along the Tarn River and enjoy canoe\/kayak activities in the region to experience a pleasant natural setting.<\/li>\n              <li><strong>Perched villages and excursions around Brens<\/strong> \u2014 Short routes to bastides and perched villages in the surroundings (Cordes-sur-Ciel, Puycelsi) with landscapes and heritage to explore with family or friends.<\/li>\n              <li><strong>Market - Fernand Pelloutier Square<\/strong> \u2014 Fernand Pelloutier Square, just 10 minutes from the historic center, a dozen traders set up their stalls to offer the public fruits, vegetables, meats, and more!<\/li>\n              <li><strong>Brens Market<\/strong> \u2014 Come and do your shopping for fresh and local products!<\/li>\n              <li><strong>Graulhet Sunday Morning Market<\/strong> \u2014 The weekly market takes place in the heart of the town, Place de la R\u00e9publique and Place du Jourdain.<\/li>\n              <li><strong>Thursday Morning Market in Graulhet<\/strong> \u2014 In a friendly atmosphere, find everything you need at the Thursday market.<\/li>\n              <li><strong>Producer&#039;s Market in Lavaur<\/strong> \u2014 Small market dedicated to local producers.<\/li>\n              <li><strong>Small Salvagnac Market<\/strong> \u2014 Throughout the year, come discover the Salvagnac market from 8 am. Fruits, vegetables, butchery, pizzas, and fish await you.<\/li>\n              <li><strong>Lescure d&#039;Albigeois Outdoor Market<\/strong> \u2014 The Lescure market: a producer market<\/li>\n              <li><strong>Saint-Paul-Cap-de-Joux Weekly Market<\/strong> \u2014 Every Tuesday morning, a small farmers&#039; market in the village square! Good fresh local products for everyone!<\/li>\n              <li><strong>Little Saint-Pierre District Market - Graulhet<\/strong> \u2014 Some food vendors offer their local products and vegetables in short supply chains.<\/li>\n              <li><strong>Arth\u00e8s Outdoor Market<\/strong> \u2014 Every Saturday morning, find the Arth\u00e8s market at the Fran\u00e7ois Mitterrand Square.<\/li>\n              <li><strong>Madeleine Market<\/strong> \u2014 Boulevard de Strasbourg, just 5 minutes from the historic center, about thirty vendors set up their stalls to offer fruits, vegetables, meats, and more!<\/li>\n              <li><strong>Cabaret Evening at the Farm<\/strong> \u2014 7:00 PM: Welcome - 8:00 PM: Meal - 10:00 PM: Show<\/li>\n              <li><strong>Barri\u00e8res Producers Market<\/strong> \u2014 All year round, take time to browse this small producers&#039; market, a true concentrate of local flavors. You&#039;ll find a selection of local producers: seasonal vegetables, cheeses, and caterer&#039;s dishes.<\/li>\n              <li><strong>\u00c9cho Loco \/ Noctambio de Labastide Saint-Georges<\/strong> \u2014 Every Thursday from 5 p.m. to 7 p.m. in Place de la Fraternit\u00e9, come and find your farmers\u2019 and organic market. You will find a wide range of organic and&hellip;<\/li>\n              <li><strong>March\u00e9 de la Guilde Laroque<\/strong> \u2014 Weekly market at the Guilde Laroque<\/li>\n              <li><strong>TOURISM AND CULTURE EVENTS - DISCOVER SPIRULINA<\/strong> \u2014 Nicolas Fourtouil, after a career in transport and aeronautical logistics, decided to grow this aquatic micro-organism on the outskirts of Toulouse. His project: local production, a human-scale farm, a product&hellip;<\/li>\n              <li><strong>Organic and local producers&#039; market in Teulat<\/strong> \u2014 Meet every Thursday of the year, from 5 p.m. to 8 p.m., under the Hall of the public garden of Teulat to discover a market of local and organic produce,&hellip;<\/li>\n              <li><strong>Monthly market of Vielmur-sur-Agout<\/strong> \u2014 Open-air market in Vielmur. Come and meet the producers.<\/li>\n              <li><strong>Saint-Sulpice Small Market<\/strong> \u2014 On the main square, a small market of local producers.<\/li>\n              <li><strong>Village Market<\/strong> \u2014 Every Thursday from 5 PM to 9 PM, small producers&#039; market in the car park of the community hall! Good fresh local products for everyone!<\/li>\n              <li><strong>Producer Market - S\u00e9nouillac<\/strong> \u2014 Come and end your day browsing this small producer market.<\/li>\n              <li><strong>Castelnau-de-L\u00e9vis Open-air Market<\/strong> \u2014 Every Friday evening, find the producers&#039; market in Castelnau-de-L\u00e9vis on the village square.<\/li>\n              <li><strong>Saint Michel de Vax Market<\/strong> \u2014 Local producers&#039; market: vegetable growers, winemakers, bread, honey, beer, cheese, small on-site refreshments.<\/li>\n              <li><strong>Monthly Market of Guitalens-L&#039;Albar\u00e8de<\/strong> \u2014 The outdoor market of Guitalens-l&#039;Albar\u00e8de. Come and meet local producers!<\/li>\n              <li><strong>Covered Market Hall<\/strong> \u2014 Shop in a listed site in the heart of the historic center!<\/li>\n              <li><strong>Lisle-sur-Tarn Market<\/strong> \u2014 Lisle-sur-Tarn Market, Sunday morning on the Paul Saissac square for a friendly and delicious moment.<\/li>\n              <li><strong>Grand Saturday Market in Lavaur<\/strong> \u2014 Located on the alleys, you can enjoy one of the largest markets in the region!<\/li>\n              <li><strong>Cabannes Market<\/strong> \u2014 Local producers, food shops. Fishmongery, fruit and vegetable sales, local market gardener, bakery and pastry shop, florists, beekeeper, winemaker.<\/li>\n              <li><strong>Village Market<\/strong> \u2014 Every Friday morning, a small producer market on the central square of Lautrec! Good fresh local products for everyone!<\/li>\n              <li><strong>Carlus Open-air Market<\/strong> \u2014 The outdoor market is a highlight of the economic and social life of the village of Carlus.<\/li>\n              <li><strong>Castelviel Country Producers Market<\/strong> \u2014 Just a few steps from the cathedral, a country producers market takes place every Thursday (located within 60 km of Albi) under the Castelviel fairground hall; delighting even the most&hellip;<\/li>\n              <li><strong>Carmaux Weekly Market<\/strong> \u2014 The Friday morning weekly market in Carmaux is a must-visit. Fill your baskets with good local products.<\/li>\n              <li><strong>Wednesday Market at Saint-Sulpice<\/strong> \u2014 On the main square, along the esplanade, find fresh and farm produce from the region.<\/li>\n              <li><strong>Rabastens Market<\/strong> \u2014 Taste fresh and seasonal products from local producers!<\/li>\n              <li><strong>Small Market of Cahuzac-sur-V\u00e8re<\/strong> \u2014 A small market on the village square.<\/li>\n              <li><strong>Gaillac Market<\/strong> \u2014 Come do your weekly shopping at Gaillac market! Fruits, vegetables, plants and flowers, cheeses and other treats... Also find artisans. From December 20 to February 21, a truffle stand will&hellip;<\/li>\n              <li><strong>Gaillac Noctambio<\/strong> \u2014 Every Tuesday of the year, find organic small producers under the hall of the Griffoul square.<\/li>\n              <li><strong>Weekly Market<\/strong> \u2014 Meet local producers in the heart of the village.<\/li>\n              <li><strong>The Creation and Booksellers Market<\/strong> \u2014 Attention to reading and craft enthusiasts!<\/li>\n              <li><strong>Lombers Market<\/strong> \u2014 Sunday market in the village of Lombers.<\/li>\n              <li><strong>Small Market of Gaillac<\/strong> \u2014 Enjoy fresh local products and the friendliness of the vendors!<\/li>\n              <li><strong>Market - Place de la Pile<\/strong> \u2014 The Place de la Pile market is located around the covered market. On Saturday, from 7 am to 1 pm.<\/li>\n              <li><strong>Marssac Open-Air Market<\/strong> \u2014 The open-air market is a highlight of our village&#039;s economic and social life.<\/li>\n              <li><strong>Small Briatexte Market<\/strong> \u2014 Small market on the village square.<\/li>\n              <li><strong>Castelnau de Montmiral Market<\/strong> \u2014 The Arcades Square in Castelnau hosts its producers&#039; market.<\/li>\n              <li><strong>Local producers market of Salvagnac<\/strong> \u2014 All year round, discover the farmers&#039; market of Salvagnac from 5pm. In summer, the market starts at 6pm.<\/li>\n              <li><strong>L&#039;\u00e9cho Loco, organic producers market in Labastide-Saint-Georges<\/strong> \u2014 The \u00c9cho Loco market waits for you every Thursday from 7pm to 8:30pm in the Fraternit\u00e9 square. This producers&#039; market is certified Organic AB, Nature and Progress, Biodynamics, or similar.<\/li>\n              <li><strong>Cordes sur Ciel Market<\/strong> \u2014 Local producers, delicatessen shops, textiles, flowers...<\/li>\n              <li><strong>Vaour Market<\/strong> \u2014 Stands of local producers.<\/li>\n              <li><strong>Organic Market - Place Fernand Pelloutier<\/strong> \u2014 About ten vendors welcome you at Place Fernand Pelloutier, every Tuesday from 4pm to 8pm: local farmers, bread, cheese, biscuits, savory pies and seasonal fruits and vegetables from local producers,&hellip;<\/li>\n              <li><strong>Saint-Ju\u00e9ry Open-Air Market<\/strong> \u2014 Every Thursday morning, find the &quot;classic&quot; market of Saint-Ju\u00e9ry at the station esplanade.<\/li>\n              <li><strong>Penne Weekly Market<\/strong> \u2014 Local producers&#039; market. Don&#039;t miss the Thursday evening meeting with small bites and a drinks stand! In February and March, the market is only on the last Thursday of the&hellip;<\/li>\n              <li><strong>R\u00e9almont Market<\/strong> \u2014 R\u00e9almont&#039;s market is one of the oldest in the department. It dates back to the 13th century.<\/li>\n              <li><strong>Noctambio - Market<\/strong> \u2014 The &quot;Noctambio&quot; market takes place on Marie Curie square, every Monday from 4 PM to 7 PM. Come enjoy local products!<\/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\":25,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"JAM SOULEY\",\"image\":\"http:\\\/\\\/cdt31.media.tourinsoft.eu\\\/upload\\\/833701878-1056445880720710-742694986371225743-n.jpg\",\"credit\":\"Auberge de Loubens\",\"description\":\"Let yourself be carried away by the warm atmosphere of an evening dedicated to live music and the joy of playing together. Whether you are an experienced musician, a beginner or simply a lover of great encounters, you will find a space for exchange where everyone can bring their personal touch.\\n\\nAs the evening unfolds, you can listen, improvise, share a tune or discover new musical worlds in a friendly and relaxed atmosphere. All styles and all instruments are welcome, encouraging encounters and spontaneous creativity.\\n\\nMeet at the Auberge de Loubens Lauragais from 7:30 pm to enjoy a moment of music, sharing and good cheer, driven by the collective desire to play together.\",\"city\":\"Loubens-Lauragais\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.5733655,\"lng\":1.7846495,\"tags\":[],\"fields\":[{\"label\":\"Category\",\"value\":\"Concerts, music & festivals\"},{\"label\":\"City\",\"value\":\"Loubens-Lauragais\"},{\"label\":\"Postal code\",\"value\":\"31460\"}],\"link\":\"\",\"event\":\"Du 07\\\/11\\\/2026 au 07\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":0,\"featurable\":false,\"featured\":false,\"type\":\"gabarit-fiche-villes-villages\",\"name\":\"Gaillac\",\"image\":\"https:\\\/\\\/www.tourisme-tarn.com\\\/wp-content\\\/uploads\\\/2018\\\/07\\\/73_-abbaye_st.michel_gaillac_raynaud-photo-3-1-1200x800.jpg\",\"credit\":\"\",\"description\":\"Gaillac is a lively wine-growing town in Tarn, known for its cellars and pleasant setting on the banks of the Tarn. It offers a mix of historic heritage, colorful facades, and welcoming terraces, ideal for a half-day or a family day out.\",\"city\":\"\",\"address\":\"\",\"km\":2,\"min\":6,\"lat\":43.900002,\"lng\":1.91667,\"tags\":[],\"fields\":[{\"label\":\"Name\",\"value\":\"Gaillac\"},{\"label\":\"Department\",\"value\":\"81\"},{\"label\":\"Distance from the campsite (km)\",\"value\":\"2\"},{\"label\":\"Travel time from the campsite (min)\",\"value\":\"6\"},{\"label\":\"Highlights \\\/ Assets\",\"value\":\"Vineyards and tastings, charming city center, walks along the Tarn, local markets, friendly atmosphere.\"},{\"label\":\"Must-see places\",\"value\":\"Saint-Michel Church, Old Ramparts Tower, 18th-century mansions, wineries and vineyards.\"},{\"label\":\"Markets \\\/ Fairs\",\"value\":\"Les mardis Noctambio \\u00e0 partir de 16h place du Griffoul\\nLes vendredis matin place de la Lib\\u00e9ration et du Griffoul\\nLes dimanches matin place du Griffoul\"},{\"label\":\"City Events\",\"value\":\"Seasonal festivals and markets; summer music festival; craft fairs and tastings in local cellars.\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":1,\"featurable\":false,\"featured\":false,\"type\":\"gabarit-fiche-villes-villages\",\"name\":\"Cordes-sur-Ciel\",\"image\":\"https:\\\/\\\/www.la-toscane-occitane.com\\\/app\\\/uploads\\\/iris-images\\\/18327\\\/rando-cordes-sur-ciel-randonneur-grain-de-sel-french-wanderers-1920x1080-f50_50.webp\",\"credit\":\"\",\"description\":\"Cordes-sur-Ciel is a perched medieval town, ranked among the most beautiful villages. Its cobbled streets, medieval facades, and panoramic views make it a must-explore destination for history and culture enthusiasts.\",\"city\":\"\",\"address\":\"\",\"km\":0,\"min\":30,\"lat\":44.0636623,\"lng\":1.9509283,\"tags\":[],\"fields\":[{\"label\":\"Name\",\"value\":\"Cordes-sur-Ciel\"},{\"label\":\"Department\",\"value\":\"81\"},{\"label\":\"Distance from the campsite (km)\",\"value\":\"0\"},{\"label\":\"Travel time from the campsite (min)\",\"value\":\"30\"},{\"label\":\"Highlights \\\/ Assets\",\"value\":\"Medieval architecture, artisan shops, panoramic views, medieval atmosphere, summer festivals.\"},{\"label\":\"Must-see places\",\"value\":\"Medieval halls, Saint-Michel Church, ramparts and viewpoints, artisan shops, typical alleys.\"},{\"label\":\"Markets \\\/ Fairs\",\"value\":\"Les Samedis\\tde 07h30 \\u00e0 13h00\"},{\"label\":\"City Events\",\"value\":\"Medieval markets and summer festivals; cultural events in the old city.\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":2,\"featurable\":false,\"featured\":false,\"type\":\"gabarit-fiche-villes-villages\",\"name\":\"Albi\",\"image\":\"https:\\\/\\\/www.albi-tourisme.fr\\\/app\\\/uploads\\\/iris-images\\\/32427\\\/albi-la-cite-episcopale-vue-aerienne-credit-qb-pixels-pour-albi-tourism2-1220x680-f50_50.webp\",\"credit\":\"\",\"description\":\"Albi is a historic city dominated by its Sainte-C\\u00e9cile Cathedral and the Toulouse-Lautrec Museum. Its promenade along the Tarn and its listed city center offer an ideal blend of culture and nature.\",\"city\":\"\",\"address\":\"\",\"km\":0,\"min\":15,\"lat\":43.9246985,\"lng\":2.1477538,\"tags\":[],\"fields\":[{\"label\":\"Name\",\"value\":\"Albi\"},{\"label\":\"Department\",\"value\":\"81\"},{\"label\":\"Distance from the campsite (km)\",\"value\":\"0\"},{\"label\":\"Travel time from the campsite (min)\",\"value\":\"15\"},{\"label\":\"Highlights \\\/ Assets\",\"value\":\"UNESCO Cathedral, Toulouse-Lautrec Museum, historic district, local gastronomy.\"},{\"label\":\"Must-see places\",\"value\":\"Sainte-C\\u00e9cile Cathedral, Toulouse-Lautrec Museum, William Bridge, old town and gardens.\"},{\"label\":\"Markets \\\/ Fairs\",\"value\":\"Mardi de 7h \\u00e0 13h \\u2013 Place Fernand Pelloutier \\u00e0 Albi. \\nJeudi de 7h \\u00e0 13h \\u2013 Place du march\\u00e9 \\u00e0 Saint-Ju\\u00e9ry. \\nSamedi de 7h \\u00e0 13h \\u2013 Place Fernand Pelloutier, boulevard de Strasbourg et tout autour du March\\u00e9 couvert.\"},{\"label\":\"City Events\",\"value\":\"Summer festivals, outdoor concerts, cultural festivals, weekly markets.\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":3,\"featurable\":false,\"featured\":false,\"type\":\"gabarit-fiche-villes-villages\",\"name\":\"Puycelsi\",\"image\":\"https:\\\/\\\/puycelsi.fr\\\/wp-content\\\/uploads\\\/sites\\\/136\\\/2022\\\/11\\\/cropped-puycelsi01.jpg\",\"credit\":\"\",\"description\":\"Puycelsi is a perched bastide village offering views over the surrounding valleys and a preserved medieval atmosphere, perfect for a peaceful getaway in the heart of Tarn.\",\"city\":\"\",\"address\":\"\",\"km\":0,\"min\":30,\"lat\":43.9668315,\"lng\":1.7185305,\"tags\":[],\"fields\":[{\"label\":\"Name\",\"value\":\"Puycelsi\"},{\"label\":\"Department\",\"value\":\"81\"},{\"label\":\"Distance from the campsite (km)\",\"value\":\"0\"},{\"label\":\"Travel time from the campsite (min)\",\"value\":\"30\"},{\"label\":\"Highlights \\\/ Assets\",\"value\":\"Medieval bastide, panoramic views, old alleys, bucolic setting.\"},{\"label\":\"Must-see places\",\"value\":\"Ch\\u00e2teau de Puycelsi and medieval alleys, panoramic view of Tarn countryside.\"},{\"label\":\"Markets \\\/ Fairs\",\"value\":\"Rendez-vous au village les 1er et 8 mai pour rencontrer producteurs et artisans locaux. Restauration gourmande sur place. Profitez de l'occasion pour (re)visiter le village et ses commerces.\"},{\"label\":\"City Events\",\"value\":\"Medieval festivals and local activities during summer.\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":4,\"featurable\":false,\"featured\":false,\"type\":\"gabarit-fiche-villes-villages\",\"name\":\"Lavaur\",\"image\":\"https:\\\/\\\/www.tourisme-tarn.com\\\/wp-content\\\/uploads\\\/wpetourisme\\\/3638267-diaporama.jpg\",\"credit\":\"\",\"description\":\"Lavaur is a small town surrounded by greenery, with a rich historical heritage and charming alleys, perfect for a peaceful visit with cafes and local markets.\",\"city\":\"\",\"address\":\"\",\"km\":0,\"min\":35,\"lat\":43.6994114,\"lng\":1.8176693,\"tags\":[],\"fields\":[{\"label\":\"Name\",\"value\":\"Lavaur\"},{\"label\":\"Department\",\"value\":\"81\"},{\"label\":\"Distance from the campsite (km)\",\"value\":\"0\"},{\"label\":\"Travel time from the campsite (min)\",\"value\":\"35\"},{\"label\":\"Highlights \\\/ Assets\",\"value\":\"Pleasant historic center, local markets, Tarn cuisine, friendly local life.\"},{\"label\":\"Must-see places\",\"value\":\"Notre-Dame de Lavaur Church, G\\u00e9n\\u00e9ral de Gaulle Square, old town and green landscapes.\"},{\"label\":\"Markets \\\/ Fairs\",\"value\":\"\\u2013 le petit march\\u00e9 du mercredi est r\\u00e9serv\\u00e9 aux producteurs locaux,\\n\\u2013 le march\\u00e9 du samedi est ouvert \\u00e0 tous : charcuterie, boucherie, boulangerie, poissonnerie, fromagerie, volailler, primeur et autres producteurs divers en fruits et l\\u00e9gumes de saisons, mais aussi, chapellerie, v\\u00eatements et accessoires, chaussures, quincaillerie, friperie, bouquinistes et divers camelots.\"},{\"label\":\"City Events\",\"value\":\"Local festivals and seasonal markets, cultural events during summer.\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":7,\"featurable\":false,\"featured\":false,\"type\":\"gabarit-activites-a-proximite\",\"name\":\"Albi and the Sainte-Caix Cathedral (UNESCO)\",\"image\":\"https:\\\/\\\/www.albi-tourisme.fr\\\/app\\\/uploads\\\/iris-images\\\/117\\\/20210826-101926-1920x1080-f50_50.jpg\",\"credit\":\"\",\"description\":\"Visit the episcopal city of Albi and its UNESCO-listed cathedral, a major testament to Tarn\\u2019s heritage.\",\"city\":\"\",\"address\":\"\",\"km\":25,\"min\":15,\"lat\":null,\"lng\":null,\"tags\":[],\"fields\":[{\"label\":\"Name\",\"value\":\"Albi and the Sainte-Caix Cathedral (UNESCO)\"},{\"label\":\"Distance from the campsite (km)\",\"value\":\"25\"},{\"label\":\"Travel time from the campsite (min)\",\"value\":\"15\"},{\"label\":\"Price\",\"value\":\"Visites individuelles : 6 \\u20ac par personne, gratuit\\u00e9 pour les moins de 14 ans et pour les personnes en situation de handicap et leur accompagnateur. Ce tarif comprend l'acc\\u00e8s au ch\\u0153ur des chanoines et aux salles du tr\\u00e9sor, ainsi que le pr\\u00eat d'un audioguide. Pour les groupes \\u00e0 partir de dix personnes : 5 \\u20ac par personne. Ce tarif comprend les m\\u00eames prestations, avec le pr\\u00eat d'un audioguide ou d'un audiophone si le groupe est accompagn\\u00e9 par un guide. Visites de groupes scolaires : 8 \\u20ac pour une classe de trente \\u00e9l\\u00e8ves, gratuit\\u00e9 pour les enseignants et les accompagnateurs. Ce tarif comprend les m\\u00eames prestations que pr\\u00e9c\\u00e9demment.\"},{\"label\":\"Schedule\",\"value\":\"OUVERT TOUS LES JOURS  DE 10 h \\u00c0 18 h 30\"},{\"label\":\"Info and contact\",\"value\":\"Place  Sainte-C\\u00e9cile\\n81000 ALBI\\nMail : cathedrale.ste.cecile@gmail.com\\nT\\u00e9l\\u00e9phone : 05 63 38 47 40\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":29,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"ASSEMBLY WORKSHOP AT CH\\u00c2TEAU LA LOGE\",\"image\":\"http:\\\/\\\/cdt31.media.tourinsoft.eu\\\/upload\\\/atelier-assemblage-la-loge.jpg\",\"credit\":\"DR\",\"description\":\"Every second Saturday of the month, Maxime welcomes you to the estate for a morning dedicated to creativity and conviviality (from 10 a.m. to 12 p.m.)!\\n\\nForget boring theory: here, you touch, smell, taste and blend.\\n\\n1 - We explore our 6 ha of organic vineyards together.\\n2 - We handle test tubes and play with the grape varieties to find the perfect balance.\\n3 - You leave with a unique souvenir: your own personalized 75 cl bottle!\\n\\nIt is friendly, professional and accessible to everyone, whether you are an expert or simply curious.\\n\\nWorkshop confirmed from 6 participants (perfect for groups!) - Limited places, booking required.\",\"city\":\"Villematier\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.818511,\"lng\":1.492355,\"tags\":[\"Other events\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Other events\"},{\"label\":\"City\",\"value\":\"Villematier\"},{\"label\":\"Postal code\",\"value\":\"31340\"}],\"link\":\"\",\"event\":\"Du 14\\\/11\\\/2026 \\u00e0 10:00 au 14\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":30,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"17TH PLANT DAYS AT CHATEAU DE BONREPOS RIQUET\",\"image\":\"http:\\\/\\\/cdt31.media.tourinsoft.eu\\\/upload\\\/JPLANTES2026.jpg\",\"credit\":\"Domaine de Bonrepos-Riquet\",\"description\":\"For a whole weekend, many exhibitors from the region and beyond will present their plant collections, including many rare, old or little-known species. Specialized nurseries, growers, collectors and artisans will share their expertise and advice with visitors.\\n\\nThis event will be an opportunity to discover a great diversity of plants: perennials, shrubs, citrus fruits, bulbs and rhizomes, grasses, collector irises, orchids, carnivorous plants, aromatic and medicinal plants, roses, heritage varieties and other carefully selected botanical treasures.\\n\\nIn the exceptional setting of Domaine de Bonrepos-Riquet, visitors will be able to talk with passionate professionals, learn about environmentally friendly gardening practices and find plenty of ideas to enhance gardens, terraces and balconies.\\n\\nBeyond the horticultural aspect, these Plant Days will also offer a moment of strolling and discovery, in a friendly and family atmosphere.\\n\\nWhether you are an amateur gardener, an experienced collector or simply curious, this event promises a true immersion in the fascinating world of plants.\",\"city\":\"Bonrepos-Riquet\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.676309,\"lng\":1.6246428,\"tags\":[],\"fields\":[{\"label\":\"Category\",\"value\":\"Concerts, music & festivals\"},{\"label\":\"City\",\"value\":\"Bonrepos-Riquet\"},{\"label\":\"Postal code\",\"value\":\"31590\"}],\"link\":\"https:\\\/\\\/www.bonrepos-riquet.fr\\\/index.php\\\/chateau\",\"event\":\"Du 07\\\/11\\\/2026 \\u00e0 10:00 au 08\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":33,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"ZUMBA MORNING\",\"image\":\"http:\\\/\\\/cdt31.media.tourinsoft.eu\\\/upload\\\/825351746-122139940689383488-572255916299534193-n.jpg\",\"credit\":\"SELFAGET\",\"description\":\"Fancy getting moving in a friendly, energetic atmosphere? Join the Zumba Morning held at the Faget multipurpose hall. For an hour and a half, let yourself go to lively rhythms and accessible choreography that will help you recharge while sharing a warm moment with the other participants.\\n\\nWhether you are used to Zumba classes or simply curious to discover this activity combining dance and fitness, this morning is a great opportunity to exercise in a relaxed and motivating atmosphere.\\n\\nThe event is offered by SELFAGET, with a price of \\u20ac10 for members and \\u20ac12 for non-members. Meet from 10:30 to 12:00 to enjoy this sporty and festive break.\",\"city\":\"Le Faget\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.5664849,\"lng\":1.8289466,\"tags\":[\"Other events\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Other events\"},{\"label\":\"City\",\"value\":\"Le Faget\"},{\"label\":\"Postal code\",\"value\":\"31460\"}],\"link\":\"\",\"event\":\"Du 22\\\/11\\\/2026 au 22\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":5,\"featurable\":false,\"featured\":false,\"type\":\"gabarit-activites-a-proximite\",\"name\":\"Cordes-sur-Ciel - medieval village\",\"image\":\"\",\"credit\":\"\",\"description\":\"Discover the fortified village of Cordes-sur-Ciel, ranked among the most beautiful villages in France. Walk through cobbled streets, enjoy spectacular views, and see typical medieval architecture from the Tarn region.\",\"city\":\"\",\"address\":\"\",\"km\":35,\"min\":30,\"lat\":null,\"lng\":null,\"tags\":[],\"fields\":[{\"label\":\"Name\",\"value\":\"Cordes-sur-Ciel - medieval village\"},{\"label\":\"Distance from the campsite (km)\",\"value\":\"35\"},{\"label\":\"Travel time from the campsite (min)\",\"value\":\"30\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":6,\"featurable\":false,\"featured\":false,\"type\":\"gabarit-activites-a-proximite\",\"name\":\"Gaillac and its vineyards\",\"image\":\"\",\"credit\":\"\",\"description\":\"Explore the vineyards of Gaillac and visit local cellars to learn about Tarn\\u2019s wine-making history and its typical grape varieties.\",\"city\":\"\",\"address\":\"\",\"km\":18,\"min\":25,\"lat\":null,\"lng\":null,\"tags\":[],\"fields\":[{\"label\":\"Name\",\"value\":\"Gaillac and its vineyards\"},{\"label\":\"Distance from the campsite (km)\",\"value\":\"18\"},{\"label\":\"Travel time from the campsite (min)\",\"value\":\"25\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":8,\"featurable\":false,\"featured\":false,\"type\":\"gabarit-activites-a-proximite\",\"name\":\"Bord du Tarn and water activities\",\"image\":\"\",\"credit\":\"\",\"description\":\"Walk along the Tarn River and enjoy canoe\\\/kayak activities in the region to experience a pleasant natural setting.\",\"city\":\"\",\"address\":\"\",\"km\":10,\"min\":20,\"lat\":null,\"lng\":null,\"tags\":[],\"fields\":[{\"label\":\"Name\",\"value\":\"Bord du Tarn and water activities\"},{\"label\":\"Distance from the campsite (km)\",\"value\":\"10\"},{\"label\":\"Travel time from the campsite (min)\",\"value\":\"20\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":9,\"featurable\":false,\"featured\":false,\"type\":\"gabarit-activites-a-proximite\",\"name\":\"Perched villages and excursions around Brens\",\"image\":\"\",\"credit\":\"\",\"description\":\"Short routes to bastides and perched villages in the surroundings (Cordes-sur-Ciel, Puycelsi) with landscapes and heritage to explore with family or friends.\",\"city\":\"\",\"address\":\"\",\"km\":30,\"min\":30,\"lat\":null,\"lng\":null,\"tags\":[],\"fields\":[{\"label\":\"Name\",\"value\":\"Perched villages and excursions around Brens\"},{\"label\":\"Distance from the campsite (km)\",\"value\":\"30\"},{\"label\":\"Travel time from the campsite (min)\",\"value\":\"30\"}],\"link\":\"\",\"event\":\"\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":10,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Market - Fernand Pelloutier Square\",\"image\":\"\",\"credit\":\"\",\"description\":\"Fernand Pelloutier Square, just 10 minutes from the historic center, a dozen traders set up their stalls to offer the public fruits, vegetables, meats, and more!\",\"city\":\"Albi\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.925667,\"lng\":2.152635,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Albi\"},{\"label\":\"Postal code\",\"value\":\"81000\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 07:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":11,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Brens Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Come and do your shopping for fresh and local products!\",\"city\":\"Brens\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.889635,\"lng\":1.90953,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Brens\"},{\"label\":\"Postal code\",\"value\":\"81600\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":12,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Graulhet Sunday Morning Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"The weekly market takes place in the heart of the town, Place de la R\\u00e9publique and Place du Jourdain.\",\"city\":\"Graulhet\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.761937,\"lng\":1.989962,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Graulhet\"},{\"label\":\"Postal code\",\"value\":\"81300\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":13,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Thursday Morning Market in Graulhet\",\"image\":\"\",\"credit\":\"\",\"description\":\"In a friendly atmosphere, find everything you need at the Thursday market.\",\"city\":\"Graulhet\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.761937,\"lng\":1.989962,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Graulhet\"},{\"label\":\"Postal code\",\"value\":\"81300\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":14,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Producer's Market in Lavaur\",\"image\":\"\",\"credit\":\"\",\"description\":\"Small market dedicated to local producers.\",\"city\":\"Lavaur\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.69903,\"lng\":1.815034,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Lavaur\"},{\"label\":\"Postal code\",\"value\":\"81500\"}],\"link\":\"http:\\\/\\\/www.ville-lavaur.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":15,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Small Salvagnac Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Throughout the year, come discover the Salvagnac market from 8 am. Fruits, vegetables, butchery, pizzas, and fish await you.\",\"city\":\"Salvagnac\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.905603,\"lng\":1.687194,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Salvagnac\"},{\"label\":\"Postal code\",\"value\":\"81630\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":16,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Lescure d'Albigeois Outdoor Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"The Lescure market: a producer market\",\"city\":\"Lescure-d'Albigeois\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.953145,\"lng\":2.170234,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Lescure-d'Albigeois\"},{\"label\":\"Postal code\",\"value\":\"81380\"}],\"link\":\"https:\\\/\\\/www.lescure-albigeois.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:30 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":17,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Saint-Paul-Cap-de-Joux Weekly Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Every Tuesday morning, a small farmers' market in the village square! Good fresh local products for everyone!\",\"city\":\"Saint-Paul-Cap-de-Joux\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.647721,\"lng\":1.975614,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Saint-Paul-Cap-de-Joux\"},{\"label\":\"Postal code\",\"value\":\"81220\"}],\"link\":\"http:\\\/\\\/www.saintpaulcapdejoux.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:30 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":18,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Little Saint-Pierre District Market - Graulhet\",\"image\":\"\",\"credit\":\"\",\"description\":\"Some food vendors offer their local products and vegetables in short supply chains.\",\"city\":\"Graulhet\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.760292,\"lng\":2.004637,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Graulhet\"},{\"label\":\"Postal code\",\"value\":\"81300\"}],\"link\":\"https:\\\/\\\/www.ville-graulhet.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 06:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":19,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Arth\\u00e8s Outdoor Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Every Saturday morning, find the Arth\\u00e8s market at the Fran\\u00e7ois Mitterrand Square.\",\"city\":\"Arth\\u00e8s\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.954166,\"lng\":2.206821,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Arth\\u00e8s\"},{\"label\":\"Postal code\",\"value\":\"81160\"}],\"link\":\"http:\\\/\\\/www.mairie-arthes.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":20,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Madeleine Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Boulevard de Strasbourg, just 5 minutes from the historic center, about thirty vendors set up their stalls to offer fruits, vegetables, meats, and more!\",\"city\":\"Albi\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.933905,\"lng\":2.146379,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Albi\"},{\"label\":\"Postal code\",\"value\":\"81000\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 07:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":21,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Cabaret Evening at the Farm\",\"image\":\"\",\"credit\":\"\",\"description\":\"7:00 PM: Welcome - 8:00 PM: Meal - 10:00 PM: Show\",\"city\":\"Garrigues\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.710799,\"lng\":1.708941,\"tags\":[\"Other events\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Other events\"},{\"label\":\"City\",\"value\":\"Garrigues\"},{\"label\":\"Postal code\",\"value\":\"81500\"}],\"link\":\"https:\\\/\\\/lesfoliesfermieres.com\\\/\",\"event\":\"Du 07\\\/11\\\/2026 \\u00e0 19:00 au 07\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":22,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Barri\\u00e8res Producers Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"All year round, take time to browse this small producers' market, a true concentrate of local flavors. You'll find a selection of local producers: seasonal vegetables, cheeses, and caterer's dishes.\",\"city\":\"Lisle-sur-Tarn\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.894636,\"lng\":1.762771,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Lisle-sur-Tarn\"},{\"label\":\"Postal code\",\"value\":\"81310\"}],\"link\":\"\",\"event\":\"Du 04\\\/09\\\/2026 \\u00e0 17:30 au 25\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":23,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"\\u00c9cho Loco \\\/ Noctambio de Labastide Saint-Georges\",\"image\":\"\",\"credit\":\"\",\"description\":\"Every Thursday from 5 p.m. to 7 p.m. in Place de la Fraternit\\u00e9, come and find your farmers\\u2019 and organic market.\\r\\nYou will find a wide range of organic and local products.\\r\\nFree parking.\",\"city\":\"Labastide-Saint-Georges\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.699387,\"lng\":1.841832,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Labastide-Saint-Georges\"},{\"label\":\"Postal code\",\"value\":\"81500\"}],\"link\":\"https:\\\/\\\/www.nptarn.org\\\/evenements\\\/les-noctambios#17\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 17:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":24,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"March\\u00e9 de la Guilde Laroque\",\"image\":\"\",\"credit\":\"\",\"description\":\"Weekly market at the Guilde Laroque\",\"city\":\"Peyregoux\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.699594,\"lng\":2.194254,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Peyregoux\"},{\"label\":\"Postal code\",\"value\":\"81440\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 17:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":26,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"TOURISM AND CULTURE EVENTS - DISCOVER SPIRULINA\",\"image\":\"\",\"credit\":\"\",\"description\":\"Nicolas Fourtouil, after a career in transport and aeronautical logistics, decided to grow this aquatic micro-organism on the outskirts of Toulouse. His project: local production, a human-scale farm, a product intended for the people of Toulouse. During the educational visit, which lasts about 1 hour, Nicolas will tell you all about the origins, the benefits and the cultivation of this \\u201csuperfood\\u201d as the WHO describes spirulina.\\n\\nYou will also learn that spirulina is one of the 9 staple foods of astronauts, that its cultivation uses very little energy, and that everyone can find a benefit in consuming it, and more. To see everything and learn everything, sign up!\",\"city\":\"Bazus\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.732276,\"lng\":1.524838,\"tags\":[\"Other events\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Other events\"},{\"label\":\"City\",\"value\":\"Bazus\"},{\"label\":\"Postal code\",\"value\":\"31380\"}],\"link\":\"http:\\\/\\\/www.spirulinetolosane.com\\\/event-details\\\/visitez-la-ferme-de-spiruline-tolosane-2026-01-21-14-30\",\"event\":\"Du 25\\\/11\\\/2026 \\u00e0 14:30 au 25\\\/11\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":27,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Organic and local producers' market in Teulat\",\"image\":\"\",\"credit\":\"\",\"description\":\"Meet every Thursday of the year, from 5 p.m. to 8 p.m., under the Hall of the public garden of Teulat to discover a market of local and organic produce, offered by the producers of the village and the surrounding area.\",\"city\":\"Teulat\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.6333,\"lng\":1.7,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Teulat\"},{\"label\":\"Postal code\",\"value\":\"81500\"}],\"link\":\"https:\\\/\\\/mairie-teulat.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 17:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":28,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Monthly market of Vielmur-sur-Agout\",\"image\":\"\",\"credit\":\"\",\"description\":\"Open-air market in Vielmur. Come and meet the producers.\",\"city\":\"Vielmur-sur-Agout\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.619874,\"lng\":2.090325,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Vielmur-sur-Agout\"},{\"label\":\"Postal code\",\"value\":\"81570\"}],\"link\":\"http:\\\/\\\/lepaysdecocagne.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":31,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Saint-Sulpice Small Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"On the main square, a small market of local producers.\",\"city\":\"Saint-Sulpice-la-Pointe\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.773993,\"lng\":1.686425,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Saint-Sulpice-la-Pointe\"},{\"label\":\"Postal code\",\"value\":\"81370\"}],\"link\":\"https:\\\/\\\/www.saintsulpicelapointe.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":32,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Village Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Every Thursday from 5 PM to 9 PM, small producers' market in the car park of the community hall! Good fresh local products for everyone!\",\"city\":\"Damiatte\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.651801,\"lng\":1.975415,\"tags\":[\"March\\u00e9s & foires\"],\"fields\":[{\"label\":\"Category\",\"value\":\"March\\u00e9s & foires\"},{\"label\":\"City\",\"value\":\"Damiatte\"},{\"label\":\"Postal code\",\"value\":\"81220\"}],\"link\":\"https:\\\/\\\/mairie-damiatte.com\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 17:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":34,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Producer Market - S\\u00e9nouillac\",\"image\":\"\",\"credit\":\"\",\"description\":\"Come and end your day browsing this small producer market.\",\"city\":\"Senouillac\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.942021,\"lng\":1.94797,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Senouillac\"},{\"label\":\"Postal code\",\"value\":\"81600\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 16:30 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":35,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Castelnau-de-L\\u00e9vis Open-air Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Every Friday evening, find the producers' market in Castelnau-de-L\\u00e9vis on the village square.\",\"city\":\"Castelnau-de-L\\u00e9vis\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.938162,\"lng\":2.082754,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Castelnau-de-L\\u00e9vis\"},{\"label\":\"Postal code\",\"value\":\"81150\"}],\"link\":\"http:\\\/\\\/www.carlus.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 17:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":36,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Saint Michel de Vax Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Local producers' market: vegetable growers, winemakers, bread, honey, beer, cheese, small on-site refreshments.\",\"city\":\"Saint-Michel-de-Vax\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":44.106085,\"lng\":1.798973,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Saint-Michel-de-Vax\"},{\"label\":\"Postal code\",\"value\":\"81140\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 17:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":37,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Monthly Market of Guitalens-L'Albar\\u00e8de\",\"image\":\"\",\"credit\":\"\",\"description\":\"The outdoor market of Guitalens-l'Albar\\u00e8de. Come and meet local producers!\",\"city\":\"Guitalens-L'Albar\\u00e8de\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.643869,\"lng\":2.045591,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Guitalens-L'Albar\\u00e8de\"},{\"label\":\"Postal code\",\"value\":\"81220\"}],\"link\":\"http:\\\/\\\/lepaysdecocagne.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":38,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Covered Market Hall\",\"image\":\"\",\"credit\":\"\",\"description\":\"Shop in a listed site in the heart of the historic center!\",\"city\":\"Albi\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.928925,\"lng\":2.144975,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Albi\"},{\"label\":\"Postal code\",\"value\":\"81000\"}],\"link\":\"http:\\\/\\\/www.marchecouvert-albi.com\\\/\",\"event\":\"Du 01\\\/01\\\/2026 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":39,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Lisle-sur-Tarn Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Lisle-sur-Tarn Market, Sunday morning on the Paul Saissac square for a friendly and delicious moment.\",\"city\":\"Lisle-sur-Tarn\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.852713,\"lng\":1.810468,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Lisle-sur-Tarn\"},{\"label\":\"Postal code\",\"value\":\"81310\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":40,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Grand Saturday Market in Lavaur\",\"image\":\"\",\"credit\":\"\",\"description\":\"Located on the alleys, you can enjoy one of the largest markets in the region!\",\"city\":\"Lavaur\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.69903,\"lng\":1.815034,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Lavaur\"},{\"label\":\"Postal code\",\"value\":\"81500\"}],\"link\":\"http:\\\/\\\/www.ville-lavaur.fr\\\/Marches-foires-54#.WqE3CnwiEdU\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 07:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":41,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Cabannes Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Local producers, food shops.\\nFishmongery, fruit and vegetable sales, local market gardener, bakery and pastry shop, florists, beekeeper, winemaker.\",\"city\":\"Les Cabannes\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":44.066585,\"lng\":1.940996,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Les Cabannes\"},{\"label\":\"Postal code\",\"value\":\"81170\"}],\"link\":\"https:\\\/\\\/www.lescabannes81.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 07:30 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":42,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Village Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Every Friday morning, a small producer market on the central square of Lautrec! Good fresh local products for everyone!\",\"city\":\"Lautrec\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.706263,\"lng\":2.138542,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Lautrec\"},{\"label\":\"Postal code\",\"value\":\"81440\"}],\"link\":\"http:\\\/\\\/www.lautrec.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:30 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":43,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Carlus Open-air Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"The outdoor market is a highlight of the economic and social life of the village of Carlus.\",\"city\":\"Carlus\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.886117,\"lng\":2.108243,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Carlus\"},{\"label\":\"Postal code\",\"value\":\"81990\"}],\"link\":\"http:\\\/\\\/www.carlus.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":44,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Castelviel Country Producers Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Just a few steps from the cathedral, a country producers market takes place every Thursday (located within 60 km of Albi) under the Castelviel fairground hall; delighting even the most gourmets with farm products\",\"city\":\"Albi\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.926603,\"lng\":2.136299,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Albi\"},{\"label\":\"Postal code\",\"value\":\"81000\"}],\"link\":\"https:\\\/\\\/www.bienvenue-a-la-ferme.com\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 16:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":45,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Carmaux Weekly Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"The Friday morning weekly market in Carmaux is a must-visit. Fill your baskets with good local products.\",\"city\":\"Carmaux\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":44.050034,\"lng\":2.16075,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Carmaux\"},{\"label\":\"Postal code\",\"value\":\"81400\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":46,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Wednesday Market at Saint-Sulpice\",\"image\":\"\",\"credit\":\"\",\"description\":\"On the main square, along the esplanade, find fresh and farm produce from the region.\",\"city\":\"Saint-Sulpice-la-Pointe\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.773993,\"lng\":1.686425,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Saint-Sulpice-la-Pointe\"},{\"label\":\"Postal code\",\"value\":\"81370\"}],\"link\":\"https:\\\/\\\/www.saintsulpicelapointe.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 07:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":47,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Rabastens Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Taste fresh and seasonal products from local producers!\",\"city\":\"Rabastens\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.821189,\"lng\":1.724549,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Rabastens\"},{\"label\":\"Postal code\",\"value\":\"81800\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":48,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Small Market of Cahuzac-sur-V\\u00e8re\",\"image\":\"\",\"credit\":\"\",\"description\":\"A small market on the village square.\",\"city\":\"Cahuzac-sur-V\\u00e8re\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.983497,\"lng\":1.911397,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Cahuzac-sur-V\\u00e8re\"},{\"label\":\"Postal code\",\"value\":\"81140\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":49,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Gaillac Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Come do your weekly shopping at Gaillac market! Fruits, vegetables, plants and flowers, cheeses and other treats... Also find artisans. From December 20 to February 21, a truffle stand will be available.\",\"city\":\"Gaillac\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.899981,\"lng\":1.897823,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Gaillac\"},{\"label\":\"Postal code\",\"value\":\"81600\"}],\"link\":\"https:\\\/\\\/www.gaillac.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":50,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Gaillac Noctambio\",\"image\":\"\",\"credit\":\"\",\"description\":\"Every Tuesday of the year, find organic small producers under the hall of the Griffoul square.\",\"city\":\"Gaillac\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.900825,\"lng\":1.89735,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Gaillac\"},{\"label\":\"Postal code\",\"value\":\"81600\"}],\"link\":\"https:\\\/\\\/www.nptarn.org\\\/biocybele\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 16:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":51,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Weekly Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Meet local producers in the heart of the village.\",\"city\":\"Cagnac-les-Mines\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.986,\"lng\":2.1405,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Cagnac-les-Mines\"},{\"label\":\"Postal code\",\"value\":\"81130\"}],\"link\":\"http:\\\/\\\/www.cagnac-les-mines.fr\\\/default\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":52,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"The Creation and Booksellers Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Attention to reading and craft enthusiasts!\",\"city\":\"Albi\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.928237,\"lng\":2.144678,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Albi\"},{\"label\":\"Postal code\",\"value\":\"81000\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 09:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":53,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Lombers Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Sunday market in the village of Lombers.\",\"city\":\"Lombers\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.804883,\"lng\":2.149199,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Lombers\"},{\"label\":\"Postal code\",\"value\":\"81120\"}],\"link\":\"http:\\\/\\\/www.lombers.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 10:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":54,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Small Market of Gaillac\",\"image\":\"\",\"credit\":\"\",\"description\":\"Enjoy fresh local products and the friendliness of the vendors!\",\"city\":\"Gaillac\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.901336,\"lng\":1.897252,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Gaillac\"},{\"label\":\"Postal code\",\"value\":\"81600\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":55,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Market - Place de la Pile\",\"image\":\"\",\"credit\":\"\",\"description\":\"The Place de la Pile market is located around the covered market.\\nOn Saturday, from 7 am to 1 pm.\",\"city\":\"Albi\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.928203,\"lng\":2.143863,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Albi\"},{\"label\":\"Postal code\",\"value\":\"81000\"}],\"link\":\"http:\\\/\\\/www.mairie-albi.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 07:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":56,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Marssac Open-Air Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"The open-air market is a highlight of our village's economic and social life.\",\"city\":\"Marssac-sur-Tarn\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.917626,\"lng\":2.029224,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Marssac-sur-Tarn\"},{\"label\":\"Postal code\",\"value\":\"81150\"}],\"link\":\"http:\\\/\\\/www.marssac-sur-tarn.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 07:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":57,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Small Briatexte Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Small market on the village square.\",\"city\":\"Briatexte\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.751163,\"lng\":1.908161,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Briatexte\"},{\"label\":\"Postal code\",\"value\":\"81390\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":58,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Castelnau de Montmiral Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"The Arcades Square in Castelnau hosts its producers' market.\",\"city\":\"Castelnau-de-Montmiral\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.965685,\"lng\":1.820007,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Castelnau-de-Montmiral\"},{\"label\":\"Postal code\",\"value\":\"81140\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":59,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Local producers market of Salvagnac\",\"image\":\"\",\"credit\":\"\",\"description\":\"All year round, discover the farmers' market of Salvagnac from 5pm. In summer, the market starts at 6pm.\",\"city\":\"Salvagnac\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.905603,\"lng\":1.687194,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Salvagnac\"},{\"label\":\"Postal code\",\"value\":\"81630\"}],\"link\":\"\",\"event\":\"Du 04\\\/10\\\/2026 \\u00e0 17:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":60,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"L'\\u00e9cho Loco, organic producers market in Labastide-Saint-Georges\",\"image\":\"\",\"credit\":\"\",\"description\":\"The \\u00c9cho Loco market waits for you every Thursday from 7pm to 8:30pm in the Fraternit\\u00e9 square. This producers' market is certified Organic AB, Nature and Progress, Biodynamics, or similar.\",\"city\":\"Labastide-Saint-Georges\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.699312,\"lng\":1.842729,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Labastide-Saint-Georges\"},{\"label\":\"Postal code\",\"value\":\"81500\"}],\"link\":\"https:\\\/\\\/app.cagette.net\\\/group\\\/7015\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 19:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":61,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Cordes sur Ciel Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Local producers, delicatessen shops, textiles, flowers...\",\"city\":\"Cordes-sur-Ciel\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":44.062399,\"lng\":1.958343,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Cordes-sur-Ciel\"},{\"label\":\"Postal code\",\"value\":\"81170\"}],\"link\":\"http:\\\/\\\/www.mairie.cordessurciel.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 07:30 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":62,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Vaour Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Stands of local producers.\",\"city\":\"Vaour\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":44.07285,\"lng\":1.801892,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Vaour\"},{\"label\":\"Postal code\",\"value\":\"81140\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 07:30 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":63,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Organic Market - Place Fernand Pelloutier\",\"image\":\"\",\"credit\":\"\",\"description\":\"About ten vendors welcome you at Place Fernand Pelloutier, every Tuesday from 4pm to 8pm: local farmers, bread, cheese, biscuits, savory pies and seasonal fruits and vegetables from local producers, ice creams, producers' plants.\",\"city\":\"Albi\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.925627,\"lng\":2.152761,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Albi\"},{\"label\":\"Postal code\",\"value\":\"81000\"}],\"link\":\"https:\\\/\\\/www.nptarn.org\\\/evenements\\\/les-noctambios#17\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 16:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":64,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Saint-Ju\\u00e9ry Open-Air Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Every Thursday morning, find the \\\"classic\\\" market of Saint-Ju\\u00e9ry at the station esplanade.\",\"city\":\"Saint-Ju\\u00e9ry\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.947377,\"lng\":2.21012,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Saint-Ju\\u00e9ry\"},{\"label\":\"Postal code\",\"value\":\"81160\"}],\"link\":\"http:\\\/\\\/ville-saint-juery.fr\\\/\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 07:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":65,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Penne Weekly Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"Local producers' market. Don't miss the Thursday evening meeting with small bites and a drinks stand! In February and March, the market is only on the last Thursday of the month.\",\"city\":\"Penne\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":44.076776,\"lng\":1.730882,\"tags\":[\"Markets & fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & fairs\"},{\"label\":\"City\",\"value\":\"Penne\"},{\"label\":\"Postal code\",\"value\":\"81140\"}],\"link\":\"\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 18:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":66,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"R\\u00e9almont Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"R\\u00e9almont's market is one of the oldest in the department. It dates back to the 13th century.\",\"city\":\"R\\u00e9almont\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.775789,\"lng\":2.188018,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"R\\u00e9almont\"},{\"label\":\"Postal code\",\"value\":\"81120\"}],\"link\":\"https:\\\/\\\/www.realmont.fr\\\/quotidien\\\/commerces\\\/marche-mercredi\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 08:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]},{\"id\":67,\"featurable\":true,\"featured\":false,\"type\":\"evenements-locaux-31\",\"name\":\"Noctambio - Market\",\"image\":\"\",\"credit\":\"\",\"description\":\"The \\\"Noctambio\\\" market takes place on Marie Curie square, every Monday from 4 PM to 7 PM. Come enjoy local products!\",\"city\":\"Saint-Ju\\u00e9ry\",\"address\":\"\",\"km\":null,\"min\":null,\"lat\":43.946582,\"lng\":2.209981,\"tags\":[\"Markets & Fairs\"],\"fields\":[{\"label\":\"Category\",\"value\":\"Markets & Fairs\"},{\"label\":\"City\",\"value\":\"Saint-Ju\\u00e9ry\"},{\"label\":\"Postal code\",\"value\":\"81160\"}],\"link\":\"https:\\\/\\\/www.nptarn.org\\\/evenements\\\/les-noctambios#17\",\"event\":\"Du 01\\\/01\\\/2026 \\u00e0 16:00 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"faq\":[],\"video_url\":\"\",\"video_embed\":null,\"documents\":[],\"gallery\":[]}];\n    var CATS = {\"gabarit-fiche-villes-villages\":{\"key\":\"gabarit-fiche-villes-villages\",\"label\":\"Gabarit - Fiche Villes & Villages\",\"adhoc\":false,\"color\":\"#c2410c\",\"count\":5,\"image\":\"https:\\\/\\\/www.tourisme-tarn.com\\\/wp-content\\\/uploads\\\/2018\\\/07\\\/73_-abbaye_st.michel_gaillac_raynaud-photo-3-1-1200x800.jpg\"},\"gabarit-activites-a-proximite\":{\"key\":\"gabarit-activites-a-proximite\",\"label\":\"Gabarit Activit\\u00e9s \\u00e0 proximit\\u00e9\",\"adhoc\":false,\"color\":\"#2563eb\",\"count\":5,\"image\":\"https:\\\/\\\/www.albi-tourisme.fr\\\/app\\\/uploads\\\/iris-images\\\/117\\\/20210826-101926-1920x1080-f50_50.jpg\"},\"evenements-locaux-31\":{\"key\":\"evenements-locaux-31\",\"label\":\"\\u00c9v\\u00e9nements locaux\",\"adhoc\":false,\"color\":\"#15803d\",\"count\":58,\"image\":\"http:\\\/\\\/cdt31.media.tourinsoft.eu\\\/upload\\\/833701878-1056445880720710-742694986371225743-n.jpg\"}};\n    \/\/ Textes d'interface dans la langue de la page (includes\/i18n.php)\n    var T = {\"blog_read_more\":\"Read the article\",\"blog_empty\":\"No articles yet.\",\"blog_newer\":\"Newer articles\",\"blog_older\":\"Older articles\",\"blog_label\":\"Articles\",\"hero_title\":\"Things to discover nearby\",\"hero_text\":\"Villages, beaches, walks, good addresses and experiences selected around your stay.\",\"around\":\"Around\",\"search_placeholder\":\"Search for a place, an activity, a village\\u2026\",\"search\":\"Search\",\"max_distance\":\"Maximum distance\",\"all\":\"All\",\"prev_categories\":\"Previous categories\",\"next_categories\":\"Next categories\",\"categories\":\"Categories\",\"display\":\"Display\",\"list\":\"List\",\"map\":\"Map\",\"close\":\"Close\",\"featured\":\"Featured\",\"discover\":\"Discover\",\"idea\":\"idea\",\"ideas\":\"ideas\",\"around_you\":\"around you\",\"no_result\":\"No results\",\"no_result_hint\":\"Try another search, category or distance.\",\"pagination\":\"Ideas pagination\",\"prev_page\":\"Previous page\",\"next_page\":\"Next page\",\"ideas_title\":\"Ideas to suit your mood\",\"ideas_sub\":\"Suggestions to plan your perfect stay.\",\"reset_view\":\"Back to the overview\",\"map_hint\":\"Click a marker on the map to show its details here.\",\"official_site\":\"Official website\",\"video\":\"Video\",\"gallery\":\"Gallery\",\"documents\":\"Documents\",\"faq\":\"Frequently asked questions\",\"no_answer\":\"No answer yet.\",\"see_on_maps\":\"View on Google Maps\",\"see_place_on_maps\":\"View the campsite on Google Maps\",\"yes\":\"Yes\",\"no\":\"No\",\"practical_info\":\"Practical information\",\"reviews\":\"reviews\",\"read_more\":\"Read more\",\"prev_review\":\"Previous review\",\"next_review\":\"Next review\",\"prev_item\":\"Previous\",\"next_item\":\"Next\",\"photo_credit\":\"Photo: %s\",\"directions\":\"Directions\",\"read_less\":\"Show less\",\"article_in_this\":\"In this article\",\"article_toc\":\"Article contents\",\"see_original\":\"Automatically translated \\u00b7 See original\",\"see_translation\":\"See translation\",\"stars_out_of_5\":\"%s stars out of 5\",\"owner_reply\":\"Response from the owner\",\"customer\":\"Guest\",\"customer_reviews\":\"Guest reviews\",\"rating_label\":\"Rated %1$s out of 5, %2$s reviews \\u2014 see the reviews\",\"reviews_by\":\"Reviews presented by Elaia\",\"powered_by\":\"Powered by\",\"today\":\"Today\",\"today_lc\":\"today\",\"tomorrow\":\"Tomorrow\",\"until\":\"Until %s\",\"from_to\":\"From %1$s to %2$s\",\"registration\":\"Booking required\",\"full\":\"Full\",\"all_animations\":\"See all activities \\u2192\",\"ago_day\":\"%d day ago\",\"ago_days\":\"%d days ago\",\"ago_week\":\"%d week ago\",\"ago_weeks\":\"%d weeks ago\",\"ago_month\":\"%d month ago\",\"ago_months\":\"%d months ago\",\"ago_year\":\"%d year ago\",\"ago_years\":\"%d years ago\",\"anim_unavailable\":\"The programme is temporarily unavailable\",\"content_unavailable\":\"This content is temporarily unavailable\",\"anim_eyebrow\":\"Enjoy unforgettable moments\",\"anim_title\":\"Activities & events\",\"anim_hero_text\":\"Find all current activities, this week's highlights and upcoming events during your stay.\",\"anim_sections\":\"Page sections\",\"anim_nav_today\":\"Today\",\"anim_nav_week\":\"This week\",\"anim_nav_upcoming\":\"Upcoming\",\"anim_nav_calendar\":\"Calendar\",\"anim_where\":\"Where?\",\"anim_onsite\":\"On site\",\"anim_nearby\":\"Nearby\",\"anim_no_onsite\":\"No on-site activity at the moment\",\"anim_no_nearby\":\"No nearby event at the moment\",\"anim_all_day\":\"All day\",\"anim_at\":\"at %s\",\"anim_see_detail\":\"see details\",\"anim_live\":\"Ongoing\",\"anim_onsite_spot\":\"On site \\u00b7 %s\",\"anim_badge_until\":\"Until\",\"anim_badge_from\":\"From\",\"anim_badge_today\":\"Today\",\"anim_filter_cat\":\"Filter by category\",\"anim_all_f\":\"All\",\"anim_prev_day\":\"Previous day\",\"anim_next_day\":\"Next day\",\"anim_today_title\":\"Today's activities\",\"anim_tomorrow_title\":\"Tomorrow's activities\",\"anim_day_title\":\"Activities on %s\",\"anim_relax_today\":\"A relaxing day today\",\"anim_nothing_day\":\"Nothing planned that day\",\"anim_next_on\":\"Next event on %s.\",\"anim_soon\":\"The programme will be updated soon.\",\"anim_see_day\":\"See that day\",\"anim_prev_acts\":\"Previous activities\",\"anim_next_acts\":\"Next activities\",\"anim_prev_week\":\"Previous week\",\"anim_next_week\":\"Next week\",\"anim_week_title\":\"This week's highlights\",\"anim_next_week_title\":\"Next week\",\"anim_week_of\":\"Week of %s\",\"anim_week_days\":\"Days of the week\",\"anim_today_paren\":\"(today)\",\"anim_activity\":\"%d activity\",\"anim_activities\":\"%d activities\",\"anim_nothing\":\"nothing planned\",\"anim_pick_day\":\"Select another day to see its programme.\",\"anim_sort\":\"Sort events\",\"anim_sort_date\":\"Sort by date\",\"anim_sort_name\":\"Sort by name\",\"anim_upcoming_title\":\"All upcoming events\",\"anim_no_upcoming\":\"No upcoming events\",\"anim_try_cat\":\"Try another category.\",\"anim_more\":\"See more events (%d)\",\"anim_hide_cal\":\"Hide the calendar\",\"anim_show_cal\":\"See the full calendar\",\"anim_cal_title\":\"Monthly calendar\",\"anim_cal_sub\":\"All of the month's events at a glance.\",\"anim_prev_month\":\"Previous month\",\"anim_next_month\":\"Next month\",\"anim_more_info\":\"More information\",\"anim_new_tab\":\"(new tab)\",\"date_locale\":\"en-GB\",\"page_faq\":\"FAQ\",\"page_metadatas\":\"Discover around you\",\"page_animations\":\"Activities and events\",\"page_corpus\":\"Practical information\",\"anim_event\":\"Event\"};\n    var DECIMAL = \".\";\n    function plural(n) { return n + ' ' + (n > 1 ? T.ideas : T.idea); }\n    var MAP = {\"tiles_url\":\"https:\\\/\\\/tile.openstreetmap.org\\\/{z}\\\/{x}\\\/{y}.png\",\"attribution\":\"\\u00a9 <a href=\\\"https:\\\/\\\/www.openstreetmap.org\\\/copyright\\\">OpenStreetMap<\\\/a>\",\"home\":null};\n    var ACCENT = \"#2e5e45\";\n    var STEP = 12;\n    var BY_ID = {};\n    ITEMS.forEach(function(it) {\n      BY_ID[it.id] = it;\n    });\n\n    var app = document.getElementById('mv-app');\n    if (!app) return;\n\n    var state = { selected: null, page: 1, q: '', km: 0, cat: 'all', limit: STEP, view: window.matchMedia('(max-width: 1100px)').matches ? 'list' : 'map' };\n\n    \/\/ \u2550\u2550\u2550 Ic\u00f4nes (SVG statiques) + ic\u00f4ne d\u00e9duite de la cat\u00e9gorie \u2550\u2550\u2550\n    var ICONS = {\n      grid: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"4\" y=\"4\" width=\"6\" height=\"6\" rx=\"1\"\/><rect x=\"14\" y=\"4\" width=\"6\" height=\"6\" rx=\"1\"\/><rect x=\"4\" y=\"14\" width=\"6\" height=\"6\" rx=\"1\"\/><rect x=\"14\" y=\"14\" width=\"6\" height=\"6\" rx=\"1\"\/><\/svg>',\n      home: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><path d=\"M3 11l9-7 9 7\"\/><path d=\"M5 10v10h14V10\"\/><path d=\"M10 20v-6h4v6\"\/><\/svg>',\n      beach: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M12 3a9 9 0 0 1 9 9H3a9 9 0 0 1 9-9z\"\/><path d=\"M12 12v9M8 21h8\"\/><\/svg>',\n      leaf: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 19c0-8 5-14 15-14 0 10-6 15-14 15\"\/><path d=\"M5 19l7-7\"\/><\/svg>',\n      family: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"8\" cy=\"6\" r=\"2.5\"\/><circle cx=\"16\" cy=\"6\" r=\"2.5\"\/><path d=\"M4 21v-6a4 4 0 0 1 8 0v6M12 21v-6a4 4 0 0 1 8 0v6\"\/><\/svg>',\n      food: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M7 3v8a2 2 0 0 0 4 0V3M9 11v10M17 3c-2 0-3 2-3 5s1 4 3 4v9\"\/><\/svg>',\n      shop: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><path d=\"M4 9l1.5-5h13L20 9\"\/><path d=\"M4 9h16v2a3 3 0 0 1-6 0 3 3 0 0 1-4 0 3 3 0 0 1-6 0z\"\/><path d=\"M5 13v7h14v-7\"\/><\/svg>',\n      calendar: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\"\/><path d=\"M16 3v4M8 3v4M3 10h18\"\/><\/svg>',\n      wine: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M8 3h8l-.5 6a3.5 3.5 0 0 1-7 0z\"\/><path d=\"M12 13v8M8 21h8\"\/><\/svg>',\n      walk: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"13\" cy=\"4\" r=\"2\"\/><path d=\"M9 21l3-7 3 3v5M8 12l2-4 4 1 3 3\"\/><\/svg>',\n      bed: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M3 18V7M3 14h18v4M21 14v-3a3 3 0 0 0-3-3h-7v6\"\/><circle cx=\"7\" cy=\"11\" r=\"2\"\/><\/svg>',\n      pool: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M2 17c2 0 2-1.5 4-1.5S8 17 10 17s2-1.5 4-1.5 2 1.5 4 1.5 2-1.5 4-1.5M8 14V5a2 2 0 0 1 4 0M14 14V5a2 2 0 0 1 4 0M8 9h6\"\/><\/svg>',\n      info: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 11v6M12 7.5v.5\"\/><\/svg>',\n      pin: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z\"\/><circle cx=\"12\" cy=\"9.5\" r=\"2.5\"\/><\/svg>',\n      car: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 17h14M5 17v2M19 17v2M4 13l2-6h12l2 6v4H4z\"\/><circle cx=\"8\" cy=\"14.5\" r=\"0.5\"\/><circle cx=\"16\" cy=\"14.5\" r=\"0.5\"\/><\/svg>',\n      clock: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 7v5l3 2\"\/><\/svg>',\n      star: '<svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 3l2.8 5.7 6.2.9-4.5 4.4 1.1 6.2L12 17.3 6.4 20.2l1.1-6.2L3 9.6l6.2-.9z\"\/><\/svg>',\n      arrow: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>',\n      home: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3L3 19h18L12 3z\"\/><path d=\"M12 3v16M9 19l3-6 3 6\"\/><\/svg>',\n      reset: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 9V4h5M20 15v5h-5M4 4l6 6M20 20l-6-6M15 4h5v5M9 20H4v-5\"\/><\/svg>',\n      maps: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 4L3 6v14l6-2 6 2 6-2V4l-6 2-6-2z\"\/><path d=\"M9 4v14M15 6v14\"\/><\/svg>',\n      doc: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><path d=\"M6 3h8l4 4v14H6z\"\/><path d=\"M14 3v4h4\"\/><\/svg>'\n    };\n\n    var ICON_RULES = [\n      [\/ville|village|city|alentour\/, 'home'],\n      [\/plage|beach|mer\\b\/, 'beach'],\n      [\/nature|balade|rando|parc|jardin\/, 'leaf'],\n      [\/famil|enfant|kid\/, 'family'],\n      [\/restau|gastro|repas|snack|bar\\b\/, 'food'],\n      [\/march|boutique|commerce|shop\/, 'shop'],\n      [\/evenement|\u00e9v\u00e9nement|event|agenda|atelier|animation\/, 'calendar'],\n      [\/vin|boisson|cave|terroir|bodega\/, 'wine'],\n      [\/activit|sport|loisir|lieu\/, 'walk'],\n      [\/heberg|locatif|accom|mobil\/, 'bed'],\n      [\/piscine|pool|aqua|pataug\/, 'pool'],\n      [\/service|equipement|\u00e9quipement|info\/, 'info']\n    ];\n\n    function catIcon(key) {\n      var c = CATS[key];\n      var hay = (key + ' ' + (c ? c.label : '')).toLowerCase();\n      for (var i = 0; i < ICON_RULES.length; i++) {\n        if (ICON_RULES[i][0].test(hay)) return ICON_RULES[i][1];\n      }\n      return 'pin';\n    }\n\n    function el(tag, cls, text) {\n      var n = document.createElement(tag);\n      if (cls) n.className = cls;\n      if (text != null) n.textContent = text;\n      return n;\n    }\n\n    function icon(name) {\n      var s = el('span', 'mv-icon');\n      s.setAttribute('aria-hidden', 'true');\n      s.innerHTML = ICONS[name] || ICONS.pin;\n      return s;\n    }\n\n    function catColor(key) {\n      return CATS[key] ? CATS[key].color : ACCENT;\n    }\n\n    function norm(s) {\n      return (s || '').toLowerCase().normalize('NFD').replace(\/[\u0300-\u036f]\/g, '');\n    }\n\n    \/\/ \u2550\u2550\u2550 Filtrage \u2550\u2550\u2550\n    function filtered() {\n      var q = norm(state.q.trim());\n      return ITEMS.filter(function(it) {\n        if (state.cat !== 'all' && it.type !== state.cat) return false;\n        \/\/ Distance : seules les fiches qui ont une distance connue sont filtr\u00e9es\n        if (state.km && it.km !== null && it.km > state.km) return false;\n        if (q) {\n          var hay = norm([it.name, it.city, it.description, (CATS[it.type] || {}).label, it.tags.join(' ')].join(' '));\n          if (hay.indexOf(q) === -1) return false;\n        }\n        return true;\n      });\n    }\n\n    \/\/ \u2550\u2550\u2550 Cat\u00e9gories \u2550\u2550\u2550\n    function renderCats() {\n      var box = document.getElementById('mv-cats');\n      box.innerHTML = '';\n      var all = el('button', 'mv-cat' + (state.cat === 'all' ? ' is-active' : ''));\n      all.type = 'button';\n      all.appendChild(icon('grid'));\n      all.appendChild(document.createTextNode(T.all));\n      all.addEventListener('click', function() {\n        setCat('all');\n      });\n      box.appendChild(all);\n      Object.keys(CATS).forEach(function(key) {\n        var b = el('button', 'mv-cat' + (state.cat === key ? ' is-active' : ''));\n        b.type = 'button';\n        b.style.setProperty('--mv-cat', catColor(key));\n        b.appendChild(icon(catIcon(key)));\n        b.appendChild(document.createTextNode(CATS[key].label));\n        b.addEventListener('click', function() {\n          setCat(key);\n        });\n        box.appendChild(b);\n      });\n      updateCatArrows();\n      var active = box.querySelector('.is-active');\n      if (active && active.scrollIntoView && active.offsetLeft + active.offsetWidth > box.scrollLeft + box.clientWidth) {\n        box.scrollLeft = active.offsetLeft - 80;\n      }\n    }\n\n    \/\/ Fl\u00e8ches de la ligne de cat\u00e9gories (visibles seulement s'il reste \u00e0 d\u00e9filer)\n    var catsWrap = document.getElementById('mv-cats-wrap');\n    var catsRow = document.getElementById('mv-cats');\n\n    function updateCatArrows() {\n      var max = catsRow.scrollWidth - catsRow.clientWidth;\n      catsWrap.classList.toggle('can-left', catsRow.scrollLeft > 4);\n      catsWrap.classList.toggle('can-right', catsRow.scrollLeft < max - 4);\n    }\n    catsRow.addEventListener('scroll', updateCatArrows, { passive: true });\n    window.addEventListener('resize', updateCatArrows);\n    catsWrap.querySelector('.mv-cats-arrow--left').addEventListener('click', function() {\n      catsRow.scrollBy({ left: -catsRow.clientWidth * 0.7, behavior: 'smooth' });\n    });\n    catsWrap.querySelector('.mv-cats-arrow--right').addEventListener('click', function() {\n      catsRow.scrollBy({ left: catsRow.clientWidth * 0.7, behavior: 'smooth' });\n    });\n\n    function setCat(key) {\n      state.cat = key;\n      state.limit = STEP;\n      state.page = 1;\n      renderCats();\n      renderList();\n    }\n\n    \/\/ \u2550\u2550\u2550 Cartes \u2550\u2550\u2550\n    function picture(it) {\n      if (!it.image) {\n        var ph = el('div', 'mv-card-noimg');\n        ph.appendChild(icon(catIcon(it.type)));\n        return ph;\n      }\n      var img = el('img');\n      img.src = it.image;\n      img.alt = it.name;\n      img.loading = 'lazy';\n      img.onerror = function() {\n        img.replaceWith(picture({ type: it.type, image: '' }));\n      };\n      return img;\n    }\n\n    function metaLine(it) {\n      var m = el('p', 'mv-meta');\n      if (it.km !== null) {\n        var a = el('span');\n        a.appendChild(icon('car'));\n        a.appendChild(document.createTextNode(String(it.km).replace('.', DECIMAL) + ' km'));\n        m.appendChild(a);\n      }\n      if (it.min !== null) {\n        var b = el('span');\n        b.appendChild(icon('clock'));\n        b.appendChild(document.createTextNode(it.min + ' min'));\n        m.appendChild(b);\n      }\n      if (it.km === null && it.min === null && it.city) {\n        var c = el('span');\n        c.appendChild(icon('pin'));\n        c.appendChild(document.createTextNode(it.city));\n        m.appendChild(c);\n      }\n      return m.childNodes.length ? m : null;\n    }\n\n    function card(it, featured, mini) {\n      var c = el('article', 'mv-card' + (featured ? ' mv-card--featured' : '') + (mini ? ' mv-card--mini' : ''));\n      c.tabIndex = 0;\n      c.dataset.id = it.id;\n      c.style.setProperty('--mv-cat', catColor(it.type));\n\n      var media = el('div', 'mv-card-media');\n      media.appendChild(picture(it));\n      if (!featured && !mini && CATS[it.type]) media.appendChild(el('span', 'mv-pill', CATS[it.type].label));\n      \/\/ Les mini-cartes aussi : la photo y est petite, mais c'est la m\u00eame photo,\n      \/\/ et la licence ne pr\u00e9voit pas d'exception de taille.\n      if (it.credit) {\n        var cr = el('span', 'mv-credit', '\u00a9');\n        cr.title = 'Photo : ' + it.credit;\n        cr.setAttribute('aria-label', 'Photo : ' + it.credit);\n        cr.setAttribute('data-credit', 'Photo : ' + it.credit);\n        media.appendChild(cr);\n      }\n      c.appendChild(media);\n\n      var body = el('div', 'mv-card-body');\n      if (featured) {\n        var flag = el('span', 'mv-flag');\n        flag.appendChild(icon('star'));\n        flag.appendChild(document.createTextNode(T.featured));\n        body.appendChild(flag);\n      }\n      if (mini && CATS[it.type]) body.appendChild(el('span', 'mv-pill', CATS[it.type].label));\n      body.appendChild(el('h3', 'mv-card-title', it.name));\n      var meta = metaLine(it);\n      if (meta) body.appendChild(meta);\n      if (it.description) body.appendChild(el('p', 'mv-card-desc', it.description));\n      if (!featured && !mini && it.tags.length) {\n        var tags = el('div', 'mv-tags');\n        it.tags.forEach(function(t) {\n          tags.appendChild(el('span', 'mv-tag', t));\n        });\n        body.appendChild(tags);\n      }\n      var foot = el('div', 'mv-card-foot');\n      var btn = el('button', 'mv-discover', T.discover);\n      btn.type = 'button';\n      btn.appendChild(icon('arrow'));\n      foot.appendChild(btn);\n      body.appendChild(foot);\n      c.appendChild(body);\n\n      c.addEventListener('click', function() {\n        openModal(it);\n      });\n      c.addEventListener('keydown', function(e) {\n        if (e.key === 'Enter') openModal(it);\n      });\n      if (mini) return c;\n      c.addEventListener('mouseenter', function() {\n        highlightPin(it.id, true);\n      });\n      c.addEventListener('mouseleave', function() {\n        highlightPin(it.id, false);\n      });\n      return c;\n    }\n\n    function renderList() {\n      var list = filtered();\n      var grid = document.getElementById('mv-grid');\n      var more = document.getElementById('mv-more');\n      grid.innerHTML = '';\n      more.innerHTML = '';\n\n      var count = document.getElementById('mv-count');\n      count.innerHTML = '';\n      count.appendChild(el('strong', null, plural(list.length)));\n      count.appendChild(document.createTextNode(' ' + T.around_you));\n\n      if (!list.length) {\n        var empty = el('div', 'mv-empty');\n        empty.appendChild(el('strong', null, T.no_result));\n        empty.appendChild(document.createTextNode(T.no_result_hint));\n        grid.appendChild(empty);\n      }\n\n      \/\/ Pagination : 4 rang\u00e9es pleines par page, selon le nombre de colonnes affich\u00e9es.\n      \/\/ La fiche \u00ab \u00c0 la une \u00bb occupe 2 cases : la 1re page a donc une fiche de moins.\n      var cols = gridColumns();\n      var perPage = cols === 1 ? 8 : cols * 4;\n      var featuredOn = !state.q && list.length > 2 && !!list[0].image && !!list[0].featurable && cols > 1;\n      var first = featuredOn ? perPage - 1 : perPage;\n      var pages = list.length <= first ? 1 : 1 + Math.ceil((list.length - first) \/ perPage);\n      if (state.page > pages) state.page = pages;\n      var start = state.page === 1 ? 0 : first + (state.page - 2) * perPage;\n      var end = state.page === 1 ? first : start + perPage;\n\n      list.slice(start, end).forEach(function(it, i) {\n        grid.appendChild(card(it, featuredOn && state.page === 1 && i === 0));\n      });\n\n      if (pages > 1) renderPager(more, pages);\n\n      updateMap(list);\n    }\n\n    \/**\n     * Remonte au bloc demand\u00e9, sous l'en-t\u00eate fixe du th\u00e8me. Apr\u00e8s le rendu\n     * (image suivante) : la liste vient de changer de hauteur \u2014 28 pages qui\n     * deviennent une \u2014 et une position calcul\u00e9e avant tombait trop haut ou\n     * trop bas selon la cat\u00e9gorie cliqu\u00e9e.\n     *\/\n    var appRoot = document.getElementById('mv-app');\n    if (appRoot) appRoot.style.overflowAnchor = 'none';\n\n    function scrollToBlock(id) {\n      requestAnimationFrame(function() {\n        var target = document.getElementById(id);\n        if (!target) return;\n        var top = target.getBoundingClientRect().top + window.pageYOffset - headerOffset() - 16;\n        window.scrollTo({ top: Math.max(0, top), behavior: 'smooth' });\n      });\n    }\n\n    \/** Nombre de colonnes de la grille (d\u00e9pend de la largeur disponible) *\/\n    function gridColumns() {\n      var g = document.getElementById('mv-grid');\n      var n = g ? getComputedStyle(g).gridTemplateColumns.split(' ').filter(Boolean).length : 3;\n      return Math.max(1, n || 3);\n    }\n\n    function renderPager(box, pages) {\n      box.setAttribute('role', 'navigation');\n      box.setAttribute('aria-label', T.pagination);\n      var go = function(n) {\n        state.page = n;\n        try {\n          renderList();\n        } finally {\n          scrollToBlock('mv-count');\n        }\n      };\n      var btn = function(label, n, opts) {\n        var b = el('button', 'mv-page', label);\n        b.type = 'button';\n        if (opts.aria) b.setAttribute('aria-label', opts.aria);\n        if (opts.current) b.setAttribute('aria-current', 'page');\n        b.disabled = !!opts.disabled;\n        b.addEventListener('click', function() {\n          if (!opts.current) go(n);\n        });\n        box.appendChild(b);\n      };\n      btn('\u2039', state.page - 1, { disabled: state.page === 1, aria: T.prev_page });\n      var last = 0;\n      for (var p = 1; p <= pages; p++) {\n        if (p === 1 || p === pages || Math.abs(p - state.page) <= 1) {\n          if (p - last > 1) box.appendChild(el('span', 'mv-page-gap', '\u2026'));\n          btn(String(p), p, { current: p === state.page, aria: 'Page ' + p });\n          last = p;\n        }\n      }\n      btn('\u203a', state.page + 1, { disabled: state.page === pages, aria: T.next_page });\n    }\n\n    \/\/ \u2550\u2550\u2550 Id\u00e9es selon vos envies (cat\u00e9gories les plus fournies) \u2550\u2550\u2550\n    function renderIdeas() {\n      var sec = document.getElementById('mv-ideas');\n      \/\/ Les fiches sans gabarit (\u00ab Infos pratiques \u00bb) ne sont pas une envie.\n      var keys = Object.keys(CATS).filter(function(k) { return !CATS[k].adhoc; }).sort(function(a, b) {\n        return (CATS[b].image ? 1 : 0) - (CATS[a].image ? 1 : 0) || CATS[b].count - CATS[a].count;\n      }).slice(0, 4);\n      if (keys.length < 2) return;\n\n      var head = el('div', 'mv-ideas-head');\n      var h = el('h2', 'mv-ideas-title', T.ideas_title);\n      h.id = 'mv-ideas-title';\n      head.appendChild(h);\n      head.appendChild(el('p', 'mv-ideas-sub', T.ideas_sub));\n      sec.appendChild(head);\n\n      var grid = el('div', 'mv-ideas-grid');\n      keys.forEach(function(key) {\n        var c = CATS[key];\n        var b = el('button', 'mv-idea');\n        b.type = 'button';\n        b.style.setProperty('--mv-cat', c.color);\n        var img = el('span', 'mv-idea-img');\n        if (c.image) img.style.backgroundImage = 'url(\"' + c.image.replace(\/\"\/g, '%22') + '\")';\n        b.appendChild(img);\n        var body = el('span', 'mv-idea-body');\n        body.appendChild(icon(catIcon(key)));\n        var txt = el('span', 'mv-idea-text');\n        txt.appendChild(el('strong', null, c.label));\n        txt.appendChild(el('span', null, plural(c.count)));\n        body.appendChild(txt);\n        body.appendChild(icon('arrow'));\n        b.appendChild(body);\n        b.addEventListener('click', function() {\n          try {\n            setCat(key);\n          } finally {\n            scrollToBlock('mv-cats');\n          }\n        });\n        grid.appendChild(b);\n      });\n      sec.appendChild(grid);\n    }\n\n    \/\/ \u2550\u2550\u2550 Carte Leaflet \u2550\u2550\u2550\n    var map = null,\n      layer = null,\n      homeMarker = null,\n      radius = null,\n      resetBtn = null,\n      fitting = false, \/\/ cadrage lanc\u00e9 par le code (et non par l'utilisateur)\n      overview = null, \/\/ dernier cadrage \u00ab vue d'ensemble \u00bb\n      pins = {};\n\n    \/\/ Copie de Leaflet utilis\u00e9e pour TOUTE la carte. Sur certains sites (th\u00e8me qui\n    \/\/ d\u00e9place les scripts avec jQuery, WP Rocket\u2026) Leaflet s'ex\u00e9cute deux fois : la\n    \/\/ 2e copie \u00e9crase window.L alors que markercluster s'est attach\u00e9 \u00e0 la 1re.\n    \/\/ M\u00e9langer les deux copies rend les rep\u00e8res invisibles et casse le regroupement.\n    var Lf = null;\n\n    function resolveLeaflet() {\n      var cur = window.L;\n      if (!cur) return null;\n      if (typeof cur.markerClusterGroup === 'function' && typeof cur.MarkerClusterGroup === 'function') return cur;\n      if (typeof cur.noConflict === 'function') {\n        var current = cur.noConflict(); \/\/ window.L \u2190 copie pr\u00e9c\u00e9dente\n        var previous = window.L;\n        if (previous && previous !== current && typeof previous.MarkerClusterGroup === 'function') {\n          \/\/ markercluster lit window.L \u00e0 chaque action (clic, zoom) : on remet\n          \/\/ durablement la copie qui le porte (l'autre n'est qu'un doublon de la m\u00eame version).\n          \/\/ Sans \u00e7a, les identifiants internes des deux copies se m\u00e9langent et les\n          \/\/ clics sur les rep\u00e8res \/ groupes sont perdus.\n          window.L = previous;\n          return previous;\n        }\n        window.L = current;\n      }\n      return null;\n    }\n\n    function pinIcon(color, hover, selected) {\n      return Lf.divIcon({\n        className: 'mv-pin' + (hover ? ' is-hover' : '') + (selected ? ' is-selected' : ''),\n        html: '<svg width=\"30\" height=\"39\" viewBox=\"0 0 28 36\"><path d=\"M14 35C14 35 26 22.5 26 13.5A12 12 0 0 0 2 13.5C2 22.5 14 35 14 35Z\" fill=\"' + color + '\" stroke=\"#fff\" stroke-width=\"2\"\/><circle cx=\"14\" cy=\"13.5\" r=\"4.5\" fill=\"#fff\"\/><\/svg>',\n        iconSize: [30, 39],\n        iconAnchor: [15, 39],\n        popupAnchor: [0, -34]\n      });\n    }\n\n    var mapTries = 0;\n\n    function initMap() {\n      var elMap = document.getElementById('mv-map');\n      if (!elMap) return;\n      \/\/ Attend Leaflet + markercluster (scripts parfois diff\u00e9r\u00e9s), 8 s max ;\n      \/\/ au-del\u00e0, carte sans regroupement plut\u00f4t que pas de carte.\n      Lf = resolveLeaflet();\n      if (!Lf) {\n        if (++mapTries < 80) return setTimeout(initMap, 100);\n        if (!window.L) return;\n        Lf = window.L;\n      }\n      map = Lf.map(elMap, { zoomControl: false, scrollWheelZoom: false, attributionControl: false }).setView([46.6, 1.9], 6);\n      \/\/ Garde-fou : si le th\u00e8me r\u00e9ex\u00e9cute Leaflet plus tard, on remet la bonne copie\n      \/\/ juste avant toute interaction (markercluster lit window.L au moment du clic).\n      ['pointerdown', 'mousedown', 'touchstart', 'click', 'wheel'].forEach(function(t) {\n        elMap.addEventListener(t, function() {\n          if (window.L !== Lf) window.L = Lf;\n        }, true);\n      });\n      Lf.tileLayer(MAP.tiles_url, { maxZoom: 19 }).addTo(map);\n      Lf.control.zoom({ position: 'bottomright' }).addTo(map);\n      Lf.control.attribution({ position: 'bottomleft', prefix: false }).addAttribution(MAP.attribution).addTo(map);\n\n      \/\/ \u00ab Revenir \u00e0 la vue d'ensemble \u00bb : appara\u00eet d\u00e8s que l'utilisateur zoome \/ d\u00e9place la carte\n      resetBtn = el('button', 'mv-reset');\n      resetBtn.type = 'button';\n      resetBtn.hidden = true;\n      resetBtn.appendChild(icon('reset'));\n      resetBtn.appendChild(document.createTextNode(T.reset_view));\n      resetBtn.addEventListener('click', function() {\n        fitOverview();\n        resetBtn.hidden = true;\n      });\n      elMap.appendChild(resetBtn);\n      Lf.DomEvent.disableClickPropagation(resetBtn);\n      map.on('zoomstart movestart', function() {\n        if (!fitting && resetBtn) resetBtn.hidden = false;\n      });\n\n      \/\/ Rep\u00e8re de l'\u00e9tablissement, toujours visible (hors regroupement)\n      if (MAP.home) {\n        homeMarker = Lf.marker([MAP.home.lat, MAP.home.lng], {\n          icon: Lf.divIcon({ className: 'mv-home', html: '<span class=\"mv-home-pin\">' + ICONS.home + '<\/span>', iconSize: [44, 44], iconAnchor: [22, 22] }),\n          \/\/ Sous les rep\u00e8res et groupes : les fiches situ\u00e9es \u00e0 l'\u00e9tablissement m\u00eame\n          \/\/ (souvent nombreuses) restent visibles et cliquables par-dessus.\n          zIndexOffset: -1000,\n          keyboard: false,\n          interactive: false,\n          title: MAP.home.label\n        }).addTo(map);\n        homeMarker.bindTooltip(MAP.home.label, { permanent: true, direction: 'right', offset: [24, 0], className: 'mv-home-label' });\n      }\n\n      layer = (typeof Lf.markerClusterGroup === 'function') ? Lf.markerClusterGroup({\n        showCoverageOnHover: false,\n        maxClusterRadius: 45,\n        iconCreateFunction: function(cl) {\n          var n = cl.getChildCount();\n          var s = n < 10 ? 34 : (n < 50 ? 40 : 46);\n          return Lf.divIcon({ className: 'mv-cluster', html: '<span style=\"width:' + s + 'px;height:' + s + 'px;background:' + ACCENT + '\">' + n + '<\/span>', iconSize: [s, s] });\n        }\n      }) : Lf.layerGroup();\n      layer.addTo(map);\n      renderList();\n    }\n\n    \/**\n     * Met la carte \u00e0 jour sans jamais bloquer la page. Le th\u00e8me (ou WP Rocket)\n     * peut r\u00e9ex\u00e9cuter Leaflet apr\u00e8s coup : markercluster lit alors la mauvaise\n     * copie (\u00ab L.DistanceGrid is not a constructor \u00bb) au moment o\u00f9 la LISTE met\n     * la carte \u00e0 jour. On remet la bonne copie avant, et une erreur de carte\n     * n'emp\u00eache plus la liste ni le d\u00e9filement qui suivent.\n     *\/\n    function updateMap(list) {\n      if (!map || !layer) return;\n      if (Lf && window.L !== Lf) window.L = Lf;\n      try {\n        drawMap(list);\n      } catch (e) {\n        if (window.console) console.warn('Elaia \u2014 carte non mise \u00e0 jour :', e);\n      }\n    }\n\n    function drawMap(list) {\n      layer.clearLayers();\n      pins = {};\n      var bounds = [];\n      var markers = [];\n      list.forEach(function(it) {\n        if (it.lat === null) return;\n        var m = Lf.marker([it.lat, it.lng], { icon: pinIcon(catColor(it.type), false, it.id === state.selected), title: it.name });\n        m.on('click', function() {\n          selectItem(it.id);\n        });\n        markers.push(m);\n        pins[it.id] = m;\n        bounds.push([it.lat, it.lng]);\n      });\n      \/\/ Ajout group\u00e9 : un seul recalcul des regroupements (plus fiable que addLayer un par un)\n      if (typeof layer.addLayers === 'function') layer.addLayers(markers);\n      else markers.forEach(function(m) {\n        layer.addLayer(m);\n      });\n\n      \/\/ Rayon du filtre de distance autour de l'\u00e9tablissement\n      if (radius) {\n        map.removeLayer(radius);\n        radius = null;\n      }\n      if (MAP.home) {\n        bounds.push([MAP.home.lat, MAP.home.lng]);\n        if (state.km) {\n          radius = Lf.circle([MAP.home.lat, MAP.home.lng], {\n            radius: state.km * 1000,\n            color: ACCENT,\n            weight: 1.5,\n            dashArray: '6 6',\n            fillColor: ACCENT,\n            fillOpacity: 0.06,\n            interactive: false\n          }).addTo(map);\n        }\n      }\n\n      if (state.selected !== null && !pins[state.selected]) state.selected = null;\n      renderPreview();\n      overview = radius ? { bounds: radius.getBounds(), padding: [20, 20] } :\n        (bounds.length > 1 ? { bounds: bounds, padding: [40, 40] } :\n          (bounds.length === 1 ? { center: bounds[0] } : null));\n      fitOverview();\n      if (resetBtn) resetBtn.hidden = true;\n      setTimeout(function() {\n        map.invalidateSize();\n      }, 50);\n    }\n\n    \/** Cadre la carte sur la vue d'ensemble, sans afficher le bouton \u00ab Revenir\u2026 \u00bb *\/\n    function fitOverview() {\n      if (!map || !overview) return;\n      fitting = true;\n      if (overview.center) map.setView(overview.center, 13, { animate: false });\n      else map.fitBounds(overview.bounds, { padding: overview.padding, maxZoom: 13, animate: false });\n      setTimeout(function() {\n        fitting = false;\n      }, 50);\n    }\n\n    function highlightPin(id, on) {\n      var m = pins[id];\n      if (!m) return;\n      var it = BY_ID[id];\n      var selected = id === state.selected;\n      m.setIcon(pinIcon(catColor(it.type), on, selected));\n      m.setZIndexOffset(on || selected ? 1000 : 0);\n    }\n\n    \/** S\u00e9lectionne une fiche depuis la carte : rep\u00e8re mis en avant + fiche sous la carte *\/\n    function selectItem(id) {\n      var prev = state.selected;\n      state.selected = id;\n      if (prev !== null) highlightPin(prev, false);\n      highlightPin(id, false);\n      renderPreview();\n    }\n\n    function renderPreview() {\n      var box = document.getElementById('mv-preview');\n      if (!box) return;\n      box.innerHTML = '';\n      var it = state.selected !== null ? BY_ID[state.selected] : null;\n      if (!it) {\n        var hint = el('div', 'mv-preview-hint');\n        hint.appendChild(icon('pin'));\n        hint.appendChild(document.createTextNode(T.map_hint));\n        box.appendChild(hint);\n        return;\n      }\n      box.appendChild(card(it, false, true));\n    }\n\n    \/\/ \u2550\u2550\u2550 Modal \u2550\u2550\u2550\n    var modal = document.getElementById('mv-modal');\n    if (modal.parentNode !== document.body) document.body.appendChild(modal);\n    var content = document.getElementById('mv-modal-content');\n    content.style.setProperty('--mv-accent', ACCENT);\n    content.style.setProperty('--mv-accent-soft', ACCENT + '1a');\n    content.style.setProperty('--mv-cream', '#faf7f2');\n    content.style.setProperty('--mv-line', '#ebe5da');\n    content.style.setProperty('--mv-muted', '#6b6559');\n    var lastFocus = null;\n\n    function openModal(it) {\n      lastFocus = document.activeElement;\n      content.innerHTML = '';\n      content.style.setProperty('--mv-cat', catColor(it.type));\n\n      \/\/ Deux colonnes d\u00e8s le haut : m\u00e9dias \/ actions \u00e0 gauche, texte \u00e0 droite\n      var body = el('div', 'mv-modal-body');\n      var cols = el('div', 'mv-modal-cols');\n      var side = el('div', 'mv-modal-col mv-modal-col--media');\n      var main = el('div', 'mv-modal-col');\n      cols.appendChild(side);\n      cols.appendChild(main);\n      body.appendChild(cols);\n      var mainBody = body;\n\n      if (it.image) {\n        var img = el('img', 'mv-modal-img');\n        img.src = it.image;\n        img.alt = it.name;\n        img.onerror = function() {\n          img.remove();\n          if (cap) cap.remove();\n        };\n        side.appendChild(img);\n        var cap = null;\n        if (it.credit) {\n          cap = el('p', 'mv-modal-credit', 'Photo : ' + it.credit);\n          side.appendChild(cap);\n        }\n      }\n\n      body = main;\n      if (CATS[it.type]) {\n        var pill = el('span', 'mv-pill', CATS[it.type].label);\n        pill.style.alignSelf = 'flex-start';\n        body.appendChild(pill);\n      }\n      var t = el('h2', 'mv-modal-title', it.name);\n      t.id = 'mv-modal-title';\n      body.appendChild(t);\n      var meta = metaLine(it);\n      if (meta) body.appendChild(meta);\n      if (it.event) {\n        var ev = el('span', 'mv-modal-event');\n        ev.appendChild(icon('calendar'));\n        ev.appendChild(document.createTextNode(it.event));\n        body.appendChild(ev);\n      }\n      if (it.description) body.appendChild(el('p', 'mv-modal-desc', it.description));\n\n      if (it.fields.length) {\n        var f = el('div', 'mv-fields');\n        it.fields.forEach(function(fd) {\n          var d = el('div', 'mv-field');\n          d.appendChild(el('span', null, fd.label));\n          d.appendChild(el('strong', null, fd.value));\n          f.appendChild(d);\n        });\n        body.appendChild(f);\n      }\n\n      \/\/ Colonne m\u00e9dias (gauche)\n      body = side;\n      var actions = el('div', 'mv-modal-actions');\n      \/\/ Google Maps seulement si on sait o\u00f9 se trouve la fiche (sinon lien trompeur)\n      var gmTarget = mapsTarget(it);\n      if (gmTarget) {\n        var gm = el('a', 'mv-btn', gmTarget.label);\n        gm.href = gmTarget.url;\n        gm.target = '_blank';\n        gm.rel = 'noopener';\n        gm.insertBefore(icon('maps'), gm.firstChild);\n        actions.appendChild(gm);\n      }\n      if (it.link) {\n        var l = el('a', 'mv-btn mv-btn--ghost', T.official_site);\n        l.href = it.link;\n        l.target = '_blank';\n        l.rel = 'noopener';\n        l.appendChild(icon('arrow'));\n        actions.appendChild(l);\n      }\n      body.appendChild(actions);\n\n      if (it.video_url) {\n        body.appendChild(el('p', 'mv-modal-sub', T.video));\n        var e = it.video_embed;\n        if (e && (e.type === 'youtube' || e.type === 'vimeo') && e.src) {\n          var v = el('div', 'mv-video');\n          var fr = el('iframe');\n          fr.src = e.src;\n          fr.allowFullscreen = true;\n          fr.setAttribute('allow', 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture');\n          fr.referrerPolicy = 'strict-origin-when-cross-origin';\n          v.appendChild(fr);\n          body.appendChild(v);\n        } else if (e && e.type === 'file' && e.src) {\n          var vw = el('div', 'mv-video');\n          var vid = el('video');\n          vid.src = e.src;\n          vid.controls = true;\n          vid.preload = 'metadata';\n          vw.appendChild(vid);\n          body.appendChild(vw);\n        } else {\n          var vl = el('a', null, it.video_url);\n          vl.href = it.video_url;\n          vl.target = '_blank';\n          vl.rel = 'noopener';\n          body.appendChild(vl);\n        }\n      }\n\n      if (it.gallery.length) {\n        body.appendChild(el('p', 'mv-modal-sub', T.gallery));\n        var g = el('div', 'mv-gallery');\n        it.gallery.forEach(function(src) {\n          var a = el('a');\n          a.href = src;\n          a.target = '_blank';\n          a.rel = 'noopener';\n          var gi = el('img');\n          gi.src = src;\n          gi.alt = '';\n          gi.loading = 'lazy';\n          a.appendChild(gi);\n          g.appendChild(a);\n        });\n        body.appendChild(g);\n      }\n\n      var docs = it.documents.filter(function(d) {\n        return d && d.url;\n      });\n      if (docs.length) {\n        body.appendChild(el('p', 'mv-modal-sub', T.documents));\n        var dl = el('div', 'mv-docs');\n        docs.forEach(function(d) {\n          var a = el('a');\n          a.href = d.url;\n          a.target = '_blank';\n          a.rel = 'noopener';\n          a.appendChild(icon('doc'));\n          a.appendChild(document.createTextNode(d.nom || 'Document'));\n          dl.appendChild(a);\n        });\n        body.appendChild(dl);\n      }\n\n      if (it.faq.length) {\n        body = main; \/\/ la FAQ reste dans la colonne texte\n        body.appendChild(el('p', 'mv-modal-sub', T.faq));\n        var fq = el('div', 'mv-faq');\n        it.faq.forEach(function(qa) {\n          var det = el('details');\n          det.appendChild(el('summary', null, qa.question));\n          det.appendChild(el('p', null, qa.answer || T.no_answer));\n          fq.appendChild(det);\n        });\n        body.appendChild(fq);\n      }\n\n      content.appendChild(mainBody);\n      modal.hidden = false;\n      fitModal();\n      content.querySelectorAll('img, iframe, video').forEach(function(m) {\n        m.addEventListener('load', fitModal);\n        m.addEventListener('loadedmetadata', fitModal);\n      });\n      document.documentElement.style.overflow = 'hidden';\n      document.getElementById('mv-modal-close').focus();\n    }\n\n    \/**\n     * Agrandissement automatique : on passe au palier suivant tant que le contenu\n     * d\u00e9passe la hauteur disponible (sur grand \u00e9cran seulement).\n     *\/\n    function fitModal() {\n      var m = modal.querySelector('.mv-modal');\n      if (!m || modal.hidden) return;\n      m.classList.remove('is-wide', 'is-compact');\n      if (window.innerWidth <= 900) return;\n      var overflows = function() {\n        return m.scrollHeight > m.clientHeight + 2;\n      };\n      if (!overflows()) return;\n      m.classList.add('is-wide');\n      if (!overflows()) return;\n      m.classList.add('is-compact');\n    }\n    window.addEventListener('resize', function() {\n      if (!modal.hidden) fitModal();\n    });\n\n    \/** Lien Google Maps : coordonn\u00e9es si connues, sinon nom + ville \/ adresse *\/\n    \/**\n     * Cible Google Maps, par ordre de fiabilit\u00e9 :\n     *   1. coordonn\u00e9es de la fiche\n     *   2. nom + adresse (ou ville)\n     *   3. position de l'\u00e9tablissement (fiche sans lieu = \u00e9quipement sur place)\n     *   4. aucune \u2192 pas de bouton\n     *\/\n    function mapsTarget(it) {\n      var base = 'https:\/\/www.google.com\/maps\/search\/?api=1&query=';\n      if (it.lat !== null) return { url: base + encodeURIComponent(it.lat + ',' + it.lng), label: T.see_on_maps };\n      var where = it.address || it.city;\n      if (where) return { url: base + encodeURIComponent(it.name + ', ' + where), label: T.see_on_maps };\n      if (MAP.home) return { url: base + encodeURIComponent(MAP.home.lat + ',' + MAP.home.lng), label: T.see_place_on_maps };\n      return null;\n    }\n\n    function closeModal() {\n      modal.hidden = true;\n      document.documentElement.style.overflow = '';\n      if (lastFocus) lastFocus.focus();\n    }\n\n    document.getElementById('mv-modal-close').addEventListener('click', closeModal);\n    modal.addEventListener('click', function(e) {\n      if (e.target === modal) closeModal();\n    });\n    document.addEventListener('keydown', function(e) {\n      if (e.key === 'Escape' && !modal.hidden) closeModal();\n    });\n\n    \/\/ \u2550\u2550\u2550 Contr\u00f4les \u2550\u2550\u2550\n    \/**\n     * Hauteur occup\u00e9e en haut de l'\u00e9cran par les barres fixes \/ collantes du site\n     * (barre d'admin, en-t\u00eate, barre de r\u00e9servation\u2026), quelle que soit leur classe :\n     * on sonde le haut de l'\u00e9cran et on empile les barres trouv\u00e9es.\n     *\/\n    function headerOffset() {\n      var bottom = 0;\n      var vw = window.innerWidth,\n        vh = window.innerHeight;\n      var isBar = function(el) {\n        if (!el || el === document.body || el === document.documentElement) return false;\n        if (el.closest('#mv-app, .ea-modal-overlay, .mv-modal-overlay')) return false;\n        var pos = getComputedStyle(el).position;\n        if (pos !== 'fixed' && pos !== 'sticky') return false;\n        var r = el.getBoundingClientRect();\n        \/\/ vraie barre : large, pas trop haute (exclut bulles de chat, boutons flottants, popups)\n        return r.width >= vw * 0.3 && r.height > 0 && r.height < vh * 0.45;\n      };\n      for (var pass = 0; pass < 5; pass++) {\n        var y = bottom + 2,\n          found = 0;\n        if (y >= vh * 0.5) break;\n        [0.15, 0.5, 0.85].forEach(function(fx) {\n          (document.elementsFromPoint(vw * fx, y) || []).forEach(function(el) {\n            for (var n = el; n && n !== document.body; n = n.parentElement) {\n              if (isBar(n)) {\n                var r = n.getBoundingClientRect();\n                if (r.top <= y + 1 && r.bottom > found) found = r.bottom;\n                break;\n              }\n            }\n          });\n        });\n        if (found <= bottom) break;\n        bottom = found;\n      }\n      app.style.setProperty('--mv-header', Math.round(bottom) + 'px');\n      return bottom;\n    }\n\n    var searchTimer = null;\n    document.getElementById('mv-search').addEventListener('input', function(e) {\n      clearTimeout(searchTimer);\n      searchTimer = setTimeout(function() {\n        state.q = e.target.value;\n        state.limit = STEP;\n      state.page = 1;\n        renderList();\n      }, 150);\n    });\n\n    var dist = document.getElementById('mv-distance');\n    if (dist) {\n      dist.querySelectorAll('button').forEach(function(b) {\n        b.addEventListener('click', function() {\n          state.km = parseInt(b.getAttribute('data-km'), 10) || 0;\n          state.limit = STEP;\n      state.page = 1;\n          dist.querySelectorAll('button').forEach(function(x) {\n            x.classList.toggle('is-active', x === b);\n          });\n          renderList();\n        });\n      });\n    }\n\n    var viewSeg = document.getElementById('mv-view');\n    var layoutEl = document.getElementById('mv-layout');\n\n    function setView(v) {\n      state.view = v;\n      layoutEl.classList.toggle('is-list', v === 'list');\n      viewSeg.querySelectorAll('button').forEach(function(x) {\n        x.classList.toggle('is-active', x.getAttribute('data-view') === v);\n      });\n      if (map) setTimeout(function() {\n        map.invalidateSize();\n      }, 60);\n    }\n    viewSeg.querySelectorAll('button').forEach(function(b) {\n      b.addEventListener('click', function() {\n        setView(b.getAttribute('data-view'));\n      });\n    });\n\n    \/\/ Pas de carte si aucune fiche n'est g\u00e9olocalis\u00e9e\n    if (!ITEMS.some(function(it) {\n        return it.lat !== null;\n      })) {\n      viewSeg.style.display = 'none';\n      state.view = 'list';\n    }\n\n    headerOffset();\n    window.addEventListener('resize', headerOffset);\n    \/\/ Les barres du site peuvent appara\u00eetre au d\u00e9filement (barre de r\u00e9servation\u2026)\n    var hoTicking = false;\n    window.addEventListener('scroll', function() {\n      if (hoTicking) return;\n      hoTicking = true;\n      requestAnimationFrame(function() {\n        headerOffset();\n        hoTicking = false;\n      });\n    }, { passive: true });\n    var lastCols = null,\n      resizeTimer = null;\n    window.addEventListener('resize', function() {\n      clearTimeout(resizeTimer);\n      resizeTimer = setTimeout(function() {\n        var c = gridColumns();\n        if (lastCols !== null && c !== lastCols) renderList();\n        lastCols = c;\n      }, 200);\n    });\n    renderCats();\n    renderIdeas();\n    setView(state.view);\n    renderList();\n    renderPreview();\n    initMap();\n  })();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gt_ctv_global_id":"","_gt_ctv_id_group":false,"inline_featured_image":false,"gt_fse_maillage_image":"","gt_fse_maillage_titre":"Discover around you","gt_fse_maillage_alt":"Discover around you","gt_fse_maillage_resume":"","gt_fse_maillage_url":"https:\/\/www.chalets-de-fiolles.com\/en\/elaia-metadatas\/","footnotes":""},"categories":[],"tags":[],"class_list":["post-2098","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.chalets-de-fiolles.com\/en\/wp-json\/wp\/v2\/pages\/2098","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.chalets-de-fiolles.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.chalets-de-fiolles.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.chalets-de-fiolles.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.chalets-de-fiolles.com\/en\/wp-json\/wp\/v2\/comments?post=2098"}],"version-history":[{"count":1,"href":"https:\/\/www.chalets-de-fiolles.com\/en\/wp-json\/wp\/v2\/pages\/2098\/revisions"}],"predecessor-version":[{"id":2099,"href":"https:\/\/www.chalets-de-fiolles.com\/en\/wp-json\/wp\/v2\/pages\/2098\/revisions\/2099"}],"wp:attachment":[{"href":"https:\/\/www.chalets-de-fiolles.com\/en\/wp-json\/wp\/v2\/media?parent=2098"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.chalets-de-fiolles.com\/en\/wp-json\/wp\/v2\/categories?post=2098"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.chalets-de-fiolles.com\/en\/wp-json\/wp\/v2\/tags?post=2098"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}