diff --git a/themes/bootstrap3/js/advanced_search.js b/themes/bootstrap3/js/advanced_search.js
index d8f47aaa86d40f66aed18ca7bc64f6ffc809461b..de41e07955ea8e8749c5c1266d0a7a32e45fd25b 100644
--- a/themes/bootstrap3/js/advanced_search.js
+++ b/themes/bootstrap3/js/advanced_search.js
@@ -52,7 +52,7 @@ function addGroup(firstTerm, firstField, join)
   if (firstField == undefined) {firstField = '';}
   if (join       == undefined) {join       = '';}
 
-  var newGroup = '<div id="group'+nextGroup+'" class="group well clearfix">'
+  var newGroup = '<div id="group'+nextGroup+'" class="group well row">'
     + '<div class="col-md-9"><div class="row"><div class="col-md-3"><label class="help-block">'+searchLabel+':</label></div>'
     + '<div class="col-md-9"><i id="group'+nextGroup+'Holder" class="fa fa-plus-circle"></i> <a href="#" onClick="addSearch('+nextGroup+')">'+addSearchString+'</a></div></div></div>'
     + '<div class="col-md-3">'
diff --git a/themes/bootstrap3/js/vendor/bootlint.min.js b/themes/bootstrap3/js/vendor/bootlint.min.js
index 72015dc6c4312d2a5e105bd02e89cfda6a837c3d..c7d1ab30e296015745a73586431192b5b6244248 100644
--- a/themes/bootstrap3/js/vendor/bootlint.min.js
+++ b/themes/bootstrap3/js/vendor/bootlint.min.js
@@ -1456,7 +1456,7 @@ var cheerio=require("cheerio");(function(exports){"use strict";var COL_CLASSES=[
 var lastSlash=filename.lastIndexOf("/");if(lastSlash!==-1){filename=filename.slice(lastSlash+1)}return filename}exports.lintDoctype=function(){var MISSING_DOCTYPE="Document is missing a DOCTYPE declaration";var NON_HTML5_DOCTYPE="Document declares a non-HTML5 DOCTYPE";if(IN_NODE_JS){return function($){var doctype=$(":root")[0];while(doctype&&!isDoctype(doctype)){doctype=doctype.prev}if(!doctype){return MISSING_DOCTYPE}var doctypeId=doctype.data.toLowerCase();if(doctypeId!=="!doctype html"&&doctypeId!=='!doctype html system "about:legacy-compat"'){return NON_HTML5_DOCTYPE}}}else{return function(){/*eslint-disable no-undef */
 var doc=window.document;/*eslint-enable un-undef */
 if(doc.doctype===null){return MISSING_DOCTYPE}if(doc.doctype.publicId){return NON_HTML5_DOCTYPE}if(doc.doctype.systemId&&doc.doctype.systemId!=="about:legacy-compat"){return NON_HTML5_DOCTYPE}}}}();exports.lintMetaCharsetUtf8=function($){var meta=$("head>meta[charset]");var charset=meta.attr("charset");if(!charset){return"<head> is missing UTF-8 charset <meta> tag"}if(charset.toLowerCase()!=="utf-8"){return"charset <meta> tag is specifying a legacy, non-UTF-8 charset"}};exports.lintXUaCompatible=function($){var meta=$('head>meta[http-equiv="X-UA-Compatible"][content="IE=edge"]');if(!meta.length){return"<head> is missing X-UA-Compatible <meta> tag that disables old IE compatibility modes"}};exports.lintViewport=function($){var meta=$('head>meta[name="viewport"][content]');if(!meta.length){return"<head> is missing viewport <meta> tag that enables responsiveness"}};exports.lintBootstrapv2=function($){var columnClasses=[];for(var n=1;n<=12;n++){columnClasses.push(".span"+n)}var selector=columnClasses.join(",");var spanNs=$(selector);if(spanNs.length){return"Found one or more uses of outdated Bootstrap v2 `.spanN` grid classes"}};exports.lintContainers=function($){var notAnyColClass=COL_CLASSES.map(function(colClass){return":not("+colClass+")"}).join("");var selector="*:not(.bs-example)"+notAnyColClass+">.row";var rowsOutsideColumns=$(selector);var rowsOutsideColumnsAndContainers=rowsOutsideColumns.filter(function(i,row){var parent=$(row);while(parent.length){if(parent.hasClass("container")||parent.hasClass("container-fluid")){return false}parent=$(parent).parent()}return true});if(rowsOutsideColumnsAndContainers.length){return"Found one or more `.row`s that were not children of a grid column or descendants of a `.container` or `.container-fluid`"}};exports.lintNestedContainers=function($){var nestedContainers=$(".container, .container-fluid").children(".container, .container-fluid");if(nestedContainers.length){return"Containers (`.container` and `.container-fluid`) are not nestable"}};exports.lintRowAndColOnSameElem=function($){var selector=COL_CLASSES.map(function(col){return".row"+col}).join(",");var rowCols=$(selector);if(rowCols.length){return"Found both `.row` and `.col-*-*` used on the same element"}};exports.lintRemoteModals=function($){var remoteModalTriggers=$('[data-toggle="modal"][data-remote]');if(remoteModalTriggers.length){return"Found one or more modals using the deprecated `remote` option"}};exports.lintJquery=function($){var theWindow=null;try{/*eslint-disable no-undef */
-theWindow=window}catch(e){}if(theWindow&&(theWindow.$||theWindow.jQuery)){return undefined}var jqueries=$('script[src*="jquery"],script[src*="jQuery"]');if(!jqueries.length){return"Unable to locate jQuery, which is required for Bootstrap's JavaScript plugins to work"}};exports.lintInputGroupFormControlTypes=function($){var errs=[];var selectInputGroups=$(".input-group select");if(selectInputGroups.length){errs.push("`.input-group` contains a <select>; this should be avoided as <select>s cannot be fully styled in WebKit browsers")}var textareaInputGroups=$(".input-group textarea");if(textareaInputGroups.length){errs.push("`.input-group` contains a <textarea>; only text-based <input>s are permitted in an `.input-group`")}return errs};exports.lintBootstrapJs=function($){var longhands=$('script[src*="bootstrap.js"]').filter(function(i,script){var url=$(script).attr("src");var filename=filenameFromUrl(url);return filename==="bootstrap.js"});if(!longhands.length){return undefined}var minifieds=$('script[src*="bootstrap.min.js"]').filter(function(i,script){var url=$(script).attr("src");var filename=filenameFromUrl(url);return filename==="bootstrap.min.js"});if(!minifieds.length){return undefined}return"Only one copy of Bootstrap's JS should be included; currently the webpage includes both bootstrap.js and bootstrap.min.js"};exports.lintTooltipsOnDisabledElems=function($){var selector=['[disabled][data-toggle="tooltip"]','.disabled[data-toggle="tooltip"]','[disabled][data-toggle="popover"]','.disabled[data-toggle="popover"]'].join(",");var disabledWithTooltips=$(selector);if(disabledWithTooltips.length){return"Tooltips and popovers on disabled elements cannot be triggered by user interaction unless the element becomes enabled."+" To have tooltips and popovers be triggerable by the user even when their associated element is disabled,"+" put the disabled element inside a wrapper <div> and apply the tooltip or popover to the wrapper <div> instead."}};exports.lintTooltipsInBtnGroups=function($){var nonBodyContainers=$('.btn-group [data-toggle="tooltip"]:not([data-container="body"]), .btn-group [data-toggle="popover"]:not([data-container="body"])');if(nonBodyContainers.length){return"Tooltips and popovers within button groups should have their `container` set to 'body'. Found tooltips/popovers that might lack this setting."}};exports.lintMissingInputGroupSizes=function($){var selector=[".input-group:not(.input-group-lg) .btn-lg",".input-group:not(.input-group-lg) .input-lg",".input-group:not(.input-group-sm) .btn-sm",".input-group:not(.input-group-sm) .input-sm"].join(",");var badInputGroupSizing=$(selector);if(badInputGroupSizing.length){return"Button and input sizing within `.input-group`s can cause issues. Instead, use input group sizing classes `.input-group-lg` or `.input-group-sm`"}};exports.lintMultipleFormControlsInInputGroup=function($){var badInputGroups=$(".input-group").filter(function(i,inputGroup){return $(inputGroup).find(".form-control").length>1});if(badInputGroups.length){return"Input groups cannot contain multiple `.form-control`s"}};exports.lintFormGroupMixedWithInputGroup=function($){var badMixes=$(".input-group.form-group");if(badMixes.length){return".input-group and .form-group cannot be used directly on the same element. Instead, nest the .input-group within the .form-group"}};exports.lintGridClassMixedWithInputGroup=function($){var selector=COL_CLASSES.map(function(colClass){return".input-group"+colClass}).join(",");var badMixes=$(selector);if(badMixes.length){return".input-group and .col-*-* cannot be used directly on the same element. Instead, nest the .input-group within the .col-*-*"}};exports.lintRowChildrenAreCols=function($){var ALLOWED_CHILD_CLASSES=COL_CLASSES.concat([".clearfix",".bs-customizer-input"]);var selector=".row>*"+ALLOWED_CHILD_CLASSES.map(function(colClass){return":not("+colClass+")"}).join("");var nonColRowChildren=$(selector);if(nonColRowChildren.length){return"Only columns (.col-*-*) may be children of `.row`s"}};exports.lintColParentsAreRowsOrFormGroups=function($){var selector=COL_CLASSES.map(function(colClass){return"*:not(.row):not(.form-group)>"+colClass+":not(col):not(th):not(td)"}).join(",");var colsOutsideRowsAndFormGroups=$(selector);if(colsOutsideRowsAndFormGroups.length){return"Columns (.col-*-*) can only be children of `.row`s or `.form-group`s"}};exports.lintInputGroupsWithMultipleAddOnsPerSide=function($){var addOnClasses=[".input-group-addon",".input-group-btn"];var combos=[];addOnClasses.forEach(function(first){addOnClasses.forEach(function(second){combos.push(".input-group>"+first+"+"+second)})});var selector=combos.join(",");var multipleAddOns=$(selector);if(multipleAddOns.length){return"Having multiple add-ons on a single side of an input group is not supported"}};exports.lintBtnToggle=function($){var badBtnToggle=$(".btn.dropdown-toggle ~ .btn");if(badBtnToggle.length){return"`.btn.dropdown-toggle` must be the last button in a button group."}};exports.lintBtnType=function($){var badBtnType=$('button:not([type="submit"], [type="button"])');if(badBtnType.length){return"Always set a `type` on `<button>`s."}};exports.lintBlockCheckboxes=function($){var badCheckboxes=$(".checkbox").filter(function(i,div){return $(div).filter(':has(>label>input[type="checkbox"])').length<=0});if(badCheckboxes.length){return'Incorrect markup used with the `.checkbox` class. The correct markup structure is .checkbox>label>input[type="checkbox"]'}};exports.lintBlockRadios=function($){var badRadios=$(".radio").filter(function(i,div){return $(div).filter(':has(>label>input[type="radio"])').length<=0});if(badRadios.length){return'Incorrect markup used with the `.radio` class. The correct markup structure is .radio>label>input[type="radio"]'}};exports.lintInlineCheckboxes=function($){var errs=[];var wrongElems=$(".checkbox-inline:not(label)");if(wrongElems.length){errs.push(".checkbox-inline should only be used on <label> elements")}var badStructures=$(".checkbox-inline").filter(function(i,label){return $(label).children('input[type="checkbox"]').length<=0});if(badStructures.length){errs.push('Incorrect markup used with the `.checkbox-inline` class. The correct markup structure is label.checkbox-inline>input[type="checkbox"]')}return errs};exports.lintInlineRadios=function($){var errs=[];var wrongElems=$(".radio-inline:not(label)");if(wrongElems.length){errs.push(".radio-inline should only be used on <label> elements")}var badStructures=$(".radio-inline").filter(function(i,label){return $(label).children('input[type="radio"]').length<=0});if(badStructures.length){errs.push('Incorrect markup used with the `.radio-inline` class. The correct markup structure is label.radio-inline>input[type="radio"]')}return errs};exports.lintButtonsCheckedActive=function($){var selector=['[data-toggle="buttons"]>label:not(.active)>input[type="checkbox"][checked]','[data-toggle="buttons"]>label.active>input[type="checkbox"]:not([checked])','[data-toggle="buttons"]>label:not(.active)>input[type="radio"][checked]','[data-toggle="buttons"]>label.active>input[type="radio"]:not([checked])'].join(",");var mismatchedButtonInputs=$(selector);if(mismatchedButtonInputs.length){return".active class used without the `checked` attribute (or vice-versa) in a button group using the button.js plugin"}};exports.lintModalsWithinOtherComponents=function($){var badNestings=$(".table .modal");if(badNestings.length){return"Modal markup should not be placed within other components, so as to avoid the component's styles interfering with the modal's appearance or functionality"}};exports.lintPanelBodyWithoutPanel=function($){var badPanelBody=$(".panel-body").parent(":not(.panel, .panel-collapse)");if(badPanelBody.length){return"`.panel-body` must have a `.panel` or `.panel-collapse` parent"}};exports.lintPanelHeadingWithoutPanel=function($){var badPanelHeading=$(".panel-heading").parent(":not(.panel)");if(badPanelHeading.length){return"`.panel-heading` must have a `.panel` parent"}};exports.lintPanelFooterWithoutPanel=function($){var badPanelFooter=$(".panel-footer").parent(":not(.panel)");if(badPanelFooter.length){return"`.panel-footer` must have a `.panel` parent"}};exports.lintPanelTitleWithoutPanelHeading=function($){var badPanelTitle=$(".panel-title").parent(":not(.panel-heading)");if(badPanelTitle.length){return"`.panel-title` must have a `.panel-heading` parent"}};exports._lint=function($){var errs=[];errs.push(this.lintDoctype($));errs.push(this.lintMetaCharsetUtf8($));errs.push(this.lintXUaCompatible($));errs.push(this.lintBootstrapv2($));errs.push(this.lintContainers($));errs.push(this.lintNestedContainers($));errs.push(this.lintViewport($));errs.push(this.lintRowAndColOnSameElem($));errs.push(this.lintRowChildrenAreCols($));errs.push(this.lintColParentsAreRowsOrFormGroups($));errs.push(this.lintRemoteModals($));errs.push(this.lintJquery($));errs.push(this.lintBootstrapJs($));errs.push(this.lintTooltipsOnDisabledElems($));errs.push(this.lintTooltipsInBtnGroups($));errs.push(this.lintMultipleFormControlsInInputGroup($));errs.push(this.lintMissingInputGroupSizes($));errs.push(this.lintFormGroupMixedWithInputGroup($));errs.push(this.lintGridClassMixedWithInputGroup($));errs.push(this.lintInputGroupsWithMultipleAddOnsPerSide($));errs.push(this.lintBtnToggle($));errs.push(this.lintBtnType($));errs.push(this.lintBlockCheckboxes($));errs.push(this.lintBlockRadios($));errs.push(this.lintButtonsCheckedActive($));errs.push(this.lintModalsWithinOtherComponents($));errs.push(this.lintPanelBodyWithoutPanel($));errs.push(this.lintPanelHeadingWithoutPanel($));errs.push(this.lintPanelTitleWithoutPanelHeading($));errs.push(this.lintPanelFooterWithoutPanel($));errs=errs.concat(this.lintInputGroupFormControlTypes($));errs=errs.concat(this.lintInlineCheckboxes($));errs=errs.concat(this.lintInlineRadios($));errs=errs.filter(function(item){return item!==undefined});return errs};if(IN_NODE_JS){// cheerio; Node.js
+theWindow=window}catch(e){}if(theWindow&&(theWindow.$||theWindow.jQuery)){return undefined}var jqueries=$('script[src*="jquery"],script[src*="jQuery"]');if(!jqueries.length){return"Unable to locate jQuery, which is required for Bootstrap's JavaScript plugins to work"}};exports.lintInputGroupFormControlTypes=function($){var errs=[];var selectInputGroups=$(".input-group select");if(selectInputGroups.length){errs.push("`.input-group` contains a <select>; this should be avoided as <select>s cannot be fully styled in WebKit browsers")}var textareaInputGroups=$(".input-group textarea");if(textareaInputGroups.length){errs.push("`.input-group` contains a <textarea>; only text-based <input>s are permitted in an `.input-group`")}return errs};exports.lintBootstrapJs=function($){var longhands=$('script[src*="bootstrap.js"]').filter(function(i,script){var url=$(script).attr("src");var filename=filenameFromUrl(url);return filename==="bootstrap.js"});if(!longhands.length){return undefined}var minifieds=$('script[src*="bootstrap.min.js"]').filter(function(i,script){var url=$(script).attr("src");var filename=filenameFromUrl(url);return filename==="bootstrap.min.js"});if(!minifieds.length){return undefined}return"Only one copy of Bootstrap's JS should be included; currently the webpage includes both bootstrap.js and bootstrap.min.js"};exports.lintTooltipsOnDisabledElems=function($){var selector=['[disabled][data-toggle="tooltip"]','.disabled[data-toggle="tooltip"]','[disabled][data-toggle="popover"]','.disabled[data-toggle="popover"]'].join(",");var disabledWithTooltips=$(selector);if(disabledWithTooltips.length){return"Tooltips and popovers on disabled elements cannot be triggered by user interaction unless the element becomes enabled."+" To have tooltips and popovers be triggerable by the user even when their associated element is disabled,"+" put the disabled element inside a wrapper <div> and apply the tooltip or popover to the wrapper <div> instead."}};exports.lintTooltipsInBtnGroups=function($){var nonBodyContainers=$('.btn-group [data-toggle="tooltip"]:not([data-container="body"]), .btn-group [data-toggle="popover"]:not([data-container="body"])');if(nonBodyContainers.length){return"Tooltips and popovers within button groups should have their `container` set to 'body'. Found tooltips/popovers that might lack this setting."}};exports.lintMissingInputGroupSizes=function($){var selector=[".input-group:not(.input-group-lg) .btn-lg",".input-group:not(.input-group-lg) .input-lg",".input-group:not(.input-group-sm) .btn-sm",".input-group:not(.input-group-sm) .input-sm"].join(",");var badInputGroupSizing=$(selector);if(badInputGroupSizing.length){return"Button and input sizing within `.input-group`s can cause issues. Instead, use input group sizing classes `.input-group-lg` or `.input-group-sm`"}};exports.lintMultipleFormControlsInInputGroup=function($){var badInputGroups=$(".input-group").filter(function(i,inputGroup){return $(inputGroup).find(".form-control").length>1});if(badInputGroups.length){return"Input groups cannot contain multiple `.form-control`s"}};exports.lintFormGroupMixedWithInputGroup=function($){var badMixes=$(".input-group.form-group");if(badMixes.length){return".input-group and .form-group cannot be used directly on the same element. Instead, nest the .input-group within the .form-group"}};exports.lintGridClassMixedWithInputGroup=function($){var selector=COL_CLASSES.map(function(colClass){return".input-group"+colClass}).join(",");var badMixes=$(selector);if(badMixes.length){return".input-group and .col-*-* cannot be used directly on the same element. Instead, nest the .input-group within the .col-*-*"}};exports.lintRowChildrenAreCols=function($){var ALLOWED_CHILD_CLASSES=COL_CLASSES.concat([".clearfix",".bs-customizer-input"]);var selector=".row>*"+ALLOWED_CHILD_CLASSES.map(function(colClass){return":not("+colClass+")"}).join("");console.log($(selector)[0]);var nonColRowChildren=$(selector);if(nonColRowChildren.length){return"Only columns (.col-*-*) may be children of `.row`s"}};exports.lintColParentsAreRowsOrFormGroups=function($){var selector=COL_CLASSES.map(function(colClass){return"*:not(.row):not(.form-group)>"+colClass+":not(col):not(th):not(td)"}).join(",");var colsOutsideRowsAndFormGroups=$(selector);if(colsOutsideRowsAndFormGroups.length){return"Columns (.col-*-*) can only be children of `.row`s or `.form-group`s"}};exports.lintInputGroupsWithMultipleAddOnsPerSide=function($){var addOnClasses=[".input-group-addon",".input-group-btn"];var combos=[];addOnClasses.forEach(function(first){addOnClasses.forEach(function(second){combos.push(".input-group>"+first+"+"+second)})});var selector=combos.join(",");var multipleAddOns=$(selector);if(multipleAddOns.length){return"Having multiple add-ons on a single side of an input group is not supported"}};exports.lintBtnToggle=function($){var badBtnToggle=$(".btn.dropdown-toggle ~ .btn");if(badBtnToggle.length){return"`.btn.dropdown-toggle` must be the last button in a button group."}};exports.lintBtnType=function($){var badBtnType=$('button:not([type="submit"], [type="button"])');if(badBtnType.length){return"Always set a `type` on `<button>`s."}};exports.lintBlockCheckboxes=function($){var badCheckboxes=$(".checkbox").filter(function(i,div){return $(div).filter(':has(>label>input[type="checkbox"])').length<=0});if(badCheckboxes.length){return'Incorrect markup used with the `.checkbox` class. The correct markup structure is .checkbox>label>input[type="checkbox"]'}};exports.lintBlockRadios=function($){var badRadios=$(".radio").filter(function(i,div){return $(div).filter(':has(>label>input[type="radio"])').length<=0});if(badRadios.length){return'Incorrect markup used with the `.radio` class. The correct markup structure is .radio>label>input[type="radio"]'}};exports.lintInlineCheckboxes=function($){var errs=[];var wrongElems=$(".checkbox-inline:not(label)");if(wrongElems.length){errs.push(".checkbox-inline should only be used on <label> elements")}var badStructures=$(".checkbox-inline").filter(function(i,label){return $(label).children('input[type="checkbox"]').length<=0});if(badStructures.length){errs.push('Incorrect markup used with the `.checkbox-inline` class. The correct markup structure is label.checkbox-inline>input[type="checkbox"]')}return errs};exports.lintInlineRadios=function($){var errs=[];var wrongElems=$(".radio-inline:not(label)");if(wrongElems.length){errs.push(".radio-inline should only be used on <label> elements")}var badStructures=$(".radio-inline").filter(function(i,label){return $(label).children('input[type="radio"]').length<=0});if(badStructures.length){errs.push('Incorrect markup used with the `.radio-inline` class. The correct markup structure is label.radio-inline>input[type="radio"]')}return errs};exports.lintButtonsCheckedActive=function($){var selector=['[data-toggle="buttons"]>label:not(.active)>input[type="checkbox"][checked]','[data-toggle="buttons"]>label.active>input[type="checkbox"]:not([checked])','[data-toggle="buttons"]>label:not(.active)>input[type="radio"][checked]','[data-toggle="buttons"]>label.active>input[type="radio"]:not([checked])'].join(",");var mismatchedButtonInputs=$(selector);if(mismatchedButtonInputs.length){return".active class used without the `checked` attribute (or vice-versa) in a button group using the button.js plugin"}};exports.lintModalsWithinOtherComponents=function($){var badNestings=$(".table .modal");if(badNestings.length){return"Modal markup should not be placed within other components, so as to avoid the component's styles interfering with the modal's appearance or functionality"}};exports.lintPanelBodyWithoutPanel=function($){var badPanelBody=$(".panel-body").parent(":not(.panel, .panel-collapse)");if(badPanelBody.length){return"`.panel-body` must have a `.panel` or `.panel-collapse` parent"}};exports.lintPanelHeadingWithoutPanel=function($){var badPanelHeading=$(".panel-heading").parent(":not(.panel)");if(badPanelHeading.length){return"`.panel-heading` must have a `.panel` parent"}};exports.lintPanelFooterWithoutPanel=function($){var badPanelFooter=$(".panel-footer").parent(":not(.panel)");if(badPanelFooter.length){return"`.panel-footer` must have a `.panel` parent"}};exports.lintPanelTitleWithoutPanelHeading=function($){var badPanelTitle=$(".panel-title").parent(":not(.panel-heading)");if(badPanelTitle.length){return"`.panel-title` must have a `.panel-heading` parent"}};exports._lint=function($){var errs=[];errs.push(this.lintDoctype($));errs.push(this.lintMetaCharsetUtf8($));errs.push(this.lintXUaCompatible($));errs.push(this.lintBootstrapv2($));errs.push(this.lintContainers($));errs.push(this.lintNestedContainers($));errs.push(this.lintViewport($));errs.push(this.lintRowAndColOnSameElem($));errs.push(this.lintRowChildrenAreCols($));errs.push(this.lintColParentsAreRowsOrFormGroups($));errs.push(this.lintRemoteModals($));errs.push(this.lintJquery($));errs.push(this.lintBootstrapJs($));errs.push(this.lintTooltipsOnDisabledElems($));errs.push(this.lintTooltipsInBtnGroups($));errs.push(this.lintMultipleFormControlsInInputGroup($));errs.push(this.lintMissingInputGroupSizes($));errs.push(this.lintFormGroupMixedWithInputGroup($));errs.push(this.lintGridClassMixedWithInputGroup($));errs.push(this.lintInputGroupsWithMultipleAddOnsPerSide($));errs.push(this.lintBtnToggle($));errs.push(this.lintBtnType($));errs.push(this.lintBlockCheckboxes($));errs.push(this.lintBlockRadios($));errs.push(this.lintButtonsCheckedActive($));errs.push(this.lintModalsWithinOtherComponents($));errs.push(this.lintPanelBodyWithoutPanel($));errs.push(this.lintPanelHeadingWithoutPanel($));errs.push(this.lintPanelTitleWithoutPanelHeading($));errs.push(this.lintPanelFooterWithoutPanel($));errs=errs.concat(this.lintInputGroupFormControlTypes($));errs=errs.concat(this.lintInlineCheckboxes($));errs=errs.concat(this.lintInlineRadios($));errs=errs.filter(function(item){return item!==undefined});return errs};if(IN_NODE_JS){// cheerio; Node.js
 /**
          * Lints the given HTML.
          * @param {string} html The HTML to lint
diff --git a/themes/bootstrap3/templates/Recommend/ResultGoogleMapAjax.phtml b/themes/bootstrap3/templates/Recommend/ResultGoogleMapAjax.phtml
index 4428ad96c47fdc2a0ddd508169e83ae6de53a330..2c2c8664898b9d5a3fc30ec924e96f777ee6c390 100644
--- a/themes/bootstrap3/templates/Recommend/ResultGoogleMapAjax.phtml
+++ b/themes/bootstrap3/templates/Recommend/ResultGoogleMapAjax.phtml
@@ -195,10 +195,12 @@ var infowindow = new google.maps.InfoWindow({maxWidth: 480, minWidth: 480});
 <div id="mapWrap" onload="initialize()" style="height:479px;display:none;margin-bottom:1em" class="clearfix">
   <div id="map_canvas" style="width: 100%; height: 100%"></div>
   <div class="mapClusterToggle" id="useCluster">
-    <label for="usegmm" class="checkbox">
-      <input type="checkbox" id="usegmm" checked="true" onclick="refreshMap();"></input>
-      <?=$this->transEsc('google_map_cluster_points') ?>
-    </label>
+    <div class="checkbox">
+      <label for="usegmm">
+        <input type="checkbox" id="usegmm" checked="true" onclick="refreshMap();"></input>
+        <?=$this->transEsc('google_map_cluster_points') ?>
+      </label>
+    </div>
   </div>
 </div>
 <br/>
\ No newline at end of file
diff --git a/themes/bootstrap3/templates/admin/tags/checkbox.phtml b/themes/bootstrap3/templates/admin/tags/checkbox.phtml
index 4bd0d83f62732294b9b303e0ee7bece409aedc67..75bf67473ecfe2f1d90832ff6165f1cdb0036e82 100644
--- a/themes/bootstrap3/templates/admin/tags/checkbox.phtml
+++ b/themes/bootstrap3/templates/admin/tags/checkbox.phtml
@@ -1,4 +1,6 @@
-<label for="<?=$this->prefix?>checkbox_<?=$this->tag['id']?>" class="checkbox">
-  <input id="<?=$this->prefix?>checkbox_<?=$this->tag['id']?>" type="checkbox" name="ids[]" value="<?=$this->escapeHtmlAttr($this->tag['id'])?>" class="checkbox_ui"/>
-  <input type="hidden" name="idsAll[]" value="<?=$this->escapeHtmlAttr($this->tag['id'])?>" />
-</label>
\ No newline at end of file
+<div class="checkbox">
+  <label for="<?=$this->prefix?>checkbox_<?=$this->tag['id']?>">
+    <input id="<?=$this->prefix?>checkbox_<?=$this->tag['id']?>" type="checkbox" name="ids[]" value="<?=$this->escapeHtmlAttr($this->tag['id'])?>" class="checkbox_ui"/>
+    <input type="hidden" name="idsAll[]" value="<?=$this->escapeHtmlAttr($this->tag['id'])?>" />
+  </label>
+</div>
\ No newline at end of file
diff --git a/themes/bootstrap3/templates/alphabrowse/home.phtml b/themes/bootstrap3/templates/alphabrowse/home.phtml
index fedf4f382562ea7bf8da7ccbdda7a9a505f3a334..d472b2c773cb5fe47dad6dd7d0d7f24af0140d72 100644
--- a/themes/bootstrap3/templates/alphabrowse/home.phtml
+++ b/themes/bootstrap3/templates/alphabrowse/home.phtml
@@ -22,91 +22,87 @@
 <? $pageLinks = ob_get_contents(); ?>
 <? ob_end_clean(); ?>
 
-<div class="<?=$this->layoutClass('mainbody')?>">
-  <div>
-    <form class="form-inline" method="get" action="<?=$this->url('alphabrowse-home')?>" name="alphaBrowseForm" id="alphaBrowseForm">
-      <label for="alphaBrowseForm_source"><?=$this->transEsc('Browse Alphabetically') ?></label>
-      <select id="alphaBrowseForm_source" name="source" class="form-control">
-        <? foreach ($this->alphaBrowseTypes as $key => $item): ?>
-          <option value="<?=$this->escapeHtmlAttr($key) ?>"<? if ($this->source == $key): ?> selected="selected"<? endif; ?>><?=$this->transEsc($item) ?></option>
-        <? endforeach; ?>
-      </select>
-      <label for="alphaBrowseForm_from"><?=$this->transEsc('starting from') ?></label>
-      <input type="text" name="from" id="alphaBrowseForm_from" value="<?=$this->escapeHtmlAttr($this->from) ?>" class="form-control"/>
-      <input class="btn btn-default" type="submit" value="<?=$this->transEsc('Browse') ?>"/>
-    </form>
-  </div>
+<form class="form-inline" method="get" action="<?=$this->url('alphabrowse-home')?>" name="alphaBrowseForm" id="alphaBrowseForm">
+  <label for="alphaBrowseForm_source"><?=$this->transEsc('Browse Alphabetically') ?></label>
+  <select id="alphaBrowseForm_source" name="source" class="form-control">
+    <? foreach ($this->alphaBrowseTypes as $key => $item): ?>
+      <option value="<?=$this->escapeHtmlAttr($key) ?>"<? if ($this->source == $key): ?> selected="selected"<? endif; ?>><?=$this->transEsc($item) ?></option>
+    <? endforeach; ?>
+  </select>
+  <label for="alphaBrowseForm_from"><?=$this->transEsc('starting from') ?></label>
+  <input type="text" name="from" id="alphaBrowseForm_from" value="<?=$this->escapeHtmlAttr($this->from) ?>" class="form-control"/>
+  <input class="btn btn-default" type="submit" value="<?=$this->transEsc('Browse') ?>"/>
+</form>
 
-  <? if ($this->result): ?>
-    <?=$pageLinks ?>
-    <table class="table table-striped">
-      <tr><td></td><th><?=$this->transEsc("alphabrowse_matches") ?></th></tr>
-      <? foreach ($this->result['Browse']['items'] as $i => $item): ?>
-      <tr>
-        <td>
-          <? if ($item['count'] > 0): ?>
-            <?/* linking using bib ids is generally more reliable than
-              doing searches for headings, but headings give shorter
-              queries and don't look as strange. */?>
-            <? if ($item['count'] < 5): ?>
-              <? $query = array('type' => 'ids', 'lookfor' => implode(' ', $item['ids'])); ?>
-            <? else: ?>
-              <? $query = array('type' => ucwords($this->source) . 'Browse', 'lookfor' => '"' . addcslashes($item['heading'], '"') . '"'); ?>
-            <? endif; ?>
-            <a class="col-sm-6" href="<?=$this->escapeHtmlAttr($this->url('search-results', array(), array('query' => $query)))?>"><?=$this->escapeHtml($item['heading'])?></a>
+<? if ($this->result): ?>
+  <?=$pageLinks ?>
+  <table class="table table-striped">
+    <tr><td></td><th><?=$this->transEsc("alphabrowse_matches") ?></th></tr>
+    <? foreach ($this->result['Browse']['items'] as $i => $item): ?>
+    <tr>
+      <td>
+        <? if ($item['count'] > 0): ?>
+          <?/* linking using bib ids is generally more reliable than
+            doing searches for headings, but headings give shorter
+            queries and don't look as strange. */?>
+          <? if ($item['count'] < 5): ?>
+            <? $query = array('type' => 'ids', 'lookfor' => implode(' ', $item['ids'])); ?>
           <? else: ?>
-            <span class="col-sm-6"><?=$this->escapeHtml($item['heading'])?></span>
+            <? $query = array('type' => ucwords($this->source) . 'Browse', 'lookfor' => '"' . addcslashes($item['heading'], '"') . '"'); ?>
           <? endif; ?>
+          <a class="col-sm-6" href="<?=$this->escapeHtmlAttr($this->url('search-results', array(), array('query' => $query)))?>"><?=$this->escapeHtml($item['heading'])?></a>
+        <? else: ?>
+          <span class="col-sm-6"><?=$this->escapeHtml($item['heading'])?></span>
+        <? endif; ?>
 
-          <?
-            foreach ($this->extras as $ei => $extraName):
-              $extraData = $item['extras'][$extraName];
-          ?>
-            <div class="col-sm-<?=floor(6/count($this->extras)) ?>">
-              <?
-                $extraDisplayArray = array();
-                foreach ($extraData as $j => $e) {
-                  $extraDisplayArray = array_unique(array_merge($extraDisplayArray, $e));
-                }
-                echo (empty($extraDisplayArray)) ? '&nbsp;' : implode('<br />', $extraDisplayArray);
-              ?>
-            </div>
-          <? endforeach; ?>
-          <div class="clearfix"></div>
-          <? if (count($item['useInstead']) > 0): ?>
-            <div>
-              <?=$this->transEsc('Use instead') ?>:
-              <ul>
-                <? foreach ($item['useInstead'] as $heading): ?>
-                <li><a href="<?=$this->escapeHtmlAttr($this->url('alphabrowse-home', array(), array('query' => array('from' => $heading) + $baseQuery)))?>"><?=$this->escapeHtml($heading)?></a></li>
-                <? endforeach; ?>
-              </ul>
-            </div>
-          <? endif; ?>
+        <?
+          foreach ($this->extras as $ei => $extraName):
+            $extraData = $item['extras'][$extraName];
+        ?>
+          <div class="col-sm-<?=floor(6/count($this->extras)) ?>">
+            <?
+              $extraDisplayArray = array();
+              foreach ($extraData as $j => $e) {
+                $extraDisplayArray = array_unique(array_merge($extraDisplayArray, $e));
+              }
+              echo (empty($extraDisplayArray)) ? '&nbsp;' : implode('<br />', $extraDisplayArray);
+            ?>
+          </div>
+        <? endforeach; ?>
+        <div class="clearfix"></div>
+        <? if (count($item['useInstead']) > 0): ?>
+          <div>
+            <?=$this->transEsc('Use instead') ?>:
+            <ul>
+              <? foreach ($item['useInstead'] as $heading): ?>
+              <li><a href="<?=$this->escapeHtmlAttr($this->url('alphabrowse-home', array(), array('query' => array('from' => $heading) + $baseQuery)))?>"><?=$this->escapeHtml($heading)?></a></li>
+              <? endforeach; ?>
+            </ul>
+          </div>
+        <? endif; ?>
 
-          <? if (count($item['seeAlso']) > 0): ?>
-            <div>
-              <?=$this->transEsc('See also') ?>:
-              <ul>
-                <? foreach ($item['seeAlso'] as $heading): ?>
-                <li><a href="<?=$this->escapeHtmlAttr($this->url('alphabrowse-home', array(), array('query' => array('from' => $heading) + $baseQuery)))?>"><?=$this->escapeHtml($heading)?></a></li>
-                <? endforeach; ?>
-              </ul>
-            </div>
-          <? endif; ?>
+        <? if (count($item['seeAlso']) > 0): ?>
+          <div>
+            <?=$this->transEsc('See also') ?>:
+            <ul>
+              <? foreach ($item['seeAlso'] as $heading): ?>
+              <li><a href="<?=$this->escapeHtmlAttr($this->url('alphabrowse-home', array(), array('query' => array('from' => $heading) + $baseQuery)))?>"><?=$this->escapeHtml($heading)?></a></li>
+              <? endforeach; ?>
+            </ul>
+          </div>
+        <? endif; ?>
 
-          <? if ($item['note']): ?>
-            <div>
-              <?=$this->transEsc('Note') ?>:
-              <ul>
-                <li><?=$this->escapeHtml($item['note'])?></li>
-              </ul>
-            </div>
-          <? endif; ?>
-        </td>
-        <td><? if ($item['count'] > 0): echo $item['count']; endif; ?></td>
-      <? endforeach; ?>
-    </table>
-    <?= $pageLinks ?>
-  <? endif; ?>
-</div>
+        <? if ($item['note']): ?>
+          <div>
+            <?=$this->transEsc('Note') ?>:
+            <ul>
+              <li><?=$this->escapeHtml($item['note'])?></li>
+            </ul>
+          </div>
+        <? endif; ?>
+      </td>
+      <td><? if ($item['count'] > 0): echo $item['count']; endif; ?></td>
+    <? endforeach; ?>
+  </table>
+  <?= $pageLinks ?>
+<? endif; ?>
diff --git a/themes/bootstrap3/templates/browse/home.phtml b/themes/bootstrap3/templates/browse/home.phtml
index 5842142bfc0143625fde058682327768e0914b57..a66373cd281fc5e4c96ceb71e9d55080468a4e07 100644
--- a/themes/bootstrap3/templates/browse/home.phtml
+++ b/themes/bootstrap3/templates/browse/home.phtml
@@ -10,71 +10,73 @@
   <h2><?=$this->transEsc('Choose a Category to Begin Browsing') ?>:</h2>
 <? endif; ?>
 
-<ul class="browse list-group col-sm-3<? if (!empty($this->categoryList)): ?> hidden-xs<? endif ?>" id="list1">
-<? foreach ($this->browseOptions as $item=>$currentOption): ?>
-  <a href="<?=$this->url('browse-' . strtolower($currentOption['action'])); ?>" class="list-group-item<? if($currentOption['action'] == $this->currentAction): ?> active<? endif; ?>">
-    <?=$this->transEsc($currentOption['description']) ?>
-    <span class="pull-right"><i class="fa fa-angle-right"></i></span>
-  </a>
-<? endforeach; ?>
-</ul>
-
-<? if (!empty($this->categoryList)): ?>
-  <ul class="browse list-group col-sm-3<? if (!empty($this->secondaryList) || !empty($this->resultList)): ?> hidden-xs<? endif ?>" id="list2">
-    <? foreach($this->categoryList as $findby=>$category): ?>
-      <a href="<?=$BROWSE_BASE ?>?findby=<?=urlencode($findby) ?>&query_field=<?=$this->browse()->getSolrField($findby, $this->currentAction) ?>" class="list-group-item clearfix<? if ($this->findby == $findby): ?> active<? endif; ?>">
-        <? if(is_string($category)): ?>
-          <?=$this->transEsc($category)?>
-          <span class="pull-right"><i class="fa fa-angle-right"></i></span>
-        <? else: ?>
-          <?=$this->transEsc($category['text'])?>
-          <span class="badge"><?=number_format($category['count'])?></span>
-        <? endif; ?>
-      </a>
-    <? endforeach; ?>
+<div class="row">
+  <ul class="browse list-group col-sm-3<? if (!empty($this->categoryList)): ?> hidden-xs<? endif ?>" id="list1">
+  <? foreach ($this->browseOptions as $item=>$currentOption): ?>
+    <a href="<?=$this->url('browse-' . strtolower($currentOption['action'])); ?>" class="list-group-item<? if($currentOption['action'] == $this->currentAction): ?> active<? endif; ?>">
+      <?=$this->transEsc($currentOption['description']) ?>
+      <span class="pull-right"><i class="fa fa-angle-right"></i></span>
+    </a>
+  <? endforeach; ?>
   </ul>
-<? endif; ?>
 
-<? if (!empty($this->secondaryList)): ?>
-  <ul class="browse list-group col-sm-3<? if (!empty($this->resultList)): ?> hidden-xs<? endif ?>" id="list3">
-  <? foreach($this->secondaryList as $secondary): ?>
-    <? $url = $BROWSE_BASE . '?findby=' . urlencode($this->findby)
-        . '&category=' . urlencode($this->category)
-        . '&query=' . urlencode($secondary['value']);
-      if ($this->facetPrefix) {
-        $url .= '&facet_prefix=' . urlencode($secondary['displayText']);
-      }
-      if ($this->secondaryParams) {
-        foreach($this->secondaryParams as $var=>$val) {
-          $url .= '&' . $var .'=' . urlencode($val);
+  <? if (!empty($this->categoryList)): ?>
+    <ul class="browse list-group col-sm-3<? if (!empty($this->secondaryList) || !empty($this->resultList)): ?> hidden-xs<? endif ?>" id="list2">
+      <? foreach($this->categoryList as $findby=>$category): ?>
+        <a href="<?=$BROWSE_BASE ?>?findby=<?=urlencode($findby) ?>&query_field=<?=$this->browse()->getSolrField($findby, $this->currentAction) ?>" class="list-group-item clearfix<? if ($this->findby == $findby): ?> active<? endif; ?>">
+          <? if(is_string($category)): ?>
+            <?=$this->transEsc($category)?>
+            <span class="pull-right"><i class="fa fa-angle-right"></i></span>
+          <? else: ?>
+            <?=$this->transEsc($category['text'])?>
+            <span class="badge"><?=number_format($category['count'])?></span>
+          <? endif; ?>
+        </a>
+      <? endforeach; ?>
+    </ul>
+  <? endif; ?>
+
+  <? if (!empty($this->secondaryList)): ?>
+    <ul class="browse list-group col-sm-3<? if (!empty($this->resultList)): ?> hidden-xs<? endif ?>" id="list3">
+    <? foreach($this->secondaryList as $secondary): ?>
+      <? $url = $BROWSE_BASE . '?findby=' . urlencode($this->findby)
+          . '&category=' . urlencode($this->category)
+          . '&query=' . urlencode($secondary['value']);
+        if ($this->facetPrefix) {
+          $url .= '&facet_prefix=' . urlencode($secondary['displayText']);
+        }
+        if ($this->secondaryParams) {
+          foreach($this->secondaryParams as $var=>$val) {
+            $url .= '&' . $var .'=' . urlencode($val);
+          }
         }
-      }
-      $viewRecord = !empty($this->categoryList) && $this->currentAction != 'Tag' && $this->findby != 'alphabetical';
-    ?>
-    <a href="<?=$url ?>" class="list-group-item clearfix<? if ($this->query == $secondary['value'].'' || $this->query == $secondary['value'].'*'): ?> active<? endif; ?>">
-      <?=$this->escapeHtml($secondary['displayText']) ?> <i class="fa fa-angle-right"></i>
-      <? if ($this->findby != 'alphabetical'): ?>
-        <span class="badge"><?=number_format($secondary['count']) ?></span>
+        $viewRecord = !empty($this->categoryList) && $this->currentAction != 'Tag' && $this->findby != 'alphabetical';
+      ?>
+      <a href="<?=$url ?>" class="list-group-item clearfix<? if ($this->query == $secondary['value'].'' || $this->query == $secondary['value'].'*'): ?> active<? endif; ?>">
+        <?=$this->escapeHtml($secondary['displayText']) ?> <i class="fa fa-angle-right"></i>
+        <? if ($this->findby != 'alphabetical'): ?>
+          <span class="badge"><?=number_format($secondary['count']) ?></span>
+        <? endif; ?>
+      </a>
+      <? if($viewRecord): ?>
+        <a class="list-group-item view-record" href="<?=$SEARCH_BASE ?>?lookfor=<? if ($this->filter): ?>&filter[]=<?=urlencode($this->filter) ?>%3A<?=str_replace('+AND+','&filter[]=', urlencode($secondary['value'])) ?><? endif; ?>&filter[]=<?=$this->browse()->getSolrField($this->currentAction) ?>%3A[* TO *]"><?=$this->transEsc('View Records') ?></a>
       <? endif; ?>
-    </a>
-    <? if($viewRecord): ?>
-      <a class="list-group-item view-record" href="<?=$SEARCH_BASE ?>?lookfor=<? if ($this->filter): ?>&filter[]=<?=urlencode($this->filter) ?>%3A<?=str_replace('+AND+','&filter[]=', urlencode($secondary['value'])) ?><? endif; ?>&filter[]=<?=$this->browse()->getSolrField($this->currentAction) ?>%3A[* TO *]"><?=$this->transEsc('View Records') ?></a>
-    <? endif; ?>
-  <? endforeach; ?>
-  </ul>
-<? endif; ?>
+    <? endforeach; ?>
+    </ul>
+  <? endif; ?>
 
-<? if (!empty($this->resultList)): ?>
-  <ul class="browse list-group col-sm-3" id="list4">
-  <? foreach($this->resultList as $result): ?>
-    <a class="list-group-item clearfix" href="<?=$SEARCH_BASE ?>?<?=$this->paramTitle ?><?=urlencode($result['result']) ?><? if ($this->searchParams): foreach($this->searchParams as $var=>$val): ?>&<?=$var ?>=<?=urlencode($val) ?><? endforeach;endif; ?>">
-      <?=$this->escapeHtml($result['result'])?>
-      <span class="badge"><?=number_format($result['count']) ?></span>
-    </a>
-  <? endforeach; ?>
-  </ul>
-<? elseif (isset($this->query)): ?>
-  <ul class="browse list-group col-sm-3" id="list4">
-    <li class="list-group-item"><?=$this->transEsc('nohit_heading') ?></li>
-  </ul>
-<? endif; ?>
+  <? if (!empty($this->resultList)): ?>
+    <ul class="browse list-group col-sm-3" id="list4">
+    <? foreach($this->resultList as $result): ?>
+      <a class="list-group-item clearfix" href="<?=$SEARCH_BASE ?>?<?=$this->paramTitle ?><?=urlencode($result['result']) ?><? if ($this->searchParams): foreach($this->searchParams as $var=>$val): ?>&<?=$var ?>=<?=urlencode($val) ?><? endforeach;endif; ?>">
+        <?=$this->escapeHtml($result['result'])?>
+        <span class="badge"><?=number_format($result['count']) ?></span>
+      </a>
+    <? endforeach; ?>
+    </ul>
+  <? elseif (isset($this->query)): ?>
+    <ul class="browse list-group col-sm-3" id="list4">
+      <li class="list-group-item"><?=$this->transEsc('nohit_heading') ?></li>
+    </ul>
+  <? endif; ?>
+</div>
diff --git a/themes/bootstrap3/templates/cart/cart.phtml b/themes/bootstrap3/templates/cart/cart.phtml
index f7e3db42c4a1b95a1962fa2828b72ea22a4bdc81..09dbfe6e597ae00e857a605e6ef76b241ff55479 100644
--- a/themes/bootstrap3/templates/cart/cart.phtml
+++ b/themes/bootstrap3/templates/cart/cart.phtml
@@ -9,10 +9,12 @@
 <?=$this->flashmessages()?>
 <form class="form-inline" action="<?=$this->url('cart-home')?>" method="post"  name="cartForm">
   <? if (!$this->cart()->isEmpty()): ?>
-    <label class="checkbox">
-      <input type="checkbox" name="selectAll" class="checkbox-select-all"/> <?=$this->transEsc('select_page')?>
-        | <?=$this->transEsc('with_selected')?>:
-    </label>
+    <div class="checkbox">
+      <label>
+        <input type="checkbox" name="selectAll" class="checkbox-select-all"/> <?=$this->transEsc('select_page')?>
+          | <?=$this->transEsc('with_selected')?>:
+      </label>
+    </div>
     <? if ($this->userlist()->getMode() !== 'disabled'): ?>
       <input class="btn btn-default" type="submit" name="saveCart" value="<?=$this->transEsc('bookbag_save_selected')?>" title="<?=$this->transEsc('bookbag_save')?>"/>
     <? endif; ?>
diff --git a/themes/bootstrap3/templates/cart/contents.phtml b/themes/bootstrap3/templates/cart/contents.phtml
index b561819f745e17f45fd9d33cadba1b3485ce1c3d..b339ab9087914390f15df4d2d88e1cf6dde0b0c2 100644
--- a/themes/bootstrap3/templates/cart/contents.phtml
+++ b/themes/bootstrap3/templates/cart/contents.phtml
@@ -3,10 +3,12 @@
   <ul class="list-unstyled">
   <? foreach ($records as $i => $record): ?>
     <li>
-      <label class="checkbox">
-        <?=$this->record($record)->getCheckbox('cart')?>
-        <a title="<?=$this->transEsc('View Record')?>" href="<?=$this->recordLink()->getUrl($record)?>"><?=$this->escapeHtml($record->getBreadcrumb())?></a>
-      </label>
+      <div class="checkbox">
+        <label>
+          <?=$this->record($record)->getCheckbox('cart')?>
+          <a title="<?=$this->transEsc('View Record')?>" href="<?=$this->recordLink()->getUrl($record)?>"><?=$this->escapeHtml($record->getBreadcrumb())?></a>
+        </label>
+      </div>
     </li>
   <? endforeach; ?>
   </ul>
diff --git a/themes/bootstrap3/templates/combined/results-list.phtml b/themes/bootstrap3/templates/combined/results-list.phtml
index b3674ed737429bed028cce5f262c9342f5f61af8..85712c53c6a9e9c91174eb563515c48971c78e6a 100644
--- a/themes/bootstrap3/templates/combined/results-list.phtml
+++ b/themes/bootstrap3/templates/combined/results-list.phtml
@@ -73,6 +73,6 @@
   ?>
   <?=$this->render('search/list-' . $viewType . '.phtml', $viewParams)?>
   <? if ($currentSearch['more_link']): ?>
-    <p class="pad text-right"><a href="<?=$moreUrl?>"><?=$this->transEsc($currentSearch['more_link'])?> <i class="fa fa-long-arrow-right"></i></a></p>
+    <p><a href="<?=$moreUrl?>"><?=$this->transEsc($currentSearch['more_link'])?> <i class="fa fa-long-arrow-right"></i></a></p>
   <? endif; ?>
 <? endif; ?>
diff --git a/themes/bootstrap3/templates/primo/advanced.phtml b/themes/bootstrap3/templates/primo/advanced.phtml
index 7a164aa85f1cba460672416616444659ff5fc4fe..379e72770ce89518aa790e01f1c44161f90ec73e 100644
--- a/themes/bootstrap3/templates/primo/advanced.phtml
+++ b/themes/bootstrap3/templates/primo/advanced.phtml
@@ -25,31 +25,31 @@
 ?>
 <form id="advSearchForm" name="searchForm"  method="get" action="<?=$this->url($this->options->getSearchAction())?>" class="form-horizontal">
   <input type="hidden" name="join" value="AND" />
-  <div class="<?=$this->layoutClass('mainbody')?>">
-    <h3><?=$this->transEsc('Advanced Search')?></h3>
-    <? /* fallback to a fixed set of search groups/fields if JavaScript is turned off */ ?>
-    <? if ($groups !== false) {
-           $numGroups = count($groups);
-       }
-       if (!isset($numGroups) || $numGroups < 3) {
-           $numGroups = 1;
-       }
-    ?>
-    <div class="row">
+  <div class="row">
+    <div class="<?=$this->layoutClass('mainbody')?>">
+      <h3><?=$this->transEsc('Advanced Search')?></h3>
+      <? /* fallback to a fixed set of search groups/fields if JavaScript is turned off */ ?>
+      <? if ($groups !== false) {
+          $numGroups = count($groups);
+        }
+        if (!isset($numGroups) || $numGroups < 3) {
+          $numGroups = 1;
+        }
+      ?>
       <? for ($i = 0; $i < $numGroups; $i++): ?>
         <input type="hidden" name="bool<?=$i?>[]" value="AND" />
-        <div class="group well clearfix" id="group<?=$i?>">
+        <div class="group well row" id="group<?=$i?>">
           <div class="col-sm-2" id="group<?=$i?>SearchHolder"><label><?=$this->transEsc("adv_search_label")?>:</label></div>
           <div class="col-sm-10">
             <?
               if (isset($groups[$i])) {
-                  $currentGroup = $groups[$i]->getQueries();
-                  $numRows = count($currentGroup);
+                $currentGroup = $groups[$i]->getQueries();
+                $numRows = count($currentGroup);
               } else {
-                  $currentGroup = false;
+                $currentGroup = false;
               }
               if (!isset($numRows) || $numRows < 3) {
-                  $numRows = 3;
+                $numRows = 3;
               }
             ?>
             <? for ($j = 0; $j < $numRows; $j++): ?>
@@ -77,33 +77,46 @@
           </div>
         </div>
       <? endfor; ?>
+      <? $lastSort = $this->options->getLastSort(); ?>
+      <? if (!empty($lastSort)): ?>
+        <input type="hidden" name="sort" value="<?=$this->escapeHtmlAttr($lastSort)?>" />
+      <? endif; ?>
+      <input type="submit" class="btn btn-primary" name="submit" value="<?=$this->transEsc("Find")?>"/>
     </div>
-    <? $lastSort = $this->options->getLastSort(); ?>
-    <? if (!empty($lastSort)): ?>
-      <input type="hidden" name="sort" value="<?=$this->escapeHtmlAttr($lastSort)?>" />
-    <? endif; ?>
-    <input type="submit" class="btn btn-primary" name="submit" value="<?=$this->transEsc("Find")?>"/>
-  </div>
 
-  <div class="<?=$this->layoutClass('sidebar')?>">
-    <? if ($hasDefaultsApplied): ?>
-      <input type="hidden" name="dfApplied" value="1" />
-    <? endif ?>
-    <? if (!empty($searchFilters)): ?>
-      <h4><?=$this->transEsc("adv_search_filters")?></h4>
-      <ul class="list-group">
-        <li class="list-group-item"><label class="checkbox"><?=$this->transEsc("adv_search_select_all")?> <input type="checkbox" checked="checked" class="checkbox-select-all" /></label></li>
-      </ul>
-      <? foreach ($searchFilters as $field => $data): ?>
-        <div>
-          <ul class="list-group">
-            <li class="list-group-item title"><?=$this->transEsc($field)?></li>
-            <? foreach ($data as $value): ?>
-              <li class="list-group-item"><label class="checkbox"><input type="checkbox" class="checkbox-select-item" checked="checked" name="filter[]" value='<?=$this->escapeHtmlAttr($value['field'])?>:"<?=$this->escapeHtmlAttr($value['value'])?>"' /> <?=$this->escapeHtml($value['displayText'])?></label></li>
-            <? endforeach; ?>
-          </ul>
-        </div>
-      <? endforeach; ?>
-    <? endif; ?>
+    <div class="<?=$this->layoutClass('sidebar')?>">
+      <? if ($hasDefaultsApplied): ?>
+        <input type="hidden" name="dfApplied" value="1" />
+      <? endif ?>
+      <? if (!empty($searchFilters)): ?>
+        <h4><?=$this->transEsc("adv_search_filters")?></h4>
+        <ul class="list-group">
+          <li class="list-group-item">
+            <div class="checkbox">
+              <label>
+                <?=$this->transEsc("adv_search_select_all")?>
+                <input type="checkbox" checked="checked" class="checkbox-select-all" />
+              </label>
+            </div>
+          </li>
+        </ul>
+        <? foreach ($searchFilters as $field => $data): ?>
+          <div>
+            <ul class="list-group">
+              <li class="list-group-item title"><?=$this->transEsc($field)?></li>
+              <? foreach ($data as $value): ?>
+                <li class="list-group-item">
+                  <div class="checkbox">
+                    <label>
+                      <input type="checkbox" class="checkbox-select-item" checked="checked" name="filter[]" value='<?=$this->escapeHtmlAttr($value['field'])?>:"<?=$this->escapeHtmlAttr($value['value'])?>"' /> <?=$this->escapeHtml($value['displayText'])?>
+                    </label>
+                  </div>
+                </li>
+              <? endforeach; ?>
+            </ul>
+          </div>
+        <? endforeach; ?>
+      <? endif; ?>
+    </div>
   </div>
 </form>
diff --git a/themes/bootstrap3/templates/record/email.phtml b/themes/bootstrap3/templates/record/email.phtml
index 894894b6bf2251952b8b0512b0f83a467174a0d1..6a33ffbd5ab8e93aa3baff8c9e41c2a8f9e9367b 100644
--- a/themes/bootstrap3/templates/record/email.phtml
+++ b/themes/bootstrap3/templates/record/email.phtml
@@ -26,9 +26,11 @@
     </div>
     <div class="form-group">
       <div class="col-sm-9 col-sm-offset-3">
-        <label class="checkbox">
-          <input type="checkbox" name="ccself"/> <?=$this->translate('send_an_email_copy'); ?>
-        </label>
+        <div class="checkbox">
+          <label>
+            <input type="checkbox" name="ccself"/> <?=$this->translate('send_an_email_copy'); ?>
+          </label>
+        </div>
       </div>
     </div>
   <? endif; ?>
@@ -41,9 +43,11 @@
   <? if ($this->disableFrom && $this->userEmailInFrom): ?>
     <div class="form-group">
       <div class="col-sm-9 col-sm-offset-3">
-        <label class="checkbox">
-          <input type="checkbox" name="ccself"/> <?=$this->translate('send_email_copy_to_me'); ?>
-        </label>
+        <div class="checkbox">
+          <label>
+            <input type="checkbox" name="ccself"/> <?=$this->translate('send_email_copy_to_me'); ?>
+          </label>
+        </div>
       </div>
     </div>
   <? endif ?>
diff --git a/themes/bootstrap3/templates/record/storageretrievalrequest.phtml b/themes/bootstrap3/templates/record/storageretrievalrequest.phtml
index d08a0d089c84cbbae48c9a44ea2b39f63905bd53..d8c88ef2ceb1896210c35eb5b00fe43440016d3e 100644
--- a/themes/bootstrap3/templates/record/storageretrievalrequest.phtml
+++ b/themes/bootstrap3/templates/record/storageretrievalrequest.phtml
@@ -18,15 +18,19 @@
     <? if (in_array("item-issue", $this->extraFields)): ?>
       <div class="form-group">
         <div class="col-sm-3 controls">
-          <label class="radio">
-            <input type="radio" id="storageRetrievalRequestItem" name="gatheredDetails[level]" value="copy"<?=!isset($this->gatheredDetails['level']) || $this->gatheredDetails['level'] != 'title' ? ' checked="checked"' : ''?>>
-            <?=$this->transEsc('storage_retrieval_request_selected_item')?>
-          </label>
+          <div class="radio">
+            <label>
+              <input type="radio" id="storageRetrievalRequestItem" name="gatheredDetails[level]" value="copy"<?=!isset($this->gatheredDetails['level']) || $this->gatheredDetails['level'] != 'title' ? ' checked="checked"' : ''?>>
+              <?=$this->transEsc('storage_retrieval_request_selected_item')?>
+            </label>
+          </div>
 
-          <label class="radio">
-            <input type="radio" id="storageRetrievalRequestTitle" name="gatheredDetails[level]" value="title"<?=isset($this->gatheredDetails['level']) && $this->gatheredDetails['level'] == 'title' ? ' checked="checked"' : ''?>>
-            <?=$this->transEsc('storage_retrieval_request_reference')?>
-          </label>
+          <div class="radio">
+            <label>
+              <input type="radio" id="storageRetrievalRequestTitle" name="gatheredDetails[level]" value="title"<?=isset($this->gatheredDetails['level']) && $this->gatheredDetails['level'] == 'title' ? ' checked="checked"' : ''?>>
+              <?=$this->transEsc('storage_retrieval_request_reference')?>
+            </label>
+          </div>
         </div>
         <div id="storageRetrievalRequestReference" class="storageRetrievalRequestReference">
           <label class="col-sm-3 control-label"><?=$this->transEsc('storage_retrieval_request_volume')?>:</label>
diff --git a/themes/bootstrap3/templates/search/advanced/checkbox-filters.phtml b/themes/bootstrap3/templates/search/advanced/checkbox-filters.phtml
index 5cd4cbe30e9db3f53cd0369460183576744d2404..1af8c77a7bc1a5066a29ce5f1887c049f47dc59c 100644
--- a/themes/bootstrap3/templates/search/advanced/checkbox-filters.phtml
+++ b/themes/bootstrap3/templates/search/advanced/checkbox-filters.phtml
@@ -1,10 +1,12 @@
 <? if (isset($this->checkboxFacets) && count($this->checkboxFacets) > 0): ?>
   <fieldset class="checkboxFilter">
     <? foreach ($this->checkboxFacets as $current): ?>
-      <label class="checkbox">
-        <input type="checkbox" name="filter[]" value="<?=$this->escapeHtmlAttr($current['filter'])?>" id="<?=$this->escapeHtmlAttr(str_replace(' ', '', $current['desc']))?>"<? if ($current['selected']): ?> checked="checked"<? endif; ?>/>
-        <?=$this->transEsc($current['desc'])?>
-      </label>
+      <div class="checkbox">
+        <label>
+          <input type="checkbox" name="filter[]" value="<?=$this->escapeHtmlAttr($current['filter'])?>" id="<?=$this->escapeHtmlAttr(str_replace(' ', '', $current['desc']))?>"<? if ($current['selected']): ?> checked="checked"<? endif; ?>/>
+          <?=$this->transEsc($current['desc'])?>
+        </label>
+      </div>
     <? endforeach; ?>
   </fieldset>
 <?endif;?>
\ No newline at end of file
diff --git a/themes/bootstrap3/templates/search/advanced/eds.phtml b/themes/bootstrap3/templates/search/advanced/eds.phtml
index 758c7b607f55bc0b8864f8a3541f06051e279837..b2f0f2c340af216eaf872541576cf8ec0b5dd95d 100644
--- a/themes/bootstrap3/templates/search/advanced/eds.phtml
+++ b/themes/bootstrap3/templates/search/advanced/eds.phtml
@@ -4,10 +4,12 @@
       <legend><?=$this->transEsc('eds_modes_and_expanders')?></legend>
       <? foreach ($this->expanderList as $field => $expander):
         $value = $expander['Value'] ?>
-        <label class="checkbox" for="expand_<?=$this->escapeHtmlAttr(str_replace(' ', '+', $field))?>">
-          <input id="expand_<?=$this->escapeHtmlAttr(str_replace(' ', '+', $field))?>" type="checkbox" <?=(isset($expander['selected']) && $expander['selected'])?'checked="checked"':''?> name="filter[]" value="EXPAND:<?=$this->escapeHtmlAttr($value)?>">
-          <?=$this->transEsc('eds_expander_' . $value, array(), $expander['Label'])?>
-        </label>
+        <div class="checkbox">
+          <label for="expand_<?=$this->escapeHtmlAttr(str_replace(' ', '+', $field))?>">
+            <input id="expand_<?=$this->escapeHtmlAttr(str_replace(' ', '+', $field))?>" type="checkbox" <?=(isset($expander['selected']) && $expander['selected'])?'checked="checked"':''?> name="filter[]" value="EXPAND:<?=$this->escapeHtmlAttr($value)?>">
+            <?=$this->transEsc('eds_expander_' . $value, array(), $expander['Label'])?>
+          </label>
+        </div>
       <? endforeach; ?>
 
       <label class="displayBlock" for="searchModes"><?=$this->transEsc('Search Mode')?></label>
@@ -39,10 +41,12 @@
               <? break;
             case 'select':
               $value = $facet['LimiterValues'][0]['Value'] ?>
-              <label class="checkbox" for="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '+', $field))?>">
-                <input id="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '+', $field))?>" type="checkbox" <?=(isset($facet['LimiterValues'][0]['selected']) && $facet['LimiterValues'][0]['selected'])?'checked="checked"':''?> name="filter[]" value="<?=$this->escapeHtmlAttr('LIMIT|'.$field . ':' . $value)?>">
-                <?=$this->transEsc('eds_limiter_' . $field, array(), $facet['Label'])?>
-              </label>
+              <div class="checkbox">
+                <label for="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '+', $field))?>">
+                  <input id="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '+', $field))?>" type="checkbox" <?=(isset($facet['LimiterValues'][0]['selected']) && $facet['LimiterValues'][0]['selected'])?'checked="checked"':''?> name="filter[]" value="<?=$this->escapeHtmlAttr('LIMIT|'.$field . ':' . $value)?>">
+                  <?=$this->transEsc('eds_limiter_' . $field, array(), $facet['Label'])?>
+                </label>
+              </div>
               <? break;
             case 'text': ?>
               <!-- not implemented -->
diff --git a/themes/bootstrap3/templates/search/advanced/layout.phtml b/themes/bootstrap3/templates/search/advanced/layout.phtml
index 588f2d109ddb872eee9ec0b5d93f4c1a6c375d01..491b65c1c32c6fcb5c4fa797cb0858c23916e141 100644
--- a/themes/bootstrap3/templates/search/advanced/layout.phtml
+++ b/themes/bootstrap3/templates/search/advanced/layout.phtml
@@ -42,52 +42,54 @@
 
 <?=$this->flashmessages()?>
 <form role="search" name="searchForm" id="advSearchForm" method="get" action="<?=$this->url($this->options->getSearchAction())?>">
-  <div class="<?=$this->layoutClass('mainbody')?>">
-    <input type="hidden" name="sort" value="relevance">
-    <div class="clearfix">
-      <p class="lead pull-left"><?=$this->transEsc('Advanced Search')?></p>
-      <div id="groupJoin" class="form-inline pull-right hidden">
-        <label for="join"><?=$this->transEsc("search_match")?>:</label>
-        <select id="search_bool0" name="join" class="form-control">
-          <option value="AND"<? if($searchDetails && $searchDetails->getOperator()=='ALL'):?> selected<?endif?>><?= $this->transEsc('group_AND') ?></option>
-          <option value="OR"<? if($searchDetails && $searchDetails->getOperator()=='OR'):?> selected<?endif?>><?= $this->transEsc('group_OR') ?></option>
-        </select>
+  <div class="row">
+    <div class="<?=$this->layoutClass('mainbody')?>">
+      <input type="hidden" name="sort" value="relevance">
+      <div class="clearfix">
+        <p class="lead pull-left"><?=$this->transEsc('Advanced Search')?></p>
+        <div id="groupJoin" class="form-inline pull-right hidden">
+          <label for="join"><?=$this->transEsc("search_match")?>:</label>
+          <select id="search_bool0" name="join" class="form-control">
+            <option value="AND"<? if($searchDetails && $searchDetails->getOperator()=='ALL'):?> selected<?endif?>><?= $this->transEsc('group_AND') ?></option>
+            <option value="OR"<? if($searchDetails && $searchDetails->getOperator()=='OR'):?> selected<?endif?>><?= $this->transEsc('group_OR') ?></option>
+          </select>
+        </div>
       </div>
+      <span id="groupPlaceHolder">
+        <i class="fa fa-plus-circle"></i> <a href="#" onClick="addGroup()"><?= $this->transEsc('add_search_group') ?></a>
+      </span>
+      <input class="btn btn-primary pull-right" type="submit" value="<?= $this->transEsc('Find')?>">
+      <? if (isset($this->extraAdvancedControls)): ?>
+        <?=$this->extraAdvancedControls ?>
+        <input class="btn btn-primary pull-right" type="submit" value="<?= $this->transEsc('Find')?>"/>
+      <? endif; ?>
     </div>
-    <span id="groupPlaceHolder">
-      <i class="fa fa-plus-circle"></i> <a href="#" onClick="addGroup()"><?= $this->transEsc('add_search_group') ?></a>
-    </span>
-    <input class="btn btn-primary pull-right" type="submit" value="<?= $this->transEsc('Find')?>">
-    <? if (isset($this->extraAdvancedControls)): ?>
-      <?=$this->extraAdvancedControls ?>
-      <input class="btn btn-primary pull-right" type="submit" value="<?= $this->transEsc('Find')?>"/>
-    <? endif; ?>
-  </div>
 
-  <div class="<?=$this->layoutClass('sidebar')?>">
-    <? if ($hasDefaultsApplied): ?>
-      <input type="hidden" name="dfApplied" value="1" />
-    <? endif ?>
-    <? if (!empty($searchFilters)): ?>
-      <h4><?=$this->transEsc("adv_search_filters")?></h4>
-      <ul class="list-group">
-        <label class="list-group-item checkbox"><?=$this->transEsc("adv_search_select_all")?> <input type="checkbox" checked="checked" class="checkbox-select-all"/></label>
-      </ul>
-      <? foreach ($searchFilters as $field => $data): ?>
+    <div class="<?=$this->layoutClass('sidebar')?>">
+      <? if ($hasDefaultsApplied): ?>
+        <input type="hidden" name="dfApplied" value="1" />
+      <? endif ?>
+      <? if (!empty($searchFilters)): ?>
+        <h4><?=$this->transEsc("adv_search_filters")?></h4>
+        <ul class="list-group">
+          <label class="list-group-item checkbox"><?=$this->transEsc("adv_search_select_all")?> <input type="checkbox" checked="checked" class="checkbox-select-all"/></label>
+        </ul>
+        <? foreach ($searchFilters as $field => $data): ?>
+          <ul class="list-group">
+            <li class="list-group-item title"><?=$this->transEsc($field)?></li>
+            <? foreach ($data as $value): ?>
+              <label class="list-group-item checkbox"><input class="checkbox-select-item" type="checkbox" checked="checked" name="filter[]" value='<?=$this->escapeHtmlAttr($value['field'])?>:"<?=$this->escapeHtmlAttr($value['value'])?>"' /> <?=$this->escapeHtml($value['displayText'])?></label>
+            <? endforeach; ?>
+          </ul>
+        <? endforeach; ?>
+      <? endif; ?>
+      <div class="sidegroup">
+        <h4><?=$this->transEsc("Search Tips")?></h4>
         <ul class="list-group">
-          <li class="list-group-item title"><?=$this->transEsc($field)?></li>
-          <? foreach ($data as $value): ?>
-            <label class="list-group-item checkbox"><input class="checkbox-select-item" type="checkbox" checked="checked" name="filter[]" value='<?=$this->escapeHtmlAttr($value['field'])?>:"<?=$this->escapeHtmlAttr($value['value'])?>"' /> <?=$this->escapeHtml($value['displayText'])?></label>
-          <? endforeach; ?>
+          <a class="list-group-item help-link" href="<?=$this->url('help-home')?>?topic=advsearch" title="<?=$this->transEsc('Help with Advanced Search')?>"><?=$this->transEsc("Help with Advanced Search")?></a>
+          <a class="list-group-item help-link" href="<?=$this->url('help-home')?>?topic=search" title="<?=$this->transEsc('Help with Search Operators')?>"><?=$this->transEsc("Help with Search Operators")?></a>
         </ul>
-      <? endforeach; ?>
-    <? endif; ?>
-    <div class="sidegroup">
-      <h4><?=$this->transEsc("Search Tips")?></h4>
-      <ul class="list-group">
-        <a class="list-group-item help-link" href="<?=$this->url('help-home')?>?topic=advsearch" title="<?=$this->transEsc('Help with Advanced Search')?>"><?=$this->transEsc("Help with Advanced Search")?></a>
-        <a class="list-group-item help-link" href="<?=$this->url('help-home')?>?topic=search" title="<?=$this->transEsc('Help with Search Operators')?>"><?=$this->transEsc("Help with Search Operators")?></a>
-      </ul>
+      </div>
     </div>
   </div>
 </form>
diff --git a/themes/bootstrap3/templates/search/advanced/ranges.phtml b/themes/bootstrap3/templates/search/advanced/ranges.phtml
index aebf80d66486b378c2884117930ae9a26cb61085..7523ec869c69540620afe84ab5f1ba54c5b8d693 100644
--- a/themes/bootstrap3/templates/search/advanced/ranges.phtml
+++ b/themes/bootstrap3/templates/search/advanced/ranges.phtml
@@ -17,21 +17,20 @@
       <? if ($current['type'] == 'date'): ?>
         <input type="text" id="<?=$escField?><?=$this->escapeHtmlAttr($current['type'])?>Slider">
       <? endif; ?>
-    </fieldset>
-    <? if ($current['type'] == 'date'): ?>
-      <?
-        $this->headScript()->appendFile('vendor/bootstrap-slider.js');
-        $min = !empty($current['values'][0]) ? min($current['values'][0], 1400) : 1400;
-        $future = date('Y', time()+31536000);
-        $max = !empty($current['values'][1]) ? max($future, $current['values'][1]) : $future;
-        $low  = !empty($current['values'][0]) ? $current['values'][0] : $min;
-        $high = !empty($current['values'][1]) ? $current['values'][1] : $max;
-        $min = intval($min);
-        $max = intval($max);
-        $low = intval($low);
-        $high = intval($high);
-        $init = !empty($current['values'][0]) ? 'fillTexts()' : '';
-        $script = <<<JS
+      <? if ($current['type'] == 'date'): ?>
+        <?
+          $this->headScript()->appendFile('vendor/bootstrap-slider.js');
+          $min = !empty($current['values'][0]) ? min($current['values'][0], 1400) : 1400;
+          $future = date('Y', time()+31536000);
+          $max = !empty($current['values'][1]) ? max($future, $current['values'][1]) : $future;
+          $low  = !empty($current['values'][0]) ? $current['values'][0] : $min;
+          $high = !empty($current['values'][1]) ? $current['values'][1] : $max;
+          $min = intval($min);
+          $max = intval($max);
+          $low = intval($low);
+          $high = intval($high);
+          $init = !empty($current['values'][0]) ? 'fillTexts()' : '';
+          $script = <<<JS
 $(document).ready(function() {
   var fillTexts = function() {
     var v = {$escField}dateSlider.getValue();
@@ -51,8 +50,9 @@ $(document).ready(function() {
   {$init}
 });
 JS;
-      ?>
-      <?=$this->inlineScript(\Zend\View\Helper\HeadScript::SCRIPT, $script, 'SET'); ?>
+        ?>
+        <?=$this->inlineScript(\Zend\View\Helper\HeadScript::SCRIPT, $script, 'SET'); ?>
+      </fieldset>
     <? endif; ?>
   <? endforeach; ?>
 <? endif; ?>
diff --git a/themes/bootstrap3/templates/search/advanced/solr.phtml b/themes/bootstrap3/templates/search/advanced/solr.phtml
index 866b96d169683085905f1ef75c9edd4faaabc6ca..513cb93d6758f968894e31268a122691e7e2cfa2 100644
--- a/themes/bootstrap3/templates/search/advanced/solr.phtml
+++ b/themes/bootstrap3/templates/search/advanced/solr.phtml
@@ -1,5 +1,5 @@
 <? if (!empty($this->facetList) || !empty($this->checkboxFacets)): ?>
-  <fieldset class="col-sm-12">
+  <fieldset>
     <legend><?=$this->transEsc('Limit To')?></legend>
     <? if (!empty($this->checkboxFacets)): ?>
       <?=$this->render('search/advanced/checkbox-filters.phtml')?>
@@ -8,7 +8,7 @@
       <? foreach ($this->facetList as $field => $list): ?>
         <div class="col-sm-<?=floor(12/count($this->facetList)) ?>">
           <label for="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '', $field))?>"><?=$this->transEsc($list['label'])?>:</label>
-          <select class="col-sm-12" id="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '', $field))?>" name="filter[]" multiple="multiple" size="10">
+          <select class="form-control" id="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '', $field))?>" name="filter[]" multiple="multiple" size="10">
             <?
               // Sort the current facet list alphabetically; we'll use this data
               // along with the foreach below to display facet options in the
diff --git a/themes/bootstrap3/templates/search/advanced/summon.phtml b/themes/bootstrap3/templates/search/advanced/summon.phtml
index dfefcc64aab7a673618a2ece49a8686378ecd213..52a11b254b7fa07ccfb12f0bf80d1091d06ac4d8 100644
--- a/themes/bootstrap3/templates/search/advanced/summon.phtml
+++ b/themes/bootstrap3/templates/search/advanced/summon.phtml
@@ -7,8 +7,8 @@
     <div class="row">
       <? foreach ($this->facetList as $field => $list): ?>
         <div class="col-sm-<?=floor(12/count($this->facetList)) ?>">
-          <label class="displayBlock" for="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '', $field))?>"><?=$this->transEsc($list['label'])?>:</label>
-          <select class="col-sm-12" id="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '', $field))?>" name="filter[]" multiple="multiple" size="10">
+          <label for="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '', $field))?>"><?=$this->transEsc($list['label'])?>:</label>
+          <select class="form-control" id="limit_<?=$this->escapeHtmlAttr(str_replace(' ', '', $field))?>" name="filter[]" multiple="multiple" size="10">
             <?
               // Sort the current facet list alphabetically; we'll use this data
               // along with the foreach below to display facet options in the
@@ -29,5 +29,7 @@
     </div>
   </fieldset>
 <? endif; ?>
-<?=$this->render('search/advanced/limit.phtml')?>
-<?=$this->render('search/advanced/ranges.phtml')?>
\ No newline at end of file
+<div class="row">
+  <?=$this->render('search/advanced/limit.phtml')?>
+  <?=$this->render('search/advanced/ranges.phtml')?>
+</div>
diff --git a/themes/bootstrap3/templates/search/home.phtml b/themes/bootstrap3/templates/search/home.phtml
index ad2eb83f4362e53c4cb246b5dde452d094b5cc21..acde395e2420bc39a7b248ef8d96666f4526df9e 100644
--- a/themes/bootstrap3/templates/search/home.phtml
+++ b/themes/bootstrap3/templates/search/home.phtml
@@ -17,23 +17,23 @@
 
   $this->layout()->breadcrumbs = false;
 ?>
-  <div class="searchHomeContent col-sm-12">
-    <? if ($this->ils()->getOfflineMode() == "ils-offline"): ?>
-      <div class="alert alert-warning">
-        <h2><?=$this->transEsc('ils_offline_title')?></h2>
-        <p><strong><?=$this->transEsc('ils_offline_status')?></strong></p>
-        <p><?=$this->transEsc('ils_offline_home_message')?></p>
-        <? $supportEmail = $this->escapeHtmlAttr($this->systemEmail()); ?>
-        <p><a href="mailto:<?=$supportEmail?>"><?=$supportEmail?></a></p>
-      </div>
-    <? endif; ?>
-    <div class="well well-lg clearfix">
-      <?=$this->render("search/searchbox.phtml")?>
+
+<div class="searchHomeContent">
+  <? if ($this->ils()->getOfflineMode() == "ils-offline"): ?>
+    <div class="alert alert-warning">
+      <h2><?=$this->transEsc('ils_offline_title')?></h2>
+      <p><strong><?=$this->transEsc('ils_offline_status')?></strong></p>
+      <p><?=$this->transEsc('ils_offline_home_message')?></p>
+      <? $supportEmail = $this->escapeHtmlAttr($this->systemEmail()); ?>
+      <p><a href="mailto:<?=$supportEmail?>"><?=$supportEmail?></a></p>
     </div>
+  <? endif; ?>
+  <div class="well well-lg clearfix">
+    <?=$this->render("search/searchbox.phtml")?>
   </div>
+</div>
 
 <? $facetList = is_object($this->results) ? $this->results->getFacetList() : array(); if (isset($facetList) && is_array($facetList)): ?>
-</div> <!-- close row from layout.phtml -->
 <div class="row">
   <? foreach ($facetList as $field => $details): ?>
     <? $sortedList = $this->sortFacetList($this->results, $field, $details['list'], $basicSearch); ?>
diff --git a/themes/bootstrap3/templates/search/newitem.phtml b/themes/bootstrap3/templates/search/newitem.phtml
index d4085b258a5cf8786879f9abf93bf148a343f631..f3aea47ad0352736f613674adcc7a41ebb74aec0 100644
--- a/themes/bootstrap3/templates/search/newitem.phtml
+++ b/themes/bootstrap3/templates/search/newitem.phtml
@@ -12,10 +12,12 @@
       <label class="col-sm-3 control-label"><?=$this->transEsc('Range')?>:</label>
       <div class="col-sm-9">
         <? foreach ($this->ranges as $key => $range): ?>
-          <label class="radio">
-            <input type="radio" name="range" id="newitem_range_<?=$this->escapeHtmlAttr($key)?>" value="<?=$this->escapeHtmlAttr($range)?>"<?= ($key == 0) ? ' checked="checked"' : ''?>/>
-            <?=($range == 1) ? $this->transEsc('Yesterday') : $this->transEsc('Past') . ' ' . $this->escapeHtml($range) . ' ' . $this->transEsc('Days')?>
-          </label>
+          <div class="radio">
+            <label>
+              <input type="radio" name="range" id="newitem_range_<?=$this->escapeHtmlAttr($key)?>" value="<?=$this->escapeHtmlAttr($range)?>"<?= ($key == 0) ? ' checked="checked"' : ''?>/>
+              <?=($range == 1) ? $this->transEsc('Yesterday') : $this->transEsc('Past') . ' ' . $this->escapeHtml($range) . ' ' . $this->transEsc('Days')?>
+            </label>
+          </div>
         <? endforeach; ?>
       </div>
     </div>
diff --git a/themes/bootstrap3/templates/vudl/grid.phtml b/themes/bootstrap3/templates/vudl/grid.phtml
index 9dfcc18f604afd1f4ff63d653ee4cd5a58434e53..9cf901d1984fb5b94fa741ed78ee3db601d1edba 100644
--- a/themes/bootstrap3/templates/vudl/grid.phtml
+++ b/themes/bootstrap3/templates/vudl/grid.phtml
@@ -34,47 +34,48 @@
   var documentID = '<?=$this->id ?>';
   var initPage = <?=isset($this->initPage) ? $this->initPage : 0 ?>;
 </script>
-<div class="vudl container row">
+<div class="vudl row">
   <div class="col-sm-3">
     <?=$this->context($this)->renderInContext('vudl/details.phtml', array())?>
   </div>
   <div class="col-sm-9">
-    <? $index=0; foreach($this->outline['lists'] as $key=>$list): ?>
-      <!-- PRE LOADING PLACEHOLDERS -->
-      <? for($i=0;$i<current(array_keys($list))-1;$i++, $index++): ?>
-        <a class="col-sm-3 page-grid" id="item<?=$i ?>" title="<?=$i ?>">Loading...</a>
-      <? endfor; ?>
-      <!-- LOADED ITEMS -->
-      <? foreach($list as $i=>$item): ?>
-        <a href="<?=$this->url('vudl-record', array('id'=>$item['id'])) ?>" class="col-sm-3 page-grid" title="<?=$item['id'] ?>" id="item<?=$index?>">
-          <? if(isset($item['thumbnail'])): ?>
-            <img src="<?=$item['thumbnail'] ?>" alt="<?=$item['label'] ?>"/>
-          <? else: ?>
-            <img class="<?=$item['fulltype'] ?>" src="<?=$this->imageLink('vudl/'.$item['fulltype'].'.png') ?>"/>
-          <? endif; ?>
-          <br/><?=$this->transEsc($item['label']) ?>
-        </a>
-        <? $index++; ?>
-      <? endforeach; ?>
-      <!-- POST LOADING PLACEHOLDERS -->
-      <? if(isset($this->outline['counts'][$key])): ?>
-        <? for($i=$this->initPage+count($list);$i<$this->outline['counts'][$key];$i++, $index++): ?>
+    <div class="row">
+      <? $index=0; foreach($this->outline['lists'] as $key=>$list): ?>
+        <!-- PRE LOADING PLACEHOLDERS -->
+        <? for($i=0;$i<current(array_keys($list))-1;$i++, $index++): ?>
           <a class="col-sm-3 page-grid" id="item<?=$i ?>" title="<?=$i ?>">Loading...</a>
         <? endfor; ?>
-      <? endif; ?>
-    <? endforeach; ?>
+        <!-- LOADED ITEMS -->
+        <? foreach($list as $i=>$item): ?>
+          <a class="col-sm-3 page-grid" href="<?=$this->url('vudl-record', array('id'=>$item['id'])) ?>" title="<?=$item['id'] ?>" id="item<?=$index?>">
+            <? if(isset($item['thumbnail'])): ?>
+              <img src="<?=$item['thumbnail'] ?>" alt="<?=$item['label'] ?>"/>
+            <? else: ?>
+              <img class="<?=$item['fulltype'] ?>" src="<?=$this->imageLink('vudl/'.$item['fulltype'].'.png') ?>"/>
+            <? endif; ?>
+            <br/><?=$this->transEsc($item['label']) ?>
+          </a>
+          <? $index++; ?>
+        <? endforeach; ?>
+        <!-- POST LOADING PLACEHOLDERS -->
+        <? if(isset($this->outline['counts'][$key])): ?>
+          <? for($i=$this->initPage+count($list);$i<$this->outline['counts'][$key];$i++, $index++): ?>
+            <a class="col-sm-3 page-grid" id="item<?=$i ?>" title="<?=$i ?>">Loading...</a>
+          <? endfor; ?>
+        <? endif; ?>
+      <? endforeach; ?>
+    </div>
   </div>
-  <script>
-    $.ajax({dataType:'json',
-      url:'../VuDL/ajax?method=pageAjax&record=<?=$this->id ?>&start=0&end=16',
-      success:ajaxLoadPages,
-      error:function(d,e){
-        console.log(d);console.log(e)
-      }
-    });
-    counts = $.parseJSON('<?=json_encode($this->outline['counts'], JSON_HEX_APOS | JSON_HEX_AMP) ?>');
-    $('.accordion').removeClass('hidden');
-    $('#collapse0').addClass('in');
-  </script>
 </div>
-<div class="bottom">&nbsp;</div>
+<script>
+  $.ajax({dataType:'json',
+    url:'../VuDL/ajax?method=pageAjax&record=<?=$this->id ?>&start=0&end=16',
+    success:ajaxLoadPages,
+    error:function(d,e){
+      console.log(d);console.log(e)
+    }
+  });
+  counts = $.parseJSON('<?=json_encode($this->outline['counts'], JSON_HEX_APOS | JSON_HEX_AMP) ?>');
+  $('.accordion').removeClass('hidden');
+  $('#collapse_details').addClass('in');
+</script>