diff --git a/module/VuFind/src/VuFind/View/Helper/Bootstrap3/LayoutClass.php b/module/VuFind/src/VuFind/View/Helper/Bootstrap3/LayoutClass.php
index 31a4017d4c686a405e7d1a21c8662820dec00f73..23ac5129059dafd9f78998f0bb4b11929c675189 100644
--- a/module/VuFind/src/VuFind/View/Helper/Bootstrap3/LayoutClass.php
+++ b/module/VuFind/src/VuFind/View/Helper/Bootstrap3/LayoutClass.php
@@ -53,11 +53,11 @@ class LayoutClass extends \VuFind\View\Helper\AbstractLayoutClass
     {
         switch ($class) {
         case 'mainbody':
-            return $this->left ? 'col-md-9 col-md-push-3' : 'col-md-9';
+            return $this->left ? 'col-sm-9 col-sm-push-3' : 'col-sm-9';
         case 'sidebar':
             return $this->left
-                ? 'sidebar col-md-3 col-md-pull-9 hidden-print'
-                : 'sidebar col-md-3 hidden-print';
+                ? 'sidebar col-sm-3 col-sm-pull-9 hidden-print'
+                : 'sidebar col-sm-3 hidden-print';
         }
     }
 }
diff --git a/themes/bootprint3/less/bootprint.less b/themes/bootprint3/less/bootprint.less
index 89b133768dc6ad598b1d2bd6d92eb780191d46cd..449229c29e6588af55d37caef342a8f5b3db4b96 100644
--- a/themes/bootprint3/less/bootprint.less
+++ b/themes/bootprint3/less/bootprint.less
@@ -228,6 +228,7 @@ footer {
 #hierarchyRecord {background:#FFF}
 
 /* --- Search --- */
+.alert {padding:8px}
 .bulkActionButtons {margin-bottom:6px}
 .left {text-align:center}
 .result {
@@ -237,6 +238,13 @@ footer {
     ul {padding-left:18px;}
   }
 }
+.search-controls {
+  label {text-align:left}
+  @media (max-width:767px) {
+    margin:4px -4px;
+    padding:4px 0;
+  }
+}
 
 /* --- Search Home --- */
 .searchHomeContent {
diff --git a/themes/bootstrap3/less/bootstrap.less b/themes/bootstrap3/less/bootstrap.less
index d74bf722ceb12f99c4129a7d548729878d42ac61..bf1836f813d361e798e9a2f2d52e5d8d9399b84d 100644
--- a/themes/bootstrap3/less/bootstrap.less
+++ b/themes/bootstrap3/less/bootstrap.less
@@ -3,7 +3,11 @@
 
 .btn {&:extend(.btn-default all);}
 .fa {cursor:default}
-.form-control {max-width:400px}
+.form-control {
+  @media(min-width:768px) {
+    max-width:400px;
+  }
+}
 .group [class^=col-] {padding-left:0}
 .highlight{&:extend(mark);}
 .icon-bar {background-color:#888}
@@ -105,6 +109,14 @@ label.list-group-item {border-radius:0;font-weight:normal;margin-top:0;padding-l
 .fa-videoreel:before      {content:"\f03d"} // .fa-video-camera
 
 /* --- Search --- */
+.bulkActionButtons {
+  label {
+    display:inline-block;
+    input {
+      margin-top:2px;
+    }
+  }
+}
 .grid {
   @media (max-width:767px) {
     min-height:250px;
@@ -114,15 +126,21 @@ label.list-group-item {border-radius:0;font-weight:normal;margin-top:0;padding-l
   a.title {font-weight:bold}
   .left img {max-width:100%}
   @media (max-width:767px) {
-    .left {padding:0}
     a {text-decoration:underline}
+    .middle,.right {padding:0}
   }
-  @media (max-width:400px) {
+  @media (max-width:530px) {
+    .checkbox {display: none !important;}
     .left {width:40%}
     .middle {width:60%}
     .right {display:none}
   }
 }
+.search-controls {
+  .alert {
+    margin-bottom:0;
+  }
+}
 
 /* --- Sidebar rounded corners --- */
 .sidebar {
diff --git a/themes/bootstrap3/templates/RecordDriver/SolrDefault/result-list.phtml b/themes/bootstrap3/templates/RecordDriver/SolrDefault/result-list.phtml
index b9f97bc665d2de0110ce5b82f551e9abc9de4771..f9e604b9b31ca4c31b1249a167dfaabce504880e 100644
--- a/themes/bootstrap3/templates/RecordDriver/SolrDefault/result-list.phtml
+++ b/themes/bootstrap3/templates/RecordDriver/SolrDefault/result-list.phtml
@@ -1,7 +1,7 @@
 <div class="<?=$this->driver->supportsAjaxStatus()?'ajaxItem ':''?>col-xs-11">
   <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getUniqueID())?>" class="hiddenId" />
   <input type="hidden" value="<?=$this->escapeHtmlAttr($this->driver->getResourceSource())?>" class="hiddenSource" />
-  <div class="col-xs-2 left">
+  <div class="col-sm-2 col-xs-3 left">
     <a href="<?=$this->recordLink()->getUrl($this->driver)?>" class="title">
       <? if ($summThumb = $this->record($this->driver)->getThumbnail()): ?>
         <img src="<?=$this->escapeHtmlAttr($summThumb)?>" alt="<?=$this->transEsc('Cover Image')?>"/>
@@ -10,7 +10,7 @@
       <? endif; ?>
     </a>
   </div>
-  <div class="col-xs-6 middle">
+  <div class="col-sm-7 col-xs-6 middle">
     <div>
       <a href="<?=$this->recordLink()->getUrl($this->driver)?>" class="title">
       <?
diff --git a/themes/bootstrap3/templates/record/checkbox.phtml b/themes/bootstrap3/templates/record/checkbox.phtml
index afb3c746190f3cf5dd458197bf511355e4c35bd2..b53628a07911f52ced45e0a3cc4b091c34845497 100644
--- a/themes/bootstrap3/templates/record/checkbox.phtml
+++ b/themes/bootstrap3/templates/record/checkbox.phtml
@@ -1,4 +1,2 @@
-<span class="hidden-print">
-  <input class="checkbox-select-item" type="checkbox" name="ids[]" value="<?=$this->id ?>"/>
-  <input type="hidden" name="idsAll[]" value="<?=$this->id ?>"/>
-</span>
+<input class="checkbox-select-item" type="checkbox" name="ids[]" value="<?=$this->id ?>"/>
+<input type="hidden" name="idsAll[]" value="<?=$this->id ?>"/>
diff --git a/themes/bootstrap3/templates/search/controls/view.phtml b/themes/bootstrap3/templates/search/controls/view.phtml
index ae688a7062cf4949e0e37848a00075df962f9765..91dd324a7e066d40db2ac43a013035724b89cc93 100644
--- a/themes/bootstrap3/templates/search/controls/view.phtml
+++ b/themes/bootstrap3/templates/search/controls/view.phtml
@@ -1,9 +1,11 @@
-<? $viewList = $this->params->getViewList(); if (count($viewList) > 1): ?>
-  <? foreach ($viewList as $viewType => $viewData): ?>
-    <? if (!$viewData['selected']): ?>
-      <a href="<?=$this->results->getUrlQuery()->setViewParam($viewType)?>" title="<?=$this->transEsc('Switch view to')?> <?=$this->transEsc($viewData['desc'])?>" >
-    <? endif; ?>
-    <i class="fa fa-<?=$viewType ?>"<? if($viewData['selected']): ?> title="<?=$this->transEsc($viewData['desc']) ?> <?=$this->transEsc('view already selected') ?>" <? endif ?> alt="<?=$this->transEsc($viewData['desc'])?>"></i>
-    <?=$this->transEsc($viewData['desc']) ?><? if (!$viewData['selected']): ?></a><? endif; ?>&nbsp;
-  <? endforeach; ?>
-<? endif; ?>
+<div class="view-buttons hidden-xs">
+  <? $viewList = $this->params->getViewList(); if (count($viewList) > 1): ?>
+    <? foreach ($viewList as $viewType => $viewData): ?>
+      <? if (!$viewData['selected']): ?>
+        <a href="<?=$this->results->getUrlQuery()->setViewParam($viewType)?>" title="<?=$this->transEsc('Switch view to')?> <?=$this->transEsc($viewData['desc'])?>" >
+      <? endif; ?>
+      <i class="fa fa-<?=$viewType ?>"<? if($viewData['selected']): ?> title="<?=$this->transEsc($viewData['desc']) ?> <?=$this->transEsc('view already selected') ?>" <? endif ?> alt="<?=$this->transEsc($viewData['desc'])?>"></i>
+      <?=$this->transEsc($viewData['desc']) ?><? if (!$viewData['selected']): ?></a><? endif; ?>&nbsp;
+    <? endforeach; ?>
+  <? endif; ?>
+</div>
diff --git a/themes/bootstrap3/templates/search/list-list.phtml b/themes/bootstrap3/templates/search/list-list.phtml
index 6da0746520ec97bfd8d509d8fe808e1d2db1bc35..794e19b345b40b2a14199524c369420b35f24715 100644
--- a/themes/bootstrap3/templates/search/list-list.phtml
+++ b/themes/bootstrap3/templates/search/list-list.phtml
@@ -2,7 +2,7 @@
 <? $i = $this->indexStart; foreach ($this->results->getResults() as $current):
   $recordNumber = $this->results->getStartRecord()+$i-$this->indexStart; ?>
   <div id="result<?=$i++ ?>" class="row result clearfix">
-    <label class="pull-left col-xs-1"><? if (!isset($this->hideCartControls) && $this->cart()->isActive()): ?><?=$this->record($current)->getCheckbox()?><? endif; ?><?=$recordNumber?></label>
+    <label class="pull-left hidden-print checkbox"><? if (!isset($this->hideCartControls) && $this->cart()->isActive()): ?><?=$this->record($current)->getCheckbox()?><? endif; ?><?=$recordNumber?></label>
     <?=$this->record($current)->getSearchResult('list')?>
   </div>
 <? endforeach; ?>
\ No newline at end of file
diff --git a/themes/bootstrap3/templates/search/results.phtml b/themes/bootstrap3/templates/search/results.phtml
index 5b1636d068ac10a9315ee7ffc175bd4235878dcc..8f47491e37f5019baf187671b3bac2dded7badf4 100644
--- a/themes/bootstrap3/templates/search/results.phtml
+++ b/themes/bootstrap3/templates/search/results.phtml
@@ -41,14 +41,15 @@
 ?>
 
 <div class="<?=$this->layoutClass('mainbody')?>">
+  <?=$this->search()->renderSpellingSuggestions('<strong>' . $this->transEsc('spell_suggest') . '</strong>:', $this->results, $this); ?>
   <? if (($recordTotal = $this->results->getResultTotal()) > 0): // only display these at very top if we have results ?>
     <? foreach ($this->results->getRecommendations('top') as $current): ?>
       <?=$this->recommend($current)?>
     <? endforeach; ?>
   <? endif; ?>
   <?=$this->flashmessages()?>
-  <div class="clearfix hidden-print search-controls">
-    <div class="pull-left">
+  <div class="hidden-print search-controls clearfix">
+    <div class="col-sm-6">
       <? if ($recordTotal > 0): ?>
         <?=$this->transEsc("Showing")?>
         <strong><?=number_format($this->results->getStartRecord())?></strong> - <strong><?=number_format($this->results->getEndRecord())?></strong>
@@ -63,14 +64,13 @@
         <? if ($qtime = $this->results->getQuerySpeed()): ?>
           <?=$this->transEsc('query time')?>: <?=$this->escapeHtml(round($qtime, 2))?>s
         <? endif; ?>
-        <?=$this->search()->renderSpellingSuggestions('<strong>' . $this->transEsc('spell_suggest') . '</strong>:', $this->results, $this); ?>
       <? else: ?>
         <p class="lead"><?=$this->transEsc('nohit_heading')?></p>
       <? endif; ?>
     </div>
 
     <? if ($recordTotal > 0): ?>
-      <div class="pull-right">
+      <div class="col-sm-6 text-right">
         <?=$this->render('search/controls/limit.phtml')?>
         <?=$this->render('search/controls/sort.phtml')?>
         <?=$this->render('search/controls/view.phtml')?>