diff --git a/themes/bootstrap3/scss/bootstrap.scss b/themes/bootstrap3/scss/bootstrap.scss
index aff292f7d0ed6129f1e26b24226c68fe1ec9e6e9..fc5042b4c9c76a12550f9745a92365463b1144cc 100644
--- a/themes/bootstrap3/scss/bootstrap.scss
+++ b/themes/bootstrap3/scss/bootstrap.scss
@@ -199,17 +199,6 @@ footer {
   }
 }
 
-/* ------ Collections ------ */
-// Layout
-@media (min-width: 768px) {
-  .collection-hierarchytree { display: flex; }
-  .collection-hierarchytree .tree-panel,
-  #tree-preview {
-    flex-basis: 50%;
-    padding: 1rem;
-  }
-}
-
 /* ------ Devtools ------ */
 .translation-output {
   width: 100%;
diff --git a/themes/bootstrap3/scss/components/js-tree.scss b/themes/bootstrap3/scss/components/js-tree.scss
index 3a0c314052aa6b51be60d2ed790726e0ea876b04..af94c3a0b1c550f6c1d670ee488a4297fb71226d 100644
--- a/themes/bootstrap3/scss/components/js-tree.scss
+++ b/themes/bootstrap3/scss/components/js-tree.scss
@@ -1,3 +1,24 @@
+/* --- Layout --- */
+.hierarchy-tree {
+  max-height: 75vh;
+  overflow-y: auto;
+}
+@media (min-width: 768px) {
+  .collection-hierarchytree { display: flex; }
+  .collection-hierarchytree .tree-panel,
+  .collection-hierarchytree #tree-preview {
+    flex-basis: 50%;
+    padding: 1rem;
+  }
+  #modal .collection-hierarchytree { display: block; }
+  #modal .tree-panel {
+    flex-basis: 100%;
+    padding: 0;
+  }
+  #modal #tree-preview { display: none; }
+}
+
+/* --- Look --- */
 .hierarchy-tree,
 .jstree-facet {
   /* jsTree arrows */
@@ -20,10 +41,7 @@
     width: 16px;
     color: #000;
   }
-  .jstree-anchor {
-    padding-left: 5px;
-    white-space: nowrap;
-  }
+  .jstree-anchor { padding-left: 5px; }
   .jstree-container-ul,
   .jstree-children {
     padding-left: 16px;
diff --git a/themes/bootstrap3/scss/components/offcanvas.scss b/themes/bootstrap3/scss/components/offcanvas.scss
index 559279c66884e6b48cc80c4dc94cf98650a83abd..2371997017aaa38ee66db8f79003276dcf9b70f8 100644
--- a/themes/bootstrap3/scss/components/offcanvas.scss
+++ b/themes/bootstrap3/scss/components/offcanvas.scss
@@ -65,7 +65,7 @@ $offcanvas-padding: 30px !default; // Body offset when offcanvas active, also wi
       display: block;
       position: fixed;
       top: 0;
-      width: calc($offcanvas-padding - 5px);
+      width: calc(#{$offcanvas-padding} - 5px);
       height: 100%;
       border-left: 1px solid $gray-lighter;
       border-right: 1px solid $gray-lighter;
diff --git a/themes/sandal/scss/search.scss b/themes/sandal/scss/search.scss
index 3746fada7d48f7fb674d8702fb0bd5f6c949eded..0ad5d19635c0815901596bbb4642228801156d92 100644
--- a/themes/sandal/scss/search.scss
+++ b/themes/sandal/scss/search.scss
@@ -195,7 +195,7 @@
 .search { border: 0; }
 #searchForm {
   padding-top: .5rem;
-  padding-bottom: calc($search-tab-height + 1.5rem);
+  padding-bottom: calc(#{$search-tab-height} + 1.5rem);
 }
 .nav.searchbox,
 #searchForm {
@@ -219,8 +219,8 @@
     border-bottom: 3px solid transparent;
   }
   .nav-tabs a {
-    height: calc($search-tab-height + .5rem);
-    line-height: calc($search-tab-height + .5rem);
+    height: calc(#{$search-tab-height} + .5rem);
+    line-height: calc(#{$search-tab-height} + .5rem);
     padding: 0 1rem;
     border-radius: 0;
     background-color: transparent;