/* _______ GENERIC ________ */
.shopErrorDisplay {
	display: none;
}
.shopErrorDisplay.show {
	display: block;
}
.sb-page .contentContainer {
  min-height: 100vh;
}

/* _______ PAGE TOP _______ */

.content.pageTop {
	padding-bottom: 2.5rem;
}
.content.pageTop .prodListingMeta {
	margin-bottom: 0;
}
.content.pageTop .backTo {
	width: 100%;
	padding-bottom: 0.625rem;
}
.content.pageTop .backTo a {
	width: auto;
	display: inline-block;
}
.content.pageTop .wrapper .categoryContent {
	width: 100%;
	padding-bottom: 1.5rem;
}
.content.pageTop .wrapper .categoryContent p:last-of-type {
	padding-bottom: 0;
}

/*________ PRODUCTS ________*/

.content .productsListing {
	grid-gap: 1.25rem;
    display: grid;
    grid-template-columns: auto;
	grid-template-columns: 50% 50%;
    min-height: 25rem;
    margin-bottom: 1.25rem;
	padding-right: 1.25rem;
}
.content .productsListing .product {
	width: 100%;
	padding-bottom: 1.25rem;
}
.content .productsListing .product a {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	flex-wrap: nowrap;
	align-items: center;
	text-decoration: none;
}
.content .productsListing .product .thumb {
	width: 100%;
	display: block;
	position: relative;
	background: var(--sv-product-image-background-color);
}
.content .productsListing .product .thumb:after {
	display: block;
	content: '';
	padding-bottom: 100%;
}
.content .productsListing .product .prodImg {
	width: 100%;
	height: 100%;
	position: absolute;
	object-fit: contain;
	transition: opacity .25s ease;
	font-family: 'object-fit: contain;';           
}
.content .productsListing .product a:hover .prodImg,
.content .productsListing .product a:focus .prodImg {
	opacity: 0.9;
}
.content .productsListing .product .thumb .tag {
	color: #fff;
	z-index: 10;
	right: 0.625rem;
	top: 0.625rem;
	position: absolute;
	background: var(--sv-sale-color);
	font-weight: 700;
	font-size: 0.75rem;
	line-height: 1.625rem;
	text-transform: uppercase;
	padding: 0.125rem 1.25rem;
}
.content .productsListing .product .thumb .tag.stock {
	display: none;
}
.content .productsListing .product .thumb .tag.stock.show {
	display: block;
}
.content .productsListing .product .inner {
	width: 100%;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	flex-wrap: nowrap;
}
.content .productsListing .product .inner .h6 {
	font-size: 1rem;
	text-align: center;
	font-weight: 500;
	line-height: 1.625rem;
	text-transform: none;
	padding: 1rem 0 0.25rem;
}
.content .productsListing .product .prodPrice .price {
	color: var(--sv-primary-color);
	font-size: 1rem;
	display: inline-block;
}
.content .productsListing .product .prodPrice .special {
	color: var(--sv-sale-color);
}
.content .productsListing .product .prodPrice .price:not(:last-of-type) {
	margin-right: 1rem;
	text-decoration: line-through;
}
#js-productsListing .outerContent {
	padding-right: 0;
}

/*________ PAGINATION / ORDER ________*/

.content .prListWrap {
	margin-bottom: 2.5rem;
}
.content .prListWrap.searchResults {
	margin-top: 2.5rem;
}
.content .prodListingMeta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	margin: 0 0 1.25rem auto;
}
.content .navSplitPagesResult {
	order: 1;
	width: 100%;
	line-height: 1.3;
	margin-right: auto;
	font-size: 0.875rem;
	padding-bottom: 1.25rem;
	text-align: center;
}
.content .caetgorySelector,
.content .listingSorter {
	order: 2;
	width: 100%;
}
.content .caetgorySelector fieldset,
.content .listingSorter fieldset {
	display: flex;
	align-items: center;
	position: relative;
}
.content .caetgorySelector fieldset:after,
.content .listingSorter fieldset:after {
	content: '';
	display: block;
	position: absolute;
	right: 0.75rem;
	padding: 0.1875rem;
	border: solid #5E5E5E;
	margin-top: -0.1875rem;
	border-width: 0 0.0625rem 0.0625rem 0;
	transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
}
.content .prodListingMeta label {
	display: none;
}
.content .prodListingMeta select * {
	font-size: 0.875rem;
}
.content .prodListingMeta > div:not(:last-of-type) {
	margin-bottom: 1.5rem;
}
.content .prodListingMeta select,
.content .prodListingMeta select option:not(:first-of-type) {
	color: #5e5e5e;
}
.content .prodListingMeta select {
	width: 100%;
	cursor: pointer;
	height: 2.5rem;
	padding: 0 0.625rem;
	font-size: 0.875rem;
	border: 0.0625rem solid #ddd;
	transition: border 0.25s ease;
	border-radius: 0.25rem;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-color: #fff;
}
.content .prodListingMeta select:hover,
.content .prodListingMeta select:focus {
	border-color: #5e5e5e;
}
.content .navSplitPagesLinks {
	order: 2;
	width: 100%;
	display: table;
	border-collapse: collapse;
	margin-left: auto;
}
.content .navSplitPagesLinks .current,
.content .navSplitPagesLinks a {
	color: #333;
	font-weight: 500;
	font-size: 0.875rem;
	text-align: center;
	text-decoration: none;
	display: table-cell;
	border: 0.0625rem solid #ddd;
	padding: 0.75rem 1rem;
}
.content .navSplitPagesLinks a:hover,
.content .navSplitPagesLinks .current {
	color: #000;
}
.content .navSplitPagesLinks .current {
	background: var(--sv-product-image-background-color);
}
.content .navSplitPagesLinks .current:hover {
    cursor: default;
}
.prListWrap.loading {
	position: relative;
}

/*________ SIDEBAR / FILTERS ________*/

#js-productsListing > .wrapper.loadWrap #js-filterModalTrigger {
	z-index: 200;
	display: none;
	cursor: pointer;
	position: fixed;
	bottom: 1.25rem;
	border-radius: 1.75rem;
	padding: 0.625rem 1.25rem;
	width: calc(100% - 2.5rem);
	text-transform: uppercase;
	justify-content: center;
	align-items: center;
	background: var(--sv-primary-color);
}
#js-productsListing > .wrapper.loadWrap #js-filterModalTrigger:hover,
#js-productsListing > .wrapper.loadWrap #js-filterModalTrigger:focus {
	background: var(--sv-primary-hover-color);
}
#js-productsListing > .wrapper.loadWrap #js-filterModalTrigger.show {
	display: flex;
}
#js-productsListing > .wrapper.loadWrap #js-filterModalTrigger span {
	display: block;
	margin-right: auto;
	line-height: 1;
}
#js-productsListing > .wrapper.loadWrap .sidebar {
	opacity: 0;
	pointer-events: none;

	z-index: 300;
	position: fixed;
	top: 0; left: 0;
	height: 100%;
	width: 100%;
	background: #fff;
	transition: opacity 0.25s ease;
}
#js-productsListing > .wrapper.loadWrap .sidebar.open-modal {
	opacity: 1;
	pointer-events: all;
}
#js-productsListing > .wrapper.loadWrap .sidebar form {
	overflow: scroll;
	margin: 2.5rem 0 auto;
	height: calc(100vh - 15rem);
}
#js-productsListing > .wrapper.loadWrap .sidebar > * {
	padding: 0 1.25rem;
}
#js-productsListing > .wrapper.loadWrap .sidebar .modalSection:first-of-type {
	display: flex;
	align-items: center;
	justify-content: right;
	padding: 1.4375rem 1.25rem 0;
}
#js-productsListing > .wrapper.loadWrap .sidebar .modalSection:first-of-type h4 {
	line-height: 1;
	font-size: 0.875rem;
	padding-right: 0.75rem;
	text-transform: uppercase;
}
#js-productsListing > .wrapper.loadWrap .sidebar .modalSection:first-of-type button {
	cursor: pointer;
	padding: 0.625rem;
	border-radius: 100%;
	background-color: transparent;
	border: 0.0625rem solid #000;
}
#js-productsListing > .wrapper.loadWrap .sidebar .modalSection:first-of-type button:hover,
#js-productsListing > .wrapper.loadWrap .sidebar .modalSection:first-of-type button:focus {
	opacity: 0.8;
}
#js-productsListing > .wrapper.loadWrap .sidebar .modalSection:first-of-type button .icon {
	display: block;
	width: 0.75rem;
	height: 0.75rem;
}
#js-productsListing > .wrapper.loadWrap .sidebar .modalSection:last-of-type {
	left: 0;
	width: 100%;
	bottom: 1.25rem;
	padding: 0 1.25rem;
	position: absolute;
}
#js-productsListing > .wrapper.loadWrap .sidebar .modalSection:last-of-type button {
	width: 100%;
	line-height: 1;
	cursor: pointer;
	border-radius: 1.75rem;
	padding: 0.5625rem 1.25rem;
	background: transparent;
	text-transform: uppercase;
	border: 0.0625rem solid #000;
}
.sidebarShop.sidebar .section {
	margin-bottom: 1rem;
}
.sidebarShop.sidebar .section.promoContainer {
	margin: 0 auto;
	max-width: 25rem;
}
.sidebarShop .shopCats .category {
	list-style: none;
	padding-bottom: 0.75rem;
	border-bottom: 0.0625rem solid rgba(112, 112, 112, 0.1);
}
.sidebarShop .shopCats .category:not(:last-of-type) {
	margin-bottom: 0.75rem;
}
.sidebarShop .shopCats .category a {
	color: #000;
	display: block;
	text-decoration: none;
}
.sidebarShop .shopCats .category.current a {
	color: var(--sv-primary-color);
}
.sidebarShop .shopCats .category a:hover,
.sidebarShop .shopCats .category a:focus {
	color: var(--sv-primary-hover-color);
}
.sidebarShop .shopFilters .section {
	padding: 1rem;
    margin-bottom: 1rem;
    border-bottom: 0.0625rem solid rgba(112, 112, 112, 0.1);
}
.sidebarShop .shopFilters .section h5 {
	padding: 0;
}
.sidebarShop .shopFilters .section h5 a {
	position: relative;
    display: block;
	text-decoration: none;
	color: #000;
	padding-bottom: 1rem;
}
.sidebarShop .shopFilters .section h5 a:before,
.sidebarShop .shopFilters .section h5 a:after {
	content: '';
	display: block;
	position: absolute;
	margin-top: -0.85rem;
	top: 50%;
	right: 0.25rem;
	width: 0.375rem;
	height: 0.375rem;
	border-right: 0.075rem solid;
	transform: rotate(45deg);
    transition: transform 0.25s ease;
}
.sidebarShop .shopFilters .section h5 a:after {
	transform: rotate(135deg);
}
.sidebarShop .shopFilters .section.expand h5 a:before {
	transform: rotate(225deg);
}
.sidebarShop .shopFilters .section.expand h5 a:after {
	transform: rotate(315deg);
}
.sidebarShop  .shopFilters ul {
	opacity: 0;
	overflow: hidden;
	list-style-type: none;
    transition: all 0.25s ease-out;
}
.sidebarShop .shopFilters .section.expand ul {
    opacity: 1;
    transition: all 0.25s ease-in;
    padding: 0 0 1.25rem 0;
}
.sidebarShop .shopFilters .manufacturerSection.expand ul,
.sidebarShop .shopFilters .filterSection_2.expand ul {
    max-height: 12.5rem;
}
.sidebarShop .shopFilters .section.collapse ul {
    opacity: 0;
    max-height: 0;
}
.sidebarShop .shopFilters ul span {
	display: block;
	font-size: 0.875rem;
}
.sidebarShop .shopFilters ul li {
    margin-bottom: 0.75rem;
}
.sidebarShop .shopFilters ul li:not(:last-of-type) {
    padding-bottom: 0.75rem;
    border-bottom: 0.0625rem rgba(112,112,112,0.1) solid;
}
.sidebarShop .shopFilters ul li input[type="checkbox"] {
    margin-right: 0.5rem;
}
.sidebarShop .shopFilters ul li label {
	display: flex;
	align-items: center;
}
.sidebarShop .shopFilters ul li label input {
	display: block;
}

/*_______ SHOP PROMOTIONALS _______*/

.sidebar .promoContainer .promo {
	display: block;
	position: relative;
}
.sidebar .promoContainer .promo img {
	width: 100%;
	height: 100%;
	position: absolute;
	object-fit: cover;
	font-family: 'object-fit: cover;';
}
.sidebar .promoContainer .promo:after {
	content: '';
	display: block;
	padding-bottom: calc(800 / 540 * 100%);
}

/* Search Page */

.searchContainer .content.pageTop h1 {
	padding: 0;
}
.searchContainer .content.pageTop h4.searchTitle {
	padding: 0;
	font-weight: 500;
	font-size: 0.875rem;
}
.contentContainer.searchContainer .wrapper {
	display: block;
}
.contentContainer.searchContainer #js-productsListing .wrapper .outerContent {
	width: 100%;
}
.contentContainer.searchContainer .wrapper .productHeader {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	padding: 1.5rem 0;
}
.contentContainer.searchContainer .wrapper .productHeader h4 {
	padding: 0;
}
.contentContainer.searchContainer .wrapper .productHeader .listingSorter {
	width: 100%;
	margin-top: 1rem;
}
.contentContainer.searchContainer .wrapper .categories {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
}
.contentContainer.searchContainer .wrapper .categories .category {
	text-align: left;
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	font-size: 0.875rem;
	margin: 0 1.25rem 0.625rem 0;
	text-transform: capitalize;
}
.contentContainer.searchContainer .wrapper .categories .category .breadcrumb {
	font-size: 0.625rem;
}
/* 540px */
@media (min-width: 33.75em) {
    .content .productsListing {
    	padding-right: 0;
	    grid-template-columns: repeat(auto-fill, minmax(225px , 1fr));
    }
	.content .navSplitPagesResult {
		width: auto;
		text-align: left;
		padding-bottom: 0;
	}
	.content .navSplitPagesLinks {
		width: auto;
	}
	/* Search Page */
	.contentContainer.searchContainer .wrapper .productHeader .listingSorter {
		width: 12.5rem;
		margin-top: 0;
		margin-left: auto;
	}
}
/* 740px */
@media (min-width: 46.25em) {
	body .content.pageTop .wrapper {
		flex-wrap: wrap;
		align-items: flex-end;
	}
	main.contentContainer > .wrapper {
		display: block;
	}
	#js-productsListing .outerContent {
		width: 100%;
	}
	.sidebar .promoContainer.section {
		margin: 0;
		padding: 0;
	}
}
/* 940px */
@media (min-width: 58.75em) {
	.content.pageTop h1 {
		padding-bottom: 0;
	}
	.content .listingSorter {
		width: 12.5rem;
		margin-left: auto;
	}
	.content.pageTop .wrapper .categoryContent {
		order: 3;
		padding: 2rem 0 0 0;
	}
	main.contentContainer > .wrapper {
		display: flex;
	}
	#js-productsListing > .wrapper.loadWrap .sidebar {
		display: none;
		order: 1;
		opacity: 1;
		z-index: 1;
		pointer-events: all;
		position: initial;
		width: 100%;
		margin-right: 3rem;
		max-width: 16.875rem;
	}
	#js-productsListing > .wrapper.loadWrap .sidebar.show {
		display: block;
	}
	#js-productsListing > .wrapper.loadWrap .sidebar form {
		margin: 0;
		padding: 0;
		height: auto;
		overflow: auto;
	}
	.sidebarShop.sidebar .section.promoContainer {
		max-width: unset;	
	}
	.sidebarShop form#prFilter,
	.sidebar .promoContainer.section {
		width: 100%;
	}
	#js-productsListing .outerContent {
		order: 2;
		flex-grow: 1;
		width: calc(100% - 19.375rem);
	}
}
/* 1240px */
@media (min-width: 77.5rem) {
	.content.pageTop {
		padding-bottom: 3.75rem;
	}
	.content.pageTop .wrapper .categoryContent {
		padding: 2.5rem 0 0 0;
	}
    .content .productsListing {
		grid-gap: 2.5rem;
	}
    .content .productsListing .product {
    	padding-bottom: 1.25rem;
	}
	.sidebarShop .shopFilters .section h5 a {
		font-size: 1.125rem;
	}
	.sidebarShop .shopFilters ul span {
		font-size: 1rem;
	}
	/* Search Page */
	.searchContainer .content.pageTop h4.searchTitle {
		font-size: 1.125rem;
	}
	.contentContainer.searchContainer .wrapper .productHeader {
		padding: 2rem 0;
	}
}