.light {
	--product-page-brand: #333;
	--product-page-sku: #666;
	--product-page-pack-border: #ddd;
	--product-page-pack: #444;
	--product-hidden-pack-bg: #fff1f1;
	--product-hidden-pack-border: #e59a9a;
	--product-page-options-border: #ccc;
	--product-page-options: #444;
	--product-info-tabs: #888;
	--product-info-tabs-active: #000;
	--quick-order-border: #cdbff1;
	--quick-order-bg: #fafaff;
	--product-alert-bg: #fff8e8;
	--product-alert-border: #f0c36a;
	--product-alert-text: #8a4c00;
	--product-review-star: #e5a719;
	--product-review-star-empty: #d8d5ce;
	--product-review-card-bg: #faf9f7;
	--product-review-border: #e6e2da;
	--product-review-verified: #257747;
	--product-review-verified-bg: #edf7f0;
	--product-review-bar-bg: #e7e3dc;
	--product-stores-banner-bg: #fff;
	--product-stores-banner-bg-top: #f9fbff;
	--product-stores-banner-glow: rgba(36,139,255,0.07);
	--product-stores-banner-grid: rgba(16,24,40,0.045);
	--product-stores-banner-border: #e3e8ef;
	--product-stores-banner-divider: #eef1f5;
	--product-stores-banner-land: #fff;
	--product-stores-banner-outline: #c8d7e9;
	--product-stores-banner-text: #182230;
	--product-stores-banner-address: #667085;
	--product-stores-banner-accent: #248bff;
	--product-stores-banner-accent-soft: rgba(36,139,255,0.10);
	--product-stores-banner-accent-text: #fff;
	--product-stores-banner-marker-bg: #98a2b3;
	--product-stores-banner-marker-ring: #fff;
	--product-stores-banner-marker-main-bg: #248bff;
	--product-stores-banner-shadow: rgba(16,24,40,0.06);
	--product-stores-banner-shadow-soft: rgba(16,24,40,0.13);
	--product-stores-banner-shadow-hover: rgba(16,24,40,0.20);
}
.dark {
	--product-page-brand: #ddd;
	--product-page-sku: #aaa;
	--product-page-pack-border: #444;
	--product-page-pack: #ccc;
	--product-hidden-pack-bg: #321c1c;
	--product-hidden-pack-border: #9b5555;
	--product-page-options-border: #666;
	--product-page-options: #aaa;
	--product-info-tabs: #ccc;
	--product-info-tabs-active: #fff;
	--quick-order-border: #666;
	--quick-order-bg: #222;
	--product-alert-bg: #211a0b;
	--product-alert-border: #7d5d20;
	--product-alert-text: #ffd87a;
	--product-review-star: #f0b631;
	--product-review-star-empty: #565656;
	--product-review-card-bg: #252525;
	--product-review-border: #444;
	--product-review-verified: #8bd3a5;
	--product-review-verified-bg: #193525;
	--product-review-bar-bg: #484848;
	--product-stores-banner-bg: #090909;
	--product-stores-banner-bg-top: #101010;
	--product-stores-banner-glow: rgba(255,204,0,0.055);
	--product-stores-banner-grid: rgba(255,255,255,0.04);
	--product-stores-banner-border: #2b2b2b;
	--product-stores-banner-divider: #1c1c1c;
	--product-stores-banner-land: #1c1c1c;
	--product-stores-banner-outline: #3a3a3a;
	--product-stores-banner-text: #fff;
	--product-stores-banner-address: #a9aeb6;
	--product-stores-banner-accent: #ffcc00;
	--product-stores-banner-accent-soft: rgba(255,204,0,0.14);
	--product-stores-banner-accent-text: #050505;
	--product-stores-banner-marker-bg: #5c5c5c;
	--product-stores-banner-marker-ring: #090909;
	--product-stores-banner-marker-main-bg: #ffcc00;
	--product-stores-banner-shadow: rgba(0,0,0,0.45);
	--product-stores-banner-shadow-soft: rgba(0,0,0,0.55);
	--product-stores-banner-shadow-hover: rgba(0,0,0,0.55);
}


.product-alert-msg {
	background-color: var(--product-alert-bg);
	color: var(--product-alert-text);
	padding: 15px;
	border: 1px solid var(--product-alert-border);
	border-radius: 4px;
	margin-bottom: 20px;
	text-align: center;
	font-weight: 500;
}

.product-admin-status-alert {
	background-color:#f33;
	color:#fff;
	font-weight:bold;
	text-transform:uppercase;
	text-align:center;
	padding:20px;
	border-radius:5px;
	margin:0 0 30px;
}


.pack-list {
	display: flex;
	flex-direction: row;
	align-items: stretch;
	flex-wrap: wrap;
	margin-bottom: 20px;
}
.pack-list .item {
	width:150px;
	padding: 8px 10px;
	border: 2px solid var(--product-page-pack-border);
	color:var(--product-page-pack);
	border-radius: 5px;
	margin: 0 10px 10px 0;
	text-align: center;
	font-size:12px;
	position: relative;
	display:flex;
	align-items:center;
	justify-content:center;
}
.pack-list .item .in { width:100%; }
.pack-list .item.selected {
	border-color: #f4ba42;
	border-width: 2px;
}
.pack-list .item.selected .main { font-weight: 500; }
.pack-list .item.hidden-pack,
.pack-list .item.hidden-pack.selected {
	background:var(--product-hidden-pack-bg);
	border-color:var(--product-hidden-pack-border);
}
.pack-hidden-badge {
	display:inline-flex;
	align-items:center;
	gap:4px;
	margin-top:5px;
	padding:2px 7px;
	border-radius:10px;
	background:#f04444;
	color:#fff;
	font-size:10px;
	font-weight:700;
	line-height:1.2;
}

.pack-list .item.loading .in { opacity: 0; }
.pack-list .item.loading::after {
	content: '';
	width: 20px; height: 20px;
	position: absolute;
	top: 50%; left: 50%;
	margin: -10px 0 0 -10px;
	border: 2px solid var(--spinner-color);
	border-top-color: var(--spinner-border-color);
	border-radius: 50%;
	animation: var(--spinner-animation);
}
.pack-list .item:hover {
	/* border-color: #7faae5; */
	/* color: #477dc6; */
	border-color: #f4ba42;
	cursor: pointer;
}
.pack-list .item .main {
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
}
.pack-list .item .doses {
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;

	opacity: 0.8;
	margin-top: 3px;
	min-height:1.2em;
	font-size: 0.9em;
	font-style: italic;
}
.pack-list .price {
	margin-top: 8px;
	font-size: 0.9em;
}
.pack-list .price .regular {
	margin-right: 3px;
	position: relative;
}
.pack-list .price .regular::before {
	content: '';
	position: absolute;
	top: 50%; left: 0;
	width: 100%;
	height: 1px;
	background-color: var(--price-regular-color);
	opacity: 0.4;
}
.pack-list .price .sale {
	font-weight: bold;
}

.options-pad {
	margin-bottom: 20px;
}
.options-list.single { width:100%; }
.options-list.single .item {
	width:fit-content;
	min-width:150px;
	max-width:100%;
	margin:0 0 10px;
	padding-left:14px;
	padding-right:14px;
	cursor:default;
}
.options-list {
	display: flex;
	flex-direction: row;
	align-items: center;
	flex-wrap: wrap;
	line-height: 1.2;
	position: relative;
}
.options-list .item {
	width:150px;
	height:40px;
	padding: 2px 10px;
	border: 1px solid var(--product-page-options-border);
	color:var(--product-page-options);
	border-radius: 3px;
	margin: 0 10px 10px 0;
	font-size:12px;
	font-weight: 500;;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}
.options-list.w80 .item { width: 80px; }
.options-list.w100 .item { width: 100px; }
.options-list.w130 .item { width: 130px; }

.options-list.less { max-height: 150px; overflow-y: hidden; }
.options-list.less::after {
	content: '';
	width: 100%; height: 80px;
	position: absolute;
	bottom:0; left:0;
	background: linear-gradient(to bottom, var(--background-color-transparent) 0%, var(--background-color) 100%);
	pointer-events: none;
	z-index: 1;
}

.options-pad .show-all {
	background: transparent;
	border: none;
	color: var(--dim-6-color);
	font-size: 12px;
	cursor: pointer;
}
.options-pad .show-all:hover {
	color: var(--dim-3-color);
}
.options-pad .show-all i {
	margin-left: 5px;
}

.options-list .item p {
	display: -webkit-box;
	line-clamp: 2; -webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
	text-align: center;
	word-break: break-word;
}
.options-list .item.selected {
	border-color: #f4ba42;
	/* background-color: #fffbf8; */
	border-width: 2px;
	font-weight: 500;
}
.options-list .item:hover {
	border-color: #f4ba42;
	cursor: pointer;
}
.options-list.single .item:hover { cursor:default; }
.options-list .item .option-popular { margin-left:4px; color:#f08a17; font-size:1em; }

.list-h {
	font-size: 14px;
	font-weight: normal;
	color:var(--dim-3-color);
	margin-bottom: 10px;
}
.list-h b { margin-left: 5px; }











.product-top-v2 {
	width:100%;
	box-sizing:border-box;
	/* border:2px solid #333; */
	display:flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: flex-start;
	/* background-color:#000; */
	margin-bottom:30px;
	position: relative;
}
.product-top-column { position:relative; text-align:left; }
.product-top-column.gallery { width: 400px; }
.product-top-v2 .middle-column { padding:0 40px; }
.product-top-v2 .buy-box-column { width:clamp(300px, 28vw, 400px); min-width:clamp(300px, 28vw, 400px); margin-left:auto; text-align:left; }

.product-top-v2.stack .middle-column { padding: 0 40px 0 0; }

.ptv2-bic-pic { width:400px; height:400px; cursor: zoom-in; max-width: none; }

.product-top-v2 h1 { font-size: 30px; }
.product-top-v2 a h3 { font-size:20px; font-weight:normal; color:var(--product-page-brand); margin-bottom:3px; }
.product-top-v2 a:hover h3 { text-decoration:underline; }

.product-top-v2 .meta-box { color:#999; font: normal 14px 'Commissioner', sans-serif; margin-top: 20px; }


.product-top-v2 .sku { color:var(--product-page-sku); font-size:12px; padding:0px 0 10px; }
.product-top-v2 .sku span { font-weight: bold; }


.select.highlight-red { border-color: #f77979 !important; }

.product-desc-banner { border:2px solid #333; margin-bottom:20px;font-size:0; }
.product-desc-banner img, .product-desc-banner picture { max-width: 616px; }

.zoom-pic-overlay { position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.8); z-index:1000; }
.zoom-pic { position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); }
.zoom-pic img { max-width:90%; max-height:90%; border-radius:10px; }



.product-price .sale { font-size: 26px; font-weight: bold; }
.product-price .regular { font-size: 22px; margin-bottom: 3px; position: relative; }
.product-price .regular::before {
	content: '';
	position: absolute;
	top: 55%; left: 0;
	width: 100%;
	height: 2px;
	background-color: var(--price-regular-color);
	opacity: 0.5;
}
.product-price .percent {
	color: #000;
    font-weight: bold;
    font-size: 14px;
    display: inline-block;
    background: #ffcc60;
    vertical-align:3px;
    padding: 2px 6px;
    border-radius: 3px;
	margin-left: 12px;
}
.product-top-v2 .price-mobile { display: none; margin:10px 0 40px; }
.product-top-v2 .price-mobile .product-price .regular { font-size: 18px; }
.product-price .sale.euro { font-size:26px; }
.product-price .euro-sep { margin:0 5px; }
.product-price-per-dose {
	display:flex;
	align-items:baseline;
	gap:3px;
	width:fit-content;
	margin-top:6px;
	color:var(--dim-9-color);
	font-size:11px;
	letter-spacing:0.015em;
	line-height:1.2;
}
.product-price-per-dose .value { color:var(--dim-6-color); font-size:12px; font-weight:600; font-variant-numeric:tabular-nums; }
.product-price-per-dose .separator { margin:0 1px; color:var(--dim-c-color); }
.product-price-per-dose span:last-child { text-transform:lowercase; }



.product-timer {
	margin-top:20px;
	display: inline-block;
	text-align: center;
}
.product-timer p {
	font-size: 11px;
	font-weight: bold;
	text-transform: uppercase;
	color:#fff;
	background-color: #da3535;
	background: linear-gradient(152deg, #da3535, #f57400);
	padding:6px 38px;
	border-radius: 5px 5px 0 0;
}
.product-timer .p-timer {
	font-family:'dsdigib', Arial, sans-serif;
	font-size: 32px;
	font-weight: bold;
	color:#da3535;
	line-height: 1em;
	padding:10px;
	border:1px dashed #da3535;
	border-top:none;
	border-radius: 0 0 5px 5px;
}




.product-top-v2 .free-delivery-tag {
	color: #129645;
	font-size: 14px;
	margin-top: 20px;
}
.product-top-v2 .free-delivery-tag i { margin-right: 5px; }




.quantity-box {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 130px;
	height: 40px;
	border: 1px solid #ddd;
	border-radius: 5px;
	background: #ffffff;
	overflow: hidden;
	margin:40px 0 20px;
	/* justify-self:center; */
}
.quantity-box-input {
	width: 50px;
	height: 100%;
	border: none;
	background: none;
	text-align: center;
	font-size: 14px;
	color: #333;
}
.quantity-box-minus, .quantity-box-plus {
	width: 40px;
	height: 100%;
	background: transparent;
	border: none;
	cursor: pointer;
}


.product-top-v2 .columns-2-3 { display: flex; width:100%; flex-direction: row; justify-content: space-between; }


.buy-box-v2 {
	color:#666;
	font-size: 13px;
	z-index:5;
}

.purchase-panel {
	width:100%;
	margin-top:22px;
}
.purchase-primary {
	display:grid;
	grid-template-columns:104px minmax(0, 1fr);
	align-items:stretch;
	gap:8px;
}
.purchase-panel .quantity-box {
	width:100%;
	height:56px;
	margin:0;
	border-color:var(--dim-d-color);
	border-radius:10px;
	background:var(--background-color);
}
.purchase-panel .quantity-box-input { width:40px; font-size:16px; color:var(--text-color); }
.purchase-panel .quantity-box-minus,
.purchase-panel .quantity-box-plus { width:32px; color:var(--dim-6-color); font-size:15px; }
.purchase-panel .buy-button-pad { min-width:0; }

.mobile-buy-dock { display:none; }




.buy-box-v2 .buy-button {
	width:100%;
	height:56px;
	background: rgb(18, 150, 69);
	border: none;
	color:#fff;
	font: bold 19px 'Commissioner', sans-serif;
	text-transform:uppercase;
	border-radius:4px;
	cursor:pointer;
}
.purchase-panel .buy-button { border-radius:10px; text-transform:none; }
.buy-box-v2 .buy-button:hover { background-color: rgb(18, 161, 73); }
.buy-box-v2 .buy-button:active { background-color: rgb(9, 99, 43); box-shadow: inset 0px 1px 0 1px rgba(0,0,0,0.2); }
.buy-box-v2 .buy-button > .buy-button-content { position:relative; z-index:1; pointer-events:none; }
.buy-box-v2 .buy-button:active > .buy-button-content { top:1px; }
.buy-button-content { display:flex; align-items:center; justify-content:center; gap:7px; }
.buy-button-content > i { margin:0; font-size:18px; }
.buy-button-copy { display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:0; }
.buy-button-label { font-size:17px; font-weight:700; line-height:1.1; white-space:nowrap; }
.buy-button-countdown { display:flex; align-items:center; justify-content:center; margin-top:3px; font-size:11px; font-weight:600; line-height:1; letter-spacing:0.04em; opacity:0.86; }

.buy-box-v2 .buy-button.timer { font-size:16px; }
.buy-box-v2 .buy-button .p-timer { display:inline; margin:0; font-family:'Commissioner', sans-serif; font-size:11px; font-weight:600; font-variant-numeric:tabular-nums; text-shadow:0 1px 0 rgba(0,0,0,0.1); }


.buy-box-v2 .buy-button {
	position: relative;
	overflow: hidden;
	transition: background-color 0.2s;
}

.buy-box-v2 .buy-button::before {
	content: '';
	position: absolute;
	top: 0; left: 0;
	right: 0; bottom: 0;
	background: radial-gradient(
		ellipse 100% 300% at var(--x, 50%) var(--y, 50%),
		rgba(46, 189, 14, 1) 0%,
		rgba(32, 162, 82,0) 40%
	);
	opacity: 0;
	transition: opacity 0.2s;
}

.buy-box-v2 .buy-button:hover::before { opacity: 1; }
.buy-box-v2 .buy-button:active::before { opacity: 0.8; transition: none; }

.buy-box-v2 .buy-button.loading,
.buy-box-v2 .buy-button.added,
.buy-box-v2 .buy-button.failed {
	cursor:default;
	pointer-events:none;
}
.buy-box-v2 .buy-button.loading span,
.buy-box-v2 .buy-button.added span,
.buy-box-v2 .buy-button.failed span { opacity:0; }
.buy-box-v2 .buy-button.loading::after {
	content:'';
	position:absolute;
	top:50%;
	left:50%;
	width:20px;
	height:20px;
	margin:-12px 0 0 -12px;
	border:3px solid rgba(255,255,255,0.35);
	border-top-color:#fff;
	border-radius:50%;
	animation:btn-loading 0.7s linear infinite;
	z-index:2;
}
.buy-box-v2 .buy-button.added::after,
.buy-box-v2 .buy-button.failed::after {
	content:attr(data-feedback);
	position:absolute;
	top:50%;
	left:10px;
	right:10px;
	transform:translateY(-50%);
	color:#fff;
	font-weight:bold;
	line-height:1.15;
	text-align:center;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
	z-index:2;
}
.buy-box-v2 .buy-button.added { background-color:#087a36; }
.buy-box-v2 .buy-button.added::after {
	content:'\2713';
	left:50%;
	right:auto;
	transform:translate(-50%, -50%);
	font-size:28px;
	line-height:1;
	animation:btn-added 0.25s ease-out;
}
.buy-box-v2 .buy-button.failed { background-color:#c63838; }
.buy-box-v2 .buy-button.failed::after { font-size:13px; }

@keyframes btn-added {
	from { transform:translate(-50%, -50%) scale(0.65); opacity:0; }
	to { transform:translate(-50%, -50%) scale(1); opacity:1; }
}


.quick-order-button {
	width:100%;
	height:40px;
	background: transparent;
	border: 1px solid var(--quick-order-border);
	color:var(--dim-6-color);
	font-size: 14px;
	font-weight: bold;
	text-transform:uppercase;
	border-radius:4px;
	margin-top:20px;
	cursor:pointer;
}
.quick-order-button:hover { background-color: var(--quick-order-bg); }
.quick-order-button:active { border-color:var(--dim-d-color); box-shadow: inset 0px 1px 0 0px rgba(0,0,0,0.2); }
.quick-order-button:active span { position:relative; top:1px; }
.quick-order-button i { margin-right: 5px; font-size:0.9em; }



.fav-product-box {
	margin-top:40px;
	text-align: center;
}
.fav-product {
	padding:8px 16px;
	background: var(--background-color);
	border-radius: 5px;
	border:1px solid var(--dim-d-color);
	color: var(--dim-6-color);
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
}
.fav-product i { margin-right: 5px; }
.fav-product:hover {
	background: var(--dim-e-color);
	color: var(--text-color);
}
.fav-product.active {
	background: #ffcc26;
	color: #000;
	border-color: #ffcc26;
}













.product-subcontent {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	margin: 30px 0;
}
.product-subcontent .product-left {
	flex:1;
	padding-right: 70px;
}
.product-subcontent .product-right {
	width:clamp(300px, 28vw, 400px);
	padding-top:50px;
	text-align: center;
}

/* Use one card for both placements, without duplicating its links or tracking. */
@media (min-width:769px) {
	.product-subcontent.has-banner-sidebar {
		display:grid;
		grid-template-columns:minmax(0, 1fr) clamp(300px, 28vw, 400px);
		grid-template-rows:auto 1fr;
		column-gap:70px;
		align-items:start;
	}
	.product-subcontent.has-banner-sidebar > .product-banner-slot { grid-column:2; grid-row:1; margin-top:50px; }
	.product-subcontent.has-banner-sidebar > .product-left { grid-column:1; grid-row:1 / 3; min-width:0; padding-right:0; }
	.product-subcontent.has-banner-sidebar > .product-right { grid-column:2; grid-row:2; width:100%; padding-top:0; }
}

/* Reuse the listing's HTML and container queries in the product banner slot. */
.product-banner-slot { min-width:0; margin-bottom:32px; }
.product-top-v2 .buy-box-column > .product-banner-slot { margin:28px 0 0; }
.product-banner-slot .product-rocket-banner { margin-bottom:0; }
.product-banner-slot .category-list-banner {
	height:350px;
	position:relative;
	overflow:hidden;
	container-name:clb;
	container-type:size;
	border-radius:12px;
	background:#f2f4f7;
	box-shadow:0 2px 10px rgba(24,38,46,.09);
	color:#fff;
}
.product-banner-slot .category-list-banner-link { display:block; width:100%; height:100%; position:relative; overflow:hidden; }
.product-banner-slot .category-list-banner-image { width:100%; height:100%; position:absolute; top:0; right:0; object-fit:cover; object-position:center; }
.product-banner-slot .clb-html { display:none; }
.product-banner-slot .custom-html-banner .clb-html {
	display:block !important;
	position:absolute !important;
	inset:0 !important;
	width:100% !important;
	height:100% !important;
	z-index:1 !important;
}
.product-banner-slot .custom-html-banner .clb-html,
.product-banner-slot .custom-html-banner .clb-html * { font-family:'Commissioner', Arial, sans-serif !important; }
.product-banner-slot .custom-html-banner.has-background-image .clb-html .clb-wrap,
.product-banner-slot .custom-html-banner.has-background-image .clb-html .bv4-wrap { background-color:transparent !important; background-image:none !important; }
@media (max-width:768px) {
	.product-banner-slot .category-list-banner { height:235px; }
}

/* Rocket placement: a best-seller promoted inside the product page. */
.product-rocket-banner {
	--prb-surface:#fff;
	--prb-surface-top:#fdfaf6;
	--prb-border:#f3c4a1;
	--prb-hover-border:#f3b16a;
	--prb-text:#16181d;
	--prb-muted:#6b7280;
	--prb-chip:#f1f3f7;
	--prb-accent:#ff7a00;
	--prb-accent-text:#b45309;
	--prb-accent-soft:rgba(255,122,0,0.09);
	--prb-accent-line:rgba(255,122,0,0.30);
	--prb-spot:rgba(255,145,40,0.16);
	--prb-stripe:#ff7a00;
	--prb-cta-from:#ffb020;
	--prb-cta-to:#ff7a00;
	--prb-cta-text:#fff;
	--prb-cta-glow:rgba(255,122,0,0.45);
	/* Multiply drops the white studio background of the product shot onto the warm card. */
	--prb-img-blend:multiply;
	--prb-price:#129645;
	--prb-off-bg:#e02b20;
	--prb-off-text:#fff;
	--prb-off-glow:rgba(224,43,32,0.45);
	--prb-shadow:rgba(16,24,40,0.08);
	--prb-shadow-hover:rgba(16,24,40,0.20);
	container-type:inline-size;
	container-name:product-rocket;
	margin:0 0 32px;
	font-family:'Commissioner', sans-serif;
	text-align:left;
}
.dark .product-rocket-banner {
	--prb-surface:#17181d;
	--prb-surface-top:#201d17;
	--prb-border:#7a6326;
	--prb-hover-border:#7a6326;
	--prb-text:#f2f3f5;
	--prb-muted:#a3a9b4;
	--prb-chip:#24262d;
	--prb-accent:#ffcc26;
	--prb-accent-text:#ffcc26;
	--prb-accent-soft:rgba(255,204,38,0.11);
	--prb-accent-line:rgba(255,204,38,0.28);
	--prb-spot:rgba(255,204,38,0.13);
	--prb-stripe:#ffb300;
	--prb-cta-from:#ffd44d;
	--prb-cta-to:#ffb300;
	--prb-cta-text:#fff;
	--prb-cta-glow:rgba(255,179,0,0.32);
	/* The dark-theme shot is already on a dark ground; multiplying it would black it out. */
	--prb-img-blend:normal;
	--prb-price:#ffcc26;
	--prb-off-bg:#e5483c;
	--prb-off-text:#fff;
	--prb-off-glow:rgba(229,72,60,0.40);
	--prb-shadow:rgba(0,0,0,0.55);
	--prb-shadow-hover:rgba(0,0,0,0.70);
}

/* The whole card is one target; the button only signals where the click lands. */
.prb-link {
	position:relative;
	display:grid;
	grid-template-columns:168px minmax(0, 1fr) minmax(196px, auto);
	align-items:center;
	gap:24px;
	padding:22px 24px;
	border:1px solid var(--prb-border);
	border-top:4px solid var(--prb-stripe);
	border-radius:16px;
	/* background:
		radial-gradient(120% 130% at 96% 0%, var(--prb-spot) 0%, transparent 58%),
		linear-gradient(158deg, var(--prb-surface-top) 0%, var(--prb-surface) 52%); */
	color:var(--prb-text);
	text-decoration:none;
	overflow:hidden;
	box-shadow:0 1px 2px var(--prb-shadow), 0 16px 32px -20px var(--prb-shadow);
	transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
/* A promo stripe marks the card as an offer before a single word is read. */
.prb-link:hover { color:var(--prb-text); text-decoration:none; }
.prb-link:focus-visible { outline:2px solid var(--prb-accent); outline-offset:3px; }
@media (hover: hover) {
	.prb-link:hover {
		transform:translateY(-1px);
		border-color:var(--prb-hover-border);
		border-top-color:var(--prb-stripe);
		box-shadow:0 2px 4px var(--prb-shadow), 0 24px 42px -20px var(--prb-shadow-hover);
	}
	.prb-link:hover .prb-cta { background-position:100% 0; box-shadow:0 10px 20px -8px var(--prb-cta-glow); }
	.prb-link:hover .prb-cta .prb-icon { transform:translateX(3px); }
}

/* Product shot. */
.prb-media { position:relative; width:168px; height:168px; }
.prb-media::before {
	content:"";
	position:absolute;
	inset:2px;
	border-radius:50%;
	background:radial-gradient(circle at 50% 46%, var(--prb-spot) 0%, transparent 68%);
}
.prb-image { position:relative; width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.prb-image picture { display:flex; width:100%; height:100%; align-items:center; justify-content:center; }
.prb-image img { display:block; max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; mix-blend-mode:var(--prb-img-blend); transition:transform .3s ease; }
.prb-off {
	position:absolute;
	top:-4px;
	left:-8px;
	z-index:2;
	padding:5px 9px;
	border-radius:8px;
	background:var(--prb-off-bg);
	color:var(--prb-off-text);
	font-size:13px;
	font-weight:800;
	line-height:1;
	letter-spacing:-0.01em;
	white-space:nowrap;
	transform:rotate(-6deg);
	box-shadow:0 5px 12px -4px var(--prb-off-glow);
}

/* Why this product is worth a look. */
.prb-info { min-width:0; }
.prb-badge {
	display:inline-flex;
	align-items:center;
	gap:6px;
	margin-bottom:10px;
	padding:4px 11px 4px 8px;
	border:1px solid var(--prb-accent-line);
	border-radius:999px;
	background:var(--prb-accent-soft);
	color:var(--prb-accent-text);
	font-size:11px;
	font-weight:800;
	line-height:1.4;
	letter-spacing:0.07em;
	text-transform:uppercase;
}
.prb-badge .prb-icon { width:14px; height:14px; }
.prb-brand { margin-bottom:3px; color:var(--prb-muted); font-size:12px; font-weight:600; line-height:1.4; letter-spacing:0.05em; text-transform:uppercase; }
.prb-link .prb-name {
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
	margin:0;
	overflow:hidden;
	color:var(--prb-text);
	font-size:21px;
	font-weight:800;
	line-height:1.25;
	letter-spacing:-0.01em;
	overflow-wrap:anywhere;
}
.prb-meta { display:flex; flex-wrap:wrap; align-items:center; gap:7px 10px; margin-top:10px; font-size:12.5px; line-height:1.3; }
.prb-pack { padding:3px 9px; border-radius:6px; background:var(--prb-chip); color:var(--prb-text); font-weight:600; }
.prb-why { margin-top:9px; color:var(--prb-muted); font-size:12.5px; line-height:1.45; }

/* Price and the click target. */
.prb-action { display:flex; flex-direction:column; align-items:stretch; gap:11px; min-width:0; }
.prb-prices { display:flex; flex-direction:column; align-items:center; gap:1px; font-variant-numeric:tabular-nums; }
.prb-was { color:var(--prb-muted); font-size:13px; line-height:1.35; text-decoration-thickness:1.5px; }
.prb-price { color:var(--prb-text); font-size:30px; font-weight:800; line-height:1.15; letter-spacing:-0.02em; white-space:nowrap; }
.prb-price.sale { color:var(--prb-price); }
.prb-cta {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:9px;
	min-height:48px;
	padding:12px 20px;
	border-radius:10px;
	background:linear-gradient(100deg, var(--prb-cta-from) 0%, var(--prb-cta-to) 50%, var(--prb-cta-from) 100%);
	background-size:220% 100%;
	background-position:0 0;
	color:var(--prb-cta-text);
	font-size:15px;
	font-weight:800;
	line-height:1.2;
	white-space:nowrap;
	box-shadow:0 6px 14px -7px var(--prb-cta-glow);
	transition:background-position .4s ease, box-shadow .25s ease;
}
.prb-cta .prb-icon { width:16px; height:16px; transition:transform .25s ease; }
.prb-icon { flex:none; display:block; }

@container product-rocket (max-width:720px){
	.prb-link { grid-template-columns:136px minmax(0, 1fr); gap:16px 18px; padding:20px 18px 18px; }
	.prb-media { width:136px; height:156px; }
	.prb-action {
		grid-column:1 / -1;
		flex-direction:row;
		flex-wrap:wrap;
		align-items:center;
		justify-content:space-between;
		gap:12px 16px;
		padding-top:16px;
		border-top:1px solid var(--prb-border);
	}
	.prb-prices { flex:1 1 auto; align-items:center; }
	.prb-cta { flex:0 0 auto; }
	.prb-link .prb-name { font-size:19px; }
	.prb-price { font-size:27px; }
}
/* On a phone the card has to stay inside a square, so it keeps only what sells: proof, price and the button. */
@container product-rocket (max-width:420px){
	.prb-link { grid-template-columns:112px minmax(0, 1fr); gap:12px; padding:15px 14px 14px; }
	.prb-media { width:112px; height:140px; }
	.prb-badge { margin-bottom:7px; padding:3px 9px 3px 7px; font-size:10px; }
	.prb-badge .prb-icon { width:12px; height:12px; }
	.prb-brand { margin-bottom:2px; font-size:11px; }
	.prb-link .prb-name { font-size:16px; }
	.prb-meta { gap:5px 7px; margin-top:8px; font-size:11px; }
	.prb-pack { padding:2px 7px; }
	/* The badge already makes the best-seller point; the sentence is desktop breathing room. */
	.prb-why { display:none; }
	.prb-action { padding-top:12px; gap:10px 12px; }
	.prb-prices { flex-direction:row; flex-wrap:wrap; align-items:baseline; justify-content:center; gap:0 8px; }
	.prb-was { font-size:12px; }
	.prb-price { font-size:23px; }
	.prb-cta { flex:1 0 100%; min-height:46px; padding:11px 16px; font-size:14.5px; }
}
@media(prefers-reduced-motion:reduce){
	.prb-link, .prb-image img, .prb-cta, .prb-cta .prb-icon { transition:none; }
	.prb-link:hover { transform:none; }
	.prb-link:hover .prb-image img { transform:none; }
	.prb-link:hover .prb-cta .prb-icon { transform:none; }
}

/* Product-page stores banner. */
.product-stores-banner {
	position:relative;
	display:block;
	width:100%;
	margin:0 auto;
	border:1px solid var(--product-stores-banner-border);
	border-radius:16px;
	background:
		radial-gradient(130% 70% at 0% 0%, var(--product-stores-banner-glow) 0%, transparent 72%),
		linear-gradient(150deg, var(--product-stores-banner-bg-top) 0%, var(--product-stores-banner-bg) 60%);
	color:var(--product-stores-banner-text);
	font-family:'Commissioner', sans-serif;
	text-align:left;
	overflow:hidden;
	box-shadow:
		0 1px 2px var(--product-stores-banner-shadow),
		0 12px 28px -10px var(--product-stores-banner-shadow-soft);
	transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
@media (hover: hover) {
	.product-stores-banner:hover {
		transform:translateY(-3px);
		border-color:var(--product-stores-banner-accent);
		box-shadow:
			0 2px 4px var(--product-stores-banner-shadow),
			0 20px 40px -12px var(--product-stores-banner-shadow-hover);
	}
}
.product-stores-banner:hover { color:var(--product-stores-banner-text); }
.product-stores-banner:focus-visible { outline:2px solid var(--product-stores-banner-accent); outline-offset:3px; }

/* Header block. */
.product-stores-banner-head { padding:16px 16px 0; }
.product-stores-banner-eyebrow {
	display:block;
	color:var(--product-stores-banner-accent);
	font-size:11px;
	font-weight:800;
	letter-spacing:0.09em;
}
.product-stores-banner-stats { margin:4px 0 0; color:var(--product-stores-banner-address); font-size:13px; font-weight:500; line-height:1.3; }
.product-stores-banner-stats b { color:var(--product-stores-banner-text); font-weight:800; font-variant-numeric:tabular-nums; }
.product-stores-banner h2 {
	margin:6px 0 0;
	color:var(--product-stores-banner-text);
	font-size:20px;
	font-weight:800;
	line-height:1.15;
	letter-spacing:-0.005em;
	white-space:nowrap;
	text-align:left;
}

/* Map. */
.product-stores-banner-map { position:relative; width:calc(100% - 28px); max-width:400px; aspect-ratio:800 / 526; margin:22px auto 20px; }
.product-stores-banner-map::before {
	content:"";
	position:absolute;
	inset:-8% -6%;
	background-image:radial-gradient(var(--product-stores-banner-grid) 1px, transparent 1px);
	background-size:13px 13px;
	-webkit-mask-image:radial-gradient(72% 68% at 50% 50%, #000 30%, transparent 100%);
	mask-image:radial-gradient(72% 68% at 50% 50%, #000 30%, transparent 100%);
}
.product-stores-banner-map svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.product-stores-banner-country {
	fill:var(--product-stores-banner-land);
	filter:drop-shadow(0 1px 2px rgba(16,24,40,0.07));
	stroke:var(--product-stores-banner-outline);
	stroke-width:5;
	stroke-linejoin:round;
}
.product-stores-banner-marker { fill:var(--product-stores-banner-marker-bg); stroke:var(--product-stores-banner-marker-ring); stroke-width:4; }
.product-stores-banner-marker.is-main { fill:var(--product-stores-banner-marker-main-bg); stroke-width:5; }

/* Our own stores vs. Kaufland corners. */
.product-stores-banner-group { padding:0 16px; }
.product-stores-banner-group.is-kaufland { margin-top:12px; padding-top:12px; border-top:1px solid var(--product-stores-banner-divider); }
.product-stores-banner-group-title {
	display:flex;
	align-items:center;
	gap:7px;
	margin:0;
	color:var(--product-stores-banner-text);
	font-size:11px;
	font-weight:800;
	letter-spacing:0.06em;
}
.product-stores-banner-group-title i {
	flex:none;
	width:9px;
	height:9px;
	border-radius:50%;
	background:var(--product-stores-banner-accent);
}
.product-stores-banner-group-title b {
	padding:2px 7px;
	border-radius:999px;
	background:var(--product-stores-banner-accent-soft);
	color:var(--product-stores-banner-accent);
	font-size:11px;
	font-weight:800;
	font-variant-numeric:tabular-nums;
}
.product-stores-banner-group.is-kaufland .product-stores-banner-group-title { color:var(--product-stores-banner-address); }
.product-stores-banner-group.is-kaufland .product-stores-banner-group-title i { background:var(--product-stores-banner-marker-bg); }
.product-stores-banner-group.is-kaufland .product-stores-banner-group-title b {
	background:var(--product-stores-banner-divider);
	color:var(--product-stores-banner-address);
}
.product-stores-banner-cities { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
.product-stores-banner-group.is-kaufland .product-stores-banner-cities { gap:4px; margin-top:8px; }
.product-stores-banner-group.is-kaufland .product-stores-banner-cities span {
	padding:3px 7px;
	background:var(--product-stores-banner-divider);
	color:var(--product-stores-banner-address);
	font-size:11px;
	font-weight:600;
}
.product-stores-banner-cities span {
	padding:4px 8px;
	border-radius:6px;
	background:var(--product-stores-banner-accent-soft);
	color:var(--product-stores-banner-accent);
	font-size:12px;
	font-weight:700;
	line-height:1.25;
}

/* Call to action. */
.product-stores-banner-cta {
	display:flex;
	align-items:center;
	justify-content:center;
	gap:9px;
	margin:22px 16px 16px;
	padding:11px 12px;
	border-radius:10px;
	background:var(--product-stores-banner-accent);
	color:var(--product-stores-banner-accent-text);
	font-size:13px;
	font-weight:800;
	letter-spacing:0.05em;
	text-align:center;
}
.product-stores-banner-cta i {
	display:inline-block;
	width:0;
	height:0;
	border-top:5px solid transparent;
	border-bottom:5px solid transparent;
	border-left:6px solid var(--product-stores-banner-accent-text);
}
@media (prefers-reduced-motion: reduce) {
	.product-stores-banner { transition:none; }
	.product-stores-banner:hover { transform:none; }
}



.product-ingredients-button {
	display: inline-block;
	color: #666;
	background: transparent;
	border:none;
	font-weight: bold;
	text-decoration: none;
	margin-top: 10px;
	cursor: pointer;
}
.product-ingredients-button i { margin-right: 5px; font-size: 15px; }



.product-info-tabs {
	margin: 40px 0 30px;
}
.product-info-tabs .tab {
	display: inline-block;
	padding: 8px 20px;
	color: var(--product-info-tabs);
	font-size: 14px;
	font-weight: bold;
	text-transform: uppercase;
	margin-right: 30px;
	cursor: pointer;
}
.product-info-tabs .tab:hover {
	color: var(--product-info-tabs-active);
}
.product-info-tabs .tab.active {
	border-bottom: 2px solid var(--product-info-tabs-active);
	color: var(--product-info-tabs-active);
}
.product-info-tab-content { display: none; }
.product-info-tab-content.active { display: block; }

.product-description {
	font-size: 15px;
}

.product-description-expand { display:none; }

@media (max-width: 768px) {
	.product-description-preview { --description-preview-height:320px; }
	.product-description-preview.is-collapsed .product-description-clip {
		max-height:var(--description-preview-height);
		overflow:hidden;
		-webkit-mask-image:linear-gradient(to bottom, #000 calc(100% - 120px), transparent);
		mask-image:linear-gradient(to bottom, #000 calc(100% - 120px), transparent);
	}
	.product-description-expand:not([hidden]) {
		display:flex;
		align-items:center;
		justify-content:center;
		gap:10px;
		width:fit-content;
		max-width:100%;
		min-height:48px;
		margin:6px auto 30px;
		padding:12px 22px;
		border:0;
		border-radius:999px;
		background:var(--dim-f5-color);
		color:var(--text-color);
		font:inherit;
		font-weight:600;
		cursor:pointer;
	}
	.product-description-expand:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
}


/* Redesigned product nutrition label preview. */
.fdap-v2 {
	width:100%;
	max-width:920px;
	border:2px solid var(--text-color);
	border-radius:4px;
	background:var(--background-color);
	box-shadow:none;
	overflow:hidden;
	box-sizing:border-box;
}
.fdap-v2-compact { max-width:620px; }
.fdap-v2-header { padding:18px 20px 16px; }
.fdap-v2-heading { margin:0; color:var(--text-color); font-size:24px; font-weight:800; line-height:1.1; letter-spacing:-0.025em; }
.fdap-v2-compact .fdap-v2-heading { font-size:20px; }
.fdap-v2-product-name { margin-top:5px; color:var(--dim-3-color); font-size:14px; line-height:1.4; }
.fdap-v2-facts { display:flex; align-items:center; flex-wrap:wrap; gap:8px 28px; margin-top:15px; padding-top:11px; border-top:1px solid var(--dim-d-color); }
.fdap-v2-fact {
	display:flex;
	align-items:baseline;
	gap:6px;
	padding:0;
	border:0;
}
.fdap-v2-fact span { color:var(--dim-6-color); font-size:11px; font-weight:600; }
.fdap-v2-fact strong { color:var(--text-color); font-size:14px; font-weight:700; white-space:nowrap; }
.fdap-v2-table-wrap { overflow-x:auto; border-top:6px solid var(--text-color); }
.fdap-v2-table { width:100%; table-layout:fixed; border-collapse:collapse; color:var(--text-color); }
.fdap-v2-table th,
.fdap-v2-table td { padding:11px 14px; border-bottom:1px solid var(--dim-d-color); font-size:14px; line-height:1.35; vertical-align:middle; }
.fdap-v2-table thead th {
	background:var(--background-color);
	color:var(--text-color);
	font-size:11px;
	font-weight:800;
	letter-spacing:0.035em;
	text-transform:uppercase;
	white-space:nowrap;
	border-bottom:3px solid var(--text-color);
}
.fdap-v2-table thead th .fdap-v2-th-short { display:none; }
.fdap-v2-sr-only {
	position:absolute;
	width:1px;
	height:1px;
	margin:-1px;
	padding:0;
	border:0;
	clip-path:inset(50%);
	overflow:hidden;
	white-space:nowrap;
}
.fdap-v2-table th { text-align:left; font-weight:500; }
.fdap-v2-table th.is-name { width:55%; }
.fdap-v2-table.fdap-v2-columns-4 th.is-name { width:46%; }
.fdap-v2-table.fdap-v2-columns-5 th.is-name { width:40%; }
.fdap-v2-table th.is-value,
.fdap-v2-table td { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.fdap-v2-table tbody tr:last-child > * { border-bottom:0; }
@media (hover: hover) {
	.fdap-v2-table tbody tr:not(.fdap-v2-group-row):not(.fdap-v2-separator-row):hover > * { background:var(--dim-fa-color); }
}
.fdap-v2-table .fdap-v2-group-row th {
	padding-top:13px;
	padding-bottom:7px;
	background:var(--background-color);
	color:var(--text-color);
	font-size:12px;
	font-weight:800;
	letter-spacing:0.025em;
	text-transform:uppercase;
	border-top:4px solid var(--text-color);
}
.fdap-v2-table .fdap-v2-matrix-row th { font-weight:700; }
.fdap-v2-table .fdap-v2-sub-row th { color:var(--dim-6-color); font-weight:400; }
.fdap-v2-table .fdap-v2-sub-row th span { display:block; padding-left:16px; border-left:2px solid var(--dim-d-color); }
.fdap-v2-table .fdap-v2-separator-row td { height:4px; padding:0; border-bottom:4px solid var(--text-color); }
.fdap-v2-notes { display:flex; border-top:6px solid var(--text-color); background:var(--background-color); }
.fdap-v2-compact .fdap-v2-notes { display:block; border-top-width:4px; }
.fdap-v2-note { flex:1; min-width:0; padding:17px 20px 19px; }
.fdap-v2-note + .fdap-v2-note { border-left:1px solid var(--dim-e-color); }
.fdap-v2-compact .fdap-v2-note + .fdap-v2-note { border-top:1px solid var(--dim-e-color); border-left:0; }
.fdap-v2-note h3 { margin:0 0 7px; color:var(--text-color); font-size:11px; font-weight:800; letter-spacing:0.045em; text-transform:uppercase; }
.fdap-v2-note p,
.fdap-v2-note div { margin:0; color:var(--text-color); font-size:15px; line-height:1.6; }

@media (max-width: 600px) {
	.fdap-v2 { border-radius:3px; }
	.fdap-v2-header { padding:17px 18px; }
	.fdap-v2-heading { font-size:21px; }
	.fdap-v2-product-name { font-size:13px; }
	.fdap-v2-facts { display:block; }
	.fdap-v2-fact + .fdap-v2-fact { margin-top:7px; }
	.fdap-v2-table-wrap { overflow:visible; }
	.fdap-v2-table { min-width:0; }
	.fdap-v2-table th,
	.fdap-v2-table td { padding:10px 8px; font-size:12px; }
	.fdap-v2-table thead th { font-size:9px; white-space:normal; }
	.fdap-v2-table.fdap-v2-columns-2 th.is-name { width:60%; }
	.fdap-v2-table.fdap-v2-columns-3 th.is-name { width:42%; }
	.fdap-v2-table.fdap-v2-columns-4 th.is-name { width:38%; }
	.fdap-v2-table:not(.fdap-v2-table-stacked) td { white-space:normal; }
	.fdap-v2-table:not(.fdap-v2-table-stacked) tbody th { font-size:13px; }
	/* Narrow screens get abbreviated headers so 3-4 value columns still fit a real table. */
	.fdap-v2-table:not(.fdap-v2-table-stacked) thead th { font-size:10px; letter-spacing:0.02em; white-space:nowrap; }
	.fdap-v2-table:not(.fdap-v2-table-stacked) thead th .fdap-v2-th-full { display:none; }
	.fdap-v2-table:not(.fdap-v2-table-stacked) thead th .fdap-v2-th-short { display:inline; }
	.fdap-v2-table:not(.fdap-v2-table-stacked) th.is-col-ri { width:46px; }
	.fdap-v2-table:not(.fdap-v2-table-stacked) .fdap-v2-sub-row th span { padding-left:10px; border-left-width:2px; }
	.fdap-v2-table.fdap-v2-columns-4:not(.fdap-v2-table-stacked) th,
	.fdap-v2-table.fdap-v2-columns-4:not(.fdap-v2-table-stacked) td { padding:9px 6px; }
	.fdap-v2-table.fdap-v2-columns-4:not(.fdap-v2-table-stacked) tr > *:first-child { padding-left:12px; }
	.fdap-v2-table.fdap-v2-columns-4:not(.fdap-v2-table-stacked) tr > *:last-child { padding-right:12px; }
	.fdap-v2-table:not(.fdap-v2-table-stacked) .fdap-v2-group-row th { padding-top:13px; padding-bottom:7px; }
	/* Break paired values ("1666 kJ / 394 kcal") onto their own lines, without the dangling slash. */
	.fdap-v2-table:not(.fdap-v2-table-stacked) td .fdap-v2-val-part { display:block; white-space:nowrap; }
	.fdap-v2-table:not(.fdap-v2-table-stacked) td .fdap-v2-val-sep { display:none; }
	.fdap-v2-table-stacked { display:block; table-layout:auto; }
	.fdap-v2-table-stacked thead { display:none; }
	.fdap-v2-table-stacked tbody { display:block; }
	.fdap-v2-table-stacked tbody tr {
		display:grid;
		grid-template-columns:repeat(2, minmax(0, 1fr));
		gap:10px 0;
		padding:14px 16px 15px;
		border-bottom:1px solid var(--dim-d-color);
	}
	.fdap-v2-table-stacked tbody tr > th {
		grid-column:1 / -1;
		padding:0 0 2px;
		border:0;
		font-size:15px;
		font-weight:600;
		line-height:1.35;
	}
	.fdap-v2-table-stacked tbody tr > td {
		padding:8px 12px 0 0;
		border:0;
		border-top:1px solid var(--dim-e-color);
		font-size:14px;
		font-weight:600;
		line-height:1.35;
		text-align:left;
		white-space:normal;
	}
	.fdap-v2-table-stacked tbody tr > td:nth-of-type(even) { padding-right:0; padding-left:12px; border-left:1px solid var(--dim-e-color); }
	.fdap-v2-table-stacked tbody tr > td::before {
		content:attr(data-label);
		display:block;
		margin-bottom:4px;
		color:var(--dim-6-color);
		font-size:9px;
		font-weight:700;
		letter-spacing:0.035em;
		line-height:1.25;
		text-transform:uppercase;
	}
	.fdap-v2-table-stacked tbody .fdap-v2-group-row {
		display:block;
		padding:13px 16px 9px;
		border-top:4px solid var(--text-color);
		border-bottom:0;
	}
	.fdap-v2-table-stacked tbody .fdap-v2-group-row th { display:block; padding:0; border:0; }
	.fdap-v2-table-stacked tbody .fdap-v2-separator-row { display:block; height:4px; padding:0; border:0; border-bottom:4px solid var(--text-color); }
	.fdap-v2-table-stacked tbody .fdap-v2-separator-row td { display:none; }
	.fdap-v2-table-stacked .fdap-v2-sub-row th span { padding-left:11px; border-left-width:3px; }
	.fdap-v2-notes { display:block; }
	.fdap-v2-note { padding:18px 20px 20px; }
	.fdap-v2-note + .fdap-v2-note { border-top:1px solid var(--dim-e-color); border-left:0; }
}

@media (max-width: 360px) {
	/* Give the value columns a little more room on the narrowest phones. */
	.fdap-v2-table.fdap-v2-columns-4:not(.fdap-v2-table-stacked) th.is-name { width:33%; }
	.fdap-v2-table.fdap-v2-columns-4:not(.fdap-v2-table-stacked) th,
	.fdap-v2-table.fdap-v2-columns-4:not(.fdap-v2-table-stacked) td { padding:9px 4px; font-size:11px; }
	.fdap-v2-table.fdap-v2-columns-4:not(.fdap-v2-table-stacked) tbody th { font-size:12px; }
	.fdap-v2-table.fdap-v2-columns-4:not(.fdap-v2-table-stacked) tr > *:first-child { padding-left:10px; }
	.fdap-v2-table.fdap-v2-columns-4:not(.fdap-v2-table-stacked) tr > *:last-child { padding-right:10px; }
	.fdap-v2-table.fdap-v2-columns-4:not(.fdap-v2-table-stacked) th.is-col-ri { width:40px; }
}


.product-review-compact {
	display:flex;
	align-items:center;
	gap:7px;
	width:fit-content;
	margin:8px 0 2px;
	color:var(--text-color);
	font-size:13px;
	text-decoration:none;
}
.product-review-compact:hover span:last-child { text-decoration:underline; }
.product-review-compact strong { font-size:14px; }

.product-review-stars {
	display:inline-flex;
	align-items:center;
	gap:2px;
	color:var(--product-review-star-empty);
	line-height:1;
}
.product-review-star {
	display:inline-block;
	position:relative;
	width:17px;
	height:18px;
	font-size:18px;
	line-height:18px;
}
.product-review-star .fill {
	display:block;
	position:absolute;
	top:0;
	left:0;
	height:100%;
	overflow:hidden;
	color:var(--product-review-star);
	white-space:nowrap;
}
.product-review-stars.compact .product-review-star {
	width:15px;
	height:16px;
	font-size:16px;
	line-height:16px;
}
.product-review-stars.large .product-review-star {
	width:22px;
	height:23px;
	font-size:23px;
	line-height:23px;
}

.product-reviews {
	margin:52px 0;
	padding:30px;
	border:1px solid var(--product-review-border);
	border-radius:12px;
}
.product-reviews-heading { margin-bottom:26px; }
.product-reviews-heading h2 {
	margin:0 0 6px;
	font-size:24px;
	line-height:1.25;
}
.product-reviews-heading p {
	margin:0;
	color:var(--dim-3-color);
	font-size:14px;
}
.product-reviews-overview {
	display:grid;
	grid-template-columns:minmax(180px, 0.8fr) minmax(300px, 1.2fr);
	gap:38px;
	align-items:center;
	padding:26px;
	background:var(--product-review-card-bg);
	border-radius:10px;
}
.product-reviews-overview.sparse {
	display:block;
	max-width:360px;
}
.product-reviews-score {
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	gap:8px;
}
.product-reviews-score > strong {
	font-size:40px;
	line-height:1;
}
.product-reviews-score > span:not(.product-review-stars):not(.product-review-verified) {
	color:var(--dim-3-color);
	font-size:13px;
}
.product-review-verified {
	display:inline-flex;
	align-items:center;
	gap:5px;
	width:fit-content;
	padding:4px 8px;
	background:var(--product-review-verified-bg);
	border-radius:20px;
	color:var(--product-review-verified);
	font-size:11px;
	font-weight:600;
}
.product-reviews-distribution { display:flex; flex-direction:column; gap:3px; }
.product-review-filter {
	display:grid;
	grid-template-columns:100px minmax(120px, 1fr) 32px;
	align-items:center;
	gap:12px;
	width:100%;
	padding:5px 7px;
	background:transparent;
	border:0;
	border-radius:5px;
	color:var(--text-color);
	font-size:12px;
	text-align:left;
	cursor:pointer;
}
.product-review-filter:hover,
.product-review-filter.active { background:var(--dim-e-color); }
.product-review-filter b { font-weight:500; text-align:right; }
.product-review-bar {
	display:block;
	height:7px;
	overflow:hidden;
	background:var(--product-review-bar-bg);
	border-radius:5px;
}
.product-review-bar i {
	display:block;
	height:100%;
	background:var(--product-review-star);
	border-radius:5px;
}
.product-review-list { margin-top:8px; }
.product-review-card {
	padding:24px 4px;
	border-bottom:1px solid var(--product-review-border);
}
.product-review-card:last-child { border-bottom:0; }
.product-review-card-top,
.product-review-card-meta {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
}
.product-review-card-top time {
	color:var(--dim-3-color);
	font-size:11px;
}
.product-review-card .product-review-star {
	width:15px;
	height:16px;
	font-size:16px;
	line-height:16px;
}
.product-review-comment {
	max-width:760px;
	margin:12px 0 0;
	font-size:15px;
	line-height:1.65;
}
.product-review-card-footer { margin-top:14px; }
.product-review-card-meta {
	justify-content:flex-start;
	flex-wrap:wrap;
	column-gap:12px;
	row-gap:6px;
}
.product-review-author {
	display:inline-flex;
	align-items:baseline;
	gap:6px;
	white-space:nowrap;
}
.product-review-customer {
	font-size:13px;
	font-weight:600;
}
.product-review-country {
	color:var(--dim-3-color);
	font-size:12px;
	font-weight:400;
}
.product-review-customer + .product-review-country::before {
	content:'·';
	margin-right:6px;
}
.product-review-card .product-review-verified {
	padding:0;
	background:transparent;
	border-radius:0;
	color:var(--dim-3-color);
	font-size:11px;
	font-weight:400;
}
.product-review-card .product-review-verified i { color:var(--product-review-verified); }
.product-review-generated {
	display:inline-flex;
	width:fit-content;
	padding:3px 7px;
	border:1px solid var(--product-review-border);
	border-radius:4px;
	color:var(--dim-3-color);
	font-size:11px;
	font-weight:600;
}
.product-review-purchase-details {
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	column-gap:0;
	row-gap:4px;
	margin-top:8px;
	color:var(--dim-3-color);
	font-size:12px;
}
.product-review-purchase-details span {
	display:inline-flex;
	align-items:center;
	gap:5px;
}
.product-review-purchase-details span + span::before {
	content:'·';
	margin:0 8px;
	color:var(--dim-3-color);
}
.product-review-purchase-details b {
	font-weight:500;
}
.product-review-pending {
	padding:3px 7px;
	background:var(--product-alert-bg);
	border-radius:20px;
	color:var(--product-alert-text);
	font-size:10px;
	font-weight:600;
}
.product-reviews-empty {
	display:flex;
	align-items:center;
	gap:18px;
	max-width:680px;
	padding:22px;
	background:var(--product-review-card-bg);
	border-radius:10px;
}
.product-reviews-empty-icon {
	flex:0 0 auto;
	color:var(--product-review-star);
	font-size:38px;
	line-height:1;
}
.product-reviews-empty strong { display:block; margin-bottom:4px; font-size:15px; }
.product-reviews-empty p,
.product-reviews-ratings-only,
.product-review-filter-empty {
	margin:0;
	color:var(--dim-3-color);
	font-size:13px;
	line-height:1.5;
}
.product-reviews-ratings-only,
.product-review-filter-empty { margin-top:22px; }



.see-store-availability { text-align: center; margin-top: 30px; }
.see-store-availability button {
	background: transparent;
	border:none;
	color: var(--dim-3-color);
	font-size: 14px;
	text-decoration: underline;
	cursor: pointer;
}
.see-store-availability button:hover { color: var(--text-color); }
.see-store-availability button i { margin-right: 5px; opacity: 0.8; }

.sap-black-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,var(--overlay-opacity)); z-index: 1000; }
.product-report-action { margin-top:18px; padding-top:8px; border-top:1px solid var(--dim-e-color); text-align:left; }
.product-report-trigger { display:inline-flex; align-items:center; gap:6px; min-height:32px; padding:4px 0; border:0; background:none; color:var(--product-page-sku); font:inherit; font-size:12px; cursor:pointer; }
.product-report-trigger:hover { color:var(--text-color); text-decoration:underline; text-underline-offset:3px; }
@media (max-width:768px) {
	.product-report-trigger { min-height:44px; }
}
.product-report-popup { display:none; position:fixed; top:50%; left:50%; z-index:6100; width:calc(100% - 32px); max-width:500px; max-height:90vh; max-height:90dvh; transform:translate(-50%, -50%); border:1px solid var(--dim-e-color); border-radius:16px; background:var(--background-color); color:var(--text-color); box-shadow:0 24px 70px rgba(0,0,0,.28); }
.product-report-popup.open { display:flex; flex-direction:column; }
.product-report-head { display:flex; align-items:center; justify-content:space-between; gap:16px; flex:0 0 auto; padding:18px 22px; border-bottom:1px solid var(--dim-e-color); }
.product-report-head h3 { margin:0; font-size:20px; }
.product-report-head button { width:40px; height:40px; flex:0 0 auto; border:0; border-radius:50%; background:var(--dim-fa-color); color:var(--text-color); cursor:pointer; }
.product-report-body { padding:20px 22px; overflow-y:auto; overscroll-behavior:contain; min-height:0; }
.product-report-body p { margin:0 0 16px; font-size:14px; line-height:1.5; }
.product-report-body fieldset { margin:0 0 18px; padding:0; border:0; min-width:0; }
.product-report-body legend { margin-bottom:10px; font-weight:600; font-size:14px; }
.product-report-choice { display:flex; align-items:center; gap:10px; min-height:44px; padding:9px 12px; margin-bottom:6px; border:1px solid var(--dim-e-color); border-radius:8px; font-size:14px; line-height:1.4; cursor:pointer; }
.product-report-choice:has(input:checked) { border-color:var(--hl-color); background:var(--dim-fa-color); }
.product-report-choice input { flex:0 0 auto; width:16px; height:16px; margin:0; accent-color:var(--hl-color); }
.product-report-body label[for] { display:block; margin-bottom:8px; font-size:14px; font-weight:600; }
.product-report-body textarea { box-sizing:border-box; width:100%; min-height:90px; margin-bottom:18px; padding:10px 12px; border:1px solid var(--dim-d-color); border-radius:8px; background:var(--background-color); color:var(--text-color); font:inherit; font-size:16px; resize:vertical; }
.product-report-error { color:var(--red-color); }
.product-report-success { padding:20px 0; }
.product-report-submit { width:100%; min-height:46px; padding:12px; border:0; border-radius:8px; background:var(--hl-color); color:#fff; font:inherit; font-weight:600; cursor:pointer; }
.product-report-submit:disabled { opacity:.6; cursor:wait; }
.product-report-trigger:focus-visible,
.product-report-popup button:focus-visible,
.product-report-popup input:focus-visible,
.product-report-popup textarea:focus-visible { outline:2px solid var(--hl-color); outline-offset:3px; }
.product-report-popup [hidden] { display:none !important; }
@media (max-width:600px) {
	.product-report-popup { top:auto; bottom:0; width:100%; max-width:none; transform:translate(-50%, var(--bottom-sheet-drag-distance, 0)); border-width:1px 0 0; border-radius:18px 18px 0 0; }
	.product-report-head { padding:22px 18px 10px; }
	.product-report-head h3 { font-size:18px; }
	.product-report-body { padding:16px 18px calc(18px + env(safe-area-inset-bottom)); }
}

.store-availability-popup {

}

.store-availability-popup .content {
	padding: 20px;
	text-align: center;
	overflow-y: auto;
	height: calc(80vh - 100px);
}

.store-availability-popup .list {
	width: 100%;
	border-collapse: collapse;
	text-align: left;
}
.store-availability-popup .list .item {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	padding: 10px 0;
	border-bottom: 1px solid #ddd;
}
.store-availability-popup .list .item a { display: block; }
.store-availability-popup .list .item .name { font-weight: bold; }
.store-availability-popup .list .item .address { color: #666; font-weight: normal; font-size: 0.8em; }
.store-availability-popup .list .item .availability { color: #666; font-size: 0.9em; margin-top: 5px; text-align: right; }
.store-availability-popup .list .item .availability.available { color: #129645; }
.store-availability-popup .list .item .availability.unavailable { color: var(--red-color); }
.store-availability-popup .list .item .availability i { margin-right: 5px; }
.store-availability-popup .availability-separator {
	height:1px;
	margin:10px 0;
	background:var(--dim-d-color);
}
.store-availability-popup .available-options {
	max-width:320px;
	margin-top:6px;
	color:var(--product-options-color);
	font-size:12px;
	font-style:italic;
	line-height:1.45;
}
.store-availability-popup .available-options-more {
	padding:0;
	border:0;
	background:transparent;
	color:inherit;
	font:inherit;
	font-weight:600;
	text-decoration:underline;
	cursor:pointer;
}

@media (max-width: 600px) {
	.store-availability-popup .list .item { flex-direction: column; align-items: flex-start; }
	.store-availability-popup .list .item .availability { margin-top: 10px; text-align: left; }
	.store-availability-popup .available-options { max-width:none; }
}



.options-popup {
	position: fixed;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	max-width: 800px;
	max-height: 80vh;
	background: var(--background-color);
	color: var(--text-color);
	border-radius: 10px;
	box-shadow: 0 0 30px rgba(0,0,0,0.3);
	overflow: hidden;
	z-index: 1001;
}
.options-popup .title { position:relative; }
.options-popup .title p {
	font-size: 16px;
	font-weight: 500;
	margin-bottom: 10px;
	text-align: center;
	padding: 10px 30px 10px 20px;
}
.options-popup .title .close {
	position: absolute;
	top: 10px; right: 10px;
	width:30px; height:30px;
	text-align: center;
	font-size: 24px;
	line-height: 30px;
	color: #aaa;
	cursor: pointer;
	background: transparent;
	border: none;
}
.options-popup .title .close:hover { color: var(--red-color); }

.options-popup .content {
	overflow-y: auto;
	max-height: calc(80vh - 100px);
}
.options-popup .options-list { justify-content: center; flex-direction: column; margin-bottom: 0; width:100%; }
.options-popup .options-list.less { max-height: none; overflow-y: auto; }
.options-popup .options-list.less::after { display: none; }
.options-popup .options-list .item {
	width: 100%;
	padding: 10px 20px;
	border:none;
	border-bottom: 1px solid #ddd;
	margin:0;
	border-radius: 0;
	max-width: 100%;
	font-size:14px;
}
.options-popup .options-list .item:last-child { border-bottom: none; }
.options-popup .options-list .item:hover { background-color: #f7f7f7; }

@media (max-width: 900px) {
	.options-popup { width: 80%; }
}


.product-gallery {
	display: flex;
	flex-direction: column;
	width:400px;
}
.product-gallery .main { margin-bottom: 20px; border-radius: 5px; cursor: zoom-in; position: relative; }
.product-gallery .main:focus-visible { outline: 2px solid var(--text-color); outline-offset: 4px; }
.product-gallery-main-stage {
	width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	touch-action: auto;
	cursor: grab;
}
.product-gallery-main-stage::-webkit-scrollbar { display: none; }
.product-gallery-main-track { display: flex; width: 100%; }
.product-gallery-main-slide {
	flex: 0 0 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}
.product-gallery-main-slide img { display: block; width: 100%; height: auto; border-radius: 5px; object-fit: contain; }
.product-gallery .thumbs {
	width: 100%;
	padding: 2px 1px;
	white-space: nowrap;
	overflow-x: auto;
	-ms-overflow-style: none;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.product-gallery .thumbs::-webkit-scrollbar { display: none; }
.product-gallery .thumb {
	display: inline-block;
	width: 64px;
	height: 64px;
	margin-right: 8px;
	padding: 2px;
	border: 1px solid var(--dim-e-color);
	border-radius: 8px;
	background: var(--dim-fa-color);
	opacity: 0.7;
	cursor: pointer;
	transition: border-color 150ms ease, opacity 150ms ease;
}
.product-gallery .thumb img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 6px; }
.product-gallery .thumb:hover { border-color: var(--dim-9-color); opacity: 1; }
.product-gallery .thumb.selected {
	border-color: var(--dim-9-color);
	opacity: 1;
}

.product-gallery .product-gift {
	position: absolute;
	bottom: 40px; right: 20px;
}
.product-gallery .product-gift img { max-height: 100px; }


.product-gallery-popup {
	--gallery-backdrop-opacity: 0.85;
	position: fixed;
	inset: 0;
	display: grid;
	grid-template-rows: 60px minmax(0, 1fr) auto;
	background: rgba(0,0,0,var(--gallery-backdrop-opacity));
	color: #fff;
	z-index: 10000;
	opacity: 0;
	overflow: hidden;
	overscroll-behavior: contain;
	transition: opacity 180ms ease, background-color 80ms linear;
	-webkit-user-select: none;
	user-select: none;
}
.product-gallery-popup.open { opacity: 1; }
.product-gallery-popup.closing { opacity: 0; pointer-events: none; }
.product-gallery-popup .toolbar {
	position: relative;
	grid-row: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: max(8px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) 0 max(12px, env(safe-area-inset-left));
	z-index: 3;
}
.product-gallery-popup .counter {
	min-width: 62px;
	padding: 7px 12px;
	border-radius: 18px;
	background: rgba(25,25,25,0.62);
	font-size: 13px;
	font-variant-numeric: tabular-nums;
	text-align: center;
}
.product-gallery-popup .close,
.product-gallery-popup .previous,
.product-gallery-popup .next {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: none;
	border-radius: 50%;
	color: #fff;
	background: rgba(25,25,25,0.62);
	box-shadow: 0 2px 12px rgba(0,0,0,0.18);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
.product-gallery-popup .close {
	position: absolute;
	top: max(8px, env(safe-area-inset-top));
	right: max(12px, env(safe-area-inset-right));
	font-size: 18px;
}
.product-gallery-popup .close:hover,
.product-gallery-popup .previous:hover,
.product-gallery-popup .next:hover { background: rgba(65,65,65,0.88); }
.product-gallery-popup .close:focus-visible,
.product-gallery-popup .previous:focus-visible,
.product-gallery-popup .next:focus-visible,
.product-gallery-popup .thumb:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.product-gallery-popup .previous,
.product-gallery-popup .next {
	position: absolute;
	top: 50%;
	z-index: 3;
	transform: translateY(-50%);
	font-size: 15px;
}
.product-gallery-popup .previous { left: 18px; }
.product-gallery-popup .next { right: 18px; }
.product-gallery-popup .previous:disabled,
.product-gallery-popup .next:disabled { opacity: 0.2; cursor: default; }
.product-gallery-popup .stage {
	position: relative;
	grid-row: 2;
	min-width: 0;
	min-height: 0;
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	touch-action: pan-x;
	cursor: zoom-out;
}
.product-gallery-popup .stage::-webkit-scrollbar { display: none; }
.product-gallery-popup .stage.zoomed { touch-action: none; }
.product-gallery-popup .track {
	width: 100%;
	height: 100%;
	display: flex;
	will-change: transform, opacity;
	transform-origin: center;
}
.product-gallery-popup .track.settling { transition: transform 240ms cubic-bezier(.2,.8,.2,1); }
.product-gallery-popup .slide {
	flex: 0 0 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	height: 100%;
	padding: 10px 80px;
	overflow: hidden;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}
.product-gallery-popup img.main {
	display: block;
	max-width: 100%;
	max-height: 100%;
	border-radius: 14px;
	object-fit: contain;
	transform-origin: center;
	will-change: transform, opacity;
	cursor: grab;
	-webkit-user-drag: none;
}
.product-gallery-popup img.main.settling { transition: transform 240ms cubic-bezier(.2,.8,.2,1); }

.product-gallery-popup .thumbs {
	grid-row: 3;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: safe center;
	gap: 8px;
	max-width: 100%;
	padding: 12px max(16px, env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
	overflow-x: auto;
	overflow-y: hidden;
	-ms-overflow-style: none;
	scrollbar-width: none;
	scroll-snap-type: x proximity;
	-webkit-overflow-scrolling: touch;
}
.product-gallery-popup .thumbs::-webkit-scrollbar { display: none; }
.product-gallery-popup .thumb {
	flex: 0 0 66px;
	width: 66px;
	height: 66px;
	padding: 0;
	border: 2px solid transparent;
	border-radius: 8px;
	background: #fff;
	opacity: 0.55;
	cursor: pointer;
	scroll-snap-align: center;
	transition: opacity 150ms ease, border-color 150ms ease, transform 150ms ease;
}
.product-gallery-popup .thumb img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 6px; }
.product-gallery-popup .thumb:hover { opacity: 0.85; }
.product-gallery-popup .thumb.selected { border-color: #fff; opacity: 1; }

@media (max-width: 768px) {
	.product-gallery-popup { grid-template-rows: calc(50px + env(safe-area-inset-top)) minmax(0, 1fr) auto; }
	.product-gallery-popup .toolbar { align-items: flex-end; padding-bottom: 4px; }
	.product-gallery-popup .close { top: max(6px, env(safe-area-inset-top)); right: max(8px, env(safe-area-inset-right)); }
	.product-gallery-popup .previous,
	.product-gallery-popup .next { display: none; }
	.product-gallery-popup .slide { padding: 4px 12px; }
	.product-gallery-popup img.main { border-radius: 10px; }
	.product-gallery-popup .thumbs {
		justify-content: flex-start;
		gap: 7px;
		padding-top: 10px;
	}
	.product-gallery-popup .thumb { flex-basis: 54px; width: 54px; height: 54px; border-radius: 7px; }
	.product-gallery-popup .thumb img { border-radius: 5px; }
}

@media (prefers-reduced-motion: reduce) {
	.product-gallery-popup,
	.product-gallery-popup img.main,
	.product-gallery-popup .thumb { transition-duration: 1ms !important; animation-duration: 1ms !important; }
}



.quick-order-popup {
	display: flex;
	flex-direction: column;
	max-width:500px;
}

.quick-order-popup .content {
	padding: 20px;
	text-align: center;
	overflow-y: auto;
}
.quick-order-popup .order-form { display: none; }
.quick-order-popup .order-form.active { display: block; }
.quick-order-popup .note {
	font-size: 16px;
	color: #000;
	margin-bottom: 20px;
}
.quick-order-popup input {
	width: 100%;
	height: 100%;
	font-size:16px;
	padding:0 10px 0 30px;
	border:none;
	background: transparent;
}
.quick-order-popup .field {
	width: 100%;
	height: 45px;
	position: relative;
	border: 2px solid #ddd;
	border-radius: 5px;
	background: #ffffff;
	margin-bottom: 20px;
}
.quick-order-popup .field .label {
	color: #666;
	position:absolute;
	top: 50%; left: 10px;
	transform: translateY(-50%);
	font-size: 14px;
	pointer-events: none;
}
.quick-order-popup .field .label i { margin-right: 5px; font-size: 0.9em; opacity: 0.8; }
.quick-order-popup .field.error { border-color: #f77979; }
.quick-order-popup .submit {
	height: 40px;
	background: rgb(18, 150, 69);
	border: none;
	color:#fff;
	border-radius:4px;
	padding: 0 20px;
	text-transform:uppercase;
	font-weight: bold;
	cursor:pointer;
	margin-top: 10px;
}
.quick-order-popup .submit:hover { background-color: rgb(18, 161, 73); }
.quick-order-popup .terms {
	font-size: 12px;
	color: #666;
	margin-top: 15px;
}
.quick-order-popup .terms a { font-weight: 500; }
.quick-order-popup .success { display: none; font-size: 16px; color: #000; padding-bottom:50px; }
.quick-order-popup .success.active { display: block; }
.quick-order-popup .success h3 { margin-bottom: 20px; }









.added-to-cart-popup {
	position: fixed;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	max-width: 500px;
	width: 90%;
	background: #fff;
	color: #000;
	border-radius: 10px;
	box-shadow: 0 0 60px rgba(0,0,0,0.3);
	z-index: 1001;
	text-align: center;
	overflow: hidden;
}
.added-to-cart-popup .body { padding-top:20px; }
.added-to-cart-popup .icon-check { color: rgb(18, 150, 69); font-size: 40px; margin-bottom: 10px; }
.added-to-cart-popup .title {
	font-size: 20px;
	font-weight: 500;
	margin-bottom: 20px;
	color: rgb(18, 150, 69);
	text-transform: uppercase;
	padding: 0 20px;
}
.added-to-cart-popup .buttons { display: flex; flex-direction: row; justify-content: center; gap: 0px; }
.added-to-cart-popup .close-button,
.added-to-cart-popup .cart-go-button {
	flex:1;
	height: 45px;
	background: rgb(18, 150, 69);
	border: none;
	color:#fff;
	font-size:13px;
	font-weight: bold;
	text-transform:uppercase;
	cursor:pointer;
}
.added-to-cart-popup .cart-go-button:hover { background-color: rgb(18, 161, 73); }
.added-to-cart-popup .cart-go-button:active { background-color: rgb(9, 99, 43); }
.added-to-cart-popup .cart-go-button i { margin-left: 5px; }
.added-to-cart-popup .close-button { background: #eee; color:#000; }
.added-to-cart-popup .close-button:hover { background-color: #e5e5e5; }
.added-to-cart-popup .close-button:active { background-color: #dcdcdc; }

.added-to-cart-popup .horizontal-product-list { padding:0; }
.added-to-cart-popup .product-item { width:160px; }


/* Added-to-cart confirmation with product details, cart summary and clear actions. */
.added-to-cart-popup-v3 {
	display:flex;
	flex-direction:column;
	max-width:720px;
	max-height:min(90vh, 760px);
	border:1px solid rgba(0,0,0,0.08);
	border-radius:16px;
	text-align:left;
	overflow:hidden;
}
.added-to-cart-popup-v3 .atc-v3-sheet-handle { display:none; }
.added-to-cart-popup-v3 .atc-v3-content {
	min-height:0;
	padding:28px 30px 0;
	overflow-x:hidden;
	overflow-y:auto;
	overscroll-behavior:contain;
}
.added-to-cart-popup-v3 .atc-v3-dismiss {
	position:absolute;
	top:16px;
	right:16px;
	display:flex;
	align-items:center;
	justify-content:center;
	width:36px;
	height:36px;
	padding:0;
	background:#f3f4f5;
	border:0;
	border-radius:50%;
	color:#555;
	font-size:15px;
	cursor:pointer;
	z-index:2;
}
.added-to-cart-popup-v3 .atc-v3-dismiss:hover { background:#e7e9ea; color:#111; }
.added-to-cart-popup-v3 .atc-v3-dismiss:focus-visible,
.added-to-cart-popup-v3 a:focus-visible,
.added-to-cart-popup-v3 button:focus-visible { outline:3px solid rgba(18,150,69,0.35); outline-offset:2px; }
.added-to-cart-popup-v3 .atc-v3-head {
	display:flex;
	align-items:center;
	gap:13px;
	padding:0 48px 22px 0;
}
.added-to-cart-popup-v3 .atc-v3-check {
	display:flex;
	align-items:center;
	justify-content:center;
	width:42px;
	height:42px;
	background:#e8f7ed;
	border-radius:50%;
	color:#129645;
	font-size:19px;
	flex:0 0 42px;
}
.added-to-cart-popup-v3 .atc-v3-head h3 {
	margin:0;
	color:#111;
	font-size:22px;
	font-weight:700;
	line-height:1.2;
	text-transform:none;
}
.added-to-cart-popup-v3 .atc-v3-head p { margin:4px 0 0; color:#777; font-size:13px; }
.added-to-cart-popup-v3 .atc-v3-product {
	display:grid;
	grid-template-columns:90px minmax(0, 1fr) auto;
	align-items:center;
	gap:18px;
	padding:18px;
	background:#f7f8f8;
	border:1px solid #e9ebeb;
	border-radius:12px;
}
.added-to-cart-popup-v3 .atc-v3-thumb {
	display:flex;
	align-items:center;
	justify-content:center;
	width:90px;
	height:90px;
	background:#fff;
	border-radius:9px;
	overflow:hidden;
}
.added-to-cart-popup-v3 .atc-v3-thumb img { display:block; width:100%; height:100%; object-fit:contain; }
.added-to-cart-popup-v3 .atc-v3-product-info { min-width:0; }
.added-to-cart-popup-v3 .atc-v3-brand {
	margin-bottom:4px;
	color:#777;
	font-size:11px;
	font-weight:700;
	letter-spacing:0.04em;
	text-transform:uppercase;
}
.added-to-cart-popup-v3 .atc-v3-name {
	display:block;
	color:#171717;
	font-size:15px;
	font-weight:650;
	line-height:1.35;
}
.added-to-cart-popup-v3 .atc-v3-name:hover { color:#129645; }
.added-to-cart-popup-v3 .atc-v3-options { margin-top:6px; color:#777; font-size:12px; line-height:1.35; }
.added-to-cart-popup-v3 .atc-v3-line-price { min-width:105px; text-align:right; white-space:nowrap; }
.added-to-cart-popup-v3 .atc-v3-line-price > span { display:block; margin-bottom:4px; color:#777; font-size:12px; }
.added-to-cart-popup-v3 .atc-v3-line-price strong { font-size:14px; }
.added-to-cart-popup-v3 .atc-v3-line-price .regular { font-size:12px; font-weight:400; text-decoration:line-through; }
.added-to-cart-popup-v3 .atc-v3-line-price .sale { color:#129645; }
.added-to-cart-popup-v3 .atc-v3-summary { padding:18px 4px 20px; }
.added-to-cart-popup-v3 .atc-v3-total {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:20px;
	color:#444;
	font-size:14px;
}
.added-to-cart-popup-v3 .atc-v3-total strong { color:#111; font-size:20px; white-space:nowrap; }
.added-to-cart-popup-v3 .atc-v3-delivery { margin-top:0; }
.added-to-cart-popup-v3 .atc-v3-delivery-text { color:#555; font-size:12px; line-height:1.4; }
.added-to-cart-popup-v3 .atc-v3-delivery-text i { margin-right:6px; color:#129645; }
.added-to-cart-popup-v3 .atc-v3-delivery-text b { white-space:nowrap; }
.added-to-cart-popup-v3 .atc-v3-delivery-track {
	height:5px;
	margin-top:8px;
	background:#e3e7e4;
	border-radius:10px;
	overflow:hidden;
}
.added-to-cart-popup-v3 .atc-v3-delivery-track span {
	display:block;
	height:100%;
	background:#129645;
	border-radius:inherit;
}
.added-to-cart-popup-v3 .atc-v3-delivery.complete .atc-v3-delivery-track span { width:100% !important; }
.added-to-cart-popup-v3 .atc-v3-recommendations { padding:18px 0 22px; border-top:1px solid #eceeee; }
.added-to-cart-popup-v3 .atc-v3-recommendations > h4 { margin:0 0 12px; color:#333; font-size:14px; font-weight:650; }
.added-to-cart-popup-v3 .atc-v3-recommendations .horizontal-product-list { align-items:stretch; }
.added-to-cart-popup-v3 .atc-v3-recommendations .product-list { justify-content:flex-start; }
.added-to-cart-popup-v3 .atc-v3-recommendations .product-item { width:145px; }
.added-to-cart-popup-v3 .atc-v3-actions {
	display:grid;
	grid-template-columns:0.85fr 1.15fr;
	gap:12px;
	padding:16px 30px calc(16px + env(safe-area-inset-bottom));
	background:#fff;
	border-top:1px solid #e9ebeb;
	flex:0 0 auto;
}
.added-to-cart-popup-v3 .atc-v3-action {
	width:100%;
	height:50px;
	padding:0 18px;
	border-radius:8px;
	font-size:13px;
	font-weight:700;
	text-transform:none;
	cursor:pointer;
}
.added-to-cart-popup-v3 .atc-v3-cart { background:#129645; border:1px solid #129645; color:#fff; }
.added-to-cart-popup-v3 .atc-v3-cart:hover { background:#12a149; border-color:#12a149; }
.added-to-cart-popup-v3 .atc-v3-cart:active { background:#09632b; border-color:#09632b; }
.added-to-cart-popup-v3 .atc-v3-cart i { margin-left:6px; }
.added-to-cart-popup-v3 .atc-v3-continue { background:#f2f3f3; border:1px solid #dfe2e1; color:#222; }
.added-to-cart-popup-v3 .atc-v3-continue:hover { background:#e8eaea; }
.added-to-cart-popup-v3 .atc-v3-continue:active { background:#dfe2e1; }
.added-to-cart-popup-v3 .atc-v3-continue i { margin-right:6px; }

@media (max-width: 600px) {
	.added-to-cart-popup-v3 {
		top:auto;
		bottom:0;
		width:100%;
		max-height:92dvh;
		transform:translate(-50%, var(--bottom-sheet-drag-distance, 0));
		border-width:1px 0 0;
		border-radius:18px 18px 0 0;
	}
	.added-to-cart-popup-v3 .atc-v3-sheet-handle { display:block; height:24px; flex:0 0 24px; }
	.added-to-cart-popup-v3 .atc-v3-content { padding:4px 18px 0; }
	.added-to-cart-popup-v3 .atc-v3-dismiss { top:16px; right:14px; }
	.added-to-cart-popup-v3 .atc-v3-head { padding:0 42px 17px 0; gap:10px; }
	.added-to-cart-popup-v3 .atc-v3-check { width:36px; height:36px; flex-basis:36px; font-size:16px; }
	.added-to-cart-popup-v3 .atc-v3-head h3 { font-size:18px; }
	.added-to-cart-popup-v3 .atc-v3-product { grid-template-columns:70px minmax(0, 1fr); gap:13px; padding:13px; }
	.added-to-cart-popup-v3 .atc-v3-thumb { width:70px; height:70px; }
	.added-to-cart-popup-v3 .atc-v3-name { font-size:13px; }
	.added-to-cart-popup-v3 .atc-v3-line-price { grid-column:2; min-width:0; margin-top:-8px; text-align:left; }
	.added-to-cart-popup-v3 .atc-v3-line-price > span { display:inline; margin:0 5px 0 0; }
	.added-to-cart-popup-v3 .atc-v3-line-price strong { font-size:13px; }
	.added-to-cart-popup-v3 .atc-v3-summary { padding:15px 2px 18px; }
	.added-to-cart-popup-v3 .atc-v3-total strong { font-size:18px; }
	.added-to-cart-popup-v3 .atc-v3-delivery { margin-top:0; }
	.added-to-cart-popup-v3 .atc-v3-delivery-text { display:flex; align-items:center; gap:6px; color:#129645; font-size:13px; font-weight:600; }
	.added-to-cart-popup-v3 .atc-v3-delivery-text i { margin-right:0; }
	.added-to-cart-popup-v3 .atc-v3-delivery-track { display:none; }
	.added-to-cart-popup-v3 .atc-v3-recommendations { display:none; }
	.added-to-cart-popup-v3 .atc-v3-actions { display:flex; flex-direction:column; gap:2px; padding:16px 20px calc(12px + env(safe-area-inset-bottom)); }
	.added-to-cart-popup-v3 .atc-v3-cart { order:-1; }
	.added-to-cart-popup-v3 .atc-v3-cart {
		height:54px;
		border-radius:10px;
		font-size:16px;
		box-shadow:0 4px 12px rgba(18,150,69,0.2);
	}
	.added-to-cart-popup-v3 .atc-v3-continue {
		appearance:none;
		height:44px;
		padding:0;
		background:transparent;
		border:0;
		color:#444;
		font-size:14px;
		font-weight:600;
		cursor:pointer;
	}
	.added-to-cart-popup-v3 .atc-v3-continue:hover,
	.added-to-cart-popup-v3 .atc-v3-continue:active { background:transparent; color:#129645; }
}





.vip-price-box {
	display: grid;
	grid-template-columns: 54px 1fr;
	grid-template-rows: 1fr 1fr;
	grid-column-gap: 0px;
	grid-row-gap: 0px;
	margin-top:30px;
	cursor: pointer;
}
.vip-price-box .icon {
	grid-row: span 2 / span 2;
	width:44px;
	height:30px;
	border:1px solid #999;
	border-radius: 4px;
	font-size:12px;
	color:#666;
	font-weight: bold;
	display: flex;
	align-items: center;
	justify-content: center;
	align-self: center;
}

.vip-price-box .price {
	font-size: 12px;
	font-weight: 500;
	color: var(--price-sale-color);
}
.vip-price-box .text {
	grid-column-start: 2;
	font-size: 11px;
	line-height: 1.2;
	color: #666;
}
.vip-price-box .text i { opacity: 0.8; margin-left: 5px; }

@media (max-width: 768px) {
	.vip-price-box { width:fit-content; margin:30px auto 0; text-align:left; }
}



.vip-whats-this-ww {
	width:90%;
	max-width: 500px;
	position:fixed;
	top:50%; left:50%;
	transform:translate(-50%,-50%);
	padding:20px;
	background:#fff;
	border-radius:10px;
	text-align:center;
	box-sizing:border-box;
	box-shadow:0 0 40px rgba(0,0,0,0.3);
	z-index:1001;
	display:none; 
}
.vip-whats-this-ww .text { text-align:left; font-size:13px; color:#222; margin:20px 0; line-height:17px; }
.vip-whats-this-ww .disclaimer { font-size:12px; color:#999; font-style:italic; }
.vip-whats-this-ww .add-button {
	background:#0d99ff;
	border:1px solid #0d99ff;
	border-bottom:3px solid #1188de;
	width:100%;
	height:50px;
	font-size:13px;
	text-transform:uppercase;
	color:#fff;
	font-weight:bold;
	border-radius:3px;
	cursor:pointer;
}
.vip-whats-this-ww .add-button i { font-style:normal; font-size:11px; opacity:0.8; }
.vip-whats-this-ww .add-button:hover { background:#0b88e6; border-color:#0b88e6; }
.vip-whats-this-ww .close { background:transparent; width:37px; height:37px; border:none; position:absolute; top:0; right:0; opacity: 0.5; font-size:16px; cursor:pointer; }



.promo-price-box {
	display: grid;
	grid-template-columns: 35px 1fr;
	grid-template-rows: 1fr 1fr;
	grid-column-gap: 0px;
	grid-row-gap: 0px;
	margin-top:30px;
	border:1px dashed #f1b00c;
	border-radius: 5px;
	padding:5px 8px;
}
.promo-price-box .icon {
	grid-row: span 2 / span 2;
	width:30px;
	height:30px;
	border-radius: 4px;
	font-size:24px;
	color:#ffc32c;
	font-weight: bold;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	align-self: center;
}

.promo-price-box .price {
	font-size: 12px;
	font-weight: 500;
	color: var(--price-sale-color);
}
.promo-price-box .text {
	grid-column-start: 2;
	font-size: 11px;
	line-height: 1.2;
	color: #666;
}
.promo-price-box .text i { opacity: 0.8; margin-left: 5px; }

@media (max-width: 768px) {
	.promo-price-box { width:fit-content; margin:30px auto 0; text-align:left; }
}







@media (max-width: 1280px) {
	.product-top-column.gallery { width: 300px; }
	.product-gallery { width: 300px; }
}

@media (max-width: 1024px) {
	.product-top-v2 .columns-2-3 { flex-direction: column; }
	.product-top-v2 .middle-column { padding:0 20px; }
	.product-top-v2 .buy-box-column { width: 100%; margin-left: 0; min-width:0; max-width: 300px; }
	.product-top-v2 .price-mobile { display: block; }
	.product-top-v2 .price-desktop { display: none; }
}

@media (max-width: 768px) {
	.product-top-v2 { flex-direction: column; }
	.product-top-column { text-align: center; width: 100%; }
	.product-top-v2 .middle-column { padding:0; }
	.product-top-v2.stack .middle-column { padding:0; }
	.product-top-v2 .buy-box-column { margin-left:0; min-width:0; max-width:560px; margin:0 auto; }
	.product-top-column.gallery { width: 100%; }
	.product-gallery { width: 100%; }
	.product-top-v2 .middle-column h1 { font-size: 20px; line-height: 1.3; }
	.product-top-v2 .middle-column h3 { font-size: 16px; }
	.product-top-v2 .middle-column .meta-box { font-size: 12px; }
	.product-review-compact { justify-content:center; margin:8px auto 2px; }
	.product-top-v2 .price-mobile .product-price-per-dose { margin-right:auto; margin-left:auto; }

	/* Recommendation rows scroll to both viewport edges on product pages. */
	.product-data > .horizontal-product-list .scroll,
	.product-page-last-seen .horizontal-product-list .scroll {
		width:calc(100% + (var(--side-padding) * 2));
		margin-right:calc(var(--side-padding) * -1);
		margin-left:calc(var(--side-padding) * -1);
	}

	.product-data > .horizontal-product-list .product-list,
	.product-page-last-seen .horizontal-product-list .product-list {
		max-width:100%;
		padding-right:var(--side-padding);
		padding-left:var(--side-padding);
		scroll-padding-inline:var(--side-padding);
		-webkit-mask-image:none;
		mask-image:none;
	}

	.pack-list { justify-content: center; }
	.pack-list .item { margin:5px; width: calc(50% - 10px); }

	.options-list { justify-content: center; width:fit-content; margin:0 auto 20px; }
	.options-list .item { margin:5px; width: calc(50% - 10px); max-width: 50%; }

	.product-top-v2 .price-mobile { display: block; }
	.product-top-v2 .price-desktop { display: none; }

	.product-top-v2 .quantity-box { margin:40px auto 20px; }
	.purchase-panel { margin-top:24px; }
	.purchase-panel .quantity-box { width:100%; height:56px; margin:0; }

	.product-subcontent { flex-direction: column; }
	.product-subcontent .product-left { padding-right: 0; }
	.product-subcontent .product-right { width: 100%; padding-top:30px; }
	.product-reviews { margin:38px 0; padding:22px 16px; }
	.product-reviews-heading { margin-bottom:20px; }
	.product-reviews-heading h2 { font-size:21px; }
	.product-reviews-overview { display:block; padding:20px; }
	.product-reviews-overview.sparse { max-width:none; }
	.product-reviews-score { align-items:center; text-align:center; }
	.product-reviews-distribution { margin-top:24px; }
	.product-review-filter { grid-template-columns:80px minmax(90px, 1fr) 28px; gap:8px; }
	.product-review-card { padding:20px 0; }

	.product-info-tabs { display:flex; flex-direction: row; justify-content: center; margin: 40px 0 30px; }
	/* Use one gap when either promo banner sits directly above the tabs. */
	.product-banner-slot { margin-bottom:16px; }
	.product-banner-slot + .product-left > .product-info-tabs,
	.product-banner-slot + .product-info-tabs { margin-top:0; }
	.product-top-v2.has-product-banner { margin-bottom:0; }
	.product-top-v2.has-product-banner + .product-subcontent { margin-top:16px; }
	.product-top-v2.has-product-banner + .product-subcontent > .product-left > .product-info-tabs { margin-top:0; }
	.product-info-tabs .tab { margin-right: 10px; font-size: 11px; text-align: center; }
	.product-info-tabs .tab:last-child { margin-right: 0; }

	.buy-button-pad .buy-button { width:100%; }

	/* Height reserved for the fixed buy dock below. */
	:root { --mobile-buy-dock-clearance: 110px; }

	.product-data { padding-bottom:calc(var(--mobile-buy-dock-clearance) + env(safe-area-inset-bottom)) !important; }

	/* The dock stays visible to the end of the page, so the footer needs the same
	   clearance or it covers the last band. `footer` catches the v1 footer;
	   `.footer-v2-bottom` is the v2 equivalent (its `footer` has zero padding). */
	footer,
	.footer-v2-bottom {
		padding-bottom: calc(var(--mobile-buy-dock-clearance) + env(safe-area-inset-bottom));
	}

	.mobile-buy-dock {
		position:fixed;
		bottom:0;
		left:0;
		right:0;
		display:grid;
		grid-template-columns:minmax(90px, 120px) minmax(180px, 420px);
		justify-content:center;
		align-items:center;
		gap:10px;
		width:100%;
		padding:8px max(10px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
		background-color:var(--background-color);
		border-top:1px solid var(--dim-e-color);
		box-shadow:0 -5px 20px rgba(0,0,0,0.12);
		/* Above page content (product tags sit at 10), below the floating
		   furniture at 900 and every overlay from 998 up. */
		z-index:890;
		opacity:0;
		visibility:hidden;
		pointer-events:none;
		transform:translateY(100%);
		transition:opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
	}
	.mobile-buy-dock.visible {
		opacity:1;
		visibility:visible;
		pointer-events:auto;
		transform:translateY(0);
	}
	.mobile-buy-dock-price {
		min-width:0;
		line-height:1.15;
		text-align:left;
	}
	.mobile-buy-dock-price .regular {
		display:block;
		color:var(--price-regular-color);
		font-size:11px;
		text-decoration:line-through;
	}
	.mobile-buy-dock-price .sale {
		display:block;
		color:var(--price-sale-color);
		font-size:18px;
		font-weight:bold;
	}
	.mobile-buy-dock-price .euro-sep { opacity:0.6; }
	.mobile-buy-dock .buy-button { height:56px; font-size:17px; }
	.mobile-buy-dock .buy-button.timer { font-size:14px; }
	.mobile-buy-dock .buy-button { border-radius:10px; text-transform:none; }
}


/*************************************************************
 * Reworked product top (.ptv3). Toddor preview only.
 * Gallery + one buy column: price, packs, CTA and reassurance
 * read top to bottom in the order they are decided.
 *************************************************************/

.ptv3 { --ptv3-gap:30px; display:flex; flex-direction:row; align-items:flex-start; justify-content:flex-start; gap:50px; }

.ptv3 .ptv3-gallery { position:sticky; top:90px; width:400px; flex:0 0 400px; }
.ptv3 .product-gallery { width:100%; }

/* Saving is a return-later action, so it sits on the image, not in the buy flow. */
.ptv3-fav { position:absolute; top:8px; right:8px; z-index:2; }
.ptv3-fav .fav-product-box { margin:0; text-align:right; }
.ptv3-fav .fav-product {
	display:flex; align-items:center; justify-content:center;
	width:40px; height:40px; padding:0; border-radius:50%;
	background:var(--background-color); border:1px solid var(--dim-d-color);
	font-size:15px; line-height:1;
}
.ptv3-fav .fav-product i { margin:0; }
.ptv3-fav .fav-product span { display:none; }

/* One rhythm for the whole column: sections carry no margins of their own,
   the gap sets every gap. Empty helpers render nothing and cost no space. */
.ptv3 .ptv3-buy {
	display:flex; flex-direction:column; gap:var(--ptv3-gap);
	flex:1 1 auto; min-width:0; max-width:520px; text-align:left; color:var(--text-color);
}
.ptv3 .ptv3-buy > meta { display:none; }

.ptv3-head { margin:0; }
.ptv3-brand { display:inline-block; color:var(--product-page-brand); font-size:15px; }
.ptv3-brand:hover { text-decoration:underline; }
.ptv3 h1 { margin:3px 0 8px; font-size:26px; line-height:1.22; letter-spacing:-0.01em; }
.ptv3 .ptv3-name-sub { display:block; margin-top:4px; color:var(--dim-6-color); font-size:15px; font-weight:400; line-height:1.35; }

.ptv3-meta { display:flex; align-items:center; flex-wrap:wrap; gap:4px 10px; font-size:12px; color:var(--dim-9-color); }
.ptv3-meta .product-review-compact { margin:0; }
.ptv3-sku { color:var(--product-page-sku); }

/* One price object: price, unit price, saving, VIP and the countdown. */
.ptv3-price-card {
	background:var(--dim-fa-color); border:1px solid var(--dim-e-color); border-radius:10px;
	padding:14px 15px; overflow:hidden;
}
.ptv3-price-card .product-price .regular { font-size:18px; }
.ptv3-price-card .product-price .sale { font-size:28px; }
.ptv3-price-card .product-price-per-dose { margin-top:5px; }
.ptv3-free-delivery { margin-top:9px; color:var(--green-color); font-size:12.5px; }
.ptv3-free-delivery i { margin-right:6px; }

.ptv3-vip {
	display:grid; grid-template-columns:44px 1fr; gap:10px; align-items:center;
	margin-top:12px; padding-top:12px; border-top:1px solid var(--dim-e-color); cursor:pointer;
}
.ptv3-vip .icon {
	height:30px; border:1px solid var(--dim-9-color); border-radius:4px;
	display:flex; align-items:center; justify-content:center;
	font-size:12px; font-weight:bold; color:var(--dim-6-color);
}
.ptv3-vip .price { font-size:13px; font-weight:500; color:var(--price-sale-color); }
.ptv3-vip .price .pct { color:var(--dim-6-color); font-size:11.5px; font-weight:400; }
.ptv3-vip .text { font-size:11px; line-height:1.2; color:var(--dim-6-color); }

/* The countdown is a property of the price, so it closes the price card. */
.ptv3-promo {
	display:grid; grid-template-columns:minmax(0,1fr) auto; gap:9px; align-items:center;
	margin:12px -15px -14px; padding:6px 15px;
	background:linear-gradient(152deg, #da3535, #f57400); color:#fff;
}
.ptv3-promo.last-day { background:#da3535; }
.ptv3-promo-copy { min-width:0; }
.ptv3-promo-title { display:block; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; }
.ptv3-promo-sub { display:block; margin-top:1px; font-size:9.5px; line-height:1.25; color:rgba(255,255,255,0.9); }
/* dsdigib has no tabular figures, so "1" is narrower than the rest and the box
   resizes on every tick. Reserve the widest reading (9 chars for a 3-digit hour)
   and centre inside it, so the clock never moves the label beside it. */
.ptv3-promo-clock {
	display:inline-block; min-width:9ch; box-sizing:content-box; text-align:center;
	font-family:'dsdigib', 'Commissioner', sans-serif; font-size:17px; line-height:1;
	font-variant-numeric:tabular-nums; font-feature-settings:'tnum' 1;
	color:#da3535; background:var(--background-color); border:1px solid #fff; border-radius:3px;
	padding:4px 8px 2px; white-space:nowrap;
}

/* Packs: the selection is named in the heading, so the cards can stay small. */
.ptv3-block { margin:0; }
.ptv3-list-h { margin-bottom:9px; }

.ptv3 .pack-list { gap:8px; margin-bottom:0; }
.ptv3 .pack-list .item { width:calc(50% - 4px); margin:0; padding:7px 8px; font-size:11.5px; line-height:1.25; }
.ptv3 .pack-list .item .doses { margin-top:1px; font-style:normal; font-size:11px; }
.ptv3 .pack-list .item .price { margin-top:4px; font-size:12px; }
.ptv3 .pack-list .item.unavailable { opacity:0.55; }

.ptv3 .options-pad { margin:0; }

/* Options fill the column on the same grid as the packs. The fixed 150px item
   width leaves a ragged edge, and w80/w100/w130 only ever apply to sizes. */
.ptv3 .options-list:not(.single) {
	display:grid; grid-template-columns:repeat(auto-fill, minmax(140px, 1fr)); gap:8px;
}
.ptv3 .options-list:not(.single) .item {
	width:auto; max-width:none; height:auto; min-height:40px; margin:0;
}

.ptv3-status { margin:0; padding:9px 11px; border-radius:5px; font-size:13px; }
.ptv3-status.out { border:1px solid var(--red-color); color:var(--red-color); }
.ptv3-status.preorder { border:1px solid var(--blue-color); color:var(--blue-color); }

/* One primary action. Everything else is quieter and separated by space. */
.ptv3 .purchase-panel { margin-top:0; }
.ptv3 .quantity-box { margin:0; height:52px; }
.ptv3 .purchase-primary { grid-template-columns:104px minmax(0, 1fr); }
.ptv3 .purchase-panel .buy-button { height:52px; }

.ptv3-secondary { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.ptv3 .ptv3-quick-order { width:100%; margin:0; }
.ptv3-store-link {
	background:transparent; border:none; padding:0; cursor:pointer;
	color:var(--dim-3-color); font:inherit; font-size:13px; text-decoration:underline;
	text-underline-offset:3px;
}
.ptv3-store-link:hover { color:var(--text-color); }
.ptv3-store-link i { margin-right:5px; opacity:0.8; }

/* The most-clicked control on the page, so it shows what it opens. */
.ptv3-facts {
	display:block; width:100%; padding:0; cursor:pointer; text-align:left;
	background:var(--background-color); border:1px solid var(--dim-d-color); border-radius:5px;
	color:var(--dim-6-color); font:inherit; font-size:12.5px;
}
.ptv3-facts:hover { border-color:var(--dim-c-color); }

.ptv3-facts-head { display:flex; flex-wrap:wrap; gap:6px 22px; padding:11px 13px; }
.ptv3-facts-head div { display:flex; align-items:baseline; gap:6px; }
.ptv3-facts-head span { color:var(--dim-9-color); font-size:11px; }
.ptv3-facts-head b { color:var(--text-color); font-size:12.5px; font-weight:600; }

.ptv3-facts-rows { padding:0 13px; }
.ptv3-facts-row {
	display:flex; align-items:baseline; justify-content:space-between; gap:14px;
	padding:7px 0; border-top:1px solid var(--dim-e-color);
}
.ptv3-facts-row span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ptv3-facts-row b { flex:none; color:var(--text-color); font-weight:600; font-variant-numeric:tabular-nums; }

.ptv3-facts-foot {
	display:flex; align-items:center; justify-content:space-between; gap:12px;
	padding:10px 13px; border-top:1px solid var(--dim-e-color); background:var(--dim-fa-color);
	border-radius:0 0 4px 4px;
}
.ptv3-facts.plain .ptv3-facts-foot { border-top:0; background:transparent; border-radius:4px; }
.ptv3-facts-cta { color:var(--dim-3-color); font-size:13.5px; font-weight:600; }
.ptv3-facts-cta i { margin-right:6px; font-size:15px; }
.ptv3-facts:hover .ptv3-facts-cta { color:var(--text-color); }
.ptv3-facts-more { flex:none; color:var(--dim-9-color); font-size:11.5px; }

.ptv3-trust { display:grid; gap:7px; font-size:12px; color:var(--dim-6-color); }
.ptv3-trust div { display:flex; align-items:baseline; gap:9px; }
.ptv3-trust i { flex:none; width:14px; text-align:center; color:var(--green-color); }

@media (max-width: 1024px) {
	.ptv3 { gap:30px; }
	.ptv3 .ptv3-gallery { width:320px; flex-basis:320px; }
}

@media (max-width: 768px) {
	/* Stacked, the columns must stretch. flex-start sizes them to their content,
	   so narrow products leave a gap and wide ones push the page sideways. */
	.ptv3 { flex-direction:column; align-items:stretch; gap:24px; }
	.ptv3 .ptv3-gallery { position:relative; top:auto; width:100%; flex-basis:auto; }
	.ptv3 .ptv3-buy { width:100%; max-width:none; }
	.ptv3 h1 { font-size:21px; }
	.ptv3 .ptv3-name-sub { font-size:14px; }
	.ptv3 .pack-list { justify-content:flex-start; }
	.ptv3 .pack-list .item { width:calc(50% - 4px); margin:0; }
	.ptv3 .options-list { width:auto; margin:0; }
	.ptv3 .quantity-box { width:100%; height:56px; }
	.ptv3 .purchase-panel .buy-button { height:56px; }
}


/*************************************************************
 * Order gifts strip and popup. Toddor preview only.
 *************************************************************/

.light {
	--pg-accent:#6457e8;
	--pg-accent-bg:#eeecfd;
	--pg-thumb-bg:#fff;
	--pg-on-bg:#e9f7ef;
	--pg-on-text:#0f7a39;
	--pg-off-bg:#f3f3f3;
	--pg-off-text:#666;
}
.dark {
	--pg-accent:#9a90ff;
	--pg-accent-bg:#1c1a3a;
	--pg-thumb-bg:#000;
	--pg-on-bg:#10291a;
	--pg-on-text:#4fd487;
	--pg-off-bg:#1c1c1c;
	--pg-off-text:#aaa;
}

/* Coupon: dashed frame, gift icon, title, and a pill on the right. */
.product-gifts-teaser {
	display:flex;
	align-items:center;
	gap:12px;
	box-sizing:border-box;
	width:100%;
	margin-top:28px;
	padding:11px 12px;
	border:1.5px dashed var(--dim-d-color);
	border-radius:10px;
	background:var(--background-color);
	color:var(--text-color);
	font:inherit;
	text-align:left;
	cursor:pointer;
	transition:border-color .15s ease;
}
.product-gifts-teaser:hover { border-color:var(--dim-9-color); }
.product-gifts-teaser:focus-visible { outline:2px solid var(--hl-color); outline-offset:3px; }

.pgt-icon { flex:0 0 22px; color:var(--pg-accent); font-size:20px; line-height:1; text-align:center; }
.pgt-title { display:block; flex:1 1 auto; min-width:0; font-size:13px; font-weight:600; line-height:1.3; }
.pgt-cta { flex:0 0 auto; padding:6px 11px; border:1px solid var(--dim-d-color); border-radius:999px; font-size:12px; font-weight:600; line-height:1.3; white-space:nowrap; transition:border-color .15s ease, background-color .15s ease; }
.product-gifts-teaser:hover .pgt-cta { border-color:var(--dim-9-color); background:var(--dim-fa-color); }

.product-gifts-popup { display:none; position:fixed; top:50%; left:50%; z-index:6100; width:calc(100% - 32px); max-width:480px; max-height:90vh; max-height:90dvh; transform:translate(-50%, -50%); border:1px solid var(--dim-e-color); border-radius:16px; background:var(--background-color); color:var(--text-color); box-shadow:0 24px 70px rgba(0,0,0,.28); }
.product-gifts-popup.open { display:flex; flex-direction:column; animation:pg-pop .18s ease; }
.product-gifts-head { display:flex; align-items:center; gap:12px; flex:0 0 auto; padding:18px 20px; border-bottom:1px solid var(--dim-e-color); border-radius:16px 16px 0 0; }
.pg-head-icon { display:flex; align-items:center; justify-content:center; flex:0 0 42px; height:42px; border-radius:50%; background:var(--pg-accent-bg); color:var(--pg-accent); font-size:18px; }
.pg-head-copy { flex:1 1 auto; min-width:0; }
.product-gifts-head h3 { margin:0; font-size:19px; line-height:1.25; }
.product-gifts-head p { margin:3px 0 0; color:var(--dim-6-color); font-size:13px; line-height:1.4; }
.product-gifts-head button { width:40px; height:40px; flex:0 0 auto; border:0; border-radius:50%; background:var(--dim-fa-color); color:var(--text-color); cursor:pointer; }
.product-gifts-head button:focus-visible { outline:2px solid var(--hl-color); outline-offset:3px; }

.product-gifts-list { margin:0; padding:10px 20px 18px; list-style:none; overflow-y:auto; overscroll-behavior:contain; min-height:0; }
.pg-item { display:flex; align-items:center; gap:14px; padding:12px 0; border-bottom:1px solid var(--dim-e-color); }
.pg-item:last-child { border-bottom:0; }
.pg-thumb { display:flex; align-items:center; justify-content:center; flex:0 0 64px; height:64px; border:1px solid var(--dim-e-color); border-radius:10px; background:var(--pg-thumb-bg); overflow:hidden; }
.pg-thumb img { display:block; width:100%; height:100%; object-fit:contain; }
.pg-info { display:block; min-width:0; }
.pg-name { display:block; font-size:14px; font-weight:600; line-height:1.35; }
.pg-pack { display:block; margin-top:2px; color:var(--dim-6-color); font-size:12px; }
.pg-state { display:none; align-items:center; gap:6px; margin-top:7px; padding:3px 9px; border-radius:999px; font-size:12px; font-weight:600; line-height:1.5; }
.pg-state i { font-size:10px; }
.pg-state-on { background:var(--pg-on-bg); color:var(--pg-on-text); }
.pg-state-off { background:var(--pg-off-bg); color:var(--pg-off-text); }
.pg-item.unlocked .pg-state-on,
.pg-item:not(.unlocked) .pg-state-off { display:inline-flex; }
.pg-item:not(.unlocked) .pg-thumb { opacity:.72; }

@keyframes pg-pop {
	from { opacity:0; margin-top:8px; }
	to { opacity:1; margin-top:0; }
}

@media (max-width:600px) {
	.product-gifts-popup { top:auto; bottom:0; width:100%; max-width:none; transform:translate(-50%, var(--bottom-sheet-drag-distance, 0)); border-width:1px 0 0; border-radius:18px 18px 0 0; }
	.product-gifts-popup.open { animation:none; }
	.product-gifts-head { padding:24px 18px 14px; border-radius:18px 18px 0 0; }
	.product-gifts-head h3 { font-size:17px; }
	.product-gifts-list { padding:6px 18px calc(18px + env(safe-area-inset-bottom)); }
}

@media (prefers-reduced-motion:reduce) {
	.product-gifts-popup.open { animation:none; }
	.product-gifts-teaser,
	.pgt-cta { transition:none; }
}
