{"id":313,"date":"2025-08-12T14:28:50","date_gmt":"2025-08-12T14:28:50","guid":{"rendered":"https:\/\/haipestudio.com\/?page_id=313"},"modified":"2025-10-06T10:56:42","modified_gmt":"2025-10-06T10:56:42","slug":"fully-managed-automation","status":"publish","type":"page","link":"https:\/\/haipestudio.com\/en\/services\/fully-managed-automation\/","title":{"rendered":"Fully Managed Automation"},"content":{"rendered":"  <section class=\"main-cta main-cta--h1 \" aria-labelledby=\"main-cta-heading\" >\n          <header class=\"main-cta__header\">\n                          <h1            id=\"main-cta-heading\"\n            class=\"main-cta__title main-cta__title--h1\"\n            >\n            Fully Managed Automation          <\/h1>\n              <\/header>\n    \n    <div class=\"main-cta__content\">\n              <div class=\"main-cta__description \"><p class=\"p1\">Your automation, fully managed. We design, implement, monitor, and maintain everything \u2014 while your team focuses on growth.<\/p>\n<\/div>\n      \n              <footer class=\"main-cta__footer main-cta__footer--button\">\n                      <a href=\"#plans\"\n              class=\"main-cta__button btn-primary\"\n              data-ph-event=\"main_cta_click\"\n              data-ph-title=\"Let Us Handle Your Automation\"\n                            >\n              Let Us Handle Your Automation              <span class=\"btn-shine\"><\/span>\n            <\/a>\n                  <\/footer>\n          <\/div>\n  <\/section>\n  <script>\n    document.addEventListener('DOMContentLoaded', function() {\n      document.querySelectorAll('a[data-ph-event]').forEach(function(el) {\n        el.addEventListener('click', function() {\n          if (typeof posthog !== 'undefined') {\n            posthog.capture(el.dataset.phEvent, {\n              title: el.dataset.phTitle,\n              url: el.href,\n              section: 'main-cta'\n            });\n            console.log('PostHog event captured:', el.dataset.phEvent, el.dataset.phTitle);\n          }\n        });\n      });\n    });\n  <\/script>\n\n\n\n\n<span id=\"plans\"><\/span>\n\n\n  <section id=\"\" class=\"detailed-plans-block\" aria-label=\"Planos detalhados e pre\u00e7os\">\n    <div class=\"detailed-plans-block__container default-container\">\n            <div class=\"detailed-plans-block__grid detailed-plans-block__grid--three-items\">\n                              <article class=\"detailed-plans-block__item \"\n              aria-labelledby=\"plan-title-0\"\n              >\n\n              \n              <!-- Header Section -->\n              <header class=\"detailed-plans-block__header\">\n                                  <div class=\"detailed-plans-block__icon\">\n                    <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M12.8333 25.3516C13.188 25.5564 13.5904 25.6642 14 25.6642C14.4096 25.6642 14.812 25.5564 15.1667 25.3516L23.3333 20.685C23.6877 20.4804 23.982 20.1862 24.1868 19.8319C24.3916 19.4777 24.4996 19.0758 24.5 18.6666V9.3333C24.4996 8.92412 24.3916 8.52225 24.1868 8.16799C23.982 7.81374 23.6877 7.51956 23.3333 7.31497L15.1667 2.6483C14.812 2.44351 14.4096 2.33569 14 2.33569C13.5904 2.33569 13.188 2.44351 12.8333 2.6483L4.66667 7.31497C4.31231 7.51956 4.01798 7.81374 3.81321 8.16799C3.60843 8.52225 3.50042 8.92412 3.5 9.3333V18.6666C3.50042 19.0758 3.60843 19.4777 3.81321 19.8319C4.01798 20.1862 4.31231 20.4804 4.66667 20.685L12.8333 25.3516Z\" stroke=\"#010A10\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n<path d=\"M14 25.6667V14\" stroke=\"#010A10\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n<path d=\"M3.8501 8.16663L12.8369 13.6896C13.1908 13.8931 13.5919 14.0002 14.0001 14.0002C14.4083 14.0002 14.8094 13.8931 15.1633 13.6896L24.1501 8.16663\" stroke=\"#010A10\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n<path d=\"M8.75 4.98169L19.25 10.99\" stroke=\"#010A10\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n<\/svg>\n                  <\/div>\n                \n                                  <h3 id=\"plan-title-0\" class=\"detailed-plans-block__title\">\n                    Starter                  <\/h3>\n                \n                                  <div class=\"detailed-plans-block__price\">\n                    <span class=\"detailed-plans-block__price-text\">\u20ac350\/month<\/span>\n                  <\/div>\n                \n                                  <div class=\"detailed-plans-block__best-for\">\n                    <span class=\"detailed-plans-block__best-for-text\">Best for<\/span>\n                  <\/div>\n                \n                                  <div class=\"detailed-plans-block__description\">\n                    <p class=\"detailed-plans-block__description-text\">Small teams beginning automation, cutting repetitive tasks, reclaiming hours weekly, and building a solid foundation for scalable growth.<\/p>\n                  <\/div>\n                              <\/header>\n\n              <!-- Btn Section -->\n                              <div class=\"detailed-plans-block__footer\">\n                  <div class=\"detailed-plans-block__cta\">\n                    <a href=\"?subject=starter#free-audit\"\n                      class=\"detailed-plans-block__cta-link btn-primary \"\n                                            >\n                      Start with Starter                      <span class=\"btn-shine\"><\/span>\n                    <\/a>\n                  <\/div>\n                <\/div>\n              \n                              <!-- Content Sections -->\n                <div class=\"detailed-plans-block__content\">\n                  <h4>What&#8217;s Included:<\/h4>\n<ul>\n<li>2 new automations\/month<\/li>\n<li>Maintenance of existing workflows<\/li>\n<li>Email support<\/li>\n<\/ul>\n                <\/div>\n\n              \n            <\/article>\n                                        <article class=\"detailed-plans-block__item detailed-plans-block__item--popular\"\n              aria-labelledby=\"plan-title-1\"\n              aria-describedby=\"popular-badge-1\" >\n\n                              <div class=\"detailed-plans-block__badge\" id=\"popular-badge-1\">\n                  <span class=\"detailed-plans-block__badge-text\">Most Popular<\/span>\n                <\/div>\n              \n              <!-- Header Section -->\n              <header class=\"detailed-plans-block__header\">\n                                  <div class=\"detailed-plans-block__icon\">\n                    <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M17.9552 5.12169C18.1018 5.26849 18.285 5.37352 18.4857 5.42595C18.6865 5.47839 18.8976 5.47632 19.0973 5.41998C19.297 5.36363 19.4781 5.25504 19.6219 5.1054C19.7656 4.95576 19.8669 4.77049 19.9152 4.56869C20.0363 4.06457 20.2896 3.60184 20.649 3.22816C21.0084 2.85448 21.4609 2.58335 21.9599 2.4427C22.4589 2.30204 22.9864 2.29695 23.488 2.42794C23.9897 2.55892 24.4473 2.82126 24.8139 3.18793C25.1804 3.5546 25.4426 4.01235 25.5734 4.51403C25.7043 5.01572 25.699 5.54321 25.5582 6.04218C25.4173 6.54115 25.1461 6.99357 24.7723 7.35284C24.3985 7.71211 23.9357 7.96525 23.4315 8.08619C23.2297 8.13448 23.0444 8.23573 22.8948 8.37949C22.7451 8.52324 22.6366 8.70431 22.5802 8.90402C22.5239 9.10372 22.5218 9.31484 22.5742 9.51561C22.6267 9.71638 22.7317 9.89954 22.8785 10.0462L24.842 12.0085C25.1035 12.27 25.311 12.5805 25.4525 12.9222C25.5941 13.2639 25.6669 13.6302 25.6669 14C25.6669 14.3699 25.5941 14.7361 25.4525 15.0778C25.311 15.4195 25.1035 15.73 24.842 15.9915L22.8785 17.955C22.7318 18.1018 22.5487 18.2069 22.3479 18.2593C22.1472 18.3117 21.936 18.3097 21.7363 18.2533C21.5366 18.197 21.3556 18.0884 21.2118 17.9387C21.068 17.7891 20.9668 17.6038 20.9185 17.402C20.7974 16.8979 20.5441 16.4352 20.1847 16.0615C19.8253 15.6878 19.3728 15.4167 18.8738 15.276C18.3748 15.1354 17.8473 15.1303 17.3456 15.2613C16.844 15.3923 16.3863 15.6546 16.0198 16.0213C15.6532 16.3879 15.3911 16.8457 15.2602 17.3474C15.1294 17.8491 15.1347 18.3765 15.2755 18.8755C15.4163 19.3745 15.6876 19.8269 16.0614 20.1862C16.4352 20.5454 16.898 20.7986 17.4022 20.9195C17.604 20.9678 17.7892 21.0691 17.9389 21.2128C18.0885 21.3566 18.1971 21.5376 18.2535 21.7373C18.3098 21.9371 18.3119 22.1482 18.2594 22.3489C18.207 22.5497 18.102 22.7329 17.9552 22.8795L15.9917 24.8419C15.7301 25.1034 15.4197 25.3109 15.078 25.4524C14.7363 25.5939 14.37 25.6668 14.0002 25.6668C13.6303 25.6668 13.2641 25.5939 12.9224 25.4524C12.5807 25.3109 12.2702 25.1034 12.0087 24.8419L10.0452 22.8784C9.89851 22.7316 9.71536 22.6265 9.51459 22.5741C9.31382 22.5217 9.1027 22.5237 8.90299 22.5801C8.70329 22.6364 8.52222 22.745 8.37846 22.8946C8.23471 23.0443 8.13346 23.2295 8.08517 23.4314C7.96406 23.9355 7.71077 24.3982 7.35137 24.7719C6.99198 25.1456 6.53947 25.4167 6.04045 25.5573C5.54143 25.698 5.01394 25.7031 4.5123 25.5721C4.01066 25.4411 3.553 25.1788 3.18645 24.8121C2.8199 24.4454 2.55772 23.9877 2.4269 23.486C2.29607 22.9843 2.30135 22.4568 2.44216 21.9579C2.58298 21.4589 2.85426 21.0065 3.22806 20.6472C3.60186 20.2879 4.06467 20.0348 4.56883 19.9139C4.77064 19.8656 4.95591 19.7643 5.10555 19.6206C5.25519 19.4768 5.36378 19.2957 5.42012 19.096C5.47647 18.8963 5.47853 18.6852 5.4261 18.4844C5.37367 18.2837 5.26863 18.1005 5.12183 17.9539L3.15833 15.9915C2.8968 15.73 2.68933 15.4195 2.54779 15.0778C2.40625 14.7361 2.3334 14.3699 2.3334 14C2.3334 13.6302 2.40625 13.2639 2.54779 12.9222C2.68933 12.5805 2.8968 12.27 3.15833 12.0085L5.12183 10.045C5.26849 9.89822 5.45164 9.79319 5.65241 9.74076C5.85318 9.68832 6.0643 9.69039 6.26401 9.74673C6.46371 9.80308 6.64478 9.91167 6.78853 10.0613C6.93229 10.2109 7.03354 10.3962 7.08183 10.598C7.20294 11.1021 7.45623 11.5649 7.81563 11.9385C8.17502 12.3122 8.62753 12.5834 9.12655 12.724C9.62557 12.8647 10.1531 12.8698 10.6547 12.7388C11.1563 12.6078 11.614 12.3454 11.9805 11.9788C12.3471 11.6121 12.6093 11.1544 12.7401 10.6527C12.8709 10.151 12.8657 9.6235 12.7248 9.12453C12.584 8.62556 12.3127 8.17314 11.9389 7.81387C11.5651 7.4546 11.1023 7.20146 10.5982 7.08052C10.3964 7.03222 10.2111 6.93098 10.0615 6.78722C9.91181 6.64347 9.80322 6.4624 9.74688 6.26269C9.69053 6.06299 9.68847 5.85187 9.7409 5.6511C9.79333 5.45033 9.89836 5.26717 10.0452 5.12052L12.0087 3.15819C12.2702 2.89665 12.5807 2.68919 12.9224 2.54765C13.2641 2.4061 13.6303 2.33325 14.0002 2.33325C14.37 2.33325 14.7363 2.4061 15.078 2.54765C15.4197 2.68919 15.7301 2.89665 15.9917 3.15819L17.9552 5.12169Z\" stroke=\"#010A10\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n<\/svg>\n                  <\/div>\n                \n                                  <h3 id=\"plan-title-1\" class=\"detailed-plans-block__title\">\n                    Growth                  <\/h3>\n                \n                                  <div class=\"detailed-plans-block__price\">\n                    <span class=\"detailed-plans-block__price-text\">\u20ac750\/month<\/span>\n                  <\/div>\n                \n                                  <div class=\"detailed-plans-block__best-for\">\n                    <span class=\"detailed-plans-block__best-for-text\">Best for<\/span>\n                  <\/div>\n                \n                                  <div class=\"detailed-plans-block__description\">\n                    <p class=\"detailed-plans-block__description-text\">Fast-growing companies scaling operations without extra hires, streamlining workflows across teams, and gaining faster ROI with intelligent automation.<\/p>\n                  <\/div>\n                              <\/header>\n\n              <!-- Btn Section -->\n                              <div class=\"detailed-plans-block__footer\">\n                  <div class=\"detailed-plans-block__cta\">\n                    <a href=\"?subject=growth#free-audit\"\n                      class=\"detailed-plans-block__cta-link btn-primary detailed-plans-block__cta-link--popular\"\n                                            >\n                      Get Started Now                      <span class=\"btn-shine\"><\/span>\n                    <\/a>\n                  <\/div>\n                <\/div>\n              \n                              <!-- Content Sections -->\n                <div class=\"detailed-plans-block__content\">\n                  <h4 class=\"detailed-plans-block__section-title\">What&#8217;s Included:<\/h4>\n<ul class=\"detailed-plans-block__list\">\n<li>5 automations\/month<\/li>\n<li>Proactive monitoring<\/li>\n<li>Priority support<\/li>\n<li>Simple AI integrations<\/li>\n<\/ul>\n                <\/div>\n\n              \n            <\/article>\n                                        <article class=\"detailed-plans-block__item \"\n              aria-labelledby=\"plan-title-2\"\n              >\n\n              \n              <!-- Header Section -->\n              <header class=\"detailed-plans-block__header\">\n                                  <div class=\"detailed-plans-block__icon\">\n                    <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M19.8335 2.33325L24.5002 6.99992L19.8335 11.6666\" stroke=\"#010A10\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n<path d=\"M3.5 12.8333V11.6667C3.5 10.429 3.99167 9.242 4.86683 8.36683C5.742 7.49167 6.92899 7 8.16667 7H24.5\" stroke=\"#010A10\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n<path d=\"M8.16667 25.6666L3.5 20.9999L8.16667 16.3333\" stroke=\"#010A10\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n<path d=\"M24.5 15.1667V16.3334C24.5 17.5711 24.0083 18.7581 23.1332 19.6332C22.258 20.5084 21.071 21.0001 19.8333 21.0001H3.5\" stroke=\"#010A10\" stroke-width=\"2.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n<\/svg>\n                  <\/div>\n                \n                                  <h3 id=\"plan-title-2\" class=\"detailed-plans-block__title\">\n                    Enterprise                  <\/h3>\n                \n                                  <div class=\"detailed-plans-block__price\">\n                    <span class=\"detailed-plans-block__price-text\">Custom<\/span>\n                  <\/div>\n                \n                                  <div class=\"detailed-plans-block__best-for\">\n                    <span class=\"detailed-plans-block__best-for-text\">Best for<\/span>\n                  <\/div>\n                \n                                  <div class=\"detailed-plans-block__description\">\n                    <p class=\"detailed-plans-block__description-text\">Organizations with mission-critical operations needing tailored automation, enterprise-grade reliability, advanced integrations, and dedicated expert support.<\/p>\n                  <\/div>\n                              <\/header>\n\n              <!-- Btn Section -->\n                              <div class=\"detailed-plans-block__footer\">\n                  <div class=\"detailed-plans-block__cta\">\n                    <a href=\"?subject=custom#free-audit\"\n                      class=\"detailed-plans-block__cta-link btn-primary \"\n                                            >\n                      Talk to Us About Enterprise                      <span class=\"btn-shine\"><\/span>\n                    <\/a>\n                  <\/div>\n                <\/div>\n              \n                              <!-- Content Sections -->\n                <div class=\"detailed-plans-block__content\">\n                  <h4>What&#8217;s Included:<\/h4>\n<ul>\n<li><span>Unlimited automation development<\/span><\/li>\n<li><span>Dedicated automation specialist<\/span><\/li>\n<li><span>Custom SLA<\/span><\/li>\n<li><span>Advanced AI &amp; integration work<\/span><\/li>\n<\/ul>\n                <\/div>\n\n              \n            <\/article>\n                        <\/div>\n    <\/div>\n  <\/section>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    const detailedPlansBlock = document.querySelector('.detailed-plans-block');\n    \n    if (detailedPlansBlock) {\n        const observerOptions = {\n            threshold: 0.2,\n            rootMargin: '0px 0px -50px 0px'\n        };\n        \n        const observerCallback = function(entries, observer) {\n            entries.forEach(entry => {\n                if (entry.isIntersecting) {\n                    detailedPlansBlock.classList.add('detailed-plans-entrance');\n                    \n                    observer.unobserve(entry.target);\n                }\n            });\n        };\n        \n        const observer = new IntersectionObserver(observerCallback, observerOptions);\n        \n        observer.observe(detailedPlansBlock);\n    }\n});\n<\/script> \n\n\n<section class=\"full-width-cta\" aria-labelledby=\"full-width-cta-heading\" >\n\n  <div class=\"full-width-cta__container\">\n    <!-- Background SVG for mobile and desktop -->\n    <div class=\"full-width-cta__background\" aria-hidden=\"true\">\n      <svg width=\"312\" height=\"471\" viewBox=\"0 0 312 471\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M37.939 386.955L53.2172 470.488L224.082 371.839L157.968 317.657L37.939 386.955Z\" fill=\"#FFFFFF\"\/>\n<path d=\"M0.0971518 182.814L25.7494 320.186L106.945 273.308L0.0971518 182.814Z\" fill=\"#FFFFFF\"\/>\n<path d=\"M179.476 93.214L311.261 321.472L10.7543 67.2631L126.059 0.692169L154.48 49.9189L231.889 5.22669L256.885 48.5217L179.476 93.214Z\" \nfill=\"#FFFFFF\"\/>\n<\/svg>\n    <\/div>\n\n    <div class=\"full-width-cta__bg-svg full-width-cta__bg-svg--left\" aria-hidden=\"true\">\n      <svg width=\"312\" height=\"471\" viewBox=\"0 0 312 471\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M37.939 386.955L53.2172 470.488L224.082 371.839L157.968 317.657L37.939 386.955Z\" fill=\"#FFFFFF\"\/>\n<path d=\"M0.0971518 182.814L25.7494 320.186L106.945 273.308L0.0971518 182.814Z\" fill=\"#FFFFFF\"\/>\n<path d=\"M179.476 93.214L311.261 321.472L10.7543 67.2631L126.059 0.692169L154.48 49.9189L231.889 5.22669L256.885 48.5217L179.476 93.214Z\" \nfill=\"#FFFFFF\"\/>\n<\/svg>\n    <\/div>\n\n    <div class=\"full-width-cta__bg-svg full-width-cta__bg-svg--right\" aria-hidden=\"true\">\n      <svg width=\"312\" height=\"471\" viewBox=\"0 0 312 471\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M37.939 386.955L53.2172 470.488L224.082 371.839L157.968 317.657L37.939 386.955Z\" fill=\"#FFFFFF\"\/>\n<path d=\"M0.0971518 182.814L25.7494 320.186L106.945 273.308L0.0971518 182.814Z\" fill=\"#FFFFFF\"\/>\n<path d=\"M179.476 93.214L311.261 321.472L10.7543 67.2631L126.059 0.692169L154.48 49.9189L231.889 5.22669L256.885 48.5217L179.476 93.214Z\" \nfill=\"#FFFFFF\"\/>\n<\/svg>\n    <\/div>\n\n    <div class=\"full-width-cta__content-wrapper\">\n              <header class=\"full-width-cta__header\">\n          <h2 id=\"full-width-cta-heading\" class=\"full-width-cta__title\">\n            Discover Your <br> Automation Potential          <\/h2>\n        <\/header>\n      \n              <div class=\"full-width-cta__content\">\n          <div class=\"full-width-cta__description\">\n            <p>Real results from real businesses. See how our automation solutions have transformed  operations and delivered measurable impact across different industries.<\/p>\n          <\/div>\n        <\/div>\n      \n              <footer class=\"full-width-cta__footer\">\n          <div class=\"full-width-cta__links\">\n                          <a href=\"https:\/\/haipestudio.com\/free-audit\/\"\n                class=\"full-width-cta__button btn-secondary\"\n                                >\n                Free Audit                <span class=\"btn-shine\"><\/span>\n              <\/a>\n            \n                      <\/div>\n        <\/footer>\n          <\/div>\n\n  <\/div>\n\n<\/section>\n\n  <section class=\"main-cta main-cta--h2 \" aria-labelledby=\"main-cta-heading\" >\n          <header class=\"main-cta__header\">\n                          <h2            id=\"main-cta-heading\"\n            class=\"main-cta__title main-cta__title--h2\"\n            >\n            Our Proven Process          <\/h2>\n              <\/header>\n    \n    <div class=\"main-cta__content\">\n              <div class=\"main-cta__description main-cta__description--h2\"><p>From discovery to deployment, we follow a battle-tested methodology that ensures your automation project succeeds.<\/p>\n<\/div>\n      \n          <\/div>\n  <\/section>\n  <script>\n    document.addEventListener('DOMContentLoaded', function() {\n      document.querySelectorAll('a[data-ph-event]').forEach(function(el) {\n        el.addEventListener('click', function() {\n          if (typeof posthog !== 'undefined') {\n            posthog.capture(el.dataset.phEvent, {\n              title: el.dataset.phTitle,\n              url: el.href,\n              section: 'main-cta'\n            });\n            console.log('PostHog event captured:', el.dataset.phEvent, el.dataset.phTitle);\n          }\n        });\n      });\n    });\n  <\/script>\n\n\n\n  <section id=\"\" class=\"journey-block\" aria-label=\"Jornada e etapas do processo\">\n    <div class=\"journey-block__container\">\n      <div class=\"journey-block__grid \">\n                              <article class=\"journey-block__step\" aria-labelledby=\"journey-step-title-0\">\n              <!-- Green Line Background (Mobile\/Desktop) -->\n              <div class=\"journey-block__step-line\">\n                <img decoding=\"async\" src=\"https:\/\/haipestudio.com\/wp-content\/themes\/haipe_studio\/blocks\/journey\/img\/line-green-left-up.svg\" alt=\"\" class=\"journey-block__step-line-image\" loading=\"lazy\" title=\"\">\n              <\/div>\n\n              <!-- Step Number\/Icon -->\n              <div class=\"journey-block__step-number\">\n                                  <span class=\"journey-block__step-number-text\" aria-label=\"Etapa 1\">\n                    01                  <\/span>\n                              <\/div>\n\n              <!-- Title -->\n                              <header class=\"journey-block__step-header\">\n                  <h3 id=\"journey-step-title-0\" class=\"journey-block__step-title\">\n                    Discovery  &amp; Audit                  <\/h3>\n                <\/header>\n              \n              <!-- Description -->\n                              <div class=\"journey-block__step-content\">\n                  <div class=\"journey-block__step-description\">\n                    <p>We analyze your current processes and identify automation opportunities<\/p>\n                  <\/div>\n                <\/div>\n              \n\n              <!-- Time -->\n                              <div class=\"journey-block__step-time\">\n                  <time class=\"journey-block__step-time-text\" datetime=\"1-2 days\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                      <path d=\"M7.99998 14.6656C11.6819 14.6656 14.6666 11.6808 14.6666 7.99894C14.6666 4.31704 11.6819 1.33228 7.99998 1.33228C4.31808 1.33228 1.33331 4.31704 1.33331 7.99894C1.33331 11.6808 4.31808 14.6656 7.99998 14.6656Z\"\n                        stroke=\"#663BB7\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                      <path d=\"M8 3.99902V7.99902L10.6667 9.33236\" stroke=\"#663BB7\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                    <\/svg>\n\n                    <span>1-2 days<\/span>\n                  <\/time>\n                <\/div>\n                          <\/article>\n                                        <article class=\"journey-block__step\" aria-labelledby=\"journey-step-title-1\">\n              <!-- Green Line Background (Mobile\/Desktop) -->\n              <div class=\"journey-block__step-line\">\n                <img decoding=\"async\" src=\"https:\/\/haipestudio.com\/wp-content\/themes\/haipe_studio\/blocks\/journey\/img\/line-green-left-down.svg\" alt=\"\" class=\"journey-block__step-line-image\" loading=\"lazy\" title=\"\">\n              <\/div>\n\n              <!-- Step Number\/Icon -->\n              <div class=\"journey-block__step-number\">\n                                  <span class=\"journey-block__step-number-text\" aria-label=\"Etapa 2\">\n                    02                  <\/span>\n                              <\/div>\n\n              <!-- Title -->\n                              <header class=\"journey-block__step-header\">\n                  <h3 id=\"journey-step-title-1\" class=\"journey-block__step-title\">\n                    Strategy  &amp; Design                  <\/h3>\n                <\/header>\n              \n              <!-- Description -->\n                              <div class=\"journey-block__step-content\">\n                  <div class=\"journey-block__step-description\">\n                    <p>Custom automation strategy designed specifically for your business goals<\/p>\n                  <\/div>\n                <\/div>\n              \n\n              <!-- Time -->\n                              <div class=\"journey-block__step-time\">\n                  <time class=\"journey-block__step-time-text\" datetime=\"10-20 days\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                      <path d=\"M7.99998 14.6656C11.6819 14.6656 14.6666 11.6808 14.6666 7.99894C14.6666 4.31704 11.6819 1.33228 7.99998 1.33228C4.31808 1.33228 1.33331 4.31704 1.33331 7.99894C1.33331 11.6808 4.31808 14.6656 7.99998 14.6656Z\"\n                        stroke=\"#663BB7\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                      <path d=\"M8 3.99902V7.99902L10.6667 9.33236\" stroke=\"#663BB7\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                    <\/svg>\n\n                    <span>10-20 days<\/span>\n                  <\/time>\n                <\/div>\n                          <\/article>\n                                        <article class=\"journey-block__step\" aria-labelledby=\"journey-step-title-2\">\n              <!-- Green Line Background (Mobile\/Desktop) -->\n              <div class=\"journey-block__step-line\">\n                <img decoding=\"async\" src=\"https:\/\/haipestudio.com\/wp-content\/themes\/haipe_studio\/blocks\/journey\/img\/line-green-left-up.svg\" alt=\"\" class=\"journey-block__step-line-image\" loading=\"lazy\" title=\"\">\n              <\/div>\n\n              <!-- Step Number\/Icon -->\n              <div class=\"journey-block__step-number\">\n                                  <span class=\"journey-block__step-number-text\" aria-label=\"Etapa 3\">\n                    03                  <\/span>\n                              <\/div>\n\n              <!-- Title -->\n                              <header class=\"journey-block__step-header\">\n                  <h3 id=\"journey-step-title-2\" class=\"journey-block__step-title\">\n                    Development  &amp; Testing                  <\/h3>\n                <\/header>\n              \n              <!-- Description -->\n                              <div class=\"journey-block__step-content\">\n                  <div class=\"journey-block__step-description\">\n                    <p>Build and rigorously test all automation workflows before deployment<\/p>\n                  <\/div>\n                <\/div>\n              \n\n              <!-- Time -->\n                              <div class=\"journey-block__step-time\">\n                  <time class=\"journey-block__step-time-text\" datetime=\"2-4 weeks\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                      <path d=\"M7.99998 14.6656C11.6819 14.6656 14.6666 11.6808 14.6666 7.99894C14.6666 4.31704 11.6819 1.33228 7.99998 1.33228C4.31808 1.33228 1.33331 4.31704 1.33331 7.99894C1.33331 11.6808 4.31808 14.6656 7.99998 14.6656Z\"\n                        stroke=\"#663BB7\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                      <path d=\"M8 3.99902V7.99902L10.6667 9.33236\" stroke=\"#663BB7\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                    <\/svg>\n\n                    <span>2-4 weeks<\/span>\n                  <\/time>\n                <\/div>\n                          <\/article>\n                                        <article class=\"journey-block__step\" aria-labelledby=\"journey-step-title-3\">\n              <!-- Green Line Background (Mobile\/Desktop) -->\n              <div class=\"journey-block__step-line\">\n                <img decoding=\"async\" src=\"https:\/\/haipestudio.com\/wp-content\/themes\/haipe_studio\/blocks\/journey\/img\/line-green-left-down.svg\" alt=\"\" class=\"journey-block__step-line-image\" loading=\"lazy\" title=\"\">\n              <\/div>\n\n              <!-- Step Number\/Icon -->\n              <div class=\"journey-block__step-number\">\n                                  <span class=\"journey-block__step-number-text\" aria-label=\"Etapa 4\">\n                    04                  <\/span>\n                              <\/div>\n\n              <!-- Title -->\n                              <header class=\"journey-block__step-header\">\n                  <h3 id=\"journey-step-title-3\" class=\"journey-block__step-title\">\n                    Implementation  &amp; Training                  <\/h3>\n                <\/header>\n              \n              <!-- Description -->\n                              <div class=\"journey-block__step-content\">\n                  <div class=\"journey-block__step-description\">\n                    <p>Deploy solutions and train your team for maximum adoption and success<\/p>\n                  <\/div>\n                <\/div>\n              \n\n              <!-- Time -->\n                              <div class=\"journey-block__step-time\">\n                  <time class=\"journey-block__step-time-text\" datetime=\"1-2 days\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                      <path d=\"M7.99998 14.6656C11.6819 14.6656 14.6666 11.6808 14.6666 7.99894C14.6666 4.31704 11.6819 1.33228 7.99998 1.33228C4.31808 1.33228 1.33331 4.31704 1.33331 7.99894C1.33331 11.6808 4.31808 14.6656 7.99998 14.6656Z\"\n                        stroke=\"#663BB7\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                      <path d=\"M8 3.99902V7.99902L10.6667 9.33236\" stroke=\"#663BB7\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n                    <\/svg>\n\n                    <span>1-2 days<\/span>\n                  <\/time>\n                <\/div>\n                          <\/article>\n                        <\/div>\n\n      <!-- Tablet Horizontal Lines (2 columns) - Show for 2, 3, or 4 items -->\n              <div class=\"journey-block__tablet-lines\">\n          <!-- First row line (between steps 1 and 2) -->\n          <div class=\"journey-block__tablet-line journey-block__tablet-line--first \">\n            <img decoding=\"async\" src=\"https:\/\/haipestudio.com\/wp-content\/themes\/haipe_studio\/blocks\/journey\/img\/line-green-full.svg\" alt=\"\" class=\"journey-block__tablet-line-image\" loading=\"lazy\" title=\"\">\n          <\/div>\n\n          <!-- Second row line (between steps 3 and 4) - Only for 4 items -->\n                      <div class=\"journey-block__tablet-line journey-block__tablet-line--second\">\n              <img decoding=\"async\" src=\"https:\/\/haipestudio.com\/wp-content\/themes\/haipe_studio\/blocks\/journey\/img\/line-green-full.svg\" alt=\"\" class=\"journey-block__tablet-line-image\" loading=\"lazy\" title=\"\">\n            <\/div>\n                  <\/div>\n      \n      <!-- Desktop Horizontal Line - Show for 3 or 4 items -->\n              <div class=\"journey-block__desktop-line\">\n          <picture>\n            <source srcset=\"https:\/\/haipestudio.com\/wp-content\/themes\/haipe_studio\/blocks\/journey\/img\/line-green-full-max.svg\" media=\"(min-width: 1536px)\">\n            <img decoding=\"async\" src=\"https:\/\/haipestudio.com\/wp-content\/themes\/haipe_studio\/blocks\/journey\/img\/line-green-full.svg\" alt=\"\" class=\"journey-block__desktop-line-image\" loading=\"lazy\" title=\"\">\n          <\/picture>\n        <\/div>\n          <\/div>\n  <\/section>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Function to add line breaks before & symbol in titles\n    function addLineBreaksBeforeAmpersand() {\n        const journeyTitles = document.querySelectorAll('.journey-block__step-title');\n        \n        journeyTitles.forEach(function(title) {\n            if (title.textContent.includes('&')) {\n                \/\/ Replace & with <br>& to add line break before it\n                title.innerHTML = title.textContent.replace(\/&\/g, '<br>&');\n            }\n        });\n    }\n    \n    \/\/ Function to handle icon display\n    function handleIconDisplay() {\n        const journeyIcons = document.querySelectorAll('.journey-block__step-icon svg');\n        \n        journeyIcons.forEach(function(icon) {\n            \/\/ Ensure SVG icons are properly styled\n            icon.style.width = '2rem';\n            icon.style.height = '2rem';\n            icon.style.color = 'white';\n        });\n    }\n    \n    \/\/ Function to set desktop line background\n    function setDesktopLineBackground() {\n        const desktopLine = document.querySelector('.journey-block__desktop-line');\n        if (desktopLine) {\n            \/\/ Get the theme directory URI from a data attribute or use a fallback\n            const themeUri = window.themeUri || 'https:\/\/haipestudio.com\/wp-content\/themes\/haipe_studio';\n            const imagePath = `${themeUri}\/blocks\/journey\/img\/line-green-full-02.svg`;\n            \n            desktopLine.style.background = `url('${imagePath}') repeat-x`;\n            desktopLine.style.backgroundSize = 'auto 100%';\n        }\n    }\n\n    \/\/ Intersection Observer for viewport-based animations\n    function initJourneyAnimations() {\n        const journeyBlock = document.querySelector('.journey-block');\n        \n        if (!journeyBlock) return;\n        \n        \/\/ Check if device is mobile\n        const isMobile = window.innerWidth <= 768;\n        \n        const journeyObserver = new IntersectionObserver((entries) => {\n            entries.forEach((entry) => {\n                if (entry.isIntersecting) {\n                    entry.target.classList.add('journey-block-entrance');\n                    \n                    \/\/ Unobserve after animation is triggered\n                    journeyObserver.unobserve(entry.target);\n                }\n            });\n        }, {\n            threshold: 0.1, \/\/ Reduced threshold for earlier trigger\n            rootMargin: isMobile ? '0px 0px -5px 0px' : '0px 0px -50px 0px' \/\/ Less negative margin on mobile\n        });\n        \n        journeyObserver.observe(journeyBlock);\n    }\n    \n    \/\/ Run the functions when DOM is loaded\n    addLineBreaksBeforeAmpersand();\n    handleIconDisplay();\n    setDesktopLineBackground();\n    initJourneyAnimations();\n    \n    \/\/ Handle window resize to update mobile detection\n    let resizeTimeout;\n    window.addEventListener('resize', function() {\n        clearTimeout(resizeTimeout);\n        resizeTimeout = setTimeout(function() {\n            \/\/ Re-initialize animations with updated mobile detection\n            initJourneyAnimations();\n        }, 250);\n    });\n    \n    \/\/ Also run if content is dynamically loaded (for Gutenberg editor)\n    if (typeof wp !== 'undefined' && wp.data) {\n        wp.data.subscribe(function() {\n            \/\/ Small delay to ensure content is rendered\n            setTimeout(function() {\n                addLineBreaksBeforeAmpersand();\n                handleIconDisplay();\n                setDesktopLineBackground();\n                initJourneyAnimations();\n            }, 100);\n        });\n    }\n});\n<\/script>\n\n\n  <section id=\"\"\n    class=\"contact-form-block\"\n    aria-labelledby=\"contact-form-heading\"     aria-label=\"Formul\u00e1rio de contato e informa\u00e7\u00f5es de contato\" style=\"background-color: #F3F1F8;\">\n\n    <div class=\"contact-form-block__container\">\n      <div class=\"contact-form-block__grid\">\n\n        <!-- Left Content - Contact Information -->\n        <div class=\"contact-form-block__content\">\n\n          <!-- Main Title and Topics -->\n                      <header class=\"contact-form-block__header contact-form-block__header--icons\">\n              <h2 id=\"contact-form-heading\" class=\"contact-form-block__title\">\n                Get In Touch              <\/h2>\n\n                              <nav class=\"contact-form-block__topics\" aria-label=\"T\u00f3picos de contato\">\n                  <ul class=\"contact-form-block__topics-list contact-form-block__topics-list--icons\" role=\"list\">\n                                                                  <li class=\"contact-form-block__topics-item\">\n                                                      <!-- Icons Layout -->\n                            <div class=\"contact-form-block__topics-icon\">\n                              <svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<rect width=\"48\" height=\"48\" rx=\"24\" fill=\"#663BB7\"\/>\n<path d=\"M34 19L25.5 27.5L20.5 22.5L14 29\" stroke=\"white\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n<path d=\"M28 19H34V25\" stroke=\"white\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n<\/svg>\n                            <\/div>\n                          \n                          <div class=\"contact-form-block__topics-content\">\n                            <span class=\"contact-form-block__topics-text\">Prove ROI<\/span>\n                                                          <p class=\"contact-form-block__topics-description\">Free audit to reveal your automation savings.<\/p>\n                                                      <\/div>\n                        <\/li>\n                                                                                        <li class=\"contact-form-block__topics-item\">\n                                                      <!-- Icons Layout -->\n                            <div class=\"contact-form-block__topics-icon\">\n                              <svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<rect width=\"48\" height=\"48\" rx=\"24\" fill=\"#663BB7\"\/>\n<path d=\"M21 14H27\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n<path d=\"M24 22V26\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n<path d=\"M24 34C28.4183 34 32 30.4183 32 26C32 21.5817 28.4183 18 24 18C19.5817 18 16 21.5817 16 26C16 30.4183 19.5817 34 24 34Z\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n<\/svg>\n                            <\/div>\n                          \n                          <div class=\"contact-form-block__topics-content\">\n                            <span class=\"contact-form-block__topics-text\">Streamline Workflows<\/span>\n                                                          <p class=\"contact-form-block__topics-description\">Available Mon\u2013Fri, 9am\u20136pm (Lisbon time).<\/p>\n                                                      <\/div>\n                        <\/li>\n                                                                                        <li class=\"contact-form-block__topics-item\">\n                                                      <!-- Icons Layout -->\n                            <div class=\"contact-form-block__topics-icon\">\n                              <svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<rect width=\"48\" height=\"48\" rx=\"24\" fill=\"#663BB7\"\/>\n<path d=\"M24 34C29.5228 34 34 29.5228 34 24C34 18.4772 29.5228 14 24 14C18.4772 14 14 18.4772 14 24C14 29.5228 18.4772 34 24 34Z\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n<path d=\"M21 24L23 26L27 22\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n<\/svg>\n                            <\/div>\n                          \n                          <div class=\"contact-form-block__topics-content\">\n                            <span class=\"contact-form-block__topics-text\">Clear Roadmap<\/span>\n                                                          <p class=\"contact-form-block__topics-description\">Remote-first, European-based, built for global delivery.<\/p>\n                                                      <\/div>\n                        <\/li>\n                                                            <\/ul>\n                <\/nav>\n                          <\/header>\n          \n\n          <!-- Contact Information -->\n          <div class=\"contact-form-block__info contact-form-block__info--card-layout\" role=\"region\" aria-label=\"Informa\u00e7\u00f5es de contato\">\n            <!-- Second Title -->\n            \n                          <!-- Card Layout -->\n              <div class=\"contact-form-block__card-layout\">\n\n                <figure class=\"contact-form-block__card-layout-background\">\n                  <svg width=\"312\" height=\"471\" viewBox=\"0 0 312 471\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M37.939 386.955L53.2172 470.488L224.082 371.839L157.968 317.657L37.939 386.955Z\" fill=\"#F3F1F8\"\/>\n<path d=\"M0.0971518 182.814L25.7494 320.186L106.945 273.308L0.0971518 182.814Z\" fill=\"#F3F1F8\"\/>\n<path d=\"M179.476 93.214L311.261 321.472L10.7543 67.2631L126.059 0.692169L154.48 49.9189L231.889 5.22669L256.885 48.5217L179.476 93.214Z\" fill=\"#F3F1F8\"\/>\n<\/svg>\n                <\/figure>\n\n                                  <h3 class=\"contact-form-block__card-layout-title\">\n                    Typical Results                  <\/h3>\n                \n                                                      <div class=\"contact-form-block__card-item\">\n                      <div class=\"contact-form-block__card-left\">\n                        Time Savings:                      <\/div>\n                      <div class=\"contact-form-block__card-right\">\n                        15-25 hours\/week                      <\/div>\n                    <\/div>\n                                                                        <div class=\"contact-form-block__card-item\">\n                      <div class=\"contact-form-block__card-left\">\n                        Error Reduction:                      <\/div>\n                      <div class=\"contact-form-block__card-right\">\n                        90%+                      <\/div>\n                    <\/div>\n                                                                        <div class=\"contact-form-block__card-item\">\n                      <div class=\"contact-form-block__card-left\">\n                        ROI Timeline:                      <\/div>\n                      <div class=\"contact-form-block__card-right\">\n                        1-3 months                      <\/div>\n                    <\/div>\n                                                <\/div>\n            \n          <\/div>\n        <\/div>\n\n        <!-- Right Form -->\n        <div id=\"free-audit\" class=\"contact-form-block__form-wrapper contact-form-block__form-wrapper--card\">\n          <div class=\"contact-form-block__form-container\">\n                          <div class=\"contact-form-block__form-content\"\n                role=\"region\"\n                aria-label=\"contact form\"\n                >\n                <div class='fluentform ff-default fluentform_wrapper_9 ffs_default_wrap'><form data-form_id=\"9\" id=\"fluentform_9\" class=\"frm-fluent-form fluent_form_9 ff-el-form-top ff_form_instance_9_1 ff-form-loading ffs_default\" data-form_instance=\"ff_form_instance_9_1\" method=\"POST\" data-turnstile_key=\"0x4AAAAAAClzAtPyv0uj_MqM\" ><fieldset  style=\"border: none!important;margin: 0!important;padding: 0!important;background-color: transparent!important;box-shadow: none!important;outline: none!important; min-inline-size: 100%;\">\n                    <legend class=\"ff_screen_reader_title\" style=\"display: block; margin: 0!important;padding: 0!important;height: 0!important;text-indent: -999999px;width: 0!important;overflow:hidden;\">Services | Streamline Your Operations<\/legend><input type='hidden' name='__fluent_form_embded_post_id' value='313' \/><input type=\"hidden\" id=\"_fluentform_9_fluentformnonce\" name=\"_fluentform_9_fluentformnonce\" value=\"96b863ac73\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/en\/wp-json\/wp\/v2\/pages\/313\" \/><div class='ff-el-group  ff-custom_html' tabindex='-1' data-name=\"custom_html-9_1\" ><h3 class=\"tracking-tight text-2xl font-bold text-slate-900\">Start Your Automation Journey<\/h3><\/div><div data-name=\"ff_cn_id_1\"  class='ff-t-container ff-column-container ff_columns_total_2 '><div class='ff-t-cell ff-t-column-1' style='flex-basis: 50%;'><div class='ff-el-group'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label for='ff_9_input_text' id='label_ff_9_input_text' aria-label=\"Name\">Name<\/label><\/div><div class='ff-el-input--content'><input type=\"text\" name=\"input_text\" class=\"ff-el-form-control\" placeholder=\"Your full name\" data-name=\"input_text\" id=\"ff_9_input_text\"  aria-invalid=\"false\" aria-required=true><\/div><\/div><\/div><div class='ff-t-cell ff-t-column-2' style='flex-basis: 50%;'><div class='ff-el-group'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label for='ff_9_email' id='label_ff_9_email' aria-label=\"Email\">Email<\/label><\/div><div class='ff-el-input--content'><input type=\"email\" name=\"email\" id=\"ff_9_email\" class=\"ff-el-form-control\" placeholder=\"Email Address\" data-name=\"email\" autocomplete=\"email\" inputmode=\"email\"  aria-invalid=\"false\" aria-required=true><\/div><\/div><\/div><\/div><div data-name=\"ff_cn_id_2\"  class='ff-t-container ff-column-container ff_columns_total_2 '><div class='ff-t-cell ff-t-column-1' style='flex-basis: 50%;'><div class='ff-el-group'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label for='ff_9_phone' id='label_ff_9_phone' aria-label=\"Phone\">Phone<\/label><\/div><div class='ff-el-input--content'><input name=\"phone\" class=\"ff-el-form-control ff-el-phone ff_el_with_extended_validation\" type=\"tel\" data-name=\"phone\" autocomplete=\"tel\" inputmode=\"tel\" id=\"ff_9_phone\"  aria-invalid='false' aria-required=true><\/div><\/div><\/div><div class='ff-t-cell ff-t-column-2' style='flex-basis: 50%;'><div class='ff-el-group'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label for='ff_9_input_text_1' id='label_ff_9_input_text_1' aria-label=\"Company\">Company<\/label><\/div><div class='ff-el-input--content'><input type=\"text\" name=\"input_text_1\" class=\"ff-el-form-control\" placeholder=\"Your company name\" data-name=\"input_text_1\" id=\"ff_9_input_text_1\"  aria-invalid=\"false\" aria-required=true><\/div><\/div><\/div><\/div><div class='ff-el-group'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label for='ff_9_dropdown' id='label_ff_9_dropdown' aria-label=\"Plans That Fit Your Needs\">Plans That Fit Your Needs<\/label><\/div><div class='ff-el-input--content'><select name=\"dropdown\" id=\"ff_9_dropdown\" class=\"ff-el-form-control\" data-name=\"dropdown\" data-calc_value=\"0\"  aria-invalid=\"false\" aria-required=\"true\" aria-labelledby=\"label_ff_9_dropdown\"><option value=\"\">Choose the best plan for you<\/option><option value=\"starter\"  >Starter<\/option><option value=\"growth\"  >Growth<\/option><option value=\"custom\"  >Enterprise<\/option><option value=\"item_1\"  >I don&#8217;t know<\/option><\/select><\/div><\/div><div class='ff-el-group'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label for='ff_9_dropdown_2' id='label_ff_9_dropdown_2' aria-label=\"Company Size\">Company Size<\/label><\/div><div class='ff-el-input--content'><select name=\"dropdown_2\" id=\"ff_9_dropdown_2\" class=\"ff-el-form-control\" data-name=\"dropdown_2\" data-calc_value=\"0\"  aria-invalid=\"false\" aria-required=\"true\" aria-labelledby=\"label_ff_9_dropdown_2\"><option value=\"\">Select company size<\/option><option value=\"1-10 employees\"  >1-10 employees<\/option><option value=\"11-50 employees\"  >11-50 employees<\/option><option value=\"51-200 employees\"  >51-200 employees<\/option><option value=\"200+ employees\"  >200+ employees<\/option><\/select><\/div><\/div><div class='ff-el-group'><div class=\"ff-el-input--label asterisk-right\"><label for='ff_9_description' id='label_ff_9_description' aria-label=\"Biggest Pain Points\">Biggest Pain Points<\/label><\/div><div class='ff-el-input--content'><textarea aria-required=\"false\" aria-labelledby=\"label_ff_9_description\" name=\"description\" id=\"ff_9_description\" class=\"ff-el-form-control\" placeholder=\"Describe your biggest pain points\" rows=\"10\" cols=\"2\" data-name=\"description\" ><\/textarea><\/div><\/div><div class='ff-el-group    ff-el-input--content'><div class='ff-el-form-check ff-el-tc'><label aria-label='Terms and Conditions: I have read and agree to the Terms and Conditions and Privacy Policy Contains 2 links. Use tab navigation to review.' class='ff-el-form-check-label ff_tc_label' for=terms-n-condition_8a166a659e6be32d4aae33920078ecf6><span class='ff_tc_checkbox'><input type=\"checkbox\" name=\"terms-n-condition\" class=\"ff-el-form-check-input\" data-name=\"terms-n-condition\" id=\"terms-n-condition_8a166a659e6be32d4aae33920078ecf6\"  value='on' aria-invalid='false' aria-required=true><\/span> <div class='ff_t_c'><p>I have read and agree to the <a href=\"https:\/\/haipestudio.com\/terms-of-service\/\" target=\"_blank\" rel=\"noopener\">Terms and Conditions<\/a> and <a href=\"https:\/\/haipestudio.com\/privacy-policy\/\" target=\"_blank\" rel=\"noopener\">Privacy Policy<\/a><\/p><\/div><\/label><\/div><\/div><div class='ff-el-group ' style='margin-bottom: 0;'><div class='ff-el-input--content'><div data-fluent_id='9' name='cf-turnstile-response'><div\n\t\tdata-sitekey='0x4AAAAAAClzAtPyv0uj_MqM'\n\t\tdata-theme='auto'\n\t\tid='fluentform-turnstile-9-1'\n\t\tclass='ff-el-turnstile cf-turnstile'\n\t\tdata-appearance='interaction-only'><\/div><\/div><\/div><\/div><div class='ff-el-group ff-text-center ff_submit_btn_wrapper'><button type=\"submit\" class=\"ff-btn ff-btn-submit ff-btn-md ff_btn_style\"  aria-label=\"Get my free audit\">Get my free audit<\/button><\/div><\/fieldset><\/form><div id='fluentform_9_errors' class='ff-errors-in-stack ff_form_instance_9_1 ff-form-loading_errors ff_form_instance_9_1_errors'><\/div><\/div>            <script type=\"text\/javascript\">\n                window.fluent_form_ff_form_instance_9_1 = {\"id\":\"9\",\"ajaxUrl\":\"https:\\\/\\\/haipestudio.com\\\/wp-admin\\\/admin-ajax.php\",\"settings\":{\"layout\":{\"labelPlacement\":\"top\",\"asteriskPlacement\":\"asterisk-right\",\"helpMessagePlacement\":\"with_label\",\"errorMessagePlacement\":\"inline\",\"cssClassName\":\"\"},\"restrictions\":{\"denyEmptySubmission\":{\"enabled\":false}}},\"form_instance\":\"ff_form_instance_9_1\",\"form_id_selector\":\"fluentform_9\",\"rules\":{\"input_text\":{\"required\":{\"value\":true,\"message\":\"This field is required\",\"global_message\":\"This field is required\",\"global\":true}},\"email\":{\"required\":{\"value\":true,\"message\":\"This field is required\",\"global_message\":\"This field is required\",\"global\":true},\"email\":{\"value\":true,\"message\":\"This field must contain a valid email\",\"global_message\":\"This field must contain a valid email\",\"global\":true}},\"phone\":{\"required\":{\"value\":true,\"global\":true,\"message\":\"This field is required\",\"global_message\":\"This field is required\"},\"valid_phone_number\":{\"value\":true,\"global\":true,\"message\":\"Phone number is not valid\",\"global_message\":\"Phone number is not valid\"}},\"input_text_1\":{\"required\":{\"value\":true,\"message\":\"This field is required\",\"global_message\":\"This field is required\",\"global\":true}},\"dropdown\":{\"required\":{\"value\":true,\"message\":\"This field is required\",\"global_message\":\"This field is required\",\"global\":true}},\"dropdown_2\":{\"required\":{\"value\":true,\"message\":\"This field is required\",\"global_message\":\"This field is required\",\"global\":true}},\"description\":{\"required\":{\"value\":false,\"message\":\"This field is required\",\"global_message\":\"This field is required\",\"global\":true}},\"terms-n-condition\":{\"required\":{\"value\":true,\"message\":\"This field is required\",\"global_message\":\"This field is required\",\"global\":true}},\"cf-turnstile-response\":[]},\"debounce_time\":300,\"file_upload_settings\":[]};\n                            <\/script>\n                          <\/div>\n                      <\/div>\n        <\/div>\n\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n<script>\nclass HaipeCustomSelect {\n\tconstructor(element, options = {}) {\n\t\tthis.element = element;\n\t\tthis.options = {\n\t\t\tplaceholder: 'Select...',\n\t\t\tallowCustom: false,\n\t\t\tsearchable: false,\n\t\t\t...options\n\t\t};\n\t\t\n\t\tthis.isOpen = false;\n\t\tthis.selectedValue = '';\n\t\tthis.selectedText = '';\n\t\tthis.selectedValues = []; \/\/ For multiple selection\n\t\tthis.selectedTexts = []; \/\/ For multiple selection\n\t\tthis.isMultiple = this.element.hasAttribute('multiple');\n\t\tthis.originalSelect = null;\n\t\t\n\t\tthis.init();\n\t}\n\t\n\tinit() {\n\t\t\/\/ Store reference to original select\n\t\tthis.originalSelect = this.element;\n\t\t\n\t\t\/\/ Store original options for restoration\n\t\tthis.originalOptions = Array.from(this.originalSelect.options).map(opt => ({\n\t\t\tvalue: opt.value,\n\t\t\ttext: opt.textContent,\n\t\t\tselected: opt.selected\n\t\t}));\n\t\t\n\t\t\/\/ Initialize selected values for multiple select\n\t\tif (this.isMultiple) {\n\t\t\tthis.selectedValues = [];\n\t\t\tthis.selectedTexts = [];\n\t\t\t\n\t\t\t\/\/ Get initially selected options\n\t\t\tArray.from(this.originalSelect.selectedOptions).forEach(option => {\n\t\t\t\tif (option.value && option.value !== '') {\n\t\t\t\t\tthis.selectedValues.push(option.value);\n\t\t\t\t\tthis.selectedTexts.push(option.textContent);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\t\/\/ Create custom select structure\n\t\tthis.createCustomSelect();\n\t\t\n\t\t\/\/ Bind events\n\t\tthis.bindEvents();\n\t\t\n\t\t\/\/ Set initial state\n\t\tthis.updateDisplay();\n\t}\n\t\n\tcreateCustomSelect() {\n\t\t\/\/ Store a reference to the original select before any modifications\n\t\tthis.originalSelectElement = this.originalSelect;\n\t\t\n\t\t\/\/ For multiple selects, keep original select visible but hidden from view\n\t\t\/\/ For single selects, hide completely\n\t\tif (this.isMultiple) {\n\t\t\t\/\/ Keep original select accessible but visually hidden\n\t\t\tthis.originalSelect.style.position = 'absolute';\n\t\t\tthis.originalSelect.style.left = '-9999px';\n\t\t\tthis.originalSelect.style.opacity = '0';\n\t\t\tthis.originalSelect.style.pointerEvents = 'none';\n\t\t\tthis.originalSelect.style.zIndex = '-1';\n\t\t} else {\n\t\t\t\/\/ Hide original select completely for single selects\n\t\t\tthis.originalSelect.style.display = 'none';\n\t\t}\n\t\t\n\t\t\/\/ Create wrapper\n\t\tthis.wrapper = document.createElement('div');\n\t\tthis.wrapper.className = 'haipe-custom-select';\n\t\tif (this.isMultiple) {\n\t\t\tthis.wrapper.classList.add('haipe-custom-select--multiple');\n\t\t}\n\t\t\n\t\t\/\/ Create label if original has one\n\t\tif (this.originalSelect.previousElementSibling && \n\t\t\tthis.originalSelect.previousElementSibling.tagName === 'LABEL') {\n\t\t\tconst label = document.createElement('label');\n\t\t\tlabel.className = 'haipe-custom-select__label';\n\t\t\tlabel.textContent = this.originalSelect.previousElementSibling.textContent;\n\t\t\tthis.wrapper.appendChild(label);\n\t\t}\n\t\t\n\t\t\/\/ Create input\n\t\tthis.input = document.createElement('input');\n\t\tthis.input.type = 'text';\n\t\tthis.input.className = 'haipe-custom-select__input';\n\t\tthis.input.placeholder = this.options.placeholder;\n\t\tthis.input.readOnly = true;\n\t\t\n\t\t\/\/ Create selected items container for multiple selection\n\t\tif (this.isMultiple) {\n\t\t\tthis.selectedContainer = document.createElement('div');\n\t\t\tthis.selectedContainer.className = 'haipe-custom-select__selected-container';\n\t\t}\n\t\t\n\t\t\/\/ Check if original select has a placeholder option and set initial display\n\t\tconst hasPlaceholder = this.originalSelect.querySelector('option[value=\"\"]') || \n\t\t\t\t\t\t\t   this.originalSelect.querySelector('option[data-placeholder]') ||\n\t\t\t\t\t\t\t   this.originalSelect.querySelector('option.placeholder-option');\n\t\t\n\t\tif (hasPlaceholder && !this.originalSelect.value) {\n\t\t\tthis.input.value = '';\n\t\t}\n\t\t\n\t\t\/\/ Create chevron icon using existing SVG file\n\t\tthis.chevron = document.createElement('div');\n\t\tthis.chevron.className = 'haipe-custom-select__chevron';\n\t\tthis.chevron.innerHTML = `<svg width=\"12\" height=\"7\" viewBox=\"0 0 12 7\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M5.9997 6.99838C5.86636 6.99838 5.74136 6.97738 5.6247 6.93538C5.50803 6.89404 5.3997 6.82338 5.2997 6.72338L0.674696 2.09838C0.491363 1.91504 0.40403 1.68571 0.412696 1.41038C0.420696 1.13571 0.516363 0.906711 0.699696 0.723377C0.883029 0.540044 1.11636 0.448377 1.3997 0.448377C1.68303 0.448377 1.91636 0.540044 2.0997 0.723377L5.9997 4.62338L9.9247 0.698377C10.108 0.515043 10.3374 0.427377 10.6127 0.435377C10.8874 0.444044 11.1164 0.540044 11.2997 0.723377C11.483 0.906711 11.5747 1.14004 11.5747 1.42338C11.5747 1.70671 11.483 1.94004 11.2997 2.12338L6.6997 6.72338C6.5997 6.82338 6.49136 6.89404 6.3747 6.93538C6.25803 6.97738 6.13303 6.99838 5.9997 6.99838Z\" fill=\"#4D5356\"\/>\n<\/svg>\n`;\n\t\t\n\t\t\/\/ Make chevron clickable to toggle dropdown\n\t\tthis.chevron.addEventListener('click', (e) => {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\t\n\t\t\tif (this.isOpen) {\n\t\t\t\tthis.closeDropdown();\n\t\t\t} else {\n\t\t\t\tthis.openDropdown();\n\t\t\t}\n\t\t});\n\t\t\n\t\t\/\/ Create dropdown\n\t\tthis.dropdown = document.createElement('div');\n\t\tthis.dropdown.className = 'haipe-custom-select__dropdown';\n\t\t\n\t\t\/\/ Create options\n\t\tthis.createOptions();\n\t\t\n\t\t\/\/ Create hint text if original has data-hint\n\t\tif (this.originalSelect.dataset.hint) {\n\t\t\tconst hint = document.createElement('span');\n\t\t\thint.className = 'haipe-custom-select__hint';\n\t\t\thint.textContent = this.originalSelect.dataset.hint;\n\t\t\tthis.wrapper.appendChild(hint);\n\t\t}\n\t\t\n\t\t\/\/ Assemble\n\t\tif (this.isMultiple) {\n\t\t\tthis.wrapper.appendChild(this.selectedContainer);\n\t\t}\n\t\tthis.wrapper.appendChild(this.input);\n\t\tthis.wrapper.appendChild(this.chevron);\n\t\tthis.wrapper.appendChild(this.dropdown);\n\t\t\n\t\t\/\/ Insert after original select\n\t\tthis.originalSelect.parentNode.insertBefore(this.wrapper, this.originalSelect.nextSibling);\n\t}\n\t\n\tcreateOptions() {\n\t\t\/\/ Clear existing options\n\t\tthis.dropdown.innerHTML = '';\n\t\t\n\t\t\/\/ Get options from original select, filtering out placeholder options\n\t\tconst options = Array.from(this.originalSelect.options).filter(option => {\n\t\t\t\/\/ Filter out options that are placeholders (empty value or specific placeholder indicators)\n\t\t\treturn option.value !== '' && \n\t\t\t\t   option.value !== null && \n\t\t\t\t   !option.hasAttribute('data-placeholder') &&\n\t\t\t\t   !option.classList.contains('placeholder-option');\n\t\t});\n\t\t\n\t\toptions.forEach((option, index) => {\n\t\t\tconst optionElement = document.createElement('div');\n\t\t\toptionElement.className = 'haipe-custom-select__option';\n\t\t\toptionElement.textContent = option.textContent;\n\t\t\t\/\/ Store both value and text for better matching\n\t\t\toptionElement.dataset.value = option.value;\n\t\t\toptionElement.dataset.text = option.textContent;\n\t\t\t\n\t\t\tif (option.disabled) {\n\t\t\t\toptionElement.classList.add('haipe-custom-select__option--disabled');\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ Check if option is selected (for both single and multiple)\n\t\t\tif (this.isMultiple) {\n\t\t\t\tif (this.selectedValues.includes(option.value) || this.selectedValues.includes(option.textContent)) {\n\t\t\t\t\toptionElement.classList.add('haipe-custom-select__option--selected');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (option.value === this.originalSelect.value) {\n\t\t\t\t\toptionElement.classList.add('haipe-custom-select__option--selected');\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\toptionElement.addEventListener('click', (e) => {\n\t\t\t\tif (!option.disabled) {\n\t\t\t\t\t\/\/ Use the actual option value, not text content\n\t\t\t\t\tthis.selectOption(option.value, option.textContent);\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tthis.dropdown.appendChild(optionElement);\n\t\t});\n\t}\n\t\n\tbindEvents() {\n\t\t\/\/ Input click - toggle dropdown (open if closed, close if open)\n\t\tthis.input.addEventListener('click', (e) => {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\t\n\t\t\tif (this.isOpen) {\n\t\t\t\tthis.closeDropdown();\n\t\t\t} else {\n\t\t\t\tthis.openDropdown();\n\t\t\t}\n\t\t});\n\t\t\n\t\t\/\/ Removed focus event to prevent conflict with click event\n\t\t\n\t\t\/\/ For multiple select, also make the selected container clickable\n\t\tif (this.isMultiple) {\n\t\t\tthis.selectedContainer.addEventListener('click', (e) => {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\t\n\t\t\t\tif (this.isOpen) {\n\t\t\t\t\tthis.closeDropdown();\n\t\t\t\t} else {\n\t\t\t\t\tthis.openDropdown();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\t\/\/ Disable custom input - only allow selection from dropdown\n\t\t\/\/ Removed custom input functionality to prevent typing\n\t\t\n\t\t\/\/ Click outside to close\n\t\tdocument.addEventListener('click', (e) => {\n\t\t\tconst isInput = e.target === this.input;\n\t\t\tconst isInsideWrapper = this.wrapper && this.wrapper.contains(e.target);\n\t\t\tconst isChevron = e.target === this.chevron || this.chevron.contains(e.target);\n\t\t\tconst isDropdown = e.target === this.dropdown || this.dropdown.contains(e.target);\n\t\t\tconst isSelectedContainer = this.isMultiple && (e.target === this.selectedContainer || this.selectedContainer.contains(e.target));\n\t\t\t\n\t\t\tconst shouldIgnore = isInput || isInsideWrapper || isChevron || isDropdown || isSelectedContainer;\n\t\t\t\n\t\t\tif (!shouldIgnore) {\n\t\t\t\tthis.closeDropdown();\n\t\t\t}\n\t\t});\n\t\t\n\t\t\/\/ Keyboard navigation\n\t\tthis.input.addEventListener('keydown', (e) => {\n\t\t\tswitch (e.key) {\n\t\t\t\tcase 'Enter':\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tif (this.isOpen) {\n\t\t\t\t\t\tthis.closeDropdown();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.openDropdown();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Escape':\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.closeDropdown();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.openDropdown();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Tab':\n\t\t\t\t\tthis.closeDropdown();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\n\t\n\ttoggleDropdown() {\n\t\tif (this.isOpen) {\n\t\t\tthis.closeDropdown();\n\t\t} else {\n\t\t\tthis.openDropdown();\n\t\t}\n\t}\n\t\n\topenDropdown() {\n\t\tif (this.isOpen) return;\n\t\t\n\t\tthis.isOpen = true;\n\t\tthis.dropdown.classList.add('haipe-custom-select__dropdown--open');\n\t\tthis.chevron.classList.add('haipe-custom-select__chevron--open');\n\t\tthis.input.classList.add('ring-2', 'ring-haipe_purple-500\/20');\n\t\t\n\t\t\/\/ Ensure dropdown is visible and positioned correctly\n\t\tthis.dropdown.style.display = 'block';\n\t}\n\t\n\tcloseDropdown() {\n\t\tif (!this.isOpen) return;\n\t\t\n\t\tthis.isOpen = false;\n\t\tthis.dropdown.classList.remove('haipe-custom-select__dropdown--open');\n\t\tthis.chevron.classList.remove('haipe-custom-select__chevron--open');\n\t\tthis.input.classList.remove('ring-2', 'ring-haipe_purple-500\/20');\n\t}\n\t\n\tselectOption(value, text) {\n\t\t\/\/ Don't allow selecting placeholder values\n\t\tif (!value || value === '' || value === null) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif (this.isMultiple) {\n\t\t\t\/\/ Handle multiple selection\n\t\t\t\/\/ Check if value is already selected (by value or text)\n\t\t\tconst optionIndexByValue = this.selectedValues.indexOf(value);\n\t\t\tconst optionIndexByText = this.selectedValues.indexOf(text);\n\t\t\tconst optionIndex = optionIndexByValue > -1 ? optionIndexByValue : optionIndexByText;\n\t\t\t\n\t\t\tif (optionIndex > -1) {\n\t\t\t\t\/\/ Remove if already selected\n\t\t\t\tthis.selectedValues.splice(optionIndex, 1);\n\t\t\t\tthis.selectedTexts.splice(optionIndex, 1);\n\t\t\t} else {\n\t\t\t\t\/\/ Add if not selected - use the actual option value from the original select\n\t\t\t\t\/\/ Find the corresponding option in the original select\n\t\t\t\tconst originalSelect = this.originalSelectElement || this.originalSelect;\n\t\t\t\tconst originalOption = Array.from(originalSelect.options).find(opt => \n\t\t\t\t\topt.value === value || opt.textContent.trim() === value.trim() || opt.textContent.trim() === text.trim()\n\t\t\t\t);\n\t\t\t\t\n\t\t\t\tif (originalOption) {\n\t\t\t\t\tthis.selectedValues.push(originalOption.value);\n\t\t\t\t\tthis.selectedTexts.push(originalOption.textContent);\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ Fallback to the provided values\n\t\t\t\t\tthis.selectedValues.push(value);\n\t\t\t\t\tthis.selectedTexts.push(text);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ Update option visual state\n\t\t\tconst selectedOption = this.dropdown.querySelector(`[data-value=\"${value}\"]`);\n\t\t\tif (selectedOption) {\n\t\t\t\tif (optionIndex > -1) {\n\t\t\t\t\tselectedOption.classList.remove('haipe-custom-select__option--selected');\n\t\t\t\t} else {\n\t\t\t\t\tselectedOption.classList.add('haipe-custom-select__option--selected');\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t\/\/ Handle single selection\n\t\t\tthis.selectedValue = value;\n\t\t\tthis.selectedText = text;\n\t\t\t\n\t\t\t\/\/ Remove selected class from all options\n\t\t\tthis.dropdown.querySelectorAll('.haipe-custom-select__option').forEach(option => {\n\t\t\t\toption.classList.remove('haipe-custom-select__option--selected');\n\t\t\t});\n\t\t\t\n\t\t\t\/\/ Add selected class to the chosen option\n\t\t\tconst selectedOption = this.dropdown.querySelector(`[data-value=\"${value}\"]`);\n\t\t\tif (selectedOption) {\n\t\t\t\tselectedOption.classList.add('haipe-custom-select__option--selected');\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ Close dropdown for single selection\n\t\t\tthis.closeDropdown();\n\t\t}\n\t\t\n\t\t\/\/ Update display\n\t\tthis.updateDisplay();\n\t\t\n\t\t\/\/ Update original select\n\t\tthis.updateOriginalSelect();\n\t\t\n\t\t\/\/ Trigger change event\n\t\tthis.triggerChangeEvent();\n\t}\n\t\n\tupdateDisplay() {\n\t\tif (this.isMultiple) {\n\t\t\t\/\/ Handle multiple selection display\n\t\t\tif (this.selectedValues.length > 0) {\n\t\t\t\t\/\/ Clear selected container\n\t\t\t\tthis.selectedContainer.innerHTML = '';\n\t\t\t\t\n\t\t\t\t\/\/ Add selected items as chips\n\t\t\t\tthis.selectedTexts.forEach((text, index) => {\n\t\t\t\t\tconst chip = document.createElement('div');\n\t\t\t\t\tchip.className = 'haipe-custom-select__chip';\n\t\t\t\t\tchip.innerHTML = `\n\t\t\t\t\t\t<span class=\"haipe-custom-select__chip-text\">${text}<\/span>\n\t\t\t\t\t\t<button type=\"button\" class=\"haipe-custom-select__chip-remove\" data-value=\"${this.selectedValues[index]}\">\n\t\t\t\t\t\t\t<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n\t\t\t\t\t\t\t\t<path d=\"M9 3L3 9M3 3L9 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n\t\t\t\t\t\t\t<\/svg>\n\t\t\t\t\t\t<\/button>\n\t\t\t\t\t`;\n\t\t\t\t\t\n\t\t\t\t\t\/\/ Add remove event listener\n\t\t\t\t\tconst removeBtn = chip.querySelector('.haipe-custom-select__chip-remove');\n\t\t\t\t\tremoveBtn.addEventListener('click', (e) => {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tthis.removeSelectedItem(this.selectedValues[index]);\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\tthis.selectedContainer.appendChild(chip);\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tthis.input.style.display = 'none';\n\t\t\t\tthis.selectedContainer.classList.add('has-selection');\n\t\t\t} else {\n\t\t\t\tthis.selectedContainer.innerHTML = '';\n\t\t\t\tthis.input.style.display = 'block';\n\t\t\t\tthis.input.value = '';\n\t\t\t\tthis.selectedContainer.classList.remove('has-selection');\n\t\t\t}\n\t\t} else {\n\t\t\t\/\/ Handle single selection display\n\t\t\tif (this.selectedText && this.selectedValue && this.selectedValue !== '') {\n\t\t\t\tthis.input.value = this.selectedText;\n\t\t\t\tthis.input.classList.add('border-haipe_purple-500');\n\t\t\t\tthis.input.classList.remove('placeholder-shown');\n\t\t\t} else {\n\t\t\t\tthis.input.value = '';\n\t\t\t\tthis.input.classList.remove('border-haipe_purple-500');\n\t\t\t\tthis.input.classList.add('placeholder-shown');\n\t\t\t}\n\t\t}\n\t}\n\t\n\tremoveSelectedItem(value) {\n\t\tconst index = this.selectedValues.indexOf(value);\n\t\tif (index > -1) {\n\t\t\tthis.selectedValues.splice(index, 1);\n\t\t\tthis.selectedTexts.splice(index, 1);\n\t\t\t\n\t\t\t\/\/ Update option visual state\n\t\t\tconst selectedOption = this.dropdown.querySelector(`[data-value=\"${value}\"]`);\n\t\t\tif (selectedOption) {\n\t\t\t\tselectedOption.classList.remove('haipe-custom-select__option--selected');\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ Update display\n\t\t\tthis.updateDisplay();\n\t\t\t\n\t\t\t\/\/ Update original select\n\t\t\tthis.updateOriginalSelect();\n\t\t\t\n\t\t\t\/\/ Trigger change event\n\t\t\tthis.triggerChangeEvent();\n\t\t}\n\t}\n\t\n\tupdateOriginalSelect() {\n\t\tif (this.isMultiple) {\n\t\t\t\/\/ Use the stored reference to the original select element\n\t\t\tconst originalSelect = this.originalSelectElement || this.originalSelect;\n\t\t\t\n\t\t\t\/\/ Check if the select has options, if not, restore them\n\t\t\tif (originalSelect.options.length === 0) {\n\t\t\t\tthis.restoreOriginalSelectOptions(originalSelect);\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ Clear all selections first\n\t\t\tArray.from(originalSelect.options).forEach(option => {\n\t\t\t\toption.selected = false;\n\t\t\t});\n\t\t\t\n\t\t\t\/\/ Set selected options\n\t\t\tthis.selectedValues.forEach(value => {\n\t\t\t\t\/\/ Try exact match first\n\t\t\t\tlet option = originalSelect.querySelector(`option[value=\"${value}\"]`);\n\t\t\t\t\n\t\t\t\t\/\/ If not found, try to find by text content (trimmed)\n\t\t\t\tif (!option) {\n\t\t\t\t\tconst options = Array.from(originalSelect.options);\n\t\t\t\t\toption = options.find(opt => opt.textContent.trim() === value.trim());\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\/\/ If still not found, try to find by value (trimmed)\n\t\t\t\tif (!option) {\n\t\t\t\t\tconst options = Array.from(originalSelect.options);\n\t\t\t\t\toption = options.find(opt => opt.value.trim() === value.trim());\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (option) {\n\t\t\t\t\toption.selected = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\t\/\/ Force trigger change event for multiple select\n\t\t\tconst changeEvent = new Event('change', { bubbles: true });\n\t\t\toriginalSelect.dispatchEvent(changeEvent);\n\t\t\t\n\t\t\t\/\/ Also trigger input event for better compatibility\n\t\t\tconst inputEvent = new Event('input', { bubbles: true });\n\t\t\toriginalSelect.dispatchEvent(inputEvent);\n\t\t\t\n\t\t\t\/\/ Trigger custom event for Fluent Forms\n\t\t\tconst fluentEvent = new CustomEvent('fluentform:field:change', { \n\t\t\t\tbubbles: true, \n\t\t\t\tdetail: { \n\t\t\t\t\tfield: originalSelect,\n\t\t\t\t\tvalue: this.selectedValues \n\t\t\t\t} \n\t\t\t});\n\t\t\toriginalSelect.dispatchEvent(fluentEvent);\n\t\t} else {\n\t\t\tconst originalSelect = this.originalSelectElement || this.originalSelect;\n\t\t\toriginalSelect.value = this.selectedValue;\n\t\t}\n\t}\n\t\n\trestoreOriginalSelectOptions(originalSelect) {\n\t\t\/\/ Clear existing options first\n\t\toriginalSelect.innerHTML = '';\n\t\t\n\t\t\/\/ Restore from stored original options\n\t\tthis.originalOptions.forEach(optData => {\n\t\t\tconst option = document.createElement('option');\n\t\t\toption.value = optData.value;\n\t\t\toption.textContent = optData.text;\n\t\t\toption.selected = optData.selected;\n\t\t\t\n\t\t\t\/\/ Add to original select\n\t\t\toriginalSelect.appendChild(option);\n\t\t});\n\t}\n\t\n\ttriggerChangeEvent() {\n\t\t\/\/ Create and dispatch change event\n\t\tconst originalSelect = this.originalSelectElement || this.originalSelect;\n\t\tconst event = new Event('change', { bubbles: true });\n\t\toriginalSelect.dispatchEvent(event);\n\t}\n\t\n\t\/\/ Public methods\n\tsetValue(value) {\n\t\tif (this.isMultiple) {\n\t\t\t\/\/ For multiple select, value should be an array\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\/\/ Clear current selections\n\t\t\t\tthis.selectedValues = [];\n\t\t\t\tthis.selectedTexts = [];\n\t\t\t\t\n\t\t\t\t\/\/ Add new selections\n\t\t\t\tconst originalSelect = this.originalSelectElement || this.originalSelect;\n\t\t\t\tvalue.forEach(val => {\n\t\t\t\t\tconst option = originalSelect.querySelector(`option[value=\"${val}\"]`);\n\t\t\t\t\tif (option) {\n\t\t\t\t\t\tthis.selectedValues.push(option.value);\n\t\t\t\t\t\tthis.selectedTexts.push(option.textContent);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t\/\/ Update display and original select\n\t\t\t\tthis.updateDisplay();\n\t\t\t\tthis.updateOriginalSelect();\n\t\t\t\tthis.createOptions(); \/\/ Recreate options to update visual state\n\t\t\t}\n\t\t} else {\n\t\t\tconst originalSelect = this.originalSelectElement || this.originalSelect;\n\t\t\tconst option = originalSelect.querySelector(`option[value=\"${value}\"]`);\n\t\t\tif (option) {\n\t\t\t\tthis.selectOption(option.value, option.textContent);\n\t\t\t}\n\t\t}\n\t}\n\t\n\tgetValue() {\n\t\tif (this.isMultiple) {\n\t\t\treturn this.selectedValues;\n\t\t} else {\n\t\t\treturn this.selectedValue;\n\t\t}\n\t}\n\t\n\tdisable() {\n\t\tthis.input.classList.add('haipe-custom-select__input--disabled');\n\t\tthis.input.disabled = true;\n\t\tconst originalSelect = this.originalSelectElement || this.originalSelect;\n\t\toriginalSelect.disabled = true;\n\t}\n\t\n\tenable() {\n\t\tthis.input.classList.remove('haipe-custom-select__input--disabled');\n\t\tthis.input.disabled = false;\n\t\tconst originalSelect = this.originalSelectElement || this.originalSelect;\n\t\toriginalSelect.disabled = false;\n\t}\n}\n\n\/\/ Function to wait for element to exist\nfunction waitForElement(selector, callback, maxWaitTime = 10000) {\n\tconst startTime = Date.now();\n\t\n\tfunction checkElement() {\n\t\tconst element = document.querySelector(selector);\n\t\t\n\t\tif (element) {\n\t\t\tcallback(element);\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t\/\/ Check if we've exceeded max wait time\n\t\tif (Date.now() - startTime > maxWaitTime) {\n\t\t\tconsole.warn(`Element ${selector} not found after ${maxWaitTime}ms`);\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t\/\/ Check again in 100ms\n\t\tsetTimeout(checkElement, 100);\n\t}\n\t\n\tcheckElement();\n}\n\n\/\/ Function to initialize custom selects when DOM is ready\ndocument.addEventListener('DOMContentLoaded', function() {\n\tinitializeCustomSelects();\n\tinitializeSuccessMessage();\n\thandleSubjectParameter();\n\tinterceptSubjectLinks();\n\tinterceptFormSubmission();\n});\n\n\/\/ Function to intercept form submission and ensure sync\nfunction interceptFormSubmission() {\n\t\/\/ Listen for form submission\n\tdocument.addEventListener('submit', function(event) {\n\t\tconst form = event.target;\n\t\t\n\t\t\/\/ Check if it's a Fluent Forms form\n\t\tif (form.closest('.fluentform')) {\n\t\t\t\/\/ Force sync all custom selects before submission\n\t\t\tconst customSelects = form.querySelectorAll('select[data-custom-select-initialized=\"true\"]');\n\t\t\tcustomSelects.forEach(select => {\n\t\t\t\tif (select.customSelectInstance) {\n\t\t\t\t\tselect.customSelectInstance.updateOriginalSelect();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, true); \/\/ Use capture phase to intercept before Fluent Forms\n}\n\n\t\/\/ Function to initialize custom selects\nfunction initializeCustomSelects() {\n\t\/\/ Find all select elements in Fluent Forms\n\tconst fluentFormSelects = document.querySelectorAll('.fluentform select');\n\t\n\tfluentFormSelects.forEach(select => {\n\t\t\/\/ Check if it's not already converted\n\t\tif (!select.dataset.customSelectInitialized) {\n\t\t\tselect.dataset.customSelectInitialized = 'true';\n\t\t\t\n\t\t\t\/\/ For multiple selects, completely disable Choices.js\n\t\t\tif (select.hasAttribute('multiple')) {\n\t\t\t\t\/\/ Find and hide all Choices.js related elements\n\t\t\t\tconst choicesContainer = select.closest('.choices');\n\t\t\t\tif (choicesContainer) {\n\t\t\t\t\tchoicesContainer.style.display = 'none';\n\t\t\t\t\tchoicesContainer.style.visibility = 'hidden';\n\t\t\t\t\tchoicesContainer.style.opacity = '0';\n\t\t\t\t\tchoicesContainer.style.position = 'absolute';\n\t\t\t\t\tchoicesContainer.style.left = '-9999px';\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\/\/ Also hide any other Choices.js elements that might exist\n\t\t\t\tconst choicesElements = document.querySelectorAll('.choices[data-type*=\"select-multiple\"]');\n\t\t\t\tchoicesElements.forEach(el => {\n\t\t\t\t\tel.style.display = 'none';\n\t\t\t\t\tel.style.visibility = 'hidden';\n\t\t\t\t\tel.style.opacity = '0';\n\t\t\t\t\tel.style.position = 'absolute';\n\t\t\t\t\tel.style.left = '-9999px';\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t\/\/ Ensure the original select is visible for our custom select to work with\n\t\t\t\tselect.style.display = 'block';\n\t\t\t\tselect.style.visibility = 'visible';\n\t\t\t\tselect.style.opacity = '1';\n\t\t\t\tselect.style.position = 'static';\n\t\t\t\tselect.style.left = 'auto';\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ Get placeholder text - check for Fluent Forms placeholder or first option if it's a placeholder\n\t\t\tlet placeholderText = select.dataset.placeholder || select.getAttribute('placeholder') || 'Select...';\n\t\t\t\n\t\t\t\/\/ Check if first option is a placeholder (common in Fluent Forms)\n\t\t\tif (select.options[0] && (select.options[0].value === '' || select.options[0].disabled)) {\n\t\t\t\tplaceholderText = select.options[0].textContent;\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ Create custom select instance\n\t\t\tconst customSelect = new HaipeCustomSelect(select, {\n\t\t\t\tallowCustom: false,\n\t\t\t\tplaceholder: placeholderText\n\t\t\t});\n\t\t\t\n\t\t\t\/\/ Store reference for potential external access\n\t\t\tselect.customSelectInstance = customSelect;\n\t\t}\n\t});\n}\n\n\t\/\/ Function to initialize custom selects for dynamically added forms\nwindow.initializeHaipeCustomSelects = function() {\n\t\/\/ Wait for Fluent Forms to be ready\n\twaitForElement('.fluentform', function() {\n\t\tconst fluentFormSelects = document.querySelectorAll('.fluentform select:not([data-custom-select-initialized])');\n\t\t\n\t\tfluentFormSelects.forEach(select => {\n\t\t\tselect.dataset.customSelectInitialized = 'true';\n\t\t\t\n\t\t\t\/\/ For multiple selects, completely disable Choices.js\n\t\t\tif (select.hasAttribute('multiple')) {\n\t\t\t\t\/\/ Find and hide all Choices.js related elements\n\t\t\t\tconst choicesContainer = select.closest('.choices');\n\t\t\t\tif (choicesContainer) {\n\t\t\t\t\tchoicesContainer.style.display = 'none';\n\t\t\t\t\tchoicesContainer.style.visibility = 'hidden';\n\t\t\t\t\tchoicesContainer.style.opacity = '0';\n\t\t\t\t\tchoicesContainer.style.position = 'absolute';\n\t\t\t\t\tchoicesContainer.style.left = '-9999px';\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\/\/ Also hide any other Choices.js elements that might exist\n\t\t\t\tconst choicesElements = document.querySelectorAll('.choices[data-type*=\"select-multiple\"]');\n\t\t\t\tchoicesElements.forEach(el => {\n\t\t\t\t\tel.style.display = 'none';\n\t\t\t\t\tel.style.visibility = 'hidden';\n\t\t\t\t\tel.style.opacity = '0';\n\t\t\t\t\tel.style.position = 'absolute';\n\t\t\t\t\tel.style.left = '-9999px';\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t\/\/ Ensure the original select is visible for our custom select to work with\n\t\t\t\tselect.style.display = 'block';\n\t\t\t\tselect.style.visibility = 'visible';\n\t\t\t\tselect.style.opacity = '1';\n\t\t\t\tselect.style.position = 'static';\n\t\t\t\tselect.style.left = 'auto';\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ Get placeholder text - check for Fluent Forms placeholder or first option if it's a placeholder\n\t\t\tlet placeholderText = select.dataset.placeholder || select.getAttribute('placeholder') || 'Select...';\n\t\t\t\n\t\t\t\/\/ Check if first option is a placeholder (common in Fluent Forms)\n\t\t\tif (select.options[0] && (select.options[0].value === '' || select.options[0].disabled)) {\n\t\t\t\tplaceholderText = select.options[0].textContent;\n\t\t\t}\n\t\t\t\n\t\t\tconst customSelect = new HaipeCustomSelect(select, {\n\t\t\t\tallowCustom: false,\n\t\t\t\tplaceholder: placeholderText\n\t\t\t});\n\t\t\t\n\t\t\tselect.customSelectInstance = customSelect;\n\t\t});\n\t});\n};\n\n\/\/ Listen for Fluent Forms dynamic content\nif (typeof jQuery !== 'undefined') {\n\tjQuery(document).on('fluentform_loaded', function() {\n\t\t\/\/ Wait a bit for the DOM to be fully updated\n\t\tsetTimeout(function() {\n\t\t\twindow.initializeHaipeCustomSelects();\n\t\t\thandleSubjectParameter(); \/\/ Also handle subject parameter for dynamically loaded forms\n\t\t}, 100);\n\t});\n}\n\n\/\/ Function to initialize success message functionality\nfunction initializeSuccessMessage() {\n\t\/\/ Watch for success message appearance\n\tconst observer = new MutationObserver(function(mutations) {\n\t\tmutations.forEach(function(mutation) {\n\t\t\tmutation.addedNodes.forEach(function(node) {\n\t\t\t\tif (node.nodeType === 1 && node.classList && node.classList.contains('ff-message-success')) {\n\t\t\t\t\tsetupSuccessMessage(node);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t});\n\n\t\/\/ Start observing\n\tobserver.observe(document.body, {\n\t\tchildList: true,\n\t\tsubtree: true\n\t});\n}\n\n\/\/ Function to setup success message with button functionality\nfunction setupSuccessMessage(successElement) {\n\t\/\/ Find the submit again button\n\tconst submitAgainBtn = successElement.querySelector('#resendFormBtn');\n\t\n\tif (submitAgainBtn) {\n\t\tsubmitAgainBtn.addEventListener('click', function(e) {\n\t\t\te.preventDefault();\n\t\t\t\n\t\t\tconsole.log('Submit Again button clicked');\n\t\t\t\n\t\t\t\/\/ Hide the success message\n\t\t\tsuccessElement.style.display = 'none';\n\t\t\t\n\t\t\t\/\/ Find the form container\n\t\t\tconst formContainer = successElement.closest('.fluentform');\n\t\t\tif (formContainer) {\n\t\t\t\tconsole.log('Form container found:', formContainer);\n\t\t\t\t\n\t\t\t\t\/\/ Remove success state classes that might be hiding the form\n\t\t\t\tformContainer.classList.remove('ff-form-success', 'ff-submission-success');\n\t\t\t\t\n\t\t\t\t\/\/ Try to use Fluent Forms native reset if available\n\t\t\t\tif (window.FluentForm && formContainer.dataset.formId) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst formId = formContainer.dataset.formId;\n\t\t\t\t\t\tconsole.log('Trying Fluent Forms native reset for form ID:', formId);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\/\/ Try to trigger a native reset\n\t\t\t\t\t\tif (window.FluentForm.resetForm) {\n\t\t\t\t\t\t\twindow.FluentForm.resetForm(formId);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.log('Native reset failed:', error);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\/\/ Check what elements exist in the form container\n\t\t\t\tconst allElements = formContainer.querySelectorAll('*');\n\t\t\t\tconsole.log('All elements in form container:', allElements.length);\n\t\t\t\t\n\t\t\t\t\/\/ Look for hidden elements\n\t\t\t\tconst hiddenElements = formContainer.querySelectorAll('[style*=\"display: none\"], [style*=\"display:none\"], .hidden');\n\t\t\t\tconsole.log('Hidden elements found:', hiddenElements);\n\t\t\t\t\n\t\t\t\t\/\/ Try to find the original form\n\t\t\t\tconst form = formContainer.querySelector('form');\n\t\t\t\tif (form) {\n\t\t\t\t\tconsole.log('Form element found:', form);\n\t\t\t\t\tform.style.display = 'block';\n\t\t\t\t\tform.reset();\n\t\t\t\t} else {\n\t\t\t\t\tconsole.log('No form element found');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\/\/ Try to show all form-related elements that might be hidden\n\t\t\t\tconst formElements = formContainer.querySelectorAll('.ff-el-form, .ff-el-group, .ff-el-input, .ff_submit_btn_wrapper');\n\t\t\t\tconsole.log('Form elements found:', formElements);\n\t\t\t\t\n\t\t\t\tformElements.forEach(element => {\n\t\t\t\t\tif (element !== successElement) {\n\t\t\t\t\t\tconsole.log('Showing element:', element);\n\t\t\t\t\t\telement.style.display = 'block';\n\t\t\t\t\t\telement.style.visibility = 'visible';\n\t\t\t\t\t\telement.style.opacity = '1';\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t\/\/ Also try to remove any hidden classes\n\t\t\t\tformContainer.querySelectorAll('.hidden, .ff-hidden, .ff-el-hidden').forEach(el => {\n\t\t\t\t\tel.classList.remove('hidden', 'ff-hidden', 'ff-el-hidden');\n\t\t\t\t\tel.style.display = 'block';\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t\/\/ Force show all form elements with important CSS\n\t\t\t\tconst allFormElements = formContainer.querySelectorAll('[class*=\"ff-el-\"]');\n\t\t\t\tallFormElements.forEach(el => {\n\t\t\t\t\tif (el !== successElement && !el.classList.contains('ff-message-success')) {\n\t\t\t\t\t\tel.style.setProperty('display', 'block', 'important');\n\t\t\t\t\t\tel.style.setProperty('visibility', 'visible', 'important');\n\t\t\t\t\t\tel.style.setProperty('opacity', '1', 'important');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t\/\/ Try to trigger a form reset event\n\t\t\t\tconst resetEvent = new Event('reset', { bubbles: true });\n\t\t\t\tif (form) {\n\t\t\t\t\tform.dispatchEvent(resetEvent);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\/\/ Alternative: try to reload the form using Fluent Forms events\n\t\t\t\tif (typeof jQuery !== 'undefined') {\n\t\t\t\t\tjQuery(document).trigger('fluentform_reset', [formContainer]);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\/\/ Ensure all original select elements are properly hidden\n\t\t\t\tconst allSelects = formContainer.querySelectorAll('select');\n\t\t\t\tallSelects.forEach(select => {\n\t\t\t\t\tif (select.hasAttribute('multiple')) {\n\t\t\t\t\t\t\/\/ For multiple selects, keep accessible but visually hidden\n\t\t\t\t\t\tselect.style.position = 'absolute';\n\t\t\t\t\t\tselect.style.left = '-9999px';\n\t\t\t\t\t\tselect.style.opacity = '0';\n\t\t\t\t\t\tselect.style.pointerEvents = 'none';\n\t\t\t\t\t\tselect.style.zIndex = '-1';\n\t\t\t\t\t\tselect.style.visibility = 'hidden';\n\t\t\t\t\t\tselect.style.display = 'block'; \/\/ Keep in DOM for form submission\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\/\/ For single selects, hide completely\n\t\t\t\t\t\tselect.style.display = 'none';\n\t\t\t\t\t\tselect.style.visibility = 'hidden';\n\t\t\t\t\t\tselect.style.opacity = '0';\n\t\t\t\t\t\tselect.style.position = 'absolute';\n\t\t\t\t\t\tselect.style.left = '-9999px';\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tconsole.log('Form reset completed');\n\t\t\t}\n\t\t});\n\t}\n}\n\n\/\/ Function to intercept subject links and prevent page reload\nfunction interceptSubjectLinks() {\n\t\/\/ Listen for clicks on links with subject parameter\n\tdocument.addEventListener('click', function(event) {\n\t\tconst link = event.target.closest('a[href*=\"subject=\"]');\n\t\t\n\t\tif (link && link.href.includes('subject=')) {\n\t\t\t\/\/ Prevent default link behavior (page reload)\n\t\t\tevent.preventDefault();\n\t\t\t\n\t\t\t\/\/ Extract subject parameter from URL\n\t\t\tconst url = new URL(link.href);\n\t\t\tconst subjectParam = url.searchParams.get('subject');\n\t\t\t\n\t\t\tif (subjectParam) {\n\t\t\t\t\/\/ Update current page URL without reload\n\t\t\t\tupdateUrlParameter('subject', subjectParam);\n\t\t\t\t\n\t\t\t\t\/\/ Scroll to form if there's a hash\n\t\t\t\tif (url.hash) {\n\t\t\t\t\tconst targetElement = document.querySelector(url.hash);\n\t\t\t\t\tif (targetElement) {\n\t\t\t\t\t\ttargetElement.scrollIntoView({ behavior: 'smooth' });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\/\/ Handle subject parameter\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\thandleSubjectParameter();\n\t\t\t\t}, 100);\n\t\t\t}\n\t\t}\n\t});\n}\n\n\/\/ Function to update URL parameter without page reload\nfunction updateUrlParameter(param, value) {\n\tconst currentUrl = new URL(window.location);\n\t\n\tif (value) {\n\t\tcurrentUrl.searchParams.set(param, value);\n\t} else {\n\t\tcurrentUrl.searchParams.delete(param);\n\t}\n\t\n\t\/\/ Update URL without page reload\n\twindow.history.pushState({}, '', currentUrl.toString());\n\t\n\t\/\/ Update data attribute\n\tconst formContent = document.querySelector('.contact-form-block__form-content');\n\tif (formContent) {\n\t\tif (value) {\n\t\t\tformContent.setAttribute('data-subject-param', value);\n\t\t} else {\n\t\t\tformContent.removeAttribute('data-subject-param');\n\t\t}\n\t}\n}\n\n\/\/ Function to handle subject parameter from URL\nfunction handleSubjectParameter() {\n\t\/\/ Find form content with subject parameter\n\tconst formContent = document.querySelector('.contact-form-block__form-content[data-subject-param]');\n\t\n\tif (!formContent) {\n\t\treturn; \/\/ No subject parameter found\n\t}\n\t\n\tconst subjectParam = formContent.getAttribute('data-subject-param');\n\t\n\t\/\/ Wait for FluentForm to be ready and custom selects to be initialized\n\twaitForElement('.fluentform', function() {\n\t\tsetTimeout(function() {\n\t\t\t\/\/ Find all select elements in the form\n\t\t\tconst formSelects = formContent.querySelectorAll('.fluentform select');\n\t\t\t\n\t\t\tformSelects.forEach(function(select) {\n\t\t\t\t\n\t\t\t\t\/\/ Look for select with options that match our subject value\n\t\t\t\tconst options = Array.from(select.options);\n\t\t\t\tconst matchingOption = options.find(option => {\n\t\t\t\t\tconst optionValue = option.value.trim();\n\t\t\t\t\t\n\t\t\t\t\t\/\/ Match only with the option value (exact match)\n\t\t\t\t\treturn optionValue === subjectParam;\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tif (matchingOption && matchingOption.value !== '') {\t\t\t\t\t\n\t\t\t\t\t\/\/ Set the original select value\n\t\t\t\t\tselect.value = matchingOption.value;\n\t\t\t\t\t\n\t\t\t\t\t\/\/ If custom select is already initialized, update it\n\t\t\t\t\tif (select.customSelectInstance) {\n\t\t\t\t\t\tselect.customSelectInstance.setValue(matchingOption.value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\/\/ If not initialized yet, wait a bit and try again\n\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\tif (select.customSelectInstance) {\n\t\t\t\t\t\t\t\tselect.customSelectInstance.setValue(matchingOption.value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 500);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\/\/ Trigger change event to notify any other scripts\n\t\t\t\t\tconst changeEvent = new Event('change', { bubbles: true });\n\t\t\t\t\tselect.dispatchEvent(changeEvent);\n\t\t\t\t}\n\t\t\t});\n\t\t}, 200);\n\t});\n}\n\n\/\/ Listen for Fluent Forms events to handle form reset and validation\nif (typeof jQuery !== 'undefined') {\n\tjQuery(document).on('fluentform_submission_completed', function(event, data) {\n\t\t\/\/ Store reference to the form for potential reset\n\t\tif (data && data.form) {\n\t\t\tdata.form.haipeFormData = {\n\t\t\t\toriginalForm: data.form.querySelector('form'),\n\t\t\t\tformElements: data.form.querySelectorAll('.ff-el-form, .ff-el-group')\n\t\t\t};\n\t\t}\n\t});\n\t\n\t\/\/ Listen for form validation events\n\tjQuery(document).on('fluentform_validation_start', function(event, form) {\n\t\t\/\/ Force sync all custom selects before validation\n\t\tconst customSelects = form.querySelectorAll('select[data-custom-select-initialized=\"true\"]');\n\t\tcustomSelects.forEach(select => {\n\t\t\tif (select.customSelectInstance) {\n\t\t\t\tselect.customSelectInstance.updateOriginalSelect();\n\t\t\t}\n\t\t});\n\t});\n\t\n\t\/\/ Listen for field validation\n\tjQuery(document).on('fluentform_field_validation', function(event, field, errors) {\n\t\tif (field.tagName === 'SELECT' && field.hasAttribute('multiple')) {\n\t\t\t\/\/ Check if the field has a custom select instance\n\t\t\tif (field.customSelectInstance) {\n\t\t\t\tconst selectedValues = field.customSelectInstance.getValue();\n\t\t\t\t\n\t\t\t\t\/\/ If we have values but validation fails, force sync\n\t\t\t\tif (selectedValues && selectedValues.length > 0) {\n\t\t\t\t\tfield.customSelectInstance.updateOriginalSelect();\n\t\t\t\t\t\n\t\t\t\t\t\/\/ Trigger validation again\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tjQuery(field).trigger('change');\n\t\t\t\t\t}, 100);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}\n<\/script>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":15,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"folder":[],"class_list":["post-313","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/haipestudio.com\/en\/wp-json\/wp\/v2\/pages\/313","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/haipestudio.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/haipestudio.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/haipestudio.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/haipestudio.com\/en\/wp-json\/wp\/v2\/comments?post=313"}],"version-history":[{"count":0,"href":"https:\/\/haipestudio.com\/en\/wp-json\/wp\/v2\/pages\/313\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/haipestudio.com\/en\/wp-json\/wp\/v2\/pages\/15"}],"wp:attachment":[{"href":"https:\/\/haipestudio.com\/en\/wp-json\/wp\/v2\/media?parent=313"}],"wp:term":[{"taxonomy":"folder","embeddable":true,"href":"https:\/\/haipestudio.com\/en\/wp-json\/wp\/v2\/folder?post=313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}