.banner-container {
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
}
.flex-break {
	flex-basis: 100%;
}
.banner,
.banner-sm {
	position: relative;
	margin-bottom: .5rem;
}
.banner {
	width: 180px;
	height: 90px;
}
.banner-sm {
	width: 90px;
	height: 30px;
}
.banner-sm.aspect-3x1 { width: 90px; }
.banner-sm.aspect-2x1 { width: 60px; }
.banner-sm.aspect-1x1 { width: 30px; }
.banner + .banner,
.banner + .banner-sm,
.banner-sm + .banner,
.banner-sm + .banner-sm {
	margin-left: 1rem;
}
.banner::before,
.banner-sm::before {
	content: '';
	position: absolute;
	top:50%;
	left: 50%;
	transform: translate(-50%,-50%);
	background: var(--bg-image) 50% 50% / contain no-repeat;
	width: 100%;
	height: 100%;
}

.product-details .banner-sm {
	width: 45px;
	height: 20px;
}

.price {
	display: block;
	color: var(--primary-color);
	font-size: 1.5rem;
	text-align: center;
}
.product-old-price {
	text-decoration: line-through;
}

.product-stickers {
	position: absolute;
	top: -1rem;
	right: 0;
	display: flex;
	flex-flow: column nowrap;
	justify-content: center;
}

.product-card {
	transition: box-shadow var(--speed);
}
.product-card:hover {
	box-shadow: 0 0 2rem var(--primary-alpha50-color);
}
.product-card .reveal {
	padding-bottom: 1rem;
}
.product-card .product-stickers {
	left: .5rem;
}
.sticker-isnew,
.sticker-discount {
	position: relative;
	display: inline-block;
	width: 40px;
	height: 40px;
	background: #000000;
	color: #ffffff;
	border: 2px solid #444444;
	border-radius: 50%;
	margin-bottom: .5rem;
}
.sticker-isnew {
	background-color: var(--light-gray);
	color: var(--brand-primary-color);
	border: 2px solid var(--light-gray);
}
.cell-wrap .sticker-discount {
	right: 0;
	bottom: auto;
	top: 50%;
	transform: translate(0,-50%);
}
.sticker-sm,
.sticker-caption {
	display: block;
	position: absolute;
	top: 9px;
	left: 50%;
	transform: translate(-50%,0);
	font-size: 10px;
	font-weight: bold;
}
.cell-wrap .sticker-caption {
	display: none;
}
.sticker-lg,
.sticker-pc-off {
	display: block;
	position: absolute;
	top: 50%; left: 50%;
	transform: translate(-50%,-50%);
	font-size: 14px;
	font-weight: bold;
}
.product-stickers > [class^="sticker-"] {
	width: 60px;
	height: 60px;
}
.product-stickers > [class^="sticker-"] .sticker-caption {
}
.product-stickers > [class^="sticker-"] .sticker-lg,
.product-stickers > [class^="sticker-"] .sticker-pc-off {
	top: auto; bottom: 9px;
	left: 50%;
	transform: translate(-50%,0);
	font-size: 21px;
}
.product-stickers > [class^="sticker-"] .sticker-sm,
.product-stickers > [class^="sticker-"] .sticker-md,
.product-stickers > [class^="sticker-"] .sticker-lg {
	position: static;
	transform: none;
	text-align: center;
}
.product-stickers > [class^="sticker-"] .sticker-lg:first-child {
	position: relative;
	top: 0; left: 50%; right: auto; bottom: auto;
	transform: translate(-50%,7px);
}
.product-stickers > .sticker-isnew {
	display: flex;
	flex-flow: column nowrap;
	justify-content: center;
	align-items: center;
}
.product-stickers > .sticker-isnew > * {
	position: static;
	transform: none;
	font-weight: bold;
}

.product-card .code,
.product-card .item-availability {
	font-size: .75rem;
}

.product dl {
	display: flex;
	flex-flow: row wrap;
	margin: 0;
}
.product dl .product-sizes {
	margin: 0;
}
.product dl .product-sizes li {
	margin-top: .25rem;
	margin-bottom: .25rem;
}
.product dt, .product dd {
	margin: 0;
	padding: .5rem 0;
}
.product dt {
	display: flex;
	align-items: center;
	flex: 0 0 30%;
	font-weight: normal;
	text-transform: uppercase;
}
.product dd {
	flex: 0 0 70%;
	font-weight: bold;
}
.product dd ~ dt, .product dd ~ dd,
.product dl + dl > * {
	border-top: 1px solid var(--line-color);
}

/**
 * products list
 */

.products-navbar,
.products-pagination {
	display: flex;
	flex-flow: column wrap;
	margin-bottom: 1rem;
}
.pagination {
	justify-content: center;
}
@media (min-width: 768px) {
	.products-navbar,
	.products-pagination {
		flex-flow: row nowrap;
		margin-left: calc(var(--bs-gutter-x) / -2);
		margin-right: calc(var(--bs-gutter-x) / -2);
		align-items: center;
	}
	.products-navbar > *,
	.products-pagination > * {
		flex: 0 1 33.33%;
		padding: 0 calc(var(--bs-gutter-x) / 2);
	}
	.products-navbar > :nth-child(2),
	.products-pagination > :nth-child(2) {
		text-align: center;
	}
	.products-navbar > :nth-child(3),
	.products-pagination > :nth-child(3) {
		text-align: right;
	}
	.products-navbar .input-group {
		margin: 0;
	}
}

.product-card {
	height: calc(100% - calc(var(--bs-gutter-x)));
	margin-bottom: calc(var(--bs-gutter-x));
	text-align: center;
}
.product-card h2,
.product-card .h2 {
	font-size: 1rem;
	font-weight: bold;
}

.product-card .card-header {
	border-bottom: 0;
	padding: 0;
}
.product-list.list [class^="col-"], .product-list.list [class*=" col-"] {
	width: 100%!important;
}
.product-list.list .product-card {
	flex-direction: row;
}
.product-list.list .card-header {
	padding: 0;
}
.product-list.list .product-card .thumb {
	min-width: 120px;
}
@media (min-width: 992px) {
	.product-card .code,
	.product-card .item-availability {
		font-size: .875rem;
	}
}


/**
 * products details
 */
.product-photo,
.product-thumb {
	display: block;
	border: 1px solid var(--line-color);
}


.product-photos-carousel {
	margin-top: .5rem;
}

.product-details .table,
table.specs {
	border: 1px solid var(--line-color);
	border-left: 0;
	border-right: 0;
	width: 100%;
}
.product-details .table tbody, .product-details .table tr,
table.specs tbody, table.specs tr,
table.specs th, table.specs td {
	border: inherit;
}
.product-details .table th, .product-details .table td,
table.specs th, table.specs td {
	padding: .5rem 1rem;
	border-width: 0;
}
table.specs td.data {
	font-weight: 700;
}

/**
 * products details sizes
 */
.product-sizes {
	display: flex;
	flex-wrap: wrap;
	justify-content: start;
	align-items: stretch;
	list-style: none;
	padding: 0;
}
.product-sizes > li {
	flex: 0 0 42px;
}
.product-sizes > li {
	margin: 0 .25rem .5rem;
}
.product-sizes > li label {
	position: relative;
	width: 100%;
	text-align: center;
}
.product-sizes > li label input {
}
.product-sizes > li label span {
	display: block;
	font-size: 1rem;
	font-weight: bold;
	line-height: 1.25;
	/*
	color: #ffffff;
	background: var(--primary-color);
	*/
}
.product-sizes > li.off label {
	color: var(--text-color);
	background: var(--light-grey);
}
.product-sizes > li.off label.btn-outline-primary {
	border-color: var(--light-grey) !important;
}


/**
 * products recently viewed
 */
.recently-viewed {
	padding: 2rem 0;
	background: var(--secondary-light-color);
}
@media (min-width: 992px) {
	.recently-viewed {
		padding: 4rem 0;
	}
}

.form-theme {
	max-width: 800px;
	margin: 0 auto;
}

/**
 * cart summary and cart details
 */
/*
.toggle-wrap-cart {
	position: relative;
}

.cart-summary {
	position: fixed!important;
	top: 50px!important;
	left: 50%;
	right: 0;
	display: flex;
	flex-flow: column nowrap;
	width: 100vw;
	max-height: calc(100vh - 50px);
	transform: translateX(-100%);
	font-size: .825rem;
	background: #ffffff;
	border: 1px solid var(--line-color);
	box-shadow: 0 0 10px rgba(0,0,0,.2);
}
*/
.cart-summary.panel {
	background: #ffffff;
}
.cart-summary .navbar-cart-items {
	position: relative;
	padding: 0 1rem;
	height: calc(100vh - 42px);
	overflow-y: auto;
	font-size: .75rem;
}
.cart-summary .caption {
	font-size: 1.2rem;
	color: var(--primary-color);
}
.cart-summary .cart-item,
.checkout-cart-summary .cart-item {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	margin-bottom: .5rem;
	width: 100%;
}
.cart-summary .cart-totals {
	position: absolute;
	bottom: 0;
	z-index: 10;
	width: 100%;
	padding: .5rem 1rem;
	margin: 0;
	border: 0;
	background: #ffffff;
	font-size: 1rem;
}
.cart-summary .product-photo,
.checkout-cart-summary .product-photo {
	flex-basis: 60px;
	width: 60px;
	border: 0;
}
.cart-summary .cart-item-title,
.checkout-cart-summary .cart-item-title {
	font-weight: bold;
}
.cart-summary .product-info,
.checkout-cart-summary .product-info {
	flex: 1 0 1%;
	margin-left: .5rem;
	font-size: .75rem;
}
.cart-summary .product-value,
.checkout-cart-summary .product-value {
	flex-basis: 80px;
	text-align: right;
}
.cart-summary .product-value .value,
.checkout-cart-summary .product-value {
	font-weight: 700;
	font-size: 1rem;
}
.cart-summary .cart-item-title a,
.checkout-cart-summary .cart-item-title a {
	color: var(--primary-color);
}
.cart-summary .thumb,
.checkout-cart-summary .thumb {
}
.cart-summary .price,
.checkout-cart-summary .price {
	display: inline-block;
}

.dark .cart-summary {
	background-color: var(--primary-color);
}

.cart-totals {
	margin: .5rem 0;
	padding: .5rem 0;
	border: 1px solid var(--line-color);
	border-left: 0;
	border-right: 0;
}
.cart-summary .cart-totals dl,
.checkout-cart-summary .cart-totals dl {
	display: flex;
	flex-flow: row wrap;
	width: 100%;
	margin: 0;
}
.cart-summary .cart-totals dl dt,
.checkout-cart-summary .cart-totals dl dt {
	flex-basis: calc(100% - 100px);
	font-weight: 400;
}
.cart-summary .cart-totals dl dd,
.checkout-cart-summary .cart-totals dl dd {
	flex-basis: 100px;
	text-align: right;
	font-weight: 700;
}
.cart-summary .cart-totals dd:last-of-type,
.cart-summary .cart-totals dt:last-of-type,
.checkout-cart-summary .cart-totals dd:last-of-type,
.checkout-cart-summary .cart-totals dt:last-of-type {
	padding-top: .5rem;
	margin-bottom: 0;
	border-top: 1px solid var(--line-color);
	line-height: 2rem;
}
.cart-summary .cart-totals dd:last-of-type,
.checkout-cart-summary .cart-totals dd:last-of-type {
	font-size: 1.5rem;
}
@media (min-width: 992px) {
	.cart-summary {
		max-height: calc(100vh - 120px);
	}
	.cart-summary .toggle.close {
		display: inline-flex;
		font-size: 42px;
	}
	.cart-summary .navbar-cart-items {
		height: calc(100vh - 151px);
		font-size: .875rem;
	}
}

.product-quantity .input-group {
	justify-content: center;
}
.product-price .data,
.product-value .data {
	text-align: right;
}
.input-quantity {
	max-width: 100px;
}


/**
 * checkout
 */
.checkout .steps {
	display: flex;
	justify-content: space-between;
	align-items: center;
	counter-reset: step;
	margin-bottom: 2rem;
}
.checkout .step {
	position: relative;
	display: inline-flex;
	flex-flow: column nowrap;
	justify-content: center;
	counter-increment: step;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	border: 2px solid var(--primary-color);
	text-align: center;
}
.checkout .step::before {
	content: counter(step);
	display: inline-block;
	font-size: 2rem;
	font-weight: 700;
	border-radius: 50%;
	color: #ffffff;
	background-color: var(--primary-color);
}
.checkout .step span {
	display: none;
}
.checkout .step.active ~ .step:before {
	color: var(--primary-color);
	background-color: #ffffff;
}
.checkout .step.active:before {
	background-color: var(--secondary-color);
}
.checkout .steps .line {
	width: calc(33% - 70px);
	height: 16px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 48 48'%3E%3Cpath d='M20 12l-2.83 2.83 9.17 9.17-9.17 9.17 2.83 2.83 12-12z' fill='white'/%3E%3Cpath d='M0 0h48v48h-48z' fill='none'/%3E%3C/svg%3E")
		calc(100% + 29px) 50% / 64px 64px repeat-x var(--secondary-color);
}
.checkout .steps .active ~ .line {
	background-color: var(--verylight-grey-color);
}

.invalid-feedback {
	font-size: .875rem;
	font-weight: bold;
}
.invalid-feedback::before {
	content: '\f111';
	font-family: var(--icons-font);
}

/* step 1 */
#getEmailForm .form-floating {
	position: relative;
}

/* step 2 */
.shipping-choices label .prompt {
	display: block;
	font-weight: bold;
}
.shipping-choices label .info {
	display: none;
	font-size: .875rem;
	font-style: italic;
}
.shipping-choices .btn-check:checked + label .info {
	display: block;
}

@media (orientation:landscape) {
	.cart-summary {
		right: 0;
		width: 50vw;
	}
}
@media (min-width: 768px) {
	.cart-summary {
		width: 480px;
	}
	.checkout-cart-summary {
		position: sticky;
		top: 45px;
	}
}
@media (min-width: 992px) {
/*
	.cart-summary {
		position: absolute!important;
		top: 100%!important;
		left: auto!important;
		right: 0!important;
		transform: none;
	}
*/
	.panel.cart-summary {
		display: block;
		position: fixed;
		top: 0;
		right: 0;
		z-index: 100;
		height: 100vh;
		max-height: none;
		transform: translateX(100%);
		background: #f0f0f0;
		transition: transform var(--speed) ease;
	}
	.panel.cart-summary.open {
		transform: none;
	}
	.checkout .step span {
		position: absolute;
		left: 50%;
		bottom: -1.5rem;
		transform: translateX(-50%);
		display: inline-block;
		font-size: .875rem;
		text-transform: uppercase;
	}
	.checkout-cart-summary .product-info {
		font-size: .875rem;
	}
}

/**
 * Orders
 */
.form-tbl {
	--bs-table-color-state_DIS: var(--text-color);
	--bs-table-border-color: var(--bs-border-color);
	width: 100%;
	margin-bottom: 1rem;
	vertical-align: top;
	border-color: var(--bs-table-border-color);
}
.form-tbl table {
	width: 100%;
}
.form-tbl > :not(caption) > * > *,
.form-tbl table > :not(caption) > * > * {
	padding: .5rem .5rem;
	color: var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));
	background-color: var(--bs-table-bg);
	border-bottom-width: var(--bs-border-width);
	box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)));
}

/**
 * Filters
 */
.filter-block {
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--line-color);
	margin-bottom: 1rem;
}
.filters-brands .filter-block {
	padding-bottom: 0;
	border-bottom: 0;
	margin-bottom: 0;
}
.box-filters h4,
.filter-block .caption {
	padding: 0!important;
	color: #000000;
	font-family: 'century gothic', arial, helvetica, sans-serif;
	font-weight: bold;
	text-transform: uppercase;
}
.filter-choice {
	display: block;
}
.filter-choice + .filter-choice {
	margin-top: 5px;
}
.filter-block-price input {
	text-align: center;
}
.btn-filter {
	display: flex;
	align-items: center;
	width: 100%;
	text-align: left;
}
.btn-filter.checked {
	border-color: var(--primary-color);
}
.btn-filter:hover {
	color: #ffffff;
	background: var(--primary-color);
}
.btn-filter .fa {
	margin-right: 1rem;
}
.btn-filter .badge {
	margin-left: auto;
}
.color-filters {
	display: block;
	list-style: none;
	margin: 0;
	padding: 0;
}
.color-filters li {
	margin: .5rem 0;
}
.color-filters li label {
	display: flex;
	align-items: center;
}
.color-filters li label > * + * {
	margin-left: .5rem;
}
.color {
	display: inline-block;
	width: 24px;
	height: 24px;
	border-radius: 12px;
	background: var(--color-code);
}
.color-filters .name {
	font-size: .875rem;
}
.color-filters .badge {
	margin-left: auto;
}

.categories-nav,
.filters-nav {
	display: none;
	position: fixed;
	top: 1rem; left: 1rem;
	bottom: 1rem; right: 1rem;
	z-index: 1050;
	height: calc(100vh - 2rem);
	overflow-y: hidden;
	max-width: 450px;
	box-shadow: 0 0 40px rgba(0,0,0,.5);
	margin: auto;
}
.categories-nav .card-body,
.filters-nav .card-body {
	height: 100%;
	overflow-y: auto;
}
.card-close {
	position: absolute;
	top: 50%; right: 0;
	transform: translateY(-50%);
	display: block;
	width: 48px;
	height: 48px;
	font-size: 34px;
	line-height: 48px;
	text-align: center;
}
.categories-nav-content {
	text-align: left !important;
}
.categories-nav-content a,
.categories-nav-content a:hover {
	display: block;
	padding: .25rem .5rem;
	font-size: .875rem;
	text-decoration: none;
	transition: all var(--speed);
}
.categories-nav-content a:hover {
	color: #ffffff;
	background: var(--secondary-color);
}
.categories-nav-content a.indent-0 {
	font-weight: bold;
}
.categories-nav-content a.indent-1 {
	padding-left: 2rem;
}
.categories-nav-content a.indent-2 {
	padding-left: 4rem;
}
@media (min-width:768px) {
	.categories-nav,
	.filters-nav {
		display: block;
		position: static;
		max-width: none;
		box-shadow: 0 0 0 transparent;
		margin: 0;
		height: auto;
		overflow-y: auto;
	}
	.card-close {
		display: none;
	}
	.filter-choices,
	.color-filters {
		max-height: 200px;
		overflow-y: auto;
	}
}
@media (min-width:992px) {
	.filter-choices,
	.color-filters {
		max-height: 300px;
	}
}
@media (min-width:1200px) {
	.filter-choices,
	.color-filters {
		max-height: 400px;
	}
}
