diff --git a/assets/js/main.js b/assets/js/main.js
index f038b6f706001e5ba0413ceceda35c049d148d22..cdc1ac5627e0fc0f5cdd99f5c75fc615d811c008 100644
--- a/assets/js/main.js
+++ b/assets/js/main.js
@@ -1,3 +1,4 @@
 import './vendors/lightbox';
 import './vendors/carousel';
-import './theme';
+import './theme/';
+import './theme/blocks/partners';
diff --git a/assets/js/theme/blocks/partners-map.js b/assets/js/theme/blocks/partners-map.js
deleted file mode 100644
index 6d4d487a887866b5a54fdd036c278319c7c8037f..0000000000000000000000000000000000000000
--- a/assets/js/theme/blocks/partners-map.js
+++ /dev/null
@@ -1,48 +0,0 @@
-// const partnersMap = document.querySelectorAll('.block-partners--map');
-
-// class BlockPartners {
-//     constructor (block) {
-//         this.block = block;
-//         this.content = this.block.querySelector('#map');
-//         this.partnersList = this.content.querySelectorAll('.organization')
-        
-//         this.themeMarker = L.icon({
-//             iconUrl: '/assets/images/map-marker.svg',
-//             iconSize: [26, 17],
-//         });
-
-//         this.listen();
-//     }
-
-//     listen () {
-//         console.log("lalala")
-//         this.map = L.map('map').setView([2.3246629, 48.8862136], 13);
-
-//         L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
-//             maxZoom: 19,
-//             attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
-//         }).addTo(map);
-
-//         this.partnersList.forEach((partner) => {
-//             let latitude = parseFloat(partner.getAttribute('data-latitude')),
-//             longitude = parseFloat(partner.getAttribute('data-longitude'));
-            
-//             if (!!latitude && !!longitude) {
-//                 setLocation = [latitude, longitude];
-//                 console.log(setLocation)
-//             }
-//             newMarker(setLocation);
-//         });
-//     }
-//     newMarker(setLocation) {
-//         var marker = new L.marker(setLocation, {
-//             draggable: false
-//         });
-//         map.addLayer(marker);
-//     }
-
-// }
-
-// partnersMap.forEach((partners) => {
-//     new BlockPartners(partners);
-// });
diff --git a/assets/js/theme/blocks/partners.js b/assets/js/theme/blocks/partners.js
new file mode 100644
index 0000000000000000000000000000000000000000..63bac378d660af4ee772bcde6e8a1ba01181ea10
--- /dev/null
+++ b/assets/js/theme/blocks/partners.js
@@ -0,0 +1,57 @@
+const partnersMaps = document.querySelectorAll('.block-partners--map');
+
+class BlockPartners {
+    constructor (dom) {
+        this.dom = dom;
+        this.init();
+    }
+    init() {
+        this.content = this.dom.querySelector('#map');
+        this.partnersList = this.content.querySelectorAll('.organization')
+
+        this.classPartner = 'organization';
+        
+        let map = L.map('map').setView([44.833328, -0.56667], 13);
+        this.themeMarker = L.icon({
+            iconUrl: '/assets/images/map-marker.svg',
+            iconSize: [17, 26],
+        });
+
+        this.listen(map);
+    }
+
+    listen (map) {
+        L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
+            maxZoom: 19,
+            attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
+        }).addTo(map);
+
+        this.partnersList.forEach((partner) => {
+            this.setLocation(map, partner);
+        });
+    }
+
+    setLocation(map, partner) {
+        let latitude = parseFloat(partner.getAttribute('data-latitude')),
+            longitude = parseFloat(partner.getAttribute('data-longitude'));
+        
+        if (!!latitude && !!longitude) {
+            this.mapLocation = [latitude, longitude];
+        }
+        this.newMarker(this.mapLocation, map, partner);
+    }
+
+    newMarker(mapLocation, map, partner) {
+        let marker = new L.marker(mapLocation, {
+            draggable: false,
+            icon: this.themeMarker
+        });
+        marker.bindPopup('<article class="' + this.classPartner + '">' + partner.innerHTML + '</article>').openPopup();
+        map.addLayer(marker);
+    }
+
+}
+
+partnersMaps.forEach((dom) => {
+    new BlockPartners(dom);
+});
\ No newline at end of file
diff --git a/assets/sass/_theme/blocks/partners.sass b/assets/sass/_theme/blocks/partners.sass
index 531f9cdc410e781a9ad23ae511161331c0d2da4d..ea9493e92e0df18dabccbf6d12ca208bb2044ea4 100644
--- a/assets/sass/_theme/blocks/partners.sass
+++ b/assets/sass/_theme/blocks/partners.sass
@@ -26,6 +26,8 @@
             &-content-wrapper
                 border-radius: 0
                 padding: 0
+                width: 192px
+                overflow: hidden
                 .media
                     margin-bottom: 0
                 h3 a
@@ -34,6 +36,7 @@
                     padding: half($spacing0)
             &-content
                 margin: 0
+                width: 100%
                 z-index: 2
             &-close-button
                 z-index: 4
diff --git a/layouts/partials/blocks/templates/partners.html b/layouts/partials/blocks/templates/partners.html
index bfd430c1f5983b5c11c98a718613e79f5c61efc3..163780b6e9e2ef2f08eddbf09071557d2d0e0c84 100644
--- a/layouts/partials/blocks/templates/partners.html
+++ b/layouts/partials/blocks/templates/partners.html
@@ -2,7 +2,8 @@
 {{- $position := .block.position -}}
 {{- $title := .block.title -}}
 
-{{- $layout_class := "block-pages--grid" -}}
+{{- $class := "block block-partners" -}}
+{{- $layout_class := "block-partners--grid" -}}
 {{ $logo_index := "logo" }}
 {{ $longitude := "longitude" }}
 {{ $latitude := "latitude" }}
diff --git a/layouts/partials/blocks/templates/partners/map.html b/layouts/partials/blocks/templates/partners/map.html
index f6160d6ee811297408564023ced48307bcbc3cb6..3850b49ead926ed6ee809b430ed42f697e8a8695 100644
--- a/layouts/partials/blocks/templates/partners/map.html
+++ b/layouts/partials/blocks/templates/partners/map.html
@@ -25,48 +25,4 @@
         )}}
     {{ end }}
   {{ end -}}
-</div>
-
-<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.3/dist/leaflet.css"
-      integrity="sha256-kLaT2GOSpHechhsozzB+flnD+zUyjE2LlfWPgU04xyI="
-      crossorigin=""/>
-<script src="https://unpkg.com/leaflet@1.9.3/dist/leaflet.js"
-        integrity="sha256-WBkoXOwTeyKclOHuWtc+i2uENFpDZ9YPdf5Hf+D7ewM="
-        crossorigin=""></script>
-
-<script>
-  var dom = document.querySelector('#map'),
-      map = L.map('map').setView([44.833328, -0.56667], 13);
-  let partners = dom.querySelectorAll('.organization')
-  
-  const themeMarker = L.icon({
-    iconUrl: '/assets/images/map-marker.svg',
-    iconSize: [17, 26],
-  });
-
-  L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
-    maxZoom: 19,
-    attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
-  }).addTo(map);
-  
-  partners.forEach((partner) => {
-    let latitude = parseFloat(partner.getAttribute('data-latitude')),
-        longitude = parseFloat(partner.getAttribute('data-longitude'));
-        
-    if (!!latitude && !!longitude) {
-      setLocation = [latitude, longitude];
-      
-      function newMarker (setLocation) {
-        var marker = new L.marker(setLocation, {
-          draggable: false,
-          icon: themeMarker
-        });
-        marker.bindPopup('<article class="organization">' + partner.innerHTML + '</article>').openPopup();
-        map.addLayer(marker);
-      }
-      newMarker(setLocation)
-    }
-  });
-
-
-</script>
\ No newline at end of file
+</div>
\ No newline at end of file
diff --git a/layouts/partials/footer/js.html b/layouts/partials/footer/js.html
index ae6787b91ad30feaa6afeb725c323a0f1f01abc8..52b15937b15268fa52278f9d36d3bd51942d4517 100644
--- a/layouts/partials/footer/js.html
+++ b/layouts/partials/footer/js.html
@@ -1,2 +1,25 @@
+{{ $isLeafletNeeded := false }}
+
+{{ if .Params.blocks }}
+  {{ range .Params.blocks }}
+    {{ if eq .template "partners"}}
+      {{ with .data }}
+        {{ if eq .layout "map" }}
+          {{ $isLeafletNeeded := true }}
+        {{ end }}
+      {{ end }}
+    {{ end }}
+  {{ end }}
+{{ end }}
+
+{{ if $isLeafletNeeded = true }}
+  <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.3/dist/leaflet.css"
+        integrity="sha256-kLaT2GOSpHechhsozzB+flnD+zUyjE2LlfWPgU04xyI="
+        crossorigin=""/>
+  <script src="https://unpkg.com/leaflet@1.9.3/dist/leaflet.js"
+          integrity="sha256-WBkoXOwTeyKclOHuWtc+i2uENFpDZ9YPdf5Hf+D7ewM="
+          crossorigin=""></script>
+{{ end }}
+
 {{ $js := resources.Get "js/main.js" | js.Build (dict "minify" hugo.IsProduction) | fingerprint }}
 <script src="{{ $js.RelPermalink }}" integrity="{{ $js.Data.Integrity }}"></script>