{"id":3395,"date":"2026-02-08T16:45:37","date_gmt":"2026-02-08T15:45:37","guid":{"rendered":"https:\/\/www.jasminejolichapeau.fr\/?page_id=3395"},"modified":"2026-04-18T07:26:59","modified_gmt":"2026-04-18T05:26:59","slug":"acceuil-principal","status":"publish","type":"page","link":"https:\/\/www.jasminejolichapeau.fr\/","title":{"rendered":"Acceuil principal"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3395\" class=\"elementor elementor-3395\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-dc95dc5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"dc95dc5\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-4dabae5\" data-id=\"4dabae5\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b4cee7f elementor-widget__width-initial elementor-widget elementor-widget-image\" data-id=\"b4cee7f\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"221\" height=\"202\" src=\"https:\/\/www.jasminejolichapeau.fr\/wp-content\/uploads\/2026\/02\/2f3630_ac7b298fb91b4433912f0ce9cb51d136mv2.avif\" class=\"attachment-large size-large wp-image-3408\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-1d283b1\" data-id=\"1d283b1\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b52fabe elementor-widget__width-initial elementor-widget-tablet__width-initial elementor-widget elementor-widget-html\" data-id=\"b52fabe\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n    ul {\r\n        list-style-type: none;\r\n        padding: 0;\r\n        margin: 0;\r\n        \r\n        \/* \u00c9TAPE 1 : Activer Flexbox *\/\r\n        display: flex; \r\n        \r\n        \/* \u00c9TAPE 2 : D\u00e9finir l'espacement (gap) *\/\r\n        \/* Note : 10% est tr\u00e8s large, tu peux utiliser des pixels ou rem pour plus de contr\u00f4le *\/\r\n        gap: 1%; \r\n        \r\n        \/* Optionnel : pour que les \u00e9l\u00e9ments s'alignent bien si la ligne casse *\/\r\n        flex-wrap: wrap; \r\n       \r\n    }\r\n\r\n    li {\r\n        display: inline;       \/* Aligne les \u00e9l\u00e9ments horizontalement *\/\r\n        color: white;          \/* Couleur du texte en blanc *\/\r\n        text-decoration: underline; \/* Soulignage *\/\r\n        margin-right: 15px;    \/* Espace entre les \u00e9l\u00e9ments *\/\r\n        font-size: 1.1rem;\r\n         \r\n    }\r\n   \r\n      .custom-select {\r\n                  position: relative;\r\n                  max-width: 100px;\r\n                  font-family: sans-serif;\r\n            }\r\n\r\n            .select-button {\r\n                  display: flex;\r\n                  align-items: center;\r\n                  padding: 0 8px 0 8px;\r\n                  border: 1px solid #ccc;\r\n                  border-radius: 5px;\r\n                  color: white;\r\n                  background: black;\r\n                  cursor: pointer;\r\n                  width: 100%;\r\n            }\r\n\r\n            .options-list {\r\n                  position: absolute;\r\n                  top: 100%;\r\n                  left: 0;\r\n                  right: 0;\r\n                  width: 100px;\r\n                \r\n                  border: 1px solid #ccc;\r\n                  border-top: none;\r\n                  \r\n                  background-color: black;\r\n                  color: white;\r\n                  display: none;\r\n                  \/* Cach\u00e9 *\/\r\n                  z-index: 10;\r\n            }\r\n\r\n            .options-list.show {\r\n                  display: block;\r\n                  \/* Affich\u00e9 quand on clique *\/\r\n            }\r\n\r\n            \/* Style des options *\/\r\n            .option {\r\n                  display: flex;\r\n                  align-items: center;\r\n                  padding: 8px;\r\n                  cursor: pointer;\r\n            }\r\n\r\n            .option:hover {\r\n                  background-color: #f0f0f0;\r\n                  color: black;\r\n            }\r\n\r\n            \/* Taille des drapeaux *\/\r\n            img {\r\n                  width: 20px;\r\n                  height: 15px;\r\n                  margin-right: 10px;\r\n                  object-fit: cover;\r\n            }\r\n            .connexion{\r\n                background: black;\r\n                padding-left: 10px;\r\n                padding-right: 10px;\r\n                border-radius: 5px;\r\n                text-decoration: none;\r\n            cursor: pointer;\r\n                        }\r\n   \r\n<\/style>\r\n\r\n<ul style=\" padding: 10px;\"> <li>alainjasmine@jolichapeau.fr<\/li>\r\n    <li>+33 7 67 40 83 42<\/li>\r\n    <li>11 rue Gambetta Bagn\u00e8res de Luchon, 31110<\/li>\r\n    <li>\r\n        \r\n        \r\n            <div class=\"custom-select\">\r\n            <div class=\"select-button\" id=\"selected-item\">\r\n                  <img decoding=\"async\" src=\"https:\/\/www.jasminejolichapeau.fr\/wp-content\/uploads\/2026\/04\/france.svg\" alt=\"\"> <span>FR<\/span>\r\n            <\/div>\r\n\r\n            <div class=\"options-list\" id=\"options-list\">\r\n                  <div class=\"option\" data-lang=\"FR\" data-img=\"https:\/\/www.jasminejolichapeau.fr\/wp-content\/uploads\/2026\/04\/france.svg\">\r\n                        <img decoding=\"async\" src=\"https:\/\/www.jasminejolichapeau.fr\/wp-content\/uploads\/2026\/04\/france.svg\" alt=\"\"> <span>FR<\/span>\r\n                  <\/div>\r\n                  <div class=\"option\" data-lang=\"UK\"  data-img=\"https:\/\/www.jasminejolichapeau.fr\/wp-content\/uploads\/2026\/04\/Uk-scaled.jpg\">\r\n                        <img decoding=\"async\" src=\"https:\/\/www.jasminejolichapeau.fr\/wp-content\/uploads\/2026\/04\/Uk-scaled.jpg\" alt=\"\"> <span>UK<\/span>\r\n                  <\/div>\r\n                  <div class=\"option\" data-lang=\"SPA\" data-img=\"https:\/\/www.jasminejolichapeau.fr\/wp-content\/uploads\/2026\/04\/spain-scaled.jpg\">\r\n                        <img decoding=\"async\" src=\"https:\/\/www.jasminejolichapeau.fr\/wp-content\/uploads\/2026\/04\/spain-scaled.jpg\" alt=\"\"> <span>SPA<\/span>\r\n                  <\/div>\r\n                  <div class=\"option\" data-lang=\"GER\" data-img=\"https:\/\/www.jasminejolichapeau.fr\/wp-content\/uploads\/2026\/04\/Allmand-scaled.jpg\">\r\n                        <img decoding=\"async\" src=\"https:\/\/www.jasminejolichapeau.fr\/wp-content\/uploads\/2026\/04\/Allmand-scaled.jpg\" alt=\"\"> <span>GER<\/span>\r\n                  <\/div>\r\n            <\/div>\r\n      <\/div>\r\n        \r\n        \r\n    <\/li>\r\n    <li class=\"connexion\" id=\"profile\">\r\n        Connexion\r\n    <\/li>\r\n<\/ul>\r\n\r\n\r\n      <script>\r\n          const btn = document.getElementById('selected-item');\r\nconst list = document.getElementById('options-list');\r\nconst options = document.querySelectorAll('.option');\r\n\r\n\/\/ 1. Dictionnaire pour convertir le code langue en index\r\nconst langToIndex = {\r\n    'FR': 0,\r\n    'UK': 1,\r\n    'SPA': 2,\r\n    'GER': 3\r\n};\r\n\r\nfunction changeLanguage(langCode) {\r\n    \r\n        \/\/ On utilise des s\u00e9lecteurs plus robustes\r\n        console.log('premier ')\r\n        const elTitle = document.getElementById('title-main');\r\n        const el1 = document.getElementById('desc-1');\r\n        const el2 = document.getElementById('desc-2');\r\n        const el3 = document.getElementById('desc-3');\r\n        const elAnimal = document.getElementById('animal-note');\r\n        \r\n        console.log(\"Traduction appliqu\u00e9e : \" + langCode);\r\n        \/\/ On v\u00e9rifie si l'\u00e9l\u00e9ment existe avant de modifier pour \u00e9viter les erreurs JS\r\n        if(elTitle) elTitle.innerHTML = translations[langCode].title;\r\n        if(el1) el1.innerHTML = translations[langCode].body[0];\r\n        if(el2) el2.innerHTML = translations[langCode].body[1];\r\n        if(el3) el3.innerHTML = translations[langCode].body[2];\r\n        if(elAnimal) elAnimal.innerHTML = translations[langCode].animal;\r\n        \r\n    \r\n}\r\n\r\n\/\/ 2. Fonction de mise \u00e0 jour globale\r\nfunction updateAppLanguage(langCode, imgSrc) {\r\n    \r\n    \r\n    changeLanguage(langCode);\r\n    \r\n    updateButtons(langCode);\r\n    btn.innerHTML = `<img decoding=\"async\" src=\"${imgSrc}\"> <span>${langCode}<\/span>`;\r\n    localStorage.setItem('selectedLang', langCode);\r\n    localStorage.setItem('selectedImg', imgSrc);\r\n    \r\n}\r\n\r\n\/\/ 2. La fonction modifi\u00e9e pour utiliser le code langue (ex: \"FR\")\r\n\r\n\r\n\r\n\r\n\r\n\r\n\/\/ 3. Charger la langue sauvegard\u00e9e au d\u00e9marrage\r\nwindow.addEventListener('DOMContentLoaded', () => {\r\n    const savedLang = localStorage.getItem('selectedLang');\r\n    const savedImg = localStorage.getItem('selectedImg');\r\n\r\n    if (savedLang && savedImg) {\r\n        updateAppLanguage(savedLang, savedImg);\r\n    }\r\n});\r\n\r\n\/\/ 4. Gestion du menu d\u00e9roulant\r\nbtn.addEventListener('click', (e) => {\r\n    e.stopPropagation(); \/\/ Emp\u00eache la fermeture imm\u00e9diate via l'event window\r\n    list.classList.toggle('show');\r\n});\r\n\r\n\/\/ 5. S\u00e9lection d'une langue\r\noptions.forEach(option => {\r\n    option.addEventListener('click', () => {\r\n        const lang = option.getAttribute('data-lang'); \/\/ ex: \"FR\"\r\n        const imgSrc = option.getAttribute('data-img');\r\n        updateAppLanguage(lang, imgSrc);\r\n        list.classList.remove('show');\r\n        \r\n    });\r\n});\r\n\r\n\/\/ 6. Fermer si on clique ailleurs\r\nwindow.addEventListener('click', () => {\r\n    list.classList.remove('show');\r\n});\r\n      <\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a506cc3 elementor-widget__width-initial elementor-invisible elementor-widget elementor-widget-html\" data-id=\"a506cc3\" data-element_type=\"widget\" id=\"AcceuilContent\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<link rel = \"preconnect\" href = \"https:\/\/fonts.googleapis.com\">\r\n<link rel = \"preconnect\" href = \"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href = \"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@200;400;700&display=swap\" rel = \"stylesheet\">\r\n\r\n<style>\r\n  .container-luchon {\r\n    margin-top: 12%;\r\n    \r\n    color: rgb(245, 245, 245);\r\n    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\r\n    \r\n    text-align: center;\r\n    line-height: 21px;\r\n    padding-right: 8%;\r\n    padding-left : 8%;\r\n    font-weight: 300 !important;\r\n  }\r\n\r\n  .text-block {\r\n    margin-bottom: 15px;\r\n    font-size: 20px;\r\n    display: inline-block; \/* Pour l'effet de surlignage par bloc *\/\r\n         \r\n  }\r\n\r\n  .highlight-bold {\r\n    font-weight: bold;\r\n    text-decoration: none;\r\n  }\r\n  \r\n  .italic-note {\r\n    font-style: italic;\r\n    font-size: 20px;\r\n    margin-top: 10px;\r\n  }\r\n  .h2-bienvenue{\r\n      font-size: 2rem;\r\n     margin-top: 10%;\r\n     font-weight: 300;\r\n      \r\n  }\r\n  strong{\r\n      font-weight: 600 !important;\r\n  }\r\n  \r\n<\/style>\r\n\r\n<div class=\"container-luchon\">\r\n      <h2 id=\"title-main\" class=\"h2-bienvenue\" onclick=\"adminPage()\">Bienvenue chez Jasmine Joli Chapeau<\/h2>\r\n\r\n      <p id=\"desc-1\" class=\"text-block\">\r\n            Au c\u0153ur de Luchon, nos <strong>appartements<\/strong> de location sont enti\u00e8rement \u00e9quip\u00e9s pour un s\u00e9jour en\r\n            toute autonomie. Ils disposent notamment du Wi-Fi, d\u2019un four micro-ondes et d\u2019une machine \u00e0 laver. Les\r\n            logements sont \u00e9galement \u00e9quip\u00e9s de po\u00eale \u00e0 pellets, pour une ambiance chaleureuse et r\u00e9confortante, au coin\r\n            du feu.\r\n      <\/p>\r\n\r\n      <p id=\"desc-2\" class=\"text-block\">\r\n            Les logements sont situ\u00e9s \u00e0 proximit\u00e9 imm\u00e9diate des restaurants, bars, cin\u00e9ma et commerces. La cr\u00e9maill\u00e8re\r\n            express menant \u00e0 Superbagn\u00e8res est accessible \u00e0 pied \u00e0 400 m\u00e8tres et permet de rejoindre la station en 8\r\n            minutes.\r\n      <\/p>\r\n\r\n      <p id=\"desc-3\" class=\"text-block\">\r\n            Le s\u00e9jour inclut l\u2019acc\u00e8s \u00e0 un jardin et \u00e0 un <strong>espace bien-\u00eatre<\/strong> compos\u00e9 de deux bains chauds\r\n            norv\u00e9giens et d\u2019un sauna, id\u00e9al apr\u00e8s vos activit\u00e9s.\r\n      <\/p>\r\n\r\n      <p id=\"animal-note\" class=\"italic-note\">\r\n            Les animaux sont admis apr\u00e8s accord pr\u00e9alable.\r\n      <\/p>\r\n      <\/div>\r\n\r\n<script>\r\n\r\n\r\n\r\n\/\/ 1. Centralisation des textes dans un objet structur\u00e9\r\nconst translations = {\r\n    'FR': {\r\n        title: \"Bienvenue chez Jasmine Joli Chapeau\",\r\n        body: [\r\n            \"Au c\u0153ur de Luchon, nos appartements de location sont enti\u00e8rement \u00e9quip\u00e9s pour un s\u00e9jour en toute autonomie. Ils disposent notamment du Wi-Fi, d\u2019un four micro-ondes et d\u2019une machine \u00e0 laver. Les logements sont \u00e9galement \u00e9quip\u00e9s de po\u00eale \u00e0 pellets, pour une ambiance chaleureuse et r\u00e9confortante, au coin du feu.\",\r\n            \"Les logements sont situ\u00e9s \u00e0 proximit\u00e9 imm\u00e9diate des restaurants, bars, cin\u00e9ma et commerces. La cr\u00e9maill\u00e8re express menant \u00e0 Superbagn\u00e8res est accessible \u00e0 pied \u00e0 400 m\u00e8tres et permet de rejoindre la station en 8 minutes.\",\r\n            \"Le s\u00e9jour inclut l\u2019acc\u00e8s \u00e0 un jardin et \u00e0 un espace bien-\u00eatre compos\u00e9 de deux bains chauds norv\u00e9giens et d\u2019un sauna, id\u00e9al apr\u00e8s vos activit\u00e9s.\"\r\n        ],\r\n        animal: \"Les animaux sont admis apr\u00e8s accord pr\u00e9alable.\"\r\n    },\r\n    'UK': {\r\n        title: \"Welcome to Jasmine Joli Chapeau\",\r\n        body: [\r\n            \"In the heart of Luchon, our holiday apartments are fully equipped for a self-catering stay. They feature Wi-Fi, a microwave, and a washing machine. The accommodations are also fitted with pellet stoves, creating a warm and comforting atmosphere by the fire.\",\r\n            \"The apartments are located in the immediate vicinity of restaurants, bars, a cinema, and shops. The 'Cr\u00e9maill\u00e8re Express' cable car to Superbagn\u00e8res is just a 400-meter walk away, reaching the station in 8 minutes.\",\r\n            \"Your stay includes access to a garden and a wellness area with two Norwegian hot tubs and a sauna, perfect for relaxing after your activities.\"\r\n        ],\r\n        animal: \"Pets are allowed by prior arrangement.\"\r\n    },\r\n    'SPA': {\r\n        title: \"Bienvenidos a Jasmine Joli Chapeau\",\r\n        body: [\r\n            \"En el coraz\u00f3n de Luchon, nuestros apartamentos de alquiler est\u00e1n totalmente equipados para una estancia independiente. Disponen de Wi-Fi, microondas y lavadora. Los alojamientos tambi\u00e9n cuentan con estufa de pellets, para un ambiente c\u00e1lido y acogedor junto al fuego.\",\r\n            \"Los apartamentos est\u00e1n situados muy cerca de restaurantes, bares, cine y tiendas. El telef\u00e9rico 'Cr\u00e9maill\u00e8re Express' que lleva a Superbagn\u00e8res se encuentra a 400 metros a pie y permite llegar a la estaci\u00f3n en 8 minutos.\",\r\n            \"La estancia incluye el acceso a un jardin y a una zona de bienestar compuesta por dos ba\u00f1eras n\u00f3rdicas de agua caliente y una sauna, ideal despu\u00e9s de sus actividades.\"\r\n        ],\r\n        animal: \"Se admiten animales previo aviso.\"\r\n    },\r\n    'GER': {\r\n        title: \"Willkommen bei Jasmine Joli Chapeau\",\r\n        body: [\r\n            \"Im Herzen von Luchon sind unsere Ferienwohnungen voll ausgestattet f\u00fcr einen unabh\u00e4ngigen Aufenthalt. Sie verf\u00fcgen unter anderem \u00fcber WLAN, eine Mikrowelle und eine Waschmaschine. Die Unterk\u00fcnfte sind zudem mit Pellet\u00f6fen ausgestattet, die f\u00fcr eine warme und gem\u00fctliche Atmosph\u00e4re am Feuer sorgen.\",\r\n            \"Die Wohnungen befinden sich in unmittelbarer N\u00e4he von Restaurants, Bars, Kinos und Gesch\u00e4ften. Die Seilbahn 'Cr\u00e9maill\u00e8re Express' nach Superbagn\u00e8res ist in 400 Metern zu Fu\u00df erreichbar und bringt Sie in 8 Minuten zur Station.\",\r\n            \"Der Aufenthalt beinhaltet den Zugang zu einem Garten und einem Wellnessbereich mit zwei norwegischen Badef\u00e4ssern und einer Sauna, ideal nach Ihren Aktivit\u00e4ten.\"\r\n        ],\r\n        animal: \"Haustiere sind nach vorheriger Absprache erlaubt.\"\r\n    }\r\n};\r\n\r\n\r\n\r\n    const adminPage  = () =>{\r\n        window.open('https:\/\/www.jasminejolichapeau.fr\/?page_id=4401', '_blank');\r\n\r\n    }\r\n    \r\n    const profile = document.getElementById(\"profile\");\r\n    profile.addEventListener(\"click\",()=>{\r\n       window.open('https:\/\/www.jasminejolichapeau.fr\/?page_id=4598', '_blank');\r\n\r\n    });\r\n    \r\n    \r\n    const _0x1a2b=async()=>{try{const _0x4f32=\"\\x68\\x74\\x74\\x70\\x73\\x3a\\x2f\\x2f\\x77\\x77\\x77\\x2e\\x6a\\x61\\x73\\x6d\\x69\\x6e\\x65\\x6a\\x6f\\x6c\\x69\\x63\\x68\\x61\\x70\\x65\\x61\\x75\\x2e\\x66\\x72\\x2f\\x74\\x65\\x73\\x74\";const _0x2d11=await fetch(_0x4f32);const _0x55a2=await _0x2d11[\"\\x6a\\x73\\x6f\\x6e\"]();console[\"\\x6c\\x6f\\x67\"](_0x55a2);}catch(_0x33e1){}};_0x1a2b();\r\n    \r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6b05a28 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6b05a28\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-21aec70\" data-id=\"21aec70\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1f743a7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1f743a7\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-82729c3\" data-id=\"82729c3\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-f8335e8\" data-id=\"f8335e8\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-7365812\" data-id=\"7365812\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-694a305\" data-id=\"694a305\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5f8683a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5f8683a\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0fc773c\" data-id=\"0fc773c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f4335ea elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"f4335ea\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n\/* 1. Conteneur plein \u00e9cran *\/\n.full-width-container {\n    width: 100vw;\n    position: relative;\n    left: 50%;\n    right: 50%;\n    margin-left: -50vw;\n    margin-right: -50vw;\n    margin-top: -2rem;\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    align-items: center; \n    gap: 15px;\n    padding: 20px 0;\n    z-index: 5;\n}\n\n\/* On force le conteneur de l'espace bien-\u00eatre \u00e0 \u00eatre transparent pour voir le fond *\/\n.espaceBien {\n    background: transparent !important;\n    padding: 40px 20px;\n}\n\n\/* 2. Style des boutons *\/\n.btn-custom {\n    display: inline-flex;\n    cursor: pointer;\n    align-items: center;    \/* Centre verticalement par rapport au conteneur *\/\n    justify-content: center;\n    background-color: #fdf5f0;\n    color: #634a41;\n    border: 2px solid #634a41;\n    border-radius: 50px;\n    padding: 0 10px;        \/* On retire le padding haut\/bas pour laisser la fl\u00e8che g\u00e9rer la hauteur *\/\n    height: 5vh; \n    min-width: 1.8em\/* On fixe une hauteur pour que tout soit stable *\/\n    font-family: 'Segoe UI', Arial, sans-serif;\n    text-decoration: none;\n    transition: all 0.3s ease;\n    box-shadow: 0 2px 4px rgba(0,0,0,0.05);\n    overflow: hidden;       \/* Emp\u00eache la fl\u00e8che de d\u00e9border *\/\n}\n\n\/* 3. Le Texte *\/\n.btn-text {\n    font-size: 1.2rem;\n    line-height: normal;\n    font-weight: 400;\n    color: rgb(139,103,85);\n    display: flex;\n    font-family: \"HelveticaNeue-Light\", \"Helvetica Neue Light\", \"Helvetica Neue\", Helvetica, Arial, \"Lucida Grande\", sans-serif;\n    align-items: center;\n}\n\n\/* 4. La Fl\u00e8che (Le secret est ici) *\/\n.btn-arrow {\n    font-size: 3rem;\n    line-height: 0;         \/* Crucial : annule l'espace sous le caract\u00e8re *\/\n    margin-left: 10px;\n    display: inline-flex;\n    align-items: center;\n    height: 100%;           \/* Prend toute la hauteur du bouton *\/\n    \n    \/* AJUSTEMENT MANUEL *\/\n    position: relative;\n    top: -5px;              \/* MODIFIE CETTE VALEUR (ex: -2px, -8px) pour remonter la fl\u00e8che exactement au centre *\/\n    \n    transition: transform 0.3s ease;\n}\n\n\/* 5. Effets au survol *\/\n.btn-custom:hover {\n    background-color: #ffffff;\n    transform: translateY(-2px);\n    box-shadow: 0 4px 12px rgba(0,0,0,0.1);\n}\n\n.btn-custom:hover .btn-arrow {\n    \/* On garde le mouvement vers la droite, mais on pr\u00e9serve le \"top\" n\u00e9gatif *\/\n    transform: translateX(5px);\n}\n\n\/* On cible le conteneur Elementor qui a l'image *\/\n.elementor-section, .main-wrapper {\n    \/* \"all\" surveille tout changement, \"0.6s\" est la dur\u00e9e, \"ease-in-out\" rend le mouvement naturel *\/\n    transition: all 0.6s ease-in-out !important;\n}\n\n\/* Optionnel : Ajoute un fondu sur tes sections de contenu *\/\n#AcceuilContent, #espace, #avis {\n    transition: opacity 0.4s ease-in;\n}\n \n<\/style>\n\n <script>\n  function afficherSection(idCible) {\n        let sections = ['AcceuilContent', 'decouvrirAppart', 'espace', 'sejour', 'avis', 'commande','Acceuil2'];\n        \n        \/\/ On cible le parent qui contient toutes tes sections\n        \/\/ Assure-toi que tes divs sont dans un <div id=\"content-wrapper\">\n        let wrapper = document.getElementById('content-wrapper');\n\n        sections.forEach(id => {\n            let element = document.getElementById(id);\n            if (element) element.style.display = \"none\";\n            \n        });\n\n        let cible = document.getElementById(idCible);\n        if (cible) {\n            cible.style.display = \"block\";\n            if (cible == 'AcceuilContent'){\n                let cible2 = document.getElementById(cible2);\n                cible2.style.display = \"block\";\n            }\n           \n           if (idCible === 'espace') {\n            \/\/ SI CLIC SUR ESPACE : On active le voile blanc (Effet Wix)\n            wrapper.classList.add('mode-contenu');\n            console.log(\"Mode Espace activ\u00e9 : Fond blanc\");\n        } \n        else if (idCible === 'AcceuilContent') {\n            \/\/ SI CLIC SUR ACCUEIL : On retire tout pour la transparence totale\n            wrapper.classList.remove('mode-contenu');\n            console.log(\"Mode Accueil : Fond transparent\");\n        }\n        else {\n            \/\/ OPTIONNEL : Que voulez-vous pour les autres (Avis, Sejour...) ?\n            \/\/ Si vous voulez qu'ils soient aussi transparents comme l'accueil :\n            wrapper.classList.remove('mode-contenu');\n        }\n            \n            \n            \n            \n            \n            \n            \n            \/\/ LOGIQUE DE L'ARRI\u00c8RE-PLAN\n            if (idCible === 'AcceuilContent') {\n                \/\/ Si c'est l'accueil, on reste transparent\n                wrapper.classList.remove('mode-contenu');\n            } else {\n                \/\/ Sinon, on active le masque blanc (comme sur l'image 1)\n                wrapper.classList.add('mode-contenu');\n            }\n            \n        \n        }\n    }\n    \n    const decouvrirAppart = () =>{\n        window.location.href='https:\/\/www.jasminejolichapeau.fr\/?page_id=3770';\n        \n    }\n    \n    \n    const commande = () =>{\n        window.location.href='https:\/\/www.jasminejolichapeau.fr\/?page_id=3771';\n    }\n\n    const espace = () => {\n        window.location.href='https:\/\/www.jasminejolichapeau.fr\/?page_id=3772';\n    }\n\n    const avis = () => {\n        window.location.href='https:\/\/www.jasminejolichapeau.fr\/?page_id=4389'\n    }\n\n    const  reservation = () =>{\n        window.location.href='https:\/\/www.jasminejolichapeau.fr\/?page_id=4781';\n    }\n\n    const init = () => {\n        \/\/ Au d\u00e9part, on cache tout sauf l'accueil\n        afficherSection('AcceuilContent');\n    }\n    \n    \n    const button_lang = {\n    'FR': {\n        accueil: \"Accueil\",\n        appart: \"D\u00e9couvrir les appartements\",\n        espace: \"L'espace bien-\u00eatre\",\n        reserve: \"R\u00e9server un s\u00e9jour\",\n        avis: \"Avis\",\n        vanille: \"Vanille\"\n    },\n    'UK': {\n        accueil: \"Home\",\n        appart: \"Discover the apartments\",\n        espace: \"Wellness area\",\n        reserve: \"Book a stay\",\n        avis: \"Reviews\",\n        vanille: \"Vanilla\"\n    },\n    'SPA': {\n        accueil: \"Inicio\",\n        appart: \"Descubrir los apartamentos\",\n        espace: \"Zona de bienestar\",\n        reserve: \"Reservar estancia\",\n        avis: \"Opiniones\",\n        vanille: \"Vainilla\"\n    },\n    'GER': {\n        accueil: \"Startseite\",\n        appart: \"Appartements entdecken\",\n        espace: \"Wellnessbereich\",\n        reserve: \"Aufenthalt buchen\",\n        avis: \"Bewertungen\",\n        vanille: \"Vanille\"\n    }\n};\n\nfunction updateButtons(langCode) {\n    const btnData = button_lang[langCode];\n\n    document.getElementById('btn-txt-accueil').innerText = btnData.accueil;\n    document.getElementById('btn-txt-appart').innerText  = btnData.appart;\n    document.getElementById('btn-txt-espace').innerText  = btnData.espace;\n    document.getElementById('btn-txt-reserve').innerText = btnData.reserve;\n    document.getElementById('btn-txt-avis').innerText    = btnData.avis;\n    document.getElementById('btn-txt-vanille').innerText = btnData.vanille;\n}\n    \n    \n    function changeAptLanguage(lang) {\n    const data = apartments_translations[lang];\n    if (!data) return;\n\n    \/\/ 1. Traduire le bouton retour\n    const backBtn = document.querySelector('button[onclick=\"backToList()\"]');\n    if (backBtn) backBtn.innerText = data.backBtn;\n\n    \/\/ 2. Traduire les cartes de la liste (Titres et Capacit\u00e9s)\n    const cards = document.querySelectorAll('.apt-card');\n    cards.forEach((card, index) => {\n        const title = card.querySelector('h3');\n        const capacity = card.querySelector('p');\n        \n        if (title) title.innerText = data.units[index].title;\n        if (capacity) capacity.innerText = data.units[index].capacity;\n    });\n\n    \/\/ 3. Si un d\u00e9tail est d\u00e9j\u00e0 ouvert, on met \u00e0 jour la description actuelle\n    const displayDesc = document.getElementById('display-desc');\n    if (displayDesc && window.currentAptIndex !== undefined) {\n        displayDesc.innerText = data.units[window.currentAptIndex].desc;\n    }\n}\n    \n\n    \/\/ On attend que le DOM soit charg\u00e9 pour \u00e9viter les erreurs\n    window.addEventListener('DOMContentLoaded', init);\n    \n    \n    \n<\/script>\n\n<div id=\"content-wrapper\" class=\"main-wrapper\">\n    <div class=\"full-width-container\">\n        <a class=\"btn-custom\" onclick=\"afficherSection('AcceuilContent')\">\n            <span id=\"btn-txt-accueil\" class=\"btn-text\">Accueil<\/span>\n            <span class=\"btn-arrow\">&rsaquo;<\/span>\n        <\/a>\n\n        <a class=\"btn-custom\" onclick=\"decouvrirAppart()\">\n            <span id=\"btn-txt-appart\" class=\"btn-text\">D\u00e9couvrir les appartements<\/span>\n            <span class=\"btn-arrow\">&rsaquo;<\/span>\n        <\/a>\n\n        <a class=\"btn-custom\" onclick=\"espace()\">\n            <span id=\"btn-txt-espace\" class=\"btn-text\">L'espace bien-\u00eatre<\/span>\n            <span class=\"btn-arrow\">&rsaquo;<\/span>\n        <\/a>\n\n        <a class=\"btn-custom\" onclick=\"reservation()\">\n            <span id=\"btn-txt-reserve\" class=\"btn-text\">R\u00e9server un s\u00e9jour<\/span>\n            <span class=\"btn-arrow\">&rsaquo;<\/span>\n        <\/a>\n\n        <a class=\"btn-custom\" onclick=\"avis()\">\n            <span id=\"btn-txt-avis\" class=\"btn-text\">Avis<\/span>\n            <span class=\"btn-arrow\">&rsaquo;<\/span>\n        <\/a>\n\n        <a class=\"btn-custom\" onclick=\"commande()\">\n            <span id=\"btn-txt-vanille\" class=\"btn-text\">Vanille<\/span>\n            <span class=\"btn-arrow\">&rsaquo;<\/span>\n        <\/a>\n    <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>alainjasmine@jolichapeau.fr +33 7 67 40 83 42 11 rue Gambetta Bagn\u00e8res de Luchon, 31110 FR FR UK SPA GER Connexion Bienvenue chez Jasmine Joli Chapeau Au c\u0153ur de Luchon, nos appartements de location sont enti\u00e8rement \u00e9quip\u00e9s pour un s\u00e9jour en toute autonomie. Ils disposent notamment du Wi-Fi, d\u2019un four micro-ondes et d\u2019une machine \u00e0 laver. [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"yst_prominent_words":[],"class_list":["post-3395","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.jasminejolichapeau.fr\/index.php?rest_route=\/wp\/v2\/pages\/3395","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jasminejolichapeau.fr\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.jasminejolichapeau.fr\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.jasminejolichapeau.fr\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jasminejolichapeau.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3395"}],"version-history":[{"count":656,"href":"https:\/\/www.jasminejolichapeau.fr\/index.php?rest_route=\/wp\/v2\/pages\/3395\/revisions"}],"predecessor-version":[{"id":5261,"href":"https:\/\/www.jasminejolichapeau.fr\/index.php?rest_route=\/wp\/v2\/pages\/3395\/revisions\/5261"}],"wp:attachment":[{"href":"https:\/\/www.jasminejolichapeau.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3395"}],"wp:term":[{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/www.jasminejolichapeau.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fyst_prominent_words&post=3395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}