diff --git a/themes/bs_bootstrap/bs_bootstrap.libraries.yml b/themes/bs_bootstrap/bs_bootstrap.libraries.yml
index 27e4486..8ee7260 100644
--- a/themes/bs_bootstrap/bs_bootstrap.libraries.yml
+++ b/themes/bs_bootstrap/bs_bootstrap.libraries.yml
@@ -24,6 +24,11 @@ entity-browser-tabs:
   js:
     js/entity-browser.tabs.js: {}
 
+maintenance-page:
+  css:
+    component:
+      css/layout/maintenance-page.css: {}
+
 tabledrag:
   js:
     js/tabledrag.js: {}
diff --git a/themes/bs_bootstrap/images/maintenance.svg b/themes/bs_bootstrap/images/maintenance.svg
new file mode 100644
index 0000000..4d31426
--- /dev/null
+++ b/themes/bs_bootstrap/images/maintenance.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 713.4 628.6"><path d="M356.8 5c-8.8.5-16.7 5.4-21.1 13L8.5 584.7a25.8 25.8 0 0022.4 38.8l651.6.1a25.8 25.8 0 0022.4-38.7L380.5 18.1a25.8 25.8 0 00-23.7-13z" fill="none" stroke="#000" stroke-width="10.1" stroke-linecap="round"/><path d="M358 32L31.8 597l649.8.1L358 32z" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width="23.8" stroke-linecap="round" stroke-linejoin="round"/><path d="M452.3 357.5a28.6 28.6 0 100-57.3 28.6 28.6 0 000 57.3zM288.2 541.3V529h40.4v-20.3h49.5V529h46.1v12.3h-136zM306.2 324.4l-7.5-19.5 66-24 46.4 33s3 37.4 15 45l-19.5 51 30 28.4-7.5 15-57-36 27-34.5-3-6-60 19.5 10.5 52.5-39 63h-24l39-66-10.4-43.5-9-12-30 40.5-72-40.5 18-15 43.5 24 27-42 96-25.4 4.4-10.5-24-16.5-60 19.5z"/></svg>
diff --git a/themes/bs_bootstrap/sass/layout/maintenance-page.scss b/themes/bs_bootstrap/sass/layout/maintenance-page.scss
new file mode 100644
index 0000000..8b95910
--- /dev/null
+++ b/themes/bs_bootstrap/sass/layout/maintenance-page.scss
@@ -0,0 +1,2 @@
+@import "init";
+@import "partials/maintenance-page";
diff --git a/themes/bs_bootstrap/sass/layout/partials/_header.scss b/themes/bs_bootstrap/sass/layout/partials/_header.scss
index eadac26..0f77fd1 100644
--- a/themes/bs_bootstrap/sass/layout/partials/_header.scss
+++ b/themes/bs_bootstrap/sass/layout/partials/_header.scss
@@ -18,7 +18,7 @@
   // But Branding block usually needs top and bottom margin on various screens
   // so there is always some space between borders - looks better that way.
   @if ($navbar-brand-vertical-margins) {
-    .block.navbar-brand {
+    .navbar-brand {
       @each $breakpoint, $margins in $navbar-brand-vertical-margins {
         @include media-breakpoint-up($breakpoint) {
           margin-top: map-get($margins, 'top');
diff --git a/themes/bs_bootstrap/sass/layout/partials/_maintenance-page.scss b/themes/bs_bootstrap/sass/layout/partials/_maintenance-page.scss
new file mode 100644
index 0000000..e4bde06
--- /dev/null
+++ b/themes/bs_bootstrap/sass/layout/partials/_maintenance-page.scss
@@ -0,0 +1,15 @@
+.maintenance {
+  @include media-responsive-breakpoint-up() {
+    &-text {
+      flex-basis: 60%;
+      max-width: 60%;
+      display: flex;
+      align-items: center;
+    }
+
+    &-image {
+      flex-basis: 40%;
+      max-width: 40%;
+    }
+  }
+}
diff --git a/themes/bs_bootstrap/templates/layout/maintenance-page.html.twig b/themes/bs_bootstrap/templates/layout/maintenance-page.html.twig
new file mode 100644
index 0000000..d0e5b4b
--- /dev/null
+++ b/themes/bs_bootstrap/templates/layout/maintenance-page.html.twig
@@ -0,0 +1,79 @@
+{#
+/**
+ * @file
+ * Default theme implementation to display a single Drupal page while offline.
+ *
+ * All available variables are mirrored in page.html.twig.
+ * Some may be blank but they are provided for consistency.
+ *
+ * @see template_preprocess_maintenance_page()
+ *
+ * @ingroup themeable
+ */
+#}
+{{ attach_library('bs_bootstrap/maintenance-page') }}
+{% block header -%}
+  <header role="banner" class="page__header">
+    <div class="navbar-wrapper{{ navbar_second_level_expanded ? ' second-level-expanded' }}">
+      <div class="navbar {{ navbar_container_type == 'fluid' ? 'container-fluid' : 'container' }}">
+        {% if logo -%}
+          <div class="region region-brand">
+            <div class="navbar-brand">
+              <a href="{{ front_page }}" title="{{ 'Home'|t }}" rel="home" class="site-logo-link">
+                <img src="{{ logo }}" alt="{{ 'Home'|t }}"/>
+              </a>
+            </div>
+          </div>
+        {%- endif %}
+        {% if site_name or site_slogan -%}
+          <div class="navbar-collapse region region-navbar">
+            {% if site_name -%}
+              <h2><a href="{{ front_page }}" title="{{ 'Home'|t }}" rel="home">{{ site_name }}</a></h2>
+            {%- endif %}
+            {% if site_slogan -%}
+              <div>{{ site_slogan }}</div>
+            {%- endif %}
+          </div>
+        {%- endif %}
+      </div>
+    </div>
+  </header>
+{%- endblock %}
+{% block main -%}
+  <main role="main" class="page__main">
+    <div class="page__content content">
+      {% block content -%}
+        <div class="region region-content container">
+          {% if title -%}
+            <h1>{{ title }}</h1>
+          {%- endif %}
+          <div class="row">
+            <div class="maintenance-text col">
+              {{ page.highlighted }}
+              <p>
+                {{ page.content }}
+              </p>
+            </div>
+            <div class="maintenance-image col">
+              {% block image -%}
+                {# Adding regular image is a bit tricky in maintenance page, we
+                   would need to use CSS bg image or preprocessor. For now it's
+                   easier to just embed SVG image. #}
+                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 713.4 628.6"><path d="M356.8 5c-8.8.5-16.7 5.4-21.1 13L8.5 584.7a25.8 25.8 0 0022.4 38.8l651.6.1a25.8 25.8 0 0022.4-38.7L380.5 18.1a25.8 25.8 0 00-23.7-13z" fill="none" stroke="#000" stroke-width="10.1" stroke-linecap="round"/><path d="M358 32L31.8 597l649.8.1L358 32z" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width="23.8" stroke-linecap="round" stroke-linejoin="round"/><path d="M452.3 357.5a28.6 28.6 0 100-57.3 28.6 28.6 0 000 57.3zM288.2 541.3V529h40.4v-20.3h49.5V529h46.1v12.3h-136zM306.2 324.4l-7.5-19.5 66-24 46.4 33s3 37.4 15 45l-19.5 51 30 28.4-7.5 15-57-36 27-34.5-3-6-60 19.5 10.5 52.5-39 63h-24l39-66-10.4-43.5-9-12-30 40.5-72-40.5 18-15 43.5 24 27-42 96-25.4 4.4-10.5-24-16.5-60 19.5z"/></svg>
+              {% endblock %}
+            </div>
+          </div>
+        </div>
+      {%- endblock %}
+    </div>
+  </main>
+{%- endblock %}
+{% block footer -%}
+  {% if page.footer -%}
+    <footer role="contentinfo" class="page__footer">
+      <div class="page__footer__content container">
+        {{ page.footer }}
+      </div>
+    </footer>
+  {%- endif %}
+{%- endblock %}
