diff --git a/local/languages/de.ini b/local/languages/de.ini
index 862192b59842777b4b456810ae016a0dd7ef0ca8..8234c3a9c6b17a969df39f13fab0d1c95fe192eb 100644
--- a/local/languages/de.ini
+++ b/local/languages/de.ini
@@ -1937,4 +1937,7 @@ support_by_dfg = "Die Nationallizenzen wurden gefördert durch die"
 hierarchyTreeSelect = "Ãœbergeordnete Werke:"
 
 collection_hierarchy_tree_tab = "Sammlungskontext"
-Collection Items = "Enthaltene Objekte"
\ No newline at end of file
+Collection Items = "Enthaltene Objekte"
+
+; VF5.1 Offcanvas-Toggler
+offcanvas-toggler-record-view = "Eintrag weiter verarbeiten"
\ No newline at end of file
diff --git a/local/languages/en.ini b/local/languages/en.ini
index 0d053d17aa75a61ad98d01185ea097a6b7d3c39d..5d77351298b74c26c0b9fbce74563f3fa757ad70 100644
--- a/local/languages/en.ini
+++ b/local/languages/en.ini
@@ -2043,4 +2043,7 @@ hierarchyTreeSelect = "Parent items:"
 collection_hierarchy_tree_tab = "Collection Context"
 
 DigitalCollection  = Digital Collection
-Digital Collection = Digital Collection
\ No newline at end of file
+Digital Collection = Digital Collection
+
+; VF5.1 Offcanvas-Toggler
+offcanvas-toggler-record-view = "Further processing options"
\ No newline at end of file
diff --git a/themes/finc/scss/compiled.scss b/themes/finc/scss/compiled.scss
index 7c3c4e44feae33c89cd8cd2aea8442994e0a6c88..b928d4071a2d4303f11698ad1ea972baa94d9d7e 100644
--- a/themes/finc/scss/compiled.scss
+++ b/themes/finc/scss/compiled.scss
@@ -187,21 +187,6 @@ form {
   label {
     font-weight: normal;
   }
-
-  // For INLINE, left-floated 'hits per page' and 'sort by' selectors use
-  &.limit,
-  &.search-sort {
-    float: left;
-  }
-
-  &.limit {
-    margin-right: ($grid-gutter-width / 2);
-  }
-
-  // limit the width of the select field if necessary - more select details below
-  &.sort select {
-    max-width: 12em;
-  }
 }
 
 //// Set max-width to make sure boxes don't bleed over the edge on XS (e.g. acquisitionpda, source_id:3
@@ -285,7 +270,15 @@ input[type='text'] {
   padding: ($grid-gutter-width / 4);
 }
 
-//// Select - for limit and sort-select widths see above
+// red-bordered input field, when empty, requires "form" for specifity, CK
+form {
+  textarea:invalid,
+  input:invalid {
+    margin-right: 2px;
+  }
+}
+
+//// Select - for limit and sort-select widths see below
 ////// remove browser styles on select boxes and add custom styles (below)
 select,
 select.form-control {
@@ -422,25 +415,6 @@ select {
   background-color: $brand-danger;
 }
 
-//// Off-Canvas
-@media only screen and (max-width: $screen-xs-max) {
-  body.offcanvas .offcanvas-toggle {
-    background: transparentize($brand-primary, .2);
-    color: $white;
-    display: block;
-    height: auto;
-    line-height: normal;
-    padding: 1.5rem 0;
-    position: fixed;
-    text-align: center;
-    top: 50%;
-    width: calc(2em - 1px);
-    z-index: 5;
-  }
-}
-
-//// Off-Canvas - END
-
 //// DATE-RANGE slider (CSS is included in bootstrap-slider.min.css - currently no SCSS version!)
 ////// Keep enough room for slider handles; PLS note: there are sliders in sidefacets and adv. search
 .slider-container {
@@ -551,6 +525,13 @@ table.collapse.in {
       width: $thumbnail-width-small;
     }
   }
+
+  // push COVER down on SM and XS
+  .media-left {
+    @media only screen and (max-width: $screen-sm-max) {
+      margin-top: 15px;
+    }
+  }
 }
 
 //// Sprites for Mediaicons
@@ -1180,14 +1161,39 @@ header,
   @media only screen and (min-width: $screen-sm-min) and (max-width: 994px) {
     flex: 0 1 75%;
   }
+
+  // Float "Find" button next to searchbox on XS and SM
+  @media only screen and (max-width: $screen-sm-max) {
+    padding-left: 0;
+
+    .searchForm {
+      display: flex;
+
+      input {
+        flex-grow: 2;
+        flex-shrink: 2;
+      }
+
+      .navbar {
+        flex-grow: 1;
+        flex-shrink: 1;
+      }
+
+      // take out of flexbox flow
+      .checkbox {
+        position: absolute;
+        top: 40px;
+      }
+    }
+  }
+
 }
 
 //// this will get search box and buttons in line
 
 .navbar-left {
-  // push searchbox down on mobile + add border for better looks
+  // push searchbox down on mobile
   @media only screen and (max-width: $screen-xs-max) {
-    border: 1px solid $border-color;
     margin-bottom: ($grid-gutter-width / 4);
     margin-top: 0;
   }
@@ -1350,6 +1356,10 @@ footer {
 .mainbody,
 .sidebar {
   padding-top: $content-top-padding;
+
+  @media only screen and (max-width: $screen-sm-max) {
+    padding-top: 0;
+  }
 }
 
 ////// Bulk Action Toolbar
@@ -1359,11 +1369,63 @@ footer {
   padding-top: ($grid-gutter-width / 2);
 }
 
+// SEARCH-CONTROLS
+// remove flex display
+.search-header {
+  display: block;
+}
+
+.search-stats {
+  flex-grow: unset;
+}
+
+.hit-stats {
+  clear: both;
+  float: none;
+}
+
 //// Push hits count down to align with limit and sort select boxes
 .hits-count {
   padding-top: .5em;
 }
 
+// For INLINE, left-floated 'hits per page' and 'sort by' selectors use
+.limit,
+.search-sort {
+  float: left;
+}
+
+.limit {
+  margin-right: ($grid-gutter-width / 2);
+
+  @media only screen and (max-width: $screen-xs-max) {
+    float: right;
+    margin-bottom: 7px;
+    margin-right: 0;
+  }
+}
+
+// limit the width of the select field if necessary - for more select details, see FORMS section above
+.sort select {
+  max-width: 12em;
+}
+//// Off-Canvas
+@media only screen and (max-width: $screen-sm-max) {
+  // Define position of VF5.1 offcanvas toggler
+  .search-stats,
+  .search-controls {
+    clear: both;
+  }
+
+  // Float this left for lefthand-side sidebar
+  .offcanvas-toogler {
+    float: right;
+  }
+}
+
+//// Off-Canvas - END
+// SEARCH CONTROLS - END
+
 //// Search Results padding
 ////// pulled out via .search-results, use negative gutter-width divided by 2
 ////// then add padding on results, to create normal column padding appearance
@@ -1738,6 +1800,11 @@ footer {
 // MAIN CONTENT - END
 
 // SIDEBAR
+@media only screen and (max-width: $screen-sm-max) {
+  .sidebar h4 {
+    text-align: center;
+  }
+}
 //// pull content to right border for sidebar right
 .container .sidebar {
   &.right {
@@ -1895,7 +1962,7 @@ footer {
 }
 
 .nav .btn-bookbag-toggle a {
-  padding-left: 2px;
+  padding-left: 8px;
 }
 
 //// Toolbar in Detailview - END
diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/core.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/core.phtml
index eaeee64ca7679519034f98457c8bb70be781cf3c..2e2cb843e9b726d15f3697186489e08395135865 100644
--- a/themes/finc/templates/RecordDriver/DefaultRecord/core.phtml
+++ b/themes/finc/templates/RecordDriver/DefaultRecord/core.phtml
@@ -1,5 +1,7 @@
 <!-- finc: RecordDriver - DefaultRecord - core -->
 <div class="media" vocab="http://schema.org/" resource="#record" typeof="<?=$this->driver->getSchemaOrgFormats()?> Product">
+  <?php /* finc: use VF5.1 offcanvas toggler here as well if you have a custom sidebar - CK */ ?>
+  <?=$this->render('RecordDriver/DefaultRecord/offcanvas-toggler'); ?>
   <?php
   $QRCode = $this->record($this->driver)->getQRCode("core");
   $coverDetails = $this->record($this->driver)->getCoverDetails('core', 'medium', $this->record($this->driver)->getThumbnail('large'));
diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/data-otherRelationshipEntry.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/data-otherRelationshipEntry.phtml
index 119643791e9ececd84e6210369aff1a4d74d3105..c3d92f9e1ff9fa6b324563f77b9e4ee395ac2fe3 100644
--- a/themes/finc/templates/RecordDriver/DefaultRecord/data-otherRelationshipEntry.phtml
+++ b/themes/finc/templates/RecordDriver/DefaultRecord/data-otherRelationshipEntry.phtml
@@ -1,19 +1,19 @@
 <!-- finc: RecordDriver - DefaultRecord - data-otherRelationshipEntry -->
-<?php if (!empty($data)): ?>
-  <?php foreach ($data as $subject => $values): ?>
+<? if (!empty($data)): ?>
+  <? foreach ($data as $subject => $values): ?>
     <tr>
-      <th><?=$this->transEsc($subject)?>:</th>
+      <th><?=$this->transEsc($values[0]['subject'])?>: </th>
       <td>
-        <?php foreach ($values as $value): ?>
-          <?php if (!empty($value['link']) && $recordLink = $this->RecordLink()->getRecordLink($value['link'], 'record_id')): ?>
-            <a href="<?=$recordLink?>"><?=$this->escapeHtml($value['text'])?></a>
-          <?php else: ?>
-            <?=$this->escapeHtml($value['text'])?>
-          <?php endif; ?>
+        <? foreach ($values as $v): ?>
+          <? if (isset($v['id'])): ?>
+            <a href="<?=$this->recordLink()->getUrl($v['id'])?>"><?=$this->escapeHtml($v['text'])?></a>
+          <? else: ?>
+            <?=$this->escapeHtml($v['text'])?>
+          <? endif; ?>
           <br/>
-        <?php endforeach; ?>
+        <? endforeach; ?>
       </td>
     </tr>
-  <?php endforeach; ?>
-<?php endif; ?>
+  <? endforeach; ?>
+<? endif; ?>
 <!-- finc: RecordDriver - DefaultRecord - data-otherRelationshipEntry - END -->
diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/offcanvas-toggler.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/offcanvas-toggler.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..a56f446a03445e70a2a4572f0a9a84b3169e4278
--- /dev/null
+++ b/themes/finc/templates/RecordDriver/DefaultRecord/offcanvas-toggler.phtml
@@ -0,0 +1,7 @@
+<!-- finc: RecordDriver - DefaultRecord - offcanvas-toogler -->
+<?php ?>
+<span class="offcanvas-toogler">
+  <button class="search-filter-toggle btn btn-primary visible-xs" href="#search-sidebar" data-toggle="offcanvas" title="<?=$this->transEsc('sidebar_expand')?>">
+    <?=$this->transEsc('offcanvas-toggler-record-view')?>
+  </button>
+</span>
diff --git a/themes/finc/templates/RecordDriver/SolrAI/core.phtml b/themes/finc/templates/RecordDriver/SolrAI/core.phtml
index 0c02cbeec0e5ffb0326ee814df4f34c6506b873a..e545a6a49cf8716793663f70db97decd77fb5132 100644
--- a/themes/finc/templates/RecordDriver/SolrAI/core.phtml
+++ b/themes/finc/templates/RecordDriver/SolrAI/core.phtml
@@ -1,6 +1,8 @@
 <!-- finc: recordDriver - SolrAI - core -->
 <?php /* Created in 4826, based on DefaultRecord/core, compare with DefaultRecord/core during updates! */ ?>
 <div class="media" vocab="http://schema.org/" resource="#record" typeof="<?=$this->driver->getSchemaOrgFormats()?> Product">
+  <?php /* finc: use VF5.1 offcanvas toggler here as well if you have a custom sidebar - CK */ ?>
+  <?=$this->render('RecordDriver/DefaultRecord/offcanvas-toggler'); ?>
   <?php
   $QRCode = $this->record($this->driver)->getQRCode("core");
   $coverDetails = $this->record($this->driver)->getCoverDetails('core', 'medium', $this->record($this->driver)->getThumbnail('large'));
diff --git a/themes/finc/templates/RecordDriver/SolrDefault/data-otherRelationshipEntry.phtml b/themes/finc/templates/RecordDriver/SolrDefault/data-otherRelationshipEntry.phtml
deleted file mode 100644
index 41bbec84c9e20d498c6bc97dd73c0b3cb9903043..0000000000000000000000000000000000000000
--- a/themes/finc/templates/RecordDriver/SolrDefault/data-otherRelationshipEntry.phtml
+++ /dev/null
@@ -1,19 +0,0 @@
-<!-- finc: RecordDriver - solrDefault - data-otherRelationshipEntry -->
-<? if (!empty($data)): ?>
-    <? foreach ($data as $subject => $values): ?>
-        <tr>
-            <th><?=$this->transEsc($values[0]['subject'])?>: </th>
-            <td>
-                <? foreach ($values as $v): ?>
-                    <? if (isset($v['id'])): ?>
-                        <a href="<?=$this->recordLink()->getUrl($v['id'])?>"><?=$this->escapeHtml($v['text'])?></a>
-                    <? else: ?>
-                        <?=$this->escapeHtml($v['text'])?>
-                    <? endif; ?>
-                    <br/>
-                <? endforeach; ?>
-            </td>
-        </tr>
-    <? endforeach; ?>
-<? endif; ?>
-<!-- finc: RecordDriver - solrDefault - data-otherRelationshipEntry - END -->
diff --git a/themes/finc/templates/RecordDriver/SolrLido/core.phtml b/themes/finc/templates/RecordDriver/SolrLido/core.phtml
index caeb09b9aeb690a104b38b107043c65f6b3c2fb5..35ccb759c817bfc1ee636dc9fe9ed62b1c40488e 100644
--- a/themes/finc/templates/RecordDriver/SolrLido/core.phtml
+++ b/themes/finc/templates/RecordDriver/SolrLido/core.phtml
@@ -3,6 +3,8 @@
 /* based on DefaultRecord/core, compare with DefaultRecord/core during updates!
 // keep schema tagging here in finc - CK, #13861 */ ?>
 <div class="media" vocab="http://schema.org/" resource="#record" typeof="<?=$this->driver->getSchemaOrgFormats()?> Product">
+  <?php /* finc: use VF5.1 offcanvas toggler here as well if you have a custom sidebar - CK */ ?>
+  <?=$this->render('RecordDriver/DefaultRecord/offcanvas-toggler'); ?>
   <?php
   if ($loggedin = $this->auth()->isLoggedIn()) {
     $user_id = $loggedin->id;
diff --git a/themes/finc/templates/RecordDriver/SolrMarc/core.phtml b/themes/finc/templates/RecordDriver/SolrMarc/core.phtml
index 2cfbc35f6cf5a9b0819eee7d85b33e5b3ff8bbec..c3fec0f6a70c645ce6de01d1e870b98882bc683c 100644
--- a/themes/finc/templates/RecordDriver/SolrMarc/core.phtml
+++ b/themes/finc/templates/RecordDriver/SolrMarc/core.phtml
@@ -1,6 +1,8 @@
 <!-- finc: RecordDriver - solrMarc - core -->
 <?php /* based on DefaultRecord/core, compare with DefaultRecord/core during updates! */ ?>
 <div class="media" vocab="http://schema.org/" resource="#record" typeof="<?=$this->driver->getSchemaOrgFormats()?> Product">
+  <?php /* finc: use VF5.1 offcanvas toggler here as well if you have a custom sidebar - CK */ ?>
+  <?=$this->render('RecordDriver/DefaultRecord/offcanvas-toggler'); ?>
   <?php
   $QRCode = $this->record($this->driver)->getQRCode("core");
   $coverDetails = $this->record($this->driver)->getCoverDetails('core', 'medium', $this->record($this->driver)->getThumbnail('large'));
diff --git a/themes/finc/templates/layout/layout.phtml b/themes/finc/templates/layout/layout.phtml
index b716ee45b17411d157e225d78ace3916f2474213..b57ca8214570a9b4487a682fc05945b8343dbc8a 100644
--- a/themes/finc/templates/layout/layout.phtml
+++ b/themes/finc/templates/layout/layout.phtml
@@ -41,6 +41,7 @@
         'collection_empty' => 'collection_empty',
         'error_occurred' => 'An error has occurred',
         'go_to_list' => 'go_to_list',
+        'hold_available' => 'hold_available',
         'libphonenumber_invalid' => 'libphonenumber_invalid',
         'libphonenumber_invalidcountry' => 'libphonenumber_invalidcountry',
         'libphonenumber_invalidregion' => 'libphonenumber_invalidregion',
@@ -210,12 +211,6 @@ if (!isset($this->layout()->searchbox)) {
     </div>
   </div>
 </div>
-
-<div class="offcanvas-toggle" data-toggle="offcanvas" tabindex="0">
-  <i class="fa" title="<?=$this->transEsc('sidebar_expand')?>"></i>
-  <span class="sr-only"><?=$this->transEsc('sidebar_expand')?></span>
-</div>
-
 <div class="offcanvas-overlay" data-toggle="offcanvas"></div>
 <?=$this->googleanalytics()?>
 <?=$this->piwik()?>
diff --git a/themes/finc/templates/search/results.phtml b/themes/finc/templates/search/results.phtml
index e2339d70c5f2c9c7d7c3afb4a759f94463c3c806..75e6ee8afd517f72d759924e0ac4d1b291cfe994 100644
--- a/themes/finc/templates/search/results.phtml
+++ b/themes/finc/templates/search/results.phtml
@@ -62,23 +62,35 @@ $this->headScript()->appendFile("check_save_statuses.js");
     <?php endif; ?>
     <?=$this->flashmessages()?>
     <?php /* finc: remove 'hidden' below to show search-stats; we also hide the entire bar on xs + sm - CK */ ?>
-    <nav class="search-header hidden-xs hidden-sm hidden-print">
-      <div class="search-stats hidden">
+    <nav class="search-header hidden-print">
+      <div class="search-stats">
+        <?php /* finc: use spans for easier to show/hide choices - CK */ ?>
         <?php if ($recordTotal > 0): ?>
+        <span class="hit-stats hidden-xs hidden-sm">
         <?=$this->context()->renderInContext('search/controls/showing.phtml', ['lookfor' => $lookfor, 'recordTotal' => $recordTotal]) ?>
-        <a class="search-filter-toggle visible-xs" href="#search-sidebar" data-toggle="offcanvas" title="<?=$this->transEsc('sidebar_expand') ?>">
+        </span>
+        <span class="offcanvas-toogler">
+          <button class="search-filter-toggle btn btn-primary visible-xs" href="#search-sidebar" data-toggle="offcanvas" title="<?=$this->transEsc('sidebar_expand') ?>">
           <?=$this->transEsc('Refine Results') ?>
-        </a>
+          </button>
+        </span>
         <?php else: ?>
           <h2><?=$this->transEsc('nohit_heading')?></h2>
         <?php endif; ?>
       </div>
 
     <?php if ($recordTotal > 0): ?>
+    <?php /* finc: use spans for easier to show/hide choices - CK */ ?>
       <div class="search-controls">
+        <span class="limit">
         <?=$this->render('search/controls/limit.phtml')?>
+        </span>
+        <span class="sort right">
         <?=$this->render('search/controls/sort.phtml')?>
+        </span>
+        <span class="view">
         <?=$this->render('search/controls/view.phtml')?>
+        </span>
       </div>
     <?php endif; ?>
   </nav>
diff --git a/themes/finc/theme.config.php b/themes/finc/theme.config.php
index 436336913259362f3431223cc98d75745eb6fc2e..02cfd66e1a3e14e1f4300f3e2d7dcfe374d47e11 100644
--- a/themes/finc/theme.config.php
+++ b/themes/finc/theme.config.php
@@ -4,8 +4,6 @@ return [
     'js' => [
         'openurl.js',
         'check_item_statuses.js',
-        // remove nxt line when aria-hidden issue fixed, obsolete in VF5, see #12684
-        'finc.js',
     ],
     'helpers' => [
         'aliases' => [