diff --git a/module/fid/config/fid-acquisition-digitization-form.php b/module/fid/config/fid-acquisition-digitization-form.php
new file mode 100644
index 0000000000000000000000000000000000000000..c2f9852931be0c13ccdc473d97385e9b5b560593
--- /dev/null
+++ b/module/fid/config/fid-acquisition-digitization-form.php
@@ -0,0 +1,101 @@
+<?php
+/**
+ * Copyright (C) 2019 Leipzig University Library
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * @author  Alexander Purr <purr@ub.uni-leipzig.de>
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU GPLv2
+ */
+
+use fid\Hydrator\OrderHydrator;
+use Zend\Filter\StringTrim;
+use Zend\Form\Element\Submit;
+use Zend\Form\Element\Text;
+use Zend\Form\Element\Select;
+use Zend\Validator\StringLength;
+
+return [
+    'name'         => 'fid-acquisition-form',
+    'hydrator'     => OrderHydrator::class,
+    'elements'     => [
+        'format'            => [
+            'spec' => [
+                'name'    => 'format',
+                'type'    => Select::class,
+                'options' => [
+                    'label'        => 'acquisition_label_format',
+                    'options'      => [
+                        'pdf'  => [
+                            'value' => 'pdf',
+                            'label' => 'PDF',
+                        ],
+                        'jpg' => [
+                            'value' => 'jpg',
+                            'label' => 'JPG',
+                        ],
+                    ],
+                ],
+            ],
+        ],
+        'comment'              => [
+            'spec' => [
+                'name'       => 'comment',
+                'type'       => Text::class,
+                'options'    => [
+                    'label' => 'acquisition_label_comment',
+                ],
+                'attributes' => [
+                    'required' => false,
+                ],
+            ],
+        ],
+        'submit'               => [
+            'spec' => [
+                'name'       => 'submit',
+                'type'       => Submit::class,
+                'attributes' => [
+                    'value' => 'acquisition_label_submit',
+                ],
+            ],
+        ],
+    ],
+    'input_filter' => [
+        'format'               => [
+            'name'     => 'format',
+            'required' => true,
+        ],
+        'comment'       => [
+            'name'       => 'comment',
+            'required'   => false,
+            'filters'    => [
+                StringTrim::class => [
+                    'name' => StringTrim::class,
+                ],
+            ],
+            'validators' => [
+                StringLength::class => [
+                    'name'    => StringLength::class,
+                    'options' => [
+                        'max' => 5000
+                    ]
+                ],
+            ],
+         ],
+        'submit'               => [
+            'name'     => 'submit',
+            'required' => true,
+        ],
+    ],
+];
\ No newline at end of file
diff --git a/module/fid/config/module.config.php b/module/fid/config/module.config.php
index a39af204e509adac7cc1f13dbcc531c630694e0d..bbddd14bde3704f6f28b3d15adfe0ab38af56726 100644
--- a/module/fid/config/module.config.php
+++ b/module/fid/config/module.config.php
@@ -70,6 +70,7 @@ $config = [
         'admin-edit-form'                          => require 'admin-edit-form.php',
         'fid-acquisition-form'                     => require 'fid-acquisition-form.php',
         'fid-acquisition-subito-partial-copy-form' => require 'fid-acquisition-subito-partial-copy-form.php',
+        'fid-acquisition-digitization-form'        => require 'fid-acquisition-digitization-form.php',
         PasswordResetModel::class                  => require 'password-reset-form.php',
         PasswordChangeModel::class                 => require 'password-change-form.php',
         UsernameChangeModel::class                 => require 'username-change-form.php',
@@ -421,7 +422,8 @@ $config = [
 $nonTabRecordActions = [
     'fidPDA',
     'fidSubitoArticle',
-    'fidSubitoPartialCopy'
+    'fidSubitoPartialCopy',
+    'fidDigitization',
 ];
 
 // Define record view routes -- route name => controller
diff --git a/module/fid/src/Controller/CustomTraits/FidAcquisitionTrait.php b/module/fid/src/Controller/CustomTraits/FidAcquisitionTrait.php
index 2a8f31a86bb696b51616dbb636cc0d850ba699b2..bc8fcd0b39a06a86f2fe925d91a06ed66f3f59b3 100644
--- a/module/fid/src/Controller/CustomTraits/FidAcquisitionTrait.php
+++ b/module/fid/src/Controller/CustomTraits/FidAcquisitionTrait.php
@@ -81,6 +81,13 @@ trait FidAcquisitionTrait
         return $this->runAcquisition();
     }
 
+    public function fidDigitizationAction()
+    {
+        $this->type = self::DIGITIZATION;
+        $this->formConfig = ('fid-acquisition-digitization-form');
+        return $this->runAcquisition();
+    }
+
     protected function runAcquisition()
     {
         if (!($user = $this->getUser())) {
@@ -199,6 +206,14 @@ trait FidAcquisitionTrait
                 ]
             ];
         }
+        if ($this->type == self::DIGITIZATION) {
+            $data += [
+                'digitization' => [
+                    'format' => $form->getData()['format'],
+                    'comment' => $form->getData()['comment']
+                ]
+            ];
+        }
         return $data;
     }
 
diff --git a/module/fid/src/Controller/RecordController.php b/module/fid/src/Controller/RecordController.php
index 76d5d21c62a778bc181676ea991f49976e8a70ab..f559a6d5f181a2b4bb8936c80b373952712e1fcd 100644
--- a/module/fid/src/Controller/RecordController.php
+++ b/module/fid/src/Controller/RecordController.php
@@ -35,4 +35,5 @@ class RecordController extends \finc\Controller\RecordController
     const PDA = "pda";
     const SUBITO_ARTICLE = "subito-article";
     const SUBITO_PARTIAL_COPY = "subito-partial-copy";
+    const DIGITIZATION = "digitization";
 }
diff --git a/module/fid/src/Hydrator/OrderHydrator.php b/module/fid/src/Hydrator/OrderHydrator.php
index ba97e3975c2048f9839cda456b0b5fec99d83146..333c1367dfb70f9aa4b20cefc8ab3c0a81fabc9a 100644
--- a/module/fid/src/Hydrator/OrderHydrator.php
+++ b/module/fid/src/Hydrator/OrderHydrator.php
@@ -28,6 +28,7 @@ class OrderHydrator extends AbstractHydrator {
         $object->setUser($data['user']);
 
         $partialCopy = array_key_exists('subitoPartialCopy', $data) ? $data['subitoPartialCopy'] : null;
+        $digitization = array_key_exists('digitization', $data) ? $data['digitization'] : null;
 
         /* Collect needed record data */
         $id = $driver->tryMethod('getUniqueID');
@@ -69,7 +70,7 @@ class OrderHydrator extends AbstractHydrator {
             'url'
         );
 
-        $object->setData(compact('record','partialCopy'));
+        $object->setData(compact('record','partialCopy','digitization'));
         $object->setLabel($data['label']);
         return;
     }
diff --git a/module/finc/src/finc/View/Helper/Root/Record.php b/module/finc/src/finc/View/Helper/Root/Record.php
index c12efed09377fb0e62cd7f4866275eee5c228702..847bec98d2cfc4e5aa69fc6e1ff5c5f5ae2c254a 100644
--- a/module/finc/src/finc/View/Helper/Root/Record.php
+++ b/module/finc/src/finc/View/Helper/Root/Record.php
@@ -116,7 +116,7 @@ class Record extends \VuFind\View\Helper\Root\Record
     /**
      * Get the CSS class used to properly render an icon for given value
      *
-     * @param string $value Value to convert into CSS class
+     * @param string $value (identifier) Value to convert into CSS class
      * @param string $classfile Define alternative file for icon class without
      *                              suffix. Default: record-icon-class.phtml
      *
@@ -130,6 +130,20 @@ class Record extends \VuFind\View\Helper\Root\Record
         );
     }
 
+    /**
+     * Get the CSS class used to properly render an icon for given value
+     *
+     * @param string $classfile Define alternative file for icon text without
+     *
+     * @return string
+     */
+    public function getRecordIconText($classfile = 'record-icon-text')
+    {
+        return $this->renderTemplate(
+            $classfile . '.phtml'
+        );
+    }
+
     /**
      * Returns if style based icons should be shown (if covers are disabled!)
      *
@@ -338,7 +352,7 @@ class Record extends \VuFind\View\Helper\Root\Record
             }
             // is pattern set and matches so try rewrite url
             if (isset($r['pattern']) && 0 != preg_match('/' . $r['pattern'] . '/i', trim($link['url']))) {
-                // if function is set and available then perform on url 
+                // if function is set and available then perform on url
                 if (isset($r['function']) && is_callable($r['function'])) {
                     $link['url'] = $r['function']($link['url']);
                 }
diff --git a/themes/fid/languages/fid/de.ini b/themes/fid/languages/fid/de.ini
index f3ff9f4784d0945919f4986b8a9ae5fedb5c7d9c..9577bef62f5d5339c7077ac3ecf525d8cdbda8c2 100644
--- a/themes/fid/languages/fid/de.ini
+++ b/themes/fid/languages/fid/de.ini
@@ -139,6 +139,8 @@ acquisition_subito_article = "Artikelbestellung"
 acquisition_subito_article_info = "Auf Kosten von %%fidname%% können Sie sich Teile eines erschienenen Werkes sowie Beiträge aus Fachzeitschriften oder wissenschaftlichen Zeitschriften als Kopie bestellen. Wir können Ihnen aus urheberrechtlichen Gründen max. 10 Prozent des Umfangs eines Buches bzw. nur einzelne Zeitschriftenbeiträge vervielfältigen. Bitte überprüfen Sie daher bei Büchern ggf. die Anzahl der bestellten Seiten. Mit der Absendung der Bestellung bestätigen Sie, die Vervielfältigung ausschließlich zu nicht kommerziellen Zwecken zu verwenden."
 acquisition_subito_partial_copy = "Teilkopiebestellung"
 acquisition_subito_partial_copy_info = "Auf Kosten von %%fidname%% können Sie sich Teile eines erschienenen Werkes sowie Beiträge aus Fachzeitschriften oder wissenschaftlichen Zeitschriften als Kopie bestellen. Wir können Ihnen aus urheberrechtlichen Gründen max. 10 Prozent des Umfangs eines Buches bzw. nur einzelne Zeitschriftenbeiträge vervielfältigen. Bitte überprüfen Sie daher bei Büchern ggf. die Anzahl der bestellten Seiten. Mit der Absendung der Bestellung bestätigen Sie, die Vervielfältigung ausschließlich zu nicht kommerziellen Zwecken zu verwenden."
+acquisition_digitization = "Digitization-on-Demand-Service"
+acquisition_digitization_info = "Der Digitization-on-Demand-Service steht Nutzenden des %%fidname%% kostenlos zur Verfügung. Eine Prüfung des %%fidname%% entscheidet darüber, ob ein Werk digitalisiert werden kann. Sollte bereits ein lesbares Digitalisat vorhanden sein, wird das Werk nicht noch einmal digitalisiert. Aus restauratorischen Gründen kann eine Digitalisierung ebenfalls abgelehnt werden. Digitalisate werden als jpg oder pdf zur Verfügung gestellt. Sollten andere Formate (z.B. TIFF) gewünscht werden, kann dies im Kommentarfeld angegeben werden. Die dadurch entstehenden Kosten, werden von den Nutzenden selbst getragen."
 
 acquisition_order_delivery_name = "Name"
 acquisition_delivery_to = "Lieferung an"
@@ -146,6 +148,7 @@ acquisition_info_requested_item = "Bestellung"
 acquisition_label_pages = "Seitenzahlen (von-bis)"
 acquisition_label_comment = "Bemerkungen"
 acquisition_label_submit = "Bestellen"
+acquisition_label_format = "Format"
 acquisition_error_pages_too_short = "Ihre Eingabe hat zu wenige Zeichen. Bitte geben Sie mind. 3 Zeichen ein."
 acquisition_error_pages_too_long = "Ihre Eingabe hat zu viele Zeichen. Bitte geben Sie max. 13 Zeichen ein."
 acquisition_error_pages_pattern = "Falsches Format. Bitte geben Sie die gewünschten Seiten nur im Format VON-BIS ein, z. B. 23-30."
diff --git a/themes/fid/templates/fid/record/acquisition-address-details.phtml b/themes/fid/templates/fid/record/acquisition-address-details.phtml
index b75e59f314bc72902245f4ca1f66a743de7fa9c5..b0d5843b5f03d30b540aaf46c0f9c318ccd7b7b7 100644
--- a/themes/fid/templates/fid/record/acquisition-address-details.phtml
+++ b/themes/fid/templates/fid/record/acquisition-address-details.phtml
@@ -13,8 +13,8 @@
     <tr>
       <th><?= $this->translate("fid::order_delivery_address") ?></th>
       <td>
-        <?php if($user->deliveryAddressIsBusinessAddress()): ?>
-          <?= $user->getCollege() ?><br>
+        <?php if($user->deliveryAddressIsBusinessAddress() && !empty($college=$user->getCollege())): ?>
+          <?= $college ?><br>
         <?php endif ?>
         <?= $address->getLine1() ?><br>
         <?= !empty($address->getLine2()) ? $address->getLine2() . '<br>' : '' ?>
diff --git a/themes/fid/templates/fid/record/acquisition-digitization.phtml b/themes/fid/templates/fid/record/acquisition-digitization.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..36a2e7921fce4e913e154fe77ed80c32854d7b91
--- /dev/null
+++ b/themes/fid/templates/fid/record/acquisition-digitization.phtml
@@ -0,0 +1,124 @@
+<?php
+/**
+ * Copyright (C) 2021 Leipzig University Library
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * @author   Alexander Purr <purr@ub.uni-leipzig.de>
+ * @license  http://opensource.org/licenses/gpl-2.0.php GNU GPLv2
+ */
+
+use Zend\Form\Element;
+use Zend\Form\Form;
+use Zend\Form\View\Helper\FormElementErrors;
+use Zend\Form\View\Helper\FormLabel;
+use Zend\Form\View\Helper\FormSelect;
+use Zend\Form\View\Helper\FormSubmit;
+
+$driver = $this->driver;
+/** @var Form $form */
+/** @var FormLabel $formLabel */
+/** @var FormSubmit $formSubmit */
+/** @var FormElementErrors $formElementErrors */
+$form = $this->form;
+$formLabel = $this->formLabel();
+$formLabel->setTranslatorTextDomain('fid');
+$formSubmit = $this->formSubmit();
+$formSubmit->setTranslatorTextDomain('fid');
+$formElementErrors = $this->formElementErrors();
+$formElementErrors->setTranslatorTextDomain('fid');
+$this->headTitle($title = $this->translate("fid::acquisition_digitization"));
+$form->setAttribute('class','fid-acquisition-form');
+?>
+
+<h1><?= $title ?></h1>
+<?= $this->flashmessages() ?>
+
+<?= $this->form()->openTag($form) ?>
+
+<div class="row details">
+  <div class="col col-md-6">
+    <?=$this->render('fid/record/acquisition-address-details'); ?>
+  </div>
+  <div class="col col-md-6">
+    <?php
+      $formatter = $this->recordDataFormatter();
+      $this->coreFields = $formatter->getData($driver, $formatter->getDefaults('fid-acquisition-general'));
+    ?>
+    <?=$this->render('fid/record/acquisition-record-details'); ?>
+  </div>
+</div>
+
+<div class="row information">
+  <div class="col col-xs-12">
+    <?= $this->translate("fid::acquisition_digitization_info", [
+        '%%fidname%%' => $this->translate("fid::acquisition_fid_name")
+    ]); ?>
+  </div>
+</div>
+
+<? /* format */ ?>
+<?php
+/** @var Element\Select $elemFormat */
+$elemFormat = $form->get('format');
+$elemFormat->setLabelAttributes(['class' => 'control-label']);
+$elemFormat->setAttributes(['class' => 'form-control']);
+?>
+
+<? /* comments */ ?>
+<?php
+/** @var Element\Text $elemComment */
+$elemComment = $form->get('comment');
+$elemComment->setLabelAttributes(['class' => 'control-label']);
+$elemComment->setAttributes(['class' => 'form-control']);
+?>
+
+  <div class="row pages">
+      <?php if ( ! ( $this->formElementErrors($elemComment) == "" && $this->formElementErrors($elemFormat) == "" ) ): ?>
+        <div class="col col-xs-12">
+          <div class="form-group">
+              <?= $this->formElementErrors($elemFormat) ?>
+              <?= $this->formElementErrors($elemComment) ?>
+          </div>
+        </div>
+      <?php endif; ?>
+    <div class="col col-xs-12 col-md-6">
+      <div class="form-group">
+          <?= $this->formLabel($elemFormat) ?>
+          <?= $this->formElement($elemFormat) ?>
+      </div>
+    </div>
+    <div class="col col-xs-12 col-md-6">
+      <div class="form-group">
+          <?= $this->formLabel($elemComment) ?>
+          <?= $this->formElement($elemComment) ?>
+      </div>
+    </div>
+  </div>
+
+<div class="row confirmation">
+  <div class="col col-xs-12">
+    <? /* submit button */ ?>
+    <?php
+    /** @var Element\Submit $elemSubmit */
+    $elemSubmit = $form->get('submit');
+    $elemSubmit->setAttributes(['class' => 'btn btn-primary']);
+    ?>
+    <div class="form-group right">
+        <?= $this->formElement($elemSubmit) ?>
+    </div>
+  </div>
+</div>
+
+<?= $this->form()->closeTag($form) ?>
diff --git a/themes/finc/js/advanced_search.js b/themes/finc/js/advanced_search.js
new file mode 100644
index 0000000000000000000000000000000000000000..5dad9556167bd8b8b43e983a3b53e7b2f05d26a9
--- /dev/null
+++ b/themes/finc/js/advanced_search.js
@@ -0,0 +1,141 @@
+/* Copied from bootstrap3 to set focus on new group or field - FIXME: Remove after PR is effective - #17985 - RL */
+/* exported addGroup, addSearch, deleteGroup, deleteSearch */
+var nextGroup = 0;
+var groupLength = [];
+
+function addSearch(group, _fieldValues) {
+  var fieldValues = _fieldValues || {};
+  // Build the new search
+  var inputID = group + '_' + groupLength[group];
+  var $newSearch = $($('#new_search_template').html());
+
+  $newSearch.attr('id', 'search' + inputID);
+  $newSearch.find('input.form-control')
+    .attr('id', 'search_lookfor' + inputID)
+    .attr('name', 'lookfor' + group + '[]')
+    .val('');
+  $newSearch.find('select.adv-term-type option:first-child').attr('selected', 1);
+  $newSearch.find('select.adv-term-type')
+    .attr('id', 'search_type' + inputID)
+    .attr('name', 'type' + group + '[]');
+  $newSearch.find('.adv-term-remove')
+    .attr('onClick', 'return deleteSearch(' + group + ',' + groupLength[group] + ')');
+  // Preset Values
+  if (typeof fieldValues.term !== "undefined") {
+    $newSearch.find('input.form-control').val(fieldValues.term);
+  }
+  if (typeof fieldValues.field !== "undefined") {
+    $newSearch.find('select.adv-term-type option[value="' + fieldValues.field + '"]').attr('selected', 1);
+  }
+  if (typeof fieldValues.op !== "undefined") {
+    $newSearch.find('select.adv-term-op option[value="' + fieldValues.op + '"]').attr('selected', 1);
+  }
+  // Insert it
+  $("#group" + group + "Holder").before($newSearch);
+  // Individual search ops (for searches like EDS)
+  if (groupLength[group] === 0) {
+    $newSearch.find('.first-op')
+      .attr('name', 'op' + group + '[]')
+      .removeClass('hidden');
+    $newSearch.find('select.adv-term-op').remove();
+  } else {
+    $newSearch.find('select.adv-term-op')
+      .attr('id', 'search_op' + group + '_' + groupLength[group])
+      .attr('name', 'op' + group + '[]')
+      .removeClass('hidden');
+    $newSearch.find('.first-op').remove();
+    $newSearch.find('label').remove();
+    // Show x if we have more than one search inputs
+    $('#group' + group + ' .adv-term-remove').removeClass('hidden');
+  }
+  groupLength[group]++;
+
+  // #17985 finc barf
+  $newSearch.find('input.form-control').focus();
+
+  return false;
+}
+
+function deleteSearch(group, sindex) {
+  for (var i = sindex; i < groupLength[group] - 1; i++) {
+    var $search0 = $('#search' + group + '_' + i);
+    var $search1 = $('#search' + group + '_' + (i + 1));
+    $search0.find('input').val($search1.find('input').val());
+    var select0 = $search0.find('select')[0];
+    var select1 = $search1.find('select')[0];
+    select0.selectedIndex = select1.selectedIndex;
+  }
+  if (groupLength[group] > 1) {
+    groupLength[group]--;
+    $('#search' + group + '_' + groupLength[group]).remove();
+    if (groupLength[group] === 1) {
+      $('#group' + group + ' .adv-term-remove').addClass('hidden'); // Hide x
+    }
+  }
+  return false;
+}
+
+function addGroup(_firstTerm, _firstField, _join) {
+  var firstTerm = _firstTerm || '';
+  var firstField = _firstField || '';
+  var join = _join || '';
+
+  var $newGroup = $($('#new_group_template').html());
+  $newGroup.find('.adv-group-label') // update label
+    .attr('for', 'search_lookfor' + nextGroup + '_0');
+  $newGroup.attr('id', 'group' + nextGroup);
+  $newGroup.find('.search_place_holder')
+    .attr('id', 'group' + nextGroup + 'Holder')
+    .removeClass('hidden');
+  $newGroup.find('.add_search_link')
+    .attr('id', 'add_search_link_' + nextGroup)
+    .attr('onClick', 'return addSearch(' + nextGroup + ')')
+    .removeClass('hidden');
+  $newGroup.find('.adv-group-close')
+    .attr('onClick', 'return deleteGroup(' + nextGroup + ')');
+  $newGroup.find('select.form-control')
+    .attr('id', 'search_bool' + nextGroup)
+    .attr('name', 'bool' + nextGroup + '[]');
+  $newGroup.find('.search_bool')
+    .attr('for', 'search_bool' + nextGroup);
+  if (join.length > 0) {
+    $newGroup.find('option[value="' + join + '"]').attr('selected', 1);
+  }
+  // Insert
+  $('#groupPlaceHolder').before($newGroup);
+  // Populate
+  groupLength[nextGroup] = 0;
+  addSearch(nextGroup, {term: firstTerm, field: firstField});
+  // Show join menu
+  if (nextGroup > 0) {
+    $('#groupJoin').removeClass('hidden');
+    // Show x
+    $('.adv-group-close').removeClass('hidden');
+  }
+
+  // #17985 finc barf
+  $newGroup.children('input.form-control').first().focus();
+
+  return nextGroup++;
+}
+
+function deleteGroup(group) {
+  // Find the group and remove it
+  $("#group" + group).remove();
+  // If the last group was removed, add an empty group
+  if ($('.adv-group').length === 0) {
+    addGroup();
+  } else if ($('#advSearchForm .adv-group').length === 1) {
+    $('#groupJoin').addClass('hidden'); // Hide join menu
+    $('.adv-group .adv-group-close').addClass('hidden'); // Hide x
+  }
+  return false;
+}
+
+$(document).ready(function advSearchReady() {
+  $('.clear-btn').click(function clearBtnClick() {
+    $('input[type="text"]').val('');
+    $("option:selected").removeAttr("selected");
+    $("#illustrated_-1").click();
+  });
+});
diff --git a/themes/finc/js/covers.js b/themes/finc/js/covers.js
index 1f150538799ab5778d7129604d192603de5761a5..f54f93b677c941e87ad4fc3a0406e43f54d20aba 100644
--- a/themes/finc/js/covers.js
+++ b/themes/finc/js/covers.js
@@ -1,3 +1,22 @@
+/* global Finc */
+// show picture in large size after click within a modal
+function registerCoverForModal(anchor, url) {
+  if (anchor === null || anchor === undefined || url === null || url === undefined) {
+    return;
+  }
+
+  anchor.click(function(event) {
+    event.preventDefault();
+    VuFind.modal('show');
+    var largeSizeUrl = url + '&size=large';
+    $.get(largeSizeUrl).done(function() {
+      $('#modal').find('.modal-body').html('<img src="' + largeSizeUrl + '">');
+    }).fail(function() {
+      $('#modal').find('.modal-body').html('<img src="' + url + '">');
+    });
+  });
+}
+
 /* this is a backport from VF 7 core, remove on upgrade */
 /* global VuFind */
 function loadCoverByElement(data, element) {
@@ -15,6 +34,7 @@ function loadCoverByElement(data, element) {
       anchor.show();
       anchor.attr('href', response.data.url);
       anchor.removeClass('hidden'); // finc specific
+      registerCoverForModal(anchor, response.data.url); // finc specific
     } else {
       img.remove();
       if (typeof response.data.html !== 'undefined') {
@@ -45,5 +65,6 @@ function loadCovers() {
     loadCoverByElement(data, $(this));
   });
 }
+
 // deactivated for finc - we load every single cover directly by itself in cover.phtml
 // $(document).ready(loadCovers);
diff --git a/themes/finc/scss/compiled.scss b/themes/finc/scss/compiled.scss
index 094ad9742b40178c42fa65fbb43ec01c672d515a..79421497168e1b1eaf06068475fd9e8e037d41fd 100644
--- a/themes/finc/scss/compiled.scss
+++ b/themes/finc/scss/compiled.scss
@@ -2172,8 +2172,14 @@ footer {
   }
 
   span {
-    font-size: .8em;
+    font-size: 1rem;
+    padding-top: .75rem;
+    text-align: center;
     width: 100%;
+
+    @media screen and (max-width: $screen-xs-max) {
+      display: block;
+    }
   }
 }
 
diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/collection-info.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/collection-info.phtml
index da6f1ba8e886185d7a21902dc4b8be2d31fbaeaf..9a632703f394087e73e9d4c8dc200cdaf71855c6 100644
--- a/themes/finc/templates/RecordDriver/DefaultRecord/collection-info.phtml
+++ b/themes/finc/templates/RecordDriver/DefaultRecord/collection-info.phtml
@@ -6,7 +6,7 @@
   $cover = $coverDetails['html'];
   $preview = $this->record($this->driver)->getPreviews(); ?>
   <?php if ($QRCode || $cover || $preview): ?>
-    <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?>" aria-hidden="<?=$cover?'true':'false'?>>
+    <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?>">
       <?php /* Display thumbnail if appropriate: */ ?>
       <?php if ($cover): ?>
         <?=$cover?>
diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/core.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/core.phtml
index abfa3146c70a0d5099f4fa7f24272815be64e954..2fb24aa1bf328fb5013725bbcdce4c9de5d10252 100644
--- a/themes/finc/templates/RecordDriver/DefaultRecord/core.phtml
+++ b/themes/finc/templates/RecordDriver/DefaultRecord/core.phtml
@@ -9,7 +9,7 @@
   $preview = $this->record($this->driver)->getPreviews();
   ?>
   <?php if ($QRCode || $cover || $preview): ?>
-    <div class="media-left <?= $this->escapeHtmlAttr($coverDetails['size']) ?> img-col" aria-hidden="<?=$cover?'true':'false'?>">
+    <div class="media-left <?= $this->escapeHtmlAttr($coverDetails['size']) ?> img-col">
       <?php /* Display thumbnail if appropriate: */ ?>
       <?php if ($cover): ?>
         <?=$cover?>
diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-class.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-class.phtml
index 7e915e408fb9e2f4232268ae813cbf3cfc436696..c9db1eba1145a5242ff7bea91bad01fe2763c155 100644
--- a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-class.phtml
+++ b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-class.phtml
@@ -2,7 +2,6 @@
 $normalizedValue = preg_replace('/[^a-z0-9]/', '', strtolower($this->value));
 
 // Convert normalizedValue to styles
-// finc: same list of states for icons like in de_15 #13704 - VE
 switch ($normalizedValue) {
   case 'local':
     echo 'fa-home';
diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-text.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-text.phtml
new file mode 100644
index 0000000000000000000000000000000000000000..50bd4d1b6e9856521d913ae9a4f4fbf9a5504ad1
--- /dev/null
+++ b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon-text.phtml
@@ -0,0 +1,20 @@
+<!-- finc: recordDriver - DefaultRecord - record-icon-text  -->
+<?php
+  /* block copied from record-icon - RL */
+  $recordType = $this->driver->getRecordType();
+  if ($recordType == "marcfincpda") {
+    $type = $recordType;
+  } elseif ($recordType == "lido") {
+    $type = "object";
+  } else {
+    $type = implode('', $this->driver->getFacetAvail());
+  }
+?>
+<?php if ($iconClass = $this->record($this->driver)->getRecordIconClass($type)): ?>
+  <span class="access-icon hidden-print">
+    <span>
+      <?=$this->translate("($iconClass)")?>
+    </span>
+  </span>
+<?php endif; ?>
+<!-- finc: recordDriver - DefaultRecord - record-icon-text - END -->
\ No newline at end of file
diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml
index b1326e3298090c15549f19039220c98795e1a4d3..b36f126e35c921bc00d91b93aa7b303a19c08382 100644
--- a/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml
+++ b/themes/finc/templates/RecordDriver/DefaultRecord/record-icon.phtml
@@ -1,30 +1,18 @@
 <!-- finc: recordDriver - DefaultRecord - record-icon  -->
 <?php
-/* finc: template is identical with de_15 #13704 - VE */
-
-/*$formats = [];
-foreach ($this->driver->getFormats() as $format) {
-  $formats[] = $this->record($this->driver)->getRecordIconClass($format);
-}
-$formats = array_unique($formats);
-asort($formats);
-?>
-<span class="record-icon"><img src="<?=$this->imageLink("small/".array_pop($formats).".png")?>" class="hidden-xs" alt="<?=$this->transEsc("record icon")?>" /></span>
-*/
-
-if ($this->driver->getRecordType() == "marcfincpda") {
-  $iconClass = $this->record($this->driver)->getRecordIconClass("marcfincpda");
-} elseif ($this->driver->getRecordType() == "lido") {
-  $iconClass = $this->record($this->driver)->getRecordIconClass("object");
-} else {
-  /* finc: solr field facet_avail instead of access_facet (field deprecated) #15375 - GG */
-  $facetAvail = $this->driver->getFacetAvail();
-  $facetAvail = implode('', $facetAvail);
-  $iconClass = $this->record($this->driver)->getRecordIconClass($facetAvail);
-}
+  /* finc: template is NOT identical with de_15 - RL */
+  $recordType = $this->driver->getRecordType();
+  if ($recordType == "marcfincpda") {
+    $type = $recordType;
+  } elseif ($recordType == "lido") {
+    $type = "object";
+  } else {
+    $type = implode('', $this->driver->getFacetAvail());
+  }
+  $iconClass = $this->record($this->driver)->getRecordIconClass($type);
 ?>
 <span class="access-icon hidden-print">
-  <i class="fa <?=$iconClass?>"></i>
-  <span class="hidden-xs"> <?=$this->transEsc("$this->escapeHtml($iconClass)")?></span>
+  <i aria-hidden="true" class="fa <?=$iconClass?>"></i>
+  <?php /* separate access text from icon - moved to cover.phtml */ ?>
 </span>
-<!-- finc: recordDriver - DefaultRecord - record-icon - END -->
+<!-- finc: recordDriver - DefaultRecord - record-icon - END -->
\ No newline at end of file
diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/result-list.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/result-list.phtml
index 384afa895b7bc80cd88d45471aa5b64ebcc199d9..767f185304e75b2ec54d4dad17025a4275a791ac 100644
--- a/themes/finc/templates/RecordDriver/DefaultRecord/result-list.phtml
+++ b/themes/finc/templates/RecordDriver/DefaultRecord/result-list.phtml
@@ -8,7 +8,7 @@ $thumbnailAlignment = $this->record($this->driver)->getThumbnailAlignment('resul
 $describedById = $driver->getSourceIdentifier() . '|' . $driver->getUniqueId();
 if ($cover):
   ob_start(); ?>
-  <div class="media-<?=$thumbnailAlignment?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>" aria-hidden="true">
+  <div class="media-<?=$thumbnailAlignment?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>">
     <?=$cover?>
   </div>
   <?php $thumbnail = ob_get_contents(); ?>
@@ -18,6 +18,7 @@ if ($cover):
   <?php ob_start(); ?>
   <div class="media-<?=$thumbnailAlignment?> record-icon">
     <?=$this->record($this->driver)->getRecordIcon()?>
+    <?=$this->record($this->driver)->getRecordIconText()?>
   </div>
   <?php $thumbnail = ob_get_contents(); ?>
   <?php ob_end_clean(); ?>
diff --git a/themes/finc/templates/RecordDriver/FincMissing/result-list.phtml b/themes/finc/templates/RecordDriver/FincMissing/result-list.phtml
index aab0e1066fe754dc457492d881c3a0d6ab2abd0f..d6edbf31147404a0e6ef590d9cebf01b682b780e 100644
--- a/themes/finc/templates/RecordDriver/FincMissing/result-list.phtml
+++ b/themes/finc/templates/RecordDriver/FincMissing/result-list.phtml
@@ -13,7 +13,7 @@ $thumbnail = false;
 $thumbnailAlignment = $this->record($this->driver)->getThumbnailAlignment('result');
 if ($cover):
   ob_start(); ?>
-  <div class="media-<?=$thumbnailAlignment?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>" aria-hidden="true">
+  <div class="media-<?=$thumbnailAlignment?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>">
     <?=$cover?>
   </div>
   <?php $thumbnail = ob_get_contents(); ?>
diff --git a/themes/finc/templates/RecordDriver/SolrAI/core.phtml b/themes/finc/templates/RecordDriver/SolrAI/core.phtml
index 0898ed1578e797ae1b186b1740baca75b825e075..8ff58d1fdd303d8224c46529e7c1677cd7e804fb 100644
--- a/themes/finc/templates/RecordDriver/SolrAI/core.phtml
+++ b/themes/finc/templates/RecordDriver/SolrAI/core.phtml
@@ -10,7 +10,7 @@
   $preview = $this->record($this->driver)->getPreviews();
   ?>
   <?php if ($QRCode || $cover || $preview): ?>
-    <div class="media-left <?= $this->escapeHtmlAttr($coverDetails['size']) ?> img-col" aria-hidden="<?=$cover?'true':'false'?>">
+    <div class="media-left <?= $this->escapeHtmlAttr($coverDetails['size']) ?> img-col">
       <?php /* Display thumbnail if appropriate: */ ?>
       <?php if ($cover): ?>
         <?=$cover?>
diff --git a/themes/finc/templates/RecordDriver/SolrAI/result-list.phtml b/themes/finc/templates/RecordDriver/SolrAI/result-list.phtml
index 0b8dc222334495369c4a119078df6840174a8a3f..16be9bd855b86b1155ba70f51928ecab646d9b4d 100644
--- a/themes/finc/templates/RecordDriver/SolrAI/result-list.phtml
+++ b/themes/finc/templates/RecordDriver/SolrAI/result-list.phtml
@@ -16,6 +16,7 @@ if ($cover):
   <?php ob_start(); ?>
   <div class="media-<?=$thumbnailAlignment?> record-icon">
     <?=$this->record($this->driver)->getRecordIcon()?>
+    <?=$this->record($this->driver)->getRecordIconText()?>
   </div>
   <?php $thumbnail = ob_get_contents(); ?>
   <?php ob_end_clean(); ?>
diff --git a/themes/finc/templates/RecordDriver/SolrLido/core.phtml b/themes/finc/templates/RecordDriver/SolrLido/core.phtml
index a2022ca6cc31d1e6a11def06b73f0bb14d496719..8eed15270f91375cb0d4162a57c86c12e0e8316d 100644
--- a/themes/finc/templates/RecordDriver/SolrLido/core.phtml
+++ b/themes/finc/templates/RecordDriver/SolrLido/core.phtml
@@ -30,7 +30,7 @@
   $preview = $this->record($this->driver)->getPreviews();
   ?>
   <?php if ($QRCode || $cover || $preview): ?>
-    <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?> img-col" aria-hidden="<?=$cover?'true':'false'?>">
+    <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?> img-col"?>">
       <?php /* Display thumbnail if appropriate: */ ?>
       <?php if ($cover): ?>
         <?=$cover?>
diff --git a/themes/finc/templates/RecordDriver/SolrMarc/core.phtml b/themes/finc/templates/RecordDriver/SolrMarc/core.phtml
index d001340755986b1218c25edf9191fa3004e2a71c..36078b3bbbd57eb88e6a9d5700798696e31f61e5 100644
--- a/themes/finc/templates/RecordDriver/SolrMarc/core.phtml
+++ b/themes/finc/templates/RecordDriver/SolrMarc/core.phtml
@@ -10,7 +10,7 @@
   $preview = $this->record($this->driver)->getPreviews();
   ?>
   <?php if ($QRCode || $cover || $preview): ?>
-  <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?> img-col" aria-hidden="<?=$cover?'true':'false'?>">
+  <div class="media-left <?=$this->escapeHtmlAttr($coverDetails['size'])?> img-col">
       <?php /* Display thumbnail if appropriate: */ ?>
       <?php if ($cover): ?>
         <?=$cover?>
diff --git a/themes/finc/templates/myresearch/historicloans.phtml b/themes/finc/templates/myresearch/historicloans.phtml
index a86d384a051a4aa0efe60ade2da0941780c0f627..44605abc8de8fafa023af8ba0b70903984ef3263 100644
--- a/themes/finc/templates/myresearch/historicloans.phtml
+++ b/themes/finc/templates/myresearch/historicloans.phtml
@@ -51,7 +51,7 @@
           $thumbnailAlignment = $this->record($resource)->getThumbnailAlignment('account');
           if ($cover):
             ob_start(); ?>
-            <div class="media-<?=$thumbnailAlignment ?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>" aria-hidden="true">
+            <div class="media-<?=$thumbnailAlignment ?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>">
               <?=$cover ?>
             </div>
             <?php $thumbnail = ob_get_contents();
diff --git a/themes/finc/templates/myresearch/illrequests.phtml b/themes/finc/templates/myresearch/illrequests.phtml
index 32f59dd92179d0e9d71eb84692383d431cbdd252..6f87f860b07bdb742a7a115a18a82eabeb1a8a79 100644
--- a/themes/finc/templates/myresearch/illrequests.phtml
+++ b/themes/finc/templates/myresearch/illrequests.phtml
@@ -66,7 +66,7 @@
           $thumbnailAlignment = $this->record($resource)->getThumbnailAlignment('account');
           if ($cover):
             ob_start(); ?>
-            <div class="media-<?=$thumbnailAlignment ?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>" aria-hidden="true">
+            <div class="media-<?=$thumbnailAlignment ?> <?=$this->escapeHtmlAttr($coverDetails['size'])?>">
               <?=$cover ?>
             </div>
             <?php $thumbnail = ob_get_contents(); ?>
diff --git a/themes/finc/templates/record/cover.phtml b/themes/finc/templates/record/cover.phtml
index d528c97f6358d0cb62317dc0a7e8e359ddc0ba2b..ccc96247aef93c12b7ba2671726b0028e306ff52 100644
--- a/themes/finc/templates/record/cover.phtml
+++ b/themes/finc/templates/record/cover.phtml
@@ -3,22 +3,31 @@
 <?php /* If you want to load covers in lightbox use .recordcover;
   the class .nocover prevents nocover images from loading in lightbox or can be used to hide the images */ ?>
 <?php $alt = $alt ?? $this->transEsc('Cover Image')?>
+<?php $coverId = "cover-" . $driver->getUniqueID() . "-" . time(); ?>
 <?php if ($cover): ?>
-  <?php if ($this->link): ?><a href="<?=$this->escapeHtmlAttr($this->link)?>" target="_blank" tabindex="-1"><?php endif; ?>
-  <img alt="<?=$alt?>" <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?>class="recordcover" src="<?=$this->escapeHtmlAttr($cover); ?>" aria-hidden="true"/>
-  <?php if ($this->link): ?></a><?php endif; ?>
+  <?php if ($this->link): ?><a id="<?=$coverId?>" href="<?=$this->escapeHtmlAttr($this->link)?>" tabindex="-1" aria-hidden="true"><?php endif; ?>
+  <img alt="<?=$alt?>" <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?>class="recordcover" src="<?=$this->escapeHtmlAttr($cover); ?>" />
+  <?php if ($this->link): ?>
+  </a>
+  <script>
+    registerCoverForModal($('#<?=$coverId?>'), '<?=$this->link?>');
+  </script>
+  <?php endif; ?>
 <?php elseif ($cover === false): ?>
-  <img src="<?=$this->url('cover-unavailable')?>" <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?>class="nocover" alt="<?=$this->transEsc('No Cover Image')?>" aria-hidden="true" />
+  <img src="<?=$this->url('cover-unavailable')?>" <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?>class="nocover" alt="<?=$this->transEsc('No Cover Image')?>" aria-hidden="true" tabindex="-1" />
 <?php else: ?>
-    <div id="cover-<?=$driver->getUniqueID()?>" class="ajaxcover">
-        <div class="spinner"><i class="fa fa-spinner fa-spin"></i></div>
-        <div class="cover-container">
-          <?=$this->render('record/coverReplacement')?>
-          <a class="coverlink hidden" tabindex="-1">
-            <img src onerror="loadCoverByElement({source:'<?=$this->escapeHtmlAttr($driver->getSourceIdentifier())?>', recordId:'<?=$this->escapeHtmlAttr($driver->getUniqueID())?>', size:'<?=$this->escapeHtmlAttr($size)?>'}, $('#cover-<?=$driver->getUniqueID()?>'))"
-              <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?> class="recordcover ajax" alt="<?=$this->escapeHtmlAttr($alt); ?>" />
-          </a>
-        </div>
-    </div>
+  <div id="<?=$coverId?>" class="ajaxcover">
+      <div class="spinner"><i class="fa fa-spinner fa-spin"></i></div>
+      <div class="cover-container">
+        <?=$this->render('record/coverReplacement')?>
+        <a class="coverlink hidden" aria-hidden="true" tabindex="-1">
+          <img <?php if ($linkPreview): ?>data-linkpreview="true" <?php endif; ?> class="recordcover ajax" alt="<?=$this->escapeHtmlAttr($alt); ?>" />
+        </a>
+        <script>
+          loadCoverByElement({source:'<?=$this->escapeHtmlAttr($driver->getSourceIdentifier())?>', recordId:'<?=$this->escapeHtmlAttr($driver->getUniqueID())?>', size:'<?=$this->escapeHtmlAttr($size)?>'}, $('#<?=$coverId?>'));
+        </script>
+      </div>
+  </div>
 <?php endif; ?>
+<?=$this->record($this->driver)->getRecordIconText()?>
 <!-- finc: record - cover - END -->