




{"id":131089,"date":"2025-10-23T15:38:55","date_gmt":"2025-10-23T15:38:55","guid":{"rendered":"https:\/\/hotelrunner.com\/?post_type=product&#038;p=131089"},"modified":"2026-04-10T10:43:36","modified_gmt":"2026-04-10T07:43:36","slug":"ruby","status":"publish","type":"product","link":"https:\/\/hotelrunner.com\/en\/products\/ruby\/","title":{"rendered":"Ruby"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"131089\" class=\"elementor elementor-131089\" data-elementor-post-type=\"product\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8800f38 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8800f38\" 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-50 elementor-top-column elementor-element elementor-element-58598c4\" data-id=\"58598c4\" 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-a4d3107 elementor-widget elementor-widget-hr_label\" data-id=\"a4d3107\" 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\">Ruby<\/span>\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dd0d412 elementor-widget elementor-widget-heading\" data-id=\"dd0d412\" 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\">Empower your travel agency with finance purpose-built for travel.<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6e6ba4c elementor-widget elementor-widget-text-editor\" data-id=\"6e6ba4c\" 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\tRuby automates payments with global partners\u2014cutting settlement costs, eliminating frictions, enabling instant accommodation onboarding, and unlocking new revenue by improving margins through faster, more secure, and smarter financial flows.\n<br>\n<strong>Scale globally. Grow profitably. Settle instantly.<\/strong>\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-17828b4 elementor-widget elementor-widget-hr_button\" data-id=\"17828b4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <div class=\"btn-wrapper\" >\n            <a href=\"#form\" target=\"_self\" \n               class=\"btn custom has-no-icon\"\n               >\n                                <span class=\"btn-text\">Join Ruby now<\/span>\n                            <\/a>\n        <\/div>\n        \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-0c4e807 elementor-reverse-mobile elementor-section-content-middle elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"0c4e807\" 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-0e754f5\" data-id=\"0e754f5\" 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-99587bb elementor-widget elementor-widget-heading\" data-id=\"99587bb\" 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<span class=\"elementor-heading-title elementor-size-default\">In partnership with industry leaders<\/span>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1aeb781 elementor-widget__width-auto elementor-widget elementor-widget-image\" data-id=\"1aeb781\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/10\/visa.svg\" class=\"attachment-full size-full wp-image-130137\" alt=\"\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f94b4f5 elementor-widget__width-auto elementor-widget elementor-widget-image\" data-id=\"f94b4f5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/10\/checkout.svg\" class=\"attachment-full size-full wp-image-130141\" alt=\"\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-d2f2ebc elementor-hidden-tablet elementor-hidden-mobile_extra elementor-hidden-mobile\" data-id=\"d2f2ebc\" 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-9f02771 elementor-align-center elementor-widget elementor-widget-lottie\" data-id=\"9f02771\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;source_json&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/hotelrunner.com\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Ruby_Hero_En-1.json&quot;,&quot;id&quot;:130216,&quot;size&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;source&quot;:&quot;library&quot;},&quot;loop&quot;:&quot;yes&quot;,&quot;lazyload&quot;:&quot;yes&quot;,&quot;source&quot;:&quot;media_file&quot;,&quot;caption_source&quot;:&quot;none&quot;,&quot;link_to&quot;:&quot;none&quot;,&quot;trigger&quot;:&quot;arriving_to_viewport&quot;,&quot;viewport&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;play_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]},&quot;start_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;end_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:100,&quot;sizes&quot;:[]},&quot;renderer&quot;:&quot;svg&quot;}\" data-widget_type=\"lottie.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"e-lottie__container\"><div class=\"e-lottie__animation\"><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-55700a8 elementor-section-stretched elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"55700a8\" 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;}\">\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-3c9c673\" data-id=\"3c9c673\" 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-e31702d elementor-widget elementor-widget-heading\" data-id=\"e31702d\" 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\">Reimagining finance for travel<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1c3bb1e elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"1c3bb1e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Finance, native to travel.<br \/>For decades, the travel industry was relying on generic finance tools for payments. Ruby changes this.<\/p>\t\t\t\t\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-5898fac elementor-reverse-mobile elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5898fac\" 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-8a0eae9\" data-id=\"8a0eae9\" 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-7224156 elementor-widget elementor-widget-image\" data-id=\"7224156\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1246\" height=\"1200\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/10\/Ruby-Diagram-EN.webp\" class=\"attachment-full size-full wp-image-130884\" alt=\"\" srcset=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/10\/Ruby-Diagram-EN.webp 1246w, https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/10\/Ruby-Diagram-EN-378x364.webp 378w\" sizes=\"(max-width: 1246px) 100vw, 1246px\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-4c05107 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"4c05107\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>End settlement delays, eliminate frictions, cut costs, and unify global distribution with secure and instant payments. Ruby is the autonomous and embedded finance infrastructure designed for the travel industry. Built on trust, speed, and transparency.\u2028<\/p><p>Ruby is an API-first infrastructure and platform built specifically for the high-volume, multi-currency, multi-jurisdiction, and cross-border complexities of travel transactions.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-13a627d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"13a627d\" 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-33 elementor-top-column elementor-element elementor-element-6385527\" data-id=\"6385527\" 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-4de9b90 elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"4de9b90\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"31\" viewBox=\"0 0 30 31\" fill=\"none\"><g clip-path=\"url(#clip0_4611_7501)\"><path d=\"M3.04852 21.1261C2.19205 19.3363 1.75781 17.4158 1.75781 15.418C1.75781 8.11619 7.69822 2.17578 15 2.17578C17.901 2.17578 20.6592 3.10291 22.9373 4.81596L20.7455 5.10453C20.2642 5.16787 19.9255 5.60938 19.9888 6.09061C20.0521 6.57189 20.4936 6.91062 20.9749 6.84728L25.0998 6.30424C25.581 6.2409 25.9198 5.79939 25.8565 5.31816L25.3134 1.19328C25.25 0.712051 24.8085 0.373262 24.3273 0.436602H24.3272C23.846 0.499941 23.5072 0.941445 23.5706 1.42268L23.8149 3.27852C21.2689 1.42145 18.2118 0.417969 15 0.417969C10.9934 0.417969 7.22654 1.9782 4.39336 4.81133C1.56029 7.64451 0 11.4113 0 15.418C0 17.6805 0.492188 19.8563 1.46297 21.8848C1.6725 22.3227 2.19727 22.5078 2.63514 22.2983C3.07295 22.0888 3.25805 21.5639 3.04852 21.1261Z\" fill=\"#C92D49\"><\/path><path d=\"M23.1296 14.1072L23.569 13.8536C23.9893 13.6109 24.1334 13.0733 23.8907 12.653L21.8399 9.10092C21.5972 8.68057 21.0596 8.53648 20.6393 8.77924L20.1999 9.03295C19.1909 9.61549 17.9297 8.88728 17.9297 7.72221V7.21484C17.9297 6.72945 17.5362 6.33594 17.0508 6.33594H12.9492C12.4638 6.33594 12.0703 6.72945 12.0703 7.21484V7.72221C12.0703 8.88728 10.8091 9.61543 9.80009 9.03295L9.3607 8.77924C8.94035 8.53654 8.40281 8.68057 8.16011 9.10092L6.10933 12.653C5.86664 13.0733 6.01066 13.6109 6.43101 13.8536L6.8704 14.1072C7.87939 14.6898 7.87939 16.1461 6.8704 16.7287L6.43101 16.9823C6.01066 17.225 5.86658 17.7625 6.10933 18.1829L8.16011 21.735C8.40281 22.1553 8.94035 22.2994 9.3607 22.0566L9.80009 21.8029C10.8091 21.2204 12.0703 21.9486 12.0703 23.1137V23.6211C12.0703 24.1065 12.4638 24.5 12.9492 24.5H17.0508C17.5362 24.5 17.9297 24.1065 17.9297 23.6211V23.1137C17.9297 21.9487 19.1909 21.2205 20.1999 21.803L20.6393 22.0567C21.0596 22.2994 21.5972 22.1554 21.8399 21.735L23.8907 18.1829C24.1334 17.7626 23.9893 17.2251 23.569 16.9824L23.1296 16.7287C22.1206 16.1462 22.1206 14.6898 23.1296 14.1072ZM15 18.7871C13.1393 18.7871 11.6309 17.2787 11.6309 15.418C11.6309 13.5573 13.1393 12.0488 15 12.0488C16.8607 12.0488 18.3691 13.5573 18.3691 15.418C18.3691 17.2787 16.8607 18.7871 15 18.7871Z\" fill=\"#C92D49\"><\/path><path d=\"M28.537 8.95104C28.3275 8.51316 27.8027 8.32807 27.3649 8.5376C26.927 8.74713 26.7419 9.27189 26.9514 9.70977C27.8079 11.4996 28.2422 13.4201 28.2422 15.4179C28.2422 22.7197 22.3018 28.6601 15 28.6601C12.099 28.6601 9.34083 27.733 7.06265 26.0199L9.25452 25.7313C9.73576 25.668 10.0745 25.2265 10.0112 24.7453C9.94787 24.264 9.50636 23.9253 9.02513 23.9886L4.90019 24.5316C4.41896 24.595 4.08017 25.0365 4.14351 25.5177L4.68661 29.6426C4.74995 30.1238 5.19146 30.4626 5.67269 30.3993C6.15392 30.3359 6.49277 29.8944 6.42943 29.4132L6.18509 27.5574C8.73111 29.4144 11.7882 30.4179 15 30.4179C19.0066 30.4179 22.7735 28.8577 25.6066 26.0245C28.4397 23.1914 30 19.4246 30 15.4179C30 13.1554 29.5078 10.9796 28.537 8.95104Z\" fill=\"#C92D49\"><\/path><\/g><defs><clipPath id=\"clip0_4611_7501\"><rect width=\"30\" height=\"30\" fill=\"white\" transform=\"translate(0 0.417969)\"><\/rect><\/clipPath><\/defs><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tAutomated Settlements \t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tInstantly reconcile bookings, invoices, and commissions with full accuracy and zero manual effort.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\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<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-250985c\" data-id=\"250985c\" 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-98eee07 elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"98eee07\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"22\" viewBox=\"0 0 30 22\" fill=\"none\"><path d=\"M29.6729 14.2689L23.1099 8.64354C22.9738 8.52709 22.8071 8.45208 22.6297 8.4274C22.4523 8.40272 22.2715 8.42939 22.1087 8.50425C21.9459 8.57912 21.808 8.69905 21.7113 8.84985C21.6146 9.00065 21.5631 9.176 21.5629 9.35515V12.1678H11.2497C11.0011 12.1678 10.7626 12.2666 10.5868 12.4424C10.411 12.6183 10.3122 12.8567 10.3122 13.1054V16.8557C10.3122 17.1043 10.411 17.3428 10.5868 17.5186C10.7626 17.6944 11.0011 17.7932 11.2497 17.7932H21.5629V20.6059C21.5631 20.7851 21.6146 20.9604 21.7113 21.1112C21.808 21.262 21.9459 21.3819 22.1087 21.4568C22.2715 21.5317 22.4523 21.5583 22.6297 21.5337C22.8071 21.509 22.9738 21.434 23.1099 21.3175L29.6729 15.6921C29.7755 15.6041 29.8578 15.495 29.9143 15.3721C29.9708 15.2493 30 15.1157 30 14.9805C30 14.8453 29.9708 14.7118 29.9143 14.5889C29.8578 14.4661 29.7755 14.3569 29.6729 14.2689Z\" fill=\"#C92D49\"><\/path><path d=\"M19.6878 9.35517V5.60491C19.6878 5.35626 19.589 5.11778 19.4132 4.94196C19.2374 4.76613 18.9989 4.66735 18.7503 4.66735H8.43705V1.85466C8.43689 1.67551 8.3854 1.50016 8.28868 1.34936C8.19196 1.19856 8.05406 1.07863 7.8913 1.00377C7.72855 0.928898 7.54775 0.902228 7.37031 0.926911C7.19287 0.951595 7.02621 1.0266 6.89007 1.14305L0.327125 6.76843C0.224519 6.85645 0.142162 6.96561 0.0856978 7.08844C0.0292341 7.21127 0 7.34486 0 7.48004C0 7.61523 0.0292341 7.74881 0.0856978 7.87164C0.142162 7.99447 0.224519 8.10363 0.327125 8.19165L6.89007 13.817C7.02621 13.9335 7.19287 14.0085 7.37031 14.0332C7.54775 14.0579 7.72855 14.0312 7.8913 13.9563C8.05406 13.8815 8.19196 13.7615 8.28868 13.6107C8.3854 13.4599 8.43689 13.2846 8.43705 13.1054V10.2927H18.7503C18.9989 10.2927 19.2374 10.194 19.4132 10.0181C19.589 9.8423 19.6878 9.60383 19.6878 9.35517Z\" fill=\"#C92D49\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tInstant Global Payouts\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tPay and get paid across currencies and markets without delays or FX friction.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\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<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-4bccf4e\" data-id=\"4bccf4e\" 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-59dfb16 elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"59dfb16\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"31\" viewBox=\"0 0 30 31\" fill=\"none\"><path d=\"M25.975 15.9805L22.225 14.1055C21.9213 13.9574 21.5879 13.8805 21.25 13.8805C20.9121 13.8805 20.5787 13.9574 20.275 14.1055L16.525 15.9805C16.1522 16.1556 15.8368 16.4331 15.6155 16.7805C15.3942 17.1279 15.2761 17.5311 15.275 17.943V19.668C15.2747 21.3393 15.7431 22.9773 16.6269 24.3958C17.5107 25.8143 18.7746 26.9566 20.275 27.693C20.5787 27.841 20.9121 27.918 21.25 27.918C21.5879 27.918 21.9213 27.841 22.225 27.693C23.7254 26.9566 24.9893 25.8143 25.8731 24.3958C26.7569 22.9773 27.2253 21.3393 27.225 19.668V17.943C27.2239 17.5311 27.1058 17.1279 26.8845 16.7805C26.6632 16.4331 26.3478 16.1556 25.975 15.9805ZM23.75 20.3305L21.25 22.8305C21.0742 23.006 20.8359 23.1046 20.5875 23.1046C20.3391 23.1046 20.1008 23.006 19.925 22.8305L18.675 21.5805C18.5829 21.4946 18.509 21.3911 18.4578 21.2761C18.4065 21.1611 18.379 21.037 18.3768 20.9111C18.3745 20.7852 18.3977 20.6602 18.4448 20.5435C18.492 20.4267 18.5622 20.3207 18.6512 20.2317C18.7402 20.1426 18.8463 20.0725 18.963 20.0253C19.0797 19.9782 19.2048 19.955 19.3307 19.9572C19.4565 19.9594 19.5807 19.987 19.6957 20.0382C19.8107 20.0895 19.9142 20.1634 20 20.2555L20.5875 20.843L22.5 19.0055C22.6825 18.9017 22.8947 18.8622 23.1023 18.8933C23.31 18.9244 23.5012 19.0244 23.6453 19.1771C23.7894 19.3299 23.878 19.5266 23.897 19.7357C23.916 19.9448 23.8642 20.1543 23.75 20.3305ZM13.4375 19.668V18.1055H7.5C7.25136 18.1055 7.0129 18.0067 6.83709 17.8309C6.66127 17.6551 6.5625 17.4166 6.5625 17.168C6.5625 16.9193 6.66127 16.6809 6.83709 16.5051C7.0129 16.3292 7.25136 16.2305 7.5 16.2305H13.8125C14.1908 15.4292 14.8177 14.7716 15.6 14.3555H7.5C7.25136 14.3555 7.0129 14.2567 6.83709 14.0809C6.66127 13.9051 6.5625 13.6666 6.5625 13.418C6.5625 13.1693 6.66127 12.9309 6.83709 12.7551C7.0129 12.5792 7.25136 12.4805 7.5 12.4805H17.5C17.6712 12.4824 17.8386 12.5312 17.984 12.6216C18.1295 12.7119 18.2474 12.8404 18.325 12.993L19.4375 12.4305C20.2978 12.0334 21.2676 11.9409 22.1875 12.168V5.91797C22.1842 5.33882 21.9527 4.78433 21.5432 4.3748C21.1336 3.96527 20.5791 3.73375 20 3.73047H5C4.42085 3.73375 3.86636 3.96527 3.45683 4.3748C3.0473 4.78433 2.81578 5.33882 2.8125 5.91797V25.918C2.81578 26.4971 3.0473 27.0516 3.45683 27.4611C3.86636 27.8707 4.42085 28.1022 5 28.1055H17.425C16.1697 27.0885 15.1594 25.802 14.4692 24.3414C13.7789 22.8808 13.4263 21.2835 13.4375 19.668ZM7.5 8.73047H17.5C17.7486 8.73047 17.9871 8.82924 18.1629 9.00506C18.3387 9.18087 18.4375 9.41933 18.4375 9.66797C18.4375 9.91661 18.3387 10.1551 18.1629 10.3309C17.9871 10.5067 17.7486 10.6055 17.5 10.6055H7.5C7.25136 10.6055 7.0129 10.5067 6.83709 10.3309C6.66127 10.1551 6.5625 9.91661 6.5625 9.66797C6.5625 9.41933 6.66127 9.18087 6.83709 9.00506C7.0129 8.82924 7.25136 8.73047 7.5 8.73047ZM11.25 23.1055H7.5C7.25136 23.1055 7.0129 23.0067 6.83709 22.8309C6.66127 22.6551 6.5625 22.4166 6.5625 22.168C6.5625 21.9193 6.66127 21.6809 6.83709 21.5051C7.0129 21.3292 7.25136 21.2305 7.5 21.2305H11.25C11.4986 21.2305 11.7371 21.3292 11.9129 21.5051C12.0887 21.6809 12.1875 21.9193 12.1875 22.168C12.1875 22.4166 12.0887 22.6551 11.9129 22.8309C11.7371 23.0067 11.4986 23.1055 11.25 23.1055Z\" fill=\"#C92D49\"><\/path><\/svg>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tPolicy-aware Infrastructure\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h3>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<p class=\"elementor-icon-box-description\">\n\t\t\t\t\t\tBuilt to understand travel-specific rules, rate plans, and cancellations for true financial autonomy.\t\t\t\t\t<\/p>\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\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<section class=\"elementor-section elementor-top-section elementor-element elementor-element-221888b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"221888b\" 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-top-column elementor-element elementor-element-12c057a\" data-id=\"12c057a\" 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-2067ee2 elementor-reverse-mobile elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2067ee2\" 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-50 elementor-inner-column elementor-element elementor-element-672b78a\" data-id=\"672b78a\" 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-7c47267 elementor-widget elementor-widget-heading\" data-id=\"7c47267\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Pre-configured with travel-specific policies and rules<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dd1be18 elementor-widget elementor-widget-text-editor\" data-id=\"dd1be18\" 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\tHandle the unique regulations, workflows, and partner relationships specific to the industry easily.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-ab55121\" data-id=\"ab55121\" 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-739ab80 elementor-align-center elementor-widget elementor-widget-lottie\" data-id=\"739ab80\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;source_json&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/hotelrunner.com\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Policy.json&quot;,&quot;id&quot;:130519,&quot;size&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;source&quot;:&quot;library&quot;},&quot;loop&quot;:&quot;yes&quot;,&quot;lazyload&quot;:&quot;yes&quot;,&quot;source&quot;:&quot;media_file&quot;,&quot;caption_source&quot;:&quot;none&quot;,&quot;link_to&quot;:&quot;none&quot;,&quot;trigger&quot;:&quot;arriving_to_viewport&quot;,&quot;viewport&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;play_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]},&quot;start_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;end_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:100,&quot;sizes&quot;:[]},&quot;renderer&quot;:&quot;svg&quot;}\" data-widget_type=\"lottie.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"e-lottie__container\"><div class=\"e-lottie__animation\"><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-09657da elementor-section-content-middle elementor-reverse-tablet elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"09657da\" 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-50 elementor-inner-column elementor-element elementor-element-cdf5e96\" data-id=\"cdf5e96\" 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-ffef4c7 elementor-align-center elementor-widget elementor-widget-lottie\" data-id=\"ffef4c7\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;source_json&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/hotelrunner.com\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Ruby_EmbeddedPayments_Ui2.json&quot;,&quot;id&quot;:130472,&quot;size&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;source&quot;:&quot;library&quot;},&quot;loop&quot;:&quot;yes&quot;,&quot;lazyload&quot;:&quot;yes&quot;,&quot;play_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1.25,&quot;sizes&quot;:[]},&quot;source&quot;:&quot;media_file&quot;,&quot;caption_source&quot;:&quot;none&quot;,&quot;link_to&quot;:&quot;none&quot;,&quot;trigger&quot;:&quot;arriving_to_viewport&quot;,&quot;viewport&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;start_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;end_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:100,&quot;sizes&quot;:[]},&quot;renderer&quot;:&quot;svg&quot;}\" data-widget_type=\"lottie.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"e-lottie__container\"><div class=\"e-lottie__animation\"><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-147a744\" data-id=\"147a744\" 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-b651ccb elementor-widget__width-initial elementor-widget-mobile__width-inherit elementor-widget elementor-widget-heading\" data-id=\"b651ccb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Embedded payments and settlements<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ff47eab elementor-widget elementor-widget-text-editor\" data-id=\"ff47eab\" 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\tAutomate financial flows across borders in real-time.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-15b010b elementor-reverse-mobile elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"15b010b\" 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-50 elementor-inner-column elementor-element elementor-element-4491435\" data-id=\"4491435\" 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-4375942 elementor-widget elementor-widget-heading\" data-id=\"4375942\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Multi-currency, FX-optimized transactions<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e20be3c elementor-widget elementor-widget-text-editor\" data-id=\"e20be3c\" 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\tReduce costs, speed up transfers, and improve margins.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-3db1593\" data-id=\"3db1593\" 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-54f03f1 elementor-align-center elementor-widget elementor-widget-lottie\" data-id=\"54f03f1\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;source_json&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/hotelrunner.com\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/MutliCurrencyen.json&quot;,&quot;id&quot;:131312,&quot;size&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;source&quot;:&quot;library&quot;},&quot;loop&quot;:&quot;yes&quot;,&quot;lazyload&quot;:&quot;yes&quot;,&quot;source&quot;:&quot;media_file&quot;,&quot;caption_source&quot;:&quot;none&quot;,&quot;link_to&quot;:&quot;none&quot;,&quot;trigger&quot;:&quot;arriving_to_viewport&quot;,&quot;viewport&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;play_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]},&quot;start_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;end_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:100,&quot;sizes&quot;:[]},&quot;renderer&quot;:&quot;svg&quot;}\" data-widget_type=\"lottie.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"e-lottie__container\"><div class=\"e-lottie__animation\"><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-b57fa7b elementor-section-content-middle elementor-reverse-tablet elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b57fa7b\" 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-50 elementor-inner-column elementor-element elementor-element-ba4f52b\" data-id=\"ba4f52b\" 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-bbc5aa6 elementor-widget elementor-widget-video\" data-id=\"bbc5aa6\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;video_type&quot;:&quot;hosted&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;play_on_mobile&quot;:&quot;yes&quot;,&quot;mute&quot;:&quot;yes&quot;,&quot;loop&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"e-hosted-video elementor-wrapper elementor-open-inline\">\n\t\t\t\t\t<video class=\"elementor-video\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/10\/Automated_En.webm\" autoplay=\"\" loop=\"\" muted=\"muted\" playsinline=\"\" controlsList=\"nodownload\"><\/video>\n\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<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-22208a5\" data-id=\"22208a5\" 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-578f5b8 elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"578f5b8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Automated reconciliation<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e654c32 elementor-widget elementor-widget-text-editor\" data-id=\"e654c32\" 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\tEvery transaction is tracked, matched, and settled instantly.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-65f34fa elementor-reverse-mobile elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"65f34fa\" 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-50 elementor-inner-column elementor-element elementor-element-89fcd21\" data-id=\"89fcd21\" 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-6e5bc70 elementor-widget elementor-widget-heading\" data-id=\"6e5bc70\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Built-in compliance<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1aa81bf elementor-widget elementor-widget-text-editor\" data-id=\"1aa81bf\" 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\tKYC (Know Your Customer), fraud prevention, and policy management integrated by default.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-69a9143\" data-id=\"69a9143\" 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-9a760dd elementor-align-center elementor-widget elementor-widget-lottie\" data-id=\"9a760dd\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;source_json&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/hotelrunner.com\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/Ruby_Built-inCompliance_Ui4_En-1.json&quot;,&quot;id&quot;:130335,&quot;size&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;source&quot;:&quot;library&quot;},&quot;loop&quot;:&quot;yes&quot;,&quot;lazyload&quot;:&quot;yes&quot;,&quot;source&quot;:&quot;media_file&quot;,&quot;caption_source&quot;:&quot;none&quot;,&quot;link_to&quot;:&quot;none&quot;,&quot;trigger&quot;:&quot;arriving_to_viewport&quot;,&quot;viewport&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;play_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]},&quot;start_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;end_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:100,&quot;sizes&quot;:[]},&quot;renderer&quot;:&quot;svg&quot;}\" data-widget_type=\"lottie.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"e-lottie__container\"><div class=\"e-lottie__animation\"><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-897da0f elementor-section-content-middle elementor-reverse-tablet elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"897da0f\" 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-50 elementor-inner-column elementor-element elementor-element-f6d48bc\" data-id=\"f6d48bc\" 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-0728b1f elementor-widget elementor-widget-video\" data-id=\"0728b1f\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;video_type&quot;:&quot;hosted&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;play_on_mobile&quot;:&quot;yes&quot;,&quot;mute&quot;:&quot;yes&quot;,&quot;loop&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"e-hosted-video elementor-wrapper elementor-open-inline\">\n\t\t\t\t\t<video class=\"elementor-video\" src=\"https:\/\/hotelrunner.com\/wp-content\/uploads\/2025\/10\/Data_En.webm\" autoplay=\"\" loop=\"\" muted=\"muted\" playsinline=\"\" controlsList=\"nodownload\"><\/video>\n\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<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-4e71584\" data-id=\"4e71584\" 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-d61de80 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"d61de80\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Data-driven risk management<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a599ae7 elementor-widget elementor-widget-text-editor\" data-id=\"a599ae7\" 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\tFinancial and non-financial signals help anticipate risks before they happen.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\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-0d06563 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0d06563\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&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-09af6d5 ruby-bg\" data-id=\"09af6d5\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\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-60ac121 elementor-reverse-mobile elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"60ac121\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-88d70ef\" data-id=\"88d70ef\" 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-b577c02 elementor-widget elementor-widget-heading\" data-id=\"b577c02\" 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<h4 class=\"elementor-heading-title elementor-size-default\">Ready to power your payments with Ruby?<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6d4be15 elementor-widget elementor-widget-text-editor\" data-id=\"6d4be15\" 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\tMeet with our fintech experts at HotelRunner and discover how Ruby can transform your travel business.\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-1c88bdd elementor-widget elementor-widget-hr_button\" data-id=\"1c88bdd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <div class=\"btn-wrapper\" >\n            <a href=\"#form\" target=\"_self\" \n               class=\"btn custom has-no-icon\"\n               >\n                                <span class=\"btn-text\">Join Ruby now<\/span>\n                            <\/a>\n        <\/div>\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/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-28b8b09 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"28b8b09\" 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-top-column elementor-element elementor-element-9d3a118\" data-id=\"9d3a118\" 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-132fc57 elementor-reverse-mobile elementor-section-content-middle elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"132fc57\" 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-b8bfde4\" data-id=\"b8bfde4\" 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-ffce15b elementor-widget elementor-widget-heading\" data-id=\"ffce15b\" 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\">Frequently asked questions<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-737290c elementor-widget elementor-widget-hr_faq\" data-id=\"737290c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"hr_faq.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t            <!-- FAQ Schema -->\n            <script type=\"application\/ld+json\">{\n    \"@context\": \"https:\/\/schema.org\",\n    \"@type\": \"FAQPage\",\n    \"mainEntity\": [\n        {\n            \"@type\": \"Question\",\n            \"name\": \"What is Ruby?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Ruby is HotelRunner\u2019s embedded financial infrastructure built exclusively for the travel industry. It enables instant settlements, transparent payments, automated reconciliation, and compliance for local and cross-border travel transactions.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How is Ruby different from other payment solutions?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Unlike generic financial tools adapted for travel, Ruby is native to travel. It unites distribution and payments into one infrastructure, removing delays, FX inefficiencies, and manual reconciliation.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Who can use Ruby?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Ruby is designed for travel agencies, tour operators, suppliers, and accommodation providers who are part of the HotelRunner B2B Network.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"What problems does Ruby solve?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Ruby eliminates settlement delays, reduces FX costs, simplifies compliance, and prevents fraud and chargebacks. It transforms traditionally manual and risky financial processes into automated, secure, and transparent flows.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Does Ruby handle compliance and KYC?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Yes. Ruby embeds compliance into every transaction, including KYC, AML, and fraud prevention. These processes run automatically in the background, ensuring you remain compliant with global regulations.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Can Ruby process multi-currency payments?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Absolutely. Ruby is built for global travel. It supports multi-currency transactions and FX management, giving partners flexibility and control over international settlements.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How does Ruby improve cash flow for travel businesses?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Ruby significantly improves cash flow by providing instant settlements and automating reconciliation. By eliminating the traditional delays associated with wire transfers and virtual card issuing, it ensures that funds are processed and matched instantly across borders, giving travel agencies, tour operators, and suppliers faster access to their money and improving overall financial agility.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"What does it mean that Ruby is \\\"embedded\\\" financial infrastructure?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"It means Ruby's financial layer is built directly into the core B2B travel experience, not simply added on top of it. This unity of distribution and payments allows for real-time, automated financial flows across borders. By being embedded, Ruby eliminates manual steps, integrates compliance by default, and processes settlements seamlessly as part of the booking and distribution process.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Does it integrate with our booking systems?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Ruby is the embedded financial infrastructure that powers the HotelRunner B2B Network. It is designed to unite distribution and payments into one single, seamless infrastructure. For all partners within the HotelRunner ecosystem (travel agencies, suppliers, etc.), Ruby functions as a native, end-to-end financial layer integrated directly into the travel content and booking flows.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Is it secure?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Absolutely. Security and compliance are built into Ruby by default. It embeds compliance into every transaction, including KYC (Know Your Customer), AML (Anti-Money Laundering), and fraud prevention. Furthermore, Ruby uses a data-driven risk management approach, combining financial and non-financial data to anticipate and prevent risks like fraud and chargebacks before they happen.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How does this help with reconciliation?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Ruby automates reconciliation completely. Every transaction, regardless of the payment type, is tracked, matched, and settled instantly within the unified infrastructure. This eliminates the need for manual tracking and matching of payments with bookings, transforming traditionally manual and risky financial processes into automated, secure, and transparent flows.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Can I issue cards for individual bookings or suppliers?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Yes, you can generate single-use or multi-use virtual cards tailored to each booking, supplier, or service.\"\n            }\n        }\n    ]\n}<\/script>\n                    <div data-nosnippet class=\"hr-faq-widget\">\n                            <div class=\"hr-faq-item active\">\n                                        <div class=\"hr-faq-item-content\">\n                            <div id=\"hr-faq-header-0\" class=\"hr-faq-header\" role=\"button\" tabindex=\"0\" aria-expanded=\"true\" aria-controls=\"hr-faq-content-0\">\n                                <h3 class=\"hr-faq-title\">What is Ruby?<\/h3>\n                                \n                        <\/div>\n                        <div id=\"hr-faq-content-0\" class=\"hr-faq-content\" style=\"display: block;\">\n                            <p>Ruby is HotelRunner\u2019s embedded financial infrastructure built exclusively for the travel industry. It enables instant settlements, transparent payments, automated reconciliation, and compliance for local and cross-border travel transactions.<\/p>                        <\/div>\n                    <\/div>\n                    <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\" aria-expanded=\"true\" aria-controls=\"hr-faq-content-0\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"45\" height=\"40\" viewBox=\"0 0 45 40\" fill=\"none\">\n                                    <path d=\"M15.3135 16.666L22.7349 23.3327L30.1563 16.666\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                <\/svg>\n                            <\/div>\n                <\/div>\n                            <div class=\"hr-faq-item \">\n                                        <div class=\"hr-faq-item-content\">\n                            <div id=\"hr-faq-header-1\" class=\"hr-faq-header\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-1\">\n                                <h3 class=\"hr-faq-title\">How is Ruby different from other payment solutions?<\/h3>\n                                \n                        <\/div>\n                        <div id=\"hr-faq-content-1\" class=\"hr-faq-content\" >\n                            <p>Unlike generic financial tools adapted for travel, Ruby is <strong>native to travel<\/strong>. It unites distribution and payments into one infrastructure, removing delays, FX inefficiencies, and manual reconciliation.<\/p>                        <\/div>\n                    <\/div>\n                    <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-1\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"45\" height=\"40\" viewBox=\"0 0 45 40\" fill=\"none\">\n                                    <path d=\"M15.3135 16.666L22.7349 23.3327L30.1563 16.666\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                <\/svg>\n                            <\/div>\n                <\/div>\n                            <div class=\"hr-faq-item \">\n                                        <div class=\"hr-faq-item-content\">\n                            <div id=\"hr-faq-header-2\" class=\"hr-faq-header\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-2\">\n                                <h3 class=\"hr-faq-title\">Who can use Ruby?<\/h3>\n                                \n                        <\/div>\n                        <div id=\"hr-faq-content-2\" class=\"hr-faq-content\" >\n                            <p>Ruby is designed for travel agencies, tour operators, suppliers, and accommodation providers who are part of the <strong>HotelRunner B2B Network.<\/strong><\/p>                        <\/div>\n                    <\/div>\n                    <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-2\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"45\" height=\"40\" viewBox=\"0 0 45 40\" fill=\"none\">\n                                    <path d=\"M15.3135 16.666L22.7349 23.3327L30.1563 16.666\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                <\/svg>\n                            <\/div>\n                <\/div>\n                            <div class=\"hr-faq-item \">\n                                        <div class=\"hr-faq-item-content\">\n                            <div id=\"hr-faq-header-3\" class=\"hr-faq-header\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-3\">\n                                <h3 class=\"hr-faq-title\">What problems does Ruby solve?<\/h3>\n                                \n                        <\/div>\n                        <div id=\"hr-faq-content-3\" class=\"hr-faq-content\" >\n                            <p>Ruby eliminates settlement delays, reduces FX costs, simplifies compliance, and prevents fraud and chargebacks. It transforms traditionally manual and risky financial processes into <strong>automated, secure, and transparent flows.<\/strong><\/p>                        <\/div>\n                    <\/div>\n                    <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-3\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"45\" height=\"40\" viewBox=\"0 0 45 40\" fill=\"none\">\n                                    <path d=\"M15.3135 16.666L22.7349 23.3327L30.1563 16.666\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                <\/svg>\n                            <\/div>\n                <\/div>\n                            <div class=\"hr-faq-item \">\n                                        <div class=\"hr-faq-item-content\">\n                            <div id=\"hr-faq-header-4\" class=\"hr-faq-header\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-4\">\n                                <h3 class=\"hr-faq-title\">Does Ruby handle compliance and KYC?<\/h3>\n                                \n                        <\/div>\n                        <div id=\"hr-faq-content-4\" class=\"hr-faq-content\" >\n                            <p>Yes. Ruby embeds compliance into every transaction, including KYC, AML, and fraud prevention. These processes run automatically in the background, ensuring you remain compliant with global regulations.<\/p>                        <\/div>\n                    <\/div>\n                    <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-4\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"45\" height=\"40\" viewBox=\"0 0 45 40\" fill=\"none\">\n                                    <path d=\"M15.3135 16.666L22.7349 23.3327L30.1563 16.666\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                <\/svg>\n                            <\/div>\n                <\/div>\n                            <div class=\"hr-faq-item \">\n                                        <div class=\"hr-faq-item-content\">\n                            <div id=\"hr-faq-header-5\" class=\"hr-faq-header\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-5\">\n                                <h3 class=\"hr-faq-title\">Can Ruby process multi-currency payments?<\/h3>\n                                \n                        <\/div>\n                        <div id=\"hr-faq-content-5\" class=\"hr-faq-content\" >\n                            <p>Absolutely. Ruby is built for global travel. It supports <strong>multi-currency transactions and FX management<\/strong>, giving partners flexibility and control over international settlements.<\/p>                        <\/div>\n                    <\/div>\n                    <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-5\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"45\" height=\"40\" viewBox=\"0 0 45 40\" fill=\"none\">\n                                    <path d=\"M15.3135 16.666L22.7349 23.3327L30.1563 16.666\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                <\/svg>\n                            <\/div>\n                <\/div>\n                            <div class=\"hr-faq-item \">\n                                        <div class=\"hr-faq-item-content\">\n                            <div id=\"hr-faq-header-6\" class=\"hr-faq-header\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-6\">\n                                <h3 class=\"hr-faq-title\">How does Ruby improve cash flow for travel businesses?<\/h3>\n                                \n                        <\/div>\n                        <div id=\"hr-faq-content-6\" class=\"hr-faq-content\" >\n                            <p>Ruby significantly improves cash flow by providing instant settlements and <strong>automating<\/strong> <strong>reconciliation<\/strong>. By eliminating the traditional delays associated with wire transfers and virtual card issuing, it ensures that funds are processed and matched instantly across borders, giving travel agencies, tour operators, and suppliers faster access to their money and improving overall financial agility.<\/p>                        <\/div>\n                    <\/div>\n                    <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-6\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"45\" height=\"40\" viewBox=\"0 0 45 40\" fill=\"none\">\n                                    <path d=\"M15.3135 16.666L22.7349 23.3327L30.1563 16.666\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                <\/svg>\n                            <\/div>\n                <\/div>\n                            <div class=\"hr-faq-item \">\n                                        <div class=\"hr-faq-item-content\">\n                            <div id=\"hr-faq-header-7\" class=\"hr-faq-header\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-7\">\n                                <h3 class=\"hr-faq-title\">What does it mean that Ruby is \"embedded\" financial infrastructure?<\/h3>\n                                \n                        <\/div>\n                        <div id=\"hr-faq-content-7\" class=\"hr-faq-content\" >\n                            <p>It means Ruby's financial layer is built directly <strong>into the core B2B travel experience<\/strong>, not simply added on top of it. This unity of distribution and payments allows for <strong>real-time, automated financial flows<\/strong> across borders. By being embedded, Ruby eliminates manual steps, integrates compliance by default, and processes settlements seamlessly as part of the booking and distribution process.<\/p>                        <\/div>\n                    <\/div>\n                    <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-7\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"45\" height=\"40\" viewBox=\"0 0 45 40\" fill=\"none\">\n                                    <path d=\"M15.3135 16.666L22.7349 23.3327L30.1563 16.666\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                <\/svg>\n                            <\/div>\n                <\/div>\n                            <div class=\"hr-faq-item \">\n                                        <div class=\"hr-faq-item-content\">\n                            <div id=\"hr-faq-header-8\" class=\"hr-faq-header\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-8\">\n                                <h3 class=\"hr-faq-title\">Does it integrate with our booking systems?<\/h3>\n                                \n                        <\/div>\n                        <div id=\"hr-faq-content-8\" class=\"hr-faq-content\" >\n                            <p>Ruby is the <strong>embedded financial infrastructure<\/strong> that powers the HotelRunner B2B Network. It is designed to unite distribution and payments into one single, seamless infrastructure. For all partners within the HotelRunner ecosystem (travel agencies, suppliers, etc.), Ruby functions as a native, end-to-end financial layer integrated directly into the travel content and booking flows.<\/p>                        <\/div>\n                    <\/div>\n                    <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-8\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"45\" height=\"40\" viewBox=\"0 0 45 40\" fill=\"none\">\n                                    <path d=\"M15.3135 16.666L22.7349 23.3327L30.1563 16.666\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                <\/svg>\n                            <\/div>\n                <\/div>\n                            <div class=\"hr-faq-item \">\n                                        <div class=\"hr-faq-item-content\">\n                            <div id=\"hr-faq-header-9\" class=\"hr-faq-header\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-9\">\n                                <h3 class=\"hr-faq-title\">Is it secure?<\/h3>\n                                \n                        <\/div>\n                        <div id=\"hr-faq-content-9\" class=\"hr-faq-content\" >\n                            <p>Absolutely. Security and compliance are built into Ruby by default. It embeds compliance into every transaction, including KYC <strong>(Know Your Customer), AML (Anti-Money Laundering), and fraud prevention.<\/strong> Furthermore, Ruby uses a <strong>data-driven risk management<\/strong> approach, combining financial and non-financial data to anticipate and prevent risks like fraud and chargebacks before they happen.<\/p>                        <\/div>\n                    <\/div>\n                    <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-9\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"45\" height=\"40\" viewBox=\"0 0 45 40\" fill=\"none\">\n                                    <path d=\"M15.3135 16.666L22.7349 23.3327L30.1563 16.666\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                <\/svg>\n                            <\/div>\n                <\/div>\n                            <div class=\"hr-faq-item \">\n                                        <div class=\"hr-faq-item-content\">\n                            <div id=\"hr-faq-header-10\" class=\"hr-faq-header\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-10\">\n                                <h3 class=\"hr-faq-title\">How does this help with reconciliation?<\/h3>\n                                \n                        <\/div>\n                        <div id=\"hr-faq-content-10\" class=\"hr-faq-content\" >\n                            <p>Ruby automates reconciliation completely. Every transaction, regardless of the payment type, is <strong>tracked, matched, and settled instantly<\/strong> within the unified infrastructure. This eliminates the need for manual tracking and matching of payments with bookings, transforming traditionally manual and risky financial processes into automated, secure, and transparent flows.<\/p>                        <\/div>\n                    <\/div>\n                    <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-10\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"45\" height=\"40\" viewBox=\"0 0 45 40\" fill=\"none\">\n                                    <path d=\"M15.3135 16.666L22.7349 23.3327L30.1563 16.666\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                <\/svg>\n                            <\/div>\n                <\/div>\n                            <div class=\"hr-faq-item \">\n                                        <div class=\"hr-faq-item-content\">\n                            <div id=\"hr-faq-header-11\" class=\"hr-faq-header\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-11\">\n                                <h3 class=\"hr-faq-title\"> Can I issue cards for individual bookings or suppliers?<\/h3>\n                                \n                        <\/div>\n                        <div id=\"hr-faq-content-11\" class=\"hr-faq-content\" >\n                            <p>Yes, you can generate single-use or multi-use virtual cards tailored to each booking, supplier, or service.<\/p>                        <\/div>\n                    <\/div>\n                    <div class=\"hr-faq-arrow\" role=\"button\" tabindex=\"0\" aria-expanded=\"false\" aria-controls=\"hr-faq-content-11\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"45\" height=\"40\" viewBox=\"0 0 45 40\" fill=\"none\">\n                                    <path d=\"M15.3135 16.666L22.7349 23.3327L30.1563 16.666\" stroke=\"#323232\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                                <\/svg>\n                            <\/div>\n                <\/div>\n                    <\/div>\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-25bbbee elementor-section-stretched elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"25bbbee\" 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;}\">\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-20de308\" data-id=\"20de308\" 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-248fb84 elementor-widget elementor-widget-heading\" data-id=\"248fb84\" 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\">Ready to power your payments? \u2028\n<br>Contact our team<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-929ec92 elementor-widget__width-initial hr-form-submit-auto elementor-widget elementor-widget-hr_form\" data-id=\"929ec92\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"form\" 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-69d932285138d\" class=\"hr-form hr-select2-booting hr-form-direction-horizontal\" method=\"POST\" name=\"Ruby - 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\/ruby-thankyou\">\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-69d932285138d {\n                        position: relative;\n                    } *\/\n\n                    #hr-form-69d932285138d .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-69d932285138d .hr-form-overlay-content {\n                        text-align: center;\n                    }\n\n                    #hr-form-69d932285138d .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-69d932285138d.submitting {\n                        pointer-events: none;\n                    }\n\n                    #hr-form-69d932285138d.submitting .hr-form-overlay {\n                        display: flex;\n                    }\n                    @media (max-width: 1024px) {\n                        #hr-form-69d932285138d .hr-form-button-wrapper { text-align: left !important; }\n                        #hr-form-69d932285138d .hr-form-step-buttons-wrapper { justify-content: flex-start !important; }\n                    }\n                    @media (max-width: 767px) {\n                        #hr-form-69d932285138d .hr-form-button-wrapper { text-align: left !important; }\n                        #hr-form-69d932285138d .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-69d932285138d');\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-69d932285138d', {\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-69d932285138d\"><\/div>\n                \n                                        <input type=\"hidden\" name=\"hr_ip_address\" value=\"10.0.25.189\"\n                            data-field-type=\"ip_address\">\n                                                <input type=\"hidden\" name=\"hr_browser_info\" value=\"\"\n                            data-field-type=\"browser_info\">\n                                                <input type=\"hidden\" name=\"hr_primary_language\" value=\"\"\n                            data-field-type=\"primary_language\">\n                                                <input type=\"hidden\" name=\"hr_all_languages\" value=\"\"\n                            data-field-type=\"all_languages\">\n                                                <input type=\"hidden\" name=\"hr_window_size\" value=\"\"\n                            data-field-type=\"window_size\">\n                                                <input type=\"hidden\" name=\"hr_timezone_name\" value=\"\"\n                            data-field-type=\"timezone_name\">\n                                                <input type=\"hidden\" name=\"hr_current_url\" value=\"\"\n                            data-field-type=\"current_url\">\n                                                <input type=\"hidden\" name=\"hr_referrer_url\" value=\"\"\n                            data-field-type=\"referrer_url\">\n                                                <input type=\"hidden\" name=\"hr_page_load_time\" value=\"\"\n                            data-field-type=\"page_load_time\">\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\/ruby-thankyou\">\n                                                                <input type=\"hidden\" name=\"form_title\" value=\"Ruby - 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-field-column hr-form-field-width-50 hr-form-firstname hr-form-field-column-elementor-repeater-item-14707c7\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-form-firstname\" class=\"hr-form-label\">First name<\/label>                                        \n                                                                                        <input id=\"hr-form-firstname\" class=\"hr-form-input\" autocomplete=\"name\" type=\"text\" name=\"hr-form-firstname\" ><div id=\"hr-form-firstname-error-container\" class=\"just-validate-error-label hr-field-error-container\" aria-live=\"polite\"><\/div>                                                                                    <\/div>\n                                <\/div>\n                                                                <div class=\"hr-form-field-column hr-form-field-width-50 hr-form-lastname hr-form-field-column-elementor-repeater-item-f1b0b8a\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-form-lastname\" class=\"hr-form-label\">Last name<\/label>                                        \n                                                                                        <input id=\"hr-form-lastname\" class=\"hr-form-input\" autocomplete=\"name\" type=\"text\" name=\"hr-form-lastname\" ><div id=\"hr-form-lastname-error-container\" class=\"just-validate-error-label hr-field-error-container\" aria-live=\"polite\"><\/div>                                                                                    <\/div>\n                                <\/div>\n                                                                <div class=\"hr-form-field-column hr-form-field-width-50 hr-form-email hr-form-field-column-elementor-repeater-item-b145675\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-form-email\" class=\"hr-form-label\">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-field-width-50 hr-form-phone hr-form-field-column-elementor-repeater-item-f04ee98\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-form-phone\" class=\"hr-form-label\">Mobile phone<\/label>                                        \n                                                                                                                                        <div class=\"hr-phone-input-wrapper\">\n                                                    <input id=\"hr-form-phone\" class=\"hr-form-input hr-phone-input\" autocomplete=\"tel\" type=\"tel\" name=\"hr-form-phone\"                                                                                                                 data-enable-geoip-lookup=\"yes\"\n                                                        data-initial-country=\"\">\n                                                <\/div>\n                                                                                                                                    <\/div>\n                                <\/div>\n                                                                <div class=\"hr-form-field-column hr-form-field-width-50 hr-form-company-name hr-form-field-column-elementor-repeater-item-218998f\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-form-company-name\" class=\"hr-form-label\">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-width-50 hr-form-company-type hr-form-field-column-elementor-repeater-item-8143090\"\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 an option\" data-allow-clear=\"no\" data-enable-search=\"yes\" required=\"required\" >\n                                                                                                                    <option value=\"\" class=\"hr-select-placeholder\" disabled selected>\n                                                                Please select                                                            <\/option>\n                                                                                                                <option value=\"Travel Agency\">Online travel agencies<\/option><option value=\"Tour operators\">Tour operators<\/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-field-width-100 hr-form-field-column-elementor-repeater-item-629e151\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-field-69d9322851606\" class=\"hr-form-label\">Country<\/label>                                        \n                                                                                                                                        <div class=\"hr-country-field-wrapper\">\n                                                    <select id=\"hr-field-69d9322851606\" class=\"hr-form-input hr-country-select\" placeholder=\"Please select your country\" autocomplete=\"country-name\" name=\"hr-country\"  data-placeholder=\"Please select your country\"\n                                                        name=\"hr-country\">\n                                                        <option value=\"\" class=\"hr-select-placeholder\" disabled selected>\n                                                            Please select your country                                                        <\/option>\n                                                        <option value=\"AF\">Afghanistan<\/option><option value=\"AX\">\u00c5land Islands<\/option><option value=\"AL\">Albania<\/option><option value=\"DZ\">Algeria<\/option><option value=\"AD\">Andorra<\/option><option value=\"AO\">Angola<\/option><option value=\"AI\">Anguilla<\/option><option value=\"AQ\">Antarctica<\/option><option value=\"AG\">Antigua and Barbuda<\/option><option value=\"AR\">Argentina<\/option><option value=\"AM\">Armenia<\/option><option value=\"AW\">Aruba<\/option><option value=\"AU\">Australia<\/option><option value=\"AT\">Austria<\/option><option value=\"AZ\">Azerbaijan<\/option><option value=\"BS\">Bahamas<\/option><option value=\"BH\">Bahrain<\/option><option value=\"BD\">Bangladesh<\/option><option value=\"BB\">Barbados<\/option><option value=\"BY\">Belarus<\/option><option value=\"BE\">Belgium<\/option><option value=\"BZ\">Belize<\/option><option value=\"BJ\">Benin<\/option><option value=\"BM\">Bermuda<\/option><option value=\"BT\">Bhutan<\/option><option value=\"BO\">Bolivia<\/option><option value=\"BQ\">Bonaire, Sint Eustatius and Saba<\/option><option value=\"BA\">Bosnia and Herzegovina<\/option><option value=\"BW\">Botswana<\/option><option value=\"BV\">Bouvet Island<\/option><option value=\"BR\">Brazil<\/option><option value=\"IO\">British Indian Ocean Territory<\/option><option value=\"BN\">Brune\u0130<\/option><option value=\"BG\">Bulgaria<\/option><option value=\"BF\">Burkina Faso<\/option><option value=\"BI\">Burundi<\/option><option value=\"KH\">Cambodia<\/option><option value=\"CM\">Cameroon<\/option><option value=\"CA\">Canada<\/option><option value=\"CV\">Cape Verde<\/option><option value=\"KY\">Cayman Islands<\/option><option value=\"CF\">Central African Republic<\/option><option value=\"TD\">Chad<\/option><option value=\"CL\">Chile<\/option><option value=\"CN\">China<\/option><option value=\"CX\">Christmas Island<\/option><option value=\"CC\">Cocos (Keeling) Islands<\/option><option value=\"CO\">Colombia<\/option><option value=\"KM\">Comoros<\/option><option value=\"CG\">Congo<\/option><option value=\"CK\">Cook Islands<\/option><option value=\"CR\">Costa Rica<\/option><option value=\"CI\">C\u00f4te d&#039;Ivoire<\/option><option value=\"HR\">Croatia<\/option><option value=\"CU\">Cuba<\/option><option value=\"CW\">Cura\u00e7ao<\/option><option value=\"CY\">Cyprus<\/option><option value=\"CZ\">Czechia<\/option><option value=\"CD\">Democratic Republic of the Congo<\/option><option value=\"DK\">Denmark<\/option><option value=\"DJ\">Djibouti<\/option><option value=\"DM\">Dominica<\/option><option value=\"DO\">Dominican Republic<\/option><option value=\"EC\">Ecuador<\/option><option value=\"EG\">Egypt<\/option><option value=\"SV\">El Salvador<\/option><option value=\"GQ\">Equatorial Guinea<\/option><option value=\"ER\">Eritrea<\/option><option value=\"EE\">Estonia<\/option><option value=\"SZ\">Eswatini<\/option><option value=\"ET\">Ethiopia<\/option><option value=\"FK\">Falkland Islands<\/option><option value=\"FO\">Faroe Islands<\/option><option value=\"FJ\">Fiji<\/option><option value=\"FI\">Finland<\/option><option value=\"FR\">France<\/option><option value=\"GF\">French Guiana<\/option><option value=\"PF\">French Polynesia<\/option><option value=\"TF\">French Southern Territories<\/option><option value=\"GA\">Gabon<\/option><option value=\"GM\">Gambia<\/option><option value=\"GE\">Georgia<\/option><option value=\"DE\">Germany<\/option><option value=\"GH\">Ghana<\/option><option value=\"GI\">Gibraltar<\/option><option value=\"GR\">Greece<\/option><option value=\"GL\">Greenland<\/option><option value=\"GD\">Grenada<\/option><option value=\"GP\">Guadeloupe<\/option><option value=\"GU\">Guam<\/option><option value=\"GT\">Guatemala<\/option><option value=\"GG\">Guernsey<\/option><option value=\"GN\">Guinea<\/option><option value=\"GW\">Guinea-Bissau<\/option><option value=\"GY\">Guyana<\/option><option value=\"HT\">Haiti<\/option><option value=\"HM\">Heard Island and McDonald Islands<\/option><option value=\"VA\">Holy See<\/option><option value=\"HN\">Honduras<\/option><option value=\"HK\">Hong Kong<\/option><option value=\"HU\">Hungary<\/option><option value=\"IS\">Iceland<\/option><option value=\"IN\">India<\/option><option value=\"ID\">Indonesia<\/option><option value=\"IR\">Iran<\/option><option value=\"IQ\">Iraq<\/option><option value=\"IE\">Ireland<\/option><option value=\"IM\">Isle of Man<\/option><option value=\"IL\">Israel<\/option><option value=\"IT\">Italy<\/option><option value=\"JM\">Jamaica<\/option><option value=\"JP\">Japan<\/option><option value=\"JE\">Jersey<\/option><option value=\"JO\">Jordan<\/option><option value=\"KZ\">Kazakhstan<\/option><option value=\"KE\">Kenya<\/option><option value=\"KI\">Kiribati<\/option><option value=\"KW\">Kuwait<\/option><option value=\"KG\">Kyrgyzstan<\/option><option value=\"LA\">Laos<\/option><option value=\"LV\">Latvia<\/option><option value=\"LB\">Lebanon<\/option><option value=\"LS\">Lesotho<\/option><option value=\"LR\">Liberia<\/option><option value=\"LY\">Libya<\/option><option value=\"LI\">Liechtenstein<\/option><option value=\"LT\">Lithuania<\/option><option value=\"LU\">Luxembourg<\/option><option value=\"MO\">Macao<\/option><option value=\"MG\">Madagascar<\/option><option value=\"MW\">Malawi<\/option><option value=\"MY\">Malaysia<\/option><option value=\"MV\">Maldives<\/option><option value=\"ML\">Mali<\/option><option value=\"MT\">Malta<\/option><option value=\"MH\">Marshall Islands<\/option><option value=\"MQ\">Martinique<\/option><option value=\"MR\">Mauritania<\/option><option value=\"MU\">Mauritius<\/option><option value=\"YT\">Mayotte<\/option><option value=\"MX\">Mexico<\/option><option value=\"FM\">Micronesia<\/option><option value=\"MD\">Moldova<\/option><option value=\"MC\">Monaco<\/option><option value=\"MN\">Mongolia<\/option><option value=\"ME\">Montenegro<\/option><option value=\"MS\">Montserrat<\/option><option value=\"MA\">Morocco<\/option><option value=\"MZ\">Mozambique<\/option><option value=\"MM\">Myanmar<\/option><option value=\"NA\">Namibia<\/option><option value=\"NR\">Nauru<\/option><option value=\"NP\">Nepal<\/option><option value=\"NL\">Netherlands<\/option><option value=\"NC\">New Caledonia<\/option><option value=\"NZ\">New Zealand<\/option><option value=\"NI\">Nicaragua<\/option><option value=\"NE\">Niger<\/option><option value=\"NG\">Nigeria<\/option><option value=\"NU\">Niue<\/option><option value=\"NF\">Norfolk Island<\/option><option value=\"KP\">North Korea<\/option><option value=\"MK\">North Macedonia<\/option><option value=\"NCY\">Northern Cyprus<\/option><option value=\"MP\">Northern Mariana Islands<\/option><option value=\"NO\">Norway<\/option><option value=\"OM\">Oman<\/option><option value=\"PK\">Pakistan<\/option><option value=\"PW\">Palau<\/option><option value=\"PS\">Palestine<\/option><option value=\"PA\">Panama<\/option><option value=\"PG\">Papua New Guinea<\/option><option value=\"PY\">Paraguay<\/option><option value=\"PE\">Peru<\/option><option value=\"PH\">Philippines<\/option><option value=\"PN\">Pitcairn<\/option><option value=\"PL\">Poland<\/option><option value=\"PT\">Portugal<\/option><option value=\"PR\">Puerto Rico<\/option><option value=\"QA\">Qatar<\/option><option value=\"RE\">R\u00e9union<\/option><option value=\"RO\">Romania<\/option><option value=\"RU\">Russia<\/option><option value=\"RW\">Rwanda<\/option><option value=\"BL\">Saint Barth\u00e9lemy<\/option><option value=\"SH\">Saint Helena, Ascension and Tristan da Cunha<\/option><option value=\"KN\">Saint Kitts And Nevis<\/option><option value=\"LC\">Saint Lucia<\/option><option value=\"MF\">Saint Martin (French part)<\/option><option value=\"PM\">Saint Pierre and Miquelon<\/option><option value=\"VC\">Saint Vincent and the Grenadines<\/option><option value=\"AS\">Samoa<\/option><option value=\"WS\">Samoa<\/option><option value=\"SM\">San Marino<\/option><option value=\"ST\">Sao Tome and Principe<\/option><option value=\"SA\">Saudi Arabia<\/option><option value=\"SN\">Senegal<\/option><option value=\"RS\">Serbia<\/option><option value=\"SC\">Seychelles<\/option><option value=\"SL\">Sierra Leone<\/option><option value=\"SG\">Singapore<\/option><option value=\"SX\">Sint Maarten (Dutch part)<\/option><option value=\"SK\">Slovakia<\/option><option value=\"SI\">Slovenia<\/option><option value=\"SB\">Solomon Islands<\/option><option value=\"SO\">Somalia<\/option><option value=\"ZA\">South Africa<\/option><option value=\"GS\">South Georgia and the South Sandwich Islands<\/option><option value=\"KR\">South Korea<\/option><option value=\"SS\">South Sudan<\/option><option value=\"ES\">Spain<\/option><option value=\"LK\">Sri Lanka<\/option><option value=\"SD\">Sudan<\/option><option value=\"SR\">Suriname<\/option><option value=\"SJ\">Svalbard and Jan Mayen<\/option><option value=\"SE\">Sweden<\/option><option value=\"CH\">Switzerland<\/option><option value=\"SY\">Syria<\/option><option value=\"TW\">Taiwan<\/option><option value=\"TJ\">Tajikistan<\/option><option value=\"TZ\">Tanzania<\/option><option value=\"TH\">Thailand<\/option><option value=\"TL\">Timor-Leste<\/option><option value=\"TG\">Togo<\/option><option value=\"TK\">Tokelau<\/option><option value=\"TO\">Tonga<\/option><option value=\"TT\">Trinidad And Tobago<\/option><option value=\"TN\">Tunisia<\/option><option value=\"TR\">T\u00fcrkiye<\/option><option value=\"TM\">Turkmenistan<\/option><option value=\"TC\">Turks and Caicos Islands<\/option><option value=\"TV\">Tuvalu<\/option><option value=\"UG\">Uganda<\/option><option value=\"UA\">Ukraine<\/option><option value=\"AE\">United Arab Emirates<\/option><option value=\"GB\">United Kingdom<\/option><option value=\"UM\">United States Minor Outlying Islands<\/option><option value=\"US\">United States of America<\/option><option value=\"UY\">Uruguay<\/option><option value=\"UZ\">Uzbekistan<\/option><option value=\"VU\">Vanuatu<\/option><option value=\"VE\">Venezuela<\/option><option value=\"VN\">Viet nam<\/option><option value=\"VG\">Virgin Islands (British)<\/option><option value=\"VI\">Virgin Islands (U.S.)<\/option><option value=\"WF\">Wallis and Futuna<\/option><option value=\"EH\">Western Sahara<\/option><option value=\"YE\">Yemen<\/option><option value=\"ZM\">Zambia<\/option><option value=\"ZW\">Zimbabwe<\/option>                                                    <\/select>\n                                                <\/div>\n                                                <div id=\"hr-field-69d9322851606-error-container\" class=\"just-validate-error-label hr-field-error-container\" aria-live=\"polite\"><\/div>                                                                                    <\/div>\n                                <\/div>\n                                                                <div class=\"hr-form-field-column hr-form-field-width-100 using-payment-product hr-form-field-column-elementor-repeater-item-23aa49a\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"using-payment-product\" class=\"hr-form-label\">Are you currently using any payment settlement product?*<\/label>                                        \n                                                                                                                                        <div class=\"hr-form-field-input\">\n                                                    <select id=\"using-payment-product\" class=\"hr-form-input hr-select2-field\" autocomplete=\"off\" name=\"using-payment-product\" data-placeholder=\"Please select\" data-allow-clear=\"no\" data-enable-search=\"yes\" >\n                                                                                                                    <option value=\"\" class=\"hr-select-placeholder\" disabled selected>\n                                                                Please select                                                            <\/option>\n                                                                                                                <option value=\"yes\">Yes<\/option><option value=\"no\">No<\/option>                                                    <\/select>\n                                                                                                    <\/div>\n                                                <div id=\"using-payment-product-error-container\" class=\"just-validate-error-label hr-field-error-container\" aria-live=\"polite\"><\/div>                                                                                    <\/div>\n                                <\/div>\n                                                                <div class=\"hr-form-field-column hr-form-field-width-100 hidden hr-form-field-column-elementor-repeater-item-fd56d9a\"\n                                    >\n                                    <div class=\"hr-form-field\">\n                                                                                    <label for=\"hr-field-69d9322851607\" class=\"hr-form-label\"><\/label>                                        \n                                                                                        <input id=\"hr-field-69d9322851607\" class=\"hr-form-input\" value=\"HotelRunner is attending EMITT, one of the world\u2019s biggest tourism exhibitions - EN\" placeholder=\"\" autocomplete=\"name\" type=\"hidden\" name=\"form_name\" >\n                                                                                    <\/div>\n                                <\/div>\n                                                                <div class=\"hr-form-field-column hr-form-field-width-100 privacy_statement hr-form-field-column-elementor-repeater-item-f11eae3\"\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=\"\/en\/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 hr-form-field-width-100 commerical-text hr-form-field-column-elementor-repeater-item-71c190f\"\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>\n\n                                    <div class=\"hr-form-button-wrapper\" style=\"text-align: center;\">\n                        <button type=\"submit\" class=\"button hr-form-submit\">\n                            Get in touch                        <\/button>\n                    <\/div>\n                            <\/form>\n\n        <\/div>\n\n        \n        <!-- Hidden Fields Handler -->\n        <script>\n            (function ($) {\n                \"use strict\";\n\n                function initializePhoneInput(input) {\n                    \/\/ Check if intlTelInput is loaded and input is not already initialized\n                    if (typeof window.intlTelInput === \"function\" && !$(input).data(\"iti\")) {\n                        const initialCountry = (input.dataset.initialCountry || \"\").trim();\n\n                        \/\/ WPML fallback country mapping (based on current WPML language).\n                        \/\/ This is used when the geoIpLookup API times out or errors.\n                        const wpmlLang = \"en\";\n                        let fallbackCountry = \"us\";\n                        if (wpmlLang.startsWith(\"tr\")) {\n                            fallbackCountry = \"tr\";\n                        } else if (wpmlLang.startsWith(\"es\")) {\n                            fallbackCountry = \"es\";\n                        } else if (wpmlLang.startsWith(\"fr\")) {\n                            fallbackCountry = \"fr\";\n                        } else {\n                            fallbackCountry = \"us\";\n                        }\n\n                        const enableGeoIpLookup = (input.dataset.enableGeoipLookup || \"yes\") === \"yes\";\n                        const shouldUseGeoIpLookup = enableGeoIpLookup && !initialCountry;\n                        const preferredAttr = input.getAttribute('data-preferred-countries');\n                        const preferredCountries = (preferredAttr === null)\n                            ? []\n                            : preferredAttr.split(',').map(s => s.trim()).filter(Boolean);\n\n                        const geoIpLookup = (success, failure) => {\n                            const timeoutMs = 2500; \/\/ Fail fast so it doesn't block UX.\n                            let settled = false;\n\n                            \/\/ Make sure we always resolve, even on network stalls.\n                            const timeoutId = setTimeout(() => {\n                                if (settled) return;\n                                settled = true;\n                                if (controller) controller.abort();\n                                success(fallbackCountry);\n                            }, timeoutMs);\n\n                            const controller = typeof AbortController !== \"undefined\" ? new AbortController() : null;\n\n                            fetch(\"https:\/\/ipapi.co\/json\", {\n                                signal: controller ? controller.signal : undefined\n                            })\n                                .then(res => res.json())\n                                .then(data => {\n                                    if (settled) return;\n                                    settled = true;\n                                    const code = (data && data.country_code) ? String(data.country_code).toLowerCase() : fallbackCountry;\n                                    success(code);\n                                })\n                                .catch(() => {\n                                    if (settled) return;\n                                    settled = true;\n                                    success(fallbackCountry);\n                                })\n                                .finally(() => {\n                                    clearTimeout(timeoutId);\n                                });\n                        };\n\n                        const itiOptions = {\n                            initialCountry: shouldUseGeoIpLookup ? \"auto\" : (initialCountry ? initialCountry : fallbackCountry),\n                            separateDialCode: true,\n                            nationalMode: false,\n                            formatOnDisplay: true,\n                            autoPlaceholder: \"polite\",\n                            preferredCountries: preferredCountries,\n                            allowDropdown: true,\n                            dropdownContainer: document.body,\n                            utilsScript: \"https:\/\/hotelrunner.com\/wp-content\/themes\/hotelrunner\/assets\/js\/\/vendor\/utils.js\" \/\/ Changed to non-minified version\n                        };\n\n                        if (shouldUseGeoIpLookup) {\n                            itiOptions.geoIpLookup = geoIpLookup;\n                        }\n\n                        const iti = window.intlTelInput(input, itiOptions);\n\n                        \/\/ Store the instance on the input element\n                        $(input).data(\"iti\", iti);\n\n                        \/\/ 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-69d932285138d');\n\n                \/\/ Also initialize on document ready to ensure DOM is fully loaded\n                $(document).ready(function () {\n                    initializeFormPhoneInputs('hr-form-69d932285138d');\n                });\n            })(jQuery);\n\n\n            document.addEventListener('DOMContentLoaded', function () {\n                const form = document.getElementById('hr-form-69d932285138d');\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-69d932285138d');\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-69d932285138d');\n                const conditions = {};\n\n                \n                function evaluateCondition(condition, value) {\n                    \/\/ Handle array values (for multiple select)\n                    if (Array.isArray(value)) {\n                        switch (condition.operator) {\n                            case 'equals':\n                                return value.includes(condition.value);\n                            case 'not_equals':\n                                return !value.includes(condition.value);\n                            case 'contains':\n                                return value.some(v => v.includes(condition.value));\n                            case 'not_contains':\n                                return !value.some(v => v.includes(condition.value));\n                            case 'greater_than':\n                                return value.some(v => parseFloat(v) > parseFloat(condition.value));\n                            case 'less_than':\n                                return value.some(v => parseFloat(v) < parseFloat(condition.value));\n                            default:\n                                return false;\n                        }\n                    }\n\n                    \/\/ Handle single values\n                    switch (condition.operator) {\n                        case 'equals':\n                            return value === condition.value;\n                        case 'not_equals':\n                            return value !== condition.value;\n                        case 'contains':\n                            return value.includes(condition.value);\n                        case 'not_contains':\n                            return !value.includes(condition.value);\n                        case 'greater_than':\n                            return parseFloat(value) > parseFloat(condition.value);\n                        case 'less_than':\n                            return parseFloat(value) < parseFloat(condition.value);\n                        default:\n                            return false;\n                    }\n                }\n\n                function updateConditionalFields() {\n                    for (const fieldId in conditions) {\n                        const condition = conditions[fieldId];\n                        \/\/ Ensure we only search for fields within the current form\n                        const targetInput = form.querySelector(`[name=\"${condition.targetField}\"]`);\n\n                        let fieldToToggle = form.querySelector(`#${fieldId}`) || form.querySelector(`[name=\"${fieldId}\"]`);\n                        fieldToToggle = fieldToToggle ? fieldToToggle.closest('.hr-form-field-column') : null;\n\n                        if (targetInput && fieldToToggle) {\n                            const targetValue = $(targetInput).hasClass('hr-select2-field') ? $(targetInput).val() : targetInput.value;\n                            const shouldShow = evaluateCondition(condition, targetValue);\n\n                            \/\/ Select all form elements within the current field to toggle\n                            const formElements = fieldToToggle.querySelectorAll('input, select, textarea');\n\n                            if (shouldShow) {\n                                fieldToToggle.classList.remove('hr-conditional-field');\n                                fieldToToggle.style.display = '';\n\n                                \/\/ 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-69d932285138d');\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-69d932285138d', {\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 enter your email address.\"});\n                                                                                fieldRules_2.push({\"rule\":\"email\",\"errorMessage\":\"Please enter a valid email address.\"});\n                        \n                        \/\/ Add field to validator \u2013 errorsContainer routes errors outside inner so label stays centered\n                                                validator.addField('#hr-form-email', fieldRules_2, { errorsContainer: '#hr-form-email-error-container' });\n                                                                                                                                                const fieldRules_3 = [];\n                                                                                fieldRules_3.push({\"rule\":\"required\",\"errorMessage\":\"Please enter your mobile phone number.\"});\n                        \n                        \/\/ Add field to validator \u2013 errorsContainer routes errors outside inner so label stays centered\n                                                validator.addField('#hr-form-phone', fieldRules_3, { errorsContainer: '#hr-form-phone-error-container' });\n                                                                                                                                                const fieldRules_4 = [];\n                                                                                fieldRules_4.push({\"rule\":\"required\",\"errorMessage\":\"Please enter your property name.\"});\n                        \n                        \/\/ Add field to validator \u2013 errorsContainer routes errors outside inner so label stays centered\n                                                validator.addField('#hr-form-company-name', fieldRules_4, { errorsContainer: '#hr-form-company-name-error-container' });\n                                                                                                                                                const fieldRules_5 = [];\n                                                                                fieldRules_5.push({\"rule\":\"required\",\"errorMessage\":\"Please select your country.\"});\n                        \n                        \/\/ Add field to validator \u2013 errorsContainer routes errors outside inner so label stays centered\n                                                validator.addField('#hr-form-company-type', fieldRules_5, { errorsContainer: '#hr-form-company-type-error-container' });\n                                                                                                                                                                                                                                                                                                                                                                                                                                                    const fieldRules_9 = [{\"rule\":\"required\",\"errorMessage\":\"This field is required\"}];\n                        if (fieldRules_9.length > 0) {\n                            validator.addField('#privacy_statement', fieldRules_9);\n                        }\n                                                                                                                                                const fieldRules_10 = [];\n                        if (fieldRules_10.length > 0) {\n                            validator.addField('#commerical-text', fieldRules_10);\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                    <script src=\"https:\/\/hotelrunner.com\/wp-content\/themes\/hotelrunner\/assets\/js\/\/vendor\/mailcheck.min.js\"><\/script>\n            <script>\n                document.addEventListener('DOMContentLoaded', function () {\n                    const form = document.getElementById('hr-form-69d932285138d');\n                    const emailFields = form.querySelectorAll('input[type=\"email\"]');\n                    const suggestionText = 'Did you mean {suggestion}?';\n\n                    emailFields.forEach(function (emailField) {\n                        \/\/ Create suggestion element\n                        const suggestionElement = document.createElement('div');\n                        suggestionElement.className = 'hr-mailcheck-suggestion';\n                        emailField.parentNode.appendChild(suggestionElement);\n\n                        \/\/ Function to check email\n                        function checkEmail() {\n                            if (!emailField.value) return;\n\n                            Mailcheck.run({\n                                email: emailField.value,\n                                suggested: function (suggestion) {\n                                    const text = suggestionText.replace('{suggestion}', suggestion.full);\n                                    suggestionElement.innerHTML = text;\n                                    suggestionElement.dataset.suggestion = suggestion.full;\n                                    suggestionElement.style.display = 'block';\n                                },\n                                empty: function () {\n                                    suggestionElement.style.display = 'none';\n                                }\n                            });\n                        }\n\n                        \/\/ Check on blur\n                        emailField.addEventListener('blur', checkEmail);\n\n                        \/\/ Check while typing after a suggestion has been shown\n                        emailField.addEventListener('input', function () {\n                            if (suggestionElement.style.display === 'block') {\n                                checkEmail();\n                            }\n                        });\n\n                        \/\/ Handle suggestion click\n                        suggestionElement.addEventListener('click', function () {\n                            const suggestion = this.dataset.suggestion;\n                            if (suggestion) {\n                                emailField.value = suggestion;\n                                suggestionElement.style.display = 'none';\n\n                                \/\/ Trigger change event\n                                const event = new Event('change', { bubbles: true });\n                                emailField.dispatchEvent(event);\n\n                                \/\/ Focus the next field if available\n                                const inputs = Array.from(form.querySelectorAll('input:not([type=\"hidden\"]), select, textarea'));\n                                const currentIndex = inputs.indexOf(emailField);\n                                if (currentIndex < inputs.length - 1) {\n                                    inputs[currentIndex + 1].focus();\n                                }\n                            }\n                        });\n                    });\n                });\n            <\/script>\n        \n        \n        <script>\n            document.addEventListener('DOMContentLoaded', function () {\n                const form = document.getElementById('hr-form-69d932285138d');\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-69d932285138d');\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-69d932285138d .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-69d932285138d .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-69d932285138d'] = function () {\n                \/\/ Enable submit button when Turnstile is ready\n                const form = document.getElementById('hr-form-69d932285138d');\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-69d932285138d');\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-email\",\"hr-form-phone\",\"hr-form-company-name\",\"hr-form-company-type\",\"hr-country\",\"using-payment-product\",\"form_name\",\"privacy_statement\",\"commerical-text\",\"hr_ip_address\",\"hr_browser_info\",\"hr_primary_language\",\"hr_all_languages\",\"hr_window_size\",\"hr_timezone_name\",\"hr_current_url\",\"hr_referrer_url\",\"hr_page_load_time\"];\n                    if (fieldsToCapture && fieldsToCapture.length) {\n                        fieldsToCapture.forEach(function(fieldName) {\n                            if (formData.has(fieldName)) {\n                                thankYouData[fieldName] = formData.get(fieldName);\n                            }\n                        });\n                    }\n                    sessionStorage.setItem('formSessionData', JSON.stringify(thankYouData));\n                });\n            });\n\n            \/\/ 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-69d932285138d');\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<\/div>\n\t\t","protected":false},"featured_media":0,"template":"","product_type":[1699],"class_list":["post-131089","product","type-product","status-publish","hentry","product_type-ruby"],"acf":[],"_links":{"self":[{"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/product\/131089","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/types\/product"}],"version-history":[{"count":2,"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/product\/131089\/revisions"}],"predecessor-version":[{"id":139935,"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/product\/131089\/revisions\/139935"}],"wp:attachment":[{"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/media?parent=131089"}],"wp:term":[{"taxonomy":"product_type","embeddable":true,"href":"https:\/\/hotelrunner.com\/en\/wp-json\/wp\/v2\/product_type?post=131089"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}