.wrapper.flex {display: flex; flex-direction: column; width: 1000px; padding: 20px 0;}

.product_container {width: 100%; display: flex; justify-content: space-between; margin: 10px auto;border: 1px solid #ccc; height: 180px;}
.product_container .left_side {width: 300px; text-align: center; position: relative; overflow: hidden;}
.product_container .left_side img {object-fit: cover;width: 100%;height: 100%; cursor: pointer;}
.product_container .left_side .outlet_badge {position: absolute; left: -20px; bottom: 17px; background: #dc143c; width: 94px; transform: rotate(45deg); color: #FFF; letter-spacing: 2px;}

.product_container .right_side {width: 100%; padding: 20px;}
.product_container .right_side .listing_header {display: flex; justify-content: space-between; height: 100%; overflow: hidden;}
.product_container .right_side .listing_header h3 {font-size: 20px;font-weight: 900;}
.product_container .right_side .listing_header h4 {font-weight: 900;font-size: 20px;}
.product_container .right_side .listing_header > div:nth-of-type(1) {position: relative;}
.product_container .right_side .listing_header > div:nth-of-type(2) {text-align: right;}
.product_container .right_side .listing_header > div:nth-of-type(2) > * {white-space: nowrap;}
.product_container .right_side h5 {font-size: 13px;}
.product_container .right_side p.short_description {margin-top: 20px;}
.product_container .right_side p.short_description::before {content: ''; width: 100%; height: 25%; position: absolute; left: 0; bottom: 0; background: linear-gradient(transparent 5px, white);}
.product_container .right_side .offer_date {font-size: 15px; margin-top: 20px;}
.product_container .right_side .buy_button {border: 1px solid #1b7110; background: #263e26; color: #FFF; padding: 5px 10px; margin-top: 20px; cursor: pointer;}
.product_container .right_side .product_available {border: 1px solid #1b7110; background: #263e26; color: #FFF; padding: 5px 10px; margin-top: 20px;}
.product_container .right_side .outlet_info {color: red;}


#shop_product_card .product_container {min-height: 320px; height: auto;}
#shop_product_card .product_container .right_side .listing_header {height: auto; margin-bottom: 15px;}
#shop_product_card .left_side {width: 420px; position: relative; overflow-y: auto; display: flex; gap: 5px; align-items: start; align-content: flex-start; flex-wrap: wrap;}
#shop_product_card .left_side > div {aspect-ratio: 1; width: calc(50% - 5px);}


.paginator-body {display: flex; justify-content: space-between; align-items: center;}
#show-categories {display: none; margin: 20px 20px;}
.mobile-only {display: none;}

.paginator-body .paginator-by .container {display: flex; justify-content: flex-start; gap: 10px;}
.paginator-body .paginator-by a {display: block; text-align: center; padding: 1px 6px; background-color: #263e26; color: #FFF;}
.paginator-body .paginator-by a.active {background-color: #FFC200; color: #111;}

.paginator-body .paginator-pages .container {display: flex; justify-content: flex-end; gap: 10px;}
.paginator-body .paginator-pages a {display: block; text-align: center; padding: 1px 6px; background-color: #263e26; color: #FFF;}
.paginator-body .paginator-pages a.active {background-color: #FFC200; color: #111;}


#modal_background {position: fixed; z-index: 50; top: 0; left: 0; display: flex; align-items: center; justify-content: center; height: 100%; width: 100%; background: rgba(0,0,0,0.4); }
#shop_popup {position: relative; min-width: 200px; max-width: 578px; min-height: 200px; max-height: 480px; border: 3px solid #000; display: flex; align-items: center; justify-content: flex-start; background: #eee; color: #000; flex-direction: column; padding: 60px 40px;}
#shop_popup .close_popup {position: absolute; top: 20px; right: 20px; font-size: 40px; color: #000; cursor: pointer;}

#shop_popup.fullscreen_image {max-height: 80%; padding: 50px 0 0;}
#shop_popup.fullscreen_image .image_scroller {max-width: 100%; max-height: 100%; width: 100%; height: 100%; overflow-y: auto;}
#shop_popup.fullscreen_image .image_scroller.big {position: fixed; top: 0; left: 0; overflow: auto;}
#shop_popup.fullscreen_image .image_scroller img {max-width: 100%; width:100%; height:100%; cursor: zoom-in; object-fit: contain;}
#shop_popup.fullscreen_image .image_scroller.big img {min-width: 100%; max-width: unset; width: auto; height: auto; cursor: zoom-out; object-fit: contain;}

/* hacks */
#shop_listing {display: flex;}
#shop_product_card {display: flex;}

/*
#shop_popup.fullscreen_image {max-width: unset; max-height: unset; padding: 50px 0;}
#shop_popup.fullscreen_image .image_scroller {overflow: auto; min-width: 100%; min-height: 100%; width: 100%; height: 100%;}
#shop_popup.fullscreen_image .image_scroller.big {position: fixed; top: 0; left: 0;}
#shop_popup.fullscreen_image .image_scroller img {max-width: 100%; overflow: auto; cursor: zoom-in;}
#shop_popup.fullscreen_image .image_scroller.big img {max-width: unset; cursor: zoom-out; min-width: 100%; min-height: 100%;}
 */

#category-filters {width: 200px; min-height: 600px; padding: 30px;}
#category-filters .close-categories {display: none; position: absolute; top: 20px; right: 20px; font-size: 50px; cursor: pointer;}

#category-filters h2 {font-size:  30px; font-weight: 700; margin-bottom: 20px;}
#category-filters ul {padding-left: 15px; list-style: none;}

#category-filters ul li {position: relative; margin: 8px 0;}
#category-filters ul li.closed > ul {display: none;}

#category-filters ul li.leaf::before {content: "-"; position: absolute; left: -20px; top: 0; display: inline-block; width: 20px; height: 20px; line-height: 20px; text-align: center;}

#category-filters ul li.foldable::before {content: "▸"; position: absolute; left: -20px; top: 0; display: inline-block; width: 20px; height: 20px; line-height: 20px; text-align: center; cursor: pointer;  transition: transform 0.2s; transform: rotate(90deg);}
#category-filters ul li.foldable.closed::before {transform: rotate(0deg);}

#category-filters ul li a {color: #111;}
#category-filters ul li a.active {color: #263e26; font-family: 'OpenSans EB';}

#breadcrumbs {margin: 10px 0;}
#breadcrumbs ul {list-style: none; padding: 0; margin: 0; display: flex; gap: 0.5rem; flex-wrap: wrap;}
#breadcrumbs ul li {display: inline; white-space: nowrap;}
#breadcrumbs ul a {text-decoration: none; color: #263e26; font-weight: 800;}
#breadcrumbs ul li + li::before {content: ">"; margin: 0 0.5rem; color: #999;}

@media(max-width: 1024px) {
	.wrapper.flex {width: 100%;}
	.product_container .right_side .listing_header {}
}

@media(max-width: 800px) {
	.mobile-only {display: initial;}
	#show-categories {display: inline-block;}
	#category-filters .close-categories {display: initial;}
	#category-filters {display: none; padding: 10px;}
	#category-filters.show_mobile {position: fixed; display: block; width: 100%; height: 100%; top: 80px; left: 0; background: #FFF; z-index: 100; padding: 20px;}
	#category-filters.show_mobile .close-categories {display: inline-block;}
	#category-filters.show_mobile .category-filters {max-height: calc(100% - 80px); padding-left: 30px; overflow-y: auto; overflow-x: hidden; overscroll-behavior: none; overscroll-behavior-y: contain; -webkit-overflow-scrolling: touch;}
	#category-filters.show_mobile ul li {margin: 15px 0; line-height: 30px;}

	#category-filters.show_mobile ~ body,
	#category-filters.show_mobile ~ html
		{overflow: hidden; height: 100vh; position: fixed; width: 100%;}

	#category-filters ul li.leaf::before {content: "-"; position: absolute; left: -30px; top: 0; display: inline-block; width: 30px; height: 30px; line-height: 30px; text-align: center;}
	#category-filters ul li.foldable::before {content: "▸"; position: absolute; left: -30px; top: 0; display: inline-block; width: 30px; height: 30px; line-height: 30px; text-align: center; cursor: pointer;  transition: transform 0.2s; transform: rotate(90deg);}

	.paginator-body {flex-direction: column;}
}


@media(max-width: 640px) {
	.product_container .left_side {width: 150px;}
	.product_container .right_side .listing_header h3 {font-size: 16px;}
	.product_container .right_side .listing_header .buy_button {white-space: break-spaces !important; text-align: center; min-width: 100px; max-width: 100px;}
	.product_container .right_side .listing_header .product_available {white-space: break-spaces !important; text-align: center; min-width: 100px; max-width: 100px;}

	#shop_product_card .product_container {flex-direction: column-reverse;}
	#shop_product_card .left_side {flex-direction: column; width: 100%; height: 200px; overflow-y: unset; overflow-x: auto; padding: 5px;}
	#shop_product_card .left_side > div {height: calc(50% - 5px); width: auto;}
	.product_container .right_side {padding: 5px;}
}
