diff --git a/README.md b/README.md
index bfe71df..38bea1d 100644
--- a/README.md
+++ b/README.md
@@ -117,3 +117,5 @@ browsersSupport: [
 - https://github.com/Famolus/awesome-sass
   Curated list of awesome Sass and SCSS frameworks, libraries, style guides,
   articles, and resources.
+- https://github.com/jptaranto/typey
+  A complete framework for working with typography on the web - applied in BS Bootstrap child theme.
diff --git a/themes/bs_bootstrap/bs_bootstrap.libraries.yml b/themes/bs_bootstrap/bs_bootstrap.libraries.yml
index 6adc0ee..678fe0c 100644
--- a/themes/bs_bootstrap/bs_bootstrap.libraries.yml
+++ b/themes/bs_bootstrap/bs_bootstrap.libraries.yml
@@ -11,7 +11,6 @@ global-styling:
       css/components/forms.css: {}
       css/components/entity.css: {}
       css/components/node.css: {}
-      css/components/pagination.css: {}
     layout:
       css/layout/layout.css: {}
     theme:
@@ -91,22 +90,3 @@ util:
     js/bootstrap/util.js: {}
   dependencies:
     - core/jquery
-
-modal:
-  css:
-    component:
-      css/components/modal.css: {}
-  js:
-    js/bootstrap/modal.js: {}
-  dependencies:
-    - core/jquery
-    - bs_bootstrap/util
-
-carousel:
-  css:
-    component:
-      css/components/carousel.css: {}
-  js:
-    js/bootstrap/carousel.js: {}
-  dependencies:
-    - bs_bootstrap/util
diff --git a/themes/bs_bootstrap/css/base/elements.css b/themes/bs_bootstrap/css/base/elements.css
index c4833e0..323f965 100644
--- a/themes/bs_bootstrap/css/base/elements.css
+++ b/themes/bs_bootstrap/css/base/elements.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 html {
   box-sizing: border-box;
 }
diff --git a/themes/bs_bootstrap/css/base/normalize.css b/themes/bs_bootstrap/css/base/normalize.css
index 010d7f6..5ad3602 100644
--- a/themes/bs_bootstrap/css/base/normalize.css
+++ b/themes/bs_bootstrap/css/base/normalize.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 /*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
 html {
   font-family: sans-serif;
diff --git a/themes/bs_bootstrap/css/base/transitions.css b/themes/bs_bootstrap/css/base/transitions.css
index c5a8107..e86eb86 100644
--- a/themes/bs_bootstrap/css/base/transitions.css
+++ b/themes/bs_bootstrap/css/base/transitions.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .fade {
   opacity: 0;
   transition: opacity 0.15s linear;
diff --git a/themes/bs_bootstrap/css/base/util.css b/themes/bs_bootstrap/css/base/util.css
index c87ad73..58a4c4c 100644
--- a/themes/bs_bootstrap/css/base/util.css
+++ b/themes/bs_bootstrap/css/base/util.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .sr-only {
   position: absolute;
   width: 1px;
@@ -137,60 +138,48 @@ a.text-gray-dark:focus, a.text-gray-dark:hover {
 }
 
 @media (min-width: 576px) {
-
   .text-sm-left {
     text-align: left !important;
   }
-
   .text-sm-right {
     text-align: right !important;
   }
-
   .text-sm-center {
     text-align: center !important;
   }
 }
 
 @media (min-width: 768px) {
-
   .text-md-left {
     text-align: left !important;
   }
-
   .text-md-right {
     text-align: right !important;
   }
-
   .text-md-center {
     text-align: center !important;
   }
 }
 
 @media (min-width: 992px) {
-
   .text-lg-left {
     text-align: left !important;
   }
-
   .text-lg-right {
     text-align: right !important;
   }
-
   .text-lg-center {
     text-align: center !important;
   }
 }
 
 @media (min-width: 1200px) {
-
   .text-xl-left {
     text-align: left !important;
   }
-
   .text-xl-right {
     text-align: right !important;
   }
-
   .text-xl-center {
     text-align: center !important;
   }
diff --git a/themes/bs_bootstrap/css/components/block.css b/themes/bs_bootstrap/css/components/block.css
index 1efcc5c..a5a8554 100644
--- a/themes/bs_bootstrap/css/components/block.css
+++ b/themes/bs_bootstrap/css/components/block.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .block {
   margin-top: 1rem;
   margin-bottom: 1rem;
diff --git a/themes/bs_bootstrap/css/components/breadcrumb.css b/themes/bs_bootstrap/css/components/breadcrumb.css
index 945cbd6..83472f0 100644
--- a/themes/bs_bootstrap/css/components/breadcrumb.css
+++ b/themes/bs_bootstrap/css/components/breadcrumb.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .breadcrumb {
   padding: 0.75rem 0;
   margin-bottom: 1rem;
diff --git a/themes/bs_bootstrap/css/components/buttons.css b/themes/bs_bootstrap/css/components/buttons.css
index 4f039b0..e8ac507 100644
--- a/themes/bs_bootstrap/css/components/buttons.css
+++ b/themes/bs_bootstrap/css/components/buttons.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .btn {
   display: inline-block;
   font-weight: normal;
diff --git a/themes/bs_bootstrap/css/components/carousel.css b/themes/bs_bootstrap/css/components/carousel.css
deleted file mode 100644
index 5218aef..0000000
--- a/themes/bs_bootstrap/css/components/carousel.css
+++ /dev/null
@@ -1,212 +0,0 @@
-.carousel {
-  position: relative;
-}
-
-.carousel-inner {
-  position: relative;
-  width: 100%;
-  overflow: hidden;
-}
-
-.carousel-item {
-  position: relative;
-  display: none;
-  width: 100%;
-}
-
-@supports (transform: translate3d(0, 0, 0)) {
-  .carousel-item {
-    transition: -webkit-transform 0.6s ease-in-out;
-    transition: transform 0.6s ease-in-out;
-    transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
-    -webkit-backface-visibility: hidden;
-            backface-visibility: hidden;
-    -webkit-perspective: 1000px;
-            perspective: 1000px;
-  }
-}
-
-.carousel-item.active,
-.carousel-item-next,
-.carousel-item-prev {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-}
-
-.carousel-item-next,
-.carousel-item-prev {
-  position: absolute;
-  top: 0;
-}
-
-@supports (transform: translate3d(0, 0, 0)) {
-  .carousel-item-next.carousel-item-left,
-  .carousel-item-prev.carousel-item-right {
-    -webkit-transform: translate3d(0, 0, 0);
-            transform: translate3d(0, 0, 0);
-  }
-  .carousel-item-next,
-  .active.carousel-item-right {
-    -webkit-transform: translate3d(100%, 0, 0);
-            transform: translate3d(100%, 0, 0);
-  }
-  .carousel-item-prev,
-  .active.carousel-item-left {
-    -webkit-transform: translate3d(-100%, 0, 0);
-            transform: translate3d(-100%, 0, 0);
-  }
-}
-
-.carousel-control-prev,
-.carousel-control-next {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-align-items: center;
-      -ms-flex-align: center;
-          align-items: center;
-  -webkit-justify-content: center;
-      -ms-flex-pack: center;
-          justify-content: center;
-  width: 15%;
-  color: #fff;
-  text-align: center;
-  opacity: 0.5;
-}
-
-.carousel-control-prev:focus, .carousel-control-prev:hover,
-.carousel-control-next:focus,
-.carousel-control-next:hover {
-  color: #fff;
-  text-decoration: none;
-  outline: 0;
-  opacity: .9;
-}
-
-.carousel-control-prev {
-  left: 0;
-}
-
-.carousel-control-next {
-  right: 0;
-}
-
-.carousel-control-prev-icon,
-.carousel-control-next-icon {
-  display: inline-block;
-  width: 20px;
-  height: 20px;
-  background: transparent no-repeat center center;
-  background-size: 100% 100%;
-}
-
-.carousel-control-prev-icon {
-  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M4 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E");
-}
-
-.carousel-control-next-icon {
-  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M1.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E");
-}
-
-.carousel-indicators {
-  position: absolute;
-  right: 0;
-  bottom: 10px;
-  left: 0;
-  z-index: 15;
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-justify-content: center;
-      -ms-flex-pack: center;
-          justify-content: center;
-  padding-left: 0;
-  margin-right: 15%;
-  margin-left: 15%;
-  list-style: none;
-}
-
-.carousel-indicators li {
-  position: relative;
-  -webkit-flex: 1 0 auto;
-      -ms-flex: 1 0 auto;
-          flex: 1 0 auto;
-  max-width: 30px;
-  height: 3px;
-  margin-right: 3px;
-  margin-left: 3px;
-  text-indent: -999px;
-  cursor: pointer;
-  background-color: rgba(255, 255, 255, 0.5);
-}
-
-.carousel-indicators li::before {
-  position: absolute;
-  top: -10px;
-  left: 0;
-  display: inline-block;
-  width: 100%;
-  height: 10px;
-  content: "";
-}
-
-.carousel-indicators li::after {
-  position: absolute;
-  bottom: -10px;
-  left: 0;
-  display: inline-block;
-  width: 100%;
-  height: 10px;
-  content: "";
-}
-
-.carousel-indicators .active {
-  background-color: #fff;
-}
-
-.carousel-caption {
-  position: absolute;
-  right: 15%;
-  bottom: 20px;
-  left: 15%;
-  z-index: 10;
-  padding-top: 20px;
-  padding-bottom: 20px;
-  color: #fff;
-  text-align: center;
-}
-
-@media (-webkit-transform-3d) {
-
-  .carousel-item {
-    transition: -webkit-transform 0.6s ease-in-out;
-    transition: transform 0.6s ease-in-out;
-    transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
-    -webkit-backface-visibility: hidden;
-    backface-visibility: hidden;
-    -webkit-perspective: 1000px;
-    perspective: 1000px;
-  }
-
-  .carousel-item-next.carousel-item-left,
-  .carousel-item-prev.carousel-item-right {
-    -webkit-transform: translate3d(0, 0, 0);
-    transform: translate3d(0, 0, 0);
-  }
-
-  .carousel-item-next,
-  .active.carousel-item-right {
-    -webkit-transform: translate3d(100%, 0, 0);
-    transform: translate3d(100%, 0, 0);
-  }
-
-  .carousel-item-prev,
-  .active.carousel-item-left {
-    -webkit-transform: translate3d(-100%, 0, 0);
-    transform: translate3d(-100%, 0, 0);
-  }
-}
diff --git a/themes/bs_bootstrap/css/components/close.css b/themes/bs_bootstrap/css/components/close.css
index e7228e9..91d1eb4 100644
--- a/themes/bs_bootstrap/css/components/close.css
+++ b/themes/bs_bootstrap/css/components/close.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .close {
   float: right;
   font-size: 1.5rem;
diff --git a/themes/bs_bootstrap/css/components/dropdown.css b/themes/bs_bootstrap/css/components/dropdown.css
index 74556fe..be8d45b 100644
--- a/themes/bs_bootstrap/css/components/dropdown.css
+++ b/themes/bs_bootstrap/css/components/dropdown.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .dropup,
 .dropdown {
   position: relative;
diff --git a/themes/bs_bootstrap/css/components/entity.css b/themes/bs_bootstrap/css/components/entity.css
index 88f7ae9..46782b6 100644
--- a/themes/bs_bootstrap/css/components/entity.css
+++ b/themes/bs_bootstrap/css/components/entity.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .embedded-entity.align-left {
   margin-right: 1rem;
 }
diff --git a/themes/bs_bootstrap/css/components/forms.css b/themes/bs_bootstrap/css/components/forms.css
index 7a82264..af4aa39 100644
--- a/themes/bs_bootstrap/css/components/forms.css
+++ b/themes/bs_bootstrap/css/components/forms.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .form-control {
   display: block;
   width: 100%;
@@ -275,7 +276,6 @@ label {
 }
 
 @media (min-width: 576px) {
-
   .form-inline label {
     display: -webkit-flex;
     display: -ms-flexbox;
@@ -288,7 +288,6 @@ label {
     justify-content: center;
     margin-bottom: 0;
   }
-
   .form-inline .form-group {
     display: -webkit-flex;
     display: -ms-flexbox;
@@ -304,26 +303,21 @@ label {
     align-items: center;
     margin-bottom: 0;
   }
-
   .form-inline .form-control {
     display: inline-block;
     width: auto;
     vertical-align: middle;
   }
-
   .form-inline .form-control-static {
     display: inline-block;
   }
-
   .form-inline .input-group {
     width: auto;
   }
-
   .form-inline .form-control-label {
     margin-bottom: 0;
     vertical-align: middle;
   }
-
   .form-inline .form-check {
     display: -webkit-flex;
     display: -ms-flexbox;
@@ -338,18 +332,15 @@ label {
     margin-top: 0;
     margin-bottom: 0;
   }
-
   .form-inline .form-check-label {
     padding-left: 0;
   }
-
   .form-inline .form-check-input {
     position: relative;
     margin-top: 0;
     margin-right: 0.25rem;
     margin-left: 0;
   }
-
   .form-inline .custom-control {
     display: -webkit-flex;
     display: -ms-flexbox;
@@ -362,14 +353,12 @@ label {
     justify-content: center;
     padding-left: 0;
   }
-
   .form-inline .custom-control-indicator {
     position: static;
     display: inline-block;
     margin-right: 0.25rem;
     vertical-align: text-bottom;
   }
-
   .form-inline .has-feedback .form-control-feedback {
     top: 0;
   }
diff --git a/themes/bs_bootstrap/css/components/messages.css b/themes/bs_bootstrap/css/components/messages.css
index a818895..be74169 100644
--- a/themes/bs_bootstrap/css/components/messages.css
+++ b/themes/bs_bootstrap/css/components/messages.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .alert {
   padding: 0.75rem 1.25rem;
   margin-bottom: 1rem;
diff --git a/themes/bs_bootstrap/css/components/modal.css b/themes/bs_bootstrap/css/components/modal.css
deleted file mode 100644
index 792ba0f..0000000
--- a/themes/bs_bootstrap/css/components/modal.css
+++ /dev/null
@@ -1,148 +0,0 @@
-.modal-open {
-  overflow: hidden;
-}
-
-.modal {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1050;
-  display: none;
-  overflow: hidden;
-  outline: 0;
-}
-
-.modal.fade .modal-dialog {
-  transition: -webkit-transform 0.3s ease-out;
-  transition: transform 0.3s ease-out;
-  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
-  -webkit-transform: translate(0, -25%);
-          transform: translate(0, -25%);
-}
-
-.modal.show .modal-dialog {
-  -webkit-transform: translate(0, 0);
-          transform: translate(0, 0);
-}
-
-.modal-open .modal {
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-
-.modal-dialog {
-  position: relative;
-  width: auto;
-  margin: 10px;
-}
-
-.modal-content {
-  position: relative;
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-flex-direction: column;
-      -ms-flex-direction: column;
-          flex-direction: column;
-  background-color: #fff;
-  background-clip: padding-box;
-  border: 1px solid rgba(0, 0, 0, 0.2);
-  border-radius: 0.3rem;
-  outline: 0;
-}
-
-.modal-backdrop {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1040;
-  background-color: #000;
-}
-
-.modal-backdrop.fade {
-  opacity: 0;
-}
-
-.modal-backdrop.show {
-  opacity: 0.5;
-}
-
-.modal-header {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-align-items: center;
-      -ms-flex-align: center;
-          align-items: center;
-  -webkit-justify-content: space-between;
-      -ms-flex-pack: justify;
-          justify-content: space-between;
-  padding: 15px;
-  border-bottom: 1px solid #eceeef;
-}
-
-.modal-title {
-  margin-bottom: 0;
-  line-height: 1.5;
-}
-
-.modal-body {
-  position: relative;
-  -webkit-flex: 1 1 auto;
-      -ms-flex: 1 1 auto;
-          flex: 1 1 auto;
-  padding: 15px;
-}
-
-.modal-footer {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-align-items: center;
-      -ms-flex-align: center;
-          align-items: center;
-  -webkit-justify-content: flex-end;
-      -ms-flex-pack: end;
-          justify-content: flex-end;
-  padding: 15px;
-  border-top: 1px solid #eceeef;
-}
-
-.modal-footer > :not(:first-child) {
-  margin-left: .25rem;
-}
-
-.modal-footer > :not(:last-child) {
-  margin-right: .25rem;
-}
-
-.modal-scrollbar-measure {
-  position: absolute;
-  top: -9999px;
-  width: 50px;
-  height: 50px;
-  overflow: scroll;
-}
-
-@media (min-width: 576px) {
-
-  .modal-dialog {
-    max-width: 500px;
-    margin: 30px auto;
-  }
-
-  .modal-sm {
-    max-width: 300px;
-  }
-}
-
-@media (min-width: 992px) {
-
-  .modal-lg {
-    max-width: 800px;
-  }
-}
diff --git a/themes/bs_bootstrap/css/components/navbar.css b/themes/bs_bootstrap/css/components/navbar.css
index 19d1194..4c96190 100644
--- a/themes/bs_bootstrap/css/components/navbar.css
+++ b/themes/bs_bootstrap/css/components/navbar.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .nav {
   display: -webkit-flex;
   display: -ms-flexbox;
@@ -181,17 +182,14 @@
 }
 
 @media (min-width: 768px) {
-
   .navbar__inner .row {
     -webkit-flex-direction: row;
     -ms-flex-direction: row;
     flex-direction: row;
   }
-
   .navbar-toggler {
     display: none;
   }
-
   .navbar-collapse {
     display: -webkit-flex;
     display: -ms-flexbox;
@@ -206,22 +204,18 @@
     -ms-flex-align: center;
     align-items: center;
   }
-
   .navbar-collapse .navbar-nav {
     -webkit-flex-direction: row;
     -ms-flex-direction: row;
     flex-direction: row;
   }
-
   .navbar-collapse .navbar-nav .nav-link {
     padding-right: .5rem;
     padding-left: .5rem;
   }
-
   .navbar-collapse .navbar-toggler {
     display: none;
   }
-
   .navbar-nav {
     -webkit-flex-direction: row;
     -ms-flex-direction: row;
diff --git a/themes/bs_bootstrap/css/components/node.css b/themes/bs_bootstrap/css/components/node.css
index 6e9da26..2fe8fda 100644
--- a/themes/bs_bootstrap/css/components/node.css
+++ b/themes/bs_bootstrap/css/components/node.css
@@ -1,3 +1,5 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .node-preview-container {
   width: auto;
   padding: 1rem;
diff --git a/themes/bs_bootstrap/css/components/pagination.css b/themes/bs_bootstrap/css/components/pagination.css
deleted file mode 100644
index 61ef8ca..0000000
--- a/themes/bs_bootstrap/css/components/pagination.css
+++ /dev/null
@@ -1,82 +0,0 @@
-.pagination {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  padding-left: 0;
-  list-style: none;
-  border-radius: 0.25rem;
-}
-
-.page-item:first-child .page-link {
-  margin-left: 0;
-  border-bottom-left-radius: 0.25rem;
-  border-top-left-radius: 0.25rem;
-}
-
-.page-item:last-child .page-link {
-  border-bottom-right-radius: 0.25rem;
-  border-top-right-radius: 0.25rem;
-}
-
-.page-item.active .page-link {
-  z-index: 2;
-  color: #fff;
-  background-color: #0275d8;
-  border-color: #0275d8;
-}
-
-.page-item.disabled .page-link {
-  color: #636c72;
-  pointer-events: none;
-  cursor: not-allowed;
-  background-color: #fff;
-  border-color: #ddd;
-}
-
-.page-link {
-  position: relative;
-  display: block;
-  padding: 0.5rem 0.75rem;
-  margin-left: -1px;
-  line-height: 1.25;
-  color: #0275d8;
-  background-color: #fff;
-  border: 1px solid #ddd;
-}
-
-.page-link:focus, .page-link:hover {
-  color: #299bfd;
-  text-decoration: none;
-  background-color: #eceeef;
-  border-color: #ddd;
-}
-
-.pagination-lg .page-link {
-  padding: 0.75rem 1.5rem;
-  font-size: 1.25rem;
-}
-
-.pagination-lg .page-item:first-child .page-link {
-  border-bottom-left-radius: 0.3rem;
-  border-top-left-radius: 0.3rem;
-}
-
-.pagination-lg .page-item:last-child .page-link {
-  border-bottom-right-radius: 0.3rem;
-  border-top-right-radius: 0.3rem;
-}
-
-.pagination-sm .page-link {
-  padding: 0.25rem 0.5rem;
-  font-size: 0.875rem;
-}
-
-.pagination-sm .page-item:first-child .page-link {
-  border-bottom-left-radius: 0.2rem;
-  border-top-left-radius: 0.2rem;
-}
-
-.pagination-sm .page-item:last-child .page-link {
-  border-bottom-right-radius: 0.2rem;
-  border-top-right-radius: 0.2rem;
-}
diff --git a/themes/bs_bootstrap/css/components/popover.css b/themes/bs_bootstrap/css/components/popover.css
index a4066e4..3678da2 100644
--- a/themes/bs_bootstrap/css/components/popover.css
+++ b/themes/bs_bootstrap/css/components/popover.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .popover {
   position: absolute;
   top: 0;
diff --git a/themes/bs_bootstrap/css/components/tooltip.css b/themes/bs_bootstrap/css/components/tooltip.css
index b167008..8e1f6d4 100644
--- a/themes/bs_bootstrap/css/components/tooltip.css
+++ b/themes/bs_bootstrap/css/components/tooltip.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .tooltip {
   position: absolute;
   z-index: 1070;
diff --git a/themes/bs_bootstrap/css/layout/layout.css b/themes/bs_bootstrap/css/layout/layout.css
index f9e708e..bdcd81a 100644
--- a/themes/bs_bootstrap/css/layout/layout.css
+++ b/themes/bs_bootstrap/css/layout/layout.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .container {
   position: relative;
   margin-left: auto;
@@ -17,6 +18,7 @@
   margin-left: -15px;
 }
 
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .page__header .row {
   -webkit-justify-content: space-between;
       -ms-flex-pack: justify;
@@ -28,6 +30,7 @@
   padding-left: 15px;
 }
 
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .page__main {
   margin-top: 3rem;
   margin-bottom: 3rem;
@@ -42,6 +45,7 @@
   padding-left: 15px;
 }
 
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .page__footer__content .region {
   display: -webkit-flex;
   display: -ms-flexbox;
@@ -80,50 +84,41 @@
 }
 
 @media (min-width: 576px) {
-
   .container {
     padding-right: 15px;
     padding-left: 15px;
   }
-
   .container {
     width: 540px;
     max-width: 100%;
   }
-
   .row {
     margin-right: -15px;
     margin-left: -15px;
   }
-
   .page__header .region {
     padding-right: 15px;
     padding-left: 15px;
   }
-
   .page__content--with-sidebar .page__content-col,
   .page__content--with-sidebar .region-content-sidebar {
     padding-right: 15px;
     padding-left: 15px;
   }
-
   .page__footer__content .block {
     padding-right: 15px;
     padding-left: 15px;
   }
-
   .page__footer__content .block {
     -webkit-flex: 1;
     -ms-flex: 1;
     flex: 1;
     width: auto;
   }
-
   .page__footer .region-footer-copyright {
     margin-right: -15px;
     margin-left: -15px;
   }
-
   .page__footer .region-footer-copyright .block {
     padding-right: 15px;
     padding-left: 15px;
@@ -131,64 +126,53 @@
 }
 
 @media (min-width: 768px) {
-
   .container {
     padding-right: 15px;
     padding-left: 15px;
   }
-
   .container {
     width: 720px;
     max-width: 100%;
   }
-
   .row {
     margin-right: -15px;
     margin-left: -15px;
   }
-
   .page__header .region {
     padding-right: 15px;
     padding-left: 15px;
   }
-
   .page__content--with-sidebar .page__content-col,
   .page__content--with-sidebar .region-content-sidebar {
     padding-right: 15px;
     padding-left: 15px;
   }
-
   .page__content--with-sidebar .page__content-col {
     -webkit-flex: 0 0 75%;
     -ms-flex: 0 0 75%;
     flex: 0 0 75%;
     max-width: 75%;
   }
-
   .page__content--with-sidebar .region-content-sidebar {
     -webkit-flex: 0 0 25%;
     -ms-flex: 0 0 25%;
     flex: 0 0 25%;
     max-width: 25%;
   }
-
   .page__footer__content .region {
     -webkit-flex: 1;
     -ms-flex: 1;
     flex: 1;
     width: auto;
   }
-
   .page__footer__content .block {
     padding-right: 15px;
     padding-left: 15px;
   }
-
   .page__footer .region-footer-copyright {
     margin-right: -15px;
     margin-left: -15px;
   }
-
   .page__footer .region-footer-copyright .block {
     padding-right: 15px;
     padding-left: 15px;
@@ -196,43 +180,35 @@
 }
 
 @media (min-width: 992px) {
-
   .container {
     padding-right: 15px;
     padding-left: 15px;
   }
-
   .container {
     width: 960px;
     max-width: 100%;
   }
-
   .row {
     margin-right: -15px;
     margin-left: -15px;
   }
-
   .page__header .region {
     padding-right: 15px;
     padding-left: 15px;
   }
-
   .page__content--with-sidebar .page__content-col,
   .page__content--with-sidebar .region-content-sidebar {
     padding-right: 15px;
     padding-left: 15px;
   }
-
   .page__footer__content .block {
     padding-right: 15px;
     padding-left: 15px;
   }
-
   .page__footer .region-footer-copyright {
     margin-right: -15px;
     margin-left: -15px;
   }
-
   .page__footer .region-footer-copyright .block {
     padding-right: 15px;
     padding-left: 15px;
@@ -240,43 +216,35 @@
 }
 
 @media (min-width: 1200px) {
-
   .container {
     padding-right: 15px;
     padding-left: 15px;
   }
-
   .container {
     width: 1140px;
     max-width: 100%;
   }
-
   .row {
     margin-right: -15px;
     margin-left: -15px;
   }
-
   .page__header .region {
     padding-right: 15px;
     padding-left: 15px;
   }
-
   .page__content--with-sidebar .page__content-col,
   .page__content--with-sidebar .region-content-sidebar {
     padding-right: 15px;
     padding-left: 15px;
   }
-
   .page__footer__content .block {
     padding-right: 15px;
     padding-left: 15px;
   }
-
   .page__footer .region-footer-copyright {
     margin-right: -15px;
     margin-left: -15px;
   }
-
   .page__footer .region-footer-copyright .block {
     padding-right: 15px;
     padding-left: 15px;
diff --git a/themes/bs_bootstrap/css/theme/print.css b/themes/bs_bootstrap/css/theme/print.css
index b76bd84..60bc97b 100644
--- a/themes/bs_bootstrap/css/theme/print.css
+++ b/themes/bs_bootstrap/css/theme/print.css
@@ -1,3 +1,4 @@
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 @media print {
     *,
   *::before,
diff --git a/themes/bs_bootstrap/css/theme/theme.css b/themes/bs_bootstrap/css/theme/theme.css
index 2f34814..d469a06 100644
--- a/themes/bs_bootstrap/css/theme/theme.css
+++ b/themes/bs_bootstrap/css/theme/theme.css
@@ -1,67 +1,157 @@
-h1, .h1 {
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
+html {
+  font-size: 100%;
+  line-height: 1.5em;
+  -webkit-text-size-adjust: 100%;
+      -ms-text-size-adjust: 100%;
+          text-size-adjust: 100%;
+}
+
+body {
+  margin: 0;
+  padding: 0;
+}
+
+abbr[title] {
+  border-bottom: 0;
+  text-decoration: underline dotted;
+}
+
+pre,
+code,
+kbd,
+samp,
+var {
+  font-family: Menlo, "DejaVu Sans Mono", "Ubuntu Mono", Courier, "Courier New", monospace, sans-serif;
+  font-size: 1rem;
+}
+
+small {
+  font-size: 0.875rem;
+}
+
+sub,
+sup {
+  font-size: 0.625rem;
+  position: relative;
+  line-height: 0;
+  vertical-align: baseline;
+}
+
+sub {
+  bottom: -0.25em;
+}
+
+sup {
+  top: -0.5em;
+}
+
+h1,
+.h1 {
+  font-size: 2rem;
   line-height: 3rem;
   margin-top: 1.5rem;
-  margin-bottom: 3rem;
+  margin-bottom: 1.5rem;
 }
 
-h2, .h2 {
-  line-height: 3rem;
+h2,
+.h2 {
+  font-size: 1.5rem;
+  line-height: 2.25rem;
   margin-top: 1.5rem;
   margin-bottom: 1.5rem;
 }
 
-h3, .h3 {
-  line-height: 1.5rem;
+h3,
+.h3 {
+  font-size: 1.25rem;
+  line-height: 2.25rem;
   margin-top: 1.5rem;
-  margin-bottom: 0rem;
+  margin-bottom: 1.5rem;
 }
 
-h4, .h4 {
+h4,
+.h4 {
+  font-size: 1rem;
   line-height: 1.5rem;
   margin-top: 1.5rem;
-  margin-bottom: 0rem;
+  margin-bottom: 1.5rem;
 }
 
-h5, .h5 {
+h5,
+.h5 {
+  font-size: 0.875rem;
   line-height: 1.5rem;
   margin-top: 1.5rem;
-  margin-bottom: 0rem;
+  margin-bottom: 1.5rem;
 }
 
-h6, .h6 {
+h6,
+.h6 {
+  font-size: 0.625rem;
   line-height: 1.5rem;
   margin-top: 1.5rem;
-  margin-bottom: 0rem;
+  margin-bottom: 1.5rem;
 }
 
-p, ul, ol, pre, table, blockquote {
-  margin-top: 0rem;
-  margin-bottom: 1.5rem;
+blockquote {
+  margin: 1.5rem 2rem;
 }
 
-ul ul, ol ol, ul ol, ol ul {
-  margin-top: 0rem;
-  margin-bottom: 0rem;
+dl,
+menu,
+ol,
+ul {
+  margin: 1.5rem 0;
 }
 
-hr, .hr {
-  border: 1px solid;
-  margin: -1px 0;
+ol ol,
+ol ul,
+ul ol,
+ul ul {
+  margin: 0;
 }
 
-sub, sup {
-  position: relative;
-  vertical-align: baseline;
+dd {
+  margin: 0 0 0 32px;
 }
 
-sup {
-  top: -0.5em;
+.divider,
+hr {
+  margin: 1.5rem 0;
+  border: 0;
+  border-top: 1px solid;
 }
 
-sub {
-  bottom: -0.25em;
+.divider > :first-child, hr > :first-child {
+  margin-top: 1.5rem;
+}
+
+hr {
+  box-sizing: content-box;
+  height: 0;
+  overflow: visible;
+}
+
+p,
+pre {
+  margin: 1.5rem 0;
 }
 
+table {
+  margin: 1.5rem 0;
+  border-collapse: collapse;
+  border-spacing: 0;
+  width: 100%;
+}
+
+td,
+th {
+  padding: 0;
+}
+
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .page__footer {
   background-color: #eceeef;
   color: #292b2c;
@@ -97,6 +187,7 @@ sub {
   color: #299bfd;
 }
 
+/*! typey | GPLv2 License | https://github.com/jptaranto/typey */
 .navbar-brand {
   font-size: 1.25rem;
   line-height: inherit;
@@ -160,3 +251,12 @@ sub {
 .navbar .navbar-text {
   color: #0275d8;
 }
+
+@media print {
+  html {
+    font-size: 12pt;
+  }
+  abbr[title]::after {
+    content: " (" attr(title) ")";
+  }
+}
diff --git a/themes/bs_bootstrap/gulp-options.yml b/themes/bs_bootstrap/gulp-options.yml
index bbc3aa9..1cb7761 100644
--- a/themes/bs_bootstrap/gulp-options.yml
+++ b/themes/bs_bootstrap/gulp-options.yml
@@ -26,5 +26,3 @@ bootstrap:
     - 'js/dist/tooltip.js'
     - 'node_modules/tether/dist/js/tether.min.js'
     - 'js/dist/util.js'
-    - 'js/dist/modal.js'
-    - 'js/dist/carousel.js'
diff --git a/themes/bs_bootstrap/js/bootstrap/carousel.js b/themes/bs_bootstrap/js/bootstrap/carousel.js
deleted file mode 100644
index dcb7163..0000000
--- a/themes/bs_bootstrap/js/bootstrap/carousel.js
+++ /dev/null
@@ -1 +0,0 @@
-function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_createClass=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),e}}(),Carousel=function(t){var e="carousel",i="4.0.0-alpha.6",n="bs.carousel",s="."+n,r=".data-api",o=t.fn[e],a=600,l=37,u=39,c={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},h={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},d={NEXT:"next",PREV:"prev",LEFT:"left",RIGHT:"right"},_={SLIDE:"slide"+s,SLID:"slid"+s,KEYDOWN:"keydown"+s,MOUSEENTER:"mouseenter"+s,MOUSELEAVE:"mouseleave"+s,LOAD_DATA_API:"load"+s+r,CLICK_DATA_API:"click"+s+r},f={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"carousel-item-right",LEFT:"carousel-item-left",NEXT:"carousel-item-next",PREV:"carousel-item-prev",ITEM:"carousel-item"},E={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},m=function(){function r(e,i){_classCallCheck(this,r),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this._config=this._getConfig(i),this._element=t(e)[0],this._indicatorsElement=t(this._element).find(E.INDICATORS)[0],this._addEventListeners()}return r.prototype.next=function(){if(this._isSliding)throw new Error("Carousel is sliding");this._slide(d.NEXT)},r.prototype.nextWhenVisible=function(){document.hidden||this.next()},r.prototype.prev=function(){if(this._isSliding)throw new Error("Carousel is sliding");this._slide(d.PREVIOUS)},r.prototype.pause=function(e){e||(this._isPaused=!0),t(this._element).find(E.NEXT_PREV)[0]&&Util.supportsTransitionEnd()&&(Util.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},r.prototype.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},r.prototype.to=function(e){var i=this;this._activeElement=t(this._element).find(E.ACTIVE_ITEM)[0];var n=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0)){if(this._isSliding)return void t(this._element).one(_.SLID,function(){return i.to(e)});if(n===e)return this.pause(),void this.cycle();var s=e>n?d.NEXT:d.PREVIOUS;this._slide(s,this._items[e])}},r.prototype.dispose=function(){t(this._element).off(s),t.removeData(this._element,n),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},r.prototype._getConfig=function(i){return i=t.extend({},c,i),Util.typeCheckConfig(e,i,h),i},r.prototype._addEventListeners=function(){var e=this;this._config.keyboard&&t(this._element).on(_.KEYDOWN,function(t){return e._keydown(t)}),"hover"!==this._config.pause||"ontouchstart"in document.documentElement||t(this._element).on(_.MOUSEENTER,function(t){return e.pause(t)}).on(_.MOUSELEAVE,function(t){return e.cycle(t)})},r.prototype._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case l:t.preventDefault(),this.prev();break;case u:t.preventDefault(),this.next();break;default:return}},r.prototype._getItemIndex=function(e){return this._items=t.makeArray(t(e).parent().find(E.ITEM)),this._items.indexOf(e)},r.prototype._getItemByDirection=function(t,e){var i=t===d.NEXT,n=t===d.PREVIOUS,s=this._getItemIndex(e),r=this._items.length-1,o=n&&0===s||i&&s===r;if(o&&!this._config.wrap)return e;var a=t===d.PREVIOUS?-1:1,l=(s+a)%this._items.length;return l===-1?this._items[this._items.length-1]:this._items[l]},r.prototype._triggerSlideEvent=function(e,i){var n=t.Event(_.SLIDE,{relatedTarget:e,direction:i});return t(this._element).trigger(n),n},r.prototype._setActiveIndicatorElement=function(e){if(this._indicatorsElement){t(this._indicatorsElement).find(E.ACTIVE).removeClass(f.ACTIVE);var i=this._indicatorsElement.children[this._getItemIndex(e)];i&&t(i).addClass(f.ACTIVE)}},r.prototype._slide=function(e,i){var n=this,s=t(this._element).find(E.ACTIVE_ITEM)[0],r=i||s&&this._getItemByDirection(e,s),o=Boolean(this._interval),l=void 0,u=void 0,c=void 0;if(e===d.NEXT?(l=f.LEFT,u=f.NEXT,c=d.LEFT):(l=f.RIGHT,u=f.PREV,c=d.RIGHT),r&&t(r).hasClass(f.ACTIVE))return void(this._isSliding=!1);var h=this._triggerSlideEvent(r,c);if(!h.isDefaultPrevented()&&s&&r){this._isSliding=!0,o&&this.pause(),this._setActiveIndicatorElement(r);var m=t.Event(_.SLID,{relatedTarget:r,direction:c});Util.supportsTransitionEnd()&&t(this._element).hasClass(f.SLIDE)?(t(r).addClass(u),Util.reflow(r),t(s).addClass(l),t(r).addClass(l),t(s).one(Util.TRANSITION_END,function(){t(r).removeClass(l+" "+u).addClass(f.ACTIVE),t(s).removeClass(f.ACTIVE+" "+u+" "+l),n._isSliding=!1,setTimeout(function(){return t(n._element).trigger(m)},0)}).emulateTransitionEnd(a)):(t(s).removeClass(f.ACTIVE),t(r).addClass(f.ACTIVE),this._isSliding=!1,t(this._element).trigger(m)),o&&this.cycle()}},r._jQueryInterface=function(e){return this.each(function(){var i=t(this).data(n),s=t.extend({},c,t(this).data());"object"===("undefined"==typeof e?"undefined":_typeof(e))&&t.extend(s,e);var o="string"==typeof e?e:s.slide;if(i||(i=new r(this,s),t(this).data(n,i)),"number"==typeof e)i.to(e);else if("string"==typeof o){if(void 0===i[o])throw new Error('No method named "'+o+'"');i[o]()}else s.interval&&(i.pause(),i.cycle())})},r._dataApiClickHandler=function(e){var i=Util.getSelectorFromElement(this);if(i){var s=t(i)[0];if(s&&t(s).hasClass(f.CAROUSEL)){var o=t.extend({},t(s).data(),t(this).data()),a=this.getAttribute("data-slide-to");a&&(o.interval=!1),r._jQueryInterface.call(t(s),o),a&&t(s).data(n).to(a),e.preventDefault()}}},_createClass(r,null,[{key:"VERSION",get:function(){return i}},{key:"Default",get:function(){return c}}]),r}();return t(document).on(_.CLICK_DATA_API,E.DATA_SLIDE,m._dataApiClickHandler),t(window).on(_.LOAD_DATA_API,function(){t(E.DATA_RIDE).each(function(){var e=t(this);m._jQueryInterface.call(e,e.data())})}),t.fn[e]=m._jQueryInterface,t.fn[e].Constructor=m,t.fn[e].noConflict=function(){return t.fn[e]=o,m._jQueryInterface},m}(jQuery);
\ No newline at end of file
diff --git a/themes/bs_bootstrap/js/bootstrap/modal.js b/themes/bs_bootstrap/js/bootstrap/modal.js
deleted file mode 100644
index 61bdc77..0000000
--- a/themes/bs_bootstrap/js/bootstrap/modal.js
+++ /dev/null
@@ -1 +0,0 @@
-function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_createClass=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),e}}(),Modal=function(t){var e="modal",i="4.0.0-alpha.6",n="bs.modal",o="."+n,s=".data-api",r=t.fn[e],a=300,l=150,d=27,h={backdrop:!0,keyboard:!0,focus:!0,show:!0},c={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},_={HIDE:"hide"+o,HIDDEN:"hidden"+o,SHOW:"show"+o,SHOWN:"shown"+o,FOCUSIN:"focusin"+o,RESIZE:"resize"+o,CLICK_DISMISS:"click.dismiss"+o,KEYDOWN_DISMISS:"keydown.dismiss"+o,MOUSEUP_DISMISS:"mouseup.dismiss"+o,MOUSEDOWN_DISMISS:"mousedown.dismiss"+o,CLICK_DATA_API:"click"+o+s},u={SCROLLBAR_MEASURER:"modal-scrollbar-measure",BACKDROP:"modal-backdrop",OPEN:"modal-open",FADE:"fade",SHOW:"show"},f={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top"},p=function(){function s(e,i){_classCallCheck(this,s),this._config=this._getConfig(i),this._element=e,this._dialog=t(e).find(f.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._originalBodyPadding=0,this._scrollbarWidth=0}return s.prototype.toggle=function(t){return this._isShown?this.hide():this.show(t)},s.prototype.show=function(e){var i=this;if(this._isTransitioning)throw new Error("Modal is transitioning");Util.supportsTransitionEnd()&&t(this._element).hasClass(u.FADE)&&(this._isTransitioning=!0);var n=t.Event(_.SHOW,{relatedTarget:e});t(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),t(document.body).addClass(u.OPEN),this._setEscapeEvent(),this._setResizeEvent(),t(this._element).on(_.CLICK_DISMISS,f.DATA_DISMISS,function(t){return i.hide(t)}),t(this._dialog).on(_.MOUSEDOWN_DISMISS,function(){t(i._element).one(_.MOUSEUP_DISMISS,function(e){t(e.target).is(i._element)&&(i._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return i._showElement(e)}))},s.prototype.hide=function(e){var i=this;if(e&&e.preventDefault(),this._isTransitioning)throw new Error("Modal is transitioning");var n=Util.supportsTransitionEnd()&&t(this._element).hasClass(u.FADE);n&&(this._isTransitioning=!0);var o=t.Event(_.HIDE);t(this._element).trigger(o),this._isShown&&!o.isDefaultPrevented()&&(this._isShown=!1,this._setEscapeEvent(),this._setResizeEvent(),t(document).off(_.FOCUSIN),t(this._element).removeClass(u.SHOW),t(this._element).off(_.CLICK_DISMISS),t(this._dialog).off(_.MOUSEDOWN_DISMISS),n?t(this._element).one(Util.TRANSITION_END,function(t){return i._hideModal(t)}).emulateTransitionEnd(a):this._hideModal())},s.prototype.dispose=function(){t.removeData(this._element,n),t(window,document,this._element,this._backdrop).off(o),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._originalBodyPadding=null,this._scrollbarWidth=null},s.prototype._getConfig=function(i){return i=t.extend({},h,i),Util.typeCheckConfig(e,i,c),i},s.prototype._showElement=function(e){var i=this,n=Util.supportsTransitionEnd()&&t(this._element).hasClass(u.FADE);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,n&&Util.reflow(this._element),t(this._element).addClass(u.SHOW),this._config.focus&&this._enforceFocus();var o=t.Event(_.SHOWN,{relatedTarget:e}),s=function(){i._config.focus&&i._element.focus(),i._isTransitioning=!1,t(i._element).trigger(o)};n?t(this._dialog).one(Util.TRANSITION_END,s).emulateTransitionEnd(a):s()},s.prototype._enforceFocus=function(){var e=this;t(document).off(_.FOCUSIN).on(_.FOCUSIN,function(i){document===i.target||e._element===i.target||t(e._element).has(i.target).length||e._element.focus()})},s.prototype._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?t(this._element).on(_.KEYDOWN_DISMISS,function(t){t.which===d&&e.hide()}):this._isShown||t(this._element).off(_.KEYDOWN_DISMISS)},s.prototype._setResizeEvent=function(){var e=this;this._isShown?t(window).on(_.RESIZE,function(t){return e._handleUpdate(t)}):t(window).off(_.RESIZE)},s.prototype._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden","true"),this._isTransitioning=!1,this._showBackdrop(function(){t(document.body).removeClass(u.OPEN),e._resetAdjustments(),e._resetScrollbar(),t(e._element).trigger(_.HIDDEN)})},s.prototype._removeBackdrop=function(){this._backdrop&&(t(this._backdrop).remove(),this._backdrop=null)},s.prototype._showBackdrop=function(e){var i=this,n=t(this._element).hasClass(u.FADE)?u.FADE:"";if(this._isShown&&this._config.backdrop){var o=Util.supportsTransitionEnd()&&n;if(this._backdrop=document.createElement("div"),this._backdrop.className=u.BACKDROP,n&&t(this._backdrop).addClass(n),t(this._backdrop).appendTo(document.body),t(this._element).on(_.CLICK_DISMISS,function(t){return i._ignoreBackdropClick?void(i._ignoreBackdropClick=!1):void(t.target===t.currentTarget&&("static"===i._config.backdrop?i._element.focus():i.hide()))}),o&&Util.reflow(this._backdrop),t(this._backdrop).addClass(u.SHOW),!e)return;if(!o)return void e();t(this._backdrop).one(Util.TRANSITION_END,e).emulateTransitionEnd(l)}else if(!this._isShown&&this._backdrop){t(this._backdrop).removeClass(u.SHOW);var s=function(){i._removeBackdrop(),e&&e()};Util.supportsTransitionEnd()&&t(this._element).hasClass(u.FADE)?t(this._backdrop).one(Util.TRANSITION_END,s).emulateTransitionEnd(l):s()}else e&&e()},s.prototype._handleUpdate=function(){this._adjustDialog()},s.prototype._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},s.prototype._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},s.prototype._checkScrollbar=function(){this._isBodyOverflowing=document.body.clientWidth<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},s.prototype._setScrollbar=function(){var e=parseInt(t(f.FIXED_CONTENT).css("padding-right")||0,10);this._originalBodyPadding=document.body.style.paddingRight||"",this._isBodyOverflowing&&(document.body.style.paddingRight=e+this._scrollbarWidth+"px")},s.prototype._resetScrollbar=function(){document.body.style.paddingRight=this._originalBodyPadding},s.prototype._getScrollbarWidth=function(){var t=document.createElement("div");t.className=u.SCROLLBAR_MEASURER,document.body.appendChild(t);var e=t.offsetWidth-t.clientWidth;return document.body.removeChild(t),e},s._jQueryInterface=function(e,i){return this.each(function(){var o=t(this).data(n),r=t.extend({},s.Default,t(this).data(),"object"===("undefined"==typeof e?"undefined":_typeof(e))&&e);if(o||(o=new s(this,r),t(this).data(n,o)),"string"==typeof e){if(void 0===o[e])throw new Error('No method named "'+e+'"');o[e](i)}else r.show&&o.show(i)})},_createClass(s,null,[{key:"VERSION",get:function(){return i}},{key:"Default",get:function(){return h}}]),s}();return t(document).on(_.CLICK_DATA_API,f.DATA_TOGGLE,function(e){var i=this,o=void 0,s=Util.getSelectorFromElement(this);s&&(o=t(s)[0]);var r=t(o).data(n)?"toggle":t.extend({},t(o).data(),t(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault();var a=t(o).one(_.SHOW,function(e){e.isDefaultPrevented()||a.one(_.HIDDEN,function(){t(i).is(":visible")&&i.focus()})});p._jQueryInterface.call(t(o),r,this)}),t.fn[e]=p._jQueryInterface,t.fn[e].Constructor=p,t.fn[e].noConflict=function(){return t.fn[e]=r,p._jQueryInterface},p}(jQuery);
\ No newline at end of file
diff --git a/themes/bs_bootstrap/package.json b/themes/bs_bootstrap/package.json
index f4f42ab..9d488b5 100644
--- a/themes/bs_bootstrap/package.json
+++ b/themes/bs_bootstrap/package.json
@@ -36,6 +36,7 @@
     "stylelint-config-standard": "^16.0.0",
     "stylelint-order": "^0.3.0",
     "stylelint-scss": "^1.4.3",
-    "stylelint-selector-bem-pattern": "^1.0.0"
+    "stylelint-selector-bem-pattern": "^1.0.0",
+    "typey": "^1.1.1"
   }
 }
diff --git a/themes/bs_bootstrap/sass/_init.scss b/themes/bs_bootstrap/sass/_init.scss
index fe3654f..4bcfade 100644
--- a/themes/bs_bootstrap/sass/_init.scss
+++ b/themes/bs_bootstrap/sass/_init.scss
@@ -15,3 +15,9 @@
 
 // Load needed mixins.
 @import "bootstrap/scss/mixins";
+
+// Typey framework for working with typography.
+// Documentation on the [Typey homepage](https://github.com/jptaranto/typey).
+
+// Load typey to manage font sizes and margins.
+@import 'typey/stylesheets/typey';
diff --git a/themes/bs_bootstrap/sass/components/carousel.scss b/themes/bs_bootstrap/sass/components/carousel.scss
deleted file mode 100644
index 1874619..0000000
--- a/themes/bs_bootstrap/sass/components/carousel.scss
+++ /dev/null
@@ -1,2 +0,0 @@
-@import "init";
-@import "bootstrap/scss/carousel";
\ No newline at end of file
diff --git a/themes/bs_bootstrap/sass/components/modal.scss b/themes/bs_bootstrap/sass/components/modal.scss
deleted file mode 100644
index 8fbc77d..0000000
--- a/themes/bs_bootstrap/sass/components/modal.scss
+++ /dev/null
@@ -1,2 +0,0 @@
-@import "init";
-@import "bootstrap/scss/modal";
diff --git a/themes/bs_bootstrap/sass/components/pagination.scss b/themes/bs_bootstrap/sass/components/pagination.scss
deleted file mode 100644
index 25bdd36..0000000
--- a/themes/bs_bootstrap/sass/components/pagination.scss
+++ /dev/null
@@ -1,2 +0,0 @@
-@import "init";
-@import "bootstrap/scss/pagination";
diff --git a/themes/bs_bootstrap/sass/theme/base/_elements.scss b/themes/bs_bootstrap/sass/theme/base/_elements.scss
index b5e8e05..55cd7c5 100644
--- a/themes/bs_bootstrap/sass/theme/base/_elements.scss
+++ b/themes/bs_bootstrap/sass/theme/base/_elements.scss
@@ -1,69 +1,210 @@
 @import "init";
 
-// Experimenting with gridlover vertical rythm.
-// @see https://www.gridlover.net/try
-//   Font size:    16
-//   Line height:  1.5
-//   Scale factor: 1.333
-//
-// @todo - Investigate next links
-// - http://typecast.com/blog/4-simple-steps-to-vertical-rhythm
-// - https://scotch.io/tutorials/aesthetic-sass-3-typography-and-vertical-rhythm
-// - https://www.smashingmagazine.com/2012/12/css-baseline-the-good-the-bad-and-the-ugly/
-// and figure something nicer.
-h1, .h1 {
-  line-height: 3rem;
-  margin-top: 1.5rem;
-  margin-bottom: 3rem;
-}
-h2, .h2 {
-  line-height: 3rem;
-  margin-top: 1.5rem;
-  margin-bottom: 1.5rem;
-}
-h3, .h3 {
-  line-height: 1.5rem;
-  margin-top: 1.5rem;
-  margin-bottom: 0rem;
-}
-h4, .h4 {
-  line-height: 1.5rem;
-  margin-top: 1.5rem;
-  margin-bottom: 0rem;
-}
-h5, .h5 {
-  line-height: 1.5rem;
-  margin-top: 1.5rem;
-  margin-bottom: 0rem;
-}
-h6, .h6 {
-  line-height: 1.5rem;
-  margin-top: 1.5rem;
-  margin-bottom: 0rem;
-}
-p, ul, ol, pre, table, blockquote {
-  margin-top: 0rem;
-  margin-bottom: 1.5rem;
-}
-ul ul, ol ol, ul ol, ol ul {
-  margin-top: 0rem;
-  margin-bottom: 0rem;
-}
-
-// Let's make sure all's aligned.
-hr, .hr {
-  border: 1px solid;
-  margin: -1px 0;
-}
-
-sub, sup {
-  //line-height: 0;
+// Typey vertical rhythm rules (https://github.com/jptaranto/typey)
+//  Font-size:    16px
+//  Line height:  24px
+
+// Root
+
+html {
+  @include define-type-sizing;
+  // Prevent adjustments of font size after orientation changes in IE and iOS.
+  text-size-adjust: 100%;
+}
+
+body {
+  // Output a horizontal grid to help with debugging typography. The
+  // $typey-debug variable will toggle its output.
+  @include typey-debug-grid;
+  // Remove default margin and padding.
+  margin: 0;
+  padding: 0;
+}
+
+// Text-level semantics
+
+// Abbreviation / Acroynym
+abbr[title] {
+  // Remove the bottom border in Firefox <40.
+  border-bottom: 0;
+  // Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
+  text-decoration: underline dotted;
+
+  @media print {
+    // Add visible title after abbreviations.
+    &::after {
+      content: " (" attr(title) ")";
+    }
+  }
+}
+
+// Code
+%monospace,
+code,
+kbd,
+samp,
+var {
+  // Correct the inheritance and scaling of font size in all browsers.
+  @include typeface(monospace);
+  // Correct the odd `em` font sizing in all browsers.
+  font-size: 1rem;
+}
+
+// Small text
+small {
+  // Add the correct font size in all browsers.
+  @include font-size(s);
+}
+
+// Superscript / Subscript
+sub,
+sup {
+  // Prevent `sub` and `sup` elements from affecting the line height in
+  // all browsers.
+  @include font-size(xs);
+
   position: relative;
+  line-height: 0;
   vertical-align: baseline;
 }
+
+sub {
+  bottom: -0.25em;
+}
+
 sup {
   top: -0.5em;
 }
-sub {
-  bottom: -0.25em;
+
+// Headings
+h1,
+.h1 {
+  // Set the font-size and line-height while keeping a proper vertical rhythm.
+  @include type-layout(xxl, 2);
+
+  // Set 1 unit of vertical rhythm on the top and bottom margins.
+  @include margin-top(1, xxl);
+  @include margin-bottom(1, xxl);
+}
+
+h2,
+.h2 {
+  @include type-layout(xl, 1.5);
+  @include margin-top(1, xl);
+  @include margin-bottom(1, xl);
+}
+
+h3,
+.h3 {
+  @include type-layout(l, 1.5);
+  @include margin-top(1, l);
+  @include margin-bottom(1, l);
+}
+
+h4,
+.h4 {
+  @include type-layout(m, 1);
+  @include margin-top(1, m);
+  @include margin-bottom(1, m);
+}
+
+h5,
+.h5 {
+  @include type-layout(s, 1);
+  @include margin-top(1, s);
+  @include margin-bottom(1, s);
+}
+
+h6,
+.h6 {
+  @include type-layout(xs, 1);
+  @include margin-top(1, xs);
+  @include margin-bottom(1, xs);
+}
+
+// Grouping content
+
+// Block quotes
+blockquote {
+  // Set 1 unit of vertical rhythm on the top and bottom margin.
+  // Also indent the quote on both sides.
+  @include margin(1 $indent-amount);
+}
+
+// Lists
+dl,
+menu,
+ol,
+ul {
+  // Address margins set differently in IE 6/7.
+  @include margin(1 0);
+}
+
+// Turn off margins on nested lists.
+ol,
+ul {
+  ol,
+  ul {
+    margin: 0;
+  }
+}
+
+dd {
+  margin: 0 0 0 $indent-amount;
+}
+
+// Divider
+.divider,
+%divider {
+  @include margin(1 0);
+
+  border: 0;
+  border-top: 1px solid;
+
+  // If used as a container, add a top margin to the first child.
+  > :first-child {
+    @include margin-top(1);
+  }
+}
+
+// Horizontal rule
+hr {
+  @extend %divider;
+  // Add the correct box sizing in Firefox.
+  box-sizing: content-box;
+  height: 0;
+  // Show the overflow in Edge and IE.
+  overflow: visible;
+}
+
+// Body copy
+p,
+pre {
+  // Set 1 unit of vertical rhythm on the top and bottom margin.
+  @include margin(1 0);
+}
+
+// Preformatted text
+pre {
+  @extend %monospace;
+}
+
+// Tables
+
+table {
+  // Add vertical rhythm margins.
+  @include margin(1 0);
+
+  // Remove most spacing between table cells.
+  border-collapse: collapse;
+  border-spacing: 0;
+
+  // Prevent cramped-looking tables
+  width: 100%;
+}
+
+td,
+th {
+  // Remove most spacing between table cells.
+  padding: 0;
 }
diff --git a/themes/bs_bootstrap/sass/variables/_bs_bootstrap.scss b/themes/bs_bootstrap/sass/variables/_bs_bootstrap.scss
index fd8a17a..62ea455 100644
--- a/themes/bs_bootstrap/sass/variables/_bs_bootstrap.scss
+++ b/themes/bs_bootstrap/sass/variables/_bs_bootstrap.scss
@@ -5,3 +5,68 @@
 // Defines screen size between 'bigger' and 'smaller' screens. Usually this is
 // a size where navigation bar is hidden for smaller screen and toggler is show.
 $responsive-break: 'md' !default;
+
+//
+// Typey variables
+// Documentation on the [Typey homepage](https://github.com/jptaranto/typey).
+//
+
+// Font styling and line heights
+
+// The length unit in which to output font size and margin values.
+// Supported values: px, em, rem.
+$base-unit:         'rem';
+
+// The font size set on the root html element.
+$base-font-size:    16px;
+
+// The base line height determines the basic unit of vertical rhythm.
+$base-line-height:  24px;
+
+// The method to calculate line-height.
+// Rhytm uses a vertical rhythm approach where line-height is specified as
+// a multiple of the $base-line-height.
+$line-height-method:       rhythm !default;
+
+// px fallbacks for rem units are needed for IE 8 and earlier.
+$rem-fallback:      false;
+
+// The font sizes in our type hierarchy as tee shirt sizes.
+$font-size: (
+  xxl:              32px,
+  xl:               24px,
+  l:                20px,
+  m:                $base-font-size,
+  s:                14px,
+  xs:               10px
+);
+
+// Typey allows you to alter font weights site-wide with this map.
+$font-weight: (
+  bold:             bold,
+  medium:           500,
+  normal:           normal,
+  light:            300,
+  lighter:          lighter,
+);
+
+// Monospace font stacks.
+$menlo:           Menlo, 'DejaVu Sans Mono', 'Ubuntu Mono', Courier, 'Courier New', monospace, sans-serif;
+
+// The font faces you specify in the $typefaces map can be used in the
+// typeface() mixin.
+$typefaces: (
+  monospace: (
+    font-family: $menlo,
+  ),
+);
+
+// Output a horizontal grid to help with debugging typography.
+$typey-debug: false;
+
+// Debug grid coloring
+$typey-debug-color:        #4affff !default;
+
+
+// Miscellaneous variable
+$indent-amount: 2 * $base-font-size;
diff --git a/themes/bs_bootstrap/templates/navigation/pager.html.twig b/themes/bs_bootstrap/templates/navigation/pager.html.twig
deleted file mode 100644
index 7138b9f..0000000
--- a/themes/bs_bootstrap/templates/navigation/pager.html.twig
+++ /dev/null
@@ -1,91 +0,0 @@
-{#
-/**
- * @file
- * Theme override to display a pager.
- *
- * Available variables:
- * - items: List of pager items.
- *   The list is keyed by the following elements:
- *   - first: Item for the first page; not present on the first page of results.
- *   - previous: Item for the previous page; not present on the first page
- *     of results.
- *   - next: Item for the next page; not present on the last page of results.
- *   - last: Item for the last page; not present on the last page of results.
- *   - pages: List of pages, keyed by page number.
- *   Sub-sub elements:
- *   items.first, items.previous, items.next, items.last, and each item inside
- *   items.pages contain the following elements:
- *   - href: URL with appropriate query parameters for the item.
- *   - attributes: A keyed list of HTML attributes for the item.
- *   - text: The visible text used for the item link, such as "‹ Previous"
- *     or "Next ›".
- * - current: The page number of the current page.
- * - ellipses: If there are more pages than the quantity allows, then an
- *   ellipsis before or after the listed pages may be present.
- *   - previous: Present if the currently visible list of pages does not start
- *     at the first page.
- *   - next: Present if the visible list of pages ends before the last page.
- *
- * @see template_preprocess_pager()
- *
- * @ingroup themeable
- */
-#}
-{% if items %}
-  <nav aria-label="{{ 'Pagination'|t }}">
-    <ul class="pagination js-pager__items">
-      {# Print first item if we are not on the first page. #}
-      {% if items.first %}
-        <li class="page-item">
-          <a class="page-link" href="{{ items.first.href }}"{{ items.first.attributes|without('href') }}>
-            <span class="visually-hidden">{{ 'First page'|t }}</span>
-            <span aria-hidden="true">{{ items.first.text|default('« First'|t) }}</span>
-          </a>
-        </li>
-      {% endif %}
-      {# Print previous item if we are not on the first page. #}
-      {% if items.previous %}
-        <li class="page-item">
-          <a class="page-link" href="{{ items.previous.href }}"{{ items.previous.attributes|without('href') }}>
-            <span class="visually-hidden">{{ 'Previous page'|t }}</span>
-            <span aria-hidden="true">{{ items.previous.text|default('‹ Previous'|t) }}</span>
-          </a>
-        </li>
-      {% endif %}
-      {# Add an ellipsis if there are further previous pages. #}
-      {% if ellipses.previous %}
-        <li><a class="page-link">&hellip;</a></li>
-      {% endif %}
-      {# Now generate the actual pager piece. #}
-      {% for key, item in items.pages %}
-        <li class="page-item{{ current == key ? ' active' : '' }}">
-          <a class="page-link" href="{{ item.href }}"{{ item.attributes|without('href') }}>
-            {{ key }}
-          </a>
-        </li>
-      {% endfor %}
-      {# Add an ellipsis if there are further next pages. #}
-      {% if ellipses.next %}
-        <li><a class="page-link">&hellip;</a></li>
-      {% endif %}
-      {# Print next item if we are not on the last page. #}
-      {% if items.next %}
-        <li class="page-item">
-          <a class="page-link" href="{{ items.next.href }}"{{ items.next.attributes|without('href') }}>
-            <span class="visually-hidden">{{ 'Next page'|t }}</span>
-            <span aria-hidden="true">{{ items.next.text|default('Next ›'|t) }}</span>
-          </a>
-        </li>
-      {% endif %}
-      {# Print last item if we are not on the last page. #}
-      {% if items.last %}
-        <li class="page-item">
-          <a class="page-link" href="{{ items.last.href }}""{{ items.last.attributes|without('href') }}>
-            <span class="visually-hidden">{{ 'Last page'|t }}</span>
-            <span aria-hidden="true">{{ items.last.text|default('Last »'|t) }}</span>
-          </a>
-        </li>
-      {% endif %}
-    </ul>
-  </nav>
-{% endif %}
diff --git a/themes/bs_bootstrap/templates/navigation/views-mini-pager.html.twig b/themes/bs_bootstrap/templates/navigation/views-mini-pager.html.twig
deleted file mode 100755
index ff7e5df..0000000
--- a/themes/bs_bootstrap/templates/navigation/views-mini-pager.html.twig
+++ /dev/null
@@ -1,44 +0,0 @@
-{#
-/**
- * @file
- * Theme override for a views mini-pager.
- *
- * Available variables:
- * - items: List of pager items.
- *
- * @see template_preprocess_views_mini_pager()
- *
- * @ingroup themeable
- */
-#}
-{% if items.previous or items.next %}
-  <nav aria-label="{{ 'Pagination'|t }}">
-    <ul class="pagination js-pager__items">
-      {% if items.previous %}
-        <li class="page-item">
-          <a class="page-link" href="{{ items.previous.href }}" title="{{ 'Go to previous page'|t }}" rel="prev"{{ items.previous.attributes|without('href', 'title', 'rel') }}>
-            <span class="visually-hidden">{{ 'Previous page'|t }}</span>
-            <span aria-hidden="true">{{ items.previous.text|default('‹‹'|t) }}</span>
-          </a>
-        </li>
-      {% endif %}
-      {% if items.current %}
-        <li class="page-item disabled">
-          <span class="page-link">
-            {% trans %}
-            Page {{ items.current }}
-            {% endtrans %}
-          </span>
-        </li>
-      {% endif %}
-      {% if items.next %}
-        <li class="page-item">
-          <a class="page-link" href="{{ items.next.href }}" title="{{ 'Go to next page'|t }}" rel="next"{{ items.next.attributes|without('href', 'title', 'rel') }}>
-            <span class="visually-hidden">{{ 'Next page'|t }}</span>
-            <span aria-hidden="true">{{ items.next.text|default('››'|t) }}</span>
-          </a>
-        </li>
-      {% endif %}
-    </ul>
-  </nav>
-{% endif %}
diff --git a/themes/starterkit_bootstrap/css/base/elements.css b/themes/starterkit_bootstrap/css/base/elements.css
index c4833e0..d663eeb 100644
--- a/themes/starterkit_bootstrap/css/base/elements.css
+++ b/themes/starterkit_bootstrap/css/base/elements.css
@@ -567,7 +567,7 @@ pre code {
 }
 
 .thead-default th {
-  color: #464a4c;
+  color: #eceeef;
   background-color: #eceeef;
 }
 
diff --git a/themes/starterkit_bootstrap/css/components/carousel.css b/themes/starterkit_bootstrap/css/components/carousel.css
deleted file mode 100644
index 5218aef..0000000
--- a/themes/starterkit_bootstrap/css/components/carousel.css
+++ /dev/null
@@ -1,212 +0,0 @@
-.carousel {
-  position: relative;
-}
-
-.carousel-inner {
-  position: relative;
-  width: 100%;
-  overflow: hidden;
-}
-
-.carousel-item {
-  position: relative;
-  display: none;
-  width: 100%;
-}
-
-@supports (transform: translate3d(0, 0, 0)) {
-  .carousel-item {
-    transition: -webkit-transform 0.6s ease-in-out;
-    transition: transform 0.6s ease-in-out;
-    transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
-    -webkit-backface-visibility: hidden;
-            backface-visibility: hidden;
-    -webkit-perspective: 1000px;
-            perspective: 1000px;
-  }
-}
-
-.carousel-item.active,
-.carousel-item-next,
-.carousel-item-prev {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-}
-
-.carousel-item-next,
-.carousel-item-prev {
-  position: absolute;
-  top: 0;
-}
-
-@supports (transform: translate3d(0, 0, 0)) {
-  .carousel-item-next.carousel-item-left,
-  .carousel-item-prev.carousel-item-right {
-    -webkit-transform: translate3d(0, 0, 0);
-            transform: translate3d(0, 0, 0);
-  }
-  .carousel-item-next,
-  .active.carousel-item-right {
-    -webkit-transform: translate3d(100%, 0, 0);
-            transform: translate3d(100%, 0, 0);
-  }
-  .carousel-item-prev,
-  .active.carousel-item-left {
-    -webkit-transform: translate3d(-100%, 0, 0);
-            transform: translate3d(-100%, 0, 0);
-  }
-}
-
-.carousel-control-prev,
-.carousel-control-next {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-align-items: center;
-      -ms-flex-align: center;
-          align-items: center;
-  -webkit-justify-content: center;
-      -ms-flex-pack: center;
-          justify-content: center;
-  width: 15%;
-  color: #fff;
-  text-align: center;
-  opacity: 0.5;
-}
-
-.carousel-control-prev:focus, .carousel-control-prev:hover,
-.carousel-control-next:focus,
-.carousel-control-next:hover {
-  color: #fff;
-  text-decoration: none;
-  outline: 0;
-  opacity: .9;
-}
-
-.carousel-control-prev {
-  left: 0;
-}
-
-.carousel-control-next {
-  right: 0;
-}
-
-.carousel-control-prev-icon,
-.carousel-control-next-icon {
-  display: inline-block;
-  width: 20px;
-  height: 20px;
-  background: transparent no-repeat center center;
-  background-size: 100% 100%;
-}
-
-.carousel-control-prev-icon {
-  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M4 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E");
-}
-
-.carousel-control-next-icon {
-  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M1.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E");
-}
-
-.carousel-indicators {
-  position: absolute;
-  right: 0;
-  bottom: 10px;
-  left: 0;
-  z-index: 15;
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-justify-content: center;
-      -ms-flex-pack: center;
-          justify-content: center;
-  padding-left: 0;
-  margin-right: 15%;
-  margin-left: 15%;
-  list-style: none;
-}
-
-.carousel-indicators li {
-  position: relative;
-  -webkit-flex: 1 0 auto;
-      -ms-flex: 1 0 auto;
-          flex: 1 0 auto;
-  max-width: 30px;
-  height: 3px;
-  margin-right: 3px;
-  margin-left: 3px;
-  text-indent: -999px;
-  cursor: pointer;
-  background-color: rgba(255, 255, 255, 0.5);
-}
-
-.carousel-indicators li::before {
-  position: absolute;
-  top: -10px;
-  left: 0;
-  display: inline-block;
-  width: 100%;
-  height: 10px;
-  content: "";
-}
-
-.carousel-indicators li::after {
-  position: absolute;
-  bottom: -10px;
-  left: 0;
-  display: inline-block;
-  width: 100%;
-  height: 10px;
-  content: "";
-}
-
-.carousel-indicators .active {
-  background-color: #fff;
-}
-
-.carousel-caption {
-  position: absolute;
-  right: 15%;
-  bottom: 20px;
-  left: 15%;
-  z-index: 10;
-  padding-top: 20px;
-  padding-bottom: 20px;
-  color: #fff;
-  text-align: center;
-}
-
-@media (-webkit-transform-3d) {
-
-  .carousel-item {
-    transition: -webkit-transform 0.6s ease-in-out;
-    transition: transform 0.6s ease-in-out;
-    transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
-    -webkit-backface-visibility: hidden;
-    backface-visibility: hidden;
-    -webkit-perspective: 1000px;
-    perspective: 1000px;
-  }
-
-  .carousel-item-next.carousel-item-left,
-  .carousel-item-prev.carousel-item-right {
-    -webkit-transform: translate3d(0, 0, 0);
-    transform: translate3d(0, 0, 0);
-  }
-
-  .carousel-item-next,
-  .active.carousel-item-right {
-    -webkit-transform: translate3d(100%, 0, 0);
-    transform: translate3d(100%, 0, 0);
-  }
-
-  .carousel-item-prev,
-  .active.carousel-item-left {
-    -webkit-transform: translate3d(-100%, 0, 0);
-    transform: translate3d(-100%, 0, 0);
-  }
-}
diff --git a/themes/starterkit_bootstrap/css/components/forms.css b/themes/starterkit_bootstrap/css/components/forms.css
index 7a82264..83e4bfe 100644
--- a/themes/starterkit_bootstrap/css/components/forms.css
+++ b/themes/starterkit_bootstrap/css/components/forms.css
@@ -4,7 +4,7 @@
   padding: 0.5rem 0.75rem;
   font-size: 1rem;
   line-height: 1.25;
-  color: #464a4c;
+  color: #eceeef;
   background-color: #fff;
   background-image: none;
   background-clip: padding-box;
@@ -19,7 +19,7 @@
 }
 
 .form-control:focus {
-  color: #464a4c;
+  color: #eceeef;
   background-color: #fff;
   border-color: #5cb3fd;
   outline: none;
@@ -54,7 +54,7 @@ select.form-control:not([size]):not([multiple]) {
 }
 
 select.form-control:focus::-ms-value {
-  color: #464a4c;
+  color: #eceeef;
   background-color: #fff;
 }
 
@@ -265,15 +265,6 @@ select.form-control-lg:not([size]):not([multiple]) {
   width: 100%;
 }
 
-label {
-  margin-bottom: 0.1rem;
-}
-
-.form-actions {
-  margin-top: 1.5rem;
-  margin-bottom: 1.5rem;
-}
-
 @media (min-width: 576px) {
 
   .form-inline label {
diff --git a/themes/starterkit_bootstrap/css/components/modal.css b/themes/starterkit_bootstrap/css/components/modal.css
deleted file mode 100644
index 792ba0f..0000000
--- a/themes/starterkit_bootstrap/css/components/modal.css
+++ /dev/null
@@ -1,148 +0,0 @@
-.modal-open {
-  overflow: hidden;
-}
-
-.modal {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1050;
-  display: none;
-  overflow: hidden;
-  outline: 0;
-}
-
-.modal.fade .modal-dialog {
-  transition: -webkit-transform 0.3s ease-out;
-  transition: transform 0.3s ease-out;
-  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
-  -webkit-transform: translate(0, -25%);
-          transform: translate(0, -25%);
-}
-
-.modal.show .modal-dialog {
-  -webkit-transform: translate(0, 0);
-          transform: translate(0, 0);
-}
-
-.modal-open .modal {
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-
-.modal-dialog {
-  position: relative;
-  width: auto;
-  margin: 10px;
-}
-
-.modal-content {
-  position: relative;
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-flex-direction: column;
-      -ms-flex-direction: column;
-          flex-direction: column;
-  background-color: #fff;
-  background-clip: padding-box;
-  border: 1px solid rgba(0, 0, 0, 0.2);
-  border-radius: 0.3rem;
-  outline: 0;
-}
-
-.modal-backdrop {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1040;
-  background-color: #000;
-}
-
-.modal-backdrop.fade {
-  opacity: 0;
-}
-
-.modal-backdrop.show {
-  opacity: 0.5;
-}
-
-.modal-header {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-align-items: center;
-      -ms-flex-align: center;
-          align-items: center;
-  -webkit-justify-content: space-between;
-      -ms-flex-pack: justify;
-          justify-content: space-between;
-  padding: 15px;
-  border-bottom: 1px solid #eceeef;
-}
-
-.modal-title {
-  margin-bottom: 0;
-  line-height: 1.5;
-}
-
-.modal-body {
-  position: relative;
-  -webkit-flex: 1 1 auto;
-      -ms-flex: 1 1 auto;
-          flex: 1 1 auto;
-  padding: 15px;
-}
-
-.modal-footer {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-align-items: center;
-      -ms-flex-align: center;
-          align-items: center;
-  -webkit-justify-content: flex-end;
-      -ms-flex-pack: end;
-          justify-content: flex-end;
-  padding: 15px;
-  border-top: 1px solid #eceeef;
-}
-
-.modal-footer > :not(:first-child) {
-  margin-left: .25rem;
-}
-
-.modal-footer > :not(:last-child) {
-  margin-right: .25rem;
-}
-
-.modal-scrollbar-measure {
-  position: absolute;
-  top: -9999px;
-  width: 50px;
-  height: 50px;
-  overflow: scroll;
-}
-
-@media (min-width: 576px) {
-
-  .modal-dialog {
-    max-width: 500px;
-    margin: 30px auto;
-  }
-
-  .modal-sm {
-    max-width: 300px;
-  }
-}
-
-@media (min-width: 992px) {
-
-  .modal-lg {
-    max-width: 800px;
-  }
-}
diff --git a/themes/starterkit_bootstrap/css/components/navbar.css b/themes/starterkit_bootstrap/css/components/navbar.css
index 19d1194..b3983fd 100644
--- a/themes/starterkit_bootstrap/css/components/navbar.css
+++ b/themes/starterkit_bootstrap/css/components/navbar.css
@@ -47,7 +47,7 @@
 
 .nav-tabs .nav-link.active,
 .nav-tabs .nav-item.show .nav-link {
-  color: #464a4c;
+  color: #eceeef;
   background-color: #fff;
   border-color: #ddd #ddd #fff;
 }
@@ -91,28 +91,30 @@
   display: block;
 }
 
-.nav {
+.navbar__inner {
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
   -webkit-flex-direction: column;
       -ms-flex-direction: column;
           flex-direction: column;
+  -webkit-justify-content: space-between;
+      -ms-flex-pack: justify;
+          justify-content: space-between;
+  position: relative;
+  padding: 0.5rem 1rem;
 }
 
-.nav-tabs {
-  -webkit-flex-direction: row;
-      -ms-flex-direction: row;
-          flex-direction: row;
-}
-
-.navbar__inner {
-  position: relative;
-  padding-top: 0.5rem;
-  padding-bottom: 0.5rem;
+.navbar__inner .region-brand {
+  -webkit-flex: 0 1 auto;
+      -ms-flex: 0 1 auto;
+          flex: 0 1 auto;
 }
 
-.navbar__inner .row {
-  -webkit-flex-direction: column;
-      -ms-flex-direction: column;
-          flex-direction: column;
+.navbar__inner .navbar-toggler {
+  -webkit-flex: 0 0 auto;
+      -ms-flex: 0 0 auto;
+          flex: 0 0 auto;
 }
 
 .navbar-full {
@@ -135,21 +137,25 @@
   width: 100%;
 }
 
+.navbar-brand {
+  padding-top: .25rem;
+  padding-bottom: .25rem;
+  margin-right: 1rem;
+}
+
 .navbar-toggler {
   -webkit-align-self: flex-start;
       -ms-flex-item-align: start;
           align-self: flex-start;
-  padding: 0.2rem 0.4rem;
+  padding: 0.25rem 0.75rem;
   position: absolute;
-  top: 1.5rem;
   right: 1rem;
-  z-index: 1;
 }
 
 .navbar-toggler-icon {
   display: inline-block;
-  width: 1.4em;
-  height: 1.4em;
+  width: 1.5em;
+  height: 1.5em;
   vertical-align: middle;
 }
 
@@ -162,7 +168,6 @@
           flex-direction: column;
   margin-left: -0.5rem;
   margin-right: -0.5rem;
-  text-align: right;
 }
 
 .navbar-nav .nav-item {
@@ -182,7 +187,7 @@
 
 @media (min-width: 768px) {
 
-  .navbar__inner .row {
+  .navbar__inner {
     -webkit-flex-direction: row;
     -ms-flex-direction: row;
     flex-direction: row;
diff --git a/themes/starterkit_bootstrap/css/components/node.css b/themes/starterkit_bootstrap/css/components/node.css
deleted file mode 100644
index 6e9da26..0000000
--- a/themes/starterkit_bootstrap/css/components/node.css
+++ /dev/null
@@ -1,42 +0,0 @@
-.node-preview-container {
-  width: auto;
-  padding: 1rem;
-  background-color: rgba(255, 255, 255, 0.9);
-  border-right: 1px solid #eceeef;
-  border-bottom: 1px solid #eceeef;
-  border-radius: 0 0 0.25rem 0;
-}
-
-.node-preview-form-select {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-align-items: center;
-      -ms-flex-align: center;
-          align-items: center;
-}
-
-.node-preview-form-select .form-item-view-mode {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-align-items: center;
-      -ms-flex-align: center;
-          align-items: center;
-  margin-bottom: 0;
-}
-
-.node-preview-form-select .form-item-view-mode label {
-  -webkit-flex: 1 0 auto;
-      -ms-flex: 1 0 auto;
-          flex: 1 0 auto;
-  margin-bottom: 0;
-  padding-right: 0.5rem;
-}
-
-.node-preview-backlink {
-  -webkit-order: 1;
-      -ms-flex-order: 1;
-          order: 1;
-  padding-left: 1rem;
-}
diff --git a/themes/starterkit_bootstrap/css/components/pagination.css b/themes/starterkit_bootstrap/css/components/pagination.css
deleted file mode 100644
index 61ef8ca..0000000
--- a/themes/starterkit_bootstrap/css/components/pagination.css
+++ /dev/null
@@ -1,82 +0,0 @@
-.pagination {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  padding-left: 0;
-  list-style: none;
-  border-radius: 0.25rem;
-}
-
-.page-item:first-child .page-link {
-  margin-left: 0;
-  border-bottom-left-radius: 0.25rem;
-  border-top-left-radius: 0.25rem;
-}
-
-.page-item:last-child .page-link {
-  border-bottom-right-radius: 0.25rem;
-  border-top-right-radius: 0.25rem;
-}
-
-.page-item.active .page-link {
-  z-index: 2;
-  color: #fff;
-  background-color: #0275d8;
-  border-color: #0275d8;
-}
-
-.page-item.disabled .page-link {
-  color: #636c72;
-  pointer-events: none;
-  cursor: not-allowed;
-  background-color: #fff;
-  border-color: #ddd;
-}
-
-.page-link {
-  position: relative;
-  display: block;
-  padding: 0.5rem 0.75rem;
-  margin-left: -1px;
-  line-height: 1.25;
-  color: #0275d8;
-  background-color: #fff;
-  border: 1px solid #ddd;
-}
-
-.page-link:focus, .page-link:hover {
-  color: #299bfd;
-  text-decoration: none;
-  background-color: #eceeef;
-  border-color: #ddd;
-}
-
-.pagination-lg .page-link {
-  padding: 0.75rem 1.5rem;
-  font-size: 1.25rem;
-}
-
-.pagination-lg .page-item:first-child .page-link {
-  border-bottom-left-radius: 0.3rem;
-  border-top-left-radius: 0.3rem;
-}
-
-.pagination-lg .page-item:last-child .page-link {
-  border-bottom-right-radius: 0.3rem;
-  border-top-right-radius: 0.3rem;
-}
-
-.pagination-sm .page-link {
-  padding: 0.25rem 0.5rem;
-  font-size: 0.875rem;
-}
-
-.pagination-sm .page-item:first-child .page-link {
-  border-bottom-left-radius: 0.2rem;
-  border-top-left-radius: 0.2rem;
-}
-
-.pagination-sm .page-item:last-child .page-link {
-  border-bottom-right-radius: 0.2rem;
-  border-top-right-radius: 0.2rem;
-}
diff --git a/themes/starterkit_bootstrap/css/layout/layout.css b/themes/starterkit_bootstrap/css/layout/layout.css
index f9e708e..bd81519 100644
--- a/themes/starterkit_bootstrap/css/layout/layout.css
+++ b/themes/starterkit_bootstrap/css/layout/layout.css
@@ -1,3 +1,7 @@
+html {
+  overflow-x: hidden;
+}
+
 .container {
   position: relative;
   margin-left: auto;
@@ -6,77 +10,38 @@
   padding-left: 15px;
 }
 
-.row {
+.region-header {
   display: -webkit-flex;
   display: -ms-flexbox;
   display: flex;
-  -webkit-flex-wrap: wrap;
-      -ms-flex-wrap: wrap;
-          flex-wrap: wrap;
-  margin-right: -15px;
-  margin-left: -15px;
-}
-
-.page__header .row {
   -webkit-justify-content: space-between;
       -ms-flex-pack: justify;
           justify-content: space-between;
+  -webkit-align-items: center;
+      -ms-flex-align: center;
+          align-items: center;
 }
 
-.page__header .region {
-  padding-right: 15px;
-  padding-left: 15px;
+.region-brand .navbar-brand {
+  padding-top: 0;
+  padding-bottom: 0;
+  margin-top: 0;
 }
 
 .page__main {
-  margin-top: 3rem;
   margin-bottom: 3rem;
 }
 
-.page__content--with-sidebar .page__content-col,
-.page__content--with-sidebar .region-content-sidebar {
-  position: relative;
-  width: 100%;
-  min-height: 1px;
-  padding-right: 15px;
-  padding-left: 15px;
-}
-
-.page__footer__content .region {
+.region-footer {
   display: -webkit-flex;
   display: -ms-flexbox;
   display: flex;
-  -webkit-flex-wrap: wrap;
-      -ms-flex-wrap: wrap;
-          flex-wrap: wrap;
-  width: 100%;
-}
-
-.page__footer__content .block {
-  width: 100%;
-  margin-top: 0.5rem;
-  margin-bottom: 0.5rem;
-  padding-right: 15px;
-  padding-left: 15px;
-}
-
-.page__footer .region-footer-copyright {
-  display: -webkit-flex;
-  display: -ms-flexbox;
-  display: flex;
-  -webkit-flex-wrap: wrap;
-      -ms-flex-wrap: wrap;
-          flex-wrap: wrap;
-  margin-right: -15px;
-  margin-left: -15px;
-}
-
-.page__footer .region-footer-copyright .block {
-  position: relative;
-  width: 100%;
-  min-height: 1px;
-  padding-right: 15px;
-  padding-left: 15px;
+  -webkit-justify-content: space-between;
+      -ms-flex-pack: justify;
+          justify-content: space-between;
+  -webkit-align-items: center;
+      -ms-flex-align: center;
+          align-items: center;
 }
 
 @media (min-width: 576px) {
@@ -90,44 +55,6 @@
     width: 540px;
     max-width: 100%;
   }
-
-  .row {
-    margin-right: -15px;
-    margin-left: -15px;
-  }
-
-  .page__header .region {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
-
-  .page__content--with-sidebar .page__content-col,
-  .page__content--with-sidebar .region-content-sidebar {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
-
-  .page__footer__content .block {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
-
-  .page__footer__content .block {
-    -webkit-flex: 1;
-    -ms-flex: 1;
-    flex: 1;
-    width: auto;
-  }
-
-  .page__footer .region-footer-copyright {
-    margin-right: -15px;
-    margin-left: -15px;
-  }
-
-  .page__footer .region-footer-copyright .block {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
 }
 
 @media (min-width: 768px) {
@@ -141,58 +68,6 @@
     width: 720px;
     max-width: 100%;
   }
-
-  .row {
-    margin-right: -15px;
-    margin-left: -15px;
-  }
-
-  .page__header .region {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
-
-  .page__content--with-sidebar .page__content-col,
-  .page__content--with-sidebar .region-content-sidebar {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
-
-  .page__content--with-sidebar .page__content-col {
-    -webkit-flex: 0 0 75%;
-    -ms-flex: 0 0 75%;
-    flex: 0 0 75%;
-    max-width: 75%;
-  }
-
-  .page__content--with-sidebar .region-content-sidebar {
-    -webkit-flex: 0 0 25%;
-    -ms-flex: 0 0 25%;
-    flex: 0 0 25%;
-    max-width: 25%;
-  }
-
-  .page__footer__content .region {
-    -webkit-flex: 1;
-    -ms-flex: 1;
-    flex: 1;
-    width: auto;
-  }
-
-  .page__footer__content .block {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
-
-  .page__footer .region-footer-copyright {
-    margin-right: -15px;
-    margin-left: -15px;
-  }
-
-  .page__footer .region-footer-copyright .block {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
 }
 
 @media (min-width: 992px) {
@@ -206,37 +81,6 @@
     width: 960px;
     max-width: 100%;
   }
-
-  .row {
-    margin-right: -15px;
-    margin-left: -15px;
-  }
-
-  .page__header .region {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
-
-  .page__content--with-sidebar .page__content-col,
-  .page__content--with-sidebar .region-content-sidebar {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
-
-  .page__footer__content .block {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
-
-  .page__footer .region-footer-copyright {
-    margin-right: -15px;
-    margin-left: -15px;
-  }
-
-  .page__footer .region-footer-copyright .block {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
 }
 
 @media (min-width: 1200px) {
@@ -250,35 +94,4 @@
     width: 1140px;
     max-width: 100%;
   }
-
-  .row {
-    margin-right: -15px;
-    margin-left: -15px;
-  }
-
-  .page__header .region {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
-
-  .page__content--with-sidebar .page__content-col,
-  .page__content--with-sidebar .region-content-sidebar {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
-
-  .page__footer__content .block {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
-
-  .page__footer .region-footer-copyright {
-    margin-right: -15px;
-    margin-left: -15px;
-  }
-
-  .page__footer .region-footer-copyright .block {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
 }
diff --git a/themes/starterkit_bootstrap/css/theme/theme.css b/themes/starterkit_bootstrap/css/theme/theme.css
index 2f34814..47e686b 100644
--- a/themes/starterkit_bootstrap/css/theme/theme.css
+++ b/themes/starterkit_bootstrap/css/theme/theme.css
@@ -64,12 +64,6 @@ sub {
 
 .page__footer {
   background-color: #eceeef;
-  color: #292b2c;
-}
-
-.page__footer .block__title {
-  margin-bottom: 0;
-  font-size: 1.3125rem;
 }
 
 .page__footer a {
@@ -84,19 +78,6 @@ sub {
   color: #025aa5;
 }
 
-.page__footer__copyright {
-  background-color: #d0d5d8;
-  color: #292b2c;
-}
-
-.page__footer__copyright a {
-  color: #0275d8;
-}
-
-.page__footer__copyright a:focus, .page__footer__copyright a:hover {
-  color: #299bfd;
-}
-
 .navbar-brand {
   font-size: 1.25rem;
   line-height: inherit;
diff --git a/themes/starterkit_bootstrap/sass/components/carousel.scss b/themes/starterkit_bootstrap/sass/components/carousel.scss
deleted file mode 100644
index 7c4d9d3..0000000
--- a/themes/starterkit_bootstrap/sass/components/carousel.scss
+++ /dev/null
@@ -1,2 +0,0 @@
-@import "init";
-@import "bs_bootstrap/sass/components/carousel";
diff --git a/themes/starterkit_bootstrap/sass/components/modal.scss b/themes/starterkit_bootstrap/sass/components/modal.scss
deleted file mode 100644
index 6978f1b..0000000
--- a/themes/starterkit_bootstrap/sass/components/modal.scss
+++ /dev/null
@@ -1,2 +0,0 @@
-@import "init";
-@import "bs_bootstrap/sass/components/modal";
diff --git a/themes/starterkit_bootstrap/sass/components/pagination.scss b/themes/starterkit_bootstrap/sass/components/pagination.scss
deleted file mode 100644
index d151353..0000000
--- a/themes/starterkit_bootstrap/sass/components/pagination.scss
+++ /dev/null
@@ -1,2 +0,0 @@
-@import "init";
-@import "bs_bootstrap/sass/components/pagination";
diff --git a/themes/starterkit_bootstrap/starterkit_bootstrap.info.yml b/themes/starterkit_bootstrap/starterkit_bootstrap.info.yml
index 0f7c4e8..85ceda7 100644
--- a/themes/starterkit_bootstrap/starterkit_bootstrap.info.yml
+++ b/themes/starterkit_bootstrap/starterkit_bootstrap.info.yml
@@ -55,16 +55,6 @@ libraries-override:
       component:
         css/components/tooltip.css: css/components/tooltip.css
 
-  bs_bootstrap/modal:
-    css:
-      component:
-        css/components/modal.css: css/components/modal.css
-
-  bs_bootstrap/carousel:
-    css:
-      component:
-        css/components/carousel.css: css/components/carousel.css
-
 # Examples how to remove styles you do not need.
 #stylesheets-remove:
 #  - '@classy/css/components/tabs.css'
diff --git a/themes/starterkit_bootstrap/starterkit_bootstrap.libraries.yml b/themes/starterkit_bootstrap/starterkit_bootstrap.libraries.yml
index 93d4b3a..449aa02 100644
--- a/themes/starterkit_bootstrap/starterkit_bootstrap.libraries.yml
+++ b/themes/starterkit_bootstrap/starterkit_bootstrap.libraries.yml
@@ -11,7 +11,6 @@ global-styling:
       css/components/forms.css: {}
       css/components/entity.css: {}
       css/components/node.css: {}
-      css/components/pagination.css: {}
     layout:
       css/layout/layout.css: {}
     theme:
