{"id":6491,"date":"2025-04-25T10:36:32","date_gmt":"2025-04-25T08:36:32","guid":{"rendered":"https:\/\/www.mbs-industry.com\/?page_id=6491"},"modified":"2026-07-08T15:59:25","modified_gmt":"2026-07-08T13:59:25","slug":"boitier-securite-bass","status":"publish","type":"page","link":"https:\/\/www.mbs-industry.com\/en\/bass-safety-controller\/","title":{"rendered":"BASS Safety Controller"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6491\" class=\"elementor elementor-6491\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2e2214a e-flex e-con-boxed e-con e-parent\" data-id=\"2e2214a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-9271ca4 e-con-full e-flex e-con e-child\" data-id=\"9271ca4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-91123a2 elementor-widget elementor-widget-image\" data-id=\"91123a2\" 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=\"1200\" height=\"1200\" src=\"https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b.png\" class=\"attachment-full size-full wp-image-9882\" alt=\"\" srcset=\"https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b.png 1200w, https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b-600x600.png 600w, https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b-100x100.png 100w, https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b-300x300.png 300w, https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b-1024x1024.png 1024w, https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b-150x150.png 150w, https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b-768x768.png 768w, https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b-700x700.png 700w\" sizes=\"(max-width: 1200px) 100vw, 1200px\">\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<div class=\"elementor-element elementor-element-833bf0f e-con-full e-flex e-con e-child\" data-id=\"833bf0f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-759a70e elementor-widget elementor-widget-heading\" data-id=\"759a70e\" 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 style=\"color: #faa94a\">AVOID<\/span> INCIDENTS.<br>\n<span style=\"color: #faa94a\">SECURE<\/span> YOUR AUTO-BELAY LANES.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0f4839e elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"0f4839e\" 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\">THE \"E-BIKE OF CLIMBING\"<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a1ddbe elementor-align-start elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"8a1ddbe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-dot-circle\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Alerte lorsqu\u2019un grimpeur ne s\u2019est pas attach\u00e9 \u00e0 l\u2019enrouleur.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-dot-circle\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Am\u00e9liore la s\u00e9curit\u00e9 en alertant en cas de risque d'accident.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-dot-circle\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Ayez enfin l'esprit tranquille.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0f2956b elementor-align-left elementor-button-warning elementor-invisible elementor-widget elementor-widget-button\" data-id=\"0f2956b\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-float\" href=\"https:\/\/www.mbs-industry.com\/en\/footing-vertical-private-gyms\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-shopping-cart\" viewBox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">THE BENEFITS FOR MY GYM<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cde8d77 elementor-widget elementor-widget-text-editor\" data-id=\"cde8d77\" 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>Available for purchase or rental.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2514b6b e-flex e-con-boxed e-con e-parent\" data-id=\"2514b6b\" 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-eb4f330 elementor-widget elementor-widget-heading\" data-id=\"eb4f330\" 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\">How it works<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c7fe51f elementor-widget elementor-widget-video\" data-id=\"c7fe51f\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;video_type&quot;:&quot;vimeo&quot;,&quot;mute&quot;:&quot;yes&quot;,&quot;loop&quot;:&quot;yes&quot;,&quot;yt_privacy&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<iframe class=\"elementor-video-iframe\" allowfullscreen allow=\"clipboard-write\" title=\"youtube Video Player\" src=\"https:\/\/www.youtube.com\/embed\/6qzzI5A0YMw?feature=oembed&amp;color&amp;autopause=0&amp;dnt=true&amp;loop=1&amp;muted=1&amp;title=1&amp;portrait=1&amp;byline=1\"><\/iframe>\t\t<\/div>\n\t\t\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-34e7576 e-flex e-con-boxed e-con e-parent\" data-id=\"34e7576\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-f53203d e-con-full e-flex e-con e-child\" data-id=\"f53203d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-0180db8 e-con-full e-flex e-con e-child\" data-id=\"0180db8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cac1807 elementor-widget elementor-widget-video\" data-id=\"cac1807\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;video_type&quot;:&quot;vimeo&quot;,&quot;mute&quot;:&quot;yes&quot;,&quot;loop&quot;:&quot;yes&quot;,&quot;yt_privacy&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<iframe class=\"elementor-video-iframe\" allowfullscreen allow=\"clipboard-write\" title=\"youtube Video Player\" src=\"https:\/\/www.youtube.com\/embed\/cn_SfwtNlic?feature=oembed&amp;color&amp;autopause=0&amp;dnt=true&amp;loop=1&amp;muted=1&amp;title=1&amp;portrait=1&amp;byline=1\"><\/iframe>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b3443a1 e-con-full e-flex e-con e-child\" data-id=\"b3443a1\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7de8990 elementor-widget elementor-widget-heading\" data-id=\"7de8990\" 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\">How it works<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dee59bd elementor-align-start elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"dee59bd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-dot-circle\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">L\u2019enrouleur est attach\u00e9 au bo\u00eetier de s\u00e9curit\u00e9 BASS<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-dot-circle\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Si une personne commence \u00e0 grimper sans s\u2019\u00eatre attach\u00e9e \u00e0 l\u2019enrouleur, le BASS \u00e9met une alarme sonore et visuelle, indiquant au grimpeur de redescendre pour s\u2019attacher.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-dot-circle\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Le BASS permet d\u2019\u00e9viter des drames qui sont malheureusement de plus en plus fr\u00e9quents dans les salles d\u2019escalade.<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\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-80437ef e-flex e-con-boxed e-con e-parent\" data-id=\"80437ef\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ce2569e elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"ce2569e\" 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\">features and benefits<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5f310c1 e-con-full e-flex e-con e-child\" data-id=\"5f310c1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-7b4175a e-con-full e-flex e-con e-child\" data-id=\"7b4175a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-583e697 elementor-align-start elementor-widget__width-inherit elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"583e697\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-dot-circle\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">S\u2019adapte \u00e0 tous les enrouleurs du march\u00e9<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-dot-circle\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Gardez l\u2019esprit tranquille<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-dot-circle\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Alarme sonore jusqu\u2019\u00e0 110db<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-dot-circle\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Fonctionne sur tous les profils de voie (dalle, vertical, d\u00e9vers, di\u00e8dre)<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-dot-circle\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Syst\u00e9matise le double check<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-dot-circle\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Connect\u00e9 \u00e0 une interface de gestion salle (suivi de l\u2019utilisation, anticipation maintenance enrouleur...)<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-57fda76 e-con-full e-flex e-con e-child\" data-id=\"57fda76\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a52741b elementor-widget elementor-widget-image\" data-id=\"a52741b\" 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=\"1200\" height=\"1200\" src=\"https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b.png\" class=\"attachment-full size-full wp-image-9882\" alt=\"\" srcset=\"https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b.png 1200w, https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b-600x600.png 600w, https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b-100x100.png 100w, https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b-300x300.png 300w, https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b-1024x1024.png 1024w, https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b-150x150.png 150w, https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b-768x768.png 768w, https:\/\/www.mbs-industry.com\/wp-content\/uploads\/2025\/12\/vert-final-copie-b-700x700.png 700w\" sizes=\"(max-width: 1200px) 100vw, 1200px\">\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-18f40f5 elementor-align-left elementor-button-warning elementor-invisible elementor-widget elementor-widget-button\" data-id=\"18f40f5\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-float\" href=\"https:\/\/www.mbs-industry.com\/produit\/bass\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-check\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">rent your B.A.S.S.<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cb38847 elementor-widget elementor-widget-text-editor\" data-id=\"cb38847\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t15\u20ac excl VAT per month \n<br>with 490\u20ac excl. VAT Down Payment\t\t\t\t\t\t\t\t<\/div>\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-e99d2b2 e-flex e-con-boxed e-con e-parent\" data-id=\"e99d2b2\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-43cd055 elementor-widget elementor-widget-heading\" data-id=\"43cd055\" 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\">the climbing of tomorrow<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-97e5238 e-con-full animated-slow e-flex elementor-invisible e-con e-child\" data-id=\"97e5238\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;zoomIn&quot;,&quot;animation_delay&quot;:300}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2df0e3e elementor-widget elementor-widget-html\" data-id=\"2df0e3e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- MBS Industry \u2014 Carte interactive des installations BASS -->\n<!-- Coller ce code dans un widget HTML Elementor -->\n\n<script src=\"https:\/\/d3js.org\/d3.v7.min.js\"><\/script>\n<script src=\"https:\/\/d3js.org\/topojson.v3.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/papaparse@5.4.1\/papaparse.min.js\"><\/script>\n\n<style>\n  #mbs-map { margin: 0; padding: 0; box-sizing: border-box; }\n  #mbs-map *, #mbs-map *::before, #mbs-map *::after { box-sizing: border-box; }\n\n  #mbs-map .map-container {\n    position: relative;\n    width: 100%;\n    max-width: 100%;\n    margin: 0 auto;\n    background: #000;\n    border: 1px solid #222;\n    border-radius: 20px;\n    padding: 1px 1px 20px 1px;\n    box-shadow: 0 1px 3px rgba(256,256,256,0.1), 0 0 10px 5px rgba(0,0,0,0.25);\n    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n  }\n\n  #mbs-map .map-wrapper {\n    position: relative;\n    width: 100%;\n    max-height: 700px;\n    overflow: hidden;\n    border-radius: 18px;\n    border: 0px solid #000000;\n    cursor: grab;\n  }\n\n  #mbs-map .map-wrapper:active { cursor: grabbing; }\n\n  #mbs-map .map-wrapper svg {\n    display: block;\n    width: 100%;\n    height: auto;\n  }\n\n  #mbs-map .country {\n    fill: #222222;\n    stroke: #FAA94A;\n    stroke-width: 0;\n    pointer-events: none;\n  }\n\n  #mbs-map .water { fill: #000; }\n\n  #mbs-map .graticule {\n    fill: none;\n    stroke: #000;\n    stroke-width: 0.5;\n  }\n\n  #mbs-map .country-border {\n    fill: none;\n    stroke: #444;\n    stroke-width: 0.5;\n    stroke-linejoin: round;\n  }\n\n  #mbs-map .marker { cursor: pointer; }\n  #mbs-map .marker-dot { transition: r 0.15s ease; }\n  #mbs-map .marker-bass .marker-dot { fill: #1C9BBD; }\n\n\n  #mbs-map .tooltip {\n    position: absolute;\n    pointer-events: none;\n    background: #111;\n    color: #fff;\n    padding: 15px;\n    border-radius: 10px;\n    font-size: 0.82rem;\n    line-height: 1.5;\n    opacity: 0;\n    transform: translateY(4px);\n    transition: opacity 0.15s, transform 0.15s;\n    z-index: 100;\n    white-space: nowrap;\n    box-shadow: 0 4px 20px rgba(0,0,0,0.2);\n  }\n\n  #mbs-map .tooltip.visible {\n    opacity: 1;\n    transform: translateY(0);\n  }\n\n  #mbs-map .tooltip-name {\n    font-weight: 700;\n    font-size: 0.92rem;\n    margin-bottom: 2px;\n  }\n\n  #mbs-map .tooltip-location {\n    color: #fff;\n    font-size: 0.78rem;\n  }\n\n  #mbs-map .tooltip-products {\n    margin-top: 8px;\n    display: flex;\n    gap: 6px;\n    flex-wrap: wrap;\n  }\n\n  #mbs-map .tooltip-badge {\n    display: inline-block;\n    padding: 3px 10px;\n    border-radius: 5px;\n    font-size: 0.72rem;\n    font-weight: 600;\n    letter-spacing: 0.03em;\n  }\n\n  #mbs-map .tooltip-badge.bass {\n    background: rgba(28,155,189,0.15);\n    color: #1C9BBD;\n  }\n\n  #mbs-map .zoom-controls {\n    position: absolute;\n    top: 12px;\n    right: 12px;\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n    z-index: 50;\n  }\n\n  #mbs-map .zoom-btn {\n    width: 32px;\n    height: 32px;\n    border: 1px solid #000;\n    background: #FAA94A;\n    border-radius: 8px;\n    font-size: 1.1rem;\n    color: #000;\n    cursor: pointer;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition: background 0.15s, color 0.15s;\n    box-shadow: 0 1px 3px rgba(0,0,0,0.06);\n  }\n\n  #mbs-map .zoom-btn:hover {\n    background: #fff;\n    color: #000;\n    border-color: #111;\n  }\n\n  #mbs-map .zoom-hint {\n    position: absolute;\n    bottom: 10px;\n    left: 50%;\n    transform: translateX(-50%);\n    font-size: 0.7rem;\n    color: #fff;\n    z-index: 50;\n    pointer-events: none;\n    transition: opacity 0.3s;\n  }\n\n  #mbs-map .legend {\n    display: flex;\n    justify-content: center;\n    gap: 20px;\n    margin-top: 20px;\n    flex-wrap: wrap;\n  }\n\n  #mbs-map .legend-item {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    font-family: Poppins;\n    font-size: 0.8rem;\n    color: #fff;\n    font-weight: 500;\n  }\n\n  #mbs-map .legend-dot {\n    width: 10px;\n    height: 10px;\n    border-radius: 50%;\n    flex-shrink: 0;\n  }\n\n  #mbs-map .legend-dot.bass { background: #1C9BBD; }\n\n  #mbs-map .stats {\n    display: flex;\n    justify-content: center;\n    gap: 32px;\n    margin-top: 16px;\n    padding-top: 16px;\n    border-top: 1px solid #222;\n    flex-wrap: wrap;\n  }\n\n  #mbs-map .stat { text-align: center; }\n\n  #mbs-map .stat-number {\n    font-size: 30px;\n    font-family: Poppins;\n    font-weight: 700;\n    color: #ffffff;\n  }\n\n  #mbs-map .stat-label {\n    font-size: 14px;\n    font-family: Poppins;\n    color: #fff;\n    text-transform: uppercase;\n    letter-spacing: 0.06em;\n    margin-top: 2px;\n  }\n\n  @media (max-width: 600px) {\n    #mbs-map .map-container { padding: 20px 12px 16px; border-radius: 12px; }\n    #mbs-map .legend { gap: 12px; }\n    #mbs-map .stats { gap: 16px; }\n    #mbs-map .stat-number { font-size: 1.2rem; }\n    #mbs-map .tooltip { white-space: normal; max-width: calc(100% - 16px); }\n  }\n<\/style>\n\n<div id=\"mbs-map\">\n  <div class=\"map-container\">\n    <div class=\"map-wrapper\" id=\"mbs-map-wrapper\">\n      <div class=\"zoom-controls\">\n        <button class=\"zoom-btn\" id=\"mbs-zoom-in\" title=\"Zoom avant\">+<\/button>\n        <button class=\"zoom-btn\" id=\"mbs-zoom-out\" title=\"Zoom arri\u00e8re\">&minus;<\/button>\n        <button class=\"zoom-btn\" id=\"mbs-zoom-reset\" title=\"R\u00e9initialiser\" style=\"font-size:0.75rem;\">&#8634;<\/button>\n      <\/div>\n      <div class=\"zoom-hint\" id=\"mbs-zoom-hint\"><\/div>\n\n      <div class=\"tooltip\" id=\"mbs-tooltip\">\n        <div class=\"tooltip-name\" id=\"mbs-tooltip-name\"><\/div>\n        <div class=\"tooltip-location\" id=\"mbs-tooltip-location\"><\/div>\n        <div class=\"tooltip-products\" id=\"mbs-tooltip-products\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"legend\">\n      <div class=\"legend-item\">\n        <div class=\"legend-dot bass\"><\/div>\n        <span id=\"mbs-legend-bass\">BASS \u2014 Enrouleurs s&eacute;curis&eacute;s<\/span>\n      <\/div>\n    <\/div>\n\n    <div class=\"stats\">\n      <div class=\"stat\">\n        <div class=\"stat-number\" id=\"mbs-stat-total\">&mdash;<\/div>\n        <div class=\"stat-label\" id=\"mbs-label-gyms\">Salles<\/div>\n      <\/div>\n      <div class=\"stat\">\n        <div class=\"stat-number\" id=\"mbs-stat-countries\">&mdash;<\/div>\n        <div class=\"stat-label\" id=\"mbs-label-countries\">Pays<\/div>\n      <\/div>\n      <div class=\"stat\">\n        <div class=\"stat-number\" id=\"mbs-stat-bass\">&mdash;<\/div>\n        <div class=\"stat-label\">BASS<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function() {\n  \/\/ --- i18n : d\u00e9tection de langue + dictionnaires (contournement Falang payant) ---\n  var LANG = (function () {\n    var l = (document.documentElement.lang || '').toLowerCase().slice(0, 2);\n    if (l === 'fr' || l === 'en') return l;\n    var m = location.pathname.match(\/\\\/(fr|en)\\\/\/);\n    return m ? m[1] : 'fr';\n  })();\n\n  var T = {\n    fr: {\n      zoomIn: 'Zoom avant', zoomOut: 'Zoom arri\u00e8re', zoomReset: 'R\u00e9initialiser',\n      hintTouch: 'Pincez pour zoomer', hintMouse: 'Scroll pour zoomer',\n      statGyms: 'Salles', statCountries: 'Pays',\n      legendCami: 'CAMI \u2014 Footing Vertical\u2122',\n      legendBass: 'BASS \u2014 Enrouleurs s\u00e9curis\u00e9s',\n      error: 'Erreur de chargement de la carte.'\n    },\n    en: {\n      zoomIn: 'Zoom in', zoomOut: 'Zoom out', zoomReset: 'Reset',\n      hintTouch: 'Pinch to zoom', hintMouse: 'Scroll to zoom',\n      statGyms: 'Gyms', statCountries: 'Countries',\n      legendCami: 'CAMI \u2014 Footing Vertical\u2122',\n      legendBass: 'BASS \u2014 Secured auto-belays',\n      error: 'Failed to load the map.'\n    }\n  };\n  var t = T[LANG] || T.fr;\n\n  var COUNTRY_EN = {\n    'France': 'France', 'Allemagne': 'Germany', 'Belgique': 'Belgium',\n    'Suisse': 'Switzerland', 'Espagne': 'Spain', 'Italie': 'Italy',\n    'Pays-Bas': 'Netherlands', 'Royaume-Uni': 'United Kingdom',\n    'Autriche': 'Austria', 'Luxembourg': 'Luxembourg', 'Portugal': 'Portugal',\n    'Pologne': 'Poland', 'R\u00e9publique tch\u00e8que': 'Czechia', 'Danemark': 'Denmark',\n    'Su\u00e8de': 'Sweden', 'Norv\u00e8ge': 'Norway', 'Finlande': 'Finland',\n    'Irlande': 'Ireland', 'Slov\u00e9nie': 'Slovenia', 'Croatie': 'Croatia'\n  };\n  function tCountry(c) { return (LANG === 'en' && COUNTRY_EN[c]) || c; }\n\n  \/\/ Application des cha\u00eenes statiques\n  document.getElementById('mbs-zoom-in').title = t.zoomIn;\n  document.getElementById('mbs-zoom-out').title = t.zoomOut;\n  document.getElementById('mbs-zoom-reset').title = t.zoomReset;\n  var I18N_LABELS = {\n    'mbs-label-gyms': t.statGyms,\n    'mbs-label-countries': t.statCountries,\n    'mbs-legend-cami': t.legendCami,\n    'mbs-legend-bass': t.legendBass\n  };\n  Object.keys(I18N_LABELS).forEach(function (id) {\n    var el = document.getElementById(id);\n    if (el) el.textContent = I18N_LABELS[id];\n  });\n\n  const SHEET_CSV_URL = 'https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vSXPEjAJyq0sRJGqd53q3MTnv2lH_4NFjfg2SSXon8bpNgrY_kSuejK9ldEWa8p-HxC5Ok_3tP2qrTE\/pub?gid=0&single=true&output=csv';\n\n  function loadInstallations() {\n    return new Promise(function(resolve, reject) {\n      Papa.parse(SHEET_CSV_URL, {\n        download: true,\n        header: true,\n        skipEmptyLines: true,\n        complete: function(results) {\n          var installations = results.data.map(function(row) {\n            return {\n              name: row.Nom,\n              city: row.Ville,\n              country: row.Pays,\n              lat: parseFloat(row.Latitude),\n              lon: parseFloat(row.Longitude),\n              nb_bass: parseInt(row.Nb_BASS) || 0\n            };\n          }).filter(function(d) { return !isNaN(d.lat) && !isNaN(d.lon) && d.nb_bass > 0; });\n          resolve(installations);\n        },\n        error: function(err) { reject(err); }\n      });\n    });\n  }\n\n  var wrapper = document.getElementById('mbs-map-wrapper');\n  var width = 900;\n  var height = 560;\n\n  \/\/ Dynamic base radius: compensates for SVG shrink on small screens\n  var baseRadius = 4;\n  function updateBaseRadius() {\n    var containerWidth = wrapper.getBoundingClientRect().width;\n    if (containerWidth > 0) {\n      baseRadius = Math.min(4 * (width \/ containerWidth), 12);\n    }\n  }\n  updateBaseRadius();\n\n  \/\/ Recalculate on resize\n  if (typeof ResizeObserver !== 'undefined') {\n    new ResizeObserver(function() {\n      updateBaseRadius();\n      g.selectAll('.marker-dot').attr('r', baseRadius \/ currentScale);\n    }).observe(wrapper);\n  }\n\n  var projection = d3.geoMercator()\n    .center([2, 47])\n    .scale(600)\n    .translate([width \/ 2, height \/ 2]);\n\n  var path = d3.geoPath().projection(projection);\n\n  var svg = d3.select('#mbs-map-wrapper')\n    .append('svg')\n    .attr('viewBox', '0 0 ' + width + ' ' + height)\n    .attr('preserveAspectRatio', 'xMidYMid meet');\n\n  var g = svg.append('g');\n\n  var currentScale = 1;\n\n  var zoom = d3.zoom()\n    .scaleExtent([1, 12])\n    .on('zoom', function(event) {\n      g.attr('transform', event.transform);\n      currentScale = event.transform.k;\n      g.selectAll('.marker-dot').attr('r', baseRadius \/ currentScale);\n      d3.select('#mbs-zoom-hint').style('opacity', 0);\n    });\n\n  svg.call(zoom);\n\n  \/\/ Set zoom hint text based on device\n  var isTouchDevice = ('ontouchstart' in window) || (navigator.maxTouchPoints > 0);\n  document.getElementById('mbs-zoom-hint').textContent = isTouchDevice ? t.hintTouch : t.hintMouse;\n\n  d3.select('#mbs-zoom-in').on('click', function() { svg.transition().duration(300).call(zoom.scaleBy, 1.5); });\n  d3.select('#mbs-zoom-out').on('click', function() { svg.transition().duration(300).call(zoom.scaleBy, 0.67); });\n  d3.select('#mbs-zoom-reset').on('click', function() { svg.transition().duration(400).call(zoom.transform, d3.zoomIdentity); });\n\n  var worldUrl = 'https:\/\/cdn.jsdelivr.net\/npm\/world-atlas@2\/countries-110m.json';\n\n  Promise.all([\n    d3.json(worldUrl),\n    loadInstallations()\n  ]).then(function(results) {\n    var world = results[0];\n    var installations = results[1];\n    var countries = topojson.feature(world, world.objects.countries);\n    var borders = topojson.mesh(world, world.objects.countries, function(a, b) { return a !== b; });\n\n    g.append('rect')\n      .attr('class', 'water')\n      .attr('width', width)\n      .attr('height', height);\n\n    g.selectAll('.country')\n      .data(countries.features)\n      .enter()\n      .append('path')\n      .attr('class', 'country')\n      .attr('d', path);\n\n    g.append('path')\n      .datum(borders)\n      .attr('class', 'country-border')\n      .attr('d', path);\n\n    var markerGroups = g.selectAll('.marker')\n      .data(installations)\n      .enter()\n      .append('g')\n      .attr('class', 'marker marker-bass')\n      .attr('transform', function(d) {\n        var coords = projection([d.lon, d.lat]);\n        return 'translate(' + coords[0] + ',' + coords[1] + ')';\n      });\n\n    markerGroups.append('circle')\n      .attr('class', 'marker-dot')\n      .attr('cx', 0)\n      .attr('cy', 0)\n      .attr('r', baseRadius)\n      .attr('shape-rendering', 'geometricPrecision');\n\n    var tooltip = document.getElementById('mbs-tooltip');\n    var tooltipName = document.getElementById('mbs-tooltip-name');\n    var tooltipLocation = document.getElementById('mbs-tooltip-location');\n    var tooltipProducts = document.getElementById('mbs-tooltip-products');\n\n    function buildProductBadges(d) {\n      return '<span class=\"tooltip-badge bass\">' + d.nb_bass + 'x BASS<\/span>';\n    }\n\n    markerGroups\n      .on('mouseenter', function(event, d) {\n        d3.select(this).select('.marker-dot').attr('r', (baseRadius * 1.35) \/ currentScale);\n        tooltipName.textContent = d.name;\n        tooltipLocation.textContent = d.city + ', ' + tCountry(d.country);\n        tooltipProducts.innerHTML = buildProductBadges(d);\n        tooltip.classList.add('visible');\n      })\n      .on('mousemove', function(event) {\n        var rect = wrapper.getBoundingClientRect();\n        var x = event.clientX - rect.left + 16;\n        var y = event.clientY - rect.top - 12;\n        var tw = tooltip.offsetWidth;\n        var th = tooltip.offsetHeight;\n        if (x + tw > rect.width - 8) x = x - tw - 32;\n        if (y + th > rect.height - 8) y = rect.height - th - 8;\n        if (y < 8) y = 8;\n        tooltip.style.left = x + 'px';\n        tooltip.style.top = y + 'px';\n      })\n      .on('mouseleave', function() {\n        d3.select(this).select('.marker-dot').attr('r', baseRadius \/ currentScale);\n        tooltip.classList.remove('visible');\n      });\n\n    markerGroups\n      .on('touchstart', function(event, d) {\n        event.preventDefault();\n        event.stopPropagation();\n        tooltipName.textContent = d.name;\n        tooltipLocation.textContent = d.city + ', ' + tCountry(d.country);\n        tooltipProducts.innerHTML = buildProductBadges(d);\n\n        \/\/ Placer \u00e0 0,0 et rendre visible pour forcer le layout avant mesure\n        tooltip.style.left = '0px';\n        tooltip.style.top = '0px';\n        tooltip.classList.add('visible');\n\n        var rect = wrapper.getBoundingClientRect();\n        var tw = tooltip.offsetWidth;\n        var th = tooltip.offsetHeight;\n        var touch = event.touches[0];\n\n        \/\/ Position initiale : centr\u00e9 au-dessus du doigt\n        var x = touch.clientX - rect.left - tw \/ 2;\n        var y = touch.clientY - rect.top - th - 16;\n\n        \/\/ Clamping horizontal\n        if (x < 8) x = 8;\n        if (x + tw > rect.width - 8) x = rect.width - tw - 8;\n\n        \/\/ Si d\u00e9passe en haut \u2192 basculer en dessous du doigt\n        if (y < 8) y = touch.clientY - rect.top + 24;\n\n        \/\/ Clamping vertical bas\n        if (y + th > rect.height - 8) y = rect.height - th - 8;\n\n        tooltip.style.left = x + 'px';\n        tooltip.style.top = y + 'px';\n      });\n\n    document.addEventListener('touchstart', function(e) {\n      if (!e.target.closest('.marker')) tooltip.classList.remove('visible');\n    });\n\n    document.getElementById('mbs-stat-total').textContent = installations.length;\n    document.getElementById('mbs-stat-countries').textContent = new Set(installations.map(function(i) { return i.country; })).size;\n    document.getElementById('mbs-stat-bass').textContent = installations.reduce(function(sum, i) { return sum + i.nb_bass; }, 0);\n\n  }).catch(function(err) {\n    console.error('MBS Map error:', err);\n    document.getElementById('mbs-map-wrapper').innerHTML = '<p style=\"padding:40px;text-align:center;color:#999;\">' + t.error + '<\/p>';\n  });\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u00c9VITEZ DES ACCIDENTS. S\u00c9CURISEZ VOS COULOIRS D\u2019ENROULEURS. Avec le bo\u00eetier de s\u00e9curit\u00e9 BASS Alerte lorsqu\u2019un grimpeur ne s\u2019est pas attach\u00e9 \u00e0 l\u2019enrouleur. Am\u00e9liore la s\u00e9curit\u00e9 en alertant en cas de risque d&#8217;accident. Ayez enfin l&#8217;esprit tranquille. Commander Disponible \u00e0 l&#8217;achat ou \u00e0 la location. Voici LE BASS https:\/\/www.youtube.com\/watch?v=6qzzI5A0YMwhttps:\/\/www.youtube.com\/watch?v=cn_SfwtNlic comment \u00e7a marche ? L\u2019enrouleur est attach\u00e9 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":11,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-6491","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.mbs-industry.com\/en\/wp-json\/wp\/v2\/pages\/6491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mbs-industry.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mbs-industry.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.mbs-industry.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mbs-industry.com\/en\/wp-json\/wp\/v2\/comments?post=6491"}],"version-history":[{"count":5,"href":"https:\/\/www.mbs-industry.com\/en\/wp-json\/wp\/v2\/pages\/6491\/revisions"}],"predecessor-version":[{"id":17075,"href":"https:\/\/www.mbs-industry.com\/en\/wp-json\/wp\/v2\/pages\/6491\/revisions\/17075"}],"wp:attachment":[{"href":"https:\/\/www.mbs-industry.com\/en\/wp-json\/wp\/v2\/media?parent=6491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}