diff --git a/core/themes/bartik/bartik.theme b/core/themes/bartik/bartik.theme
index 1532b9f..cceb861 100644
--- a/core/themes/bartik/bartik.theme
+++ b/core/themes/bartik/bartik.theme
@@ -88,6 +88,15 @@ function bartik_preprocess_page(&$variables) {
     // Make sure the shortcut link is the first item in title_suffix.
     $variables['title_suffix']['add_or_remove_shortcut']['#weight'] = -100;
   }
+  // Add a hide menu item to the main menu.
+  if (!empty($variables['main_menu'])) {
+    $variables['main_menu']['#links']['menu-hide'] = array(
+      'title' => t('Hide menu'),
+      'href' => '',
+      'fragment' => 'no-nav',
+      'external' => TRUE,
+    );
+  }
 }
 
 /**
diff --git a/core/themes/bartik/css/style.css b/core/themes/bartik/css/style.css
index 999c3ce..54334a7 100644
--- a/core/themes/bartik/css/style.css
+++ b/core/themes/bartik/css/style.css
@@ -564,6 +564,7 @@ h1.site-name {
   list-style: none;
   margin: 0;
   padding: 0;
+  height: auto;
   width: 100%;
 }
 #main-menu-links a {
@@ -594,6 +595,65 @@ h1.site-name {
   border-bottom: none;
 }
 
+/* ---------- Main Menu Toggle ----------- */
+#nav, #no-nav {
+  position: fixed;
+  top: 0;
+}
+#main-menu-reveal {
+  display: none;
+}
+body:not(:target) #main-menu-reveal {
+  color: #333;
+  background: #ccc;
+  background: rgba(255, 255, 255, 0.7);
+  float: none;
+  font-size: 0.929em;
+  display: block;
+  text-decoration: none;
+  text-shadow: 0 1px #eee;
+  padding: 0.9em 10px 0.9em 10px;
+  z-index: 1000;
+}
+body:not(:target) #main-menu-reveal:after {
+  content:"";
+  background: url('../../../misc/icons/ffffff/hamburger.svg') no-repeat;
+  background-size: contain;
+  width: 22px;
+  height: 22px;
+  display: inline-block;
+  position: absolute;
+  right: 10px; /* LTR */
+}
+[dir="rtl"] #secondary-menu-links {
+  left: 10px;
+  right: auto;
+}
+#main-menu-links .menu-hide a {
+  display: none;
+}
+body:not(:target) #nav:target ~ #main-menu-links .menu-hide a {
+  background-color: transparent;
+  border: none;
+  display: block;
+  width: 100%;
+  height: auto;
+  position: absolute;
+  left: 0;
+  right: 0;
+  overflow: hidden;
+  text-indent: -999em;
+  z-index: 1001;
+}
+body:not(:target) #main-menu-links li {
+  height: 0;
+  overflow: hidden;
+}
+body:not(:target) #nav:target ~ #main-menu-links li {
+  height: auto;
+  overflow: visible;
+}
+
 /* --------------- Secondary Menu ------------ */
 
 #secondary-menu-links {
@@ -1798,12 +1858,15 @@ div.admin-panel .description {
     padding: 0;
     text-align: center;
   }
-  #main-menu-links li {
+  #main-menu-links li,
+  body:not(:target) #main-menu-links li {
     float: left; /* LTR */
     margin-right: 5px; /* LTR */
     padding: 0;
     display: inline-block;
     width: 32.75%;
+    height: auto;
+    overflow: visible;
   }
   [dir="rtl"] #main-menu-links li {
     float: right;
@@ -1824,6 +1887,9 @@ div.admin-panel .description {
     margin-bottom: 5px;
     padding: 0.9em 5px;
   }
+  body:not(:target) #main-menu-reveal {
+    display: none;
+  }
 }
 
 @media all and (min-width: 901px) {
@@ -1857,12 +1923,15 @@ div.admin-panel .description {
     margin: 0;
     padding: 0 15px;
   }
-  #main-menu-links li {
+  #main-menu-links li,
+  body:not(:target) #main-menu-links li {
     float: left; /* LTR */
     list-style: none;
     padding: 0 1px;
     margin: 0 1px;
     width: auto;
+    height: auto;
+    overflow: visible;
   }
   [dir="rtl"] #main-menu-links li {
     float: right;
@@ -1883,6 +1952,9 @@ div.admin-panel .description {
     background: #f0f0f0;
     background: rgba(240, 240, 240, 1.0);
   }
+  body:not(:target) #main-menu-reveal {
+    display: none;
+  }
 }
 
 @media all and (min-width: 520px) {
diff --git a/core/themes/bartik/templates/page.html.twig b/core/themes/bartik/templates/page.html.twig
index b075295..0d3db1a 100644
--- a/core/themes/bartik/templates/page.html.twig
+++ b/core/themes/bartik/templates/page.html.twig
@@ -121,7 +121,10 @@
 
     {% if main_menu %}
       <nav id ="main-menu" class="navigation" role="navigation">
+        <div id="nav"></div>
+        <div id="no-nav"></div>
         {{ main_menu }}
+        <a id="main-menu-reveal" href="#nav">{{ 'Menu'|t }}</a>
       </nav> <!-- /#main-menu -->
     {% endif %}
   </div></header> <!-- /.section, /#header-->
