{"id":68668,"date":"2024-09-19T07:44:04","date_gmt":"2024-09-19T07:44:04","guid":{"rendered":"https:\/\/staging-sites.hotelrunner.com\/?post_type=product&#038;p=68668"},"modified":"2026-06-12T12:48:39","modified_gmt":"2026-06-12T09:48:39","slug":"actions-autonomes-autopilot","status":"publish","type":"product","link":"https:\/\/staging-sites.hotelrunner.com\/fr\/produits\/actions-autonomes-autopilot\/","title":{"rendered":"Actions autonomes | Autopilot"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"68668\" class=\"elementor elementor-68668 elementor-68181\" data-elementor-post-type=\"product\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9ff3ca2 e-flex e-con-boxed e-con e-parent\" data-id=\"9ff3ca2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-6a2de2a e-con-full e-flex e-con e-child\" data-id=\"6a2de2a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-dab6462 e-con-full e-flex e-con e-child\" data-id=\"dab6462\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-683b481 e-con-full e-flex e-con e-child\" data-id=\"683b481\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8237ac7 elementor-widget elementor-widget-hr_label_icon hr-gb-active-desktop\" data-id=\"8237ac7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_label_icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t            <div class=\"hr-label icon\">\n                <div class=\"label-icon-wrapper\">\n                                            <img decoding=\"async\" src=\"https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/ai-icon-1.svg\" alt=\"\">\n                                        <span>Actions autonomes | Autopilot<\/span>\n                <\/div>\n            <\/div>\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b6d376b elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"b6d376b\" 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<h2 class=\"elementor-heading-title elementor-size-default\">Transformez votre \u00e9tablissement gr\u00e2ce \u00e0 une automatisation intelligente bas\u00e9e sur l'IA<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-60efd94 elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"60efd94\" 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\tHotelRunner Autopilot est votre plateforme d&rsquo;automatisation intelligente, optimis\u00e9e par l&rsquo;IA, qui red\u00e9finit la mani\u00e8re dont vous g\u00e9rez les tarifs, la distribution, les paiements et les op\u00e9rations quotidiennes.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ba5be9d e-con-full e-flex e-con e-child\" data-id=\"ba5be9d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-7e70bfd e-con-full e-flex e-con e-child\" data-id=\"7e70bfd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-53eab2d elementor-widget-mobile__width-initial elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"53eab2d\" 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\tAugmentation de l&rsquo;ADR de\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-31406ea elementor-widget elementor-widget-text-editor\" data-id=\"31406ea\" 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\t7.5%\t\t\t\t\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-9ac04b8 e-con-full e-flex e-con e-child\" data-id=\"9ac04b8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8941fe2 elementor-widget-mobile__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"8941fe2\" 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\tActions par jour\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-6d432c6 elementor-widget elementor-widget-text-editor\" data-id=\"6d432c6\" 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+700\t\t\t\t\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-2ccf079 e-con-full e-flex e-con e-child\" data-id=\"2ccf079\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5d40b13 elementor-widget-mobile__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"5d40b13\" 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\tD&rsquo;actions d&rsquo;augmentation tarifaire\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-8dc534b elementor-widget elementor-widget-text-editor\" data-id=\"8dc534b\" 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% 96\t\t\t\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<div class=\"elementor-element elementor-element-8e2ec4b e-flex e-con-boxed e-con e-child\" data-id=\"8e2ec4b\" 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-1b6c2e3 elementor-widget__width-auto elementor-widget-mobile__width-inherit elementor-widget elementor-widget-hr_button\" data-id=\"1b6c2e3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <div class=\"btn-wrapper\">\n            <a class=\"btn custom has-icon icon-left\" href=\"#\" rel=\"nofollow\" video-popup=\"https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/Autopilot_EN.webm\">\n                                    <svg class=\"btn-icon\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"overflow: visible;display: block\"><path d=\"M1.63058 0.220492C0.730075 -0.296653 0 0.126998 0 1.16599V8.83326C0 9.87329 0.730075 10.2964 1.63058 9.77974L8.32439 5.93642C9.2252 5.4191 9.2252 4.58095 8.32439 4.06374L1.63058 0.220492Z\" fill=\"currentColor\" \/><\/svg>                                <span class=\"btn-text\">Regarder la vid\u00e9o<\/span>\n                            <\/a>\n        <\/div>\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dbcacad elementor-widget__width-auto elementor-widget-mobile__width-inherit elementor-widget elementor-widget-hr_button\" data-id=\"dbcacad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <div class=\"btn-wrapper\">\n            <a class=\"btn custom has-no-icon\" href=\"#form\">\n                                <span class=\"btn-text\">Demandez une d\u00e9monstration<\/span>\n                            <\/a>\n        <\/div>\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<div class=\"elementor-element elementor-element-ad4fca1 e-con-full elementor-hidden-tablet elementor-hidden-mobile_extra elementor-hidden-mobile e-flex e-con e-child\" data-id=\"ad4fca1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c937d7f elementor-widget elementor-widget-hr_hovering_effect_image\" data-id=\"c937d7f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_hovering_effect_image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <div\n            class=\"hr-hovering-effect-image hr-hovering-effect-image--blur-on-hover\">\n            <div class=\"hr-hovering-effect-image__inner\">\n                \t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1236\" height=\"1200\" src=\"https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/autopilot-hero-right-1.webp\" class=\"attachment-full size-full wp-image-142983\" alt=\"\" srcset=\"https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/autopilot-hero-right-1.webp 1236w, https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/autopilot-hero-right-1-375x364.webp 375w\" sizes=\"(max-width: 1236px) 100vw, 1236px\">\t\t\t\t\t\t\t\t\t\t\t                                    <div class=\"hr-hovering-effect-image__overlay\">\n                                                    <a class=\"hr-hovering-effect-image__button has-icon icon-left\" href=\"#\" video-popup=\"https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/Autopilot_EN.webm\"                                href=\"#\">\n                                <svg class=\"btn-icon\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"overflow: visible;display: block\"><path d=\"M2.35529 0.308689C1.05455 -0.415314 0 0.177798 0 1.63238V12.3666C0 13.8226 1.05455 14.4149 2.35529 13.6916L12.0241 8.31099C13.3253 7.58673 13.3253 6.41333 12.0241 5.68924L2.35529 0.308689Z\" fill=\"currentColor\" \/><\/svg>                                <span class=\"btn-text\">Regarder la vid\u00e9o<\/span>\n                                                            <\/a>\n                                            <\/div>\n                            <\/div>\n        <\/div>\n\n        <style>\n            .hr-hovering-effect-image .hr-hovering-effect-image__inner {\n                position: relative;\n                display: inline-block;\n                width: 100%;\n            }\n\n            .hr-hovering-effect-image .elementor-image {\n                width: 100%;\n            }\n\n            .hr-hovering-effect-image .elementor-image img {\n                display: block;\n                width: 100%;\n                transition: filter 0.28s ease;\n                will-change: filter;\n            }\n\n            .hr-hovering-effect-image.hr-hovering-effect-image--blur-on-hover .hr-hovering-effect-image__inner:hover img {\n                filter: blur(2px);\n            }\n\n            .hr-hovering-effect-image .hr-hovering-effect-image__overlay {\n                position: absolute;\n                top: 0;\n                left: 0;\n                opacity: 0;\n                visibility: hidden;\n                pointer-events: none;\n                transition: opacity 0.22s ease, visibility 0.22s ease;\n                z-index: 2;\n                width: 100%;\n                height: 100%;\n                display: flex;\n                align-items: center;\n                justify-content: center;\n            }\n\n            .hr-hovering-effect-image:hover .hr-hovering-effect-image__overlay {\n                opacity: 1;\n                visibility: visible;\n                pointer-events: auto;\n            }\n\n            .hr-hovering-effect-image .hr-hovering-effect-image__button {\n                display: inline-flex;\n                align-items: center;\n                justify-content: center;\n                white-space: nowrap;\n                text-decoration: none;\n                line-height: 1;\n                z-index: 3;\n                position: relative;\n                opacity: 0;\n                transform: scale(0.98);\n                transition: opacity 0.36s cubic-bezier(0.22, 1, 0.36, 1), transform 0.36s cubic-bezier(0.22, 1, 0.36, 1);\n                will-change: opacity, transform;\n            }\n\n            .hr-hovering-effect-image:hover .hr-hovering-effect-image__button {\n                opacity: 1;\n                transform: scale(1);\n            }\n\n            .hr-hovering-effect-image.hr-hovering-effect-image--blur-on-hover:hover .hr-hovering-effect-image__button {\n                transition-delay: 0.10s;\n            }\n\n            .hr-hovering-effect-image.hr-hovering-effect-image--blur-on-hover .hr-hovering-effect-image__inner:not(:hover) .hr-hovering-effect-image__button,\n            .hr-hovering-effect-image:not(.hr-hovering-effect-image--blur-on-hover) .hr-hovering-effect-image__inner:not(:hover) .hr-hovering-effect-image__button {\n                transition-delay: 0s;\n            }\n        <\/style>\n        \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\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c6b5559 e-flex e-con-boxed e-con e-parent\" data-id=\"c6b5559\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-66c4e8d e-con-full e-flex e-con e-child\" data-id=\"66c4e8d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-dd74bf8 e-con-full e-flex e-con e-child\" data-id=\"dd74bf8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b2fa7b7 elementor-widget elementor-widget-image\" data-id=\"b2fa7b7\" data-element_type=\"widget\" data-e-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=\"1000\" height=\"982\" src=\"https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/Adapt-instantly-to-market-shifts-1.webp\" class=\"attachment-full size-full wp-image-142989\" alt=\"\" srcset=\"https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/Adapt-instantly-to-market-shifts-1.webp 1000w, https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/Adapt-instantly-to-market-shifts-1-371x364.webp 371w\" sizes=\"(max-width: 1000px) 100vw, 1000px\">\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<\/div>\n\t\t<div class=\"elementor-element elementor-element-22816c9 e-con-full e-flex e-con e-child\" data-id=\"22816c9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-eb5a86f elementor-widget elementor-widget-hr_label\" data-id=\"eb5a86f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_label.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t            <span class=\"hr-label\">Automatisation intelligente<\/span>\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-079bad8 elementor-widget__width-inherit elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"079bad8\" 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<h2 class=\"elementor-heading-title elementor-size-default\">S'adapter instantan\u00e9ment aux fluctuations du march\u00e9<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-df59009 elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"df59009\" 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\tHotelRunner Autopilot surveille en permanence et en temps r\u00e9el le taux d&rsquo;occupation, la demande, les tarifs des concurrents, les avis clients, les modifications de r\u00e9servation, l&rsquo;\u00e9tat des paiements et les niveaux de disponibilit\u00e9.\n<br><br>\n\u00c0 l&rsquo;aide de d\u00e9clencheurs programm\u00e9s et bas\u00e9s sur des \u00e9v\u00e9nements, il ajuste automatiquement les tarifs, la disponibilit\u00e9, les flux de travail et les alertes internes pour garantir la rentabilit\u00e9, la s\u00e9curit\u00e9 et l&rsquo;efficacit\u00e9 op\u00e9rationnelle de votre \u00e9tablissement \u00e0 chaque instant de la journ\u00e9e.\n\t\t\t\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<div class=\"elementor-element elementor-element-70135f5 e-con-full e-flex e-con e-child\" data-id=\"70135f5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-8a64be0 e-con-full e-flex e-con e-child\" data-id=\"8a64be0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ecd678b elementor-widget elementor-widget-image\" data-id=\"ecd678b\" data-element_type=\"widget\" data-e-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=\"1000\" height=\"982\" src=\"https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/Advanced-Pricing-Intelligence-1.webp\" class=\"attachment-full size-full wp-image-142993\" alt=\"\" srcset=\"https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/Advanced-Pricing-Intelligence-1.webp 1000w, https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/Advanced-Pricing-Intelligence-1-371x364.webp 371w\" sizes=\"(max-width: 1000px) 100vw, 1000px\">\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<\/div>\n\t\t<div class=\"elementor-element elementor-element-bf799bd e-con-full e-flex e-con e-child\" data-id=\"bf799bd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3bd6153 elementor-widget elementor-widget-hr_label\" data-id=\"3bd6153\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_label.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t            <span class=\"hr-label\">Intelligence tarifaire avanc\u00e9e<\/span>\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-02a1e31 elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"02a1e31\" 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<h2 class=\"elementor-heading-title elementor-size-default\">Maximisez vos revenus gr\u00e2ce \u00e0 une tarification en temps r\u00e9el bas\u00e9e sur la concurrence\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5e3cbed elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"5e3cbed\" 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\tAutopilot vous permet de comparer vos tarifs \u00e0 ceux de vos concurrents et de les ajuster en temps r\u00e9el en fonction des donn\u00e9es du march\u00e9.<br><br>\nVendez chaque chambre au bon prix, au bon moment, et gardez une longueur d&rsquo;avance sur chaque \u00e9volution du march\u00e9.\n\t\t\t\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<div class=\"elementor-element elementor-element-3860edc e-con-full e-flex e-con e-child\" data-id=\"3860edc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-8c0f0f9 e-con-full e-flex e-con e-child\" data-id=\"8c0f0f9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e8dd532 elementor-widget elementor-widget-hr_label\" data-id=\"e8dd532\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_label.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t            <span class=\"hr-label\">Gestion intelligente des stocks et protection des revenus<\/span>\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a5bbb4 elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"8a5bbb4\" 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<h2 class=\"elementor-heading-title elementor-size-default\">Assurez la disponibilit\u00e9, optimisez la distribution et pr\u00e9venez les pertes de revenus avant qu'elles ne se produisent<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b8b6272 elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"b8b6272\" 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\tAutopilot surveille en temps r\u00e9el l&rsquo;\u00e9tat des stocks et les comportements de r\u00e9servation afin de :\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fb8ad76 e-con-full e-grid e-con e-child\" data-id=\"fb8ad76\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-f82d84a e-con-full e-flex e-con e-child\" data-id=\"f82d84a\" 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-7c10d30 elementor-widget elementor-widget-html\" data-id=\"7c10d30\" 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<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"18\" viewBox=\"0 0 20 18\" fill=\"none\">\n  <path d=\"M19.2857 2.06228H17.0414C16.6541 0.597587 15.1063 -0.287576 13.5843 0.0852027C12.575 0.332433 11.7869 1.09092 11.53 2.06228H0.714299C0.319796 2.06228 0 2.37005 0 2.74971C0 3.12938 0.319796 3.43715 0.714299 3.43715H11.53C11.9173 4.90184 13.4651 5.787 14.9871 5.41422C15.9964 5.16699 16.7845 4.40851 17.0414 3.43715H19.2857C19.6802 3.43715 20 3.12938 20 2.74971C20 2.37005 19.6802 2.06228 19.2857 2.06228Z\" fill=\"white\"\/>\n  <path d=\"M19.2857 8.24905H7.75571C7.36837 6.78435 5.82057 5.89919 4.2986 6.27197C3.28928 6.5192 2.50116 7.27769 2.24426 8.24905H0.714299C0.319796 8.24905 0 8.55681 0 8.93648C0 9.31615 0.319796 9.62388 0.714299 9.62388H2.24431C2.63165 11.0886 4.17945 11.9737 5.70142 11.601C6.71074 11.3537 7.49887 10.5952 7.75576 9.62388H19.2857C19.6802 9.62388 20 9.31611 20 8.93644C20 8.55677 19.6802 8.24905 19.2857 8.24905Z\" fill=\"white\"\/>\n  <path d=\"M19.2857 14.4361H15.6128C15.2255 12.9714 13.6777 12.0862 12.1557 12.459C11.1464 12.7062 10.3583 13.4647 10.1014 14.4361H0.714299C0.319796 14.4361 0 14.7438 0 15.1235C0 15.5031 0.319796 15.8109 0.714299 15.8109H10.1014C10.4888 17.2756 12.0366 18.1607 13.5585 17.788C14.5679 17.5407 15.356 16.7822 15.6129 15.8109H19.2857C19.6802 15.8109 20 15.5031 20 15.1235C20 14.7438 19.6802 14.4361 19.2857 14.4361Z\" fill=\"white\"\/>\n<\/svg>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-907e8b9 elementor-widget elementor-widget-heading\" data-id=\"907e8b9\" 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<h3 class=\"elementor-heading-title elementor-size-default\">Prot\u00e9ger les dates tr\u00e8s demand\u00e9es en ajustant les tarifs et la disponibilit\u00e9<\/h3>\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-69f34a9 e-con-full e-flex e-con e-child\" data-id=\"69f34a9\" 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-eabc9ba elementor-widget elementor-widget-html\" data-id=\"eabc9ba\" 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<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"19\" height=\"20\" viewBox=\"0 0 19 20\" fill=\"none\">\n  <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18.2258 11.8171C17.5704 11.4435 17.1633 10.7476 17.1633 10C17.1633 9.25287 17.5704 8.55693 18.2239 8.18372C18.8946 7.80221 19.1736 7.00949 18.8869 6.29899C18.5277 5.4015 18.0385 4.56324 17.4366 3.80715C16.957 3.20517 16.1239 3.04751 15.4532 3.43148C14.7997 3.80715 13.9857 3.80828 13.3303 3.43431C12.6768 3.06034 12.2717 2.36327 12.2736 1.6144C12.2736 0.84831 11.7194 0.212521 10.9532 0.102871C9.99015 -0.0351385 9.01183 -0.034372 8.04493 0.105695C7.28059 0.216111 6.72648 0.851537 6.72835 1.6161C6.72835 2.36404 6.32323 3.0607 5.66975 3.43431C5.01432 3.80787 4.20223 3.80711 3.54684 3.43185C2.87616 3.04787 2.04303 3.2063 1.56341 3.80828C1.26532 4.18338 0.990139 4.58438 0.747496 5.00087C0.504812 5.41663 0.292709 5.8524 0.113102 6.29536C-0.175452 7.00699 0.103561 7.80084 0.774244 8.18332C1.42968 8.55653 1.83668 9.25283 1.83668 10C1.83668 10.7472 1.42968 11.4429 0.77616 11.8167C0.105477 12.1982 -0.173495 12.9905 0.113102 13.7008C0.472357 14.5989 0.961516 15.4372 1.56341 16.1929C2.04303 16.7948 2.87616 16.9525 3.54684 16.5685C4.20036 16.1929 5.01436 16.1921 5.66975 16.5657C6.32323 16.9397 6.72835 17.6367 6.72835 18.3856C6.72644 19.1515 7.28247 19.7873 8.04681 19.8972C8.52642 19.9658 9.00796 20 9.48945 20C9.97865 20 10.4678 19.9648 10.9551 19.8943C11.7194 19.7837 12.2735 19.1488 12.2735 18.3843C12.2716 17.636 12.6767 16.9393 13.3302 16.5657C13.9856 16.1921 14.7977 16.1929 15.4531 16.5682C16.1238 16.9521 16.9569 16.7941 17.4365 16.1917C17.7346 15.8164 18.0098 15.4154 18.2524 14.9995C18.4932 14.5838 18.7092 14.148 18.8868 13.7046C19.1755 12.993 18.8965 12.199 18.2258 11.8171ZM12.0997 11.4855C11.7003 12.1725 11.0525 12.6643 10.2768 12.8696C9.50291 13.0749 8.6927 12.9696 7.99906 12.5726C6.56595 11.7535 6.07296 9.93348 6.90034 8.51457C7.45449 7.56282 8.46722 7.03007 9.50478 7.03007C10.015 7.03007 10.529 7.15787 11.001 7.42747C12.4341 8.24629 12.9271 10.0669 12.0997 11.4855Z\" fill=\"white\"\/>\n<\/svg>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-324e746 elementor-widget elementor-widget-heading\" data-id=\"324e746\" 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<h3 class=\"elementor-heading-title elementor-size-default\">Recevoir des notifications par e-mail sur l'\u00e9tat des canaux et des stocks pour un contr\u00f4le manuel<\/h3>\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-5cf5c49 e-con-full e-flex e-con e-child\" data-id=\"5cf5c49\" 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-5752575 elementor-widget elementor-widget-html\" data-id=\"5752575\" 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<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"21\" height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\n  <path d=\"M6.72975 17.3995C7.03365 17.4929 7.33123 17.263 7.3924 16.951C7.4723 16.5434 7.61844 16.137 7.83797 15.7436L11.0176 10.0477C12.5626 7.28006 16.5448 7.28006 18.0898 10.0477C18.1105 10.0848 18.1659 10.0744 18.1712 10.0323C18.2187 9.66007 18.2432 9.28061 18.2432 8.89547C18.2432 3.98266 14.2606 0 9.34773 0C4.43489 0 0.452243 3.98266 0.452243 8.89547C0.452243 10.0662 0.678372 11.184 1.08934 12.2077C1.17935 12.4319 1.19888 12.6796 1.13114 12.9114L0.0420225 16.639C-0.18605 17.4197 0.552839 18.137 1.32638 17.8859L4.62189 16.8164C4.88889 16.7297 5.17856 16.7605 5.4305 16.8843C5.84634 17.0885 6.28046 17.2614 6.72975 17.3995Z\" fill=\"white\"\/>\n  <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17.7329 20.2486C19.6652 20.2486 20.8848 18.1709 19.943 16.4838L16.7633 10.7879C15.7977 9.05801 13.3089 9.05801 12.3432 10.7879L9.16355 16.4838C8.22178 18.1709 9.44136 20.2486 11.3736 20.2486H17.7329ZM15.3124 13.0461C15.3124 12.6268 14.9725 12.2868 14.5531 12.2868C14.1337 12.2868 13.7937 12.6268 13.7937 13.0461L13.7938 15.0826C13.7938 15.502 14.1338 15.842 14.5532 15.842C14.9725 15.842 15.3125 15.502 15.3125 15.0826L15.3124 13.0461ZM15.3125 17.3062C15.3125 16.8867 14.9725 16.5468 14.5532 16.5468C14.1338 16.5468 13.7938 16.8868 13.7938 17.3062V17.4511C13.7938 17.8705 14.1338 18.2105 14.5532 18.2105C14.9725 18.2105 15.3125 17.8705 15.3125 17.4511V17.3062Z\" fill=\"white\"\/>\n<\/svg>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d01f379 elementor-widget elementor-widget-heading\" data-id=\"d01f379\" 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<h3 class=\"elementor-heading-title elementor-size-default\">Recevoir des alertes en temps r\u00e9el en cas d'annulation sur tous les canaux<\/h3>\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-28da525 e-con-full e-flex e-con e-child\" data-id=\"28da525\" 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-0f89097 elementor-widget elementor-widget-html\" data-id=\"0f89097\" 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<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"18\" height=\"20\" viewBox=\"0 0 18 20\" fill=\"none\">\n  <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.9109 19.9998H9.53253C8.78709 19.9998 8.09858 19.598 7.72494 18.945C7.35131 18.2929 7.34856 17.4873 7.71852 16.8324L10.9077 11.1766C11.2795 10.5171 11.9717 10.1106 12.7217 10.1106C13.4708 10.1106 14.163 10.5171 14.5357 11.1766L17.7249 16.8324C18.094 17.4873 18.0912 18.2929 17.7176 18.945C17.344 19.598 16.6554 19.9998 15.9109 19.9998ZM12.7217 17.0873C12.3417 17.0873 12.0332 17.3998 12.0332 17.785C12.0332 18.1691 12.3417 18.4826 12.7217 18.4826C13.1018 18.4826 13.4102 18.1691 13.4102 17.785C13.4102 17.3998 13.1018 17.0873 12.7217 17.0873ZM12.0332 13.3664V15.2268C12.0332 15.611 12.3417 15.9245 12.7217 15.9245C13.1018 15.9245 13.4102 15.611 13.4102 15.2268V13.3664C13.4102 12.9813 13.1018 12.6687 12.7217 12.6687C12.3417 12.6687 12.0332 12.9813 12.0332 13.3664Z\" fill=\"white\"\/>\n  <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.36895 19.9999H2.52456C1.85532 19.9999 1.21362 19.7301 0.739925 19.251C0.266226 18.771 0 18.1199 0 17.4417V2.55812C0 1.87999 0.266226 1.22883 0.739925 0.748832C1.21362 0.269766 1.85532 0 2.52456 0H10.224C10.8932 0 11.5349 0.269766 12.0086 0.748832L15.5237 4.31067C15.9965 4.79067 16.2627 5.4409 16.2627 6.11903V12.3646L15.3328 10.7153C14.7976 9.76552 13.8006 9.18041 12.7219 9.18041C11.6423 9.18041 10.6463 9.76552 10.1102 10.7153L6.92096 16.3711C6.38942 17.3143 6.3931 18.4724 6.93106 19.412C7.05499 19.6278 7.20187 19.825 7.36895 19.9999ZM10.5251 1.33022V4.88369C10.5251 5.1302 10.6215 5.36741 10.7941 5.54136C10.9658 5.71624 11.1999 5.81392 11.4431 5.81392H14.95C14.86 5.61299 14.7342 5.42787 14.5773 5.2688L11.0631 1.7079C10.9061 1.54883 10.7234 1.42139 10.5251 1.33022ZM3.90159 8.83715H9.40971C9.78977 8.83715 10.0982 8.5246 10.0982 8.13948C10.0982 7.75437 9.78977 7.44181 9.40971 7.44181H3.90159C3.52153 7.44181 3.21307 7.75437 3.21307 8.13948C3.21307 8.5246 3.52153 8.83715 3.90159 8.83715ZM3.90159 11.6278H6.65565C7.03571 11.6278 7.34417 11.3153 7.34417 10.9302C7.34417 10.545 7.03571 10.2325 6.65565 10.2325H3.90159C3.52153 10.2325 3.21307 10.545 3.21307 10.9302C3.21307 11.3153 3.52153 11.6278 3.90159 11.6278ZM3.90159 6.04647H6.65565C7.03571 6.04647 7.34417 5.73392 7.34417 5.3488C7.34417 4.96369 7.03571 4.65113 6.65565 4.65113H3.90159C3.52153 4.65113 3.21307 4.96369 3.21307 5.3488C3.21307 5.73392 3.52153 6.04647 3.90159 6.04647Z\" fill=\"white\"\/>\n<\/svg>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5a62b0d elementor-widget elementor-widget-heading\" data-id=\"5a62b0d\" 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<h3 class=\"elementor-heading-title elementor-size-default\">Suivre les modifications importantes des r\u00e9servations par e-mail pour pouvoir r\u00e9agir rapidement<\/h3>\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\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-24a26db e-con-full e-flex e-con e-child\" data-id=\"24a26db\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-fd50739 e-con-full e-flex e-con e-child\" data-id=\"fd50739\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fec20fa elementor-widget elementor-widget-image\" data-id=\"fec20fa\" data-element_type=\"widget\" data-e-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 loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"958\" src=\"https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/payment-automation-1.webp\" class=\"attachment-full size-full wp-image-142997\" alt=\"\" srcset=\"https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/payment-automation-1.webp 1000w, https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/payment-automation-1-380x364.webp 380w\" sizes=\"(max-width: 1000px) 100vw, 1000px\">\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<\/div>\n\t\t<div class=\"elementor-element elementor-element-d1bc325 e-con-full e-flex e-con e-child\" data-id=\"d1bc325\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-70b5abb elementor-widget elementor-widget-hr_label\" data-id=\"70b5abb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_label.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t            <span class=\"hr-label\">Automatisation des paiements<\/span>\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-040d61c elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"040d61c\" 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<h2 class=\"elementor-heading-title elementor-size-default\">S\u00e9curisez votre tr\u00e9sorerie gr\u00e2ce \u00e0 des flux financiers intelligents<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-82ff962 elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"82ff962\" 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>S\u00e9curisez votre tr\u00e9sorerie gr\u00e2ce \u00e0 des workflows intelligents qui vous aident \u00e0 agir rapidement en cas de probl\u00e8me de paiement. Identifiez les r\u00e9servations incompl\u00e8tes caus\u00e9es par des paiements \u00e9chou\u00e9s sur votre moteur de r\u00e9servation et recevez des alertes afin que votre \u00e9quipe puisse contacter les clients et g\u00e9rer de mani\u00e8re proactive les risques financiers potentiels.<\/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-846f43e elementor-widget__width-auto elementor-widget-mobile__width-inherit elementor-widget elementor-widget-hr_button\" data-id=\"846f43e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <div class=\"btn-wrapper\">\n            <a class=\"btn custom has-no-icon\" href=\"#form\">\n                                <span class=\"btn-text\">Demandez une d\u00e9monstration<\/span>\n                            <\/a>\n        <\/div>\n        \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<div class=\"elementor-element elementor-element-b6669c8 e-con-full e-flex e-con e-child\" data-id=\"b6669c8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-c039010 e-con-full e-flex e-con e-child\" data-id=\"c039010\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cd0eb97 elementor-widget elementor-widget-image\" data-id=\"cd0eb97\" data-element_type=\"widget\" data-e-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 loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"982\" src=\"https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/Ecosystem-Integration-1-1.webp\" class=\"attachment-full size-full wp-image-143001\" alt=\"\" srcset=\"https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/Ecosystem-Integration-1-1.webp 1000w, https:\/\/staging-sites.hotelrunner.com\/wp-content\/uploads\/2026\/06\/Ecosystem-Integration-1-1-371x364.webp 371w\" sizes=\"(max-width: 1000px) 100vw, 1000px\">\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<\/div>\n\t\t<div class=\"elementor-element elementor-element-7d8df0e e-con-full e-flex e-con e-child\" data-id=\"7d8df0e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-337adb0 elementor-widget elementor-widget-hr_label\" data-id=\"337adb0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_label.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t            <span class=\"hr-label\">Int\u00e9gration de l&#039;\u00e9cosyst\u00e8me<\/span>\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6183a1f elementor-widget__width-inherit elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"6183a1f\" 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<h2 class=\"elementor-heading-title elementor-size-default\">Une exp\u00e9rience d'automatisation unifi\u00e9e<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ca223f elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"7ca223f\" 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\tAutopilot se synchronise avec tous les produits HotelRunner pour transformer les donn\u00e9es provenant de multiples sources en un flux automatis\u00e9 unique. Il utilise les signaux fournis par l&rsquo;Analyse de la concurrence et le Centre d&rsquo;\u00e9valuation pour ajuster automatiquement les prix en fonction de l&rsquo;\u00e9volution de la demande, envoyer des notifications par e-mail, mettre \u00e0 jour les calendriers et g\u00e9n\u00e9rer des r\u00e9ponses bas\u00e9es sur l&rsquo;IA aux avis des clients.\t\t\t\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\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-300d418 e-con-full e-flex e-con e-parent\" data-id=\"300d418\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bc26360 elementor-widget elementor-widget-hr_faq_section\" data-id=\"bc26360\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_faq_section.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t            <script\n                type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Qu'est-ce qu'HotelRunner Autopilot ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"HotelRunner Autopilot automatise vos ventes, votre distribution et vos op\u00e9rations en utilisant des r\u00e8gles intelligentes bas\u00e9es sur les donn\u00e9es afin d'optimiser les prix et les disponibilit\u00e9s sur l'ensemble de vos canaux de vente, tout en s'adaptant \u00e0 l'\u00e9volution de la demande.\"}},{\"@type\":\"Question\",\"name\":\"Quelles t\u00e2ches Autopilot peut-il automatiser ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Autopilot peut automatiser de nombreuses t\u00e2ches r\u00e9p\u00e9titives et chronophages, notamment l'optimisation des tarifs, la gestion de la distribution, les r\u00e9ponses automatis\u00e9es aux avis des clients, les flux de communication (notifications par e-mail\/WhatsApp) et les mises \u00e0 jour du calendrier, \u00e0 l'aide de mod\u00e8les pr\u00e9d\u00e9finis ou d'une logique personnalis\u00e9e.\"}},{\"@type\":\"Question\",\"name\":\"Comment puis-je cr\u00e9er mes automatisations ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Gr\u00e2ce \u00e0 l'interface avanc\u00e9e de type \u00ab canevas \u00bb, vous pouvez concevoir des automatisations complexes en quelques minutes. Il suffit de glisser-d\u00e9poser et de relier des d\u00e9clencheurs, des conditions et des actions pour cr\u00e9er des flux de travail intelligents qui s\u2019adaptent parfaitement \u00e0 votre strat\u00e9gie commerciale.\"}},{\"@type\":\"Question\",\"name\":\"Comment Autopilot optimise-t-il mes tarifs ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Autopilot s'int\u00e8gre directement \u00e0 l'outil d'analyse concurrentielle d'HotelRunner, ce qui vous permet de comparer vos tarifs \u00e0 ceux de vos concurrents. Il ajuste automatiquement vos prix en fonction des donn\u00e9es du march\u00e9, vous garantissant ainsi de vendre chaque chambre au bon prix et au bon moment.\"}},{\"@type\":\"Question\",\"name\":\"Comment Autopilot peut-il contribuer \u00e0 augmenter le chiffre d'affaires de mon \u00e9tablissement ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Autopilot ajuste automatiquement les tarifs en fonction de l'activit\u00e9 de r\u00e9servation, des taux d'occupation et de la demande, garantissant ainsi que chaque chambre est vendue au meilleur prix et au bon moment afin de maximiser votre chiffre d'affaires et votre rentabilit\u00e9.\"}},{\"@type\":\"Question\",\"name\":\"Comment ces automatisations fonctionnent-elles ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"En fonction des r\u00e8gles personnalis\u00e9es que vous d\u00e9finissez, la plateforme d\u00e9clenche des actions automatis\u00e9es telles que l'ajustement des prix, la mise \u00e0 jour des disponibilit\u00e9s et la r\u00e9partition des stocks entre les canaux de vente.\"}}]}<\/script>\n                    <div class=\"hr-faq-section\">\n            <div class=\"container\">\n                <div class=\"hr-faq-section__grid\">\n                    <div class=\"hr-faq-section__intro\">\n                                                    <div class=\"hr-faq-section__intro-text\">\n                                                                    <h2 class=\"hr-faq-section__title\">Foire aux questions<\/h2>\n                                                                                                    <p class=\"hr-faq-section__lede\">Para obtener m\u00e1s informaci\u00f3n, puede visitar nuestro centro de ayuda o ponerse en contacto directamente con nuestro equipo de soporte.<\/p>\n                                                            <\/div>\n                                                                            <a class=\"btn\" class=\"hr-faq-section__cta\" href=\"#form\">\n                                Cont\u00e1ctenos                            <\/a>\n                                                <\/div>\n                    <div class=\"hr-faq-section__accordion\">\n                                                                                <div class=\"hr-faq-item active\">\n                                                                <div class=\"hr-faq-item-content\">\n                                    <div class=\"hr-faq-item-row\">\n                                        <div class=\"hr-faq-item-text\">\n                                            <div id=\"hr-faq-section-bc26360-header-0\" class=\"hr-faq-header\" role=\"button\"\n                                                tabindex=\"0\" aria-expanded=\"true\"\n                                                aria-controls=\"hr-faq-section-bc26360-content-0\">\n                                                <h3 class=\"hr-faq-title\">\n                                                    Qu&#039;est-ce qu&#039;HotelRunner Autopilot ?<\/h3>\n                                            <\/div>\n                                            <div id=\"hr-faq-section-bc26360-content-0\" class=\"hr-faq-content\"\n                                                aria-labelledby=\"hr-faq-section-bc26360-header-0\">\n                                                HotelRunner Autopilot automatise vos ventes, votre distribution et vos op\u00e9rations en utilisant des r\u00e8gles intelligentes bas\u00e9es sur les donn\u00e9es afin d'optimiser les prix et les disponibilit\u00e9s sur l'ensemble de vos canaux de vente, tout en s'adaptant \u00e0 l'\u00e9volution de la demande.                                            <\/div>\n                                        <\/div>\n                                        <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\"\n                                            aria-expanded=\"true\"\n                                            aria-controls=\"hr-faq-section-bc26360-content-0\">\n                                            <svg class=\"hr-faq-arrow__svg\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"7\" viewBox=\"0 0 13 7\" fill=\"none\" preserveAspectRatio=\"none\" aria-hidden=\"true\">\n                                                <path d=\"M12.5 0.5L6.5 6.5L0.5 0.5\" stroke=\"#999999\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                            <\/svg>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                                                                                <div class=\"hr-faq-item\">\n                                                                <div class=\"hr-faq-item-content\">\n                                    <div class=\"hr-faq-item-row\">\n                                        <div class=\"hr-faq-item-text\">\n                                            <div id=\"hr-faq-section-bc26360-header-1\" class=\"hr-faq-header\" role=\"button\"\n                                                tabindex=\"0\" aria-expanded=\"false\"\n                                                aria-controls=\"hr-faq-section-bc26360-content-1\">\n                                                <h3 class=\"hr-faq-title\">\n                                                    Quelles t\u00e2ches Autopilot peut-il automatiser ? <\/h3>\n                                            <\/div>\n                                            <div id=\"hr-faq-section-bc26360-content-1\" class=\"hr-faq-content\"\n                                                aria-labelledby=\"hr-faq-section-bc26360-header-1\">\n                                                Autopilot peut automatiser de nombreuses t\u00e2ches r\u00e9p\u00e9titives et chronophages, notamment l'optimisation des tarifs, la gestion de la distribution, les r\u00e9ponses automatis\u00e9es aux avis des clients, les flux de communication (notifications par e-mail\/WhatsApp) et les mises \u00e0 jour du calendrier, \u00e0 l'aide de mod\u00e8les pr\u00e9d\u00e9finis ou d'une logique personnalis\u00e9e.                                            <\/div>\n                                        <\/div>\n                                        <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\"\n                                            aria-expanded=\"false\"\n                                            aria-controls=\"hr-faq-section-bc26360-content-1\">\n                                            <svg class=\"hr-faq-arrow__svg\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"7\" viewBox=\"0 0 13 7\" fill=\"none\" preserveAspectRatio=\"none\" aria-hidden=\"true\">\n                                                <path d=\"M12.5 0.5L6.5 6.5L0.5 0.5\" stroke=\"#999999\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                            <\/svg>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                                                                                <div class=\"hr-faq-item\">\n                                                                <div class=\"hr-faq-item-content\">\n                                    <div class=\"hr-faq-item-row\">\n                                        <div class=\"hr-faq-item-text\">\n                                            <div id=\"hr-faq-section-bc26360-header-2\" class=\"hr-faq-header\" role=\"button\"\n                                                tabindex=\"0\" aria-expanded=\"false\"\n                                                aria-controls=\"hr-faq-section-bc26360-content-2\">\n                                                <h3 class=\"hr-faq-title\">\n                                                    Comment puis-je cr\u00e9er mes automatisations ? <\/h3>\n                                            <\/div>\n                                            <div id=\"hr-faq-section-bc26360-content-2\" class=\"hr-faq-content\"\n                                                aria-labelledby=\"hr-faq-section-bc26360-header-2\">\n                                                Gr\u00e2ce \u00e0 l'interface avanc\u00e9e de type \u00ab canevas \u00bb, vous pouvez concevoir des automatisations complexes en quelques minutes. Il suffit de glisser-d\u00e9poser et de relier des d\u00e9clencheurs, des conditions et des actions pour cr\u00e9er des flux de travail intelligents qui s\u2019adaptent parfaitement \u00e0 votre strat\u00e9gie commerciale.\n                                            <\/div>\n                                        <\/div>\n                                        <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\"\n                                            aria-expanded=\"false\"\n                                            aria-controls=\"hr-faq-section-bc26360-content-2\">\n                                            <svg class=\"hr-faq-arrow__svg\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"7\" viewBox=\"0 0 13 7\" fill=\"none\" preserveAspectRatio=\"none\" aria-hidden=\"true\">\n                                                <path d=\"M12.5 0.5L6.5 6.5L0.5 0.5\" stroke=\"#999999\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                            <\/svg>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                                                                                <div class=\"hr-faq-item\">\n                                                                <div class=\"hr-faq-item-content\">\n                                    <div class=\"hr-faq-item-row\">\n                                        <div class=\"hr-faq-item-text\">\n                                            <div id=\"hr-faq-section-bc26360-header-3\" class=\"hr-faq-header\" role=\"button\"\n                                                tabindex=\"0\" aria-expanded=\"false\"\n                                                aria-controls=\"hr-faq-section-bc26360-content-3\">\n                                                <h3 class=\"hr-faq-title\">\n                                                    Comment Autopilot optimise-t-il mes tarifs ? <\/h3>\n                                            <\/div>\n                                            <div id=\"hr-faq-section-bc26360-content-3\" class=\"hr-faq-content\"\n                                                aria-labelledby=\"hr-faq-section-bc26360-header-3\">\n                                                Autopilot s'int\u00e8gre directement \u00e0 l'outil d'analyse concurrentielle d'HotelRunner, ce qui vous permet de comparer vos tarifs \u00e0 ceux de vos concurrents. Il ajuste automatiquement vos prix en fonction des donn\u00e9es du march\u00e9, vous garantissant ainsi de vendre chaque chambre au bon prix et au bon moment.                                            <\/div>\n                                        <\/div>\n                                        <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\"\n                                            aria-expanded=\"false\"\n                                            aria-controls=\"hr-faq-section-bc26360-content-3\">\n                                            <svg class=\"hr-faq-arrow__svg\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"7\" viewBox=\"0 0 13 7\" fill=\"none\" preserveAspectRatio=\"none\" aria-hidden=\"true\">\n                                                <path d=\"M12.5 0.5L6.5 6.5L0.5 0.5\" stroke=\"#999999\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                            <\/svg>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                                                                                <div class=\"hr-faq-item\">\n                                                                <div class=\"hr-faq-item-content\">\n                                    <div class=\"hr-faq-item-row\">\n                                        <div class=\"hr-faq-item-text\">\n                                            <div id=\"hr-faq-section-bc26360-header-4\" class=\"hr-faq-header\" role=\"button\"\n                                                tabindex=\"0\" aria-expanded=\"false\"\n                                                aria-controls=\"hr-faq-section-bc26360-content-4\">\n                                                <h3 class=\"hr-faq-title\">\n                                                    Comment Autopilot peut-il contribuer \u00e0 augmenter le chiffre d&#039;affaires de mon \u00e9tablissement ?<\/h3>\n                                            <\/div>\n                                            <div id=\"hr-faq-section-bc26360-content-4\" class=\"hr-faq-content\"\n                                                aria-labelledby=\"hr-faq-section-bc26360-header-4\">\n                                                Autopilot ajuste automatiquement les tarifs en fonction de l'activit\u00e9 de r\u00e9servation, des taux d'occupation et de la demande, garantissant ainsi que chaque chambre est vendue au meilleur prix et au bon moment afin de maximiser votre chiffre d'affaires et votre rentabilit\u00e9.\n                                            <\/div>\n                                        <\/div>\n                                        <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\"\n                                            aria-expanded=\"false\"\n                                            aria-controls=\"hr-faq-section-bc26360-content-4\">\n                                            <svg class=\"hr-faq-arrow__svg\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"7\" viewBox=\"0 0 13 7\" fill=\"none\" preserveAspectRatio=\"none\" aria-hidden=\"true\">\n                                                <path d=\"M12.5 0.5L6.5 6.5L0.5 0.5\" stroke=\"#999999\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                            <\/svg>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                                                                                <div class=\"hr-faq-item\">\n                                                                <div class=\"hr-faq-item-content\">\n                                    <div class=\"hr-faq-item-row\">\n                                        <div class=\"hr-faq-item-text\">\n                                            <div id=\"hr-faq-section-bc26360-header-5\" class=\"hr-faq-header\" role=\"button\"\n                                                tabindex=\"0\" aria-expanded=\"false\"\n                                                aria-controls=\"hr-faq-section-bc26360-content-5\">\n                                                <h3 class=\"hr-faq-title\">\n                                                    Comment ces automatisations fonctionnent-elles ?<\/h3>\n                                            <\/div>\n                                            <div id=\"hr-faq-section-bc26360-content-5\" class=\"hr-faq-content\"\n                                                aria-labelledby=\"hr-faq-section-bc26360-header-5\">\n                                                En fonction des r\u00e8gles personnalis\u00e9es que vous d\u00e9finissez, la plateforme d\u00e9clenche des actions automatis\u00e9es telles que l'ajustement des prix, la mise \u00e0 jour des disponibilit\u00e9s et la r\u00e9partition des stocks entre les canaux de vente.\n                                            <\/div>\n                                        <\/div>\n                                        <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\"\n                                            aria-expanded=\"false\"\n                                            aria-controls=\"hr-faq-section-bc26360-content-5\">\n                                            <svg class=\"hr-faq-arrow__svg\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"7\" viewBox=\"0 0 13 7\" fill=\"none\" preserveAspectRatio=\"none\" aria-hidden=\"true\">\n                                                <path d=\"M12.5 0.5L6.5 6.5L0.5 0.5\" stroke=\"#999999\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                            <\/svg>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                                            <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        \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-613af6b e-flex e-con-boxed e-con e-parent\" data-id=\"613af6b\" data-element_type=\"container\" data-e-type=\"container\" id=\"form\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9f702fb elementor-widget elementor-widget-heading\" data-id=\"9f702fb\" 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<h2 class=\"elementor-heading-title elementor-size-default\">En savoir plus sur l'Autopilot<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4a68d13 e-con-full e-flex e-con e-child\" data-id=\"4a68d13\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0a4524c hr-form-submit-auto elementor-widget elementor-widget-hr_form\" data-id=\"0a4524c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_form.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <div class=\"hr-form-container\">\n            <!-- Add JustValidate script directly -->\n            <form id=\"hr-form-6a44cdcaf1ffa\" class=\"hr-form hr-select2-booting hr-form-direction-horizontal\" method=\"POST\" name=\"Product Page - Autopilot\"                action=\"https:\/\/staging-sites.hotelrunner.com\/wp-content\/themes\/hotelrunner\/core\/data\/hr-form-handler.php\">\n                                    <input type=\"hidden\" name=\"hubspot_portal_id\" value=\"\">\n                    <input type=\"hidden\" name=\"hubspot_form_guid\" value=\"\">\n                                                    <input type=\"hidden\" name=\"form_redirect_url\" value=\"https:\/\/staging-sites.hotelrunner.com\/fr\/autopilot-merci\">\n                                                    <input type=\"hidden\" name=\"hr_utm_source__c\" value=\"\">\n                    <input type=\"hidden\" name=\"hr_utm_medium__c\" value=\"\">\n                    <input type=\"hidden\" name=\"hr_utm_campaign__c\" value=\"\">\n                    <input type=\"hidden\" name=\"hr_utm_term__c\" value=\"\">\n                    <input type=\"hidden\" name=\"hr_utm_content__c\" value=\"\">\n                                \n                <!-- Add loading overlay -->\n                <div class=\"hr-form-overlay\" style=\"display: none;\">\n                    <div class=\"hr-form-overlay-content\">\n                        <span class=\"loader\"><\/span>\n                    <\/div>\n                <\/div>\n\n                <style>\n                    \/* #hr-form-6a44cdcaf1ffa {\n                        position: relative;\n                    } *\/\n\n                    #hr-form-6a44cdcaf1ffa .hr-form-overlay {\n                        position: absolute;\n                        top: 0;\n                        left: 0;\n                        right: 0;\n                        bottom: 0;\n                        background-color: rgba(255, 255, 255, 0.9);\n                        display: none;\n                        justify-content: center;\n                        align-items: center;\n                        z-index: 1000;\n                        backdrop-filter: blur(2px);\n                    }\n\n                    #hr-form-6a44cdcaf1ffa .hr-form-overlay-content {\n                        text-align: center;\n                    }\n\n                    #hr-form-6a44cdcaf1ffa .loader {\n                        width: 48px;\n                        height: 48px;\n                        border: 5px solid var(--e-global-color-primary);\n                        border-bottom-color: transparent;\n                        border-radius: 50%;\n                        display: inline-block;\n                        box-sizing: border-box;\n                        animation: rotation 1s linear infinite;\n                    }\n\n                    @keyframes rotation {\n                        0% {\n                            transform: rotate(0deg);\n                        }\n\n                        100% {\n                            transform: rotate(360deg);\n                        }\n                    }\n\n                    #hr-form-6a44cdcaf1ffa.submitting {\n                        pointer-events: none;\n                    }\n\n                    #hr-form-6a44cdcaf1ffa.submitting .hr-form-overlay {\n                        display: flex;\n                    }\n                    @media (max-width: 1024px) {\n                        #hr-form-6a44cdcaf1ffa .hr-form-button-wrapper { text-align: left !important; }\n                        #hr-form-6a44cdcaf1ffa .hr-form-step-buttons-wrapper { justify-content: flex-start !important; }\n                    }\n                    @media (max-width: 767px) {\n                        #hr-form-6a44cdcaf1ffa .hr-form-button-wrapper { text-align: right !important; }\n                        #hr-form-6a44cdcaf1ffa .hr-form-step-buttons-wrapper { justify-content: flex-end !important; }\n                    }\n                <\/style>\n\n                <script>\n                    (function () {\n                        if (window.__hrFormSafeSubmitPatched || !window.HTMLFormElement || !window.HTMLFormElement.prototype) {\n                            return;\n                        }\n                        const nativeSubmit = window.HTMLFormElement.prototype.submit;\n                        if (typeof nativeSubmit !== 'function') {\n                            return;\n                        }\n                        window.HTMLFormElement.prototype.submit = function () {\n                            if (!this || !this.isConnected) {\n                                return;\n                            }\n                            return nativeSubmit.call(this);\n                        };\n                        window.__hrFormSafeSubmitPatched = true;\n                    })();\n                <\/script>\n\n                <script>\n                    document.addEventListener('DOMContentLoaded', function () {\n                        const form = document.getElementById('hr-form-6a44cdcaf1ffa');\n                        if (!form) {\n                            return;\n                        }\n\n                        \/\/ Legacy submit\/validation flow is intentionally disabled.\n                        \/\/ A newer, unified flow below handles validation and submit state.\n                        return;\n\n                        const submitButton = form.querySelector('.hr-form-submit');\n                        const overlay = form.querySelector('.hr-form-overlay');\n                        let isSubmitting = false;\n\n                        \/\/ Initialize JustValidate\n                        const validator = new JustValidate('#hr-form-6a44cdcaf1ffa', {\n                            validateBeforeSubmitting: true,\n                            lockForm: true,\n                            focusInvalidField: true,\n                            errorFieldCssClass: 'is-invalid',\n                            successFieldCssClass: 'is-valid',\n                            errorLabelCssClass: 'is-label-invalid',\n                            errorLabelStyle: {\n                                color: '#e3342f',\n                                fontSize: '12px'\n                            },\n                            successFieldStyle: {\n                                borderColor: '#38c172'\n                            },\n                            errorFieldStyle: {\n                                borderColor: '#e3342f'\n                            },\n                            onValidate: ({ target }) => {\n                                \/\/ Handle Select2 validation classes\n                                if ($(target).hasClass('select2-hidden-accessible')) {\n                                    const select2Container = $(target).next('.select2-container');\n                                    if ($(target).hasClass('is-valid')) {\n                                        select2Container.find('.select2-selection').addClass('is-valid').removeClass('is-invalid');\n                                    } else if ($(target).hasClass('is-invalid')) {\n                                        select2Container.find('.select2-selection').addClass('is-invalid').removeClass('is-valid');\n                                    }\n                                }\n                            }\n                        });\n\n                        \/\/ Store validator instance on the form element\n                        form._justValidateInstance = validator;\n\n                        \/\/ HubSpot configuration check.\n                        const hubspotPortalInput = form.querySelector('input[name=\"hubspot_portal_id\"]');\n                        const hubspotFormGuidInput = form.querySelector('input[name=\"hubspot_form_guid\"]');\n                        const legacyEndpointInput = form.querySelector('input[name=\"form_endpoint_url\"]');\n                        const formsEndpointType = 'hubspot';\n\n                        \n                        \/\/ Add more fields and rules as needed\n\n                        \/\/ Handle form submission\n                        form.addEventListener('submit', function (e) {\n                            e.preventDefault();\n\n                            \/\/ Prevent multiple submissions\n                            if (isSubmitting) {\n                                return false;\n                            }\n\n                                                            const turnstileResponse = form.querySelector('[name=\"cf-turnstile-response\"]');\n                                if (!turnstileResponse || !turnstileResponse.value) {\n                                    alert('Please wait for the security check to complete.');\n                                    return false;\n                                }\n                            \n                            \/\/ Check honeypot field\n                            const honeypotField = form.querySelector('input[name=\"hr_website\"]');\n                            if (honeypotField && honeypotField.value !== '') {\n                                return false;\n                            }\n\n                            const hasHubspotConfig = Boolean(\n                                hubspotPortalInput?.value?.trim() &&\n                                hubspotFormGuidInput?.value?.trim()\n                            );\n                            const hasPardotConfig = Boolean(legacyEndpointInput?.value?.trim());\n                            if ((formsEndpointType === 'hubspot' && !hasHubspotConfig) || (formsEndpointType === 'pardot' && !hasPardotConfig)) {\n                                alert(formsEndpointType === 'hubspot'\n                                    ? 'Please configure HubSpot Portal ID and Form GUID.'\n                                    : 'Please configure Pardot form endpoint URL.');\n                                return false;\n                            }\n\n                            \/\/ Validate the form\n                            validator.onSuccess((event) => {\n                                \/\/ Show loading state\n                                isSubmitting = true;\n                                form.classList.add('submitting');\n                                overlay.style.display = 'flex';\n\n                                if (submitButton) {\n                                    submitButton.disabled = true;\n                                }\n\n                                \/\/ Submit only when form is still mounted in DOM.\n                                if (form && form.isConnected) {\n                                    form.submit();\n                                }\n                            });\n\n                            validator.onFail((fields) => {\n                                \/\/ Validation failed\n                            });\n\n                            validator.validate();\n                        });\n                    });\n                <\/script>\n\n                \n                <!-- Add honeypot field -->\n                <div style=\"display:none;\">\n                    <input type=\"text\" name=\"hr_website\" value=\"\" autocomplete=\"off\" tabindex=\"-1\">\n                <\/div>\n\n                                    <div class=\"hr-turnstile-container\" data-sitekey=\"0x4AAAAAABeTMK2qaRc9Oy_P\"\n                        data-callback=\"onTurnstileCallback_hr-form-6a44cdcaf1ffa\"><\/div>\n                \n                                        <input type=\"hidden\" name=\"hr_ip_address\" value=\"10.0.8.54\"\n                            data-field-type=\"ip_address\"\n                            >\n                                                <input type=\"hidden\" name=\"hr_browser_info\" value=\"\"\n                            data-field-type=\"browser_info\"\n                            >\n                                                <input type=\"hidden\" name=\"hr_primary_language\" value=\"\"\n                            data-field-type=\"primary_language\"\n                            >\n                                                <input type=\"hidden\" name=\"hr_all_languages\" value=\"\"\n                            data-field-type=\"all_languages\"\n                            >\n                                                <input type=\"hidden\" name=\"hr_window_size\" value=\"\"\n                            data-field-type=\"window_size\"\n                            >\n                                                <input type=\"hidden\" name=\"hr_timezone_name\" value=\"\"\n                            data-field-type=\"timezone_name\"\n                            >\n                                                <input type=\"hidden\" name=\"hr_current_url\" value=\"\"\n                            data-field-type=\"current_url\"\n                            data-truncate-url=\"no\">\n                                                <input type=\"hidden\" name=\"hr_referrer_url\" value=\"\"\n                            data-field-type=\"referrer_url\"\n                            data-truncate-url=\"no\">\n                                                <input type=\"hidden\" name=\"hr_page_load_time\" value=\"\"\n                            data-field-type=\"page_load_time\"\n                            >\n                                                                    <input type=\"hidden\" name=\"hubspot_portal_id\" value=\"\">\n                        <input type=\"hidden\" name=\"hubspot_form_guid\" value=\"\">\n                                                    <input type=\"hidden\" name=\"form_redirect_url\" value=\"https:\/\/staging-sites.hotelrunner.com\/fr\/autopilot-merci\">\n                                                                            <input type=\"hidden\" name=\"form_name\" value=\"Product Page - Autopilot_fr\">\n                                                <input type=\"hidden\" name=\"mail_language__c\"\n                            value=\"FR\">\n                                        \n                <script>\n                    function populateUtmFields() {\n                        const forms = document.querySelectorAll('form');\n                        forms.forEach(form => {\n                                                        const utmFieldNames = {\n                                utm_source: 'hr_utm_source__c',\n                                utm_medium: 'hr_utm_medium__c',\n                                utm_campaign: 'hr_utm_campaign__c',\n                                utm_term: 'hr_utm_term__c',\n                                utm_content: 'hr_utm_content__c'\n                            };\n                            \n                            if (!form.querySelector(`input[name=\"${utmFieldNames.utm_source}\"]`)) return;\n\n                            let utmSource = sessionStorage.getItem('utm_source');\n                            let utmMedium = sessionStorage.getItem('utm_medium');\n                            let utmCampaign = sessionStorage.getItem('utm_campaign');\n                            let utmTerm = sessionStorage.getItem('utm_term');\n                            let utmContent = sessionStorage.getItem('utm_content');\n\n                            if (!utmSource && !utmMedium && !utmCampaign && !utmTerm && !utmContent) {\n                                const params = new URLSearchParams(window.location.search);\n                                const utmKeys = ['utm_source','utm_medium','utm_campaign','utm_term','utm_content'];\n                                utmKeys.forEach(key => {\n                                    if (params.has(key)) {\n                                        const value = params.get(key);\n                                        sessionStorage.setItem(key, value);\n                                        switch(key) {\n                                            case 'utm_source': utmSource = value; break;\n                                            case 'utm_medium': utmMedium = value; break;\n                                            case 'utm_campaign': utmCampaign = value; break;\n                                            case 'utm_term': utmTerm = value; break;\n                                            case 'utm_content': utmContent = value; break;\n                                        }\n                                    }\n                                });\n                            }\n\n                            const utmValues = {\n                                utm_source: utmSource || '',\n                                utm_medium: utmMedium || '',\n                                utm_campaign: utmCampaign || '',\n                                utm_term: utmTerm || '',\n                                utm_content: utmContent || ''\n                            };\n\n                            Object.keys(utmFieldNames).forEach(key => {\n                                form.querySelectorAll(`input[name=\"${utmFieldNames[key]}\"]`).forEach(input => {\n                                    input.value = utmValues[key];\n                                });\n                            });\n                        });\n                    }\n\n                    document.addEventListener('DOMContentLoaded', populateUtmFields);\n                    setTimeout(populateUtmFields, 100);\n                    setTimeout(populateUtmFields, 500);\n                    setTimeout(populateUtmFields, 1000);\n                    window.addEventListener('load', populateUtmFields);\n                <\/script>\n\n                <div class=\"hr-form-fields-wrapper\">\n                    \n                                                    <div class=\"hr-form-field-column hr-form-field-width-50 hr-form-firstname hr-form-field-column-elementor-repeater-item-14707c7\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-form-firstname\" class=\"hr-form-label\">Pr\u00e9nom<\/label>                                        \n                                                                                        <input id=\"hr-form-firstname\" class=\"hr-form-input\" autocomplete=\"name\" type=\"text\" name=\"hr-form-firstname\" ><div id=\"hr-form-firstname-error-container\" class=\"just-validate-error-label hr-field-error-container\" aria-live=\"polite\"><\/div>                                                                                    <\/div>\n                                <\/div>\n                                                                <div class=\"hr-form-field-column hr-form-field-width-50 hr-form-lastname hr-form-field-column-elementor-repeater-item-f1b0b8a\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-form-lastname\" class=\"hr-form-label\">Nom<\/label>                                        \n                                                                                        <input id=\"hr-form-lastname\" class=\"hr-form-input\" autocomplete=\"name\" type=\"text\" name=\"hr-form-lastname\" ><div id=\"hr-form-lastname-error-container\" class=\"just-validate-error-label hr-field-error-container\" aria-live=\"polite\"><\/div>                                                                                    <\/div>\n                                <\/div>\n                                                                <div class=\"hr-form-field-column hr-form-field-width-50 email hr-form-field-column-elementor-repeater-item-b145675\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"email\" class=\"hr-form-label\">Email professionnel \n<\/label>                                        \n                                                                                        <input id=\"email\" class=\"hr-form-input\" autocomplete=\"email\" type=\"email\" name=\"email\" ><div id=\"email-error-container\" class=\"just-validate-error-label hr-field-error-container\" aria-live=\"polite\"><\/div>                                                                                    <\/div>\n                                <\/div>\n                                                                <div class=\"hr-form-field-column hr-form-field-width-50 hr-form-phone hr-form-field-column-elementor-repeater-item-f04ee98\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-form-phone\" class=\"hr-form-label\">T\u00e9l\u00e9phone mobile<\/label>                                        \n                                                                                                                                        <div class=\"hr-phone-input-wrapper\">\n                                                    <input id=\"hr-form-phone\" class=\"hr-form-input hr-phone-input\" autocomplete=\"tel\" type=\"tel\" name=\"hr-form-phone\"                                                                                                                 data-enable-geoip-lookup=\"yes\"\n                                                        data-initial-country=\"\">\n                                                <\/div>\n                                                <input type=\"hidden\" name=\"hr-form-phone_full\" value=\"\" class=\"hr-phone-full-value\" data-phone-field=\"hr-form-phone\">\n                                                                                                                                    <\/div>\n                                <\/div>\n                                                                <div class=\"hr-form-field-column hr-form-field-width-50 hr-form-company-name hr-form-field-column-elementor-repeater-item-218998f\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-form-company-name\" class=\"hr-form-label\">Nom de la propri\u00e9t\u00e9\/l&#039;entreprise <\/label>                                        \n                                                                                        <input id=\"hr-form-company-name\" class=\"hr-form-input\" autocomplete=\"name\" type=\"text\" name=\"hr-form-company-name\" ><div id=\"hr-form-company-name-error-container\" class=\"just-validate-error-label hr-field-error-container\" aria-live=\"polite\"><\/div>                                                                                    <\/div>\n                                <\/div>\n                                                                <div class=\"hr-form-field-column hr-form-field-width-50 hr-country hr-form-field-column-elementor-repeater-item-8143090\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-country\" class=\"hr-form-label\">Pays<\/label>                                        \n                                                                                                                                        <div class=\"hr-country-field-wrapper\">\n                                                    <select id=\"hr-country\" class=\"hr-form-input hr-country-select\" placeholder=\"S\u00e9lectionner\" autocomplete=\"country-name\" name=\"hr-country\"  data-placeholder=\"Select a country\"\n                                                        name=\"hr-country\">\n                                                        <option value=\"\" class=\"hr-select-placeholder\" disabled selected>\n                                                            Select a country                                                        <\/option>\n                                                        <option value=\"AF\">Afghanistan<\/option><option value=\"AX\">\u00c5land Islands<\/option><option value=\"AL\">Albania<\/option><option value=\"DZ\">Algeria<\/option><option value=\"AD\">Andorra<\/option><option value=\"AO\">Angola<\/option><option value=\"AI\">Anguilla<\/option><option value=\"AQ\">Antarctica<\/option><option value=\"AG\">Antigua and Barbuda<\/option><option value=\"AR\">Argentina<\/option><option value=\"AM\">Armenia<\/option><option value=\"AW\">Aruba<\/option><option value=\"AU\">Australia<\/option><option value=\"AT\">Austria<\/option><option value=\"AZ\">Azerbaijan<\/option><option value=\"BS\">Bahamas<\/option><option value=\"BH\">Bahrain<\/option><option value=\"BD\">Bangladesh<\/option><option value=\"BB\">Barbados<\/option><option value=\"BY\">Belarus<\/option><option value=\"BE\">Belgium<\/option><option value=\"BZ\">Belize<\/option><option value=\"BJ\">Benin<\/option><option value=\"BM\">Bermuda<\/option><option value=\"BT\">Bhutan<\/option><option value=\"BO\">Bolivia<\/option><option value=\"BQ\">Bonaire, Sint Eustatius and Saba<\/option><option value=\"BA\">Bosnia and Herzegovina<\/option><option value=\"BW\">Botswana<\/option><option value=\"BV\">Bouvet Island<\/option><option value=\"BR\">Brazil<\/option><option value=\"IO\">British Indian Ocean Territory<\/option><option value=\"BN\">Brune\u0130<\/option><option value=\"BG\">Bulgaria<\/option><option value=\"BF\">Burkina Faso<\/option><option value=\"BI\">Burundi<\/option><option value=\"KH\">Cambodia<\/option><option value=\"CM\">Cameroon<\/option><option value=\"CA\">Canada<\/option><option value=\"CV\">Cape Verde<\/option><option value=\"KY\">Cayman Islands<\/option><option value=\"CF\">Central African Republic<\/option><option value=\"TD\">Chad<\/option><option value=\"CL\">Chile<\/option><option value=\"CN\">China<\/option><option value=\"CX\">Christmas Island<\/option><option value=\"CC\">Cocos (Keeling) Islands<\/option><option value=\"CO\">Colombia<\/option><option value=\"KM\">Comoros<\/option><option value=\"CG\">Congo<\/option><option value=\"CK\">Cook Islands<\/option><option value=\"CR\">Costa Rica<\/option><option value=\"CI\">C\u00f4te d&#039;Ivoire<\/option><option value=\"HR\">Croatia<\/option><option value=\"CU\">Cuba<\/option><option value=\"CW\">Cura\u00e7ao<\/option><option value=\"CY\">Cyprus<\/option><option value=\"CZ\">Czechia<\/option><option value=\"CD\">Democratic Republic of the Congo<\/option><option value=\"DK\">Denmark<\/option><option value=\"DJ\">Djibouti<\/option><option value=\"DM\">Dominica<\/option><option value=\"DO\">Dominican Republic<\/option><option value=\"EC\">Ecuador<\/option><option value=\"EG\">Egypt<\/option><option value=\"SV\">El Salvador<\/option><option value=\"GQ\">Equatorial Guinea<\/option><option value=\"ER\">Eritrea<\/option><option value=\"EE\">Estonia<\/option><option value=\"SZ\">Eswatini<\/option><option value=\"ET\">Ethiopia<\/option><option value=\"FK\">Falkland Islands<\/option><option value=\"FO\">Faroe Islands<\/option><option value=\"FJ\">Fiji<\/option><option value=\"FI\">Finland<\/option><option value=\"FR\">France<\/option><option value=\"GF\">French Guiana<\/option><option value=\"PF\">French Polynesia<\/option><option value=\"TF\">French Southern Territories<\/option><option value=\"GA\">Gabon<\/option><option value=\"GM\">Gambia<\/option><option value=\"GE\">Georgia<\/option><option value=\"DE\">Germany<\/option><option value=\"GH\">Ghana<\/option><option value=\"GI\">Gibraltar<\/option><option value=\"GR\">Greece<\/option><option value=\"GL\">Greenland<\/option><option value=\"GD\">Grenada<\/option><option value=\"GP\">Guadeloupe<\/option><option value=\"GU\">Guam<\/option><option value=\"GT\">Guatemala<\/option><option value=\"GG\">Guernsey<\/option><option value=\"GN\">Guinea<\/option><option value=\"GW\">Guinea-Bissau<\/option><option value=\"GY\">Guyana<\/option><option value=\"HT\">Haiti<\/option><option value=\"HM\">Heard Island and McDonald Islands<\/option><option value=\"VA\">Holy See<\/option><option value=\"HN\">Honduras<\/option><option value=\"HK\">Hong Kong<\/option><option value=\"HU\">Hungary<\/option><option value=\"IS\">Iceland<\/option><option value=\"IN\">India<\/option><option value=\"ID\">Indonesia<\/option><option value=\"IR\">Iran<\/option><option value=\"IQ\">Iraq<\/option><option value=\"IE\">Ireland<\/option><option value=\"IM\">Isle of Man<\/option><option value=\"IL\">Israel<\/option><option value=\"IT\">Italy<\/option><option value=\"JM\">Jamaica<\/option><option value=\"JP\">Japan<\/option><option value=\"JE\">Jersey<\/option><option value=\"JO\">Jordan<\/option><option value=\"KZ\">Kazakhstan<\/option><option value=\"KE\">Kenya<\/option><option value=\"KI\">Kiribati<\/option><option value=\"KW\">Kuwait<\/option><option value=\"KG\">Kyrgyzstan<\/option><option value=\"LA\">Laos<\/option><option value=\"LV\">Latvia<\/option><option value=\"LB\">Lebanon<\/option><option value=\"LS\">Lesotho<\/option><option value=\"LR\">Liberia<\/option><option value=\"LY\">Libya<\/option><option value=\"LI\">Liechtenstein<\/option><option value=\"LT\">Lithuania<\/option><option value=\"LU\">Luxembourg<\/option><option value=\"MO\">Macao<\/option><option value=\"MG\">Madagascar<\/option><option value=\"MW\">Malawi<\/option><option value=\"MY\">Malaysia<\/option><option value=\"MV\">Maldives<\/option><option value=\"ML\">Mali<\/option><option value=\"MT\">Malta<\/option><option value=\"MH\">Marshall Islands<\/option><option value=\"MQ\">Martinique<\/option><option value=\"MR\">Mauritania<\/option><option value=\"MU\">Mauritius<\/option><option value=\"YT\">Mayotte<\/option><option value=\"MX\">Mexico<\/option><option value=\"FM\">Micronesia<\/option><option value=\"MD\">Moldova<\/option><option value=\"MC\">Monaco<\/option><option value=\"MN\">Mongolia<\/option><option value=\"ME\">Montenegro<\/option><option value=\"MS\">Montserrat<\/option><option value=\"MA\">Morocco<\/option><option value=\"MZ\">Mozambique<\/option><option value=\"MM\">Myanmar<\/option><option value=\"NA\">Namibia<\/option><option value=\"NR\">Nauru<\/option><option value=\"NP\">Nepal<\/option><option value=\"NL\">Netherlands<\/option><option value=\"NC\">New Caledonia<\/option><option value=\"NZ\">New Zealand<\/option><option value=\"NI\">Nicaragua<\/option><option value=\"NE\">Niger<\/option><option value=\"NG\">Nigeria<\/option><option value=\"NU\">Niue<\/option><option value=\"NF\">Norfolk Island<\/option><option value=\"KP\">North Korea<\/option><option value=\"MK\">North Macedonia<\/option><option value=\"NCY\">Northern Cyprus<\/option><option value=\"MP\">Northern Mariana Islands<\/option><option value=\"NO\">Norway<\/option><option value=\"OM\">Oman<\/option><option value=\"PK\">Pakistan<\/option><option value=\"PW\">Palau<\/option><option value=\"PS\">Palestine<\/option><option value=\"PA\">Panama<\/option><option value=\"PG\">Papua New Guinea<\/option><option value=\"PY\">Paraguay<\/option><option value=\"PE\">Peru<\/option><option value=\"PH\">Philippines<\/option><option value=\"PN\">Pitcairn<\/option><option value=\"PL\">Poland<\/option><option value=\"PT\">Portugal<\/option><option value=\"PR\">Puerto Rico<\/option><option value=\"QA\">Qatar<\/option><option value=\"RE\">R\u00e9union<\/option><option value=\"RO\">Romania<\/option><option value=\"RU\">Russia<\/option><option value=\"RW\">Rwanda<\/option><option value=\"BL\">Saint Barth\u00e9lemy<\/option><option value=\"SH\">Saint Helena, Ascension and Tristan da Cunha<\/option><option value=\"KN\">Saint Kitts And Nevis<\/option><option value=\"LC\">Saint Lucia<\/option><option value=\"MF\">Saint Martin (French part)<\/option><option value=\"PM\">Saint Pierre and Miquelon<\/option><option value=\"VC\">Saint Vincent and the Grenadines<\/option><option value=\"AS\">Samoa<\/option><option value=\"WS\">Samoa<\/option><option value=\"SM\">San Marino<\/option><option value=\"ST\">Sao Tome and Principe<\/option><option value=\"SA\">Saudi Arabia<\/option><option value=\"SN\">Senegal<\/option><option value=\"RS\">Serbia<\/option><option value=\"SC\">Seychelles<\/option><option value=\"SL\">Sierra Leone<\/option><option value=\"SG\">Singapore<\/option><option value=\"SX\">Sint Maarten (Dutch part)<\/option><option value=\"SK\">Slovakia<\/option><option value=\"SI\">Slovenia<\/option><option value=\"SB\">Solomon Islands<\/option><option value=\"SO\">Somalia<\/option><option value=\"ZA\">South Africa<\/option><option value=\"GS\">South Georgia and the South Sandwich Islands<\/option><option value=\"KR\">South Korea<\/option><option value=\"SS\">South Sudan<\/option><option value=\"ES\">Spain<\/option><option value=\"LK\">Sri Lanka<\/option><option value=\"SD\">Sudan<\/option><option value=\"SR\">Suriname<\/option><option value=\"SJ\">Svalbard and Jan Mayen<\/option><option value=\"SE\">Sweden<\/option><option value=\"CH\">Switzerland<\/option><option value=\"SY\">Syria<\/option><option value=\"TW\">Taiwan<\/option><option value=\"TJ\">Tajikistan<\/option><option value=\"TZ\">Tanzania<\/option><option value=\"TH\">Thailand<\/option><option value=\"TL\">Timor-Leste<\/option><option value=\"TG\">Togo<\/option><option value=\"TK\">Tokelau<\/option><option value=\"TO\">Tonga<\/option><option value=\"TT\">Trinidad And Tobago<\/option><option value=\"TN\">Tunisia<\/option><option value=\"TR\">T\u00fcrkiye<\/option><option value=\"TM\">Turkmenistan<\/option><option value=\"TC\">Turks and Caicos Islands<\/option><option value=\"TV\">Tuvalu<\/option><option value=\"UG\">Uganda<\/option><option value=\"UA\">Ukraine<\/option><option value=\"AE\">United Arab Emirates<\/option><option value=\"GB\">United Kingdom<\/option><option value=\"UM\">United States Minor Outlying Islands<\/option><option value=\"US\">United States of America<\/option><option value=\"UY\">Uruguay<\/option><option value=\"UZ\">Uzbekistan<\/option><option value=\"VU\">Vanuatu<\/option><option value=\"VE\">Venezuela<\/option><option value=\"VN\">Viet nam<\/option><option value=\"VG\">Virgin Islands (British)<\/option><option value=\"VI\">Virgin Islands (U.S.)<\/option><option value=\"WF\">Wallis and Futuna<\/option><option value=\"EH\">Western Sahara<\/option><option value=\"YE\">Yemen<\/option><option value=\"ZM\">Zambia<\/option><option value=\"ZW\">Zimbabwe<\/option>                                                    <\/select>\n                                                <\/div>\n                                                <div id=\"hr-country-error-container\" class=\"just-validate-error-label hr-field-error-container\" aria-live=\"polite\"><\/div>                                                                                    <\/div>\n                                <\/div>\n                                                                <div class=\"hr-form-field-column hr-form-field-width-100 privacy_statement hr-form-field-column-elementor-repeater-item-effd43d\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                        \n                                                                                        <div class=\"hr-form-checkbox-wrapper\">\n                                                    <input type=\"hidden\" name=\"privacy_statement\" value=\"false\">\n                                                    <label class=\"hr-checkbox-label\">\n                                                        <input id=\"privacy_statement\" class=\"hr-form-checkbox\" value=\"true\" placeholder=\"Enter your text here\" autocomplete=\"address-level1\" type=\"checkbox\" name=\"privacy_statement\" required=\"required\"  data-salesforce-field=\"no\">\n                                                        <span class=\"hr-checkbox-text\"><a href=\"https:\/\/hotelrunner.com\/fr\/privacy-statement-for-request-complaint-suggestion-processes\/\" target=\"_blank\" rel=\"noopener\">\nD\u00e9claration de confidentialit\u00e9 relative aux processus de demande \/ r\u00e9clamation \/ suggestion.<\/a><\/span>\n                                                    <\/label>\n                                                                                                    <\/div>\n                                                                                    <\/div>\n                                <\/div>\n                                                                <div class=\"hr-form-field-column hr-form-field-width-100 commerical-text hr-form-field-column-elementor-repeater-item-1230e4e\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                        \n                                                                                        <div class=\"hr-form-checkbox-wrapper\">\n                                                    <input type=\"hidden\" name=\"commerical-text\" value=\"false\">\n                                                    <label class=\"hr-checkbox-label\">\n                                                        <input id=\"commerical-text\" class=\"hr-form-checkbox\" value=\"true\" placeholder=\"Enter your text here\" autocomplete=\"off\" type=\"checkbox\" name=\"commerical-text\"  data-salesforce-field=\"yes\">\n                                                        <span class=\"hr-checkbox-text\">J\u2019ai lu et j\u2019accepte le consentement aux <a href=\"https:\/\/hotelrunner.com\/fr\/commercial-electronic-message-consent-text\/\" target=\"_blank\" rel=\"noopener\">communications \u00e9lectroniques commerciales<\/a><\/span>\n                                                    <\/label>\n                                                                                                                                                                    <input type=\"hidden\" name=\"commerical-text-value\" value=\"false\" data-salesforce-reverse=\"yes\">\n                                                                                                    <\/div>\n                                                                                    <\/div>\n                                <\/div>\n                                                <\/div>\n\n                                    <div class=\"hr-form-button-wrapper\" style=\"text-align: right;\">\n                        <button type=\"submit\" class=\"button hr-form-submit\">\n                            Demandez une d\u00e9mo                        <\/button>\n                    <\/div>\n                            <\/form>\n\n        <\/div>\n\n        \n        <!-- Hidden Fields Handler -->\n        <script>\n            (function ($) {\n                \"use strict\";\n\n                function initializePhoneInput(input) {\n                    \/\/ Check if intlTelInput is loaded and input is not already initialized\n                    if (typeof window.intlTelInput === \"function\" && !$(input).data(\"iti\")) {\n                        const initialCountry = (input.dataset.initialCountry || \"\").trim();\n\n                        \/\/ WPML fallback country mapping (based on current WPML language).\n                        \/\/ This is used when the geoIpLookup API times out or errors.\n                        const wpmlLang = \"fr\";\n                        let fallbackCountry = \"us\";\n                        if (wpmlLang.startsWith(\"tr\")) {\n                            fallbackCountry = \"tr\";\n                        } else if (wpmlLang.startsWith(\"es\")) {\n                            fallbackCountry = \"es\";\n                        } else if (wpmlLang.startsWith(\"fr\")) {\n                            fallbackCountry = \"fr\";\n                        } else {\n                            fallbackCountry = \"us\";\n                        }\n\n                        const enableGeoIpLookup = (input.dataset.enableGeoipLookup || \"yes\") === \"yes\";\n                        const shouldUseGeoIpLookup = enableGeoIpLookup && !initialCountry;\n                        const preferredAttr = input.getAttribute('data-preferred-countries');\n                        const preferredCountries = (preferredAttr === null)\n                            ? []\n                            : preferredAttr.split(',').map(s => s.trim()).filter(Boolean);\n\n                        const geoIpLookup = (success, failure) => {\n                            const timeoutMs = 2500; \/\/ Fail fast so it doesn't block UX.\n                            let settled = false;\n\n                            \/\/ Make sure we always resolve, even on network stalls.\n                            const timeoutId = setTimeout(() => {\n                                if (settled) return;\n                                settled = true;\n                                if (controller) controller.abort();\n                                success(fallbackCountry);\n                            }, timeoutMs);\n\n                            const controller = typeof AbortController !== \"undefined\" ? new AbortController() : null;\n\n                            fetch(\"https:\/\/ipapi.co\/json\", {\n                                signal: controller ? controller.signal : undefined\n                            })\n                                .then(res => res.json())\n                                .then(data => {\n                                    if (settled) return;\n                                    settled = true;\n                                    const code = (data && data.country_code) ? String(data.country_code).toLowerCase() : fallbackCountry;\n                                    success(code);\n                                })\n                                .catch(() => {\n                                    if (settled) return;\n                                    settled = true;\n                                    success(fallbackCountry);\n                                })\n                                .finally(() => {\n                                    clearTimeout(timeoutId);\n                                });\n                        };\n\n                        const itiOptions = {\n                            initialCountry: shouldUseGeoIpLookup ? \"auto\" : (initialCountry ? initialCountry : fallbackCountry),\n                            separateDialCode: true,\n                            nationalMode: false,\n                            formatOnDisplay: true,\n                            autoPlaceholder: \"polite\",\n                            preferredCountries: preferredCountries,\n                            allowDropdown: true,\n                            dropdownContainer: document.body,\n                            utilsScript: \"https:\/\/staging-sites.hotelrunner.com\/wp-content\/themes\/hotelrunner\/assets\/js\/\/vendor\/utils.js\" \/\/ Changed to non-minified version\n                        };\n\n                        if (shouldUseGeoIpLookup) {\n                            itiOptions.geoIpLookup = geoIpLookup;\n                        }\n\n                        const iti = window.intlTelInput(input, itiOptions);\n\n                        \/\/ Store the instance on the input element\n                        $(input).data(\"iti\", iti);\n\n                        const fullHidden = input.form\n                            ? input.form.querySelector('input.hr-phone-full-value[data-phone-field=\"' + CSS.escape(input.name) + '\"]')\n                            : null;\n\n                        function formatPhoneFullValue(itiInstance) {\n                            const fullNumber = itiInstance.getNumber() || '';\n                            return fullNumber.replace(\/\\D\/g, '');\n                        }\n\n                        function syncPhoneFullValue() {\n                            if (!fullHidden) {\n                                return;\n                            }\n                            fullHidden.value = formatPhoneFullValue(iti);\n                        }\n\n                        \/\/ Handle input changes\n                        input.addEventListener('input', function (e) {\n                            const value = e.target.value;\n                            \/\/ Remove any non-numeric characters\n                            const numericValue = value.replace(\/\\D\/g, '');\n\n                            \/\/ Only remove the country code if it's at the start of the input\n                            if (value.startsWith('+')) {\n                                const countryCode = iti.getSelectedCountryData().dialCode;\n                                if (value.startsWith('+' + countryCode)) {\n                                    e.target.value = numericValue.substring(countryCode.length);\n                                }\n                            } else {\n                                e.target.value = numericValue;\n                            }\n                            syncPhoneFullValue();\n                        });\n\n                        \/\/ Prevent non-numeric input\n                        input.addEventListener('keypress', function (e) {\n                            const charCode = (e.which) ? e.which : e.keyCode;\n                            if (charCode > 31 && (charCode < 48 || charCode > 57)) {\n                                e.preventDefault();\n                            }\n                        });\n\n                        input.addEventListener('countrychange', syncPhoneFullValue);\n\n                        \/\/ Handle form submission \u2014 dial code + number (no + or spaces) goes to mobile_phone_full hidden field\n                        $(input.form).on(\"submit\", function () {\n                            syncPhoneFullValue();\n                        });\n\n                        \/\/ Add validation class on blur\n                        input.addEventListener(\"blur\", function () {\n                            syncPhoneFullValue();\n                            if (input.value.trim()) {\n                                if (iti.isValidNumber()) {\n                                    $(input).removeClass(\"error\").addClass(\"valid\");\n                                } else {\n                                    $(input).removeClass(\"valid\").addClass(\"error\");\n                                }\n                            }\n                        });\n\n                        syncPhoneFullValue();\n                    }\n                }\n\n                function initializeFormPhoneInputs(formId) {\n                    const form = document.getElementById(formId);\n                    if (!form) return;\n                    \n                    const phoneInputs = $(form).find(\".hr-phone-input\");\n                    if (phoneInputs.length > 0 && typeof window.intlTelInput === \"function\") {\n                        phoneInputs.each(function () {\n                            if (!$(this).data(\"iti\")) {\n                                initializePhoneInput(this);\n                            }\n                        });\n                    }\n                }\n\n                \/\/ Initialize phone inputs for this specific form\n                initializeFormPhoneInputs('hr-form-6a44cdcaf1ffa');\n\n                \/\/ Also initialize on document ready to ensure DOM is fully loaded\n                $(document).ready(function () {\n                    initializeFormPhoneInputs('hr-form-6a44cdcaf1ffa');\n                });\n            })(jQuery);\n\n\n            document.addEventListener('DOMContentLoaded', function () {\n                const form = document.getElementById('hr-form-6a44cdcaf1ffa');\n\n                \/\/ Function to get all hidden fields\n                const hiddenFields = form.querySelectorAll('input[type=\"hidden\"][data-field-type]');\n                const truncateHiddenUrl = (value, maxLength = 255) => {\n                    const str = String(value || '');\n                    return str.length > maxLength ? str.slice(0, maxLength) : str;\n                };\n\n                hiddenFields.forEach(field => {\n                    const fieldType = field.getAttribute('data-field-type');\n\n                    switch (fieldType) {\n                        case 'browser_info':\n                            field.value = navigator.userAgent;\n                            break;\n\n                        case 'primary_language':\n                            field.value = navigator.language || 'unknown';\n                            break;\n\n                        case 'all_languages':\n                            field.value = navigator.languages ? navigator.languages.join(', ') : 'unknown';\n                            break;\n\n                        case 'cookies_enabled':\n                            field.value = navigator.cookieEnabled ? 'yes' : 'no';\n                            break;\n\n                        case 'screen_resolution':\n                            field.value = `${screen.width}x${screen.height}`;\n                            break;\n\n                        case 'available_screen':\n                            field.value = `${screen.availWidth}x${screen.availHeight}`;\n                            break;\n\n                        case 'window_size':\n                            field.value = `${window.outerWidth}x${window.outerHeight}`;\n                            \/\/ Update on resize\n                            window.addEventListener('resize', () => {\n                                field.value = `${window.outerWidth}x${window.outerHeight}`;\n                            });\n                            break;\n\n                        case 'timezone_name':\n                            try {\n                                field.value = Intl.DateTimeFormat().resolvedOptions().timeZone;\n                            } catch (e) {\n                                field.value = 'unknown';\n                            }\n                            break;\n\n                        case 'timezone_offset':\n                            field.value = new Date().getTimezoneOffset();\n                            break;\n\n                        case 'current_url': {\n                            const currentUrl = window.location.href;\n                            field.value = field.getAttribute('data-truncate-url') === 'yes'\n                                ? truncateHiddenUrl(currentUrl)\n                                : currentUrl;\n                            break;\n                        }\n\n                        case 'referrer_url': {\n                            const referrerUrl = document.referrer || 'direct';\n                            field.value = field.getAttribute('data-truncate-url') === 'yes'\n                                ? truncateHiddenUrl(referrerUrl)\n                                : referrerUrl;\n                            break;\n                        }\n\n                        case 'page_load_time':\n                            field.value = Math.round(performance.now());\n                            break;\n\n                        case 'navigation_type':\n                            try {\n                                const navigation = performance.getEntriesByType('navigation')[0];\n                                field.value = navigation ? navigation.type : 'unknown';\n                            } catch (e) {\n                                field.value = 'unknown';\n                            }\n                            break;\n                    }\n                });\n            });\n        <\/script>\n\n        <!-- Checkbox Salesforce Field Handler -->\n        <script>\n            document.addEventListener('DOMContentLoaded', function () {\n                const form = document.getElementById('hr-form-6a44cdcaf1ffa');\n                \n                \/\/ Handle Salesforce checkbox fields\n                form.querySelectorAll('input[type=\"checkbox\"][data-salesforce-field=\"yes\"]').forEach(checkbox => {\n                    const hiddenFieldName = checkbox.id + '-value';\n                    const hiddenField = form.querySelector(`input[type=\"hidden\"][name=\"${hiddenFieldName}\"]`);\n                    \n                    if (hiddenField) {\n                        const isReversed = hiddenField.getAttribute('data-salesforce-reverse') === 'yes';\n                        \n                        \/\/ Update hidden field on checkbox change\n                        checkbox.addEventListener('change', function () {\n                            let value;\n                            if (isReversed) {\n                                \/\/ Reverse logic: checked = false, unchecked = true\n                                value = this.checked ? 'false' : 'true';\n                            } else {\n                                \/\/ Normal logic: checked = true, unchecked = false\n                                value = this.checked ? 'true' : 'false';\n                            }\n                            hiddenField.value = value;\n                        });\n                        \n                        \/\/ Set initial value\n                        let initialValue;\n                        if (isReversed) {\n                            initialValue = checkbox.checked ? 'false' : 'true';\n                        } else {\n                            initialValue = checkbox.checked ? 'true' : 'false';\n                        }\n                        hiddenField.value = initialValue;\n                    }\n                });\n            });\n        <\/script>\n\n        <!-- Conditional Fields Logic -->\n        <script>\n            document.addEventListener('DOMContentLoaded', function () {\n                const form = document.getElementById('hr-form-6a44cdcaf1ffa');\n                const conditions = {};\n\n                \n                function evaluateCondition(condition, value) {\n                    \/\/ Handle array values (for multiple select)\n                    if (Array.isArray(value)) {\n                        switch (condition.operator) {\n                            case 'equals':\n                                return value.includes(condition.value);\n                            case 'not_equals':\n                                return !value.includes(condition.value);\n                            case 'contains':\n                                return value.some(v => v.includes(condition.value));\n                            case 'not_contains':\n                                return !value.some(v => v.includes(condition.value));\n                            case 'greater_than':\n                                return value.some(v => parseFloat(v) > parseFloat(condition.value));\n                            case 'less_than':\n                                return value.some(v => parseFloat(v) < parseFloat(condition.value));\n                            default:\n                                return false;\n                        }\n                    }\n\n                    \/\/ Handle single values\n                    switch (condition.operator) {\n                        case 'equals':\n                            return value === condition.value;\n                        case 'not_equals':\n                            return value !== condition.value;\n                        case 'contains':\n                            return value.includes(condition.value);\n                        case 'not_contains':\n                            return !value.includes(condition.value);\n                        case 'greater_than':\n                            return parseFloat(value) > parseFloat(condition.value);\n                        case 'less_than':\n                            return parseFloat(value) < parseFloat(condition.value);\n                        default:\n                            return false;\n                    }\n                }\n\n                function updateConditionalFields() {\n                    for (const fieldId in conditions) {\n                        const condition = conditions[fieldId];\n                        \/\/ Ensure we only search for fields within the current form\n                        const targetInput = form.querySelector(`[name=\"${condition.targetField}\"]`);\n\n                        let fieldToToggle = form.querySelector(`#${fieldId}`) || form.querySelector(`[name=\"${fieldId}\"]`);\n                        fieldToToggle = fieldToToggle ? fieldToToggle.closest('.hr-form-field-column') : null;\n\n                        if (targetInput && fieldToToggle) {\n                            const targetValue = $(targetInput).hasClass('hr-select2-field') ? $(targetInput).val() : targetInput.value;\n                            const shouldShow = evaluateCondition(condition, targetValue);\n\n                            \/\/ Select all form elements within the current field to toggle\n                            const formElements = fieldToToggle.querySelectorAll('input, select, textarea');\n\n                            if (shouldShow) {\n                                fieldToToggle.classList.remove('hr-conditional-field');\n                                fieldToToggle.style.display = '';\n\n                                formElements.forEach(el => el.classList.remove('condition-false'));\n\n                            } else {\n                                fieldToToggle.classList.add('hr-conditional-field');\n                                fieldToToggle.style.display = 'none';\n                                formElements.forEach(el => el.classList.add('condition-false'));\n\n                                \/\/ Hidden conditional fields must not keep invalid state (breaks submit button \/ revalidate).\n                                formElements.forEach(function (el) {\n                                    if (!el.id) return;\n                                    el.classList.remove('is-invalid', 'is-valid');\n                                    const errEl = form.querySelector('#' + CSS.escape(el.id) + '-error-container');\n                                    if (errEl) {\n                                        errEl.innerHTML = '';\n                                    }\n                                    const s2 = el.nextElementSibling;\n                                    if (s2 && s2.classList && s2.classList.contains('select2-container')) {\n                                        s2.querySelectorAll('.select2-selection').forEach(function (node) {\n                                            node.classList.remove('is-invalid', 'is-valid');\n                                        });\n                                    }\n                                });\n                            }\n\n                            \/\/ Handle required fields\n                            formElements.forEach(input => {\n                                if (!shouldShow) {\n                                    input.dataset.wasRequired = input.required;\n                                    input.required = false;\n                                } else if (input.dataset.wasRequired) {\n                                    input.required = true;\n                                }\n                            });\n\n                            if (shouldShow) {\n                                formElements.forEach(function (el) {\n                                    if (!el.id) return;\n                                    el.classList.remove('is-invalid', 'is-valid');\n                                    const errEl = form.querySelector('#' + CSS.escape(el.id) + '-error-container');\n                                    if (errEl) {\n                                        errEl.innerHTML = '';\n                                    }\n                                    const s2 = el.nextElementSibling;\n                                    if (s2 && s2.classList && s2.classList.contains('select2-container')) {\n                                        s2.querySelectorAll('.select2-selection').forEach(function (node) {\n                                            node.classList.remove('is-invalid', 'is-valid');\n                                        });\n                                    }\n                                });\n                            }\n                        }\n                    }\n                }\n\n                \/\/ Update condition field options dynamically\n                form.querySelectorAll('input, select, textarea').forEach(input => {\n                    \/\/ Handle regular input events\n                    input.addEventListener('input', updateConditionalFields);\n                    input.addEventListener('change', updateConditionalFields);\n\n                    \/\/ Handle Select2 events if the field is a Select2\n                    if ($(input).hasClass('hr-select2-field')) {\n                        $(input).on('select2:select select2:unselect select2:clear', function () {\n                            updateConditionalFields();\n                        });\n                    }\n                });\n\n                \/\/ Initial check\n                updateConditionalFields();\n            });\n        <\/script>\n\n        <script>\n            document.addEventListener('DOMContentLoaded', function () {\n                const form = document.getElementById('hr-form-6a44cdcaf1ffa');\n                let isSubmitting = false;\n                const debugEnabled = new URLSearchParams(window.location.search).get('hr_form_debug') === '1';\n                const debugLog = function (label, data) {\n                    if (!debugEnabled) return;\n                    console.log('[HR Form Debug][' + form.id + '] ' + label, data || {});\n                };\n                if (debugEnabled) {\n                    form.addEventListener('submit', function (event) {\n                        debugLog('native submit event', {\n                            defaultPrevented: event.defaultPrevented,\n                            submitter: event.submitter ? (event.submitter.id || event.submitter.name || event.submitter.className || event.submitter.tagName) : null\n                        });\n                    }, true);\n                }\n                \/\/ Strict Latin-only allowlist:\n                \/\/ - Latin letters (including accented Latin letters)\n                \/\/ - Latin combining diacritics block (U+0300-U+036F)\n                \/\/ - Numbers, whitespace\n                \/\/ - ASCII punctuation only\n                const allowedLatinPattern = \/[^\\p{Script=Latin}\\u0300-\\u036F\\p{N}\\p{Zs}\\r\\n\\t!\"#$%&'()*+,\\-.\/:;<=>?@[\\\\\\]^_`{|}~]\/gu;\n                const blockedCharsDetector = \/[^\\p{Script=Latin}\\u0300-\\u036F\\p{N}\\p{Zs}\\r\\n\\t!\"#$%&'()*+,\\-.\/:;<=>?@[\\\\\\]^_`{|}~]\/u;\n                const hasBlockedChars = (value) => blockedCharsDetector.test(value || '');\n                const blockedCharsMessage = 'Please use Latin characters only (A-Z).';\n\n                function getArabicRestrictedFields() {\n                    return form.querySelectorAll('input:not([type=\"hidden\"]):not([type=\"checkbox\"]):not([type=\"radio\"]):not([type=\"submit\"]):not([type=\"button\"]):not([type=\"file\"]), textarea');\n                }\n\n                function getErrorContainer(input) {\n                    if (!input || !input.id) return null;\n                    return form.querySelector('#' + input.id + '-error-container');\n                }\n\n                function showNativeBlockedCharsMessage(input) {\n                    if (!input || typeof input.setCustomValidity !== 'function' || typeof input.reportValidity !== 'function') {\n                        return;\n                    }\n                    input.setCustomValidity(blockedCharsMessage);\n                    input.reportValidity();\n                    setTimeout(function () {\n                        input.setCustomValidity('');\n                    }, 1500);\n                }\n\n                function showBlockedCharsMessage(input) {\n                    showNativeBlockedCharsMessage(input);\n                }\n\n                function clearBlockedCharsMessage(input) {\n                    if (input && typeof input.setCustomValidity === 'function') {\n                        input.setCustomValidity('');\n                    }\n                }\n\n                \/\/ Initialize JustValidate with custom styling\n                const validator = new JustValidate('#hr-form-6a44cdcaf1ffa', {\n                    validateBeforeSubmitting: false,\n                    lockForm: true,\n                    focusInvalidField: true,\n                    errorFieldCssClass: 'is-invalid',\n                    successFieldCssClass: 'is-valid',\n                    errorLabelCssClass: 'is-label-invalid',\n                    errorLabelStyle: {\n                        color: '#e3342f',\n                        fontSize: '12px'\n                    },\n                    successFieldStyle: {\n                        borderColor: '#38c172'\n                    },\n                    errorFieldStyle: {\n                        borderColor: '#e3342f'\n                    },\n                    onValidate: ({ target }) => {\n                        \/\/ Handle Select2 validation classes\n                        if ($(target).hasClass('select2-hidden-accessible')) {\n                            const select2Container = $(target).next('.select2-container');\n                            if ($(target).hasClass('is-valid')) {\n                                select2Container.find('.select2-selection').addClass('is-valid').removeClass('is-invalid');\n                            } else if ($(target).hasClass('is-invalid')) {\n                                select2Container.find('.select2-selection').addClass('is-invalid').removeClass('is-valid');\n                            }\n                        }\n                    }\n                });\n                \/\/ Attach validator to form for stepper access\n                form._justValidateInstance = validator;\n                const isRegisteredValidatorField = (selector) => {\n                    if (!selector || !validator || !validator.fields) {\n                        return false;\n                    }\n                    return Object.values(validator.fields).some((field) => {\n                        return field && field.elem && ('#' + field.elem.id) === selector;\n                    });\n                };\n\n                \/\/ Add honeypot validation rule\n                validator.addField('input[name=\"hr_website\"]', [\n                    {\n                        rule: 'maxLength',\n                        value: 0,\n                        errorMessage: 'Invalid submission detected'\n                    }\n                ]);\n\n                \/\/ Add validation rules for each field\n                                                            const fieldRules_0 = [];\n                                                                                fieldRules_0.push({\"rule\":\"required\",\"errorMessage\":\"Veuillez saisir votre pr\\u00e9nom.\"});\n                        \n                        \/\/ Add field to validator \u2013 errorsContainer routes errors outside inner so label stays centered\n                                                validator.addField('#hr-form-firstname', fieldRules_0, { errorsContainer: '#hr-form-firstname-error-container' });\n                                                                                                                                                const fieldRules_1 = [];\n                                                                                fieldRules_1.push({\"rule\":\"required\",\"errorMessage\":\"Veuillez saisir votre nom de famille.\"});\n                        \n                        \/\/ Add field to validator \u2013 errorsContainer routes errors outside inner so label stays centered\n                                                validator.addField('#hr-form-lastname', fieldRules_1, { errorsContainer: '#hr-form-lastname-error-container' });\n                                                                                                                                                const fieldRules_2 = [];\n                                                                                fieldRules_2.push({\"rule\":\"required\",\"errorMessage\":\"Veuillez saisir votre adresse e-mail.\\n\"});\n                                                                                fieldRules_2.push({\"rule\":\"email\",\"errorMessage\":\"Veuillez saisir une adresse e-mail valide.\\n\"});\n                        \n                        \/\/ Add field to validator \u2013 errorsContainer routes errors outside inner so label stays centered\n                                                validator.addField('#email', fieldRules_2, { errorsContainer: '#email-error-container' });\n                                                                                                                                                const fieldRules_3 = [];\n                                                                                fieldRules_3.push({\"rule\":\"required\",\"errorMessage\":\"Veuillez saisir votre num\\u00e9ro de t\\u00e9l\\u00e9phone portable.\"});\n                        \n                        \/\/ Add field to validator \u2013 errorsContainer routes errors outside inner so label stays centered\n                                                validator.addField('#hr-form-phone', fieldRules_3, { errorsContainer: '#hr-form-phone-error-container' });\n                                                                                                                                                const fieldRules_4 = [];\n                                                                                fieldRules_4.push({\"rule\":\"required\",\"errorMessage\":\"Veuillez saisir le nom de votre entreprise.\"});\n                        \n                        \/\/ Add field to validator \u2013 errorsContainer routes errors outside inner so label stays centered\n                                                validator.addField('#hr-form-company-name', fieldRules_4, { errorsContainer: '#hr-form-company-name-error-container' });\n                                                                                                                                                const fieldRules_5 = [];\n                                                                                fieldRules_5.push({\"rule\":\"required\",\"errorMessage\":\"Veuillez s\\u00e9lectionner votre pays.\"});\n                        \n                        \/\/ Add field to validator \u2013 errorsContainer routes errors outside inner so label stays centered\n                                                validator.addField('#hr-country', fieldRules_5, { errorsContainer: '#hr-country-error-container' });\n                                                                                                                                                                                                                const fieldRules_6 = [{\"rule\":\"required\",\"errorMessage\":\"Ce champ est n\\u00e9cessaire.\"}];\n                        if (fieldRules_6.length > 0) {\n                            validator.addField('#privacy_statement', fieldRules_6);\n                        }\n                                                                                                                                                const fieldRules_7 = [];\n                        if (fieldRules_7.length > 0) {\n                            validator.addField('#commerical-text', fieldRules_7);\n                        }\n                                    \n                function hrSkipLiveValidationTarget(target) {\n                    if (!target || !target.id || !form.contains(target)) {\n                        return true;\n                    }\n                    if (target.name === 'hr_website') {\n                        return true;\n                    }\n                    if (target.classList.contains('condition-false')) {\n                        return true;\n                    }\n                    const col = target.closest('.hr-form-field-column');\n                    if (col && col.classList.contains('hr-conditional-field')) {\n                        return true;\n                    }\n                    if (col && col.style.display === 'none') {\n                        return true;\n                    }\n                    const step = target.closest('.hr-form-step-fields');\n                    if (step && step.style.display === 'none') {\n                        return true;\n                    }\n                    return false;\n                }\n\n                function hrGetActiveStepFields(formEl) {\n                    if (!formEl.classList.contains('hr-form-step-mode')) {\n                        return null;\n                    }\n                    const steps = formEl.querySelectorAll('.hr-form-step-fields');\n                    for (let i = 0; i < steps.length; i++) {\n                        if (window.getComputedStyle(steps[i]).display !== 'none') {\n                            return steps[i];\n                        }\n                    }\n                    return null;\n                }\n\n                function hrIsStepFormLastStep(formEl) {\n                    if (!formEl.classList.contains('hr-form-step-mode')) {\n                        return true;\n                    }\n                    const steps = formEl.querySelectorAll('.hr-form-step-fields');\n                    const active = hrGetActiveStepFields(formEl);\n                    if (!active || !steps.length) {\n                        return false;\n                    }\n                    return active === steps[steps.length - 1];\n                }\n\n                function hrTriggerStepNext(formEl) {\n                    const activeStep = hrGetActiveStepFields(formEl);\n                    if (!activeStep || typeof jQuery === 'undefined') {\n                        return;\n                    }\n                    const $nextBtn = jQuery(activeStep).find('.hr-form-step-next').not('button[type=\"submit\"], .hr-form-submit');\n                    if ($nextBtn.length) {\n                        $nextBtn.trigger('click');\n                    }\n                }\n\n                function hrFieldSkippedForSubmitValidation(elem) {\n                    if (!elem || !form.contains(elem)) {\n                        return true;\n                    }\n                    if (elem.classList.contains('condition-false')) {\n                        return true;\n                    }\n                    const step = elem.closest('.hr-form-step-fields');\n                    if (step && window.getComputedStyle(step).display === 'none') {\n                        return true;\n                    }\n                    const col = elem.closest('.hr-form-field-column');\n                    if (col && window.getComputedStyle(col).display === 'none') {\n                        return true;\n                    }\n                    return false;\n                }\n\n                function hrClearValidationUiForField(el) {\n                    if (!el || !el.id) return;\n                    const errEl = form.querySelector('#' + CSS.escape(el.id) + '-error-container');\n                    if (errEl) {\n                        errEl.innerHTML = '';\n                    }\n                    const s2 = el.nextElementSibling;\n                    if (s2 && s2.classList && s2.classList.contains('select2-container')) {\n                        s2.querySelectorAll('.select2-selection').forEach(function (node) {\n                            node.classList.remove('is-invalid', 'is-valid');\n                        });\n                    }\n                }\n\n                function hrSyncValidatorSkippedFields() {\n                    $.each(validator.fields, function (index, field) {\n                        const elem = field.elem;\n                        if (!elem) return;\n                        if (hrFieldSkippedForSubmitValidation(elem)) {\n                            field.isValid = true;\n                            elem.classList.remove('is-invalid', 'is-valid');\n                            hrClearValidationUiForField(elem);\n                        }\n                    });\n                }\n\n                \/**\n                 * JustValidate's aggregate isValid can stay false when only hidden steps \/\n                 * conditional fields fail. After syncing skipped fields, treat the form as\n                 * valid only if every non-skipped registered field is valid.\n                 *\/\n                function hrBlockingInvalidFieldKeys(v) {\n                    hrSyncValidatorSkippedFields();\n                    const keys = [];\n                    Object.values(v.fields || {}).forEach(function (field) {\n                        if (!field || !field.elem) return;\n                        if (hrFieldSkippedForSubmitValidation(field.elem)) {\n                            return;\n                        }\n                        if (field.isValid === false) {\n                            keys.push(field.elem.id || field.elem.name || '(field)');\n                        }\n                        if (field.isValid === undefined) {\n                            keys.push((field.elem.id || field.elem.name || '(field)') + ':pending');\n                        }\n                    });\n                    if (v.groupFields && Object.keys(v.groupFields).length) {\n                        Object.values(v.groupFields).forEach(function (g) {\n                            if (g && (g.isValid === false || g.isValid === undefined)) {\n                                keys.push('(group)');\n                            }\n                        });\n                    }\n                    return keys;\n                }\n\n                \/\/ focusout bubbles; revalidates after leaving any field (including conditional fields when visible)\n                form.addEventListener('focusout', function (e) {\n                    const input = e.target;\n                    if (!input.matches || !input.matches('input, select, textarea')) {\n                        return;\n                    }\n                    if (hrSkipLiveValidationTarget(input)) {\n                        return;\n                    }\n                    const selector = '#' + CSS.escape(input.id);\n                    if (!isRegisteredValidatorField(selector)) {\n                        return;\n                    }\n                    validator.revalidateField(selector);\n                });\n\n                if (typeof jQuery !== 'undefined') {\n                    jQuery(form).on('select2:close', 'select.hr-select2-field, select.hr-country-select', function () {\n                        if (hrSkipLiveValidationTarget(this)) {\n                            return;\n                        }\n                        const selector = '#' + CSS.escape(this.id);\n                        if (!isRegisteredValidatorField(selector)) {\n                            return;\n                        }\n                        validator.revalidateField(selector);\n                    });\n                }\n\n                \/\/ Block Arabic characters on typing and pasting.\n                getArabicRestrictedFields().forEach((input) => {\n                    input.addEventListener('beforeinput', function (event) {\n                        if (typeof event.data === 'string' && hasBlockedChars(event.data)) {\n                            event.preventDefault();\n                            showBlockedCharsMessage(this);\n                        }\n                    });\n\n                    input.addEventListener('paste', function (event) {\n                        const cd = event.clipboardData || window.clipboardData;\n                        const text = cd ? (cd.getData('text\/plain') || cd.getData('text') || '') : '';\n                        if (hasBlockedChars(text)) {\n                            event.preventDefault();\n                            showBlockedCharsMessage(this);\n                        }\n                    });\n\n                    input.addEventListener('drop', function (event) {\n                        const text = event.dataTransfer ? event.dataTransfer.getData('text\/plain') : '';\n                        if (hasBlockedChars(text)) {\n                            event.preventDefault();\n                            showBlockedCharsMessage(this);\n                        }\n                    });\n\n                    \/\/ Fallback for drag-drop\/autofill\/IME edge cases.\n                    input.addEventListener('input', function () {\n                        if (hasBlockedChars(this.value)) {\n                            this.value = this.value.replace(allowedLatinPattern, '');\n                            showBlockedCharsMessage(this);\n                        } else {\n                            clearBlockedCharsMessage(this);\n                        }\n                    });\n                });\n\n                function splitFullNameField(input) {\n                    const fullName = (input.value || '').trim();\n                    const firstTarget = input.getAttribute('data-fullname-first-target');\n                    const lastTarget = input.getAttribute('data-fullname-last-target');\n                    const firstHidden = firstTarget ? form.querySelector('input[type=\"hidden\"][name=\"' + CSS.escape(firstTarget) + '\"]') : null;\n                    const lastHidden = lastTarget ? form.querySelector('input[type=\"hidden\"][name=\"' + CSS.escape(lastTarget) + '\"]') : null;\n\n                    if (!firstHidden || !lastHidden) {\n                        return;\n                    }\n\n                    if (!fullName) {\n                        firstHidden.value = '';\n                        lastHidden.value = '';\n                        return;\n                    }\n\n                    const nameParts = fullName.split(\/\\s+\/).filter(Boolean);\n                    if (nameParts.length === 1) {\n                        firstHidden.value = nameParts[0];\n                        lastHidden.value = '';\n                        return;\n                    }\n\n                    firstHidden.value = nameParts.shift();\n                    lastHidden.value = nameParts.join(' ');\n                }\n\n                function splitAllFullNameFields() {\n                    form.querySelectorAll('input[data-fullname-splitter=\"yes\"]').forEach(function (input) {\n                        splitFullNameField(input);\n                    });\n                }\n\n                function formatPhoneFullValue(itiInstance) {\n                    const fullNumber = itiInstance.getNumber() || '';\n                    return fullNumber.replace(\/\\D\/g, '');\n                }\n\n                function syncAllPhoneFullFields() {\n                    form.querySelectorAll('.hr-phone-input').forEach(function (input) {\n                        const iti = $(input).data('iti');\n                        const fullHidden = form.querySelector(\n                            'input.hr-phone-full-value[data-phone-field=\"' + CSS.escape(input.name) + '\"]'\n                        );\n                        if (!fullHidden || !iti || typeof iti.getNumber !== 'function') {\n                            return;\n                        }\n                        fullHidden.value = formatPhoneFullValue(iti);\n                    });\n                }\n\n                \/\/ Split when user blurs the field (including tab navigation)\n                form.querySelectorAll('input[data-fullname-splitter=\"yes\"]').forEach(function (input) {\n                    input.addEventListener('blur', function () {\n                        splitFullNameField(this);\n                    });\n\n                    input.addEventListener('keydown', function (event) {\n                        if (event.key === 'Tab') {\n                            splitFullNameField(this);\n                        }\n                    });\n                });\n\n                \/\/ Handle form submission\n                form.addEventListener('submit', function (e) {\n                    debugLog('custom submit handler start', { isSubmitting: isSubmitting });\n                    e.preventDefault();\n\n                    if (isSubmitting) {\n                        debugLog('blocked: already submitting');\n                        return;\n                    }\n\n                    if (form.classList.contains('hr-form-step-mode') && !hrIsStepFormLastStep(form)) {\n                        debugLog('blocked: step form submit on non-final step');\n                        hrTriggerStepNext(form);\n                        return;\n                    }\n\n                    \/\/ Check honeypot field\n                    const honeypotField = form.querySelector('input[name=\"hr_website\"]');\n                    if (honeypotField && honeypotField.value !== '') {\n                        debugLog('blocked: honeypot filled', { value: honeypotField.value });\n                        \/\/ If honeypot is filled, show error and prevent submission\n                        const submitButton = form.querySelector('.hr-form-submit');\n                        const originalButtonText = submitButton.innerHTML;\n\n                        \/\/ Add error class to form\n                        form.classList.add('hr-form-error');\n\n                        \/\/ Show error message\n                        const errorMessage = document.createElement('div');\n                        errorMessage.className = 'hr-form-error-message';\n                        errorMessage.textContent = 'Invalid submission detected. Please try again.';\n\n                        \/\/ Remove any existing error message\n                        const existingError = form.querySelector('.hr-form-error-message');\n                        if (existingError) {\n                            existingError.remove();\n                        }\n\n                        \/\/ Insert error message after the form\n                        form.parentNode.insertBefore(errorMessage, form.nextSibling);\n\n                        \/\/ Reset form after 3 seconds\n                        setTimeout(() => {\n                            form.classList.remove('hr-form-error');\n                            errorMessage.remove();\n                            form.reset();\n                            submitButton.innerHTML = originalButtonText;\n                            submitButton.disabled = false;\n                            isSubmitting = false;\n                        }, 3000);\n\n                        return;\n                    }\n\n                    \/\/ Ensure hidden first\/last values are synced before submit.\n                    if (typeof populateUtmFields === 'function') {\n                        populateUtmFields();\n                    }\n                    splitAllFullNameFields();\n                    syncAllPhoneFullFields();\n\n                    hrSyncValidatorSkippedFields();\n\n                    \/\/ Run full validation before trusting isValid (avoids stale false on first click).\n                    if (typeof validator.revalidate !== 'function') {\n                        debugLog('blocked: validator.revalidate missing');\n                        return;\n                    }\n\n                                        const turnstileResponse = form.querySelector('[name=\"cf-turnstile-response\"]');\n                    if (!turnstileResponse || !turnstileResponse.value) {\n                        debugLog('blocked: turnstile not ready', {\n                            hasInput: Boolean(turnstileResponse),\n                            hasValue: Boolean(turnstileResponse && turnstileResponse.value)\n                        });\n                        alert('Please wait for the security check to complete.');\n                        return;\n                    }\n                    \n                    validator.revalidate().then(function (jvIsValid) {\n                        const blocking = hrBlockingInvalidFieldKeys(validator);\n                        if (blocking.length > 0) {\n                            debugLog('blocked: validator invalid after revalidate', {\n                                jvIsValid: jvIsValid,\n                                blockingFields: blocking,\n                                domInvalid: Array.from(form.querySelectorAll('.is-invalid'))\n                                    .filter(function (field) {\n                                        return !hrFieldSkippedForSubmitValidation(field);\n                                    })\n                                    .map(function (field) {\n                                        return field.id || field.name || field.className || field.tagName;\n                                    })\n                            });\n                            return;\n                        }\n\n                        isSubmitting = true;\n                        const submitButton = form.querySelector('.hr-form-submit');\n                        const overlay = form.querySelector('.hr-form-overlay');\n                        if (submitButton) {\n                            submitButton.disabled = true;\n                        }\n                        form.classList.add('submitting');\n                        if (overlay) {\n                            overlay.style.display = 'flex';\n                        }\n                        debugLog('submitting: form.submit() called');\n                        if (form && form.isConnected) {\n                            form.submit();\n                        } else {\n                            debugLog('blocked: form not connected');\n                            isSubmitting = false;\n                            form.classList.remove('submitting');\n                            if (overlay) {\n                                overlay.style.display = 'none';\n                            }\n                            if (submitButton) {\n                                submitButton.disabled = false;\n                            }\n                        }\n                    }).catch(function (err) {\n                        form.classList.remove('submitting');\n                        const overlay = form.querySelector('.hr-form-overlay');\n                        if (overlay) {\n                            overlay.style.display = 'none';\n                        }\n                        debugLog('validator revalidate failed', { error: err && err.message ? err.message : String(err) });\n                    });\n                });\n\n                \/\/ Add new code to handle submit button state based on validation\n                const submitButton = form.querySelector('.hr-form-submit');\n                const formsEndpointType = 'hubspot';\n                function getInvalidFieldNames() {\n                    return Array.from(form.querySelectorAll('.is-invalid'))\n                        .filter(function (field) {\n                            return !hrFieldSkippedForSubmitValidation(field);\n                        })\n                        .map((field) => {\n                            const id = field.id ? `#${field.id}` : '';\n                            const name = field.name ? `name=\"${field.name}\"` : '';\n                            const label = field.id ? (form.querySelector(`label[for=\"${field.id}\"]`)?.textContent || '').trim() : '';\n                            return [id, name, label].filter(Boolean).join(' ');\n                        });\n                }\n                function getDisabledReasons() {\n                    const reasons = [];\n                    if (isSubmitting) {\n                        reasons.push('isSubmitting=true');\n                    }\n                    const blockingInvalid = Array.from(form.querySelectorAll('.is-invalid')).filter(function (el) {\n                        return !hrFieldSkippedForSubmitValidation(el);\n                    });\n                    if (blockingInvalid.length > 0) {\n                        const invalidNames = getInvalidFieldNames();\n                        reasons.push(`${blockingInvalid.length} invalid field(s): ${invalidNames.join(', ')}`);\n                    }\n                                        const turnstileResponse = form.querySelector('[name=\"cf-turnstile-response\"]');\n                    if (!turnstileResponse || !turnstileResponse.value) {\n                        reasons.push('turnstile not completed');\n                    }\n                                        const hubspotPortalInput = form.querySelector('input[name=\"hubspot_portal_id\"]');\n                    const hubspotFormGuidInput = form.querySelector('input[name=\"hubspot_form_guid\"]');\n                    const legacyEndpointInput = form.querySelector('input[name=\"form_endpoint_url\"]');\n                    const hasHubspotConfig = Boolean(hubspotPortalInput?.value?.trim() && hubspotFormGuidInput?.value?.trim());\n                    const hasPardotConfig = Boolean(legacyEndpointInput?.value?.trim());\n                    if (formsEndpointType === 'hubspot' && !hasHubspotConfig) {\n                        reasons.push('hubspot config missing (portal\/form guid)');\n                    } else if (formsEndpointType === 'pardot' && !hasPardotConfig) {\n                        reasons.push('pardot endpoint missing');\n                    }\n                    return reasons.length ? reasons : ['unknown reason'];\n                }\n                function logDisabledReason(source) {\n                    if (!submitButton || !submitButton.disabled) return;\n                    const reasons = getDisabledReasons();\n                    console.warn(`submit button disabled: [${reasons.join(' | ')}]`, { source, formId: form.id });\n                }\n\n                \/\/ Function to check validation state and update submit button\n                function updateSubmitButtonState() {\n                    if (!submitButton) return;\n                    const wasDisabled = submitButton.disabled;\n                    const blockingInvalid = Array.from(form.querySelectorAll('.is-invalid')).filter(function (el) {\n                        return !hrFieldSkippedForSubmitValidation(el);\n                    });\n                    if (blockingInvalid.length > 0) {\n                        submitButton.disabled = true;\n                    } else {\n                                                    \/\/ If Turnstile is enabled, only enable button if Turnstile is completed\n                            const turnstileResponse = form.querySelector('[name=\"cf-turnstile-response\"]');\n                            submitButton.disabled = !turnstileResponse || !turnstileResponse.value;\n                                            }\n                    if (submitButton.disabled && !wasDisabled) {\n                        logDisabledReason('state-change');\n                    }\n                }\n\n                \/\/ Add validation state check on input\/change for all form fields\n                form.querySelectorAll('input, select, textarea').forEach(input => {\n                    ['input', 'change', 'blur'].forEach(eventType => {\n                        input.addEventListener(eventType, () => {\n                            \/\/ Let validation complete before checking state\n                            setTimeout(updateSubmitButtonState, 100);\n                        });\n                    });\n                });\n\n                \/\/ Add validation state check for Select2 fields\n                jQuery('.hr-select2-field').on('select2:select select2:unselect select2:clear', function () {\n                    setTimeout(updateSubmitButtonState, 100);\n                });\n\n                \/\/ Update button state when JustValidate performs validation\n                validator.onValidate(async (validationResult) => {\n                    setTimeout(updateSubmitButtonState, 100);\n                });\n\n                \/\/ Initial button state check\n                updateSubmitButtonState();\n\n                \/\/ Debug attempts to click while disabled.\n                form.addEventListener('click', function (event) {\n                    if (!submitButton) return;\n                    const submitTrigger = event.target && event.target.closest ? event.target.closest('.hr-form-submit') : null;\n                    if (!submitTrigger) return;\n                    logDisabledReason('click-submit');\n                }, true);\n            });\n        <\/script>\n                    <script src=\"https:\/\/staging-sites.hotelrunner.com\/wp-content\/themes\/hotelrunner\/assets\/js\/\/vendor\/mailcheck.min.js\"><\/script>\n            <script>\n                document.addEventListener('DOMContentLoaded', function () {\n                    const form = document.getElementById('hr-form-6a44cdcaf1ffa');\n                    const emailFields = form.querySelectorAll('input[type=\"email\"]');\n                    const suggestionText = 'Did you mean {suggestion}?';\n\n                    emailFields.forEach(function (emailField) {\n                        \/\/ Create suggestion element\n                        const suggestionElement = document.createElement('div');\n                        suggestionElement.className = 'hr-mailcheck-suggestion';\n                        emailField.parentNode.appendChild(suggestionElement);\n\n                        \/\/ Function to check email\n                        function checkEmail() {\n                            if (!emailField.value) return;\n\n                            Mailcheck.run({\n                                email: emailField.value,\n                                suggested: function (suggestion) {\n                                    const text = suggestionText.replace('{suggestion}', suggestion.full);\n                                    suggestionElement.innerHTML = text;\n                                    suggestionElement.dataset.suggestion = suggestion.full;\n                                    suggestionElement.style.display = 'block';\n                                },\n                                empty: function () {\n                                    suggestionElement.style.display = 'none';\n                                }\n                            });\n                        }\n\n                        \/\/ Check on blur\n                        emailField.addEventListener('blur', checkEmail);\n\n                        \/\/ Check while typing after a suggestion has been shown\n                        emailField.addEventListener('input', function () {\n                            if (suggestionElement.style.display === 'block') {\n                                checkEmail();\n                            }\n                        });\n\n                        \/\/ Handle suggestion click\n                        suggestionElement.addEventListener('click', function () {\n                            const suggestion = this.dataset.suggestion;\n                            if (suggestion) {\n                                emailField.value = suggestion;\n                                suggestionElement.style.display = 'none';\n\n                                \/\/ Trigger change event\n                                const event = new Event('change', { bubbles: true });\n                                emailField.dispatchEvent(event);\n\n                                \/\/ Focus the next field if available\n                                const inputs = Array.from(form.querySelectorAll('input:not([type=\"hidden\"]), select, textarea'));\n                                const currentIndex = inputs.indexOf(emailField);\n                                if (currentIndex < inputs.length - 1) {\n                                    inputs[currentIndex + 1].focus();\n                                }\n                            }\n                        });\n                    });\n                });\n            <\/script>\n        \n        \n        <script>\n            document.addEventListener('DOMContentLoaded', function () {\n                const form = document.getElementById('hr-form-6a44cdcaf1ffa');\n                const textareas = form.querySelectorAll('textarea');\n\n                textareas.forEach(textarea => {\n                    const maxChars = parseInt(textarea.dataset.maxChars) || 600;\n                    const counter = document.createElement('div');\n                    counter.className = 'hr-char-counter';\n                    counter.textContent = `0\/${maxChars} caract\u00e8res`;\n                    textarea.parentNode.appendChild(counter);\n\n                    \/\/ Update counter on input\n                    textarea.addEventListener('input', function () {\n                        const currentLength = this.value.length;\n                        counter.textContent = `${currentLength}\/${maxChars} caract\u00e8res`;\n\n                        if (currentLength > maxChars) {\n                            counter.classList.add('warning');\n                            textarea.classList.add('limit-reached');\n                            \/\/ Trim the text to max length\n                            this.value = this.value.substring(0, maxChars);\n                            \/\/ Update counter with trimmed length\n                            counter.textContent = `${maxChars}\/${maxChars} + characters`;\n                        } else {\n                            counter.classList.remove('warning');\n                            textarea.classList.remove('limit-reached');\n                        }\n                    });\n\n                    \/\/ Prevent paste of text that would exceed limit\n                    textarea.addEventListener('paste', function (e) {\n                        const pastedText = (e.clipboardData || window.clipboardData).getData('text');\n                        const currentLength = this.value.length;\n                        const remainingChars = maxChars - currentLength;\n\n                        if (pastedText.length > remainingChars) {\n                            e.preventDefault();\n                            const trimmedText = pastedText.substring(0, remainingChars);\n                            document.execCommand('insertText', false, trimmedText);\n                        }\n                    });\n\n                    \/\/ Initial count\n                    textarea.dispatchEvent(new Event('input'));\n                });\n            });\n        <\/script>\n\n        <script>\n            jQuery(document).ready(function ($) {\n                const $form = $('#hr-form-6a44cdcaf1ffa');\n\n                \/\/ Prevent Select2 pre-init visual glitch on first paint.\n                setTimeout(function () {\n                    $form.removeClass('hr-select2-booting');\n                }, 1000);\n\n                \/\/ Initialize Select2 for country selects in this specific form\n                $('#hr-form-6a44cdcaf1ffa .hr-country-select').each(function () {\n                    const $select = $(this);\n                    const formHasFloatingLabels = $select.closest('form').hasClass('hr-form-floating-labels');\n                    \/\/ Disable Select2 placeholder when floating labels are active (label acts as hint)\n                    const placeholder = formHasFloatingLabels ? null : $select.data('placeholder');\n\n                    \/\/ Skip if already initialized\n                    if ($select.hasClass('select2-hidden-accessible')) {\n                        return;\n                    }\n\n                    const countryConfig = {\n                        width: '100%',\n                        placeholder: placeholder,\n                        allowClear: !formHasFloatingLabels,\n                        language: {\n                            noResults: function () {\n                                return 'No countries found';\n                            }\n                        }\n                    };\n                    if (formHasFloatingLabels) {\n                        countryConfig.templateSelection = function (data) {\n                            if (!data.id || data.id === '' || (data.element && $(data.element).hasClass('hr-select-placeholder'))) {\n                                return '';\n                            }\n                            return data.text;\n                        };\n                    }\n                    $select.select2(countryConfig);\n                });\n            });\n        <\/script>\n\n        <script>\n            jQuery(document).ready(function ($) {\n                \/\/ Initialize Select2 for regular select fields in this specific form\n                $('#hr-form-6a44cdcaf1ffa .hr-select2-field').each(function () {\n                    const $select = $(this);\n\n                    \/\/ Skip if already initialized\n                    if ($select.hasClass('select2-hidden-accessible')) {\n                        return;\n                    }\n\n                    const formHasFloatingLabels = $select.closest('form').hasClass('hr-form-floating-labels');\n                    const isMultiple = $select.prop('multiple');\n                    const placeholder = formHasFloatingLabels ? '' : ($select.data('placeholder') || 'Select an option');\n                    const allowClear = formHasFloatingLabels ? false : ($select.data('allow-clear') !== 'no');\n                    const enableSearch = $select.data('enable-search') !== 'no';\n                    const minSelection = parseInt($select.data('min-selection')) || 0;\n                    const searchPlaceholder = $select.data('search-placeholder') || 'Search';\n                    const maxSelection = parseInt($select.data('max-selection')) || 0;\n\n                    const select2Config = {\n                        placeholder: placeholder,\n                        allowClear: allowClear,\n                        width: 'resolve',\n                        searchPlaceholder: 'Search',\n                        multiple: isMultiple,\n                        searchEnabled: enableSearch,\n                        minimumResultsForSearch: enableSearch ? 0 : -1,\n                        language: {\n                            noResults: function () {\n                                return 'No results found';\n                            },\n                            maximumSelected: function (e) {\n                                const message = 'You can only select %s items';\n                                return message.replace('%s', e.maximum);\n                            }\n                        },\n                        templateResult: function (data) {\n                            if (data.loading) return data.text;\n                            if (data.element && $(data.element).hasClass('hr-select-placeholder')) return null;\n                            return data.text;\n                        }\n                    };\n\n                    if (formHasFloatingLabels) {\n                        select2Config.templateSelection = function (data) {\n                            if (!data.id || data.id === '' || (Array.isArray(data.id) && data.id.length === 0) || (data.element && $(data.element).hasClass('hr-select-placeholder'))) {\n                                return '';\n                            }\n                            return data.text;\n                        };\n                    }\n\n                    \/\/ Add maximum selection limit if set\n                    if (isMultiple && maxSelection > 0) {\n                        select2Config.maximumSelectionLength = maxSelection;\n                    }\n\n                    const hasRealSelection = function ($el) {\n                        const value = $el.val();\n                        if (Array.isArray(value)) {\n                            return value.some(function (item) {\n                                return item !== null && item !== undefined && String(item).trim() !== '';\n                            });\n                        }\n                        return value !== null && value !== undefined && String(value).trim() !== '';\n                    };\n\n                    $select.select2(select2Config)\n                        .on('select2:open', function () {\n                            if (enableSearch) {\n                                setTimeout(function () {\n                                    $('.select2-search__field').focus();\n                                }, 0);\n                            }\n                        })\n                        .on('change', function (e) {\n                            const hasSelection = hasRealSelection($(this));\n                            $(this).next('.select2-container').find('.select2-selection--multiple')\n                                .toggleClass('select2-selection--multiple--has-selection', hasSelection);\n\n                            \/\/ Update hidden input for multiple select\n                            if (isMultiple) {\n                                const selectedValues = $(this).val() || [];\n                                const hiddenInput = $(this).siblings('.hr-form-select2-multiple-values');\n                                hiddenInput.val(selectedValues.join(','));\n                            }\n                        });\n\n                    \/\/ Trigger initial state\n                    const hasInitialSelection = hasRealSelection($select);\n                    $select.next('.select2-container').find('.select2-selection--multiple')\n                        .toggleClass('select2-selection--multiple--has-selection', hasInitialSelection);\n\n                    \/\/ Set initial value for hidden input if there are pre-selected values\n                    if (isMultiple && hasInitialSelection) {\n                        const initialValues = $select.val();\n                        const hiddenInput = $select.siblings('.hr-form-select2-multiple-values');\n                        hiddenInput.val(initialValues.join(','));\n                    }\n                });\n            });\n        <\/script>\n\n        <script>\n            \/\/ Create unique callback function for this form instance\n            window['onTurnstileCallback_hr-form-6a44cdcaf1ffa'] = function () {\n                const debugEnabled = new URLSearchParams(window.location.search).get('hr_form_debug') === '1';\n                \/\/ Enable submit button when Turnstile is ready\n                const form = document.getElementById('hr-form-6a44cdcaf1ffa');\n                const submitButton = form.querySelector('.hr-form-submit');\n                const tokenInput = form.querySelector('[name=\"cf-turnstile-response\"]');\n                if (debugEnabled) {\n                    console.log('[HR Turnstile Debug][' + form.id + '] callback fired', {\n                        hasToken: Boolean(tokenInput && tokenInput.value),\n                        tokenLength: tokenInput && tokenInput.value ? tokenInput.value.length : 0\n                    });\n                }\n                if (submitButton) {\n                    submitButton.disabled = false;\n                }\n            };\n\n            document.addEventListener('DOMContentLoaded', function () {\n                const form = document.getElementById('hr-form-6a44cdcaf1ffa');\n                const submitButton = form.querySelector('.hr-form-submit');\n\n                \/\/ Disable submit button initially if Turnstile is enabled\n                                    if (submitButton) {\n                        submitButton.disabled = true;\n                    }\n                    const debugEnabled = new URLSearchParams(window.location.search).get('hr_form_debug') === '1';\n                    const logTurnstile = function (label, payload) {\n                        if (!debugEnabled) return;\n                        console.log('[HR Turnstile Debug][' + form.id + '] ' + label, payload || {});\n                    };\n\n                    \/\/ Render and start Turnstile verification on form load.\n                    function initTurnstile() {\n                        logTurnstile('init start');\n                        if (typeof turnstile === 'undefined') {\n                            logTurnstile('turnstile not ready, retrying');\n                            setTimeout(initTurnstile, 120);\n                            return;\n                        }\n\n                        const turnstileContainer = form.querySelector('.hr-turnstile-container');\n                        if (!turnstileContainer) {\n                            logTurnstile('container not found');\n                            return;\n                        }\n\n                        if (!turnstileContainer.hasAttribute('data-widget-id')) {\n                            const widgetId = turnstile.render(turnstileContainer, {\n                                sitekey: turnstileContainer.getAttribute('data-sitekey'),\n                                callback: window['onTurnstileCallback_hr-form-6a44cdcaf1ffa']\n                            });\n                            logTurnstile('widget rendered', { widgetId: widgetId || null });\n                            if (widgetId !== undefined && widgetId !== null) {\n                                turnstileContainer.setAttribute('data-widget-id', String(widgetId));\n                            }\n                        }\n\n                        const renderedWidgetId = turnstileContainer.getAttribute('data-widget-id');\n                        if (renderedWidgetId && typeof turnstile.execute === 'function') {\n                            try {\n                                logTurnstile('execute called', { widgetId: renderedWidgetId });\n                                turnstile.execute(renderedWidgetId);\n                            } catch (e) {\n                                logTurnstile('execute failed', { error: e && e.message ? e.message : String(e) });\n                                \/\/ Some widget modes do not need\/allow execute; callback still unlocks submit when ready.\n                            }\n                        } else {\n                            logTurnstile('execute skipped', { widgetId: renderedWidgetId || null, hasExecute: typeof turnstile.execute === 'function' });\n                        }\n                    }\n\n                    initTurnstile();\n                \n                form.addEventListener('submit', function (e) {\n                    const debugEnabled = new URLSearchParams(window.location.search).get('hr_form_debug') === '1';\n                                            const turnstileResponse = form.querySelector('[name=\"cf-turnstile-response\"]');\n                        if (!turnstileResponse || !turnstileResponse.value) {\n                            if (debugEnabled) {\n                                console.warn('[HR Form Debug][' + form.id + '] blocked: turnstile response missing');\n                            }\n                            e.preventDefault();\n                            alert('Please wait for the security check to complete.');\n                            return false;\n                        }\n                    \n                    const formData = new FormData(form);\n                    const thankYouData = {};\n                    const fieldsToCapture = [\"hr-form-firstname\",\"hr-form-lastname\",\"email\",\"hr-form-phone\",\"hr-form-phone_full\",\"hr-form-company-name\",\"hr-country\",\"privacy_statement\",\"commerical-text\",\"hr_ip_address\",\"hr_browser_info\",\"hr_primary_language\",\"hr_all_languages\",\"hr_window_size\",\"hr_timezone_name\",\"hr_current_url\",\"hr_referrer_url\",\"hr_page_load_time\"];\n                    if (fieldsToCapture && fieldsToCapture.length) {\n                        fieldsToCapture.forEach(function(fieldName) {\n                            if (formData.has(fieldName)) {\n                                thankYouData[fieldName] = formData.get(fieldName);\n                            }\n                        });\n                    }\n                    sessionStorage.setItem('formSessionData', JSON.stringify(thankYouData));\n                });\n            });\n\n            \/\/ Turnstile is rendered explicitly per form instance above.\n        <\/script>\n\n        <script>\n            jQuery(document).ready(function () {\n                const $currentForm = jQuery('#hr-form-6a44cdcaf1ffa');\n                const isRegisteredValidatorField = (validator, selector) => {\n                    if (!validator || !selector) {\n                        return false;\n                    }\n                    if (typeof validator._hrHasField === 'function') {\n                        return validator._hrHasField(selector);\n                    }\n                    if (!validator.fields) {\n                        return false;\n                    }\n                    return Object.values(validator.fields).some((field) => {\n                        return field && field.elem && ('#' + field.elem.id) === selector;\n                    });\n                };\n                \n                \/\/ Function to validate step fields\n                function validateStepFields($stepFields, shouldShowError = true) {\n                    var validator = $currentForm.length > 0 && $currentForm[0]._justValidateInstance;\n\n                    \/\/ If validator is not ready, wait a bit and try again\n                    if (!validator) {\n                        return new Promise((resolve) => {\n                            setTimeout(() => {\n                                resolve(validateStepFields($stepFields, shouldShowError));\n                            }, 100);\n                        });\n                    }\n\n                    var allFieldsValid = true;\n                    var validationPromises = [];\n\n                    \/\/ Force validation of all fields in the step\n                    $stepFields.find('input, select, textarea').each(function () {\n                        if (this.id) {\n                            \/\/ Mark the field as touched to ensure validation runs\n                            jQuery(this).addClass('was-validated');\n                            try {\n                                \/\/ For Select2 fields, ensure the value is properly set before validation\n                                if (jQuery(this).hasClass('hr-select2-field')) {\n                                    const value = jQuery(this).val();\n                                    \/\/ For required fields, empty array or null\/undefined is invalid\n                                    if (jQuery(this).prop('required') && (!value || (Array.isArray(value) && value.length === 0))) {\n                                        jQuery(this).addClass('is-invalid').removeClass('is-valid');\n                                        const select2Container = jQuery(this).next('.select2-container');\n                                        select2Container.find('.select2-selection').addClass('is-invalid').removeClass('is-valid');\n                                        allFieldsValid = false;\n                                    } else {\n                                        jQuery(this).addClass('is-valid').removeClass('is-invalid');\n                                        const select2Container = jQuery(this).next('.select2-container');\n                                        select2Container.find('.select2-selection').addClass('is-valid').removeClass('is-invalid');\n                                    }\n                                }\n\n                                \/\/ Store the validation promise\n                                const selector = '#' + CSS.escape(this.id);\n                                if (!isRegisteredValidatorField(validator, selector)) {\n                                    return;\n                                }\n                                validationPromises.push(\n                                    validator.revalidateField(selector)\n                                        .then(isValid => {\n                                            if (!isValid) {\n                                                allFieldsValid = false;\n                                            }\n                                        })\n                                        .catch(error => {\n                                            allFieldsValid = false;\n                                        })\n                                );\n                            } catch (error) {\n                                allFieldsValid = false;\n                            }\n                        }\n                    });\n\n                    \/\/ Return a promise that resolves when all validations are complete\n                    return Promise.all(validationPromises).then(() => allFieldsValid);\n                }\n\n                const revalidateSelect2Field = function (field) {\n                    if (!field || !field.id) {\n                        return;\n                    }\n\n                    const $field = jQuery(field);\n                    const value = $field.val();\n                    const isRequired = $field.prop('required');\n                    const isEmpty = !value || (Array.isArray(value) && value.length === 0);\n                    const select2Container = $field.next('.select2-container');\n                    const select2Selection = select2Container.find('.select2-selection');\n\n                    if (isRequired && isEmpty) {\n                        $field.addClass('is-invalid').removeClass('is-valid');\n                        select2Selection.addClass('is-invalid').removeClass('is-valid');\n                    } else {\n                        $field.addClass('is-valid').removeClass('is-invalid');\n                        select2Selection.addClass('is-valid').removeClass('is-invalid');\n                    }\n\n                    var validator = $currentForm[0] && $currentForm[0]._justValidateInstance;\n                    if (!validator) {\n                        return;\n                    }\n                    const selector = '#' + CSS.escape(field.id);\n                    if (!isRegisteredValidatorField(validator, selector)) {\n                        return;\n                    }\n                    validator.revalidateField(selector);\n                };\n\n                \/\/ Always revalidate Select2-backed fields when value changes.\n                $currentForm.on(\n                    'select2:select select2:unselect select2:clear change',\n                    '.hr-select2-field, .hr-country-select',\n                    function () {\n                        revalidateSelect2Field(this);\n                    }\n                );\n\n                \/\/ Handle field blur events for validation in this form only\n                $currentForm.on('blur', 'input, select, textarea', function () {\n                    if (this.id) {\n                        jQuery(this).addClass('was-validated');\n                        var validator = $currentForm[0] && $currentForm[0]._justValidateInstance;\n                        if (validator) {\n                            const selector = '#' + CSS.escape(this.id);\n                            if (!isRegisteredValidatorField(validator, selector)) {\n                                return;\n                            }\n                            validator.revalidateField(selector);\n                        }\n                    }\n                });\n\n                $currentForm.find('.hr-form-step-next').on('click', async function () {\n                    \/\/ Submit buttons on the last step also carry .hr-form-step-next.\n                    \/\/ Do not run step-navigation hide\/show logic for actual submit triggers.\n                    if (jQuery(this).is('button[type=\"submit\"], .hr-form-submit')) {\n                        return;\n                    }\n\n                    var $currentStepFields = jQuery(this).closest('.hr-form-step-fields');\n                    var currentStepIndex = $currentStepFields.data('step-index');\n                    var $stepNavigation = $currentForm.find('.hr-form-step-nav');\n\n                    \/\/ Disable the button while validating\n                    jQuery(this).prop('disabled', true);\n\n                    try {\n                        \/\/ Force validation of all fields in current step\n                        const allFieldsValid = await validateStepFields($currentStepFields, true);\n\n                        if (allFieldsValid) {\n                            \/\/ Update step navigation\n                            $stepNavigation.removeClass('active');\n                            $stepNavigation.filter('[data-step-index=\"' + (currentStepIndex + 1) + '\"]').addClass('active');\n\n                            \/\/ Hide current step and show next step\n                            $currentStepFields.hide();\n                            $currentForm.find('.hr-form-step-fields[data-step-index=\"' + (currentStepIndex + 1) + '\"]').show();\n                        }\n                    } catch (error) {\n                        \/\/ Error during validation\n                    } finally {\n                        \/\/ Re-enable the button\n                        jQuery(this).prop('disabled', false);\n                    }\n                });\n\n                $currentForm.find('.hr-form-step-prev').on('click', function () {\n                    var $currentStepFields = jQuery(this).closest('.hr-form-step-fields');\n                    var currentStepIndex = $currentStepFields.data('step-index');\n                    var $stepNavigation = $currentForm.find('.hr-form-step-nav');\n\n                    \/\/ Clear any existing validation errors before moving back\n                    $currentStepFields.find('.hr-form-step-error').remove();\n\n                    \/\/ Update step navigation\n                    $stepNavigation.removeClass('active');\n                    $stepNavigation.filter('[data-step-index=\"' + (currentStepIndex - 1) + '\"]').addClass('active');\n\n                    \/\/ Hide current step and show previous step\n                    $currentStepFields.hide();\n                    $currentForm.find('.hr-form-step-fields[data-step-index=\"' + (currentStepIndex - 1) + '\"]').show();\n                });\n\n                if ($currentForm.hasClass('hr-form-step-mode')) {\n                    $currentForm.on('keydown', 'input:not([type=\"hidden\"]):not([type=\"checkbox\"]):not([type=\"radio\"]):not([type=\"submit\"]):not([type=\"button\"]):not([type=\"file\"])', function (e) {\n                        if (e.key !== 'Enter' || e.isComposing) {\n                            return;\n                        }\n\n                        const $currentStepFields = jQuery(this).closest('.hr-form-step-fields');\n                        if (!$currentStepFields.length) {\n                            return;\n                        }\n\n                        const totalSteps = $currentForm.find('.hr-form-step-fields').length;\n                        const currentStepIndex = $currentStepFields.data('step-index');\n                        if (currentStepIndex === totalSteps - 1) {\n                            return;\n                        }\n\n                        e.preventDefault();\n                        const $nextBtn = $currentStepFields.find('.hr-form-step-next').not('button[type=\"submit\"], .hr-form-submit');\n                        if ($nextBtn.length) {\n                            $nextBtn.trigger('click');\n                        }\n                    });\n                }\n\n                \/\/ Initialize active state for the first step on load\n                $currentForm.find('.hr-form-step-nav[data-step-index=\"0\"]').addClass('active');\n            });\n        <\/script>\n        \t\t\t\t<\/div>\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","protected":false},"featured_media":143040,"template":"","product_type":[335],"class_list":["post-68668","product","type-product","status-publish","has-post-thumbnail","hentry","product_type-proprietes"],"acf":[],"_links":{"self":[{"href":"https:\/\/staging-sites.hotelrunner.com\/fr\/wp-json\/wp\/v2\/product\/68668","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staging-sites.hotelrunner.com\/fr\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/staging-sites.hotelrunner.com\/fr\/wp-json\/wp\/v2\/types\/product"}],"version-history":[{"count":23,"href":"https:\/\/staging-sites.hotelrunner.com\/fr\/wp-json\/wp\/v2\/product\/68668\/revisions"}],"predecessor-version":[{"id":143259,"href":"https:\/\/staging-sites.hotelrunner.com\/fr\/wp-json\/wp\/v2\/product\/68668\/revisions\/143259"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/staging-sites.hotelrunner.com\/fr\/wp-json\/wp\/v2\/media\/143040"}],"wp:attachment":[{"href":"https:\/\/staging-sites.hotelrunner.com\/fr\/wp-json\/wp\/v2\/media?parent=68668"}],"wp:term":[{"taxonomy":"product_type","embeddable":true,"href":"https:\/\/staging-sites.hotelrunner.com\/fr\/wp-json\/wp\/v2\/product_type?post=68668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}