{"id":6678,"date":"2024-02-23T15:06:07","date_gmt":"2024-02-23T15:06:07","guid":{"rendered":"https:\/\/jevisitelyon.com\/?page_id=6678"},"modified":"2026-03-06T08:21:32","modified_gmt":"2026-03-06T08:21:32","slug":"unusual-activities-in-lyon","status":"publish","type":"page","link":"https:\/\/jevisitelyon.com\/en\/unusual-activities-in-lyon\/","title":{"rendered":"Unusual Activities in Lyon"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6678\" class=\"elementor elementor-6678\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-00902ea e-con-full e-flex e-con e-parent\" data-id=\"00902ea\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-54766a3 e-con-full e-flex e-con e-child\" data-id=\"54766a3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b4e3b9c elementor-widget elementor-widget-button\" data-id=\"b4e3b9c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-size-sm\" role=\"button\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">In\u00e9dit<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f39fca2 elementor-widget elementor-widget-heading\" data-id=\"f39fca2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Activit\u00e9s Insolites \u00e0 Lyon : Vivez des Exp\u00e9riences Hors du Commun<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0cffce9 e-flex e-con-boxed e-con e-child\" data-id=\"0cffce9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-be42442 elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"be42442\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Vous pensez avoir d\u00e9j\u00e0 tout vu de la capitale des Gaules ? Au-del\u00e0 des c\u00e9l\u00e8bres bouchons et de la Basilique de Fourvi\u00e8re, Lyon cache un visage surprenant et audacieux. Que vous soyez Lyonnais en qu\u00eate de nouveaut\u00e9 ou voyageur avide de sensations, notre s\u00e9lection d&rsquo;<strong>activit\u00e9s insolites \u00e0 Lyon<\/strong> vous emm\u00e8ne l\u00e0 o\u00f9 vous ne l&rsquo;attendez pas.<\/p><p>Du frisson d&rsquo;un escape game terrifiant au l\u00e2cher-prise total d&rsquo;un bain \u00e0 la bi\u00e8re, en passant par des d\u00eeners sensoriels dans le noir absolu, d\u00e9couvrez des exp\u00e9riences uniques pour pimenter votre s\u00e9jour. Parcourez notre guide et trouvez l&rsquo;aventure qui marquera votre visite !<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4a614b3 elementor-widget elementor-widget-html\" data-id=\"4a614b3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"visiter-lyon\" >\n    <div id=\"map-container\">\n        <div id=\"progress-bar-container\">\n            <div class=\"progress-info\">\n                <strong>Votre parcours :<\/strong>\n                <span id=\"visitedCount\">0<\/span> \/ <span id=\"totalCount\">0<\/span> lieux\n            <\/div>\n            <div class=\"progress-track\">\n                <div id=\"progressFill\" style=\"width: 0%;\"><\/div>\n            <\/div>\n            <button id=\"btn-reset\">\ud83d\udd04 R\u00e9initialiser ma progression<\/button>\n        <\/div>\n        <div id=\"map\"><\/div>\n    <\/div> <div id=\"fiche-lieu\" class=\"hidden\">\n        <div class=\"fiche-card\">\n            <div class=\"header-image-container\">\n                <button id=\"btn-close-fiche\">\u2190 Retour<\/button>\n                <img decoding=\"async\" id=\"fiche-main-img\" src=\"\" alt=\"Lieu Lyon\">\n            <\/div>\n            <div class=\"fiche-body\">\n                <h2 id=\"fiche-titre\"><\/h2>\n                <div class=\"metadata\">\n                    <span>\u23f1 <strong id=\"fiche-duree\"><\/strong><\/span>\n                    <span>\ud83d\udccd <strong id=\"fiche-cat\"><\/strong><\/span>\n                    <span id=\"fiche-dist-container\" class=\"dist-badge\">\ud83c\udfc3 Calcule...<\/span>\n                <\/div>\n                <div id=\"fiche-actions\">\n                    <button class=\"fiche-btn\" id=\"btn-audio\" title=\"\u00c9couter\">\ud83d\udd0a<\/button>\n                    <button class=\"fiche-btn\" id=\"btn-gps\" title=\"Itin\u00e9raire\">\ud83d\udccd<\/button>\n                    <button class=\"fiche-btn\" id=\"btn-visite\" title=\"Marquer comme fait\">MArquer comme fait<\/button>\n                <\/div>\n                <div id=\"fiche-description\"><\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div id=\"lyon-list-container\">\n               <div class=\"slider-wrapper\">\n            <div id=\"lyon-grid\" class=\"slider-cards\"><\/div> \n        <\/div> \n    <\/div>\n<\/div> \n<section id=\"lyon-contenu-complet\">\n       <article class=\"lieu\" \n         itemscope itemtype=\"https:\/\/schema.org\/TouristAttraction\"\n         data-id=\"14835\" data-lat=\"45.6961\" data-lng=\"4.9389\"\n         data-cat=\"Insolite\" data-duree=\"1h\">\n    <header class=\"lieu-header\">\n        <h2 itemprop=\"name\">AviaSim, devenez pilote d\u2019un jour \u00e0 bord d\u2019un simulateur de vol<\/h2>\n        <div class=\"lieu-meta\">\n            <span class=\"badge\">Insolite<\/span>\n            <span class=\"badge\">\u23f1 45-60-80 min<\/span>\n        <\/div>\n    <\/header>\n    <figure class=\"lieu-media\">\n        <img decoding=\"async\" class=\"img-source\" src=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/02\/aviasim-villeurbanne.jpg.webp\" alt=\"Escape game dans le Vieux Lyon\">\n    <\/figure>\n    <div class=\"contenuFiche\" itemprop=\"description\">\n    <p><b>Prenez les commandes et vivez l\u2019exp\u00e9rience AviaSim : devenez pilote d'un jour \u00e0 bord d\u2019un simulateur de vol ultra-r\u00e9aliste.<\/b><\/p>\n    <p>Accompagn\u00e9 par un instructeur professionnel (pilote r\u00e9el), installez-vous dans un cockpit d'Airbus A320 grandeur nature. Choisissez votre destination parmi 24 000 a\u00e9roports et g\u00e9rez votre vol de l\u2019allumage des moteurs jusqu\u2019\u00e0 l\u2019atterrissage.<\/p>\n    <p><i>Une exp\u00e9rience immersive unique pour les passionn\u00e9s et les curieux !<\/i><\/p>\n<\/div>\n    <a href=\"https:\/\/jevisitelyon.com\/chez-aviasim-cest-vous-le-pilote\/\" class=\"btn-toggle\">En savoir plus<\/a>\n<\/article>\n     <article class=\"lieu\" \n         itemscope itemtype=\"https:\/\/schema.org\/TouristAttraction\"\n         data-id=\"14825\" data-lat=\"45.6961\" data-lng=\"4.9389\"\n         data-cat=\"Insolite\" data-duree=\"1h\">\n    <header class=\"lieu-header\">\n        <h2 itemprop=\"name\">De l\u2019\u00e9clate avec le Bubble Bump<\/h2>\n        <div class=\"lieu-meta\">\n            <span class=\"badge\">Insolite<\/span>\n            <span class=\"badge\">\u23f1 1h<\/span>\n        <\/div>\n    <\/header>\n    <figure class=\"lieu-media\">\n        <img decoding=\"async\" class=\"img-source\" src=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/02\/bubble-bump-Saint-Priest.jpg\" alt=\"Escape game dans le Vieux Lyon\">\n    <\/figure>\n    <div class=\"contenuFiche\" itemprop=\"description\">\n    <p><b>\u00c9clatez-vous en toute s\u00e9curit\u00e9 avec le Bubble Bump : le foot o\u00f9 les chocs sont recommand\u00e9s !<\/b><\/p>\n    <p>Situ\u00e9 \u00e0 Saint-Priest, d\u00e9couvrez une activit\u00e9 d\u00e9jant\u00e9e o\u00f9 vous jouez dans des bulles g\u00e9antes transparentes. Propulsez vos adversaires, rebondissez sur le terrain et marquez des buts dans une ambiance de folie.<\/p>\n    <p><i>Id\u00e9al pour les EVG, EVJF, anniversaires et sorties entre amis !<\/i><\/p>\n<\/div>\n    <a href=\"https:\/\/jevisitelyon.com\/de-l-eclate-avec-le-bubble-bump-lyon-saint-priest\" class=\"btn-toggle\">En savoir plus<\/a>\n<\/article>\n    <article class=\"lieu\" \n         itemscope itemtype=\"https:\/\/schema.org\/TouristAttraction\"\n         data-id=\"14824\" data-lat=\"45.760998\" data-lng=\"4.828114\"\n         data-cat=\"Insolite\" data-duree=\"2h\">\n    <header class=\"lieu-header\">\n        <h2 itemprop=\"name\">Escape game dans le Vieux Lyon<\/h2>\n        <div class=\"lieu-meta\">\n            <span class=\"badge\">Insolite<\/span>\n            <span class=\"badge\">\u23f1 2h<\/span>\n        <\/div>\n    <\/header>\n    <figure class=\"lieu-media\">\n        <img decoding=\"async\" class=\"img-source\" src=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2026\/01\/Escape-game-dans-le-Vieux-Lyon.webp\" alt=\"Escape game dans le Vieux Lyon\">\n    <\/figure>\n    <div class=\"contenuFiche\" itemprop=\"description\">\n    <p><b>Plongez au c\u0153ur de l'histoire, les traboules du Vieux Lyon cachent un secret que vous seul pourrez percer.<\/b><\/p>\n    <p>Au d\u00e9part de la Place Saint-Jean, cet escape game outdoor vous entra\u00eene dans une qu\u00eate immersive \u00e0 travers les ruelles Renaissance. Entre \u00e9nigmes architecturales et passages d\u00e9rob\u00e9s, red\u00e9couvrez le quartier Saint-Jean et ses tr\u00e9sors cach\u00e9s comme vous ne les avez jamais vus.<\/p>\n    <p><i>Id\u00e9al pour les amateurs d'\u00e9nigmes et les explorateurs urbains !<\/i><\/p>\n<\/div>\n    <a href=\"https:\/\/jevisitelyon.com\/le-petit-train-du-parc-votre-voyage-au-coeur-de-la-nature\/\" class=\"btn-toggle\">En savoir plus<\/a>\n<\/article>\n    <article class=\"lieu\" \n         itemscope itemtype=\"https:\/\/schema.org\/TouristAttraction\"\n         data-id=\"1482\" data-lat=\"45.7828\" data-lng=\"4.8585\"\n         data-cat=\"Insolite\" data-duree=\"20min\">\n    <header class=\"lieu-header\">\n        <h2 itemprop=\"name\">Le Petit Train du Parc<\/h2>\n        <div class=\"lieu-meta\">\n            <span class=\"badge\">Insolite<\/span>\n            <span class=\"badge\">\u23f1 20min<\/span>\n        <\/div>\n    <\/header>\n    <figure class=\"lieu-media\">\n        <img decoding=\"async\" class=\"img-source\" src=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2026\/01\/le-petit-train-du-parc-au-parc-tete-d-or-lyon.jpg.webp\" alt=\"Le Petit Train du Parc de la T\u00eate d'Or\">\n    <\/figure>\n    <div class=\"contenuFiche\" itemprop=\"description\">\n        <p><b>Montez \u00e0 bord, le Petit Train du Parc vous attend pour une \u00e9chapp\u00e9e inoubliable sous la canop\u00e9e.<\/b><\/p>\n        <p>Au d\u00e9part du V\u00e9lodrome, ce train touristique sur rail vous propose une immersion bucolique de 1000m. D\u00e9couvrez les abords de la Grande \u00cele du Parc de la T\u00eate d\u2019Or en toute tranquillit\u00e9.<\/p>\n        <p><i>Id\u00e9al pour les familles et les curieux !<\/i><\/p>\n    <\/div>\n    <a href=\"https:\/\/jevisitelyon.com\/le-petit-train-du-parc-votre-voyage-au-coeur-de-la-nature\/\" class=\"btn-toggle\">En savoir plus<\/a>\n<\/article>\n  <article class=\"lieu\" \n         itemscope itemtype=\"https:\/\/schema.org\/TouristAttraction\"\n         data-id=\"14821\" data-lat=\"45.7640\" data-lng=\"4.8357\"\n         data-cat=\"Insolite\" data-duree=\"2h\">\n    <header class=\"lieu-header\">\n        <h2 itemprop=\"name\">Explorez Lyon \u00e0 v\u00e9lo \u00e9lectrique avec d\u00e9gustation gourmande<\/h2>\n        <div class=\"lieu-meta\">\n            <span class=\"badge\">Insolite<\/span>\n            <span class=\"badge\">\u23f1 2h<\/span>\n        <\/div>\n        <div itemprop=\"address\" itemscope itemtype=\"https:\/\/schema.org\/PostalAddress\">\n            <meta itemprop=\"streetAddress\" content=\"Place Bellecour\">\n            <meta itemprop=\"addressLocality\" content=\"Lyon\">\n            <meta itemprop=\"postalCode\" content=\"69002\">\n            <meta itemprop=\"addressCountry\" content=\"FR\">\n        <\/div>\n    <\/header>\n    <figure class=\"lieu-media\">\n        <img decoding=\"async\" class=\"img-source\" src=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/12\/lyon-a-velo-electrique-avec-degustation-gourmande.webp\" alt=\"Visite guid\u00e9e \u00e0 v\u00e9lo \u00e9lectrique et d\u00e9gustation\" loading=\"lazy\" itemprop=\"image\">\n        <figcaption class=\"sr-only\">V\u00e9lo \u00e9lectrique Lyon<\/figcaption>\n    <\/figure>\n    <div class=\"contenuFiche\" itemprop=\"description\">\n        <p>D\u00e9couvrez Lyon de mani\u00e8re originale en participant \u00e0 une visite guid\u00e9e \u00e0 v\u00e9lo \u00e9lectrique, ponctu\u00e9e d\u2019une d\u00e9gustation des meilleures sp\u00e9cialit\u00e9s locales. <\/p>\n    <\/div>\n    <a href=\"https:\/\/jevisitelyon.com\/explorez-lyon-a-velo-electrique-avec-degustation-gourmande\/\" class=\"btn-toggle\" title=\"En savoir plus sur la visite \u00e0 v\u00e9lo \u00e9lectrique\">En savoir plus<\/a>\n    <div itemprop=\"geo\" itemscope itemtype=\"https:\/\/schema.org\/GeoCoordinates\">\n        <meta itemprop=\"latitude\" content=\"45.7640\">\n        <meta itemprop=\"longitude\" content=\"4.8357\">\n    <\/div>\n<\/article>\n\n<article class=\"lieu\" \n         itemscope itemtype=\"https:\/\/schema.org\/TouristAttraction\"\n         data-id=\"11094\" data-lat=\"45.7681\" data-lng=\"4.8322\"\n         data-cat=\"Horreur\" data-duree=\"1h15\">\n    <header class=\"lieu-header\">\n        <h2 itemprop=\"name\">Dark Experience : l'aventure terrifiante \u00e0 Lyon<\/h2>\n        <div class=\"lieu-meta\">\n            <span class=\"badge\">Horreur<\/span>\n            <span class=\"badge\">\u23f1 1h15<\/span>\n        <\/div>\n        <div itemprop=\"address\" itemscope itemtype=\"https:\/\/schema.org\/PostalAddress\">\n            <meta itemprop=\"streetAddress\" content=\"Rue de la Martini\u00e8re\">\n            <meta itemprop=\"addressLocality\" content=\"Lyon\">\n            <meta itemprop=\"postalCode\" content=\"69001\">\n            <meta itemprop=\"addressCountry\" content=\"FR\">\n        <\/div>\n    <\/header>\n    <figure class=\"lieu-media\">\n        <img decoding=\"async\" class=\"img-source\" src=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/09\/dark-experience-lyon.webp\" alt=\"Escape Game Dark Experience\" loading=\"lazy\" itemprop=\"image\">\n        <figcaption class=\"sr-only\">Dark Experience Lyon<\/figcaption>\n    <\/figure>\n    <div class=\"contenuFiche\" itemprop=\"description\">\n        <p>Plongez dans l'inconnu avec cet escape game d'horreur unique situ\u00e9 dans le 1er arrondissement, proposant des sc\u00e9narios ultra-immersifs.<\/p>\n    <\/div>\n    <a href=\"https:\/\/jevisitelyon.com\/dark-experience-a-lyon-plongez-dans-linconnu-et-osez-laventure-terrifiante\/\" class=\"btn-toggle\" title=\"En savoir plus sur Dark Experience\">En savoir plus<\/a>\n    <div itemprop=\"geo\" itemscope itemtype=\"https:\/\/schema.org\/GeoCoordinates\">\n        <meta itemprop=\"latitude\" content=\"45.7681\">\n        <meta itemprop=\"longitude\" content=\"4.8322\">\n    <\/div>\n<\/article>\n\n<article class=\"lieu\" \n         itemscope itemtype=\"https:\/\/schema.org\/TouristAttraction\"\n         data-id=\"6599\" data-lat=\"45.7667\" data-lng=\"4.8592\"\n         data-cat=\"Gastronomie\" data-duree=\"2h\">\n    <header class=\"lieu-header\">\n        <h2 itemprop=\"name\">La Table en Braille : une exp\u00e9rience culinaire unique<\/h2>\n        <div class=\"lieu-meta\">\n            <span class=\"badge\">Gastronomie<\/span>\n            <span class=\"badge\">\u23f1 2h<\/span>\n        <\/div>\n        <div itemprop=\"address\" itemscope itemtype=\"https:\/\/schema.org\/PostalAddress\">\n            <meta itemprop=\"streetAddress\" content=\"44 Boulevard des Brotteaux\">\n            <meta itemprop=\"addressLocality\" content=\"Lyon\">\n            <meta itemprop=\"postalCode\" content=\"69006\">\n            <meta itemprop=\"addressCountry\" content=\"FR\">\n        <\/div>\n    <\/header>\n    <figure class=\"lieu-media\">\n        <img decoding=\"async\" class=\"img-source\" src=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/02\/la-table-en-braille-lyon.jpg\" alt=\"D\u00eener dans le noir Lyon\" loading=\"lazy\" itemprop=\"image\">\n        <figcaption class=\"sr-only\">La Table en Braille<\/figcaption>\n    <\/figure>\n    <div class=\"contenuFiche\" itemprop=\"description\">\n        <p>R\u00e9veillez vos papilles en d\u00eenant dans l'obscurit\u00e9 totale. Une exp\u00e9rience sensorielle o\u00f9 les saveurs et les textures prennent une nouvelle dimension.<\/p>\n    <\/div>\n    <a href=\"https:\/\/jevisitelyon.com\/la-table-en-braille-une-experience-culinaire-unique\/\" class=\"btn-toggle\" title=\"En savoir plus sur la Table en Braille\">En savoir plus<\/a>\n    <div itemprop=\"geo\" itemscope itemtype=\"https:\/\/schema.org\/GeoCoordinates\">\n        <meta itemprop=\"latitude\" content=\"45.7667\">\n        <meta itemprop=\"longitude\" content=\"4.8592\">\n    <\/div>\n<\/article>\n<article class=\"lieu\" \n         itemscope itemtype=\"https:\/\/schema.org\/TouristAttraction\"\n         data-id=\"6785\" data-lat=\"45.7238\" data-lng=\"4.9332\"\n         data-cat=\"Sensations\" data-duree=\"1h30\">\n    <header class=\"lieu-header\">\n        <h2 itemprop=\"name\">iFLY Lyon : vivez l\u2019excitation de la chute libre indoor<\/h2>\n        <div class=\"lieu-meta\">\n            <span class=\"badge\">Sensations<\/span>\n            <span class=\"badge\">\u23f1 1h30<\/span>\n        <\/div>\n        <div itemprop=\"address\" itemscope itemtype=\"https:\/\/schema.org\/PostalAddress\">\n            <meta itemprop=\"streetAddress\" content=\"48 Ancienne Route de Grenoble\">\n            <meta itemprop=\"addressLocality\" content=\"Saint-Priest\">\n            <meta itemprop=\"postalCode\" content=\"69800\">\n            <meta itemprop=\"addressCountry\" content=\"FR\">\n        <\/div>\n    <\/header>\n    <figure class=\"lieu-media\">\n        <img decoding=\"async\" class=\"img-source\" src=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/02\/soufflerie-ifly-lyon.jpg\" alt=\"Chute libre indoor iFLY Lyon\" loading=\"lazy\" itemprop=\"image\">\n        <figcaption class=\"sr-only\">iFLY Lyon<\/figcaption>\n    <\/figure>\n    <div class=\"contenuFiche\" itemprop=\"description\">\n        <p>D\u00e9couvrez les sensations fortes du parachutisme dans une soufflerie ultra-moderne, une aventure unique accessible \u00e0 tous d\u00e8s 5 ans.<\/p>\n    <\/div>\n    <a href=\"https:\/\/jevisitelyon.com\/plongez-dans-l-excitation-de-la-chute-libre-indoor-a-ifly-sur-lyon\/\" \n       class=\"btn-toggle\" \n       title=\"En savoir plus sur iFLY Lyon\">En savoir plus<\/a>\n    <div itemprop=\"geo\" itemscope itemtype=\"https:\/\/schema.org\/GeoCoordinates\">\n        <meta itemprop=\"latitude\" content=\"45.7238\">\n        <meta itemprop=\"longitude\" content=\"4.9332\">\n    <\/div>\n<\/article>\n\n<article class=\"lieu\" \n         itemscope itemtype=\"https:\/\/schema.org\/TouristAttraction\"\n         data-id=\"6666\" data-lat=\"45.7618\" data-lng=\"4.9220\"\n         data-cat=\"Loisirs\" data-duree=\"2h30\">\n    <header class=\"lieu-header\">\n        <h2 itemprop=\"name\">Mini World Lyon : le parc d\u2019attractions miniature<\/h2>\n        <div class=\"lieu-meta\">\n            <span class=\"badge\">Loisirs<\/span>\n            <span class=\"badge\">\u23f1 2h30<\/span>\n        <\/div>\n        <div itemprop=\"address\" itemscope itemtype=\"https:\/\/schema.org\/PostalAddress\">\n            <meta itemprop=\"streetAddress\" content=\"3 Avenue de Bohlen\">\n            <meta itemprop=\"addressLocality\" content=\"Vaulx-en-Velin\">\n            <meta itemprop=\"postalCode\" content=\"69120\">\n            <meta itemprop=\"addressCountry\" content=\"FR\">\n        <\/div>\n    <\/header>\n    <figure class=\"lieu-media\">\n        <img decoding=\"async\" class=\"img-source\" src=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/02\/mini-world-vaulx-en-velin.jpg\" alt=\"Parc miniature Mini World Lyon\" loading=\"lazy\" itemprop=\"image\">\n        <figcaption class=\"sr-only\">Mini World Lyon<\/figcaption>\n    <\/figure>\n    <div class=\"contenuFiche\" itemprop=\"description\">\n        <p>Plongez dans des mondes f\u00e9eriques et anim\u00e9s au c\u0153ur du plus grand parc miniature de France, situ\u00e9 au Carr\u00e9 de Soie.<\/p>\n    <\/div>\n    <a href=\"https:\/\/jevisitelyon.com\/decouvrez-mini-world-lyon-a-vaulx-en-velin\/\" \n       class=\"btn-toggle\" \n       title=\"En savoir plus sur Mini World Lyon\">En savoir plus<\/a>\n    <div itemprop=\"geo\" itemscope itemtype=\"https:\/\/schema.org\/GeoCoordinates\">\n        <meta itemprop=\"latitude\" content=\"45.7618\">\n        <meta itemprop=\"longitude\" content=\"4.9220\">\n    <\/div>\n<\/article>\n\n<article class=\"lieu\" \n         itemscope itemtype=\"https:\/\/schema.org\/TouristAttraction\"\n         data-id=\"6758\" data-lat=\"45.7611\" data-lng=\"4.8369\"\n         data-cat=\"Mus\u00e9e\" data-duree=\"1h30\">\n    <header class=\"lieu-header\">\n        <h2 itemprop=\"name\">Le Mus\u00e9e de l\u2019Illusion : d\u00e9fiez votre perception<\/h2>\n        <div class=\"lieu-meta\">\n            <span class=\"badge\">Mus\u00e9e<\/span>\n            <span class=\"badge\">\u23f1 1h30<\/span>\n        <\/div>\n        <div itemprop=\"address\" itemscope itemtype=\"https:\/\/schema.org\/PostalAddress\">\n            <meta itemprop=\"streetAddress\" content=\"1 Rue Bellecordi\u00e8re\">\n            <meta itemprop=\"addressLocality\" content=\"Lyon\">\n            <meta itemprop=\"postalCode\" content=\"69002\">\n            <meta itemprop=\"addressCountry\" content=\"FR\">\n        <\/div>\n    <\/header>\n    <figure class=\"lieu-media\">\n        <img decoding=\"async\" class=\"img-source\" src=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/02\/musee-de-l-illusion-lyon.jpg\" alt=\"Illusions d'optique Lyon\" loading=\"lazy\" itemprop=\"image\">\n        <figcaption class=\"sr-only\">Mus\u00e9e de l'Illusion<\/figcaption>\n    <\/figure>\n    <div class=\"contenuFiche\" itemprop=\"description\">\n        <p>Une exp\u00e9rience captivante o\u00f9 r\u00e9alit\u00e9 et illusion se m\u00e9langent \u00e0 travers des expositions interactives qui bousculent vos sens.<\/p>\n    <\/div>\n    <a href=\"https:\/\/jevisitelyon.com\/decouvrez-le-musee-de-l-illusion-a-lyon\/\" \n       class=\"btn-toggle\" \n       title=\"En savoir plus sur le Mus\u00e9e de l'Illusion\">En savoir plus<\/a>\n    <div itemprop=\"geo\" itemscope itemtype=\"https:\/\/schema.org\/GeoCoordinates\">\n        <meta itemprop=\"latitude\" content=\"45.7611\">\n        <meta itemprop=\"longitude\" content=\"4.8369\">\n    <\/div>\n<\/article>\n\n<article class=\"lieu\" \n         itemscope itemtype=\"https:\/\/schema.org\/TouristAttraction\"\n         data-id=\"6565\" data-lat=\"45.7482\" data-lng=\"4.8415\"\n         data-cat=\"Insolite\" data-duree=\"2h\">\n    <header class=\"lieu-header\">\n        <h2 itemprop=\"name\">Sensas : l\u2019exp\u00e9rience sensorielle unique \u00e0 Lyon<\/h2>\n        <div class=\"lieu-meta\">\n            <span class=\"badge\">Insolite<\/span>\n            <span class=\"badge\">\u23f1 2h<\/span>\n        <\/div>\n        <div itemprop=\"address\" itemscope itemtype=\"https:\/\/schema.org\/PostalAddress\">\n            <meta itemprop=\"streetAddress\" content=\"14 Rue de la Madeleine\">\n            <meta itemprop=\"addressLocality\" content=\"Lyon\">\n            <meta itemprop=\"postalCode\" content=\"69007\">\n            <meta itemprop=\"addressCountry\" content=\"FR\">\n        <\/div>\n    <\/header>\n    <figure class=\"lieu-media\">\n        <img decoding=\"async\" class=\"img-source\" src=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/02\/Sensas-lyon.jpg\" alt=\"Parcours sensoriel Sensas Lyon\" loading=\"lazy\" itemprop=\"image\">\n        <figcaption class=\"sr-only\">Sensas Lyon<\/figcaption>\n    <\/figure>\n    <div class=\"contenuFiche\" itemprop=\"description\">\n        <p>Relevez des d\u00e9fis ludiques dans l'obscurit\u00e9 totale et testez vos 5 sens lors d'un parcours immersif unique en son genre.<\/p>\n    <\/div>\n    <a href=\"https:\/\/jevisitelyon.com\/sensas-experience-sensorielle-unique-a-lyon\/\" \n       class=\"btn-toggle\" \n       title=\"En savoir plus sur Sensas Lyon\">En savoir plus<\/a>\n    <div itemprop=\"geo\" itemscope itemtype=\"https:\/\/schema.org\/GeoCoordinates\">\n        <meta itemprop=\"latitude\" content=\"45.7482\">\n        <meta itemprop=\"longitude\" content=\"4.8415\">\n    <\/div>\n<\/article>\n\n<article class=\"lieu\" \n         itemscope itemtype=\"https:\/\/schema.org\/TouristAttraction\"\n         data-id=\"6773\" data-lat=\"45.7663\" data-lng=\"4.8601\"\n         data-cat=\"D\u00e9tente\" data-duree=\"1h15\">\n    <header class=\"lieu-header\">\n        <h2 itemprop=\"name\">Graviti : flottaison en isolation sensorielle<\/h2>\n        <div class=\"lieu-meta\">\n            <span class=\"badge\">D\u00e9tente<\/span>\n            <span class=\"badge\">\u23f1 1h15<\/span>\n        <\/div>\n        <div itemprop=\"address\" itemscope itemtype=\"https:\/\/schema.org\/PostalAddress\">\n            <meta itemprop=\"streetAddress\" content=\"Rue de la Viabert\">\n            <meta itemprop=\"addressLocality\" content=\"Lyon\">\n            <meta itemprop=\"postalCode\" content=\"69006\">\n            <meta itemprop=\"addressCountry\" content=\"FR\">\n        <\/div>\n    <\/header>\n    <figure class=\"lieu-media\">\n        <img decoding=\"async\" class=\"img-source\" src=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/02\/flottaison-avec-graviti-lyon.jpg\" alt=\"Isolation sensorielle Graviti Lyon\" loading=\"lazy\" itemprop=\"image\">\n        <figcaption class=\"sr-only\">Graviti Lyon<\/figcaption>\n    <\/figure>\n    <div class=\"contenuFiche\" itemprop=\"description\">\n        <p>Lib\u00e9rez votre corps de la pesanteur dans un cocon d'eau satur\u00e9e en sel d'Epsom pour une d\u00e9tente absolue du corps et de l'esprit.<\/p>\n    <\/div>\n    <a href=\"https:\/\/jevisitelyon.com\/flottaison-en-isolation-sensorielle-avec-graviti\/\" \n       class=\"btn-toggle\" \n       title=\"En savoir plus sur Graviti\">En savoir plus<\/a>\n    <div itemprop=\"geo\" itemscope itemtype=\"https:\/\/schema.org\/GeoCoordinates\">\n        <meta itemprop=\"latitude\" content=\"45.7663\">\n        <meta itemprop=\"longitude\" content=\"4.8601\">\n    <\/div>\n<\/article>\n<article class=\"lieu\" \n         itemscope itemtype=\"https:\/\/schema.org\/TouristAttraction\"\n         data-id=\"6632\" data-lat=\"45.7395\" data-lng=\"4.8328\"\n         data-cat=\"Insolite\" data-duree=\"1h15\">\n    <header class=\"lieu-header\">\n        <h2 itemprop=\"name\">Mission Evasion : votre Escape Game immersif<\/h2>\n        <div class=\"lieu-meta\">\n            <span class=\"badge\">Insolite<\/span>\n            <span class=\"badge\">\u23f1 1h15<\/span>\n        <\/div>\n        <div itemprop=\"address\" itemscope itemtype=\"https:\/\/schema.org\/PostalAddress\">\n            <meta itemprop=\"streetAddress\" content=\"7 Boulevard Yves Farge\">\n            <meta itemprop=\"addressLocality\" content=\"Lyon\">\n            <meta itemprop=\"postalCode\" content=\"69007\">\n            <meta itemprop=\"addressCountry\" content=\"FR\">\n        <\/div>\n    <\/header>\n    <figure class=\"lieu-media\">\n        <img decoding=\"async\" class=\"img-source\" src=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/02\/mission-evasion-escape-game-lyon.jpg\" alt=\"Salle d'escape game Mission Evasion Lyon\" loading=\"lazy\" itemprop=\"image\">\n        <figcaption class=\"sr-only\">Mission Evasion Lyon<\/figcaption>\n    <\/figure>\n    <div class=\"contenuFiche\" itemprop=\"description\">\n        <p>Plongez dans des sc\u00e9narios dignes du cin\u00e9ma avec des d\u00e9cors saisissants. Mission Evasion propose des \u00e9nigmes originales pour une immersion totale et palpitante.<\/p>\n    <\/div>\n    <a href=\"https:\/\/jevisitelyon.com\/mission-evasion-un-escape-game-immersif-a-lyon\/\" \n       class=\"btn-toggle\" \n       title=\"En savoir plus sur Mission Evasion\">En savoir plus<\/a>\n    <div itemprop=\"geo\" itemscope itemtype=\"https:\/\/schema.org\/GeoCoordinates\">\n        <meta itemprop=\"latitude\" content=\"45.7395\">\n        <meta itemprop=\"longitude\" content=\"4.8328\">\n    <\/div>\n<\/article>\n\n<article class=\"lieu\" \n         itemscope itemtype=\"https:\/\/schema.org\/TouristAttraction\"\n         data-id=\"6618\" data-lat=\"45.7812\" data-lng=\"4.8125\"\n         data-cat=\"Sensations\" data-duree=\"1h30\">\n    <header class=\"lieu-header\">\n        <h2 itemprop=\"name\">I-Way : le simulateur de sensations fortes \u00e0 Lyon<\/h2>\n        <div class=\"lieu-meta\">\n            <span class=\"badge\">Sensations<\/span>\n            <span class=\"badge\">\u23f1 1h30<\/span>\n        <\/div>\n        <div itemprop=\"address\" itemscope itemtype=\"https:\/\/schema.org\/PostalAddress\">\n            <meta itemprop=\"streetAddress\" content=\"4 Rue Jean Marcuit\">\n            <meta itemprop=\"addressLocality\" content=\"Lyon\">\n            <meta itemprop=\"postalCode\" content=\"69009\">\n            <meta itemprop=\"addressCountry\" content=\"FR\">\n        <\/div>\n    <\/header>\n    <figure class=\"lieu-media\">\n        <img decoding=\"async\" class=\"img-source\" src=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/02\/i-way-lyon.jpg\" alt=\"Simulateurs de course I-Way Lyon\" loading=\"lazy\" itemprop=\"image\">\n        <figcaption class=\"sr-only\">I-Way Lyon<\/figcaption>\n    <\/figure>\n    <div class=\"contenuFiche\" itemprop=\"description\">\n        <p>Prenez les commandes de simulateurs de F1, de rallye ou d'avions de chasse pour une exp\u00e9rience de pilotage ultra-r\u00e9aliste unique en Europe.<\/p>\n    <\/div>\n    <a href=\"https:\/\/jevisitelyon.com\/i-way-lyon-le-simulateur-de-sensations-fortes\/\" \n       class=\"btn-toggle\" \n       title=\"En savoir plus sur I-Way Lyon\">En savoir plus<\/a>\n    <div itemprop=\"geo\" itemscope itemtype=\"https:\/\/schema.org\/GeoCoordinates\">\n        <meta itemprop=\"latitude\" content=\"45.7812\">\n        <meta itemprop=\"longitude\" content=\"4.8125\">\n    <\/div>\n<\/article>\n\n<article class=\"lieu\" \n         itemscope itemtype=\"https:\/\/schema.org\/TouristAttraction\"\n         data-id=\"6806\" data-lat=\"45.7535\" data-lng=\"4.8290\"\n         data-cat=\"Bien-\u00eatre\" data-duree=\"1h\">\n    <header class=\"lieu-header\">\n        <h2 itemprop=\"name\">Puppy Yoga : d\u00e9tente avec des chiots \u00e0 Lyon<\/h2>\n        <div class=\"lieu-meta\">\n            <span class=\"badge\">Bien-\u00eatre<\/span>\n            <span class=\"badge\">\u23f1 1h<\/span>\n        <\/div>\n        <div itemprop=\"address\" itemscope itemtype=\"https:\/\/schema.org\/PostalAddress\">\n            <meta itemprop=\"streetAddress\" content=\"7 Rue Antoine de Saint-Exup\u00e9ry\">\n            <meta itemprop=\"addressLocality\" content=\"Lyon\">\n            <meta itemprop=\"postalCode\" content=\"69002\">\n            <meta itemprop=\"addressCountry\" content=\"FR\">\n        <\/div>\n    <\/header>\n    <figure class=\"lieu-media\">\n        <img decoding=\"async\" class=\"img-source\" src=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/02\/puppy-yoga-center-lyon.jpg\" alt=\"S\u00e9ance de Puppy Yoga Lyon\" loading=\"lazy\" itemprop=\"image\">\n        <figcaption class=\"sr-only\">Puppy Yoga Lyon<\/figcaption>\n    <\/figure>\n    <div class=\"contenuFiche\" itemprop=\"description\">\n        <p>Alliez les bienfaits du yoga \u00e0 la tendresse des chiots lors d'une s\u00e9ance de relaxation unique con\u00e7ue pour booster votre bonheur et r\u00e9duire le stress.<\/p>\n    <\/div>\n    <a href=\"https:\/\/jevisitelyon.com\/puppy-yoga-lyon-le-yoga-avec-la-compagnie-apaisante-des-chiots\/\" \n       class=\"btn-toggle\" \n       title=\"En savoir plus sur le Puppy Yoga\">En savoir plus<\/a>\n    <div itemprop=\"geo\" itemscope itemtype=\"https:\/\/schema.org\/GeoCoordinates\">\n        <meta itemprop=\"latitude\" content=\"45.7535\">\n        <meta itemprop=\"longitude\" content=\"4.8290\">\n    <\/div>\n<\/article>\n\n<article class=\"lieu\" \n         itemscope itemtype=\"https:\/\/schema.org\/TouristAttraction\"\n         data-id=\"6645\" data-lat=\"45.7720\" data-lng=\"4.9490\"\n         data-cat=\"Insolite\" data-duree=\"1h30\">\n    <header class=\"lieu-header\">\n        <h2 itemprop=\"name\">Prison Island : l\u2019aventure fa\u00e7on Fort Boyard<\/h2>\n        <div class=\"lieu-meta\">\n            <span class=\"badge\">Insolite<\/span>\n            <span class=\"badge\">\u23f1 1h30<\/span>\n        <\/div>\n        <div itemprop=\"address\" itemscope itemtype=\"https:\/\/schema.org\/PostalAddress\">\n            <meta itemprop=\"streetAddress\" content=\"OL Vall\u00e9e\">\n            <meta itemprop=\"addressLocality\" content=\"D\u00e9cines-Charpieu\">\n            <meta itemprop=\"postalCode\" content=\"69150\">\n            <meta itemprop=\"addressCountry\" content=\"FR\">\n        <\/div>\n    <\/header>\n    <figure class=\"lieu-media\">\n        <img decoding=\"async\" class=\"img-source\" src=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/02\/prison-island-decines.jpg\" alt=\"D\u00e9fis en \u00e9quipe \u00e0 Prison Island Lyon\" loading=\"lazy\" itemprop=\"image\">\n        <figcaption class=\"sr-only\">Prison Island Lyon<\/figcaption>\n    <\/figure>\n    <div class=\"contenuFiche\" itemprop=\"description\">\n        <p>Coop\u00e9rez pour r\u00e9soudre des \u00e9nigmes et r\u00e9ussir des \u00e9preuves physiques dans les 30 cellules de cette prison d'aventure inspir\u00e9e des meilleurs jeux t\u00e9l\u00e9vis\u00e9s.<\/p>\n    <\/div>\n    <a href=\"https:\/\/jevisitelyon.com\/decouvrez-prison-island-a-decines-charpieu-chez-exalto\/\" \n       class=\"btn-toggle\" \n       title=\"En savoir plus sur Prison Island\">En savoir plus<\/a>\n    <div itemprop=\"geo\" itemscope itemtype=\"https:\/\/schema.org\/GeoCoordinates\">\n        <meta itemprop=\"latitude\" content=\"45.7720\">\n        <meta itemprop=\"longitude\" content=\"4.9490\">\n    <\/div>\n<\/article>\n<\/section>\n\n\n\n\n<!--<script>\ndocument.querySelectorAll('.btn-toggle').forEach(btn => {\n  btn.addEventListener('click', () => {\n    const article = btn.closest('.lieu');\n    const open = article.classList.toggle('is-open');\n    btn.setAttribute('aria-expanded', open);\n    btn.textContent = open ? 'R\u00e9duire' : 'Lire la suite';\n  });\n});\n<\/script>-->\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e30f9ac elementor-widget elementor-widget-html\" data-id=\"e30f9ac\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\r\n\r\nlet visited = JSON.parse(localStorage.getItem(\"visitedSites\") || \"[]\");\r\nlet markersList = [];\r\nlet userPos = null;\r\nlet observerActive = true; \/\/ \u2705 Nouveau flag pour contr\u00f4ler l'observer\r\nlet activeId = null;\r\n\r\nfunction calculateDistance(lat1, lon1, lat2, lon2) {\r\n  const R = 6371;\r\n  const dLat = (lat2 - lat1) * Math.PI \/ 180;\r\n  const dLon = (lon2 - lon1) * Math.PI \/ 180;\r\n  const a = Math.sin(dLat\/2)**2 +\r\n            Math.cos(lat1*Math.PI\/180) * Math.cos(lat2*Math.PI\/180) *\r\n            Math.sin(dLon\/2)**2;\r\n  const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));\r\n  const d = R * c;\r\n  return d > 1 ? d.toFixed(1) + \" km\" : Math.round(d * 1000) + \" m\";\r\n}\r\n\r\nfunction initApp() {\r\n  const map = new google.maps.Map(document.getElementById('map'), {\r\n    center: { lat: 45.7625, lng: 4.8275 },\r\n    zoom: 13, \/\/ \u2705 Zoom initial plus large (\u00e9tait 14)\r\n    disableDefaultUI: true,\r\n    styles: [{ featureType: \"poi\", stylers: [{ visibility: \"off\" }] }]\r\n  });\r\n\r\n  if (navigator.geolocation) {\r\n    navigator.geolocation.getCurrentPosition(position => {\r\n      userPos = { lat: position.coords.latitude, lng: position.coords.longitude };\r\n      updateAllDistances();\r\n    });\r\n  }\r\n\r\n  class LyonMarker extends google.maps.OverlayView {\r\n    constructor(opts) {\r\n      super();\r\n      this.opts = opts;\r\n      this.div = document.createElement('div');\r\n      this.div.className = 'pulse-marker-wrapper';\r\n      this.div.innerHTML = `<img decoding=\"async\" src=\"${opts.image}\">`;\r\n      google.maps.event.addDomListener(this.div, 'click', () =>\r\n        google.maps.event.trigger(this, 'click')\r\n      );\r\n      this.setMap(opts.map);\r\n    }\r\n    onAdd() { this.getPanes().overlayMouseTarget.appendChild(this.div); }\r\n    draw() {\r\n      const point = this.getProjection().fromLatLngToDivPixel(this.opts.position);\r\n      if (point) {\r\n        this.div.style.left = (point.x - 30) + 'px';\r\n        this.div.style.top = (point.y - 30) + 'px';\r\n      }\r\n    }\r\n    setVisited(isV) { this.div.classList.toggle('visited', isV); }\r\n  }\r\n\r\n  function setActiveCard(cardId) {\r\n    const targetId = parseInt(cardId, 10);\r\n    activeId = targetId;\r\n    markersList.forEach(m => {\r\n      const isActive = m.id === targetId;\r\n      m.card.classList.toggle(\"active\", isActive);\r\n      m.marker.div.classList.toggle(\"active\", isActive);\r\n    });\r\n  }\r\n\r\n  \/\/ \u2705 Scroll sans interf\u00e9rence de l'observer\r\n  function centerCardInSlider(card) {\r\n    const root = document.getElementById(\"lyon-grid\");\r\n    if (!root || !card) return;\r\n    \r\n    const targetLeft = card.offsetLeft + (card.offsetWidth \/ 2) - (root.clientWidth \/ 2);\r\n    root.scrollTo({ left: targetLeft, behavior: \"smooth\" });\r\n  }\r\n\r\n  \/\/ \u2705 Centre la carte avec le marker positionn\u00e9 au-dessus du slider\r\n  function focusMarkerById(id) {\r\n    const m = markersList.find(x => x.id === parseInt(id, 10));\r\n    if (!m) return;\r\n    if (activeId === m.id) return;\r\n    \r\n    const targetZoom = 15;\r\n    map.setZoom(targetZoom);\r\n    \r\n    \/\/ \u2705\u2705\u2705 R\u00c9GLAGE MANUEL ICI \u2705\u2705\u2705\r\n    const offsetPixels = 100; \/\/ \u2190 CHANGEZ CETTE VALEUR pour ajuster la position\r\n    \r\n    console.log(\"\ud83d\udccf Offset appliqu\u00e9:\", offsetPixels, \"px\");\r\n    \r\n    map.panTo(m.pos);\r\n    setTimeout(() => {\r\n      map.panBy(0, -offsetPixels);\r\n    }, 50);\r\n    \r\n    setActiveCard(id);\r\n  }\r\n\r\n  document.querySelectorAll(\".lieu\").forEach(el => {\r\n    const id = parseInt(el.dataset.id, 10);\r\n    const title = el.querySelector(\"h2\").textContent;\r\n    const img = el.querySelector(\".img-source\").src;\r\n    const descContent = el.querySelector(\".contenuFiche\").innerHTML;\r\n    const pos = { lat: parseFloat(el.dataset.lat), lng: parseFloat(el.dataset.lng) };\r\n    const cat = el.dataset.cat;\r\n    const duree = el.dataset.duree;\r\n\r\n    const marker = new LyonMarker({ position: pos, map, image: img });\r\n\r\n    const card = document.createElement(\"article\");\r\n    card.className = \"lieu-card\";\r\n    card.dataset.id = id;\r\n    card.innerHTML = `\r\n      <div class=\"success-badge\">\u2713<\/div>\r\n      <img decoding=\"async\" src=\"${img}\">\r\n      <div class=\"lieu-card-content\">\r\n        <h4>${title}<\/h4>\r\n        <small>${cat}<\/small>\r\n        <span class=\"dist-val\"><\/span>\r\n        <button class=\"btn-voir-plus\">Voir plus..<\/button>\r\n      <\/div>`;\r\n    document.getElementById(\"lyon-grid\").appendChild(card);\r\n\r\n    \/\/ \u2705 Clic sur toute la carte pour ouvrir la fiche\r\n    card.onclick = (e) => {\r\n      \/\/ Emp\u00eacher si on clique sur le bouton (il a son propre handler)\r\n      if (e.target.classList.contains('btn-voir-plus')) return;\r\n      openFiche();\r\n    };\r\n    \r\n    \/\/ \u2705 Le bouton \"Voir plus\" ouvre aussi la fiche\r\n    const btnVoir = card.querySelector('.btn-voir-plus');\r\n    if (btnVoir) {\r\n      btnVoir.onclick = (e) => {\r\n        e.stopPropagation(); \/\/ Emp\u00eache le double d\u00e9clenchement\r\n        openFiche();\r\n      };\r\n    }\r\n\r\n    const openFiche = () => {\r\n      document.getElementById(\"fiche-main-img\").src = img;\r\n      document.getElementById(\"fiche-titre\").textContent = title;\r\n      document.getElementById(\"fiche-description\").innerHTML = descContent;\r\n      document.getElementById(\"fiche-duree\").textContent = duree;\r\n      document.getElementById(\"fiche-cat\").textContent = cat;\r\n\r\n      const distBox = document.getElementById(\"fiche-dist-container\");\r\n      distBox.textContent = userPos\r\n        ? \"\ud83c\udfc3 \u00e0 \" + calculateDistance(userPos.lat, userPos.lng, pos.lat, pos.lng)\r\n        : \"\ud83c\udfc3 Lyon\";\r\n\r\n      const btnVisite = document.getElementById(\"btn-visite\");\r\n      const updateVisitedUI = (isVisited) => {\r\n        if (isVisited) {\r\n          btnVisite.classList.add(\"visited\");\r\n          btnVisite.textContent = \"\u2713 D\u00e9j\u00e0 visit\u00e9\";\r\n        } else {\r\n          btnVisite.classList.remove(\"visited\");\r\n          btnVisite.textContent = \"[\u2713] Visit\u00e9\";\r\n        }\r\n      };\r\n      updateVisitedUI(visited.includes(id));\r\n      btnVisite.onclick = () => {\r\n        const isVisited = visited.includes(id);\r\n        visited = isVisited ? visited.filter(x => x !== id) : [...visited, id];\r\n        updateVisitedUI(!isVisited);\r\n        updateStats();\r\n      };\r\n\r\n      const btnGps = document.getElementById(\"btn-gps\");\r\n      if (btnGps) {\r\n        btnGps.onclick = () => {\r\n          window.open(\r\n            `https:\/\/www.google.com\/maps\/dir\/?api=1&destination=${pos.lat},${pos.lng}`,\r\n            \"_blank\"\r\n          );\r\n        };\r\n      }\r\n\r\n      const btnAudio = document.getElementById(\"btn-audio\");\r\n      if (btnAudio) {\r\n        window.speechSynthesis.cancel();\r\n        btnAudio.textContent = \"\ud83d\udd0a\";\r\n        btnAudio.onclick = () => {\r\n          if (window.speechSynthesis.speaking && !window.speechSynthesis.paused) {\r\n            window.speechSynthesis.pause(); btnAudio.textContent = \"\u25b6\"; return;\r\n          }\r\n          if (window.speechSynthesis.paused) {\r\n            window.speechSynthesis.resume(); btnAudio.textContent = \"\u23f8\"; return;\r\n          }\r\n          let plainText = (new DOMParser()).parseFromString(descContent, 'text\/html').body.textContent;\r\n          plainText = plainText.replace(\/\\.\/g, \". \").replace(\/:\/g, \" : \").replace(\/\\n\/g, \". \");\r\n          const utter = new SpeechSynthesisUtterance(plainText);\r\n          utter.lang = 'fr-FR'; utter.rate = 1; utter.pitch = 0.97;\r\n          const voices = speechSynthesis.getVoices();\r\n          const v = voices.find(v => v.lang === \"fr-FR\" && v.name.includes(\"Google\")) || voices.find(v => v.lang === \"fr-FR\");\r\n          if (v) utter.voice = v;\r\n          utter.onstart = () => { btnAudio.textContent = \"\u23f8\"; };\r\n          utter.onend = () => { btnAudio.textContent = \"\ud83d\udd0a\"; };\r\n          window.speechSynthesis.speak(utter);\r\n        };\r\n      }\r\n\r\n      document.getElementById(\"fiche-lieu\").classList.remove(\"hidden\");\r\n      document.getElementById(\"map-container\").classList.add(\"blur\");\r\n      document.body.classList.add(\"no-scroll\");\r\n      setActiveCard(id);\r\n    };\r\n\r\n    \/\/ \u2705 CORRECTION : D\u00e9sactivation compl\u00e8te de l'observer pendant le clic marker\r\n    marker.addListener('click', () => {\r\n      console.log(\"\ud83d\uddb1\ufe0f Clic marker #\" + id);\r\n      \r\n      \/\/ \u2705 D\u00e9sactiver l'observer\r\n      observerActive = false;\r\n      console.log(\"\ud83d\udd12 Observer d\u00e9sactiv\u00e9\");\r\n      \r\n      \/\/ Centrer le slider\r\n      centerCardInSlider(card);\r\n      \r\n      \/\/ Attendre la fin du scroll + recentrer la map\r\n      setTimeout(() => {\r\n        focusMarkerById(id);\r\n        \r\n        \/\/ \u2705 R\u00e9activer l'observer apr\u00e8s un d\u00e9lai de s\u00e9curit\u00e9\r\n        setTimeout(() => {\r\n          observerActive = true;\r\n          console.log(\"\ud83d\udd13 Observer r\u00e9activ\u00e9\");\r\n        }, 500);\r\n      }, 700);\r\n    });\r\n\r\n    markersList.push({ id, marker, card, pos });\r\n  });\r\n\r\n  \/\/ \u2705 Ajuster la vue pour voir tous les markers au chargement\r\n  function fitMapToMarkers() {\r\n    if (markersList.length === 0) return;\r\n    \r\n    const bounds = new google.maps.LatLngBounds();\r\n    markersList.forEach(m => {\r\n      bounds.extend(m.pos);\r\n    });\r\n    \r\n    map.fitBounds(bounds);\r\n    \r\n    \/\/ Ajouter un peu de padding pour ne pas coller aux bords\r\n    const paddingOptions = {\r\n      top: 100,\r\n      bottom: 250, \/\/ Plus d'espace en bas \u00e0 cause du slider\r\n      left: 50,\r\n      right: 50\r\n    };\r\n    map.fitBounds(bounds, paddingOptions);\r\n    \r\n    console.log(\"\ud83d\udccd Vue ajust\u00e9e pour voir tous les lieux\");\r\n  }\r\n  \r\n  \/\/ Appeler apr\u00e8s avoir cr\u00e9\u00e9 tous les markers\r\n  setTimeout(() => {\r\n    fitMapToMarkers();\r\n  }, 500);\r\n\r\n  function updateAllDistances() {\r\n    if (!userPos) return;\r\n    markersList.forEach(m => {\r\n      const d = calculateDistance(userPos.lat, userPos.lng, m.pos.lat, m.pos.lng);\r\n      const span = m.card.querySelector(\".dist-val\");\r\n      if (span) span.textContent = d;\r\n    });\r\n  }\r\n\r\n  function updateStats() {\r\n    const count = visited.length;\r\n    document.getElementById(\"visitedCount\").textContent = count;\r\n    document.getElementById(\"totalCount\").textContent = markersList.length;\r\n    document.getElementById(\"progressFill\").style.width =\r\n      markersList.length > 0 ? (count \/ markersList.length * 100) + \"%\" : \"0%\";\r\n\r\n    markersList.forEach(m => {\r\n      const isV = visited.includes(m.id);\r\n      m.card.classList.toggle(\"is-visited-card\", isV);\r\n      m.marker.setVisited(isV);\r\n    });\r\n\r\n    localStorage.setItem(\"visitedSites\", JSON.stringify(visited));\r\n  }\r\n\r\n  document.getElementById(\"btn-close-fiche\").onclick = () => {\r\n    document.getElementById(\"fiche-lieu\").classList.add(\"hidden\");\r\n    document.getElementById(\"map-container\").classList.remove(\"blur\");\r\n    document.body.classList.remove(\"no-scroll\");\r\n    window.speechSynthesis.cancel();\r\n  };\r\n\r\n  const btnReset = document.getElementById(\"btn-reset\");\r\n  if (btnReset) {\r\n    btnReset.onclick = () => {\r\n      if (confirm(\"R\u00e9initialiser toute votre progression ?\")) {\r\n        visited = [];\r\n        updateStats();\r\n      }\r\n    };\r\n  }\r\n\r\n  const slider = document.querySelector(\".slider-cards\");\r\n  const btnLeft = document.querySelector(\".slider-btn.left\");\r\n  const btnRight = document.querySelector(\".slider-btn.right\");\r\n  if (slider && btnLeft && btnRight) {\r\n    btnLeft.addEventListener(\"click\", () => {\r\n      slider.scrollBy({ left: -250, behavior: \"smooth\" });\r\n    });\r\n    btnRight.addEventListener(\"click\", () => {\r\n      slider.scrollBy({ left: 250, behavior: \"smooth\" });\r\n    });\r\n  }\r\n\r\n  \/\/ \u2705 Observer qui respecte le flag observerActive\r\n  function initSliderObserver() {\r\n    const root = document.getElementById(\"lyon-grid\");\r\n    const cards = Array.from(document.querySelectorAll(\".lieu-card\"));\r\n    if (!root || cards.length === 0) return;\r\n\r\n    const last = cards[cards.length - 1];\r\n    let rafId = null;\r\n    let focusTimer = null;\r\n    let scrollDebounce = null; \/\/ \u2705 Timer pour \u00e9viter le clignotement\r\n\r\n    function scheduleFocus(id) {\r\n      if (focusTimer) clearTimeout(focusTimer);\r\n      focusTimer = setTimeout(() => {\r\n        focusTimer = null;\r\n        focusMarkerById(id);\r\n      }, 200); \/\/ \u2705 Augment\u00e9 de 150 \u00e0 200ms\r\n    }\r\n\r\n    function computeActiveCard() {\r\n      \/\/ \u2705 V\u00e9rifier le flag avant toute action\r\n      if (!observerActive) {\r\n        console.log(\"\u23f8\ufe0f Observer en pause\");\r\n        rafId = null;\r\n        return;\r\n      }\r\n      \r\n      rafId = null;\r\n\r\n      const leftTolerance = 12;\r\n      const rightEdge = root.clientWidth;\r\n\r\n      const lastX = last.offsetLeft - root.scrollLeft;\r\n      const lastRightEdge = lastX + last.offsetWidth;\r\n      const lastAlignedRight = Math.abs(lastRightEdge - rightEdge) <= 10; \/\/ \u2705 Tol\u00e9rance augment\u00e9e\r\n\r\n      if (lastAlignedRight) {\r\n        const id = last.dataset.id;\r\n        if (activeId !== parseInt(id, 10)) {\r\n          console.log(\"\ud83d\udccd Derni\u00e8re carte #\" + id);\r\n          scheduleFocus(id);\r\n        }\r\n        return;\r\n      }\r\n\r\n      let candidate = null;\r\n      let bestDelta = Infinity;\r\n\r\n      for (const card of cards) {\r\n        const x = card.offsetLeft - root.scrollLeft;\r\n        const acceptable = x >= -leftTolerance;\r\n        if (!acceptable) continue;\r\n        const delta = Math.abs(x);\r\n        if (delta < bestDelta) {\r\n          bestDelta = delta;\r\n          candidate = card;\r\n        }\r\n      }\r\n\r\n      if (!candidate) {\r\n        let bestWidth = -1;\r\n        for (const card of cards) {\r\n          const x = card.offsetLeft - root.scrollLeft;\r\n          const visWidth =\r\n            Math.min(x + card.offsetWidth, rightEdge) - Math.max(x, 0);\r\n          if (visWidth > bestWidth) {\r\n            bestWidth = visWidth;\r\n            candidate = card;\r\n          }\r\n        }\r\n      }\r\n\r\n      if (candidate) {\r\n        const id = candidate.dataset.id;\r\n        if (activeId !== parseInt(id, 10)) {\r\n          console.log(\"\ud83d\udccd Observer active carte #\" + id);\r\n          scheduleFocus(id);\r\n        }\r\n      }\r\n    }\r\n\r\n    root.addEventListener(\"scroll\", () => {\r\n      \/\/ \u2705 Debounce pour \u00e9viter trop d'appels pendant le scroll\r\n      if (scrollDebounce) clearTimeout(scrollDebounce);\r\n      \r\n      scrollDebounce = setTimeout(() => {\r\n        if (rafId) return;\r\n        rafId = requestAnimationFrame(computeActiveCard);\r\n      }, 50); \/\/ \u2705 Attendre 50ms apr\u00e8s la fin du scroll\r\n    });\r\n\r\n    \/\/ Premi\u00e8re \u00e9valuation\r\n    computeActiveCard();\r\n  }\r\n\r\n  initSliderObserver();\r\n  updateStats();\r\n  \r\n  \/\/ \u2705 DRAG & DROP avec la souris\r\n  initDragScroll();\r\n  \r\n  \/\/ \u2705 SCROLL horizontal avec molette\r\n  initWheelScroll();\r\n}\r\n\r\n\/\/ \u2705 Drag & drop pour scroller avec la souris\r\nfunction initDragScroll() {\r\n  const slider = document.getElementById('lyon-grid');\r\n  if (!slider) return;\r\n\r\n  let isDown = false;\r\n  let startX;\r\n  let scrollLeft;\r\n\r\n  slider.addEventListener('mousedown', (e) => {\r\n    isDown = true;\r\n    slider.style.cursor = 'grabbing';\r\n    slider.style.userSelect = 'none';\r\n    startX = e.pageX - slider.offsetLeft;\r\n    scrollLeft = slider.scrollLeft;\r\n  });\r\n\r\n  slider.addEventListener('mouseleave', () => {\r\n    isDown = false;\r\n    slider.style.cursor = 'grab';\r\n  });\r\n\r\n  slider.addEventListener('mouseup', () => {\r\n    isDown = false;\r\n    slider.style.cursor = 'grab';\r\n  });\r\n\r\n  slider.addEventListener('mousemove', (e) => {\r\n    if (!isDown) return;\r\n    e.preventDefault();\r\n    const x = e.pageX - slider.offsetLeft;\r\n    const walk = (x - startX) * 2; \/\/ Vitesse du scroll\r\n    slider.scrollLeft = scrollLeft - walk;\r\n  });\r\n  \r\n  \/\/ Curseur grab par d\u00e9faut\r\n  slider.style.cursor = 'grab';\r\n}\r\n\r\n\/\/ \u2705 Scroll horizontal avec molette\r\nfunction initWheelScroll() {\r\n  const slider = document.getElementById('lyon-grid');\r\n  if (!slider) return;\r\n\r\n  slider.addEventListener('wheel', (e) => {\r\n    \/\/ Convertir scroll vertical en horizontal\r\n    if (e.deltaY !== 0) {\r\n      e.preventDefault();\r\n      slider.scrollLeft += e.deltaY;\r\n    }\r\n  }, { passive: false });\r\n}\r\n<\/script>\r\n\r\n<script src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyDAWB-IoGllEkxg2_KKapDb1scM1_ODz1E&callback=initApp\" async defer><\/script>\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Think outside the box: unique and surprising experiences to experience Lyon in a different way.<\/p>","protected":false},"author":1,"featured_media":14817,"parent":0,"menu_order":60,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-6678","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Activit\u00e9s Insolites sur Lyon<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jevisitelyon.com\/en\/unusual-activities-in-lyon\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Activit\u00e9s Insolites sur Lyon\" \/>\n<meta property=\"og:description\" content=\"Sortez du cadre : des exp\u00e9riences uniques et surprenantes pour vivre Lyon autrement.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jevisitelyon.com\/en\/unusual-activities-in-lyon\/\" \/>\n<meta property=\"og:site_name\" content=\"Je Visite Lyon\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-06T08:21:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/12\/le-beer-spa-a-lyon-une-experience-de-detente-unique.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"600\" \/>\n\t<meta property=\"og:image:height\" content=\"484\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jevisitelyon.com\\\/activites-insolites-sur-lyon\\\/\",\"url\":\"https:\\\/\\\/jevisitelyon.com\\\/activites-insolites-sur-lyon\\\/\",\"name\":\"Activit\u00e9s Insolites sur Lyon\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jevisitelyon.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jevisitelyon.com\\\/activites-insolites-sur-lyon\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/jevisitelyon.com\\\/activites-insolites-sur-lyon\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jevisitelyon.com\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/le-beer-spa-a-lyon-une-experience-de-detente-unique.webp\",\"datePublished\":\"2024-02-23T15:06:07+00:00\",\"dateModified\":\"2026-03-06T08:21:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jevisitelyon.com\\\/activites-insolites-sur-lyon\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jevisitelyon.com\\\/activites-insolites-sur-lyon\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/jevisitelyon.com\\\/activites-insolites-sur-lyon\\\/#primaryimage\",\"url\":\"https:\\\/\\\/jevisitelyon.com\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/le-beer-spa-a-lyon-une-experience-de-detente-unique.webp\",\"contentUrl\":\"https:\\\/\\\/jevisitelyon.com\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/le-beer-spa-a-lyon-une-experience-de-detente-unique.webp\",\"width\":600,\"height\":484},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jevisitelyon.com\\\/activites-insolites-sur-lyon\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/jevisitelyon.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Activit\u00e9s Insolites sur Lyon\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jevisitelyon.com\\\/#website\",\"url\":\"https:\\\/\\\/jevisitelyon.com\\\/\",\"name\":\"Visiter Lyon\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/jevisitelyon.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jevisitelyon.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jevisitelyon.com\\\/#organization\",\"name\":\"Je visite Lyon\",\"url\":\"https:\\\/\\\/jevisitelyon.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/jevisitelyon.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/jevisitelyon.com\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/logo-visitonslyon.png\",\"contentUrl\":\"https:\\\/\\\/jevisitelyon.com\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/logo-visitonslyon.png\",\"width\":260,\"height\":260,\"caption\":\"Je visite Lyon\"},\"image\":{\"@id\":\"https:\\\/\\\/jevisitelyon.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Unusual Activities in Lyon","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jevisitelyon.com\/en\/unusual-activities-in-lyon\/","og_locale":"en_GB","og_type":"article","og_title":"Activit\u00e9s Insolites sur Lyon","og_description":"Sortez du cadre : des exp\u00e9riences uniques et surprenantes pour vivre Lyon autrement.","og_url":"https:\/\/jevisitelyon.com\/en\/unusual-activities-in-lyon\/","og_site_name":"Je Visite Lyon","article_modified_time":"2026-03-06T08:21:32+00:00","og_image":[{"width":600,"height":484,"url":"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/12\/le-beer-spa-a-lyon-une-experience-de-detente-unique.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/jevisitelyon.com\/activites-insolites-sur-lyon\/","url":"https:\/\/jevisitelyon.com\/activites-insolites-sur-lyon\/","name":"Unusual Activities in Lyon","isPartOf":{"@id":"https:\/\/jevisitelyon.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jevisitelyon.com\/activites-insolites-sur-lyon\/#primaryimage"},"image":{"@id":"https:\/\/jevisitelyon.com\/activites-insolites-sur-lyon\/#primaryimage"},"thumbnailUrl":"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/12\/le-beer-spa-a-lyon-une-experience-de-detente-unique.webp","datePublished":"2024-02-23T15:06:07+00:00","dateModified":"2026-03-06T08:21:32+00:00","breadcrumb":{"@id":"https:\/\/jevisitelyon.com\/activites-insolites-sur-lyon\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jevisitelyon.com\/activites-insolites-sur-lyon\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/jevisitelyon.com\/activites-insolites-sur-lyon\/#primaryimage","url":"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/12\/le-beer-spa-a-lyon-une-experience-de-detente-unique.webp","contentUrl":"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/12\/le-beer-spa-a-lyon-une-experience-de-detente-unique.webp","width":600,"height":484},{"@type":"BreadcrumbList","@id":"https:\/\/jevisitelyon.com\/activites-insolites-sur-lyon\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/jevisitelyon.com\/"},{"@type":"ListItem","position":2,"name":"Activit\u00e9s Insolites sur Lyon"}]},{"@type":"WebSite","@id":"https:\/\/jevisitelyon.com\/#website","url":"https:\/\/jevisitelyon.com\/","name":"Visit Lyon","description":"","publisher":{"@id":"https:\/\/jevisitelyon.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jevisitelyon.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/jevisitelyon.com\/#organization","name":"I&#039;m visiting Lyon","url":"https:\/\/jevisitelyon.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/jevisitelyon.com\/#\/schema\/logo\/image\/","url":"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/02\/logo-visitonslyon.png","contentUrl":"https:\/\/jevisitelyon.com\/wp-content\/uploads\/2024\/02\/logo-visitonslyon.png","width":260,"height":260,"caption":"Je visite Lyon"},"image":{"@id":"https:\/\/jevisitelyon.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/jevisitelyon.com\/en\/wp-json\/wp\/v2\/pages\/6678","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jevisitelyon.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/jevisitelyon.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/jevisitelyon.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jevisitelyon.com\/en\/wp-json\/wp\/v2\/comments?post=6678"}],"version-history":[{"count":137,"href":"https:\/\/jevisitelyon.com\/en\/wp-json\/wp\/v2\/pages\/6678\/revisions"}],"predecessor-version":[{"id":23456,"href":"https:\/\/jevisitelyon.com\/en\/wp-json\/wp\/v2\/pages\/6678\/revisions\/23456"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jevisitelyon.com\/en\/wp-json\/wp\/v2\/media\/14817"}],"wp:attachment":[{"href":"https:\/\/jevisitelyon.com\/en\/wp-json\/wp\/v2\/media?parent=6678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}