/* Fixed thumbnail slot. Reserving the box before the image arrives is what
   removes the layout shift; object-fit:contain keeps each image's own aspect
   ratio, so square (120x120) and 4:3 (160x120) thumbnails paint unchanged. */
.product-thumb{width:160px;height:120px;max-width:100%;object-fit:contain}
		
		
<!-- Jumbo banner -->



#introSlide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

#bag {
    position: absolute;
    top: 0;
    left: 425px;
    height: 100%;
}

#bag-small {
    position: absolute;
    bottom: 0px;
    left: 125px;
    height: 63%;
}

#product {
    position: absolute;
    height: 170px;
    top: 12px;
    left: 12px;
    filter: drop-shadow(4px 4px 4px rgba(0, 0, 0, 0.25));
}

#price {
    position: absolute;
    width: 110px;
    top: 12px;
    right: 12px;
    max-height: 170px;
}

#title {
    position: absolute;
    width: 100%;
    height: 100%;
	padding-left: 20px;
	padding-top: 20px;
    color: black;
    font-size: 60px;
    font-family: "MindsetSlim", sans-serif;
    line-height: 0.8;
    white-space: nowrap;
  }

#title-small {
    position: absolute;
    width: 100%;
    height: 100%;
	padding-left: 12px;
	padding-top: 12px;
    white-space: nowrap;
    font-size: 44px;
    font-family: "MindsetSlim", sans-serif;
    line-height: 0.85;
    margin: 0;
    color: black;
}

#logo {
    position: absolute;
    top: 32px;
    right: 40px;
    width: 180px;
}

#logo-small {
    position: absolute;
    bottom: 12px;
    left: 12px;
    width: 125px;
}

#copyLine1, #copyLine2 {
	position:absolute;
}

.line1, .line2 {
	opacity: 0;
}

#creative {
    opacity: 1;
    position: absolute;
    width: 970px;
    height: 250px;
    display: block;
    overflow: hidden;
    cursor: pointer;
    background: #eeb717;
    background-image: url("/img/achtergrond-970x250.jpg");
	margin-left: auto;
	margin-right: auto;
}

#creative-small {
	opacity: 1;
    position: absolute;
    width: 336px;
    height: 280px;
    display: block;
    overflow: hidden;
    cursor: pointer;
    background: #eeb717;
    background-image: url("/img/achtergrond-336x280.jpg");
	margin-left: auto;
	margin-right: auto;
} 

#cta {
    position: absolute;
    bottom: 32px;
    right: 32px;
    padding: 12px 24px;
    border: 1px solid white;
    border-radius: 100px;
    background:white;

    color: black;
    font-size: 16px;
    font-family: TheSans;
    transition: 0.25s;
  }
  

#cta-small {
    position: absolute;
    bottom: 78px;
    left: 12px;
    padding: 10px 20px;
    background: transparent;
    color: black;
    border-radius: 100px;
    font-family: 'TheSans';
    font-size: 13px;
    font-weight: bold;
    text-align: center;
    background: white;
    border: 1px solid white;
}

  

  #cta:hover {
    border: 1px solid black;
  }

@font-face {
    font-family: TheSans;
    src: url(/fonts/Jumbo-TheSans-Bold.woff) format('woff'),
        url(/fonts/Jumbo-TheSans-Bold.woff2) format('woff2');
    font-style: normal;
    font-weight: normal;
    font-display: optional;
}

@font-face {
    font-family: MindsetSlim;
    src: url(/fonts/Jumbo-Mindset.woff) format('woff'),
        url(/fonts/Jumbo-Mindset.woff2) format('woff2');
    font-style: normal;
    font-weight: normal;
    font-display: optional;
}

<!-- End Jumbo -->  
		
		
		
		
		
		
.empty {
}

/* 
 * Categorie aanbiedingen styles
 */
h1.aanbieding-titel {
	text-align: left;
	padding-left: 15px;
}
 
 .strict {
	 height: 320px !important;
	 text-align: center !important;
 }

.full-height {
	height:100%;
	min-height:100%;
}


.slogan {
	font-size: 20px;
	color: white;
	opacity: 0.5;
	font-style: italic;
}

@font-face {
    font-family: 'pgicons';
    src:url('../fonts/pgicons/pgicons.eot');
    src:url('../fonts/pgicons/pgicons.eot?#iefix') format('embedded-opentype'),
        url('../fonts/pgicons/pgicons.woff') format('woff'),
        url('../fonts/pgicons/pgicons.ttf') format('truetype'),
        url('../fonts/pgicons/pgicons.svg#pgicons') format('svg');
    font-weight: normal;
    font-style: normal;
}

*, *:after, *:before {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

.product-card-title {
	font-size: 24px;
	color: white;
	width:100%;
	float: left;
}

.product-card-subtitle {
	font-size: 14px;
	width:100%;
	color: white;
	
}

.cbp-pgcontainer {
    position: relative;
    width: 100%;
    padding: 0 0px 0px 0px;
}

.cbp-pgcontainer ul,
.cbp-pgcontainer li {
    padding: 0;
    margin: 0;
    list-style-type: none;

}

.cbp-pggrid {
    position: relative;
    text-align: center;
}
/* If flexbox is supported we'll use it to lay out the grid */
.flexbox .cbp-pggrid {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: flex;
    -webkit-flex-flow: row wrap;
    -moz-flex-flow: row wrap;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    -webkit-justify-content: center;
    -moz-justify-content: center;
    -ms-justify-content: center;
    -webkit-justify-content: center;
}

.cbp-pggrid > li {
    display: inline-block;
    vertical-align: top;
    position: relative;
    width: 0%;
    //min-width: 218px;
    //min-width: 248px;
    //min-width: 202px;
    //min-width: 225px;
    min-width: 252px;
    max-width: 512px;
    padding: 0px 0% 0px 0%;
    text-align: left;
    border-right: 1px solid #D6CFC9;
    //margin-left: -4px;
    float: left;
	background-color: white;
	border-top: 1px solid #D6CFC9;
}
.cbp-pggrid > li:hover {
    box-shadow: inset 0 0 25px #eff1f1,inset 0 0 0 1px rgba(0,0,0,.1);
    //cursor: pointer;
}
.selectedProduct{
	box-shadow: inset 0px 0px 109px -10px rgba(219,219,219,0.50);
}
.flexbox .cbp-pggrid > li {
    display: block;
}

.cbp-pgcontent {
    //border: 1px solid #FF7300;
    position: relative;
}

.cbp-pgrotate {
    width: 36px;
    height: 36px;
    position: absolute;
    display: block;
    color: transparent;
    font-size: 0;
    z-index: 100;
    border-bottom: 1px solid #FF7300;
    border-left: 1px solid #FF7300;
    right: 0px;
    top: 0px;
    cursor: pointer;
    text-align: center;
}

.cbp-pgrotate:before {
    font-size: 18px;
    line-height: 32px;
    color: #47a3da;
}

.no-touch .cbp-pgrotate:hover,
.cbp-pgrotate.cbp-pgrotate-active {
    background: #47a3da;
}

.no-touch .cbp-pgrotate:hover:before,
.cbp-pgrotate.cbp-pgrotate-active:before {
    color: #fff;
}

/* The item with the images will have perspective */
.cbp-pgitem {
    width: 100%;
	height:348px;
    position: relative;
    padding: 10px;
    -webkit-perspective: 1400px;
    -moz-perspective: 1000px;
    perspective: 1000px;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    backface-visibility: hidden;
	border-bottom: 1px solid #D6CFC9;
}

/* The flip container */
.cbp-pgitem-flip {
    -webkit-transform-style: preserve-3d;
    -moz-transform-style: preserve-3d;
    transform-style: preserve-3d;
    -webkit-transition: -webkit-transform .4s ease-out;
    -moz-transition: -moz-transform .4s ease-out;
    transition: transform .4s ease-out;
}

/* If you want to rotate on hover instead of click, you could use something like this: 
.cbp-pgrotate:hover + .cbp-pgitem .cbp-pgitem-flip
*/
.cbp-pgitem.cbp-pgitem-showback .cbp-pgitem-flip {
    -webkit-transform: rotateY(180deg);
    -moz-transform: rotateY(180deg);
    transform: rotateY(180deg);
}

.cbp-pgitem-flip img {
    display: block;
    margin: 0 auto;
    max-width: 100%;
    max-height: 100%;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    backface-visibility: hidden;
}

.cbp-pgitem img:first-child {
    position: relative;
}

/* The second image will be rotated so that we'd be looking at the back of it */
.cbp-pgitem img:nth-child(2) {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translateX(-50%) translateY(-50%) rotateY(-180deg);
    -moz-transform: translateX(-50%) translateY(-50%) rotateY(-180deg);
    transform: translateX(-50%) translateY(-50%) rotateY(-180deg);
}

/* Fallback for browsers that don't support 3d transforms */
.no-csstransforms3d .cbp-pgitem img:nth-child(2) {
    position: relative;
    top: 0;
    left: 0;
    display: none;
}

.no-csstransforms3d .cbp-pgitem.cbp-pgitem-showback img:first-child {
    display: none;
}

.no-csstransforms3d .cbp-pgitem.cbp-pgitem-showback img:nth-child(2) {
    display: block;
}

/* Icons */
.cbp-pgoptcompare, 
.cbp-pgoptcart, 
.cbp-pgoptfav,
.cbp-pgrotate {
    font-family: 'pgicons';
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
}

.cbp-pgrotate:before {
    content: "\e004";
}

.cbp-pginfo {
    padding-top: 0px;	
	margin-top: 10px;
	margin-bottom: 5px;
}

.cbp-pginfo:before,
.cbp-pginfo:after {
    content: " ";
    display: table;
}

.cbp-pginfo:after {
    clear: both;
}

.cbp-pginfo .product-name,
.cbp-pginfo span {
    width: 100%;
    font-size: 14px;
    padding: 0px 0px;
    margin: 0;
}

.pgprice{    
    text-align: center;
    color: #C1BFBA;
    font-size: 21px;
    font-weight: 600;
    margin-top: 35px !important;
    margin-bottom: 10px;
}

.pgpricediscount{    
	text-decoration: line-through; 
	font-size:14px; 
	color:#5D5B5B; 
	font-weight:normal;
}
.pgdiscountdate{    
	font-size:12px;
	width: 100%;
	height: 12px;
	color:#5D5B5B; 
	font-weight:bold;
    text-align: center;
	margin-bottom: 0px;
}
.pgkgprice{    
    text-align: center;

    color: #FF7300;
    font-size: 16px;
    margin-top: -4px;
}
.shoplogo{
    float: right;
    margin-right: -10px;
	margin-top: -10px;
}
.shoplogo img{    
    height: 28px;
}
.discountTag {
    position: absolute;
    left: 12px;
    top: 12px;
    background: linear-gradient(135deg, #ff8826, #FF7300);
    color: #ffffff;
    font-size: 10px;
    font-weight: 800;
    padding: 4px 10px;
    border-radius: 8px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    box-shadow: 0 4px 10px rgba(255, 115, 0, 0.3);
    height: auto !important;
    width: auto !important;
    line-height: normal !important;
    display: inline-block !important;
    z-index: 10;
}

.cbp-pginfo .product-name {
    font-weight: 600;
    color: #5D5B5B;
    line-height: 1.1;
}

.cbp-pginfo span {
    text-align: right;
    color: #C1BFBA;
}

/* Card buttons flex container & modern pill styling */
.card-buttons-container {
    position: absolute;
    bottom: 10px;
    left: 10px;
    right: 10px;
    display: flex;
    justify-content: center;
    gap: 4px;
    flex-wrap: wrap;
}
.card-button {
    flex: 1 1 auto;
    min-width: 50px;
    margin: 0 !important; /* override margins from main.css */
    font-size: 10px !important;
    font-weight: bold;
    line-height: 16px;
    padding: 3px 6px !important;
    text-align: center;
    box-sizing: border-box;
    text-decoration: none !important;
    color: #333 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.card-button:hover {
    color: #000 !important;
    text-decoration: none !important;
}
.cartheader{
    background-color: #ff7300;
    color: white;
    font-size: 18px;
    text-align: left;
    padding: 8px;
    border-radius: 3px 3px 0px 0px;
	margin-bottom: 0px;
	margin-left: 10px;
	margin-right: 10px;
	box-shadow: 2px 2px 1px #cccccc;
}
.cart-header-title {
	
}

#cart{
    padding: 10px 20px;
	background-color: #ededed;
	margin-bottom: 10px;
	margin-left: 10px;
	margin-right: 10px;
	font-size: 12px;
	box-shadow: 2px 2px 1px #cccccc;
    //visibility: visible;

}

.cartquntity{    
    overflow: hidden;
    width: 50%;
    float: right;
    left: 80%;
    top: 90%;
    position: absolute;
}

.cartquntitymix{    
    overflow: hidden;
    width: 50%;
    float: right;
    left: 50%;
    top: 90%;
    position: absolute;
}

.cartquntitychild{
    overflow: hidden;
    float: left;
    width: 100%;
}

.cartquntityminus{
    float: left;
    width: 30%;
    overflow: hidden;
    border: 1px solid #ff7300;
    height: 25px;
    text-align: center;
    background-color: #ff7300;
    color: #fff;
    font-size: 18px;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
    cursor: pointer;
    visibility: hidden;
}
.cartquntitytext{
    width: 30%;
    float: left;
    overflow: hidden;
    height: 25px;
    visibility: hidden;
}
.cartquntitytext input{
    width: 100%;
    height: 25px;
    border-left: none;
    border-right: none;
    /*    border-left: 1px solid #ff7300;
        border-right: 1px solid #ff7300;*/
    border-top: 1px solid #C1C0BB;
    border-bottom: 1px solid #C1C0BB;
    text-align: center;
}

.cartquntityplus{
    width: 30%;
    float: left;
    overflow: hidden;
    height: 25px;
    text-align: center;
    background-color: #ff7300;
    color: #fff;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
    cursor: pointer;
    font-size: 18px;
}

.cartquntityplus:hover, .cartquntityminus:hover{
    background-color: rgba(255, 115, 0, 0.79);
    color: #FFFFFF;
    border-color: #FFAC68;
}

.noselect {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
.shopheader{
    background-color: white;
    width: 60%;
    font-size: 14px;
	font-weight: bold;
    text-align: left;
    padding: 5px;
    margin-top: 5px;
    color: #5D5B5B;
    text-transform: capitalize;
}

.productprice{
    color: #ff7300;
    font-weight: bold;
}

.finalprice{    
    text-align: left;
    font-weight: bold;
}

.productrow{
    border-bottom: 1px solid #D6D4CE;margin-bottom: 15px;text-align: left;
}

.errors{
    background-color: #FBD3D3;
    width: 60%;
    font-size: 17px;
    text-align: left;
    padding: 5px;
    border-radius: 3px;
    margin-top: 5px;
    color: #827E7E;
}
.error{
    color:red;
}
.cartopt{
    padding-right: 0px;
    cursor: pointer;
    background-color: #ff7300;
    color: white;
    text-align: center;
    padding-left: 0px;
    border-radius: 2px;
    font-weight: bold;
    font-size: 12px;
    cursor: pointer;
    margin-bottom: 3px;
}

#carticon{
	right: 90px !important;
    margin-top: 60px;
    display: none;
    background-image: url("../img/cart.png");
    background-repeat: no-repeat;
    padding: 15px;
    background-position-x: 4px;
    background-position-y: 1px;
    width: 40px;
    height: 34px;
    background-color: #4a4747;
    border: 1px solid #4a4747;
    border-radius: 4px;
}

.btnSendEmail{    
    background-color: #FF7300;
    color: white;
    font-size: 16px;
    padding: 5px 10px;
    border-radius: 3px;
	border: none;
	box-shadow: 2px 2px 1px #cccccc;
	font-weight: bold;
}


.btnSendEmail:hover, .btnSendEmail:focus, .btnSendEmail:active{
    color: rgba(255, 115, 0, 0.79);
    border-color: rgba(255, 115, 0, 0.79);
}

/* Media Queries */

.cbp-pggrid > li {
	width: 10%;
	min-width: 10%;
	padding: 0;
}



@media screen and (max-width: 120em) {
    .cbp-pggrid > li {
        width: 16.66666%;
        min-width: 16.66666%;
		padding: 0;
    }
}

@media screen and (max-width: 84.375em) {
    .cbp-pggrid > li {
        width: 20%;
        min-width: 20%;
		padding: 0;
    }
}

@media screen and (max-width: 75.875em) {
    .cbp-pggrid > li {
        width: 25%;
        min-width: 25%;
		padding: 0;
    }
}

@media screen and (max-width: 68.125em) {
    .cbp-pggrid > li {
        width: 25%;
        min-width: 25%;
		padding: 0;
    }
}

@media screen and (max-width:  59.375em) {
    .cbp-pggrid > li {
        width: 25%;
        min-width: 25%;
		padding: 0;
    }
}
@media screen and (max-width:  56.25em) {
    .cbp-pggrid > li {
        width: 33.333%;
        min-width: 33.333%;
		padding: 0;
    }
}
@media screen and (max-width:  52.125em) {
    .cbp-pggrid > li {
        width: 33.333%;
        min-width: 33.333%;
		padding: 0;
    }
}
@media screen and (max-width: 46.125em) {
    .cbp-pggrid > li {
        width: 33.333%;
        min-width: 33.333%;
		padding: 0;
    }
}
@media screen and (max-width: 40em) {
    .cbp-pggrid > li {
        width: 50%;
        min-width: 50%;
		padding: 0;
    }
    .cbp-pgitem {
        height: 385px;
    }
}
@media screen and (max-width: 22em) {
    .cbp-pggrid > li {
        width: 100%;
        min-width: 100%;
		padding: 0;
    }
    .cbp-pgitem {
        height: 348px;
    }
}



a.product-link:visited {
	color: gray; /* blue colors for links too */
    text-decoration: none; /* no underline */
}

/*  .product-link:hover, .product-link:active */

.uitgelicht-content {
	text-align: center;
	position:relative;
    vertical-align: top;
	width: 100%;
	min-height:320px;
    border: 1px solid #D6CFC9;
    float: left;
	background-color: white;
	box-shadow:0 4px 4px 0 rgba(0, 0, 0, 0.1), 0 6px 10px 0 rgba(0, 0, 0, 0.1);
}

.uitgelicht-content:hover {
    box-shadow: inset 0 0 25px #eff1f1,0 6px 10px 0 rgba(0, 0, 0, 0.1);
    cursor: pointer;
}

.discount-label {
	background-color: #FF7300;
	color: white;
	height:40px;
	padding-top:10px;
	font-weight: bold;
	display: inline-block;
	width: 100%;
}
			/* Custom Price History SVG Chart styling for fresh products */
			.chart-card-container {
				background: #fafafa;
				border-radius: 12px;
				border: 1px solid #ededed;
				padding: 16px;
				position: relative;
				width: 100%;
				box-shadow: inset 0 2px 8px rgba(0,0,0,0.01);
			}
			@media (min-width: 768px) {
				.chart-card-container {
					width: 66.666%;
				}
			}
			.chart-scroll-wrapper {
				width: 100%;
				overflow-x: auto;
				overflow-y: hidden;
				-webkit-overflow-scrolling: touch;
				margin-bottom: 8px;
			}
			.chart-scroll-wrapper::-webkit-scrollbar {
				height: 6px;
			}
			.chart-scroll-wrapper::-webkit-scrollbar-track {
				background: #f1f1f1;
				border-radius: 4px;
			}
			.chart-scroll-wrapper::-webkit-scrollbar-thumb {
				background: #cbd5e1;
				border-radius: 4px;
			}
			.chart-scroll-wrapper::-webkit-scrollbar-thumb:hover {
				background: #94a3b8;
			}
			.v3-svg-chart {
				width: 100%;
				height: auto;
				display: block;
				direction: ltr; /* Reset rendering direction inside the SVG back to normal */
			}
			@media (max-width: 767px) {
				.v3-svg-chart {
					min-width: 600px; /* Ensure readability on mobile by scrolling */
				}
			}
			.chart-point-label-fresh {
				font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
				font-weight: 800;
				font-size: 11px;
				fill: #1e293b;
				text-anchor: middle;
			}
			.chart-current-label {
				font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
				font-weight: 900;
				font-size: 10px;
				fill: #ffffff;
				text-anchor: middle;
				letter-spacing: 0.5px;
			}

			/* Custom Tooltip Styling for Fresh Price History Chart */
			#fresh-chart-tooltip {
				position: absolute;
				display: none;
				background: rgba(255, 255, 255, 0.98);
				border: 1px solid rgba(0, 0, 0, 0.08);
				border-radius: 12px;
				padding: 12px 16px;
				box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1);
				font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
				pointer-events: none;
				z-index: 2000;
				opacity: 0;
				transform: scale(0.95);
				transition: opacity 0.15s ease, transform 0.15s ease;
				backdrop-filter: blur(6px);
				-webkit-backdrop-filter: blur(6px);
			}
			#fresh-chart-tooltip.visible {
				display: block;
				opacity: 1;
				transform: scale(1);
			}
			.tooltip-date {
				font-size: 11px;
				font-weight: 600;
				color: #64748b;
				text-transform: uppercase;
				letter-spacing: 0.5px;
				margin-bottom: 4px;
			}
			.tooltip-price-row {
				display: flex;
				align-items: baseline;
				gap: 6px;
			}
			.tooltip-price {
				font-weight: 800;
				font-size: 18px;
				color: #0f172a;
			}
			.tooltip-price.past-year {
				color: #475569;
			}
			.tooltip-price.this-year {
				color: #ff7300;
			}
			.tooltip-year-badge {
				font-size: 10px;
				font-weight: 700;
				padding: 2px 6px;
				border-radius: 4px;
				margin-top: 4px;
				display: inline-block;
			}
			.tooltip-year-badge.past {
				background: #f1f5f9;
				color: #475569;
			}
			.tooltip-year-badge.this {
				background: #fff7ed;
				color: #ea580c;
			}
			.chart-header-container {
				text-align: center;
				margin-bottom: 16px;
				padding: 0 8px;
			}
			.chart-header-title {
				font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
				font-weight: 700;
				font-size: 16px;
				color: #1e293b;
				margin: 0 0 4px 0;
			}
			.chart-header-subtitle {
				font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
				font-size: 12px;
				color: #64748b;
				margin: 0;
			}
			.fresh-chart-legend {
				text-align: center;
				margin-top: 16px;
				font-family: sans-serif;
				font-size: 12px;
				color: #475569;
				display: flex;
				justify-content: center;
				gap: 20px;
				direction: ltr;
			}
			/* === Keyword Filter Buttons (single-select / radio style) ===
			     Pill shape + circular dot indicator to distinguish from
			     the square-checkbox supermarket filters (multi-select). */
			.keyword_button {
				display: inline-flex !important;
				align-items: center !important;
				justify-content: flex-start !important;
				background-color: #f3f4f6 !important;
				border: 1.5px solid #e5e7eb !important;
				border-radius: 999px !important;  /* pill shape = radio/single-select cue */
				padding: 2px 11px 2px 8px !important;
				height: 30px !important;
				width: auto !important;
				min-width: 64px !important;
				margin-bottom: 6px !important;
				float: left !important;
				margin-right: 6px !important;
				cursor: pointer !important;
				position: relative !important;
				box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important;
				transition: all 0.15s ease-in-out !important;
				font-size: 12px !important;
				font-family: inherit !important;
				font-weight: 500 !important;
				color: #6b7280 !important;
				user-select: none !important;
			}
			/* Circular radio-dot indicator */
			.keyword_button::before {
				content: "" !important;
				display: inline-block !important;
				width: 11px !important;
				height: 11px !important;
				border: 2px solid #d1d5db !important;
				border-radius: 50% !important;  /* circle = radio */
				margin-right: 6px !important;
				background-color: #ffffff !important;
				flex-shrink: 0 !important;
				transition: all 0.15s ease-in-out !important;
			}
			/* Hover: subtle border highlight */
			.keyword_button:hover {
				border-color: #9ca3af !important;
				background-color: #e9eaec !important;
				box-shadow: 0 2px 4px rgba(0, 0, 0, 0.07) !important;
				color: #374151 !important;
			}
			.keyword_button:hover::before {
				border-color: #6b7280 !important;
			}
			/* Active / selected state */
			.keyword_button.active {
				background-color: #1e1e3a !important;  /* deep navy, distinct from supermarket buttons */
				border-color: #1e1e3a !important;
				color: #ffffff !important;
				box-shadow: 0 2px 8px rgba(30, 30, 58, 0.25) !important;
			}
			/* Filled circle dot for active state */
			.keyword_button.active::before {
				border-color: rgba(255,255,255,0.6) !important;
				background-color: #ffffff !important;
				box-shadow: inset 0 0 0 3px #1e1e3a !important;  /* inner dot pattern */
			}

			/* ═══════════════════════════════════════════
			   UNIFIED FILTER PANEL
			   ═══════════════════════════════════════════ */
			.filter-panel {
				background: #ffffff;
				border: 1px solid #e5e7eb;
				border-radius: 10px;
				padding: 14px 18px 10px 18px;
				margin-top: 14px;
				margin-bottom: 18px;
				box-shadow: 0 1px 4px rgba(0,0,0,0.05);
			}
			.filter-panel-row {
				display: flex;
				align-items: flex-start;
				gap: 10px;
				padding: 4px 0 8px 0;
			}
			.filter-panel-label {
				display: none;  /* labels removed — using top Filters chip instead */
			}
			.filter-panel-label em {
				display: none;
			}
			.filter-panel-divider {
				border: none;
				border-top: 1px solid #f3f4f6;
				margin: 2px 0 2px 0;
			}
			/* "Filters" chip at top of panel */
			.filter-panel-header {
				display: flex;
				align-items: center;
				margin-bottom: 10px;
			}
			.filter-panel-title {
				font-size: 10px;
				font-weight: 700;
				text-transform: uppercase;
				letter-spacing: 0.8px;
				color: #ffffff;
				padding: 2px 8px;
				background: #1e1e3a;
				border: 1px solid #1e1e3a;
				border-radius: 4px;
				line-height: 1.6;
			}
			/* Disable float & margins on shops/keywords inside filter panel globally */
			.filter-panel .shop_button,
			.filter-panel .keyword_button {
				float: none !important;
				margin-right: 0 !important;
				margin-bottom: 0 !important;
			}
			/* CSS class to override display: inline-flex !important */
			.filter-panel .shop_button.filter-hide,
			.filter-panel .keyword_button.filter-hide {
				display: none !important;
			}
			.filter-shops-wrap,
			.filter-keywords-wrap {
				flex: 1;
				display: flex;
				flex-wrap: wrap;
				align-items: center;
				gap: 6px;
			}
			/* Expand button: hidden by default on desktop */
			.filter-expand-btn {
				display: none;
				align-items: center;
				gap: 4px;
				background: #f3f4f6;
				border: 1.5px solid #e5e7eb;
				border-radius: 6px;
				padding: 3px 9px;
				height: 34px;
				cursor: pointer;
				font-size: 12px;
				font-weight: 600;
				color: #374151;
				transition: all 0.15s ease;
				white-space: nowrap;
				margin-bottom: 6px;
				flex-shrink: 0;
			}
			.filter-expand-btn:hover {
				border-color: #9ca3af;
				background: #e9eaec;
			}
			.filter-expand-btn svg {
				transition: transform 0.2s ease;
			}
			.filter-expand-btn.expanded svg {
				transform: rotate(180deg);
			}
			@media (max-width: 767px) {
				.filter-panel {
					padding: 10px 10px 8px 10px;
				}
				.filter-panel-header {
					margin-bottom: 8px;
				}
				.filter-panel-row {
					gap: 4px;
					padding: 2px 0 6px 0;
				}
				/* Single-row constraint for shops on mobile */
				.filter-shops-wrap {
					flex-wrap: nowrap;
					overflow: hidden;
				}
				.filter-shops-wrap.expanded {
					flex-wrap: wrap;
				}
				/* Single-row constraint for variant pills on mobile */
				.filter-keywords-wrap {
					flex-wrap: nowrap;
					overflow: hidden;
				}
				.filter-keywords-wrap.expanded {
					flex-wrap: wrap;
				}
				/* Always pin expand button to the right on mobile, never let it clip */
				.filter-expand-btn {
					display: inline-flex;
					flex-shrink: 0;
				}
				/* Remove float on shop_button inside panel (we use flex) */
				.filter-panel .shop_button {
					flex-shrink: 0;
				}
				.filter-panel .keyword_button {
					flex-shrink: 0;
				}
			}

			/* Product details modal SVG chart styles */
			:root {
				--text-main: #1a1a1a;
				--text-muted: #666666;
			}
			.chart-wrapper-box {
				background: #fafafa;
				border-radius: 12px;
				border: 1px solid #ededed;
				padding: 12px;
				position: relative;
				width: 100%;
				overflow-x: auto;
				overflow-y: hidden;
				-webkit-overflow-scrolling: touch;
				box-shadow: inset 0 2px 8px rgba(0,0,0,0.01);
				direction: rtl; /* Forces horizontal scrollbar to start on the right (newest data) */
			}
			.chart-wrapper-box::-webkit-scrollbar {
				height: 6px;
			}
			.chart-wrapper-box::-webkit-scrollbar-track {
				background: #f1f1f1;
				border-radius: 4px;
			}
			.chart-wrapper-box::-webkit-scrollbar-thumb {
				background: #cbd5e1;
				border-radius: 4px;
			}
			.chart-wrapper-box::-webkit-scrollbar-thumb:hover {
				background: #94a3b8;
			}
			.v3-no-data {
				display: flex;
				flex-direction: column;
				align-items: center;
				justify-content: center;
				padding: 70px 20px;
				color: #aaaaaa;
				font-weight: 500;
				font-size: 14px;
			}
			.v3-no-data svg {
				margin-bottom: 12px;
			}

			/* Custom Tooltip Styling for Price History Chart */
			#chart-tooltip {
				position: absolute;
				display: none;
				background: rgba(255, 255, 255, 0.96);
				border: 1px solid rgba(0, 0, 0, 0.08);
				border-radius: 12px;
				padding: 12px 16px;
				box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1);
				font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
				pointer-events: none;
				z-index: 2000;
				opacity: 0;
				transform: scale(0.95);
				transition: opacity 0.15s ease, transform 0.15s ease;
				backdrop-filter: blur(6px);
				-webkit-backdrop-filter: blur(6px);
			}
			#chart-tooltip.visible {
				display: block;
				opacity: 1;
				transform: scale(1);
			}
			.tooltip-date {
				font-size: 11px;
				font-weight: 600;
				color: #64748b;
				text-transform: uppercase;
				letter-spacing: 0.5px;
				margin-bottom: 4px;
			}
			.tooltip-price-row {
				display: flex;
				align-items: baseline;
				gap: 6px;
			}
			.tooltip-price {
				font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
				font-weight: 800;
				font-size: 18px;
				color: #1e293b;
			}
			.tooltip-price.discount {
				color: #2e7d32;
			}
			.tooltip-regular {
				font-size: 12px;
				color: #64748b;
				text-decoration: line-through;
			}
			.tooltip-savings {
				font-size: 11px;
				font-weight: 700;
				color: #2e7d32;
				background: #e8f5e9;
				padding: 2px 6px;
				border-radius: 4px;
				margin-top: 4px;
				display: inline-block;
			}
			.tooltip-promo {
				font-size: 11px;
				font-weight: 600;
				color: #d32f2f;
				background: #ffebee;
				padding: 2px 6px;
				border-radius: 4px;
				margin-top: 4px;
				display: inline-block;
			}
			
			/* Modernized modal layout and visual components */
			#price-history .modal-content {
				border-radius: 16px;
				border: none;
				box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
				background: #ffffff;
			}
			#price-history .modal-header {
				border-bottom: 1px solid rgba(0, 0, 0, 0.06);
				padding: 12px 20px;
				background: #ffffff;
				border-top-left-radius: 16px;
				border-top-right-radius: 16px;
			}
			#product-name-modal {
				font-family: 'Outfit', sans-serif;
				font-weight: 700;
				font-size: 18px;
				color: #1a1a1a;
				margin: 0;
				line-height: 1.3;
			}
			#price-history .modal-body {
				padding: 16px 20px 10px 20px;
			}
			#price-history .modal-footer {
				border-top: 1px solid rgba(0, 0, 0, 0.06);
				padding: 8px 20px;
				background: #fafafa;
				border-bottom-left-radius: 16px;
				border-bottom-right-radius: 16px;
			}
			#price-history .btn-default {
				border-radius: 8px;
				font-family: 'Inter', sans-serif;
				font-weight: 600;
				padding: 6px 14px;
				border: 1px solid #d1d5db;
				color: #374151;
				background: #ffffff;
				transition: all 0.2s;
				font-size: 13px;
			}
			#price-history .btn-default:hover {
				background: #f3f4f6;
				color: #111827;
			}
			
			.modal-product-image-wrapper {
				background: #ffffff;
				border-radius: 8px;
				padding: 8px;
				border: 1px solid #f0f0f0;
				position: relative;
				overflow: hidden;
				display: flex;
				align-items: center;
				justify-content: center;
				min-height: 110px;
				max-height: 110px;
				margin-bottom: 6px;
			}
			.modal-product-main-img {
				max-height: 90px;
				object-fit: contain;
				transition: transform 0.3s ease;
			}
			.modal-product-image-wrapper:hover .modal-product-main-img {
				transform: scale(1.04);
			}
			.modal-discount-badge-overlay {
				position: absolute;
				top: 6px;
				left: 6px;
				background: linear-gradient(135deg, #FF9800, #FF5722);
				color: #ffffff;
				font-family: 'Outfit', sans-serif;
				font-weight: 800;
				font-size: 9px;
				padding: 2px 6px;
				border-radius: 20px;
				z-index: 10;
			}
			.modal-shop-logo-overlay {
				position: absolute;
				top: 6px;
				right: 6px;
				background: #ffffff;
				padding: 2px 6px;
				border-radius: 6px;
				box-shadow: 0 3px 8px rgba(0,0,0,0.06);
				border: 1px solid rgba(0,0,0,0.04);
				display: flex;
				align-items: center;
				z-index: 10;
			}
			.modal-shop-logo-overlay-img {
				max-height: 16px;
				max-width: 50px;
				object-fit: contain;
			}
			.modal-shop-logo-overlay-text {
				font-family: 'Outfit', sans-serif;
				font-weight: 800;
				font-size: 9px;
				color: #ffffff;
				padding: 3px 6px;
				border-radius: 6px;
				text-transform: uppercase;
				z-index: 10;
			}
			.modal-last-scanned-time {
				display: flex;
				align-items: center;
				justify-content: center;
				gap: 4px;
				font-family: 'Inter', sans-serif;
				font-size: 10px;
				color: #8c8c8c;
				margin-top: 4px;
				margin-bottom: 4px;
			}
			.modal-savings-nudge-alert {
				border-radius: 6px;
				padding: 4px 8px;
				margin-top: 4px;
				font-size: 11px;
				font-weight: 600;
				line-height: 1.4;
				text-align: center;
				font-family: 'Inter', sans-serif;
			}
			.modal-savings-nudge-alert.nudge-info { background: #e3f2fd; color: #0d47a1; border: 1px solid #bbdefb; }
			.modal-savings-nudge-alert.nudge-success { background: #e8f5e9; color: #2e7d32; border: 1px solid #c8e6c9; }
			.modal-savings-nudge-alert.nudge-warning { background: #fff3e0; color: #e65100; border: 1px solid #ffe0b2; }
			.modal-savings-nudge-alert.nudge-danger { background: #fbe9e7; color: #c62828; border: 1px solid #ffccbc; }
			
			.modal-product-subtitle {
				font-family: 'Outfit', sans-serif;
				font-size: 14px;
				color: #8c8c8c;
				font-weight: 600;
				margin-bottom: 4px;
				margin-top: 0;
			}
			.modal-product-pack-size {
				font-family: 'Inter', sans-serif;
				font-size: 11px;
				color: #666666;
				background: #f3f4f6;
				padding: 2px 6px;
				border-radius: 4px;
				display: inline-block;
				margin-bottom: 8px;
			}
			
			.modal-price-section-box {
				background: #fbfbfb;
				border-radius: 8px;
				border: 1px dashed #e2e2e2;
				padding: 8px 12px;
				margin-bottom: 8px;
			}
			.modal-price-container {
				display: flex;
				flex-direction: column;
			}
			.modal-price-label {
				font-family: 'Inter', sans-serif;
				font-size: 9px;
				text-transform: uppercase;
				letter-spacing: 0.5px;
				color: #8c8c8c;
				margin-bottom: 2px;
				font-weight: 700;
			}
			.modal-current-price-display {
				display: inline-flex;
				align-items: baseline;
				font-family: 'Outfit', sans-serif;
				font-weight: 800;
				line-height: 1;
			}
			.modal-current-price-display.discount-price-style {
				color: #2e7d32;
			}
			.modal-current-price-display.regular-price-style {
				color: #1a1a1a;
			}
			.modal-currency-symbol {
				font-size: 1.2rem;
				margin-right: 0.1rem;
				align-self: flex-start;
				margin-top: 0.15rem;
			}
			.modal-price-whole {
				font-size: 2.2rem;
				letter-spacing: -0.5px;
			}
			.modal-price-cents {
				font-size: 1.1rem;
				align-self: flex-start;
				margin-top: 0.1rem;
				text-decoration: underline;
				text-underline-offset: 2px;
			}
			.modal-original-price-display {
				font-family: 'Inter', sans-serif;
				font-size: 11px;
				color: #666666;
				margin-top: 2px;
			}
			.modal-savings-badge {
				align-self: flex-start;
				background: #e8f5e9;
				color: #2e7d32;
				font-family: 'Outfit', sans-serif;
				font-size: 10px;
				font-weight: 700;
				padding: 2px 5px;
				border-radius: 4px;
				margin-top: 4px;
			}
			.modal-unit-price-display {
				font-family: 'Inter', sans-serif;
				font-size: 10px;
				color: #8c8c8c;
				margin-top: 4px;
			}
			.modal-discount-validity-box {
				font-family: 'Inter', sans-serif;
				font-size: 11px;
				color: #d32f2f;
				background: #ffebee;
				padding: 6px 8px;
				border-radius: 4px;
				margin-top: 6px;
				border-left: 3px solid #d32f2f;
				font-weight: 500;
			}
			.modal-btn-shop-link-lg {
				display: inline-block;
				text-align: center;
				font-family: 'Outfit', sans-serif;
				font-weight: 700;
				border-radius: 6px;
				border: none;
				transition: all 0.25s ease;
				text-decoration: none !important;
				font-size: 13px;
				padding: 6px 12px;
				box-shadow: 0 3px 8px rgba(0,0,0,0.08);
				margin-bottom: 4px;
				width: auto;
			}
			.modal-btn-shop-link-lg:hover {
				transform: translateY(-1px);
				box-shadow: 0 5px 12px rgba(0,0,0,0.12);
			}
			.modal-vomar-warning {
				margin-top: 6px;
				padding: 6px 8px;
				background: #fff5f5;
				border-left: 3px solid #e53e3e;
				color: #c53030;
				font-size: 10px;
				border-radius: 4px;
				font-weight: 500;
				font-family: 'Inter', sans-serif;
			}
			
			@media (max-width: 767px) {
				#price-history .modal-body {
					padding: 12px 16px 8px 16px;
				}
				#price-history .modal-header {
					padding: 10px 16px;
				}
				#product-name-modal {
					font-size: 16px;
				}
				.modal-product-image-wrapper {
					min-height: 90px;
					max-height: 90px;
					padding: 4px;
				}
				.modal-product-main-img {
					max-height: 80px;
				}
				.modal-price-whole {
					font-size: 1.8rem;
				}
				.modal-price-cents {
					font-size: 0.9rem;
				}
			}
			
			/* Performance optimizations: skip rendering of off-screen cards to reduce layout/paint work

			   ⚠️ When MEASURING this grid, force content-visibility: visible on the
			   cells you compare first. A skipped cell reports the 370px placeholder
			   from getBoundingClientRect(), not its real 349px, and the lie is
			   inconsistent -- a cell you scrolled into view reads 349 while its
			   row-mates still read 371. That invents height differences that are not
			   there. See PROJECT_NOTES.md, "Measuring the product grid". */
			.product-entry {
				content-visibility: auto;
				contain-intrinsic-size: 1px 370px;
			}
