diff --git a/css/bulma-adjustments.css b/css/bulma-adjustments.css
index a722717..739591c 100644
--- a/css/bulma-adjustments.css
+++ b/css/bulma-adjustments.css
@@ -48,10 +48,6 @@
     cursor: pointer;
 }
 
-.hidden {
-    display: none;
-}
-
 #fme-maps-container h4 {
   font-weight: bold;
 }
diff --git a/index.html b/index.html
index 4fcf8ab..073bb97 100644
--- a/index.html
+++ b/index.html
@@ -21,7 +21,7 @@
     <body>
         <script></script>
 
-        <span id="dev-mode" class="hidden">Dev mode</span>
+        <span id="dev-mode" class="is-hidden">Dev mode</span>
         
         <nav class="navbar is-link">
             <div class="navbar-brand">
@@ -54,8 +54,8 @@
             </div><br>
 
             <div id="subject-container" class="grid buttons"></div>
-            <div id="no-subjects" class="hidden">No s'està impartint cap classe en aquests moments.</div>
-            <div id="fme-maps-container" class="hidden">
+            <div id="no-subjects" class="is-hidden">No s'està impartint cap classe en aquests moments.</div>
+            <div id="fme-maps-container" class="is-hidden">
               <h4>Mapes de les aules de l'FME</h4>
               <div class="maps">
                 <div class="map">
@@ -75,10 +75,10 @@
             
         </section>
 
-        <section id="section-2" class="section hidden">
+        <section id="section-2" class="section is-hidden">
             <button class="button is-link is-light" onclick="switchSection('section-1')">Torna enrere (Classe)</button>
 
-            <div id="repeated-subject-warning" class="hidden">
+            <div id="repeated-subject-warning" class="is-hidden">
                 <br><article class="message is-warning">
                     <div class="message-body">
                         Heu triat una assignatura que es fa en dues aules alhora. Comproveu que sou a l'aula <strong id="repeated-subject-warning-class">aula</strong>.
@@ -102,7 +102,7 @@
             </div>
         </section>
 
-        <section id="section-3" class="section hidden">
+        <section id="section-3" class="section is-hidden">
             <button class="button is-link is-light" onclick="switchSection('section-2')">Torna enrere (Lletra)</button>
             
             <div id="number-container" class="buttons grid">
@@ -118,7 +118,7 @@
                 <button class="button" id="number-10" data-number="10">10</button>
             </div>
         </section>
-        <section id="section-send" class="section hidden">
+        <section id="section-send" class="section is-hidden">
             <button class="button is-link is-light" onclick="switchSection('section-3')">Torna enrere (Número)</button>
             <br/><br/>
             <span class="has-text-weight-bold">Assignatura:</span>
diff --git a/js/build_page.js b/js/build_page.js
index e2ebb88..83f49a6 100644
--- a/js/build_page.js
+++ b/js/build_page.js
@@ -64,10 +64,10 @@
         final_JSON["class"] = selectedClass;
         // Missatge advertència classe repetida
         if (repeated_subjects.has(selectedClass.id)) {
-            document.getElementById('repeated-subject-warning').classList.remove('hidden');
+            document.getElementById('repeated-subject-warning').classList.remove('is-hidden');
             document.getElementById('repeated-subject-warning-class').textContent = selectedClass.room;
         } else {
-            document.getElementById('repeated-subject-warning').classList.add('hidden');
+            document.getElementById('repeated-subject-warning').classList.add('is-hidden');
         }
         // Anchor següent pregunta
         switchSection("section-2");
@@ -94,8 +94,8 @@
 
 function switchSection(s) {
     setTimeout(function(){ 
-        document.getElementById(current_section).classList.add('hidden');
-        document.getElementById(s).classList.remove('hidden');
+        document.getElementById(current_section).classList.add('is-hidden');
+        document.getElementById(s).classList.remove('is-hidden');
         current_section = s;
     }, 75);
 }
@@ -240,11 +240,11 @@
         .then(response => response.json())
         .then(data => {
             if (data.payload.classes.length == 0) {
-                document.getElementById('no-subjects').classList.remove('hidden');
+                document.getElementById('no-subjects').classList.remove('is-hidden');
             } else {
                 repeated_subjects = findRepeatedSubjects(data.payload.classes);
                 buildSubjectContainer(data.payload.classes, repeated_subjects);
-                document.getElementById('fme-maps-container').classList.remove('hidden');
+                document.getElementById('fme-maps-container').classList.remove('is-hidden');
             }
 
         });
@@ -259,7 +259,7 @@
             localStorage.devMode = 'false';
             location.reload();
         });
-        banner.classList.remove('hidden');
+        banner.classList.remove('is-hidden');
         api_url = localStorage.getItem('apiUrl') || 'https://covid-tracability-backend-dev.sandbox.avm99963.com/api/v1/'
     } else {
         api_url = "https://covid-tracability-backend-prod.sandbox.avm99963.com/api/v1/";
