




{"id":120887,"date":"2025-07-31T07:43:27","date_gmt":"2025-07-31T07:43:27","guid":{"rendered":"https:\/\/hotelrunner.com\/?page_id=120887"},"modified":"2026-04-17T09:54:19","modified_gmt":"2026-04-17T06:54:19","slug":"get-a-demo","status":"publish","type":"page","link":"https:\/\/hotelrunner.com\/en\/get-a-demo\/","title":{"rendered":"Get a Demo"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"120887\" class=\"elementor elementor-120887\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6afc7ae elementor-section-content-top elementor-section-stretched elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6afc7ae\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2926cb4\" data-id=\"2926cb4\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-084449f elementor-section-content-middle elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"084449f\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;animation&quot;:&quot;none&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-wider\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-2560940\" data-id=\"2560940\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a67f751 elementor-widget elementor-widget-hr_label\" data-id=\"a67f751\" 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\">Get a demo<\/span>\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-adf5185 elementor-widget-widescreen__width-initial elementor-widget elementor-widget-heading\" data-id=\"adf5185\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Boost revenue. Simplify operations.<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-36a0a47 elementor-widget-widescreen__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"36a0a47\" 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\tRequest a free demo of our unified platform built to streamline operations, enhance your digital presence, drive direct bookings, and deliver exceptional guest experiences.\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-1bb3310 elementor-widget elementor-widget-hr_logo_slider\" data-id=\"1bb3310\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_logo_slider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <div class=\"logo-slider\"\n            style=\"--hr-logo-slider-speed: 100s; --hr-logo-gradient-fade-stop: 50%;\">\n            <div class=\"logos-slide\">\n                                    <img decoding=\"async\" alt=\"Wyndham Hotels\" title=\"Wyndham Hotels\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/wyndham-hotels-resorts-logo-svg-1.webp\">\n                                        <img decoding=\"async\" alt=\"Yunak Evleri\" title=\"Yunak Evleri\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/logo-1-1.webp\">\n                                        <img decoding=\"async\" alt=\"Accor\" title=\"Accor\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/accor.webp\">\n                                        <img decoding=\"async\" alt=\"Bayview Hills\" title=\"Bayview Hills\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/image-29-1.webp\">\n                                        <img decoding=\"async\" alt=\"Hilton\" title=\"Hilton\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/image-26.webp\">\n                                        <img decoding=\"async\" alt=\"Rlad\" title=\"Rlad\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/logo-v4-black-3-1.webp\">\n                                        <img decoding=\"async\" alt=\"Radisson\" title=\"Radisson\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/800px-radisson-logo-svg-1.webp\">\n                                        <img decoding=\"async\" alt=\"Utopia Cave\" title=\"Utopia Cave\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/utopiacave-1-kopya-1.webp\">\n                                        <img decoding=\"async\" alt=\"Hillock\" title=\"Hillock\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/hillock.webp\">\n                                        <img decoding=\"async\" alt=\"Arabic Turtle\" title=\"Arabic Turtle\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/resizer-15788036421010-1.webp\">\n                                        <img decoding=\"async\" alt=\"Oasis Park\" title=\"Oasis Park\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/logo-1-122x73-1.webp\">\n                                        <img decoding=\"async\" alt=\"Rancho Vieono\" title=\"Rancho Vieono\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/074c9c-3087e77a7854426db217c590a8072e38-mv2-1.webp\">\n                                        <img decoding=\"async\" alt=\"Idylle Aan Zee\" title=\"Idylle Aan Zee\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/logo-2-1.webp\">\n                                        <img decoding=\"async\" alt=\"Maison Hudson\" title=\"Maison Hudson\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/maisonhudson-1.webp\">\n                                        <img decoding=\"async\" alt=\"Casa Basalto\" title=\"Casa Basalto\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/basalto-ingles-1.webp\">\n                                        <img decoding=\"async\" alt=\"Liman Hotel\" title=\"Liman Hotel\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/432930408-751422170389219-8532808755196260661-n-1.webp\">\n                                        <img decoding=\"async\" alt=\"Kove\" title=\"Kove\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/457396744-7959382214159727-2511407066851736178-n-1.webp\">\n                                        <img decoding=\"async\" alt=\"Hillock Villa\" title=\"Hillock Villa\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/hillock-1.webp\">\n                                        <img decoding=\"async\" alt=\"Thrace Konak\" title=\"Thrace Konak\"\n                        style=\"\"\n                        src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/new-logo-1.webp\">\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-7ec194a elementor-hidden-mobile elementor-widget elementor-widget-hr_advanced_testimonial_carousel\" data-id=\"7ec194a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_advanced_testimonial_carousel.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <script>\n            var custom_testimonials_per_slide = \"yes\";\n            var testimonials_per_slide = 1;\n        <\/script>\n\n        <div data-nosnippet id=\"advanced-testimonial-carousel\" class=\"hr-testimonial-carousel style_1\">\n            <div class=\"swiper-container\">\n                <div class=\"swiper-wrapper\">\n                                            <div class=\"swiper-slide\">\n                                                            <div class=\"testimonial-card-v3\" data-title=\"City Center Hotel\">\n                                    <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/themes\/hotelrunner\/assets\/images\/\/quote-1.svg\" alt=\"quote\" class=\"quote-1\">\n                                    <div class=\"testimonial-inner\">\n                                        <p>HotelRunner provides great online solutions for hoteliers. We increased the number of online travel agencies we work with thanks to HotelRunner's channel manager. We manage our rates and inventories easily through desktop or mobile devices.<\/p>                                    <\/div>\n                                    <div class=\"testimonial-bottom\">\n                                        <div class=\"testimonial-seperator\">\n                                            <div class=\"seperator-line\"><\/div>\n                                        <\/div>\n                                        <div class=\"testimonial-author\">\n                                            <div class=\"author-info\">\n                                                <span>City Center Hotel<\/span>\n                                                <small>Baku, Azerbaijan<\/small>\n                                            <\/div>\n                                            <div class=\"author-image\">\n                                                <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/azerbaijan-1-1-1.svg\"\n                                                    alt=\"City Center Hotel\"\n                                                    title=\"City Center Hotel\">\n                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                                                    <\/div>\n                                                <div class=\"swiper-slide\">\n                                                            <div class=\"testimonial-card-v3\" data-title=\"Boutique\">\n                                    <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/themes\/hotelrunner\/assets\/images\/\/quote-1.svg\" alt=\"quote\" class=\"quote-1\">\n                                    <div class=\"testimonial-inner\">\n                                        <p>There are many ways to have access to their support team. They cover the majority of online channels, even though we use only three, which is very impressive!<\/p>                                    <\/div>\n                                    <div class=\"testimonial-bottom\">\n                                        <div class=\"testimonial-seperator\">\n                                            <div class=\"seperator-line\"><\/div>\n                                        <\/div>\n                                        <div class=\"testimonial-author\">\n                                            <div class=\"author-info\">\n                                                <span>Boutique<\/span>\n                                                <small>Bucerias, Mexico<\/small>\n                                            <\/div>\n                                            <div class=\"author-image\">\n                                                <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/mexico.svg\"\n                                                    alt=\"Boutique\"\n                                                    title=\"Boutique\">\n                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                                                    <\/div>\n                                                <div class=\"swiper-slide\">\n                                                            <div class=\"testimonial-card-v3\" data-title=\"Boutique\">\n                                    <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/themes\/hotelrunner\/assets\/images\/\/quote-1.svg\" alt=\"quote\" class=\"quote-1\">\n                                    <div class=\"testimonial-inner\">\n                                        <p>We chose HotelRunner as a partner because we are looking for growth. You can be confident they'll take as good care of you no matter which size your business is and will provide the tools needed to bring your business to new heights.<\/p>                                    <\/div>\n                                    <div class=\"testimonial-bottom\">\n                                        <div class=\"testimonial-seperator\">\n                                            <div class=\"seperator-line\"><\/div>\n                                        <\/div>\n                                        <div class=\"testimonial-author\">\n                                            <div class=\"author-info\">\n                                                <span>Boutique<\/span>\n                                                <small>Udon Thani, Thailand<\/small>\n                                            <\/div>\n                                            <div class=\"author-image\">\n                                                <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/Thailand-1.svg\"\n                                                    alt=\"Boutique\"\n                                                    title=\"Boutique\">\n                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                                                    <\/div>\n                                                <div class=\"swiper-slide\">\n                                                            <div class=\"testimonial-card-v3\" data-title=\"Bed &amp; Breakfast &amp; Inn\">\n                                    <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/themes\/hotelrunner\/assets\/images\/\/quote-1.svg\" alt=\"quote\" class=\"quote-1\">\n                                    <div class=\"testimonial-inner\">\n                                        <p>HotelRunner products helped me increase my sales and manage my online rates and availability. The interface is modern and user-friendly. They also have a useful mobile application that makes my life easier while managing my reservations outside of the hotel.<\/p>                                    <\/div>\n                                    <div class=\"testimonial-bottom\">\n                                        <div class=\"testimonial-seperator\">\n                                            <div class=\"seperator-line\"><\/div>\n                                        <\/div>\n                                        <div class=\"testimonial-author\">\n                                            <div class=\"author-info\">\n                                                <span>Bed & Breakfast & Inn<\/span>\n                                                <small>Milan, Italy<\/small>\n                                            <\/div>\n                                            <div class=\"author-image\">\n                                                <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/italy.svg\"\n                                                    alt=\"Bed &amp; Breakfast &amp; Inn\"\n                                                    title=\"Bed &amp; Breakfast &amp; Inn\">\n                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                                                    <\/div>\n                                                <div class=\"swiper-slide\">\n                                                            <div class=\"testimonial-card-v3\" data-title=\"Bed &amp; Breakfast &amp; Inn\">\n                                    <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/themes\/hotelrunner\/assets\/images\/\/quote-1.svg\" alt=\"quote\" class=\"quote-1\">\n                                    <div class=\"testimonial-inner\">\n                                        <p>Their customer service is excellent. You can manage all details about rooms, rates, property, etc. I can manage all promotions from the platform. The reporting also helps me calculate my revenue. I am happy and don\u2019t think about changing it for another 7 years.<\/p>                                    <\/div>\n                                    <div class=\"testimonial-bottom\">\n                                        <div class=\"testimonial-seperator\">\n                                            <div class=\"seperator-line\"><\/div>\n                                        <\/div>\n                                        <div class=\"testimonial-author\">\n                                            <div class=\"author-info\">\n                                                <span>Bed & Breakfast & Inn<\/span>\n                                                <small>Istanbul, T\u00fcrkiye<\/small>\n                                            <\/div>\n                                            <div class=\"author-image\">\n                                                <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/turkey-1-1.svg\"\n                                                    alt=\"Bed &amp; Breakfast &amp; Inn\"\n                                                    title=\"Bed &amp; Breakfast &amp; Inn\">\n                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                                                    <\/div>\n                                                <div class=\"swiper-slide\">\n                                                            <div class=\"testimonial-card-v3\" data-title=\"Bed &amp; Breakfast &amp; Inns\">\n                                    <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/themes\/hotelrunner\/assets\/images\/\/quote-1.svg\" alt=\"quote\" class=\"quote-1\">\n                                    <div class=\"testimonial-inner\">\n                                        <p>The platform is really user-friendly and easy to use. If you use it right, the results will come in increasing occupancy and price very soon.<\/p>                                    <\/div>\n                                    <div class=\"testimonial-bottom\">\n                                        <div class=\"testimonial-seperator\">\n                                            <div class=\"seperator-line\"><\/div>\n                                        <\/div>\n                                        <div class=\"testimonial-author\">\n                                            <div class=\"author-info\">\n                                                <span>Bed & Breakfast & Inns<\/span>\n                                                <small>Paipa, Colombia<\/small>\n                                            <\/div>\n                                            <div class=\"author-image\">\n                                                <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/colombia-1-1.svg\"\n                                                    alt=\"Bed &amp; Breakfast &amp; Inns\"\n                                                    title=\"Bed &amp; Breakfast &amp; Inns\">\n                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                                                    <\/div>\n                                                <div class=\"swiper-slide\">\n                                                            <div class=\"testimonial-card-v3\" data-title=\"Airport\/Conference Hotel in Marston Green\">\n                                    <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/themes\/hotelrunner\/assets\/images\/\/quote-1.svg\" alt=\"quote\" class=\"quote-1\">\n                                    <div class=\"testimonial-inner\">\n                                        <p>I found HotelRunner a well-organized and easy-to-manage system. Once you understand the configuration and operations it\u2019s really easy to maintain and update. I would also like to mention that the support teams are really prompt and help in every possible way.<\/p>                                    <\/div>\n                                    <div class=\"testimonial-bottom\">\n                                        <div class=\"testimonial-seperator\">\n                                            <div class=\"seperator-line\"><\/div>\n                                        <\/div>\n                                        <div class=\"testimonial-author\">\n                                            <div class=\"author-info\">\n                                                <span>Airport\/Conference Hotel in Marston Green<\/span>\n                                                <small>United Kingdom<\/small>\n                                            <\/div>\n                                            <div class=\"author-image\">\n                                                <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/08\/uk-1-1.svg\"\n                                                    alt=\"Airport\/Conference Hotel in Marston Green\"\n                                                    title=\"Airport\/Conference Hotel in Marston Green\">\n                                            <\/div>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                                                    <\/div>\n                                        <\/div>\n                <div class=\"swiper-pagination\"><\/div>\n            <\/div>\n        <\/div>\n\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-540ef26\" data-id=\"540ef26\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-337e323 hr-form-submit-stretch elementor-widget elementor-widget-hr_form\" data-id=\"337e323\" 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-69ea516e72512\" class=\"hr-form hr-select2-booting hr-form-direction-vertical hr-form-step-mode\" method=\"POST\" name=\"Contact Form - EN\"                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\/2025-05-21\/79fkr\">\n                                    <input type=\"hidden\" name=\"form_redirect_url\" value=\"https:\/\/hotelrunner.com\/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-69ea516e72512 {\n                        position: relative;\n                    } *\/\n\n                    #hr-form-69ea516e72512 .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-69ea516e72512 .hr-form-overlay-content {\n                        text-align: center;\n                    }\n\n                    #hr-form-69ea516e72512 .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-69ea516e72512.submitting {\n                        pointer-events: none;\n                    }\n\n                    #hr-form-69ea516e72512.submitting .hr-form-overlay {\n                        display: flex;\n                    }\n                    @media (max-width: 1024px) {\n                        #hr-form-69ea516e72512 .hr-form-button-wrapper { text-align: left !important; }\n                        #hr-form-69ea516e72512 .hr-form-step-buttons-wrapper { justify-content: flex-start !important; }\n                    }\n                    @media (max-width: 767px) {\n                        #hr-form-69ea516e72512 .hr-form-button-wrapper { text-align: left !important; }\n                        #hr-form-69ea516e72512 .hr-form-step-buttons-wrapper { justify-content: flex-start !important; }\n                    }\n                <\/style>\n\n                <script>\n                    document.addEventListener('DOMContentLoaded', function () {\n                        const form = document.getElementById('hr-form-69ea516e72512');\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-69ea516e72512', {\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                        \/\/ Add validation rules\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                            \/\/ 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 the form\n                                form.submit();\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=\"cf-turnstile\" data-sitekey=\"0x4AAAAAABeTMK2qaRc9Oy_P\"\n                        data-callback=\"onTurnstileCallback_hr-form-69ea516e72512\"><\/div>\n                \n                                        <input type=\"hidden\" name=\"hr_ip_address\" value=\"10.0.1.133\"\n                            data-field-type=\"ip_address\">\n                                                <input type=\"hidden\" name=\"hr_page_load_time\" value=\"\"\n                            data-field-type=\"page_load_time\">\n                                                <input type=\"hidden\" name=\"hr_referrer_url\" value=\"\"\n                            data-field-type=\"referrer_url\">\n                                                <input type=\"hidden\" name=\"hr_current_url\" value=\"\"\n                            data-field-type=\"current_url\">\n                                                <input type=\"hidden\" name=\"hr_timezone_name\" value=\"\"\n                            data-field-type=\"timezone_name\">\n                                                <input type=\"hidden\" name=\"hr_window_size\" value=\"\"\n                            data-field-type=\"window_size\">\n                                                <input type=\"hidden\" name=\"hr_all_languages\" value=\"\"\n                            data-field-type=\"all_languages\">\n                                                <input type=\"hidden\" name=\"hr_primary_language\" value=\"\"\n                            data-field-type=\"primary_language\">\n                                            <input type=\"hidden\" name=\"form_endpoint_url\" value=\"https:\/\/go.marketing.hotelrunner.com\/l\/965463\/2025-05-21\/79fkr\">\n                                            <input type=\"hidden\" name=\"form_redirect_url\" value=\"https:\/\/hotelrunner.com\/thank-you\/\">\n                                                                <input type=\"hidden\" name=\"form_title\" value=\"Contact Form - EN\">\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                        \/\/ Get all forms with UTM input fields\n                        const forms = document.querySelectorAll('form');\n                        \n                        forms.forEach(form => {\n                            \/\/ Check if this form has UTM fields\n                            const utmSourceField = form.querySelector('input[name=\"utm_source\"]');\n                            if (!utmSourceField) return; \/\/ Skip forms without UTM fields\n                            \n                            \/\/ First try to get from sessionStorage\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 sessionStorage is empty, try to extract from URL directly\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                                \n                                utmKeys.forEach(key => {\n                                    if (params.has(key)) {\n                                        const value = params.get(key);\n                                        sessionStorage.setItem(key, value);\n                                        \n                                        \/\/ Update our variables\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                            \/\/ Query within this specific form only\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                    \/\/ Try multiple times to ensure UTM parameters are captured\n                    document.addEventListener('DOMContentLoaded', populateUtmFields);\n                    \n                    \/\/ Also try after a short delay in case there's a timing issue\n                    setTimeout(populateUtmFields, 100);\n                    setTimeout(populateUtmFields, 500);\n                    setTimeout(populateUtmFields, 1000);\n                    \n                    \/\/ Also try on window load\n                    window.addEventListener('load', populateUtmFields);\n                <\/script>\n\n                <div class=\"hr-form-fields-wrapper\">\n                    \n                    <div class=\"hr-form-step-fields hr-form-direction-vertical\" data-step-index=\"0\" style=\"display:block;\">                                                                <div class=\"hr-form-field-column hr-form-firstname hr-form-field-column-elementor-repeater-item-1f707e1\"\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-lastname hr-form-field-column-elementor-repeater-item-a99cca6\"\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-job-role hr-form-field-column-elementor-repeater-item-9e352af\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-form-job-role\" class=\"hr-form-label\">Job role<\/label>                                        \n                                                                                                                                        <div class=\"hr-form-field-input\">\n                                                    <select id=\"hr-form-job-role\" class=\"hr-form-input hr-select2-field\" autocomplete=\"off\" name=\"hr-form-job-role\" data-allow-clear=\"no\" data-enable-search=\"no\" required=\"required\" >\n                                                                                                                    <option value=\"\" class=\"hr-select-placeholder\" disabled selected>\n                                                                Please select                                                            <\/option>\n                                                                                                                <option value=\"Owner\/Founder\/C-Suite\">Owner\/Founder\/C-Suite<\/option><option value=\"General Management\">General Management<\/option><option value=\"Reservations\/Front of House\">Reservations\/Front of House<\/option><option value=\"IT\/Operations\">IT\/Operations<\/option><option value=\"Revenue Management\">Revenue Management<\/option><option value=\"Consultant\">Consultant<\/option><option value=\"Procurement\">Procurement<\/option><option value=\"Sales\/Marketing\">Sales\/Marketing<\/option><option value=\"Other\">Other<\/option>                                                    <\/select>\n                                                                                                    <\/div>\n                                                <div id=\"hr-form-job-role-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-email hr-form-field-column-elementor-repeater-item-b80e819\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-form-email\" class=\"hr-form-label\">Business email<\/label>                                        \n                                                                                        <input id=\"hr-form-email\" class=\"hr-form-input\" autocomplete=\"email\" type=\"email\" name=\"hr-form-email\" ><div id=\"hr-form-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-phone hr-form-field-column-elementor-repeater-item-2f03915\"\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=\"off\" type=\"tel\" name=\"hr-form-phone\"                                                                                                                 data-enable-geoip-lookup=\"yes\"\n                                                        data-initial-country=\"\">\n                                                <\/div>\n                                                                                                                                    <\/div>\n                                <\/div>\n                                                                                                <div class=\"hr-form-field-column hr-country hr-form-field-column-elementor-repeater-item-8b908ee\"\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=\"Select your country\" autocomplete=\"country-name\" name=\"hr-country\"  data-placeholder=\"Select your country\"\n                                                        name=\"hr-country\">\n                                                        <option value=\"\" class=\"hr-select-placeholder\" disabled selected>\n                                                            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-step-buttons\">                                <div class=\"hr-form-step-buttons-wrapper\" style=\"justify-content: flex-start;\">\n                                <a class=\"btn hr-form-step-next\">Next<\/a>\n                            <\/div>\n\n                            <div class=\"hr-steps-nav\">\n                                <span class=\"hr-step active\" data-step-no=\"1\"><\/span><span class=\"hr-step\" data-step-no=\"2\"><\/span>                            <\/div>\n                            <\/div><\/div><div class=\"hr-form-step-fields hr-form-direction-vertical\" data-step-index=\"1\" style=\"display:none;\">                                                                <div class=\"hr-form-field-column hr-form-company-name hr-form-field-column-elementor-repeater-item-95a5a48\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-form-company-name\" class=\"hr-form-label\">Company 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-column-elementor-repeater-item-0788aef\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-form-company-type\" class=\"hr-form-label\">Company type<\/label>                                        \n                                                                                                                                        <div class=\"hr-form-field-input\">\n                                                    <select id=\"hr-form-company-type\" class=\"hr-form-input hr-select2-field\" autocomplete=\"organization\" name=\"hr-form-company-type\" data-placeholder=\"Select your company type\" data-allow-clear=\"no\" data-enable-search=\"no\" required=\"required\" >\n                                                                                                                    <option value=\"\" class=\"hr-select-placeholder\" disabled selected>\n                                                                What is your company type?                                                            <\/option>\n                                                                                                                <option value=\"Property\">Property<\/option><option value=\"Travel Agency\">Travel agency<\/option><option value=\"Payment Systems\">Payment systems<\/option><option value=\"Tech Provider\">Tech provider<\/option><option value=\"Other\">Other<\/option>                                                    <\/select>\n                                                                                                    <\/div>\n                                                <div id=\"hr-form-company-type-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-property-type hr-conditional-field hr-form-field-column-elementor-repeater-item-22bdd16\"\n                                     style=\"display: none\">\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-form-property-type\" class=\"hr-form-label\">Property type<\/label>                                        \n                                                                                                                                        <div class=\"hr-form-field-input\">\n                                                    <select id=\"hr-form-property-type\" class=\"hr-form-input hr-select2-field\" autocomplete=\"off\" name=\"hr-form-property-type\" data-placeholder=\"Select an option\" data-allow-clear=\"no\" data-enable-search=\"yes\" required=\"required\" >\n                                                                                                                    <option value=\"\" class=\"hr-select-placeholder\" disabled selected>\n                                                                Please select your property type.                                                            <\/option>\n                                                                                                                <option value=\"Bed &amp; Breakfast\">Bed &amp; Breakfast<\/option><option value=\"Serviced Apartment\">Serviced Apartment<\/option><option value=\"Hotel\">Hotel<\/option><option value=\"Resort\">Resort<\/option><option value=\"Vacation Rental\">Vacation Rental<\/option><option value=\"Other\">Other<\/option>                                                    <\/select>\n                                                                                                    <\/div>\n                                                <div id=\"hr-form-property-type-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-adr hr-conditional-field hr-form-field-column-elementor-repeater-item-1ab8f76\"\n                                     style=\"display: none\">\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-adr\" class=\"hr-form-label\">What is your property&#039;s average daily rate (ADR)?<\/label>                                        \n                                                                                                                                        <div class=\"hr-form-field-input\">\n                                                    <select id=\"hr-adr\" class=\"hr-form-input\" autocomplete=\"off\" name=\"hr-adr\" required=\"required\" >\n                                                                                                                    <option value=\"\" class=\"hr-select-placeholder\" disabled selected>\n                                                                Please select                                                            <\/option>\n                                                                                                                <option value=\"Less than $150 USD\">Less than $150 USD<\/option><option value=\"$150 \u2013 $250 USD\">$150 \u2013 $250 USD<\/option><option value=\"More than $250 USD\">More than $250 USD<\/option>                                                    <\/select>\n                                                                                                    <\/div>\n                                                <div id=\"hr-adr-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-note hr-form-field-column-elementor-repeater-item-1c34be7\"\n                                     style=\"margin-bottom: 60px\">\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-form-note\" class=\"hr-form-label\">Anything specific you want to explore?<\/label>                                        \n                                                                                        <textarea id=\"hr-form-note\" class=\"hr-form-input hr-form-textarea\" autocomplete=\"off\" name=\"hr-form-note\" data-max-chars=\"600\" ><\/textarea><div id=\"hr-form-note-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 privacy_statement hr-form-field-column-elementor-repeater-item-d38d1f6\"\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:\/\/hotelrunner.com\/privacy-statement-for-request-complaint-suggestion-processes\/\">Privacy Statement for Request \/ Complaint \/ Suggestion Processes.<\/a><\/span>\n                                                    <\/label>\n                                                                                                    <\/div>\n                                                                                    <\/div>\n                                <\/div>\n                                                                                                <div class=\"hr-form-field-column commerical-text hr-form-field-column-elementor-repeater-item-d117d28\"\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:\/\/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 class=\"hr-form-step-buttons\">                                <div class=\"hr-form-step-buttons-wrapper\" style=\"justify-content: flex-start;\">\n                                <button type=\"submit\" class=\"btn hr-form-step-next hr-form-submit\">Submit<\/button><a class=\"btn hr-form-step-prev\">Back<\/a>\n                            <\/div>\n\n                            <div class=\"hr-steps-nav\">\n                                <span class=\"hr-step active\" data-step-no=\"1\"><\/span><span class=\"hr-step active\" data-step-no=\"2\"><\/span>                            <\/div>\n                            <\/div><\/div>                <\/div>\n\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                        \/\/ 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                        });\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                        \/\/ Handle form submission\n                        $(input.form).on(\"submit\", function () {\n                            if (iti.isValidNumber()) {\n                                input.value = iti.getNumber();\n                            }\n                        });\n\n                        \/\/ Add validation class and store full number on blur\n                        input.addEventListener(\"blur\", function () {\n                            var fullNumber = iti.getNumber();\n                            \/\/ Store the full number in a hidden input\n                            var hiddenInput = document.createElement('input');\n                            hiddenInput.type = 'hidden';\n                            hiddenInput.name = input.name + '_full';\n                            hiddenInput.value = fullNumber;\n                            \/\/ Replace existing hidden input if any\n                            var existingHidden = input.parentNode.querySelector('input[name=\"' + input.name + '_full\"]');\n                            if (existingHidden) {\n                                existingHidden.remove();\n                            }\n                            input.parentNode.appendChild(hiddenInput);\n\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                }\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-69ea516e72512');\n\n                \/\/ Also initialize on document ready to ensure DOM is fully loaded\n                $(document).ready(function () {\n                    initializeFormPhoneInputs('hr-form-69ea516e72512');\n                });\n            })(jQuery);\n\n\n            document.addEventListener('DOMContentLoaded', function () {\n                const form = document.getElementById('hr-form-69ea516e72512');\n\n                \/\/ Function to get all hidden fields\n                const hiddenFields = form.querySelectorAll('input[type=\"hidden\"][data-field-type]');\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                            field.value = window.location.href;\n                            break;\n\n                        case 'referrer_url':\n                            field.value = document.referrer || 'direct';\n                            break;\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-69ea516e72512');\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-69ea516e72512');\n                const conditions = {};\n\n                                        conditions['hr-form-property-type'] = {\n                            targetField: 'hr-form-company-type',\n                            operator: 'equals',\n                            value: 'Property'\n                        };\n                                            conditions['hr-adr'] = {\n                            targetField: 'hr-form-company-type',\n                            operator: 'equals',\n                            value: 'Property'\n                        };\n                                            conditions['submit'] = {\n                            targetField: '',\n                            operator: 'equals',\n                            value: ''\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                                \/\/ Add the custom attribute to each form element\n                                formElements.forEach(el => el.classList.add('condition-false'));\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                                \/\/ Add the custom attribute to each form element\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                    }\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-69ea516e72512');\n                let isSubmitting = false;\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-69ea516e72512', {\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\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 make a selection.\"});\n                        \n                        \/\/ Add field to validator \u2013 errorsContainer routes errors outside inner so label stays centered\n                                                validator.addField('#hr-form-job-role', fieldRules_2, { errorsContainer: '#hr-form-job-role-error-container' });\n                                                                                                                                                const fieldRules_3 = [];\n                                                                                fieldRules_3.push({\"rule\":\"required\",\"errorMessage\":\"Please enter your email address.\"});\n                                                                                fieldRules_3.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('#hr-form-email', fieldRules_3, { errorsContainer: '#hr-form-email-error-container' });\n                                                                                                                                                const fieldRules_4 = [];\n                                                                                fieldRules_4.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_4, { errorsContainer: '#hr-form-phone-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 = [];\n                                                                                fieldRules_6.push({\"rule\":\"required\",\"errorMessage\":\"Please enter your company 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_6, { errorsContainer: '#hr-form-company-name-error-container' });\n                                                                                                                                                const fieldRules_7 = [];\n                                                                                fieldRules_7.push({\"rule\":\"required\",\"errorMessage\":\"This field is required\"});\n                        \n                        \/\/ Add field to validator \u2013 errorsContainer routes errors outside inner so label stays centered\n                                                validator.addField('#hr-form-company-type', fieldRules_7, { errorsContainer: '#hr-form-company-type-error-container' });\n                                                                                                                                                const fieldRules_8 = [];\n                                                                                fieldRules_8.push({\"rule\":\"required\",\"errorMessage\":\"This field is required\"});\n                        \n                        \/\/ Add field to validator \u2013 errorsContainer routes errors outside inner so label stays centered\n                                                validator.addField('#hr-form-property-type', fieldRules_8, { errorsContainer: '#hr-form-property-type-error-container' });\n                                                                                                                                                const fieldRules_9 = [];\n                                                                                fieldRules_9.push({\"rule\":\"required\",\"errorMessage\":\"This field is required\"});\n                        \n                        \/\/ Add field to validator \u2013 errorsContainer routes errors outside inner so label stays centered\n                                                validator.addField('#hr-adr', fieldRules_9, { errorsContainer: '#hr-adr-error-container' });\n                                                                                                                                                                                                                                                                                            const fieldRules_11 = [{\"rule\":\"required\",\"errorMessage\":\"This field is required\"}];\n                        if (fieldRules_11.length > 0) {\n                            validator.addField('#privacy_statement', fieldRules_11);\n                        }\n                                                                                                                                                const fieldRules_12 = [];\n                        if (fieldRules_12.length > 0) {\n                            validator.addField('#commerical-text', fieldRules_12);\n                        }\n                                                                                                                \n                \/\/ Add blur and focus event listeners for all form fields\n                form.querySelectorAll('input, select, textarea').forEach(input => {\n                    \/\/ Only add validation if the input has an ID\n                    if (input.id) {\n                        \/\/ Validate on blur\n                        input.addEventListener('blur', function () {\n                            validator.revalidateField('#' + this.id);\n                        });\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                        event.preventDefault();\n                        showBlockedCharsMessage(this);\n                    });\n\n                    input.addEventListener('drop', function (event) {\n                        event.preventDefault();\n                        showBlockedCharsMessage(this);\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                \/\/ 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                    e.preventDefault();\n\n                    if (isSubmitting) {\n                        return;\n                    }\n\n                    \/\/ Check honeypot field\n                    const honeypotField = form.querySelector('input[name=\"hr_website\"]');\n                    if (honeypotField && 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\n                    $.each(validator.fields, function (index, field) {\n                        if (field.elem.classList.contains('condition-false')) {\n                            field.isValid = true;\n                            \/\/change is-invalid to is-valid\n                            field.elem.classList.remove('is-invalid');\n                            field.elem.classList.add('is-valid');\n                        }\n                    });\n\n                    \/\/ Validate form\n                    if (!validator.isValid) {\n                        return;\n                    }\n\n                    if (validator.isValid) {\n                        isSubmitting = true;\n                        const submitButton = form.querySelector('.hr-form-submit');\n                        const originalButtonText = submitButton.innerHTML;\n                        submitButton.disabled = true;\n                        form.submit();\n                    }\n                });\n\n                \/\/ Add new code to handle submit button state based on validation\n                const submitButton = form.querySelector('.hr-form-submit');\n\n                \/\/ Function to check validation state and update submit button\n                function updateSubmitButtonState() {\n                    const invalidFields = form.querySelectorAll('.is-invalid');\n                    if (invalidFields.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                }\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        <\/script>\n        \n        \n        <script>\n            document.addEventListener('DOMContentLoaded', function () {\n                const form = document.getElementById('hr-form-69ea516e72512');\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-69ea516e72512');\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-69ea516e72512 .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-69ea516e72512 .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-69ea516e72512'] = function () {\n                \/\/ Enable submit button when Turnstile is ready\n                const form = document.getElementById('hr-form-69ea516e72512');\n                const submitButton = form.querySelector('.hr-form-submit');\n                if (submitButton) {\n                    submitButton.disabled = false;\n                }\n            };\n\n            document.addEventListener('DOMContentLoaded', function () {\n                const form = document.getElementById('hr-form-69ea516e72512');\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\n                    \/\/ Initialize Turnstile when the script is ready\n                    function initTurnstile() {\n                        if (typeof turnstile !== 'undefined') {\n                            const turnstileContainer = form.querySelector('.cf-turnstile:not([data-widget-id])');\n                            if (turnstileContainer && !turnstileContainer.hasAttribute('data-widget-id')) {\n                                turnstile.render(turnstileContainer);\n                            }\n                        } else {\n                            setTimeout(initTurnstile, 100);\n                        }\n                    }\n                    initTurnstile();\n                \n                form.addEventListener('submit', function (e) {\n                                            const turnstileResponse = form.querySelector('[name=\"cf-turnstile-response\"]');\n                        if (!turnstileResponse || !turnstileResponse.value) {\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\",\"hr-form-job-role\",\"hr-form-email\",\"hr-form-phone\",\"hr-country\",\"hr-form-company-name\",\"hr-form-company-type\",\"hr-form-property-type\",\"hr-adr\",\"hr-form-note\",\"privacy_statement\",\"commerical-text\",\"hr_ip_address\",\"hr_page_load_time\",\"hr_referrer_url\",\"hr_current_url\",\"hr_timezone_name\",\"hr_window_size\",\"hr_all_languages\",\"hr_primary_language\"];\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            \/\/ Global callback when Turnstile script is loaded\n            window.onTurnstileLoad = function () {\n                \/\/ Render all Turnstile widgets that haven't been rendered yet\n                document.querySelectorAll('.cf-turnstile:not([data-widget-id])').forEach(function (element) {\n                    if (!element.hasAttribute('data-widget-id')) {\n                        turnstile.render(element);\n                    }\n                });\n            };\n        <\/script>\n\n        <script>\n            jQuery(document).ready(function () {\n                const $currentForm = jQuery('#hr-form-69ea516e72512');\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                                validationPromises.push(\n                                    validator.revalidateField('#' + this.id)\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                \/\/ Handle Select2 events for this form only\n                $currentForm.find('.hr-select2-field').on('select2:select select2:unselect select2:clear', function () {\n                    const $field = jQuery(this);\n                    const value = $field.val();\n                    const isRequired = $field.prop('required');                    \n                    \/\/ Update validation state\n                    if (isRequired && (!value || (Array.isArray(value) && value.length === 0))) {\n                        $field.addClass('is-invalid').removeClass('is-valid');\n                        const select2Container = $field.next('.select2');\n                        select2Container.addClass('is-invalid').removeClass('is-valid');\n                    } else {\n                        $field.addClass('is-valid').removeClass('is-invalid');\n                        const select2Container = $field.next('.select2');\n                        select2Container.addClass('is-valid').removeClass('is-invalid');\n                    }\n\n                    \/\/ Trigger validation\n                    if (this.id) {\n                        var validator = $currentForm[0] && $currentForm[0]._justValidateInstance;\n                        if (validator) {\n                            validator.revalidateField('#' + this.id);\n                        }\n                    }\n                });\n                \n                \/\/ Handle country select events for this form only\n                $currentForm.find('.hr-country-select').on('select2:select select2:unselect select2:clear', function () {\n                    const $field = jQuery(this);\n                    const value = $field.val();\n                    const isRequired = $field.prop('required');                    \n                    \/\/ Update validation state\n                    if (isRequired && (!value || (Array.isArray(value) && value.length === 0))) {\n                        $field.addClass('is-invalid').removeClass('is-valid');\n                        const select2Container = $field.next('.select2');\n                        select2Container.addClass('is-invalid').removeClass('is-valid');\n                    } else {\n                        $field.addClass('is-valid').removeClass('is-invalid');\n                        const select2Container = $field.next('.select2');\n                        select2Container.addClass('is-valid').removeClass('is-invalid');\n                    }\n\n                    \/\/ Trigger validation\n                    if (this.id) {\n                        var validator = $currentForm[0] && $currentForm[0]._justValidateInstance;\n                        if (validator) {\n                            validator.revalidateField('#' + this.id);\n                        }\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                            validator.revalidateField('#' + this.id);\n                        }\n                    }\n                });\n\n                $currentForm.find('.hr-form-step-next').on('click', async 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                    \/\/ 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                \/\/ 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\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8f06c24 elementor-section-stretched elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"8f06c24\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;,&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;none&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a9774d7\" data-id=\"a9774d7\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fd1073b elementor-widget elementor-widget-heading\" data-id=\"fd1073b\" 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\">Certified technology by the industry-leading brands<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-22f35ae elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"22f35ae\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-a68ee4f\" data-id=\"a68ee4f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e2bacec elementor-hidden-tablet elementor-hidden-mobile elementor-hidden-mobile_extra elementor-widget elementor-widget-global elementor-global-94081 elementor-widget-hr_custom_logo\" data-id=\"e2bacec\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_custom_logo.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <div class=\"logos\">\n                            <div class=\"elementor-repeater-item-e177fd4\">\n                    <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/02\/EG-Elite-Partner-Badge-2026.webp\" alt=\"Expedia Elite\">\n                <\/div>\n                                <div class=\"elementor-repeater-item-abc7615\">\n                    <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/04\/booking_premier_plus.svg\" alt=\"Booking\">\n                <\/div>\n                                <div class=\"elementor-repeater-item-f16b028\">\n                    <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/04\/agoda_2026.webp\" alt=\"Agoda\">\n                <\/div>\n                                <div class=\"elementor-repeater-item-a39d8a9\">\n                    <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2024\/09\/Group-5.svg\" alt=\"Logo Title\">\n                <\/div>\n                                <div class=\"elementor-repeater-item-99223d2\">\n                    <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2024\/09\/Group-4.svg\" alt=\"Logo Title\">\n                <\/div>\n                                <div class=\"elementor-repeater-item-7706644\">\n                    <img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2024\/09\/Group.svg\" alt=\"Logo Title\">\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-51b53ea elementor-hidden-widescreen elementor-hidden-desktop elementor-hidden-laptop elementor-widget-mobile__width-inherit elementor-pagination-position-outside elementor-widget elementor-widget-global elementor-global-113755 elementor-widget-image-carousel\" data-id=\"51b53ea\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;slides_to_show_mobile&quot;:&quot;2&quot;,&quot;navigation&quot;:&quot;dots&quot;,&quot;image_spacing_custom_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:28,&quot;sizes&quot;:[]},&quot;lazyload&quot;:&quot;yes&quot;,&quot;slides_to_scroll_mobile&quot;:&quot;1&quot;,&quot;slides_to_show_mobile_extra&quot;:&quot;4&quot;,&quot;slides_to_scroll_mobile_extra&quot;:&quot;1&quot;,&quot;autoplay_speed&quot;:1500,&quot;autoplay&quot;:&quot;yes&quot;,&quot;infinite&quot;:&quot;yes&quot;,&quot;speed&quot;:500,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:20,&quot;sizes&quot;:[]},&quot;image_spacing_custom_widescreen&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_laptop&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_mobile_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"image-carousel.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-image-carousel-wrapper swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Image Carousel\" dir=\"ltr\">\n\t\t\t<div class=\"elementor-image-carousel swiper-wrapper\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 of 6\"><figure class=\"swiper-slide-inner\"><img class=\"swiper-slide-image swiper-lazy\" data-src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/05\/booking-2025-1.webp\" alt=\"booking-2025 (1)\" \/><div class=\"swiper-lazy-preloader\"><\/div><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 of 6\"><figure class=\"swiper-slide-inner\"><img class=\"swiper-slide-image swiper-lazy\" data-src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/02\/EG-Elite-Partner-Badge-2026.webp\" alt=\"EG-Elite-Partner-Badge-2026\" \/><div class=\"swiper-lazy-preloader\"><\/div><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"3 of 6\"><figure class=\"swiper-slide-inner\"><img class=\"swiper-slide-image swiper-lazy\" data-src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2026\/04\/agoda_2026.webp\" alt=\"agoda_2026\" \/><div class=\"swiper-lazy-preloader\"><\/div><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"4 of 6\"><figure class=\"swiper-slide-inner\"><img class=\"swiper-slide-image swiper-lazy\" data-src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2024\/09\/Group-5.svg\" alt=\"Group-5\" \/><div class=\"swiper-lazy-preloader\"><\/div><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"5 of 6\"><figure class=\"swiper-slide-inner\"><img class=\"swiper-slide-image swiper-lazy\" data-src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2024\/09\/Group-4.svg\" alt=\"Group-4\" \/><div class=\"swiper-lazy-preloader\"><\/div><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"6 of 6\"><figure class=\"swiper-slide-inner\"><img class=\"swiper-slide-image swiper-lazy\" data-src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2024\/09\/Group.svg\" alt=\"Group\" \/><div class=\"swiper-lazy-preloader\"><\/div><\/figure><\/div>\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"swiper-pagination\"><\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Get a demo Boost revenue. Simplify operations. Request a free demo of our unified platform built to streamline operations, enhance your digital presence, drive direct bookings, and deliver exceptional guest experiences. HotelRunner provides great online solutions for hoteliers. We increased the number of online travel agencies we work with thanks to HotelRunner&#8217;s channel manager. We [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"page_category":[],"page_type":[],"class_list":["post-120887","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/pages\/120887","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/comments?post=120887"}],"version-history":[{"count":66,"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/pages\/120887\/revisions"}],"predecessor-version":[{"id":140384,"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/pages\/120887\/revisions\/140384"}],"wp:attachment":[{"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/media?parent=120887"}],"wp:term":[{"taxonomy":"page_category","embeddable":true,"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/page_category?post=120887"},{"taxonomy":"page_type","embeddable":true,"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/page_type?post=120887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}