{"id":3342,"date":"2023-10-10T16:14:37","date_gmt":"2023-10-10T15:14:37","guid":{"rendered":"https:\/\/www.mymxdata.com\/?page_id=3342"},"modified":"2025-09-28T14:40:56","modified_gmt":"2025-09-28T13:40:56","slug":"envisage","status":"publish","type":"page","link":"https:\/\/www.mymxdata.com\/en-us\/case-studies\/envisage\/","title":{"rendered":"Envisage | MX"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3342\" class=\"elementor elementor-3342\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7d5b3b0 e-flex e-con-boxed e-con e-parent\" data-id=\"7d5b3b0\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6484e74 elementor-widget elementor-widget-html\" data-id=\"6484e74\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"case-study-container\">\r\n  <!-- Hero Section -->\r\n  <div class=\"case-study-hero-section\">\r\n    <div class=\"case-study-floating-elements\">\r\n      <div class=\"case-study-floating-circle\"><\/div>\r\n      <div class=\"case-study-floating-circle\"><\/div>\r\n      <div class=\"case-study-floating-circle\"><\/div>\r\n    <\/div>\r\n    \r\n    <div class=\"case-study-container-inner\">\r\n      <div class=\"case-study-hero-content\">\r\n        <div class=\"case-study-hero-text case-study-fade-in\">\r\n          <h1 class=\"case-study-hero-title\">Building Success with a Custom Engineering Services Partner<\/h1>\r\n          <p class=\"case-study-hero-subtitle\">Envisage Group\u2019s Digital Journey<\/p>\r\n          <p class=\"case-study-hero-description\">\r\n            See how Envisage Group grew into one of the most successful custom engineering service providers by moving away from portable drives and shaky FTP sites. With Majenta\u2019s MX platform, they now deliver reliable, polished solutions to leading OEMs and global vehicle makers.\r\n          <\/p>\r\n        <\/div>\r\n        \r\n        <div class=\"case-study-cta-card case-study-fade-in\">\r\n          <h2 class=\"case-study-cta-title\">Download the 6-in-1 Case Study Pack<\/h2>\r\n          <p class=\"case-study-cta-subtitle\">\r\n            In a rush? Grab a compact pack of highlights showing MX in action across automotive manufacturing, including real challenges solved. You\u2019ll see why users score MX an impressive 9.5 out of 10.\r\n          <\/p>\r\n          <button class=\"case-study-cta-button\" onclick=\"openCaseStudyModal()\">Download Now<\/button>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n  \r\n  <!-- Stats Section -->\r\n  <div class=\"case-study-content-section\">\r\n    <div class=\"case-study-container-inner\">\r\n      <div class=\"case-study-stats-grid case-study-fade-in\">\r\n        <div class=\"case-study-stat-card\">\r\n          <div class=\"case-study-stat-icon\">\ud83c\udfd7\ufe0f<\/div>\r\n          <div class=\"case-study-stat-number\">100%<\/div>\r\n          <div class=\"case-study-stat-label\">Custom Solutions<\/div>\r\n        <\/div>\r\n        <div class=\"case-study-stat-card\">\r\n          <div class=\"case-study-stat-icon\">\ud83d\ude97<\/div>\r\n          <div class=\"case-study-stat-number\">OEM<\/div>\r\n          <div class=\"case-study-stat-label\">Client Focus<\/div>\r\n        <\/div>\r\n        <div class=\"case-study-stat-card\">\r\n          <div class=\"case-study-stat-icon\">\u26a1<\/div>\r\n          <div class=\"case-study-stat-number\">Fast<\/div>\r\n          <div class=\"case-study-stat-label\">Data Exchange<\/div>\r\n        <\/div>\r\n        <div class=\"case-study-stat-card\">\r\n          <div class=\"case-study-stat-icon\">\ud83d\udd12<\/div>\r\n          <div class=\"case-study-stat-number\">Secure<\/div>\r\n          <div class=\"case-study-stat-label\">File Sharing<\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n  \r\n  <!-- Content Sections -->\r\n  <div class=\"case-study-content-section\">\r\n    <div class=\"case-study-container-inner\">\r\n      <div class=\"case-study-section-card case-study-fade-in\">\r\n        <h2 class=\"case-study-section-title\">Introducing MX<\/h2>\r\n        <p class=\"case-study-section-text\">\r\n          Envisage wanted to live up to its ambition of being the most successful custom engineering services company worldwide. Carrying data on portable drives or passing files through FTP was clunky and often left clients locked out. MX offered a browser-based way to share and track files, so the team gave it a try. Within days they noticed how much faster large file transfers became, and they felt more organized as a company.\r\n        <\/p>\r\n      <\/div>\r\n      \r\n      <div class=\"case-study-quote-card case-study-fade-in\">\r\n        <p class=\"case-study-quote-text\">\r\n          I\u2019d recommend MX to anyone who needs to move data securely, without delays or fuss.\r\n        <\/p>\r\n        <p class=\"case-study-quote-author\">\u2013 Daniel Francis, Project Engineer at Envisage Group<\/p>\r\n      <\/div>\r\n      \r\n      <div class=\"case-study-section-card case-study-fade-in\">\r\n        <h2 class=\"case-study-section-title\">Expanding Collaboration with Confidence<\/h2>\r\n        <p class=\"case-study-section-text\">\r\n          Since rolling out MX, Envisage has enjoyed strong results with this trusted data-sharing tool. Clients like being able to access the latest updates almost instantly, and the ease of pushing information back to Envisage has strengthened working relationships. Expanding their network was smooth because of the straightforward invitation and enrollment process.\r\n        <\/p>\r\n        <p class=\"case-study-section-text\">\r\n          Daniel adds, \u201cMX makes it possible for nearly anyone in the business to exchange data without a complicated sign-up. Having the ability to track activity and see a live record of transfers makes it even more useful.\u201d\r\n        <\/p>\r\n      <\/div>\r\n      \r\n      <div class=\"case-study-quote-card case-study-fade-in\">\r\n        <p class=\"case-study-quote-text\">\r\n          MX changed the way we handle file transfers. It\u2019s quick, secure and dependable.\r\n        <\/p>\r\n        <p class=\"case-study-quote-author\">\u2013 Daniel Francis, Project Engineer at Envisage Group<\/p>\r\n      <\/div>\r\n      \r\n      <div class=\"case-study-language-switcher case-study-fade-in\">\r\n        <p style=\"margin: 0; color: #666; font-weight: 500; align-self: center;\">View In:<\/p>\r\n        <a href=\"https:\/\/www.mymxdata.com\/en-gb\/case-studies\/envisage\/\" class=\"case-study-lang-button\">\r\n          \ud83c\uddec\ud83c\udde7 English (GB)\r\n        <\/a>\r\n        <a href=\"https:\/\/www.mymxdata.com\/en-us\/case-studies\/envisage\/\" class=\"case-study-lang-button\">\r\n          \ud83c\uddfa\ud83c\uddf8 English (US)\r\n        <\/a>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- Modal for Form -->\r\n<div id=\"caseStudyModal\" class=\"case-study-modal\">\r\n  <div class=\"case-study-modal-content\">\r\n    <span class=\"case-study-modal-close\" onclick=\"closeCaseStudyModal()\">&times;<\/span>\r\n    <script>\nvar gform;gform||(document.addEventListener(\"gform_main_scripts_loaded\",function(){gform.scriptsLoaded=!0}),document.addEventListener(\"gform\/theme\/scripts_loaded\",function(){gform.themeScriptsLoaded=!0}),window.addEventListener(\"DOMContentLoaded\",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>\"function\"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn(\"The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1.\"),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener(\"gform_main_scripts_loaded\",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener(\"gform\/theme\/scripts_loaded\",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener(\"DOMContentLoaded\",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook(\"action\",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook(\"filter\",o,r,e,t)},doAction:function(o){gform.doHook(\"action\",o,arguments)},applyFilters:function(o){return gform.doHook(\"filter\",o,arguments)},removeAction:function(o,r){gform.removeHook(\"action\",o,r)},removeFilter:function(o,r,e){gform.removeHook(\"filter\",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+\"_\"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){\"function\"!=typeof(t=o.callable)&&(t=window[t]),\"action\"==r?t.apply(null,e):e[0]=t.apply(null,e)})),\"filter\"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});\n<\/script>\n\n                <div class='gf_browser_gecko gform_wrapper gravity-theme gform-theme--no-framework' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_7' ><div id='gf_7' class='gform_anchor' tabindex='-1'><\/div>\n                        <div class='gform_heading'>\n                            <p class='gform_description'>Short on time? Access a condensed key points package showing MX use cases and 'challenges solved' from across automotive manufacturing. Find out why users rate MX 9.5 out of 10.<\/p>\n                        <\/div><form method='post' enctype='multipart\/form-data' target='gform_ajax_frame_7' id='gform_7'  action='\/en-us\/wp-json\/wp\/v2\/pages\/3342#gf_7' data-formid='7' novalidate> \r\n <input type='hidden' class='gforms-pum' value='{\"closepopup\":false,\"closedelay\":0,\"openpopup\":false,\"openpopup_id\":0}' \/>\n                        <div class='gform-body gform_body'><div id='gform_fields_7' class='gform_fields top_label form_sublabel_above description_below validation_below'><fieldset id=\"field_7_1\" class=\"gfield gfield--type-name gfield--input-type-name gfield_contains_required field_sublabel_above gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><legend class='gfield_label gform-field-label gfield_label_before_complex' >Your Name<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/legend><div class='ginput_complex ginput_container ginput_container--name no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gform-grid-row' id='input_7_1'>\n                            \n                            <span id='input_7_1_3_container' class='name_first gform-grid-col gform-grid-col--size-auto' >\n                                                    <label for='input_7_1_3' class='gform-field-label gform-field-label--type-sub '>First<\/label>\n                                                    <input type='text' name='input_1.3' id='input_7_1_3' value=''   aria-required='true'    autocomplete=\"given-name\" \/>\n                                                <\/span>\n                            \n                            <span id='input_7_1_6_container' class='name_last gform-grid-col gform-grid-col--size-auto' >\n                                                            <label for='input_7_1_6' class='gform-field-label gform-field-label--type-sub '>Last<\/label>\n                                                            <input type='text' name='input_1.6' id='input_7_1_6' value=''   aria-required='true'    autocomplete=\"family-name\" \/>\n                                                        <\/span>\n                            \n                        <\/div><\/fieldset><div id=\"field_7_16\" class=\"gfield gfield--type-text gfield--input-type-text gfield--width-full gfield_contains_required field_sublabel_above gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_7_16'>Company<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_text'><input name='input_16' id='input_7_16' type='text' value='' class='large'     aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/div><div id=\"field_7_2\" class=\"gfield gfield--type-email gfield--input-type-email gfield--width-full gfield_contains_required field_sublabel_above gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_7_2'>Your Email Address<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_email'>\n                            <input name='input_2' id='input_7_2' type='email' value='' class='large'    aria-required=\"true\" aria-invalid=\"false\"  \/>\n                        <\/div><\/div><div id=\"field_7_5\" class=\"gfield gfield--type-phone gfield--input-type-phone gfield--width-full gfield_contains_required field_sublabel_above gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_7_5'>Phone Number<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_phone'><input name='input_5' id='input_7_5' type='tel' value='' class='large'   aria-required=\"true\" aria-invalid=\"false\"  autocomplete=\"tel\" \/><\/div><\/div><div id=\"field_7_18\" class=\"gfield gfield--type-text gfield--input-type-text gfield--width-full field_sublabel_above gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_7_18'>Anti-Spam: What city is the capital of France?<\/label><div class='ginput_container ginput_container_text'><input name='input_18' id='input_7_18' type='text' value='' class='large'      aria-invalid=\"false\"   \/><\/div><\/div><\/div><\/div>\n        <div class='gform-footer gform_footer top_label'> <input type='submit' id='gform_submit_button_7' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' value='Submit'  \/> <input type='hidden' name='gform_ajax' value='form_id=7&amp;title=&amp;description=1&amp;tabindex=0&amp;theme=gravity-theme&amp;styles=[]&amp;hash=53ab426513a46262eb0a905482c5ba80' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_7' value='iframe' \/>\n            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_7' id='gform_theme_7' value='gravity-theme' \/>\n            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_7' id='gform_style_settings_7' value='[]' \/>\n            <input type='hidden' class='gform_hidden' name='is_submit_7' value='1' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submit' value='7' \/>\n            \n            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' \/>\n            <input type='hidden' class='gform_hidden' name='state_7' value='WyJbXSIsImNhNTk1Y2IzNTY5NzQ5NmIxN2U5YzczYjRkNTVmOTlmIl0=' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_7' id='gform_target_page_number_7' value='0' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_7' id='gform_source_page_number_7' value='1' \/>\n            <input type='hidden' name='gform_field_values' value='' \/>\n            \n        <\/div>\n                        <\/form>\n                        <\/div>\n\t\t                <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_7' id='gform_ajax_frame_7' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'><\/iframe>\n\t\t                <script>\ngform.initializeOnLoaded( function() {gformInitSpinner( 7, 'https:\/\/www.mymxdata.com\/en-us\/wp-content\/plugins\/gravityforms\/images\/spinner.svg', true );jQuery('#gform_ajax_frame_7').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_7');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_7').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_7').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_7').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_7').removeClass('gform_validation_error');}setTimeout( function() { \/* delay the scroll by 50 milliseconds to fix a bug in chrome *\/ jQuery(document).scrollTop(jQuery('#gform_wrapper_7').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_7').val();gformInitSpinner( 7, 'https:\/\/www.mymxdata.com\/en-us\/wp-content\/plugins\/gravityforms\/images\/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [7, current_page]);window['gf_submitting_7'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_7').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_7').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [7]);window['gf_submitting_7'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_7').text());}else{jQuery('#gform_7').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger(\"gform_pre_post_render\", [{ formId: \"7\", currentPage: \"current_page\", abort: function() { this.preventDefault(); } }]);        if (event && event.defaultPrevented) {                return;        }        const gformWrapperDiv = document.getElementById( \"gform_wrapper_7\" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( \"span\" );            visibilitySpan.id = \"gform_visibility_test_7\";            gformWrapperDiv.insertAdjacentElement( \"afterend\", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( \"gform_visibility_test_7\" );        let postRenderFired = false;        function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 7, current_page );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );} );\n<\/script>\n\r\n  <\/div>\r\n<\/div>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1471439 elementor-widget elementor-widget-html\" data-id=\"1471439\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\r\n\/\/ Modal functionality\r\nfunction openCaseStudyModal() {\r\n  document.getElementById('caseStudyModal').style.display = 'block';\r\n  document.body.style.overflow = 'hidden'; \/\/ Prevent background scrolling\r\n}\r\n\r\nfunction closeCaseStudyModal() {\r\n  document.getElementById('caseStudyModal').style.display = 'none';\r\n  document.body.style.overflow = 'auto'; \/\/ Restore scrolling\r\n}\r\n\r\n\/\/ Close modal when clicking outside of it\r\nwindow.onclick = function(event) {\r\n  const modal = document.getElementById('caseStudyModal');\r\n  if (event.target === modal) {\r\n    closeCaseStudyModal();\r\n  }\r\n}\r\n\r\n\/\/ Close modal with escape key\r\ndocument.addEventListener('keydown', function(event) {\r\n  if (event.key === 'Escape') {\r\n    closeCaseStudyModal();\r\n  }\r\n});\r\n\r\n\/\/ Intersection Observer for fade-in animations\r\nconst caseStudyObserverOptions = {\r\n  threshold: 0.1,\r\n  rootMargin: '0px 0px -50px 0px'\r\n};\r\n\r\nconst caseStudyObserver = new IntersectionObserver((entries) => {\r\n  entries.forEach(entry => {\r\n    if (entry.isIntersecting) {\r\n      entry.target.style.animationDelay = '0.2s';\r\n      entry.target.classList.add('case-study-fade-in');\r\n    }\r\n  });\r\n}, caseStudyObserverOptions);\r\n\r\n\/\/ Observe all elements with fade-in class\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n  const fadeElements = document.querySelectorAll('.case-study-fade-in');\r\n  fadeElements.forEach(el => caseStudyObserver.observe(el));\r\n  \r\n  \/\/ Add smooth scrolling for better UX\r\n  document.documentElement.style.scrollBehavior = 'smooth';\r\n  \r\n  \/\/ Enhanced hover effects for cards\r\n  const cards = document.querySelectorAll('.case-study-section-card, .case-study-stat-card');\r\n  cards.forEach(card => {\r\n    card.addEventListener('mouseenter', () => {\r\n      card.style.transform = 'translateY(-8px) scale(1.02)';\r\n    });\r\n    \r\n    card.addEventListener('mouseleave', () => {\r\n      card.style.transform = 'translateY(0) scale(1)';\r\n    });\r\n  });\r\n});\r\n\r\n\/\/ Parallax effect for floating elements\r\nwindow.addEventListener('scroll', () => {\r\n  const scrolled = window.pageYOffset;\r\n  const rate = scrolled * -0.5;\r\n  const floatingElements = document.querySelector('.case-study-floating-elements');\r\n  if (floatingElements) {\r\n    floatingElements.style.transform = `translateY(${rate}px)`;\r\n  }\r\n});\r\n\r\n\/\/ Add loading state management\r\nwindow.addEventListener('load', () => {\r\n  document.body.classList.add('loaded');\r\n});\r\n\r\n\/\/ Handle form submission success (if needed for tracking)\r\ndocument.addEventListener('gform_confirmation_loaded', function(event) {\r\n  \/\/ Close modal after successful form submission\r\n  setTimeout(() => {\r\n    closeCaseStudyModal();\r\n  }, 2000); \/\/ Close after 2 seconds to show confirmation\r\n});\r\n\r\n\/\/ Smooth scroll enhancement\r\ndocument.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\r\n  anchor.addEventListener('click', function (e) {\r\n    e.preventDefault();\r\n    const target = document.querySelector(this.getAttribute('href'));\r\n    if (target) {\r\n      target.scrollIntoView({\r\n        behavior: 'smooth',\r\n        block: 'start'\r\n      });\r\n    }\r\n  });\r\n});\r\n\r\n\/\/ Add enhanced button click feedback\r\ndocument.addEventListener('click', function(e) {\r\n  if (e.target.classList.contains('case-study-cta-button')) {\r\n    \/\/ Add ripple effect\r\n    const button = e.target;\r\n    const ripple = document.createElement('span');\r\n    const rect = button.getBoundingClientRect();\r\n    const size = Math.max(rect.width, rect.height);\r\n    const x = e.clientX - rect.left - size \/ 2;\r\n    const y = e.clientY - rect.top - size \/ 2;\r\n    \r\n    ripple.style.cssText = `\r\n      position: absolute;\r\n      border-radius: 50%;\r\n      background: rgba(255, 255, 255, 0.3);\r\n      transform: scale(0);\r\n      animation: case-study-ripple 0.6s ease-out;\r\n      left: ${x}px;\r\n      top: ${y}px;\r\n      width: ${size}px;\r\n      height: ${size}px;\r\n    `;\r\n    \r\n    button.style.position = 'relative';\r\n    button.style.overflow = 'hidden';\r\n    button.appendChild(ripple);\r\n    \r\n    setTimeout(() => {\r\n      if (ripple.parentNode) {\r\n        ripple.parentNode.removeChild(ripple);\r\n      }\r\n    }, 600);\r\n  }\r\n});\r\n\r\n\/\/ Add ripple animation CSS\r\nconst rippleStyle = document.createElement('style');\r\nrippleStyle.textContent = `\r\n  @keyframes case-study-ripple {\r\n    to {\r\n      transform: scale(2);\r\n      opacity: 0;\r\n    }\r\n  }\r\n`;\r\ndocument.head.appendChild(rippleStyle);\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Building Success with a Custom Engineering Services Partner Envisage Group\u2019s Digital Journey See how Envisage Group grew into one of the most successful custom engineering service providers by moving away from portable drives and shaky FTP sites. With Majenta\u2019s MX platform, they now deliver reliable, polished solutions to leading OEMs and global vehicle makers. Download [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3326,"parent":3052,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-3342","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/pages\/3342","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/comments?post=3342"}],"version-history":[{"count":3,"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/pages\/3342\/revisions"}],"predecessor-version":[{"id":10807,"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/pages\/3342\/revisions\/10807"}],"up":[{"embeddable":true,"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/pages\/3052"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/media\/3326"}],"wp:attachment":[{"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/media?parent=3342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}