{"id":68181,"date":"2024-09-19T07:44:04","date_gmt":"2024-09-19T07:44:04","guid":{"rendered":"https:\/\/hotelrunner.com\/?post_type=product&#038;p=68181"},"modified":"2026-06-12T12:43:09","modified_gmt":"2026-06-12T09:43:09","slug":"autonomous-actions-autopilot","status":"publish","type":"product","link":"https:\/\/hotelrunner.com\/en\/products\/autonomous-actions-autopilot\/","title":{"rendered":"Autonomous Actions | Autopilot"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"68181\" class=\"elementor elementor-68181\" data-elementor-post-type=\"product\">\n\t\t\t\t<div class=\"elementor-element elementor-element-72c6ff2 e-flex e-con-boxed e-con e-parent\" data-id=\"72c6ff2\" 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-8324f25 e-con-full e-flex e-con e-child\" data-id=\"8324f25\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-2a230bd e-con-full e-flex e-con e-child\" data-id=\"2a230bd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-57ed725 e-con-full e-flex e-con e-child\" data-id=\"57ed725\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-67a0f86 elementor-widget elementor-widget-hr_label_icon hr-gb-active-desktop hr-gb-active-tablet hr-gb-active-mobile\" data-id=\"67a0f86\" 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:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/06\/ai-icon.svg\" alt=\"\">\n                                        <span>Autonomous Actions | 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-cbc9e86 elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"cbc9e86\" 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\">Transform your business with AI-driven smart automation<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3c73eab elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"3c73eab\" 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 is your intelligent, AI-enabled automation platform that redefines how you manage pricing, distribution, payments, and daily operations.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e220951 e-con-full e-flex e-con e-child\" data-id=\"e220951\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-660def7 e-con-full e-flex e-con e-child\" data-id=\"660def7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c49b687 elementor-widget-mobile__width-initial elementor-widget__width-auto elementor-widget elementor-widget-text-editor\" data-id=\"c49b687\" 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\tADR increase\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-6640aa0 elementor-widget elementor-widget-text-editor\" data-id=\"6640aa0\" 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-f827d17 e-con-full e-flex e-con e-child\" data-id=\"f827d17\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0b0d78e elementor-widget-mobile__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"0b0d78e\" 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\tDaily actions\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-bcb386c elementor-widget elementor-widget-text-editor\" data-id=\"bcb386c\" 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\t700+\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-febf2c9 e-con-full e-flex e-con e-child\" data-id=\"febf2c9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fcbe069 elementor-widget-mobile__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"fcbe069\" 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\tPrice-increasing actions\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-688dbe1 elementor-widget elementor-widget-text-editor\" data-id=\"688dbe1\" 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\t96%\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-fdd9b7f e-flex e-con-boxed e-con e-child\" data-id=\"fdd9b7f\" 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-9eca91f elementor-widget__width-auto elementor-widget-mobile__width-inherit elementor-widget elementor-widget-hr_button\" data-id=\"9eca91f\" 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:\/\/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\">Watch video<\/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-1b06ab0 elementor-widget__width-auto elementor-widget-mobile__width-inherit elementor-widget elementor-widget-hr_button\" data-id=\"1b06ab0\" 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\">Get a demo<\/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-5cc2c3b e-con-full elementor-hidden-tablet elementor-hidden-mobile_extra elementor-hidden-mobile e-flex e-con e-child\" data-id=\"5cc2c3b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ba6ef2f elementor-widget elementor-widget-hr_hovering_effect_image\" data-id=\"ba6ef2f\" 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:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/06\/autopilot-hero-right.webp\" class=\"attachment-full size-full wp-image-142646\" alt=\"\" srcset=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/06\/autopilot-hero-right.webp 1236w, https:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/06\/autopilot-hero-right-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:\/\/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\">Watch now<\/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-f914d6c e-flex e-con-boxed e-con e-parent\" data-id=\"f914d6c\" 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-1d6d4d1 e-con-full e-flex e-con e-child\" data-id=\"1d6d4d1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-44e25e3 e-con-full e-flex e-con e-child\" data-id=\"44e25e3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bdfc3dc elementor-widget elementor-widget-image\" data-id=\"bdfc3dc\" 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:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/06\/Adapt-instantly-to-market-shifts.webp\" class=\"attachment-full size-full wp-image-142912\" alt=\"\" srcset=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/06\/Adapt-instantly-to-market-shifts.webp 1000w, https:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/06\/Adapt-instantly-to-market-shifts-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-8ed018a e-con-full e-flex e-con e-child\" data-id=\"8ed018a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-899a4f5 elementor-widget elementor-widget-hr_label\" data-id=\"899a4f5\" 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\">Intelligent Automation<\/span>\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9bb4034 elementor-widget__width-inherit elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"9bb4034\" 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\">Adapt instantly to market shifts<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-775b2f3 elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"775b2f3\" 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 continuously monitors occupancy, demand, competitor rates, reviews, reservation changes, payment status, and inventory levels in real time.\n<br><br>\nUsing scheduled and event-based triggers, it automatically adjusts pricing, availability, workflows, and internal alerts to keep your property profitable, protected, and operationally efficient every minute of the day.\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-27aac96 e-con-full e-flex e-con e-child\" data-id=\"27aac96\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-294a88e e-con-full e-flex e-con e-child\" data-id=\"294a88e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7d7fece elementor-widget elementor-widget-image\" data-id=\"7d7fece\" 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:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/06\/Advanced-Pricing-Intelligence.webp\" class=\"attachment-full size-full wp-image-142916\" alt=\"\" srcset=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/06\/Advanced-Pricing-Intelligence.webp 1000w, https:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/06\/Advanced-Pricing-Intelligence-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-dc5720c e-con-full e-flex e-con e-child\" data-id=\"dc5720c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1aac2a7 elementor-widget elementor-widget-hr_label\" data-id=\"1aac2a7\" 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\">Advanced Pricing Intelligence<\/span>\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-687a141 elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"687a141\" 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\">Maximize revenue with real-time, competitor-based pricing<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-47ea5de elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"47ea5de\" 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 allows you to benchmark against competitors and dynamically adjust your prices based on live market data.\n<br><br>\nSell each room at the right price, at the right time, maximize your revenue potential, and stay ahead of every market change with confidence.\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-e5a2041 e-con-full e-flex e-con e-child\" data-id=\"e5a2041\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-f94160c e-con-full e-flex e-con e-child\" data-id=\"f94160c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b4ce82c elementor-widget elementor-widget-hr_label\" data-id=\"b4ce82c\" 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\">Inventory Intelligence &amp; Revenue Protection<\/span>\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-57a388c elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"57a388c\" 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\">Protect availability, optimize distribution, and prevent revenue loss before it happens.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-65a5d39 elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"65a5d39\" 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 monitors inventory and booking behavior in real time to automatically:\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1704ac1 e-con-full e-grid e-con e-child\" data-id=\"1704ac1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-a4b815f e-con-full e-flex e-con e-child\" data-id=\"a4b815f\" 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-516d9f9 elementor-widget elementor-widget-html\" data-id=\"516d9f9\" 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-09fc44b elementor-widget elementor-widget-heading\" data-id=\"09fc44b\" 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\">Protect high-demand dates by adjusting pricing and availability<\/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-7be34d6 e-con-full e-flex e-con e-child\" data-id=\"7be34d6\" 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-f58398e elementor-widget elementor-widget-html\" data-id=\"f58398e\" 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-5fc78dc elementor-widget elementor-widget-heading\" data-id=\"5fc78dc\" 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\">Get email updates on channel and inventory status for manual control<\/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-dd02349 e-con-full e-flex e-con e-child\" data-id=\"dd02349\" 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-5c68bfb elementor-widget elementor-widget-html\" data-id=\"5c68bfb\" 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-1824792 elementor-widget elementor-widget-heading\" data-id=\"1824792\" 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\">Receive real-time cancellation alerts across channels<\/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-42e60af e-con-full e-flex e-con e-child\" data-id=\"42e60af\" 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-06133f4 elementor-widget elementor-widget-html\" data-id=\"06133f4\" 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-edc71bb elementor-widget elementor-widget-heading\" data-id=\"edc71bb\" 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\">Track key reservation changes via email for timely action<\/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-336a9c9 e-con-full e-flex e-con e-child\" data-id=\"336a9c9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-6c1ede4 e-con-full e-flex e-con e-child\" data-id=\"6c1ede4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0284134 elementor-widget elementor-widget-image\" data-id=\"0284134\" 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:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/06\/payment-automation.webp\" class=\"attachment-full size-full wp-image-142920\" alt=\"\" srcset=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/06\/payment-automation.webp 1000w, https:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/06\/payment-automation-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-8cb8521 e-con-full e-flex e-con e-child\" data-id=\"8cb8521\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7634c63 elementor-widget elementor-widget-hr_label\" data-id=\"7634c63\" 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\">Payment Automation<\/span>\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-62e334e elementor-widget__width-inherit elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"62e334e\" 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\">Secure cash flow with intelligent financial workflows<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3abca05 elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"3abca05\" 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\tSecure your cash flow with intelligent workflows that help you act on payment issues. Identify incomplete reservations caused by failed payments in your booking engine and receive alerts, enabling your team to follow up with guests and manage potential financial risks.\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-8ddea0a elementor-widget__width-auto elementor-widget-mobile__width-inherit elementor-widget elementor-widget-hr_button\" data-id=\"8ddea0a\" 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\">Get a demo<\/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-48ea2be e-con-full e-flex e-con e-child\" data-id=\"48ea2be\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-c21671d e-con-full e-flex e-con e-child\" data-id=\"c21671d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-216cf2a elementor-widget elementor-widget-image\" data-id=\"216cf2a\" 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:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/06\/Ecosystem-Integration-1.webp\" class=\"attachment-full size-full wp-image-142924\" alt=\"\" srcset=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/06\/Ecosystem-Integration-1.webp 1000w, https:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/06\/Ecosystem-Integration-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-9e11f98 e-con-full e-flex e-con e-child\" data-id=\"9e11f98\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-05854d0 elementor-widget elementor-widget-hr_label\" data-id=\"05854d0\" 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\">Ecosystem Integration<\/span>\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-49dfae4 elementor-widget__width-inherit elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"49dfae4\" 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\">A unified automation experience<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-32f4b55 elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"32f4b55\" 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 syncs with all HotelRunner products to transform multi-source data into a single automated flow, using signals from Competition Analysis and Review Center to automatically adjust prices based on shifting demand, send notifications via email and update calendars, and generate AI-powered responses to guest reviews.\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-e2c5e4d e-con-full e-flex e-con e-parent\" data-id=\"e2c5e4d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fcab072 elementor-widget elementor-widget-hr_faq_section\" data-id=\"fcab072\" 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\":\"What is HotelRunner Autopilot?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"HotelRunner Autopilot automates your sales, distribution, and operations by using smart data-driven rules to optimize prices and availability across your sales channels, adapting to changing demand.\"}},{\"@type\":\"Question\",\"name\":\"Which tasks can Autopilot automate?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Autopilot can automate numerous repetitive and time-consuming tasks, including pricing optimization, distribution management, automated guest review responses, communication workflows (email notifications), and calendar updates, using pre-built templates or custom logic.\"}},{\"@type\":\"Question\",\"name\":\"How can I build my automations?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"With the advanced canvas interface, you can design complex automations in minutes. Simply drag, drop, and connect triggers, conditions, and actions to create smart workflows that fit your business strategy perfectly.\"}},{\"@type\":\"Question\",\"name\":\"How does Autopilot optimize my pricing?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Autopilot integrates directly with HotelRunner Competition Analysis, allowing you to benchmark against competitors. It automatically adjusts your prices based on market data, ensuring you sell each room at the right price, at the right time.\"}},{\"@type\":\"Question\",\"name\":\"How can Autopilot help boost my property\u2019s revenue?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Autopilot automatically adjusts pricing based on reservation activity, occupancy rates, and demand, ensuring that each room is sold at the best price at the right time to maximize your revenue and profitability.\"}},{\"@type\":\"Question\",\"name\":\"How do these automations work?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Based on the custom rules you set, the platform triggers automated actions such as adjusting prices, and distributing inventory across sales channels.\"}}]}<\/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\">Frequently Asked Questions<\/h2>\n                                                                                                    <p class=\"hr-faq-section__lede\">For more details, you can visit our help center or contact our support team directly.<\/p>\n                                                            <\/div>\n                                                                            <a class=\"btn\" class=\"hr-faq-section__cta\" href=\"#form\">\n                                Get in touch                            <\/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-fcab072-header-0\" class=\"hr-faq-header\" role=\"button\"\n                                                tabindex=\"0\" aria-expanded=\"true\"\n                                                aria-controls=\"hr-faq-section-fcab072-content-0\">\n                                                <h3 class=\"hr-faq-title\">\n                                                    What is HotelRunner Autopilot?<\/h3>\n                                            <\/div>\n                                            <div id=\"hr-faq-section-fcab072-content-0\" class=\"hr-faq-content\"\n                                                aria-labelledby=\"hr-faq-section-fcab072-header-0\">\n                                                <p>HotelRunner Autopilot automates your sales, distribution, and operations by using smart data-driven rules to optimize prices and availability across your sales channels, adapting to changing demand.<\/p>                                            <\/div>\n                                        <\/div>\n                                        <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\"\n                                            aria-expanded=\"true\"\n                                            aria-controls=\"hr-faq-section-fcab072-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-fcab072-header-1\" class=\"hr-faq-header\" role=\"button\"\n                                                tabindex=\"0\" aria-expanded=\"false\"\n                                                aria-controls=\"hr-faq-section-fcab072-content-1\">\n                                                <h3 class=\"hr-faq-title\">\n                                                    Which tasks can Autopilot automate? <\/h3>\n                                            <\/div>\n                                            <div id=\"hr-faq-section-fcab072-content-1\" class=\"hr-faq-content\"\n                                                aria-labelledby=\"hr-faq-section-fcab072-header-1\">\n                                                <p>Autopilot can automate numerous repetitive and time-consuming tasks, including pricing optimization, distribution management, automated guest review responses, communication workflows (email notifications), and calendar updates, using pre-built templates or custom logic.<\/p>                                            <\/div>\n                                        <\/div>\n                                        <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\"\n                                            aria-expanded=\"false\"\n                                            aria-controls=\"hr-faq-section-fcab072-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-fcab072-header-2\" class=\"hr-faq-header\" role=\"button\"\n                                                tabindex=\"0\" aria-expanded=\"false\"\n                                                aria-controls=\"hr-faq-section-fcab072-content-2\">\n                                                <h3 class=\"hr-faq-title\">\n                                                    How can I build my automations? <\/h3>\n                                            <\/div>\n                                            <div id=\"hr-faq-section-fcab072-content-2\" class=\"hr-faq-content\"\n                                                aria-labelledby=\"hr-faq-section-fcab072-header-2\">\n                                                <p>With the advanced canvas interface, you can design complex automations in minutes. Simply drag, drop, and connect triggers, conditions, and actions to create smart workflows that fit your business strategy perfectly.<\/p>                                            <\/div>\n                                        <\/div>\n                                        <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\"\n                                            aria-expanded=\"false\"\n                                            aria-controls=\"hr-faq-section-fcab072-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-fcab072-header-3\" class=\"hr-faq-header\" role=\"button\"\n                                                tabindex=\"0\" aria-expanded=\"false\"\n                                                aria-controls=\"hr-faq-section-fcab072-content-3\">\n                                                <h3 class=\"hr-faq-title\">\n                                                    How does Autopilot optimize my pricing? <\/h3>\n                                            <\/div>\n                                            <div id=\"hr-faq-section-fcab072-content-3\" class=\"hr-faq-content\"\n                                                aria-labelledby=\"hr-faq-section-fcab072-header-3\">\n                                                <p>Autopilot integrates directly with HotelRunner Competition Analysis, allowing you to benchmark against competitors. It automatically adjusts your prices based on market data, ensuring you sell each room at the right price, at the right time.<\/p>                                            <\/div>\n                                        <\/div>\n                                        <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\"\n                                            aria-expanded=\"false\"\n                                            aria-controls=\"hr-faq-section-fcab072-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-fcab072-header-4\" class=\"hr-faq-header\" role=\"button\"\n                                                tabindex=\"0\" aria-expanded=\"false\"\n                                                aria-controls=\"hr-faq-section-fcab072-content-4\">\n                                                <h3 class=\"hr-faq-title\">\n                                                    How can Autopilot help boost my property\u2019s revenue?<\/h3>\n                                            <\/div>\n                                            <div id=\"hr-faq-section-fcab072-content-4\" class=\"hr-faq-content\"\n                                                aria-labelledby=\"hr-faq-section-fcab072-header-4\">\n                                                <p>Autopilot automatically adjusts pricing based on reservation activity, occupancy rates, and demand, ensuring that each room is sold at the best price at the right time to maximize your revenue and profitability.<\/p>                                            <\/div>\n                                        <\/div>\n                                        <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\"\n                                            aria-expanded=\"false\"\n                                            aria-controls=\"hr-faq-section-fcab072-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-fcab072-header-5\" class=\"hr-faq-header\" role=\"button\"\n                                                tabindex=\"0\" aria-expanded=\"false\"\n                                                aria-controls=\"hr-faq-section-fcab072-content-5\">\n                                                <h3 class=\"hr-faq-title\">\n                                                    How do these automations work?<\/h3>\n                                            <\/div>\n                                            <div id=\"hr-faq-section-fcab072-content-5\" class=\"hr-faq-content\"\n                                                aria-labelledby=\"hr-faq-section-fcab072-header-5\">\n                                                <p>Based on the custom rules you set, the platform triggers automated actions such as adjusting prices, and distributing inventory across sales channels.<\/p>                                            <\/div>\n                                        <\/div>\n                                        <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\"\n                                            aria-expanded=\"false\"\n                                            aria-controls=\"hr-faq-section-fcab072-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-c7ae13d e-flex e-con-boxed e-con e-parent\" data-id=\"c7ae13d\" 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-f174c40 elementor-widget elementor-widget-heading\" data-id=\"f174c40\" 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\">Find out more about Autopilot<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d1b6772 e-con-full e-flex e-con e-child\" data-id=\"d1b6772\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0392b8b hr-form-submit-auto elementor-widget elementor-widget-hr_form\" data-id=\"0392b8b\" 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-6a2c538ab7b73\" class=\"hr-form hr-select2-booting hr-form-direction-horizontal\" method=\"POST\" name=\"Product Page - Autopilot\"                action=\"https:\/\/hotelrunner.com\/wp-content\/themes\/hotelrunner\/core\/data\/hr-form-handler.php\">\n                                    <input type=\"hidden\" name=\"form_endpoint_url\" value=\"https:\/\/go.marketing.hotelrunner.com\/l\/965463\/2026-06-12\/8j3nm\">\n                                                    <input type=\"hidden\" name=\"form_redirect_url\" value=\"https:\/\/hotelrunner.com\/en\/autopilot-thank-you\">\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-6a2c538ab7b73 {\n                        position: relative;\n                    } *\/\n\n                    #hr-form-6a2c538ab7b73 .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-6a2c538ab7b73 .hr-form-overlay-content {\n                        text-align: center;\n                    }\n\n                    #hr-form-6a2c538ab7b73 .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-6a2c538ab7b73.submitting {\n                        pointer-events: none;\n                    }\n\n                    #hr-form-6a2c538ab7b73.submitting .hr-form-overlay {\n                        display: flex;\n                    }\n                    @media (max-width: 1024px) {\n                        #hr-form-6a2c538ab7b73 .hr-form-button-wrapper { text-align: left !important; }\n                        #hr-form-6a2c538ab7b73 .hr-form-step-buttons-wrapper { justify-content: flex-start !important; }\n                    }\n                    @media (max-width: 767px) {\n                        #hr-form-6a2c538ab7b73 .hr-form-button-wrapper { text-align: right !important; }\n                        #hr-form-6a2c538ab7b73 .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-6a2c538ab7b73');\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-6a2c538ab7b73', {\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 = 'pardot';\n\n                                                validator.addField('input[name=\"form_endpoint_url\"]', [\n                            {\n                                rule: 'required',\n                                errorMessage: 'This field is required',\n                            },\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-6a2c538ab7b73\"><\/div>\n                \n                                        <input type=\"hidden\" name=\"hr_ip_address\" value=\"10.0.31.17\"\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=\"form_endpoint_url\" value=\"https:\/\/go.marketing.hotelrunner.com\/l\/965463\/2026-06-12\/8j3nm\">\n                                                    <input type=\"hidden\" name=\"form_redirect_url\" value=\"https:\/\/hotelrunner.com\/en\/autopilot-thank-you\">\n                                                                            <input type=\"hidden\" name=\"form_title\" value=\"Product Page - Autopilot\">\n                                                <input type=\"hidden\" name=\"form_language\"\n                            value=\"EN\">\n                        <input type=\"hidden\" name=\"utm_source\" value=\"\">\n                        <input type=\"hidden\" name=\"utm_medium\" value=\"\">\n                        <input type=\"hidden\" name=\"utm_campaign\" value=\"\">\n                        <input type=\"hidden\" name=\"utm_term\" value=\"\">\n                        <input type=\"hidden\" name=\"utm_content\" value=\"\">\n                                        \n                <script>\n                    function populateUtmFields() {\n                        const forms = document.querySelectorAll('form');\n                        forms.forEach(form => {\n                                                        const utmSourceField = form.querySelector('input[name=\"utm_source\"]');\n                            if (!utmSourceField) 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 utmInputs = {\n                                'utm_source': form.querySelector('input[name=\"utm_source\"]'),\n                                'utm_medium': form.querySelector('input[name=\"utm_medium\"]'),\n                                'utm_campaign': form.querySelector('input[name=\"utm_campaign\"]'),\n                                'utm_term': form.querySelector('input[name=\"utm_term\"]'),\n                                'utm_content': form.querySelector('input[name=\"utm_content\"]')\n                            };\n                            \n                            if (utmInputs.utm_source) utmInputs.utm_source.value = utmSource || '';\n                            if (utmInputs.utm_medium) utmInputs.utm_medium.value = utmMedium || '';\n                            if (utmInputs.utm_campaign) utmInputs.utm_campaign.value = utmCampaign || '';\n                            if (utmInputs.utm_term) utmInputs.utm_term.value = utmTerm || '';\n                            if (utmInputs.utm_content) utmInputs.utm_content.value = utmContent || '';\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\">First Name<\/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\">Last Name<\/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<\/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\">Mobile phone<\/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\">Property name<\/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\">Country<\/label>                                        \n                                                                                                                                        <div class=\"hr-country-field-wrapper\">\n                                                    <select id=\"hr-country\" class=\"hr-form-input hr-country-select\" placeholder=\"Please select your country\" autocomplete=\"country-name\" name=\"hr-country\"  data-placeholder=\"Please select your country\"\n                                                        name=\"hr-country\">\n                                                        <option value=\"\" class=\"hr-select-placeholder\" disabled selected>\n                                                            Please select your 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                                                    <label class=\"hr-checkbox-label\">\n                                                        <input id=\"privacy_statement\" class=\"hr-form-checkbox\" 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\">I have read and understood the <a target=\"_blank\" href=\"https:\/\/staging-sites.hotelrunner.com\/privacy\/\">Privacy Statement for Request \/ Complaint \/ Suggestion Processes.<\/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                                                    <label class=\"hr-checkbox-label\">\n                                                        <input id=\"commerical-text\" class=\"hr-form-checkbox\" placeholder=\"Enter your text here\" autocomplete=\"off\" type=\"checkbox\" name=\"commerical-text\"  data-salesforce-field=\"yes\">\n                                                        <span class=\"hr-checkbox-text\">I have read and accept the <a href=\"https:\/\/staging-sites.hotelrunner.com\/commercial-electronic-message-consent-text\/\" target=\"_blank\">Commercial Electronic Message Consent<\/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                            Get a demo                        <\/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 = \"en\";\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:\/\/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-6a2c538ab7b73');\n\n                \/\/ Also initialize on document ready to ensure DOM is fully loaded\n                $(document).ready(function () {\n                    initializeFormPhoneInputs('hr-form-6a2c538ab7b73');\n                });\n            })(jQuery);\n\n\n            document.addEventListener('DOMContentLoaded', function () {\n                const form = document.getElementById('hr-form-6a2c538ab7b73');\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-6a2c538ab7b73');\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-6a2c538ab7b73');\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-6a2c538ab7b73');\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-6a2c538ab7b73', {\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\":\"Please enter your first name.\"});\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\":\"Please enter your last name.\"});\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\":\"Please enter your email address.\"});\n                                                                                fieldRules_2.push({\"rule\":\"email\",\"errorMessage\":\"Please enter a valid email address.\"});\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\":\"Please enter your mobile phone number.\"});\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\":\"Please enter your property name.\"});\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\":\"Please select your country.\"});\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\":\"This field is required\"}];\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                    input.addEventListener('copy', function (event) {\n                        event.preventDefault();\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                    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 = 'pardot';\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:\/\/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-6a2c538ab7b73');\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-6a2c538ab7b73');\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} characters`;\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} characters`;\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-6a2c538ab7b73');\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-6a2c538ab7b73 .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-6a2c538ab7b73 .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-6a2c538ab7b73'] = 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-6a2c538ab7b73');\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-6a2c538ab7b73');\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-6a2c538ab7b73']\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-6a2c538ab7b73');\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":142948,"template":"","product_type":[287],"class_list":["post-68181","product","type-product","status-publish","has-post-thumbnail","hentry","product_type-properties"],"acf":[],"_links":{"self":[{"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/product\/68181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/types\/product"}],"version-history":[{"count":25,"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/product\/68181\/revisions"}],"predecessor-version":[{"id":143130,"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/product\/68181\/revisions\/143130"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/media\/142948"}],"wp:attachment":[{"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/media?parent=68181"}],"wp:term":[{"taxonomy":"product_type","embeddable":true,"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/product_type?post=68181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}