{"id":2447,"date":"2025-05-19T17:04:12","date_gmt":"2025-05-19T15:04:12","guid":{"rendered":"https:\/\/staging.merieux-universite.com\/our-training-centers\/"},"modified":"2025-09-25T15:22:36","modified_gmt":"2025-09-25T13:22:36","slug":"learning-spaces","status":"publish","type":"page","link":"https:\/\/merieux-universite.com\/en\/learning-spaces\/","title":{"rendered":"Learning Spaces"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2447\" class=\"elementor elementor-2447 elementor-55\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1360944 e-con-full e-flex e-con e-parent\" data-id=\"1360944\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-7c3aae0 e-flex e-con-boxed e-con e-child\" data-id=\"7c3aae0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d948078 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"d948078\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Learning Spaces to support your development<\/h1>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9890351 e-con-full e-flex e-con e-child\" data-id=\"9890351\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-10e3f48 e-con-full e-flex e-con e-child\" data-id=\"10e3f48\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;,&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3b41c36 elementor-widget elementor-widget-image-carousel\" data-id=\"3b41c36\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;slides_to_show&quot;:&quot;3&quot;,&quot;slides_to_show_tablet&quot;:&quot;2&quot;,&quot;slides_to_show_mobile&quot;:&quot;1&quot;,&quot;slides_to_scroll&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;none&quot;,&quot;autoplay_speed&quot;:0,&quot;speed&quot;:6000,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:30,&quot;sizes&quot;:[]},&quot;autoplay&quot;:&quot;yes&quot;,&quot;infinite&quot;:&quot;yes&quot;,&quot;image_spacing_custom_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"image-carousel.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-image-carousel-wrapper swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Carrousel d\u2019images\" dir=\"ltr\">\n\t\t\t<div class=\"elementor-image-carousel swiper-wrapper swiper-image-stretch\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 of 3\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Montcelard-Merieux-3-1024x682.jpg\" alt=\"Montcerlard - M\u00e9rieux universit\u00e9\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 of 3\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Montcelard-Merieux-2-1024x576.jpg\" alt=\"Classroom - M\u00e9rieux universit\u00e9\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"3 of 3\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Balme-1024x576.jpg\" alt=\"Montcelard - M\u00e9rieux universit\u00e9\" \/><\/figure><\/div>\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bff5b90 e-flex e-con-boxed e-con e-parent\" data-id=\"bff5b90\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_motion_fx_translateX_effect&quot;:&quot;yes&quot;,&quot;background_motion_fx_translateX_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]},&quot;background_motion_fx_translateX_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;background_motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-f6d66b7 e-con-full e-flex e-con e-child\" data-id=\"f6d66b7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-51d2d23 revealText elementor-widget elementor-widget-heading\" data-id=\"51d2d23\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">M\u00e9rieux Universit\u00e9 is more than just a training center: it's a <span class=\"highlightText\">space for experience, discovery and learning<\/span>, where every visitor leaves enriched.<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-02641ae e-flex e-con-boxed e-con e-parent\" data-id=\"02641ae\" data-element_type=\"container\" data-e-type=\"container\" id=\"montcelard\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cd2a374 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"cd2a374\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-38b3323 e-con-full e-flex e-con e-child\" data-id=\"38b3323\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-cd69122 e-con-full e-flex e-con e-child\" data-id=\"cd69122\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0de6bff elementor-widget elementor-widget-heading\" data-id=\"0de6bff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Domaine <br><span class=\"highlightText\">Montcelard<\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-851a7a8 elementor-widget elementor-widget-heading\" data-id=\"851a7a8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">A soothing, inspiring setting.<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2fd5954 e-con-full e-flex e-con e-child\" data-id=\"2fd5954\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-393a012 elementor-widget elementor-widget-text-editor\" data-id=\"393a012\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>In the heart of a 16-hectare wooded estate, Domaine de Montcelard welcomes you to its Maison de Ma\u00eetre, whose origins date back to the 19th century. Both a training center and an events venue, the house offers a dozen rooms dedicated to training, meetings and professional events.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c1df581 e-con-full e-flex e-con e-child\" data-id=\"c1df581\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e6a92e4 elementor-widget elementor-widget-image\" data-id=\"e6a92e4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1440\" height=\"600\" src=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Montcerlard-large.jpg\" class=\"attachment-full size-full wp-image-1663\" alt=\"Montcelard - M\u00e9rieux universit\u00e9\" srcset=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Montcerlard-large.jpg 1440w, https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Montcerlard-large-300x125.jpg 300w, https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Montcerlard-large-1024x427.jpg 1024w, https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Montcerlard-large-768x320.jpg 768w\" sizes=\"(max-width: 1440px) 100vw, 1440px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f5f9874 e-con-full e-flex e-con e-child\" data-id=\"f5f9874\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;,&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c8d4948 e-flex e-con-boxed e-con e-parent\" data-id=\"c8d4948\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-9ec4e4d e-con-full e-flex e-con e-child\" data-id=\"9ec4e4d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-631f6d1 elementor-widget elementor-widget-heading\" data-id=\"631f6d1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Learning Lab<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f1730d0 elementor-widget elementor-widget-text-editor\" data-id=\"f1730d0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>The Montcelard site is home to a Learning Lab (L&#8217;Orangerie), a unique place of openness, experimentation and exchange, designed to nurture all the University&#8217;s training courses and develop the skills of the 21\u1d49 century.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8acf1e0 e-con-full e-flex e-con e-child\" data-id=\"8acf1e0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-16fcdbc elementor-widget elementor-widget-heading\" data-id=\"16fcdbc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Agility<\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c5295c elementor-widget elementor-widget-heading\" data-id=\"5c5295c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Emotional intelligence<\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f225601 elementor-widget elementor-widget-heading\" data-id=\"f225601\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Cooperation<\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-27ecc74 elementor-widget elementor-widget-heading\" data-id=\"27ecc74\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Critical thinking<\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a8e67e8 elementor-widget elementor-widget-heading\" data-id=\"a8e67e8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Problem solving<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-09d2962 e-con-full e-flex e-con e-child\" data-id=\"09d2962\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9ea6fc8 elementor-widget elementor-widget-image\" data-id=\"9ea6fc8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"534\" src=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Bakassable-Orangerie_2-no-logo-1024x683.jpg\" class=\"attachment-large size-large wp-image-2082\" alt=\"Orangerie - M\u00e9rieux universit\u00e9\" srcset=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Bakassable-Orangerie_2-no-logo-1024x683.jpg 1024w, https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Bakassable-Orangerie_2-no-logo-300x200.jpg 300w, https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Bakassable-Orangerie_2-no-logo-768x513.jpg 768w, https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Bakassable-Orangerie_2-no-logo.jpg 1287w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5c12fb8 e-flex e-con-boxed e-con e-parent\" data-id=\"5c12fb8\" data-element_type=\"container\" data-e-type=\"container\" id=\"salt-lake-city\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-977866a elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"977866a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d222743 e-con-full e-flex e-con e-child\" data-id=\"d222743\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-0bd5109 e-con-full e-flex e-con e-child\" data-id=\"0bd5109\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-293cd3e elementor-widget elementor-widget-heading\" data-id=\"293cd3e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"highlightText\">Salt Lake<\/span> City<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cbd3b3d elementor-widget elementor-widget-heading\" data-id=\"cbd3b3d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">An innovation and training center <\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-84fac0c e-con-full e-flex e-con e-child\" data-id=\"84fac0c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5a09562 elementor-widget elementor-widget-text-editor\" data-id=\"5a09562\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>In the United States, M\u00e9rieux Universit\u00e9 is based directly at bioM\u00e9rieux&#8217;s North American headquarters in Salt Lake City.<\/p><p>This new facility embodies both the Group&#8217;s international scope and its solid presence in the North American region.<\/p><p>It allows programs to be adapted to local needs while instilling a global vision. More than just a regional headquarters, this campus is a space for transformation, leadership development and active transmission of our corporate culture, bringing our values closer to our teams.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c7e4223 e-con-full e-flex e-con e-child\" data-id=\"c7e4223\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ad68106 elementor-widget elementor-widget-image\" data-id=\"ad68106\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1440\" height=\"600\" src=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Salt-lake-large.jpg\" class=\"attachment-full size-full wp-image-1666\" alt=\"Salt Lake City - M\u00e9rieux universit\u00e9\" srcset=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Salt-lake-large.jpg 1440w, https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Salt-lake-large-300x125.jpg 300w, https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Salt-lake-large-1024x427.jpg 1024w, https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Salt-lake-large-768x320.jpg 768w\" sizes=\"(max-width: 1440px) 100vw, 1440px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-beb03ba e-con-full e-flex e-con e-child\" data-id=\"beb03ba\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;,&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-df57e36 e-flex e-con-boxed e-con e-parent\" data-id=\"df57e36\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_motion_fx_translateX_effect&quot;:&quot;yes&quot;,&quot;background_motion_fx_translateX_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]},&quot;background_motion_fx_translateX_affectedRange&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;background_motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-2be272c e-con-full e-flex e-con e-child\" data-id=\"2be272c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0881e7f elementor-widget__width-initial elementor-widget-tablet__width-initial elementor-widget elementor-widget-heading\" data-id=\"0881e7f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">The Salt Lake City site is home to the Alain M\u00e9rieux Center for Molecular Diagnostics.<\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f1d9bd5 elementor-widget__width-initial elementor-widget-tablet__width-inherit elementor-widget elementor-widget-heading\" data-id=\"f1d9bd5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">A state-of-the-art campus of over 26,000 m\u00b2 dedicated to research, production and operational excellence. Directly linked to the University of Utah, it offers a stimulating environment at the crossroads of science, technology and health.<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5552664 e-flex e-con-boxed e-con e-parent\" data-id=\"5552664\" data-element_type=\"container\" data-e-type=\"container\" id=\"international\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-9bec4fc e-con-full e-flex e-con e-child\" data-id=\"9bec4fc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a7105c7 elementor-widget elementor-widget-heading\" data-id=\"a7105c7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span class=\"highlightText\">World Wide<\/span><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a0ae87 elementor-widget elementor-widget-text-editor\" data-id=\"8a0ae87\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>In addition to our two flagship sites, M\u00e9rieux Universit\u00e9 deploys its offer wherever the group is present, through delocalized sessions run either by its teams traveling to the various M\u00e9rieux group sites, or by relay trainers trained in-house.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e4fb102 e-con-full e-flex e-con e-child\" data-id=\"e4fb102\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-00b73a8 elementor-pagination-position-outside elementor-widget elementor-widget-image-carousel\" data-id=\"00b73a8\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;slides_to_show&quot;:&quot;1&quot;,&quot;navigation&quot;:&quot;dots&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;infinite&quot;:&quot;yes&quot;,&quot;effect&quot;:&quot;slide&quot;,&quot;speed&quot;:500}\" data-widget_type=\"image-carousel.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-image-carousel-wrapper swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Carrousel d\u2019images\" dir=\"ltr\">\n\t\t\t<div class=\"elementor-image-carousel swiper-wrapper\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 of 3\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/MU-Coaching-Slider-2.jpg\" alt=\"Coaching - M\u00e9rieux universit\u00e9\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 of 3\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/MU-Coaching-Slider-3.jpg\" alt=\"Coaching - M\u00e9rieux universit\u00e9\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"3 of 3\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/MU-Coaching-Slider-1.jpg\" alt=\"Coaching - M\u00e9rieux universit\u00e9\" \/><\/figure><\/div>\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"swiper-pagination\"><\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0a590dd e-con-full e-flex e-con e-parent\" data-id=\"0a590dd\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-4b0fe83 e-con-full e-flex e-con e-child\" data-id=\"4b0fe83\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-5519d9a e-con-full e-flex e-con e-child\" data-id=\"5519d9a\" data-element_type=\"container\" data-e-type=\"container\" id=\"mapCanvas\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b7a4075 elementor-widget elementor-widget-html\" data-id=\"b7a4075\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\n<div id=\"map-container\">\n    <canvas id=\"map\"><\/canvas>\n    <canvas id=\"animation-map\"><\/canvas>\n<\/div>\n\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/three.js\/r72\/three.min.js\"><\/script>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/1.19.1\/TweenMax.min.js\"><\/script>\n\n<style>\ncanvas {\n    width: 100%;\n    height: 100%;\n    padding: 0;\n    margin: 0;\n    display: block;\n}\n#map-container {\n    width: 100%;\n    aspect-ratio: 4\/3;\n    position: relative;\n    overflow: hidden;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    min-height: 300px;\n}\n#map {\n    width: 100%;\n    height: 100%;\n    z-index: 1;\n}\n#animation-map {\n    z-index: 5;\n    position: absolute;\n    left: 0;\n    top: 0;\n    width: 100%;\n    height: 100%;\n    pointer-events: none;\n    opacity: 0;\n    transition: opacity 2s ease-in-out;\n}\n#animation-map.visible {\n    opacity: 1;\n}\n<\/style>\n\n<script>\n\/\/ Variables pour la carte principale\nvar renderer, scene, camera, ww, wh, particles;\nvar centerVector = new THREE.Vector3(0, 0, 0);\nvar previousTime = 0;\nvar imagedata;\nvar texture;\n\n\/\/ Variables pour l'animation des carr\u00e9s\nlet animationCanvas, animationCtx, squares = [];\nlet animationStarted = false;\nlet lastSquareTime = 0;\nconst squareSpawnInterval = 100; \/\/ ms entre chaque nouveau carr\u00e9 g\u00e9n\u00e9r\u00e9\nlet squareIdCounter = 0; \/\/ Compteur pour attribuer des ID uniques aux carr\u00e9s\n\n\/\/ Configuration des points de destination\nconst destinationPoints = [\n    { x: 0.155, y: 0.46 }, \/\/ Premier point Rouge\n    { x: 0.785, y: 0.51 }, \/\/ Deuxi\u00e8me point Jaune\n    { x: 0.54, y: 0.725 }, \/\/ Troisi\u00e8me point Vert\n    { x: 0.351, y: 0.69 }, \/\/ Quatri\u00e8me point Bleu\n    { x: 0.86, y: 0.755 }, \/\/ Cinqui\u00e8me point Violet\n];\n\n\/\/ Point central d'o\u00f9 partent les carr\u00e9s (en coordonn\u00e9es relatives)\nconst centerPoint = { x: 0.485, y: 0.448 };\n\n\/\/ Taille des carr\u00e9s (en pourcentage de la largeur du conteneur)\nconst squareRelativeSize = 0.003; \/\/ 0.4% de la largeur du conteneur\n\n\/\/ Nombre maximum de carr\u00e9s actifs \u00e0 un moment donn\u00e9\nconst maxActiveSquares = 400;\n\n\/\/ Structure pour stocker les courbes pour chaque destination\nconst destinationCurves = {};\n\n\/\/ Fonction pour obtenir les donn\u00e9es d'image\nvar getImageData = function(image) {\n    var canvas = document.createElement(\"canvas\");\n    canvas.width = image.width;\n    canvas.height = image.height;\n    var ctx = canvas.getContext(\"2d\");\n    ctx.drawImage(image, 0, 0);\n    return ctx.getImageData(0, 0, image.width, image.height);\n};\n\n\/\/ Fonction pour dessiner la carte\nvar drawTheMap = function() {\n    var geometry = new THREE.Geometry();\n    var material = new THREE.PointsMaterial({\n        size: 3,\n        color: 0x6353CF,\n        sizeAttenuation: true\n    });\n\n    for (var y = 0, y2 = imagedata.height; y < y2; y += 2) {\n        for (var x = 0, x2 = imagedata.width; x < x2; x += 2) {\n            if (imagedata.data[(x * 4 + y * 4 * imagedata.width) + 3] > 128) {\n                var vertex = new THREE.Vector3();\n                vertex.x = Math.random() * 1000 - 500;\n                vertex.y = Math.random() * 1000 - 500;\n                vertex.z = -Math.random() * 500;\n\n                vertex.destination = {\n                    x: x - imagedata.width \/ 2,\n                    y: -y + imagedata.height \/ 2,\n                    z: 0\n                };\n\n                vertex.speed = Math.random() \/ 40 + 0.01;\n                geometry.vertices.push(vertex);\n            }\n        }\n    }\n    particles = new THREE.Points(geometry, material);\n    scene.add(particles);\n};\n\n\/\/ Fonction pour initialiser la carte principale\nvar init = function() {\n    THREE.ImageUtils.crossOrigin = '';\n    var mapContainer = document.getElementById(\"map-container\");\n\n    \/\/ Obtenir les dimensions initiales du conteneur\n    var ww = mapContainer.clientWidth;\n    var wh = mapContainer.clientHeight;\n\n    renderer = new THREE.WebGLRenderer({\n        canvas: document.getElementById(\"map\"),\n        antialias: true,\n        alpha: true\n    });\n\n    \/\/ D\u00e9finir la taille initiale du rendu en fonction du conteneur\n    renderer.setSize(ww, wh);\n    renderer.setClearColor(0x000000, 0); \/\/ Fond transparent\n\n    scene = new THREE.Scene();\n    camera = new THREE.PerspectiveCamera(35, ww \/ wh, 0.1, 10000);\n    camera.position.set(0, 0, 550);\n    camera.lookAt(centerVector);\n    scene.add(camera);\n\n    \/\/ Ajouter une lumi\u00e8re pour am\u00e9liorer la visibilit\u00e9\n    var light = new THREE.AmbientLight(0x404040); \/\/ Lumi\u00e8re douce grise\n    scene.add(light);\n\n    texture = THREE.ImageUtils.loadTexture(\"https:\/\/s3-us-west-2.amazonaws.com\/s.cdpn.io\/127738\/transparentMap.png\", undefined, function() {\n        imagedata = getImageData(texture.image);\n        drawTheMap();\n    });\n\n    window.addEventListener('resize', function() {\n        onResize();\n        resizeAnimationMap();\n    });\n\n    \/\/ Initialiser le canevas d'animation\n    initAnimationMap();\n\n    \/\/ D\u00e9marrer le rendu initial\n    requestAnimationFrame(render);\n};\n\n\/\/ Fonction pour redimensionner la carte principale\nvar onResize = function() {\n    var mapContainer = document.getElementById(\"map-container\");\n    var ww = mapContainer.clientWidth;\n    var wh = mapContainer.clientHeight;\n\n    renderer.setSize(ww, wh);\n    camera.aspect = ww \/ wh;\n    camera.updateProjectionMatrix();\n};\n\n\/\/ Fonction de rendu pour la carte principale\nvar render = function(a) {\n    requestAnimationFrame(render);\n\n    if (particles) {\n        for (var i = 0, j = particles.geometry.vertices.length; i < j; i++) {\n            var particle = particles.geometry.vertices[i];\n            particle.x += (particle.destination.x - particle.x) * particle.speed;\n            particle.y += (particle.destination.y - particle.y) * particle.speed;\n            particle.z += (particle.destination.z - particle.z) * particle.speed;\n        }\n\n        if (a - previousTime > 100) {\n            var index = Math.floor(Math.random() * particles.geometry.vertices.length);\n            var particle1 = particles.geometry.vertices[index];\n            var particle2 = particles.geometry.vertices[particles.geometry.vertices.length - index];\n            TweenMax.to(particle1, Math.random() * 2 + 1, { x: particle2.x, y: particle2.y, ease: Power2.easeInOut });\n            TweenMax.to(particle2, Math.random() * 2 + 1, { x: particle1.x, y: particle1.y, ease: Power2.easeInOut });\n            previousTime = a;\n        }\n\n        camera.lookAt(centerVector);\n        particles.geometry.verticesNeedUpdate = true;\n        renderer.render(scene, camera);\n    }\n};\n\n\/\/ Modifier l'IntersectionObserver pour d\u00e9marrer l'animation-map une fois que la carte est visible\nvar observer = new IntersectionObserver(function(entries, observer) {\n    entries.forEach(function(entry) {\n        if (entry.isIntersecting && !animationStarted) {\n            console.log(\"La carte est visible \u2192 d\u00e9marrage de l'animation-map\");\n            \/\/ D\u00e9marrer l'animation-map avec un effet de fade-in apr\u00e8s un d\u00e9lai\n            setTimeout(() => {\n                document.getElementById('animation-map').classList.add('visible');\n                animationStarted = true;\n            }, 1500); \/\/ D\u00e9lai d'1,5 seconde pour laisser le temps \u00e0 la carte de se stabiliser\n\n            observer.unobserve(entry.target);\n        }\n    });\n}, {\n    threshold: 0.1\n});\n\n\/\/ D\u00e9marrer l'observation une fois que le DOM est charg\u00e9\ndocument.addEventListener('DOMContentLoaded', function() {\n    var mapElement = document.getElementById(\"map\");\n    if (mapElement) {\n        observer.observe(mapElement);\n    } else {\n        console.error(\"L'\u00e9l\u00e9ment carte n'a pas \u00e9t\u00e9 trouv\u00e9.\");\n    }\n});\n\n\/\/ Fonction pour redimensionner et repositionner le canevas d'animation\nfunction resizeAnimationMap() {\n    const container = document.getElementById('map-container');\n    if (!container) {\n        console.error(\"Conteneur de la carte non trouv\u00e9.\");\n        return;\n    }\n\n    const containerWidth = container.clientWidth;\n    const containerHeight = container.clientHeight;\n\n    animationCanvas = document.getElementById('animation-map');\n    if (!animationCanvas) {\n        console.error(\"Canevas d'animation non trouv\u00e9.\");\n        return;\n    }\n    animationCtx = animationCanvas.getContext('2d');\n\n    \/\/ D\u00e9finir la taille du canevas pour couvrir tout le conteneur\n    animationCanvas.width = containerWidth;\n    animationCanvas.height = containerHeight;\n\n    \/\/ Positionner le canevas d'animation pour couvrir tout le conteneur\n    animationCanvas.style.left = '0';\n    animationCanvas.style.top = '0';\n    animationCanvas.style.width = containerWidth + 'px';\n    animationCanvas.style.height = containerHeight + 'px';\n\n    \/\/ Mettre \u00e0 jour les positions des carr\u00e9s\n    const centerX = centerPoint.x * containerWidth;\n    const centerY = centerPoint.y * containerHeight;\n    const squareSize = Math.max(2, containerWidth * squareRelativeSize);\n\n    \/\/ R\u00e9initialiser les courbes stock\u00e9es car les dimensions ont chang\u00e9\n    Object.keys(destinationCurves).forEach(key => {\n        delete destinationCurves[key];\n    });\n\n    \/\/ Mettre \u00e0 jour les carr\u00e9s actifs\n    squares.forEach(square => {\n        \/\/ Sauvegarder la progression actuelle\n        const progress = square.progress;\n\n        \/\/ Recalculer les positions de d\u00e9part et de fin en fonction des nouvelles dimensions\n        if (square.isSpecialPath && square.destIndex === 3) {\n            \/\/ Trajet sp\u00e9cial entre le premier et le quatri\u00e8me point\n            const startPoint = destinationPoints[0]; \/\/ Premier point (rouge)\n            const endPoint = destinationPoints[3];   \/\/ Quatri\u00e8me point (bleu)\n            square.startX = startPoint.x * containerWidth;\n            square.startY = startPoint.y * containerHeight;\n            square.endX = endPoint.x * containerWidth;\n            square.endY = endPoint.y * containerHeight;\n        } else if (square.destIndex === 0 && square.isReturnTrip !== undefined) {\n            \/\/ Trajet aller-retour entre le point central et le premier point\n            const point = destinationPoints[0]; \/\/ Premier point (rouge)\n            if (square.isReturnTrip) {\n                \/\/ Retour : du premier point vers le point central\n                square.startX = point.x * containerWidth;\n                square.startY = point.y * containerHeight;\n                square.endX = centerPoint.x * containerWidth;\n                square.endY = centerPoint.y * containerHeight;\n            } else {\n                \/\/ Aller : du point central vers le premier point\n                square.startX = centerPoint.x * containerWidth;\n                square.startY = centerPoint.y * containerHeight;\n                square.endX = point.x * containerWidth;\n                square.endY = point.y * containerHeight;\n            }\n        } else if (square.destination === centerPoint) {\n            \/\/ Trajet vers le point central\n            square.startX = square.destination.x * containerWidth;\n            square.startY = square.destination.y * containerHeight;\n            square.endX = centerPoint.x * containerWidth;\n            square.endY = centerPoint.y * containerHeight;\n        } else {\n            \/\/ Trajet normal : du point central vers un point de destination\n            square.startX = centerPoint.x * containerWidth;\n            square.startY = centerPoint.y * containerHeight;\n            square.endX = square.destination.x * containerWidth;\n            square.endY = square.destination.y * containerHeight;\n        }\n\n        \/\/ Recalculer la position actuelle en fonction de la progression\n        if (progress >= 0 && progress <= 1) {\n            const pos = calculateCurvedPath(\n                square.startX, square.startY,\n                square.endX, square.endY,\n                progress,\n                square.destIndex,\n                square.isSpecialPath\n            );\n            square.x = pos.x;\n            square.y = pos.y;\n        }\n\n        \/\/ Mettre \u00e0 jour la taille du carr\u00e9\n        square.size = squareSize;\n    });\n}\n\nfunction calculateCurvedPath(startX, startY, endX, endY, progress, destIndex, isSpecialPath) {\n    \/\/ G\u00e9rer les trajets sp\u00e9ciaux entre le point rouge et le point central\n    if (isSpecialPath) {\n        \/\/ Calculer une trajectoire unique pour les trajets sp\u00e9ciaux\n        const midX = (startX + endX) \/ 2;\n        const midY = (startY + endY) \/ 2;\n\n        \/\/ Ajouter un offset pour cr\u00e9er une courbe unique\n        const offsetX = (endY - startY) * 0.2; \/\/ Offset bas\u00e9 sur la direction\n        const offsetY = -(endX - startX) * 0.2;\n\n        \/\/ Calculer les points de contr\u00f4le pour une courbe de B\u00e9zier\n        const controlX1 = startX + (midX - startX) \/ 2 + offsetX;\n        const controlY1 = startY + (midY - startY) \/ 2 + offsetY;\n        const controlX2 = midX + (endX - midX) \/ 2 + offsetX;\n        const controlY2 = midY + (endY - midY) \/ 2 + offsetY;\n\n        \/\/ Calculer la position actuelle sur la courbe de B\u00e9zier cubique\n        const invProgress = 1 - progress;\n        const x = invProgress * invProgress * invProgress * startX\n                  + 3 * invProgress * invProgress * progress * controlX1\n                  + 3 * invProgress * progress * progress * controlX2\n                  + progress * progress * progress * endX;\n        const y = invProgress * invProgress * invProgress * startY\n                  + 3 * invProgress * invProgress * progress * controlY1\n                  + 3 * invProgress * progress * progress * controlY2\n                  + progress * progress * progress * endY;\n\n        return { x, y };\n    } else {\n        \/\/ Calculer la position actuelle avec une trajectoire courb\u00e9e normale\n        const midX = (startX + endX) \/ 2;\n        const midY = (startY + endY) \/ 2;\n\n        \/\/ Calculer le vecteur de direction\n        const directionX = endX - startX;\n        const directionY = endY - startY;\n        const length = Math.sqrt(directionX * directionX + directionY * directionY);\n\n        \/\/ Normaliser le vecteur de direction\n        const normX = length > 0 ? directionX \/ length : 0;\n        const normY = length > 0 ? directionY \/ length : 0;\n\n        \/\/ Calculer le point de contr\u00f4le pour la courbe de B\u00e9zier\n        let perpendicularX, perpendicularY;\n\n        \/\/ Pour les trajets aller-retour entre le centre et le premier point (destIndex 0)\n        if (destIndex === 0) {\n            \/\/ Toujours utiliser une courbe passant par le haut pour ce trajet sp\u00e9cifique\n            perpendicularX = -normY;\n            perpendicularY = normX;\n        } else {\n            \/\/ Pour les autres trajets, utiliser la m\u00e9thode normale\n            perpendicularX = -normY; \/\/ Vecteur perpendiculaire\n            perpendicularY = normX;\n        }\n\n        \/\/ Si la courbe pour cette destination n'est pas encore stock\u00e9e, la calculer\n        if (!destinationCurves[destIndex]) {\n            const controlOffset = length * 0.2; \/\/ 20% de la longueur\n            destinationCurves[destIndex] = {\n                controlOffset: controlOffset,\n                perpendicularX: perpendicularX,\n                perpendicularY: perpendicularY,\n                midX: midX,\n                midY: midY\n            };\n        }\n\n        const curveData = destinationCurves[destIndex];\n        const controlOffset = curveData.controlOffset;\n        const controlX = curveData.midX + controlOffset * curveData.perpendicularX;\n        const controlY = curveData.midY + controlOffset * curveData.perpendicularY;\n\n        \/\/ Calculer la position actuelle sur la courbe de B\u00e9zier\n        const invProgress = 1 - progress;\n        const x = invProgress * invProgress * startX\n                  + 2 * invProgress * progress * controlX\n                  + progress * progress * endX;\n        const y = invProgress * invProgress * startY\n                  + 2 * invProgress * progress * controlY\n                  + progress * progress * endY;\n\n        return { x, y };\n    }\n}\n\n\n\/\/ Fonction pour mettre \u00e0 jour la position d'un carr\u00e9\nfunction updateSquare(square, currentTime) {\n    if (square.completed) return;\n\n    \/\/ Mettre \u00e0 jour la progression\n    square.progress += square.speed;\n\n    \/\/ Si la progression d\u00e9passe 1, le carr\u00e9 a atteint sa destination\n    if (square.progress >= 1) {\n        if (square.destIndex === 0 && square.isReturnTrip === false) {\n            \/\/ Si c'est un trajet vers le premier point et que ce n'est pas un retour, alors inverser le trajet pour le retour\n            const tempX = square.startX;\n            const tempY = square.startY;\n            square.startX = square.endX;\n            square.startY = square.endY;\n            square.endX = tempX;\n            square.endY = tempY;\n            square.progress = 0;\n            square.isReturnTrip = true;\n            square.x = square.startX;\n            square.y = square.startY;\n        } else {\n            square.completed = true;\n        }\n        return;\n    }\n\n    \/\/ Calculer la position actuelle avec une trajectoire courb\u00e9e\n    const pos = calculateCurvedPath(\n        square.startX, square.startY,\n        square.endX, square.endY,\n        Math.min(square.progress, 1),\n        square.destIndex,\n        square.isSpecialPath\n    );\n    square.x = pos.x;\n    square.y = pos.y;\n}\n\n\/\/ Fonction pour ajouter un nouveau carr\u00e9\nfunction addNewSquare(containerWidth, containerHeight) {\n    if (squares.length >= maxActiveSquares) {\n        \/\/ Si nous avons trop de carr\u00e9s, retirer les plus anciens qui sont complets\n        \/\/ Trouver un carr\u00e9 complet \u00e0 remplacer (s'il y en a)\n        for (let i = 0; i < squares.length; i++) {\n            if (squares[i].completed) {\n                squares.splice(i, 1);\n                break;\n            }\n        }\n\n        \/\/ Si nous avons toujours trop de carr\u00e9s, ne pas en ajouter\n        if (squares.length >= maxActiveSquares) {\n            return;\n        }\n    }\n\n    \/\/ Choisir une destination al\u00e9atoire parmi les points disponibles\n    const destIndex = Math.floor(Math.random() * destinationPoints.length);\n    const point = destinationPoints[destIndex];\n\n    \/\/ Ajouter un nouveau trajet entre le premier et le quatri\u00e8me point\n    if (Math.random() < 0.2) { \/\/ 20% de chance d'utiliser le nouveau trajet\n        const startIndex = 0; \/\/ Premier point (rouge)\n        const endIndex = 3; \/\/ Quatri\u00e8me point (bleu)\n        const startPoint = destinationPoints[startIndex];\n        const endPoint = destinationPoints[endIndex];\n\n        \/\/ D\u00e9finir une vitesse l\u00e9g\u00e8rement al\u00e9atoire pour chaque carr\u00e9\n        const speed = 0.003 + Math.random() * 0.001; \/\/ Vitesse lente pour un flux constant\n\n        \/\/ D\u00e9finir une couleur violette pour ce trajet sp\u00e9cifique\n        const color = `hsl(270, 80%, 70%)`; \/\/ Violet\n\n        \/\/ Cr\u00e9er un nouvel objet carr\u00e9\n        const newSquare = {\n            id: squareIdCounter++,\n            x: 0, y: 0,\n            startX: startPoint.x * containerWidth,\n            startY: startPoint.y * containerHeight,\n            endX: endPoint.x * containerWidth,\n            endY: endPoint.y * containerHeight,\n            progress: 0,\n            speed: speed,\n            color: color,\n            destination: endPoint,\n            destIndex: endIndex,\n            size: Math.max(2, containerWidth * squareRelativeSize),\n            completed: false,\n            isSpecialPath: true \/\/ Indique que c'est un trajet sp\u00e9cial\n        };\n\n        \/\/ Position initiale = point de d\u00e9part\n        newSquare.x = newSquare.startX;\n        newSquare.y = newSquare.startY;\n\n        squares.push(newSquare);\n        return; \/\/ Sortir de la fonction apr\u00e8s avoir ajout\u00e9 un carr\u00e9 sp\u00e9cial\n    }\n\n    \/\/ Ajouter un trajet aller-retour entre le point central et le premier point\n    if (Math.random() < 0.1) { \/\/ 10% de chance d'utiliser un trajet aller-retour entre le point central et le premier point\n        const pointIndex = 0; \/\/ Premier point (rouge)\n        const point = destinationPoints[pointIndex];\n\n        \/\/ D\u00e9finir une vitesse l\u00e9g\u00e8rement al\u00e9atoire pour chaque carr\u00e9\n        const speed = 0.003 + Math.random() * 0.001; \/\/ Vitesse lente pour un flux constant\n\n        \/\/ D\u00e9finir une couleur bas\u00e9e sur la destination\n        const hue = (pointIndex * 360 \/ destinationPoints.length) + (Math.random() * 20 - 10);\n        const color = `hsl(${hue}, 80%, 70%)`;\n\n        \/\/ Cr\u00e9er un nouvel objet carr\u00e9 pour l'aller\n        const newSquare = {\n            id: squareIdCounter++,\n            x: 0, y: 0,\n            startX: centerPoint.x * containerWidth,\n            startY: centerPoint.y * containerHeight,\n            endX: point.x * containerWidth,\n            endY: point.y * containerHeight,\n            progress: 0,\n            speed: speed,\n            color: color,\n            destination: point,\n            destIndex: pointIndex,\n            size: Math.max(2, containerWidth * squareRelativeSize),\n            completed: false,\n            isSpecialPath: false, \/\/ Trajet normal\n            isReturnTrip: false, \/\/ Initialement, c'est un aller\n            originalStartX: centerPoint.x * containerWidth, \/\/ Garder la position de d\u00e9part originale\n            originalStartY: centerPoint.y * containerHeight\n        };\n\n        \/\/ Position initiale = point de d\u00e9part\n        newSquare.x = newSquare.startX;\n        newSquare.y = newSquare.startY;\n\n        squares.push(newSquare);\n        return; \/\/ Sortir de la fonction apr\u00e8s avoir ajout\u00e9 un carr\u00e9 sp\u00e9cial\n    }\n\n    \/\/ D\u00e9finir une vitesse l\u00e9g\u00e8rement al\u00e9atoire pour chaque carr\u00e9\n    const speed = 0.003 + Math.random() * 0.001; \/\/ Vitesse lente pour un flux constant\n\n    \/\/ D\u00e9finir une couleur bas\u00e9e sur la destination\n    const hue = (destIndex * 360 \/ destinationPoints.length) + (Math.random() * 20 - 10);\n    const color = `hsl(${hue}, 80%, 70%)`;\n\n    \/\/ Cr\u00e9er un nouvel objet carr\u00e9\n    const newSquare = {\n        id: squareIdCounter++,\n        x: 0, y: 0,\n        startX: centerPoint.x * containerWidth,\n        startY: centerPoint.y * containerHeight,\n        endX: point.x * containerWidth,\n        endY: point.y * containerHeight,\n        progress: 0,\n        speed: speed,\n        color: color,\n        destination: point,\n        destIndex: destIndex,\n        size: Math.max(2, containerWidth * squareRelativeSize),\n        completed: false,\n        isSpecialPath: false \/\/ Indique que c'est un trajet normal\n    };\n\n    \/\/ Position initiale = point de d\u00e9part\n    newSquare.x = newSquare.startX;\n    newSquare.y = newSquare.startY;\n\n    \/\/ Si c'est le premier point, ajouter la propri\u00e9t\u00e9 pour l'aller-retour\n    if (destIndex === 0) {\n        newSquare.isReturnTrip = false;\n        newSquare.originalStartX = centerPoint.x * containerWidth;\n        newSquare.originalStartY = centerPoint.y * containerHeight;\n    }\n\n    squares.push(newSquare);\n}\n\n\/\/ Fonction pour initialiser le canevas d'animation\nfunction initAnimationMap() {\n    animationCanvas = document.getElementById('animation-map');\n    if (!animationCanvas) {\n        console.error(\"Canevas d'animation non trouv\u00e9.\");\n        return;\n    }\n    animationCtx = animationCanvas.getContext('2d');\n\n    \/\/ Initialiser la taille initiale du canevas\n    resizeAnimationMap();\n\n    \/\/ Initialiser avec quelques carr\u00e9s pour d\u00e9marrer\n    const containerWidth = animationCanvas.width;\n    const containerHeight = animationCanvas.height;\n\n    for (let i = 0; i < 50; i++) {\n        addNewSquare(containerWidth, containerHeight);\n    }\n\n    \/\/ Fonction pour dessiner un carr\u00e9\n    function drawSquare(square) {\n        if (square.completed) return;\n\n        animationCtx.fillStyle = square.color;\n        animationCtx.fillRect(square.x - square.size \/ 2, square.y - square.size \/ 2, square.size, square.size);\n    }\n\n    \/\/ Fonction pour effacer le canevas\n    function clearCanvas() {\n        animationCtx.clearRect(0, 0, animationCanvas.width, animationCanvas.height);\n    }\n\n    \/\/ Boucle d'animation\n    function animate(currentTime) {\n        clearCanvas();\n\n        \/\/ Mettre \u00e0 jour et dessiner les carr\u00e9s actifs\n        squares.forEach(square => {\n            updateSquare(square, currentTime);\n            drawSquare(square);\n        });\n\n        \/\/ Nettoyer les carr\u00e9s complets (sauf quelques-uns pour garder un historique)\n        \/\/ Nous gardons quelques carr\u00e9s complets pour montrer les destinations\n        const completedSquares = squares.filter(s => s.completed);\n        if (completedSquares.length > 20) {\n            \/\/ Supprimer les plus anciens carr\u00e9s complets\n            completedSquares.sort((a, b) => a.id - b.id).slice(0, -20).forEach(square => {\n                const index = squares.indexOf(square);\n                if (index !== -1) {\n                    squares.splice(index, 1);\n                }\n            });\n        }\n\n        \/\/ Ajouter de nouveaux carr\u00e9s p\u00e9riodiquement\n        if (currentTime - lastSquareTime > squareSpawnInterval) {\n            for (let i = 0; i < 5; i++) { \/\/ Ajouter 5 carr\u00e9s \u00e0 la fois pour un flux dense\n                addNewSquare(animationCanvas.width, animationCanvas.height);\n            }\n            lastSquareTime = currentTime;\n        }\n\n        requestAnimationFrame(animate);\n    }\n\n    \/\/ D\u00e9marrer l'animation\n    requestAnimationFrame(animate);\n}\n\n\/\/ Initialiser tout une fois que le DOM est charg\u00e9\ndocument.addEventListener('DOMContentLoaded', function() {\n    init();\n});\n\n<\/script>\n-->\n\n\n<div id=\"map-container\">\n    <canvas id=\"map\"><\/canvas>\n<\/div>\n\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/three.js\/r72\/three.min.js\"><\/script>\n\n<style>\ncanvas {\n    width:100%;\n    height:100%;\n    padding:0;\n    margin:0;\n    display: block;\n}\n#map-container {\n    width: 100%;\n    aspect-ratio: 4\/3;\n    position: relative;\n    overflow: hidden;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    min-height: 300px;\n}\n#map {\n    width: 100%;\n    height: 100%;\n    z-index: 1;\n}\n\n<\/style>\n\n<script>\nvar renderer, scene, camera, ww, wh, particles;\nvar centerVector = new THREE.Vector3(0, 0, 0);\nvar previousTime = 0;\nvar imagedata;\nvar texture;\n\nvar getImageData = function(image) {\n    var canvas = document.createElement(\"canvas\");\n    canvas.width = image.width;\n    canvas.height = image.height;\n    var ctx = canvas.getContext(\"2d\");\n    ctx.drawImage(image, 0, 0);\n    return ctx.getImageData(0, 0, image.width, image.height);\n};\n\nvar drawTheMap = function() {\n    var geometry = new THREE.Geometry();\n    var material = new THREE.PointsMaterial({\n        size: 3,\n        color: 0x6353CF,\n        sizeAttenuation: true\n    });\n\n    for (var y = 0, y2 = imagedata.height; y < y2; y += 2) {\n        for (var x = 0, x2 = imagedata.width; x < x2; x += 2) {\n            if (imagedata.data[(x * 4 + y * 4 * imagedata.width) + 3] > 128) {\n                var vertex = new THREE.Vector3();\n                vertex.x = Math.random() * 1000 - 500;\n                vertex.y = Math.random() * 1000 - 500;\n                vertex.z = -Math.random() * 500;\n\n                vertex.destination = {\n                    x: x - imagedata.width \/ 2,\n                    y: -y + imagedata.height \/ 2,\n                    z: 0\n                };\n\n                vertex.speed = Math.random() \/ 40 + 0.01;\n                geometry.vertices.push(vertex);\n            }\n        }\n    }\n    particles = new THREE.Points(geometry, material);\n    scene.add(particles);\n};\n\nvar init = function() {\n    THREE.ImageUtils.crossOrigin = '';\n    var mapContainer = document.getElementById(\"map-container\");\n\n    \/\/ Obtenez les dimensions initiales du conteneur\n    var ww = mapContainer.clientWidth;\n    var wh = mapContainer.clientHeight;\n\n    renderer = new THREE.WebGLRenderer({\n        canvas: document.getElementById(\"map\"),\n        antialias: true,\n        alpha: true\n    });\n\n    \/\/ D\u00e9finissez la taille initiale du rendu en fonction du conteneur\n    renderer.setSize(ww, wh);\n    renderer.setClearColor(0x000000, 0); \/\/ Fond transparent\n\n    scene = new THREE.Scene();\n    camera = new THREE.PerspectiveCamera(35, ww \/ wh, 0.1, 10000);\n    camera.position.set(0, 0, 550);\n    camera.lookAt(centerVector);\n    scene.add(camera);\n\n    texture = THREE.ImageUtils.loadTexture(\"https:\/\/s3-us-west-2.amazonaws.com\/s.cdpn.io\/127738\/transparentMap.png\", undefined, function() {\n        imagedata = getImageData(texture.image);\n        drawTheMap();\n    });\n\n    window.addEventListener('resize', onResize, false);\n};\n\nvar onResize = function() {\n    var mapContainer = document.getElementById(\"map-container\");\n    var ww = mapContainer.clientWidth;\n    var wh = mapContainer.clientHeight;\n\n    renderer.setSize(ww, wh);\n    camera.aspect = ww \/ wh;\n    camera.updateProjectionMatrix();\n};\n\nvar render = function(a) {\n    requestAnimationFrame(render);\n\n    for (var i = 0, j = particles.geometry.vertices.length; i < j; i++) {\n        var particle = particles.geometry.vertices[i];\n        particle.x += (particle.destination.x - particle.x) * particle.speed;\n        particle.y += (particle.destination.y - particle.y) * particle.speed;\n        particle.z += (particle.destination.z - particle.z) * particle.speed;\n    }\n\n    if (a - previousTime > 100) {\n        var index = Math.floor(Math.random() * particles.geometry.vertices.length);\n        var particle1 = particles.geometry.vertices[index];\n        var particle2 = particles.geometry.vertices[particles.geometry.vertices.length - index];\n        TweenMax.to(particle1, Math.random() * 2 + 1, { x: particle2.x, y: particle2.y, ease: Power2.easeInOut });\n        TweenMax.to(particle2, Math.random() * 2 + 1, { x: particle1.x, y: particle1.y, ease: Power2.easeInOut });\n        previousTime = a;\n    }\n\n    camera.lookAt(centerVector);\n    particles.geometry.verticesNeedUpdate = true;\n    renderer.render(scene, camera);\n};\n\ndocument.addEventListener('DOMContentLoaded', function() {\n    var mapElement = document.getElementById(\"map\");\n    if (mapElement) {\n        var observer = new IntersectionObserver(function(entries, observer) {\n            entries.forEach(function(entry) {\n                if (entry.isIntersecting) {\n                    console.log(\"Canvas visible \u2192 d\u00e9marrage de l'animation\");\n                    requestAnimationFrame(render);\n                    observer.unobserve(entry.target);\n                }\n            });\n        }, {\n            threshold: 0.1\n        });\n\n        observer.observe(mapElement);\n    } else {\n        console.error(\"Element with ID 'map' not found.\");\n    }\n\n    init();\n});\n<\/script>\n\n\n\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bef376b e-con-full e-flex e-con e-child\" data-id=\"bef376b\" data-element_type=\"container\" data-e-type=\"container\" id=\"mapCanvasOverlay\" data-settings=\"{&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5a9f20a elementor-absolute elementor-widget__width-inherit elementor-invisible elementor-widget elementor-widget-image\" data-id=\"5a9f20a\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;,&quot;_animation&quot;:&quot;fadeIn&quot;,&quot;_animation_delay&quot;:3000}\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Flux-Interconnexion-Worldmap-V5.svg\" class=\"attachment-full size-full wp-image-3609\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3126a6e elementor-absolute hideOnMobile elementor-hidden-mobile elementor-invisible elementor-widget elementor-widget-hotspot\" data-id=\"3126a6e\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"mapCanvasPins\" data-settings=\"{&quot;hotspot&quot;:[{&quot;_id&quot;:&quot;187b485&quot;,&quot;hotspot_tooltip_content&quot;:&quot;&lt;div class=\\&quot;infoBulle\\&quot;&gt;\\n&lt;p&gt;&lt;img src=\\&quot;https:\\\/\\\/merieux-universite.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/Montcelard.jpg\\&quot; alt=\\&quot;Campus Domaine Montcelard\\&quot;&gt;&lt;\\\/p&gt;\\n&lt;p class=\\&quot;label\\&quot;&gt;Tassin-la-Demi-Lune, France&lt;\\\/p&gt;\\n&lt;p&gt;Domaine Montcelard&lt;\\\/p&gt;\\n&lt;\\\/div&gt;\\n&quot;,&quot;hotspot_offset_x&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:48.5,&quot;sizes&quot;:[]},&quot;hotspot_offset_y&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:44.5,&quot;sizes&quot;:[]},&quot;hotspot_tooltip_position&quot;:&quot;yes&quot;,&quot;hotspot_position_tablet&quot;:&quot;bottom&quot;,&quot;index&quot;:0,&quot;__dynamic__&quot;:null,&quot;hotspot_label&quot;:&quot;&quot;,&quot;hotspot_link&quot;:{&quot;url&quot;:&quot;&quot;,&quot;is_external&quot;:&quot;&quot;,&quot;nofollow&quot;:&quot;&quot;,&quot;custom_attributes&quot;:&quot;&quot;},&quot;hotspot_icon&quot;:{&quot;value&quot;:&quot;&quot;,&quot;library&quot;:&quot;&quot;},&quot;hotspot_custom_size&quot;:&quot;no&quot;,&quot;hotspot_horizontal&quot;:&quot;left&quot;,&quot;hotspot_vertical&quot;:&quot;top&quot;,&quot;hotspot_position&quot;:&quot;&quot;},{&quot;_id&quot;:&quot;679012f&quot;,&quot;hotspot_tooltip_content&quot;:&quot;&lt;div class=\\&quot;infoBulle\\&quot;&gt;\\n&lt;p&gt;&lt;img src=\\&quot;https:\\\/\\\/merieux-universite.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/salt-lake.jpg\\&quot; alt=\\&quot;Campus Salt Lake City\\&quot;&gt;&lt;\\\/p&gt;\\n&lt;p class=\\&quot;label\\&quot;&gt;St. Louis, United State &lt;\\\/p&gt;\\n&lt;p&gt;Salt Lake City&lt;\\\/p&gt;\\n&lt;\\\/div&gt;\\n&quot;,&quot;hotspot_offset_x&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:15,&quot;sizes&quot;:[]},&quot;hotspot_offset_y&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:46,&quot;sizes&quot;:[]},&quot;hotspot_tooltip_position&quot;:&quot;yes&quot;,&quot;hotspot_position_mobile&quot;:&quot;top&quot;,&quot;hotspot_position_tablet&quot;:&quot;top&quot;,&quot;index&quot;:1,&quot;__dynamic__&quot;:null,&quot;hotspot_label&quot;:&quot;&quot;,&quot;hotspot_link&quot;:{&quot;url&quot;:&quot;&quot;,&quot;is_external&quot;:&quot;&quot;,&quot;nofollow&quot;:&quot;&quot;,&quot;custom_attributes&quot;:&quot;&quot;},&quot;hotspot_icon&quot;:{&quot;value&quot;:&quot;&quot;,&quot;library&quot;:&quot;&quot;},&quot;hotspot_custom_size&quot;:&quot;no&quot;,&quot;hotspot_horizontal&quot;:&quot;left&quot;,&quot;hotspot_vertical&quot;:&quot;top&quot;,&quot;hotspot_position&quot;:&quot;&quot;}],&quot;tooltip_position_mobile&quot;:&quot;left&quot;,&quot;tooltip_trigger&quot;:&quot;none&quot;,&quot;tooltip_position_tablet&quot;:&quot;left&quot;,&quot;tooltip_trigger_mobile&quot;:&quot;click&quot;,&quot;_position&quot;:&quot;absolute&quot;,&quot;_animation&quot;:&quot;fadeIn&quot;,&quot;_animation_delay&quot;:2000,&quot;_animation_mobile&quot;:&quot;none&quot;,&quot;tooltip_position&quot;:&quot;top&quot;}\" data-widget_type=\"hotspot.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"287\" src=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/mapDotted-MU.svg\" class=\"attachment-large size-large wp-image-661\" alt=\"\" \/>\n\t\t\t\t\t\t<div class=\"e-hotspot elementor-repeater-item-187b485  e-hotspot--position-left e-hotspot--position-top   e-hotspot--circle\">\n\n\t\t\t\t\t\t\t\t<div class=\"e-hotspot__button e-hotspot--expand\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"e-hotspot__outer-circle\"><\/div>\n\t\t\t\t\t\t<div class=\"e-hotspot__inner-circle\"><\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"e-hotspot__tooltip e-hotspot--show-tooltip e-hotspot--tooltip-position  \" >\n\t\t\t\t\t\t<div class=\"infoBulle\">\n<p><img decoding=\"async\" src=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Montcelard.jpg\" alt=\"Campus Domaine Montcelard\"><\/p>\n<p class=\"label\">Tassin-la-Demi-Lune, France<\/p>\n<p>Domaine Montcelard<\/p>\n<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\n\t\t\t<\/div>\n\n\t\n\t\t\t\t\t\t<div class=\"e-hotspot elementor-repeater-item-679012f  e-hotspot--position-left e-hotspot--position-top   e-hotspot--circle\">\n\n\t\t\t\t\t\t\t\t<div class=\"e-hotspot__button e-hotspot--expand\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"e-hotspot__outer-circle\"><\/div>\n\t\t\t\t\t\t<div class=\"e-hotspot__inner-circle\"><\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"e-hotspot__tooltip e-hotspot--show-tooltip e-hotspot--tooltip-position  \" >\n\t\t\t\t\t\t<div class=\"infoBulle\">\n<p><img decoding=\"async\" src=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/salt-lake.jpg\" alt=\"Campus Salt Lake City\"><\/p>\n<p class=\"label\">St. Louis, United State <\/p>\n<p>Salt Lake City<\/p>\n<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\n\t\t\t<\/div>\n\n\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-92286bc elementor-absolute elementor-hidden-desktop elementor-hidden-tablet elementor-invisible elementor-widget elementor-widget-hotspot\" data-id=\"92286bc\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"mapCanvasPins\" data-settings=\"{&quot;hotspot&quot;:[{&quot;_id&quot;:&quot;187b485&quot;,&quot;hotspot_tooltip_content&quot;:&quot;&quot;,&quot;hotspot_offset_x&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:48.5,&quot;sizes&quot;:[]},&quot;hotspot_offset_y&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:44.5,&quot;sizes&quot;:[]},&quot;hotspot_tooltip_position&quot;:&quot;yes&quot;,&quot;hotspot_position_tablet&quot;:&quot;bottom&quot;,&quot;index&quot;:0,&quot;__dynamic__&quot;:null,&quot;hotspot_label&quot;:&quot;&quot;,&quot;hotspot_link&quot;:{&quot;url&quot;:&quot;&quot;,&quot;is_external&quot;:&quot;&quot;,&quot;nofollow&quot;:&quot;&quot;,&quot;custom_attributes&quot;:&quot;&quot;},&quot;hotspot_icon&quot;:{&quot;value&quot;:&quot;&quot;,&quot;library&quot;:&quot;&quot;},&quot;hotspot_custom_size&quot;:&quot;no&quot;,&quot;hotspot_horizontal&quot;:&quot;left&quot;,&quot;hotspot_vertical&quot;:&quot;top&quot;,&quot;hotspot_position&quot;:&quot;&quot;},{&quot;_id&quot;:&quot;679012f&quot;,&quot;hotspot_tooltip_content&quot;:&quot;&quot;,&quot;hotspot_offset_x&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:15,&quot;sizes&quot;:[]},&quot;hotspot_offset_y&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:46,&quot;sizes&quot;:[]},&quot;hotspot_tooltip_position&quot;:&quot;yes&quot;,&quot;hotspot_position_mobile&quot;:&quot;top&quot;,&quot;hotspot_position_tablet&quot;:&quot;top&quot;,&quot;index&quot;:1,&quot;__dynamic__&quot;:null,&quot;hotspot_label&quot;:&quot;&quot;,&quot;hotspot_link&quot;:{&quot;url&quot;:&quot;&quot;,&quot;is_external&quot;:&quot;&quot;,&quot;nofollow&quot;:&quot;&quot;,&quot;custom_attributes&quot;:&quot;&quot;},&quot;hotspot_icon&quot;:{&quot;value&quot;:&quot;&quot;,&quot;library&quot;:&quot;&quot;},&quot;hotspot_custom_size&quot;:&quot;no&quot;,&quot;hotspot_horizontal&quot;:&quot;left&quot;,&quot;hotspot_vertical&quot;:&quot;top&quot;,&quot;hotspot_position&quot;:&quot;&quot;}],&quot;tooltip_position_mobile&quot;:&quot;left&quot;,&quot;tooltip_animation&quot;:&quot;e-hotspot--fade-grow&quot;,&quot;tooltip_position_tablet&quot;:&quot;left&quot;,&quot;tooltip_trigger_mobile&quot;:&quot;click&quot;,&quot;_position&quot;:&quot;absolute&quot;,&quot;_animation&quot;:&quot;fadeIn&quot;,&quot;_animation_delay&quot;:2000,&quot;tooltip_trigger_tablet&quot;:&quot;click&quot;,&quot;tooltip_position&quot;:&quot;top&quot;,&quot;tooltip_trigger&quot;:&quot;click&quot;}\" data-widget_type=\"hotspot.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"287\" src=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/mapDotted-MU.svg\" class=\"attachment-large size-large wp-image-661\" alt=\"\" \/>\n\t\t\t\t\t\t<div class=\"e-hotspot elementor-repeater-item-187b485  e-hotspot--position-left e-hotspot--position-top   e-hotspot--circle\">\n\n\t\t\t\t\t\t\t\t<div class=\"e-hotspot__button e-hotspot--expand\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"e-hotspot__outer-circle\"><\/div>\n\t\t\t\t\t\t<div class=\"e-hotspot__inner-circle\"><\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\n\t\t\t<\/div>\n\n\t\n\t\t\t\t\t\t<div class=\"e-hotspot elementor-repeater-item-679012f  e-hotspot--position-left e-hotspot--position-top   e-hotspot--circle\">\n\n\t\t\t\t\t\t\t\t<div class=\"e-hotspot__button e-hotspot--expand\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"e-hotspot__outer-circle\"><\/div>\n\t\t\t\t\t\t<div class=\"e-hotspot__inner-circle\"><\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\n\t\t\t<\/div>\n\n\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f826a8b elementor-widget elementor-widget-html\" data-id=\"f826a8b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\n\/*\n#mapCanvas .elementor-widget-html {\n    height: 100%;\n}\n*\/\n\n#mapCanvas,\n#mapCanvasPins {\n    aspect-ratio: 4\/3;\n}\n\n.e-hotspot__tooltip {\n    padding: 0;\n    overflow: hidden;\n}\n\n.infoBulle {\n    min-height: 150px;\n    position: relative;\n    padding: 1rem;\n    display: flex;\n    flex-direction: column;\n    justify-content: end;\n    align-items: flex-start;\n    :before {\n        content: '';\n        display: block;\n        height: 100%;\n        width: 100%;\n        position: absolute;\n        z-index: -1;\n        top: 0;\n        left: 0;\n        background: linear-gradient(15deg,rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 60%);\n    }\n    img {\n        object-fit: cover;\n        object-position: center;\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        height: 100%;\n        width: 100%;\n        z-index: -1;\n    }\n    p {\n       margin-bottom: 0; \n    }\n    .label {\n        font-size: 0.6em;\n    }\n}\n\n@media (max-width: 992px) {\n    .infoBulle {\n        min-height: 130px;\n    }\n}\n\n@media (max-width: 768px) {\n    .hideOnMobile {\n        display: none !important;\n    }\n    .infoBulle {\n        min-height: 120px;\n        padding: .75rem;\n    }\n}\n<\/style>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-14aecaf e-con-full elementor-hidden-desktop elementor-hidden-tablet e-flex e-con e-child\" data-id=\"14aecaf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-41c1075 e-con-full e-flex e-con e-child\" data-id=\"41c1075\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation_mobile&quot;:&quot;fadeInUp&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5c09281 elementor-widget elementor-widget-heading\" data-id=\"5c09281\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Tassin-la-Demi-Lune, France<\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-09f8762 elementor-widget elementor-widget-heading\" data-id=\"09f8762\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Domaine Montcelard<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1ab2929 e-con-full e-flex e-con e-child\" data-id=\"1ab2929\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation_mobile&quot;:&quot;fadeInUp&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f1740bc elementor-widget elementor-widget-heading\" data-id=\"f1740bc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">St. Louis, United State <\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e8968c0 elementor-widget elementor-widget-heading\" data-id=\"e8968c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Salt Lake City<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Learning Spaces to support your development M\u00e9rieux Universit\u00e9 is more than just a training center: it&#8217;s a space for experience, discovery and learning, where every visitor leaves enriched. Domaine Montcelard A soothing, inspiring setting. In the heart of a 16-hectare wooded estate, Domaine de Montcelard welcomes you to its Maison de Ma\u00eetre, whose origins date [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1640,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-2447","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Learning Spaces - M\u00e9rieux Universit\u00e9<\/title>\n<meta name=\"description\" content=\"Our M\u00e9rieux University learning spaces in Montcelard and Salt Lake City, dedicated to your professional development\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/merieux-universite.com\/en\/learning-spaces\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Learning Spaces - M\u00e9rieux Universit\u00e9\" \/>\n<meta property=\"og:description\" content=\"Our M\u00e9rieux University learning spaces in Montcelard and Salt Lake City, dedicated to your professional development\" \/>\n<meta property=\"og:url\" content=\"https:\/\/merieux-universite.com\/en\/learning-spaces\/\" \/>\n<meta property=\"og:site_name\" content=\"M\u00e9rieux Universit\u00e9\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-25T13:22:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Montcelard-Merieux-3.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"853\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/merieux-universite.com\/en\/learning-spaces\/\",\"url\":\"https:\/\/merieux-universite.com\/en\/learning-spaces\/\",\"name\":\"Learning Spaces - M\u00e9rieux Universit\u00e9\",\"isPartOf\":{\"@id\":\"https:\/\/merieux-universite.com\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/merieux-universite.com\/en\/learning-spaces\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/merieux-universite.com\/en\/learning-spaces\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Montcelard-Merieux-3.jpg\",\"datePublished\":\"2025-05-19T15:04:12+00:00\",\"dateModified\":\"2025-09-25T13:22:36+00:00\",\"description\":\"Our M\u00e9rieux University learning spaces in Montcelard and Salt Lake City, dedicated to your professional development\",\"breadcrumb\":{\"@id\":\"https:\/\/merieux-universite.com\/en\/learning-spaces\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/merieux-universite.com\/en\/learning-spaces\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/merieux-universite.com\/en\/learning-spaces\/#primaryimage\",\"url\":\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Montcelard-Merieux-3.jpg\",\"contentUrl\":\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Montcelard-Merieux-3.jpg\",\"width\":1280,\"height\":853,\"caption\":\"Montcerlard - M\u00e9rieux universit\u00e9\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/merieux-universite.com\/en\/learning-spaces\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/merieux-universite.com\/en\/homepage\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Learning Spaces\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/merieux-universite.com\/en\/#website\",\"url\":\"https:\/\/merieux-universite.com\/en\/\",\"name\":\"M\u00e9rieux Universit\u00e9\",\"description\":\"It starts with you\",\"publisher\":{\"@id\":\"https:\/\/merieux-universite.com\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/merieux-universite.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/merieux-universite.com\/en\/#organization\",\"name\":\"M\u00e9rieux Universit\u00e9\",\"url\":\"https:\/\/merieux-universite.com\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/merieux-universite.com\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/05\/logo-merieux-univerisite.svg\",\"contentUrl\":\"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/05\/logo-merieux-univerisite.svg\",\"width\":549,\"height\":218,\"caption\":\"M\u00e9rieux Universit\u00e9\"},\"image\":{\"@id\":\"https:\/\/merieux-universite.com\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/mrieux-universit\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Learning Spaces - M\u00e9rieux Universit\u00e9","description":"Our M\u00e9rieux University learning spaces in Montcelard and Salt Lake City, dedicated to your professional development","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/merieux-universite.com\/en\/learning-spaces\/","og_locale":"en_US","og_type":"article","og_title":"Learning Spaces - M\u00e9rieux Universit\u00e9","og_description":"Our M\u00e9rieux University learning spaces in Montcelard and Salt Lake City, dedicated to your professional development","og_url":"https:\/\/merieux-universite.com\/en\/learning-spaces\/","og_site_name":"M\u00e9rieux Universit\u00e9","article_modified_time":"2025-09-25T13:22:36+00:00","og_image":[{"width":1280,"height":853,"url":"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Montcelard-Merieux-3.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/merieux-universite.com\/en\/learning-spaces\/","url":"https:\/\/merieux-universite.com\/en\/learning-spaces\/","name":"Learning Spaces - M\u00e9rieux Universit\u00e9","isPartOf":{"@id":"https:\/\/merieux-universite.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/merieux-universite.com\/en\/learning-spaces\/#primaryimage"},"image":{"@id":"https:\/\/merieux-universite.com\/en\/learning-spaces\/#primaryimage"},"thumbnailUrl":"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Montcelard-Merieux-3.jpg","datePublished":"2025-05-19T15:04:12+00:00","dateModified":"2025-09-25T13:22:36+00:00","description":"Our M\u00e9rieux University learning spaces in Montcelard and Salt Lake City, dedicated to your professional development","breadcrumb":{"@id":"https:\/\/merieux-universite.com\/en\/learning-spaces\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/merieux-universite.com\/en\/learning-spaces\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/merieux-universite.com\/en\/learning-spaces\/#primaryimage","url":"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Montcelard-Merieux-3.jpg","contentUrl":"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/06\/Montcelard-Merieux-3.jpg","width":1280,"height":853,"caption":"Montcerlard - M\u00e9rieux universit\u00e9"},{"@type":"BreadcrumbList","@id":"https:\/\/merieux-universite.com\/en\/learning-spaces\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/merieux-universite.com\/en\/homepage\/"},{"@type":"ListItem","position":2,"name":"Learning Spaces"}]},{"@type":"WebSite","@id":"https:\/\/merieux-universite.com\/en\/#website","url":"https:\/\/merieux-universite.com\/en\/","name":"M\u00e9rieux Universit\u00e9","description":"It starts with you","publisher":{"@id":"https:\/\/merieux-universite.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/merieux-universite.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/merieux-universite.com\/en\/#organization","name":"M\u00e9rieux Universit\u00e9","url":"https:\/\/merieux-universite.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/merieux-universite.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/05\/logo-merieux-univerisite.svg","contentUrl":"https:\/\/merieux-universite.com\/wp-content\/uploads\/2025\/05\/logo-merieux-univerisite.svg","width":549,"height":218,"caption":"M\u00e9rieux Universit\u00e9"},"image":{"@id":"https:\/\/merieux-universite.com\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/mrieux-universit\/"]}]}},"_links":{"self":[{"href":"https:\/\/merieux-universite.com\/en\/wp-json\/wp\/v2\/pages\/2447","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/merieux-universite.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/merieux-universite.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/merieux-universite.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/merieux-universite.com\/en\/wp-json\/wp\/v2\/comments?post=2447"}],"version-history":[{"count":5,"href":"https:\/\/merieux-universite.com\/en\/wp-json\/wp\/v2\/pages\/2447\/revisions"}],"predecessor-version":[{"id":3747,"href":"https:\/\/merieux-universite.com\/en\/wp-json\/wp\/v2\/pages\/2447\/revisions\/3747"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/merieux-universite.com\/en\/wp-json\/wp\/v2\/media\/1640"}],"wp:attachment":[{"href":"https:\/\/merieux-universite.com\/en\/wp-json\/wp\/v2\/media?parent=2447"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}