:root {
	--max-width: 1600px;
	--side-padding: 30px;
	--header-height: 56px;
	--top-menu-height: 36px;
	--submenu-height: 38px;

	--font-size: 14px;
	--font-family: 'Commissioner', sans-serif;

	--overlay-opacity: 0.3;
	--spinner-size: 30px;
	--spinner-color: #666;
	--spinner-border-color: rgba(0, 0, 0, 0.1);
	--spinner-animation: spin 1s linear infinite;

}

*,
*::before,
*::after {
	margin: 0;
	padding: 0;
    box-sizing: border-box;
}

body {
	position: relative;
	background: var(--background-color);
	color: var(--text-color);
	font: normal var(--font-size) var(--font-family);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}
a {
	color: inherit;
	text-decoration: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

input, button, textarea, select { font: inherit; }

img, picture, video, canvas, svg { max-width: 100%; }
img { border: 0; }

ul { list-style: none; }

:focus { outline: none; }

header, section, footer, aside, nav, main, article, figure {
	display: block;
}

button { font: inherit; }

body {
	display: flex;
	flex-direction: column;
	min-height: 100dvh;
}
body.no-scroll { position:fixed; overflow-y:scroll; width:100%; }
html.search-no-scroll,
body.search-no-scroll {
	overflow: hidden;
	overscroll-behavior: none;
	height: 100%;
}

main {
	flex: 1;
}

hr { border:0; border-top:1px solid var(--dim-e-color); margin:20px 0; }

.wrapper {
	width:100%;
	max-width: var(--max-width);
	margin: 0 auto;
	padding:0 var(--side-padding);
}

/* Let the privacy policy fill the wrapper despite its saved inline width limit. */
.page-text .privacy-policy-content { max-width:none !important; }

.page {
	width: 100%;
	max-width: var(--max-width);
	margin: 0 auto;
	padding: 0px var(--side-padding) 150px;
}
.page.dim { background-color: var(--dim-bg-color); }
.page.no-bc { padding-top:30px; }

.breadcrumbs {
	/* margin:15px 0 25px; */
	color:var(--dim-6-color);
	text-align:left;
	max-width: var(--max-width);
	margin: 0 auto;
	padding:15px var(--side-padding) 15px var(--side-padding);
	font-size: 13px;
}
.breadcrumbs ol { list-style:none; margin:0; padding:0; display:flex; align-items:center; flex-wrap:nowrap; margin-left:-3px; }
.breadcrumbs li { display:flex; align-items:center; /*min-width:0;*/ padding:3px; }
.breadcrumbs a, .breadcrumbs .current { display:inline-block; max-width:22ch; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--breadcrumb-a-color); text-decoration:none; }
.breadcrumbs .current { color: var(--dim-9-color); }

/* separators */
.breadcrumbs li + li::before {
	content:"›";
	margin:0 10px 0 4px;
	color:var(--dim-c-color);
}

/* Home label handling */
.breadcrumbs .home .home-mobile { display:none; }
.breadcrumbs .home .home-desktop { display:inline; }

/* Mobile: show icon, hide middle, add ellipsis */
@media (max-width:640px){
	.breadcrumbs { padding:20px var(--side-padding) 20px var(--side-padding); }
	.breadcrumbs .hide-mobile { display:none; }
	.breadcrumbs .ellipsis { display:list-item; color:var(--dim-9-color); }
	.breadcrumbs .home .home-mobile { display:inline; opacity:0.7; }
	.breadcrumbs .home .home-desktop { display:none; } /* keep “Начало” in markup for SEO/a11y, hide visually */
}

/* Desktop: show all, no ellipsis */
@media (min-width:641px){
	.breadcrumbs .ellipsis { display:none; }
	.breadcrumbs a:hover { text-decoration:underline; }
}

/* 
.breadcrumbs a { color:var(--breadcrumb-a-color); font-size:13px; display:inline-block; padding: 3px 0; }
.breadcrumbs a:hover { color:var(--breadcrumb-a-hover-color); }
.breadcrumbs i { color:var(--breadcrumb-i-color); font-style: normal; margin:0 5px; font-size:0.6em; vertical-align: 1px; }
.breadcrumbs i.home { font-size:1em; } */


h1 { font-size: 26px; font-weight: bold; margin: 0 0 20px; }

.center { text-align: center; }
.hidden { display: none; }
.pt20 { padding-top: 20px; }
.pt30 { padding-top: 30px; }


@font-face {
	font-display: optional;
    font-family: dsdigib;
	font-display: auto;
    src: url(/img/DS-DIGIB.TTF);
}




/** PRODUCT BOX **/

.product-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	padding: 10px 0;
	gap: 15px;
}

.product-item {
	width: 230px;
	text-align: center;
	padding: 20px 10px;
	margin-bottom: 5px;
	position: relative;
	flex: 0 0 auto;
	border-radius: 10px;
	background-color: var(--background-color);
	/* border:1px solid red; */
}
.product-item:active { transform: scale(0.99); }

.product-item .thumb {
	width: 100%;
	height: 170px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	position: relative;
}
.product-item .thumb picture {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}
.product-item .thumb img {
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	border-radius: 10px;
}
.product-item .thumb .product-gift {
	position:absolute;
	bottom:20px;
	right:40px;
	max-height:50px;
	max-width:60px;
}

.product-item .brand {
	font-size: 12px;
	color: var(--brand-name-color);
	margin: 15px 0 5px;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
}

.product-item h3 {
	height: 2.6em;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--product-name-color);
	margin: 0 0 5px 0;

	/* 2 line elipsis */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.product-item .pack {
	font-size: 12px;
	color: var(--product-pack-color);
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
}

.product-item .price {
	font-size: 14px;
	color: var(--dim-3-color);
	margin: 8px 0 0;
}
.product-item .price .regular {
	margin-right: 3px;
	position: relative;
}
.product-item .price .regular::before {
	content: "";
	position: absolute;
	top: 55%;
	left: 0;
	width: 100%;
	height: 1px;
	background-color: var(--price-regular-color);
	opacity: 0.4;
}
.product-item .price .sale {
	font-weight: bold;
}
.product-item.timer .price .sale { color: var(--price-timer-color); font-weight: bold; }

/* Stack contents shown on v3 product cards. */
.product-item.stack-preview {
	padding: 10px 8px 17px;
}
.product-item.stack-preview .product-gift { display:none; }
.product-item.stack-preview > .brand,
.product-item.stack-preview > h3 { display:none; }
.product-item.stack-preview .pack { display:none; }
.stack-preview-contents {
	width: 100%;
	margin: 10px 0 12px;
	border-radius: 10px;
	text-align: left;
	overflow: hidden;
}
.stack-preview-header {
	height: 27px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 0;
	background: linear-gradient(110deg, #0876d8, #12a2e2);
	color: #fff;
	font-size: 9px;
	font-weight: bold;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.stack-preview-body {
	padding: 5px 9px;
	border: 1px solid #dbe9f4;
	border-top: 0;
	border-radius: 0 0 10px 10px;
	background: #f3f9fd;
}
.dark .stack-preview-body { border-color:#263b4b; background:#111c25; }
.stack-preview-row {
	min-height: 30px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 8px;
	border-bottom: 1px dashed var(--dim-d-color);
	font-size: 10px;
}
.stack-preview-row:last-child { border-bottom:0; }
.stack-preview-name {
	min-width: 0;
	overflow: hidden;
	color: var(--dim-3-color);
	font-size: 11px;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.stack-preview-price {
	color: var(--text-color);
	font-size: 9px;
	white-space: nowrap;
}
.stack-preview-gift {
	padding: 2px 4px;
	border-radius: 3px;
	background: #e4f6eb;
	color: #13894a;
	font-size: 7px;
	font-weight: bold;
	text-transform: uppercase;
}
.dark .stack-preview-gift { background:#143421; color:#75d695; }
.horizontal-product-list .product-item.stack-preview { width:220px; }

/* .product-item.timer .thumb img { width:120px; height:120px; } */
.product-item.timer .brand {
	margin: 10px 0 5px;
}

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

.product-item .tags {
	position: absolute;
	top: 10px;
	left: 10px;
	text-align: left;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	z-index: 10;
}
.product-item .tag {
	flex: 0 0 auto;
	border-radius: 3px;
	padding: 2px 8px 2px;
	font-weight: bold;
	margin-bottom: 5px;
	font-size: 12px;
}
.product-item .tag.promo { background: #ffc039; color: #693905; font-size: 14px; }
.product-item .tag.promo-red { background: #d61616; color: #fff; font-size: 14px; }
.product-item .tag.popular { background: #4e91ed; color: #fff; font-size: 11px; }
.product-item .tag.stack { background: #158fca; color: #fff; }
.product-item .tag.new { background: #ffc039; color: #693905; }
.product-item .tag.preorder { background: #4e91ed; color: #fff; }
.product-item .tag.c1111 {
	background: rgb(255, 117, 162);
	background: linear-gradient(
		34deg,
		rgba(232, 26, 184, 1) 0%,
		rgba(255, 117, 162, 1) 100%
	);
	color: #fff;
}
.product-item .saved-product {
	background: transparent;
	border:none;
	color: var(--dim-3-color);
	font-size: 20px;
	position:absolute;
	top: 10px; right: 10px;
	width: 30px; height: 30px;
	text-align: center;
	line-height: 30px;
	cursor: pointer;
}
.product-item .saved-product:hover {
	transition: all 0.3s ease;
	transform: scale(1.2);
	color:red;
}
.product-item .saved-product::before {
	font-family: 'Fitness1 Critical Icons', 'Font Awesome 7 Pro';
	font-weight: 900;
	/* content: "\f004"; */
	content: "\f057";
}
.product-item .saved-product:hover::before {
	font-family: 'Fitness1 Critical Icons', 'Font Awesome 7 Pro';
	font-weight: 900;
	content: "\f057";
}










.price .regular { color: var(--price-regular-color); }
.price .sale { color: var(--price-sale-color); }
.price .sale.euro { color: var(--price-euro-color); }
.price .euro-sep { color: var(--price-euro-sep-color); margin:0 3px; }



.euro-rate-line {
	background-color: var(--dim-e-color);
	border-top: 1px solid var(--dim-d-color);
	padding: 10px 20px;
	color: var(--dim-6-color);
	font-size: 14px;
	text-align: center;
}



.horizontal-product-list {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 30px 0;
	width: 100%;
}
.horizontal-product-list .scroll {
	display: flex;
	flex-direction: row;
	width: 100%;
	justify-content: center;
	position: relative;
}

.horizontal-product-list .product-list {
	/* container-type: inline-size;
	position: relative; */
	max-width: 100%;
	padding-left: 10px;
	padding-right: 50px;
	flex-wrap: nowrap;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	-ms-overflow-style: none;
	scrollbar-width: none;
	-webkit-mask-image: linear-gradient(to right,black 0%, black calc(100% - 50px), #1111 100%);
	mask-image: linear-gradient(
        to right,
        black 0%,
        black calc(100% - 50px),
        #1111 100%
    );
}
.horizontal-product-list .product-list::-webkit-scrollbar { display: none; }


.horizontal-product-list h4 { font-size: 24px; font-weight: 500; color:var(--horizontal-products-h-color); margin: 0 0 30px; text-align: center; }
.horizontal-product-list h4 a { color:var(--horizontal-products-a-color); font-weight: bold; margin-left: 5px; }
.horizontal-product-list h4 a:hover { color:var(--horizontal-products-a-hover-color); }
.horizontal-product-list .hpl-right,
.horizontal-product-list .hpl-left {
	position: absolute;
	top: 40%;
	transform: translateY(-40%);
	width: 40px;
	height: 40px;
	border: none;
	border-radius: 50%;
	background-color: var(--text-color);
	color: var(--background-color);
	z-index: 1;
	cursor: pointer;
	opacity: 0.5;
	animation: infinite side-shift 1.0s ease;
}
.horizontal-product-list .hpl-right {
	right: 0;
}
.horizontal-product-list .hpl-left {
	left: 0;
}
.horizontal-product-list .hpl-right:hover,
.horizontal-product-list .hpl-left:hover {
	opacity: 1;
	animation: none;
}

@media (hover: none) and (pointer: coarse) {
	.horizontal-product-list .hpl-right,
	.horizontal-product-list .hpl-left {
		display: none;
	}
}

@keyframes side-shift {
	0% { transform: translate(0%, -40%); }
	50% { transform: translate(10%, -40%); }
	100% { transform: translate(0%, -40%); }
}

.last-visited-products { background-color: var(--last-visited-products-bg-color); margin-bottom:0px; border-top:1px solid var(--last-visited-products-border-color); }




.basic-ww {
	position: fixed;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	max-width: 800px;
	max-height: 80vh;
	width:90%;
	background: #fff;
	color: #000;
	border-radius: 10px;
	box-shadow: 0 0 30px rgba(0,0,0,0.3);
	z-index: 1001;
}
.basic-ww .title { position:relative; }
.basic-ww .title p {
	font-size: 20px;
	font-weight: 500;
	margin-bottom: 20px;
	padding: 10px 30px 10px 20px;
}
.basic-ww .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;
}
.basic-ww .title .close:hover { color: var(--red-color); }



/********* alert-ww **********/

.alert-ww {
	max-width:500px;
	position:fixed;
	top:50%; left:50%;
	transform:translate(-50%,-50%);
	background-color:#f5f5f5;
	border-radius:5px;
	color:#000;
	text-align: center;
	box-shadow:0 0 30px rgba(0,0,0,0.1);
	z-index:1100;
}
.wwa-body {
	padding:20px;
	font-size:15px;
	line-height:22px;
}
.wwa-buttons { padding:15px; border-top:1px solid #eee; text-align:center; }
.wwa-buttons .ok {
	padding:8px 30px;
	border:1px solid #ddd;
	background-color:#e5e5e5;
	color:#000;
	border-radius:2px;
	font-size:14px;
	font-weight: bold;
	cursor:pointer;
}
.wwa-buttons .ok:hover { background-color:#eee; }
.wwa-buttons .ok:focus { outline: 2px solid #38A3F7; }





/******** BUTTONS ********/


.btn {
	display: inline-block;
	background-color: var(--btn-gray-bg);
	color: var(--btn-gray-text);
	border: none;
	border-radius: 5px;
	padding: 10px 20px;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
}
.btn:hover { background-color: var(--btn-gray-bg-hover); }
.btn:active { background-color: var(--btn-gray-bg-active); }
.btn:disabled { background-color: var(--btn-gray-bg-disabled); cursor: default; }

.btn.loading { color:rgba(0,0,0,0); text-shadow:none; vertical-align:middle; position:relative; }
.btn.loading::after {
	content: "";
	display: block;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	border: 2px solid rgba(255,255,255,0.8);
	border-right-color:rgba(255,255,255,0.1);
	position:absolute;
	top:calc(50% - 7px); left:calc(50% - 7px);
	animation: btn-loading 1s linear infinite;
}
@keyframes btn-loading {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}


.btn.blue {
	background-color: var(--btn-blue-bg);
	color: var(--btn-blue-text);
}
.btn.blue:hover { background-color: var(--btn-blue-bg-hover); }
.btn.blue:active { background-color: var(--btn-blue-bg-active); }
.btn.blue:disabled { background-color: var(--btn-blue-bg-disabled); }

.btn.green {
	background-color: var(--btn-green-bg);
	color: var(--btn-green-text);
}
.btn.green:hover { background-color: var(--btn-green-bg-hover); }
.btn.green:active { background-color: var(--btn-green-bg-active); }
.btn.green:disabled { background-color: var(--btn-green-bg-disabled); }





/******************/


.basic-box {
	padding:20px;
	position:relative;
	text-align:left;
	border:1px solid var(--basic-box-border-color);
	border-radius: 10px;
	background-color: var(--background-color);
	box-shadow: var(--basic-box-shadow);
}
.basic-box.no-padding { padding:0; }
.basic-box h2 {
	margin:0 0 15px 0;
	font-weight:600;
	font-size:1.5em;
}

@media (max-width: 700px) {
	.basic-box.trans { padding:0; border:none; box-shadow:none; background:transparent; }
}



/********* LANG WW **********/

.lang-ww {
	position: fixed;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	max-width: 200px;
	width: 90%;
	background: #fff;
	color: #000;
	border-radius: 10px;
	box-shadow: 0 0 30px rgba(0,0,0,0.3);
	overflow: hidden;
	z-index: 1100;
	display: none;
}
.lang-ww.open { display: block; }
.lang-ww .item {
	padding: 12px 16px;
	border-bottom: 1px solid #eee;
	cursor: pointer;
}
.lang-ww .item:last-child { border-bottom: none; }
.lang-ww .item:hover {
	background: #fafafa
}
.lang-ww .item img {
	width: 20px;
	height: 20px;
	margin-right: 8px;
	vertical-align: middle;
	box-shadow: 0 0 5px rgba(0,0,0,0.1);
}

/**************************/




.top-message {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	color: #fff;
	font-size: 16px;
	font-weight: 500;
	background: var(--green-color);
	border-radius: 30px;
	margin: 0 0 30px 0;
	padding: 10px 50px 10px 20px;
	text-align: left;
	position: relative;
}
.top-message p { margin:0; flex-grow: 1; }
.top-message .icon { margin-right:15px; opacity: 0.6; }
.top-message .close {
	width:50px; height:100%;
	position:absolute;
	top:50%; right:0;
	transform:translateY(-50%);
	background: transparent;
	border: none;
	color: #fff;
	font-size: 16px;
	cursor: pointer;
	opacity: 0.6;
}
.top-message .close:hover { opacity: 1; }












/********** AI CHAT **********/

.chat-button {
	position: fixed;
	bottom: min(calc(70px + env(safe-area-inset-bottom)), 80px);
	right: 20px;
	width: 60px; height: 60px;
	background-color: var(--blue-color);
	border:none;
	color: #fff;
	border-radius: 50%;
	text-align: center;
	line-height: 60px;
	font-size: 24px;
	box-shadow: 0 5px 20px rgba(0,0,0,0.1);
	z-index: 900;
	cursor: pointer;
	transition: all 0.3s ease;
	/* animation: pulse 1.5s infinite; TOO HEAVY */
}
.chat-button:hover {
	background-color: var(--blue-color);
	box-shadow: 0 5px 20px rgba(0,0,0,0.2);
	transform: scale(1.1);
	animation: none;
}

@keyframes pulse {
	0% { transform: scale(1); }
	50% { transform: scale(1.05); }
	100% { transform: scale(1); }
}


.chat-box {
	display: flex;
	flex-direction: column;
	position: fixed;
	bottom: 20px; right: 20px;
	width: 450px;
	min-height: 550px;
	background-color: #fff;
	color: #000;
	border-radius: 10px;
	box-shadow: 0 5px 30px rgba(0,0,0,0.2);
	z-index: 1002;
	overflow: hidden;
	display: none;
}

.chat-header {
	padding: 10px 15px;
	background-color: var(--blue-color);
	color: #fff;
	font-size: 16px;
	font-weight: 500;
	border-top-left-radius: 10px;
	border-top-right-radius: 10px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: relative;
}
.chat-header .close {
	position:absolute;
	top:0; right: 0;
	width: 40px; height: 100%;
	text-align: center;
	font-size: 24px;
	line-height: 30px;
	color: #fff;
	cursor: pointer;
	background: transparent;
	border: none;
}
.chat-header .close:hover { opacity: 0.8; }

.chat-body {
	padding: 15px;
	height:500px;
	overflow-y: auto;
	flex:1;
}

.chat-message {
	margin-bottom: 10px;
	font-size:14px;
}
.user-message {
	text-align: right;
}
.message-content {
	display: inline-block;
	background-color: #f4f4f4;
	padding: 8px 13px;
	border-radius: 10px;
	max-width: 80%;
}
.user-message .message-content {
	background-color: #007bff;
	color: white;
}

.chat-footer {
	border-top: 1px solid #eee;
	display: flex;
}

.chat-footer input {
	flex: 1;
	padding: 16px 18px;
	border: none;
	font-size: 14px;
}

.chat-footer button {
	background-color: var(--blue-color);
	color: #fff;
	border: none;
	border-radius: 5px;
	padding: 8px 12px;
	margin: 8px;
	cursor: pointer;
}

.chat-footer button:hover {
	background-color: #1a7ede;
}


.chat-box .typing-indicator {
	display: flex;
	align-items: center;
	font-size: 20px;
	font-family: Arial, sans-serif;
	color: #666;
}

.chat-box .dot {
	width: 8px;
	height: 8px;
	margin: 5px 2px;
	border-radius: 50%;
	background-color: #aaa;
	opacity: 0;
	animation: typing 1.2s infinite;
}

.chat-box .dot:nth-child(1) {
	animation-delay: 0s;
}

.chat-box .dot:nth-child(2) {
	animation-delay: 0.2s;
}

.chat-box .dot:nth-child(3) {
	animation-delay: 0.4s;
}

@keyframes typing {
	20%, 100% {
		opacity: 0;
	}
	50% {
		opacity: 1;
	}
}

@media (max-width: 768px) {
	.chat-box { width:100%; bottom:0; right:0; top:0; left:0; margin:0; border-radius:0; height:100%; }
}


.spinner {
	display: inline-block;
	border: 3px solid var(--spinner-border-color);
	border-left-color: var(--spinner-color);
	border-radius: 50%;
	width: var(--spinner-size);
	height: var(--spinner-size);
	animation: var(--spinner-animation);
}
@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}


.dark-overlay {
	position: fixed;
	top: 0; left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, var(--overlay-opacity));
	z-index: 1000;
}

body.option-picker-open .dark-overlay { z-index:6000; }
.bottom-sheet-handle { position:relative; }
.option-picker-popup {
	position:fixed;
	top:50%;
	left:50%;
	z-index:6100;
	display:flex;
	flex-direction:column;
	width:calc(100% - 32px);
	max-width:680px;
	max-height:min(86vh, 760px);
	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,0.28);
}
.option-picker-head { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 24px; border-bottom:1px solid var(--dim-e-color); flex:0 0 auto; }
.option-picker-heading { display:flex; align-items:center; gap:12px; min-width:0; flex:1; }
.option-picker-title-copy { min-width:0; flex:1; }
.option-picker-icon {
	display:flex;
	align-items:center;
	justify-content:center;
	width:42px;
	height:42px;
	flex:0 0 42px;
	border:1px solid color-mix(in srgb, var(--hl-color) 18%, transparent);
	border-radius:50%;
	background:color-mix(in srgb, var(--hl-color) 9%, var(--background-color));
	color:var(--hl-color);
	font-size:18px;
}
.option-picker-heading h3 { margin:0; font-size:20px; font-weight:700; line-height:1.25; overflow-wrap:anywhere; text-wrap:balance; }
.option-picker-subtitle { margin:5px 0 0; color:var(--hl-color); font-size:12px; font-weight:750; line-height:1.2; letter-spacing:0.035em; text-transform:uppercase; }
.option-picker-subtitle[hidden] { display:none; }
.option-picker-close { display:flex; align-items:center; justify-content:center; width:38px; height:38px; flex:0 0 38px; padding:0; border:0; border-radius:50%; background:var(--dim-fa-color); color:var(--dim-6-color); font-size:16px; cursor:pointer; }
.option-picker-close:hover { color:var(--text-color); }
.option-picker-body { min-height:0; padding:20px 24px 24px; overflow-y:auto; overscroll-behavior:contain; }
.option-picker-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
.option-picker-item { display:flex; align-items:center; justify-content:center; gap:8px; min-height:62px; padding:12px 14px; border:1px solid var(--dim-d-color); border-radius:10px; background:var(--background-color); color:var(--text-color); font:inherit; text-align:center; cursor:pointer; transition:border-color 0.15s ease, background-color 0.15s ease, transform 0.15s ease; }
.option-picker-item:hover { border-color:var(--hl-color); background:var(--dim-fa-color); }
.option-picker-item:active { border-color:var(--hl-color); background:var(--dim-fa-color); transform:scale(0.985); }
.option-picker-item.selected { border:2px solid var(--hl-color); background:var(--dim-fa-color); box-shadow:0 0 3px var(--hl-shadow-color, rgb(56 163 250 / 53%)); }
.option-picker-name { font-size:14px; font-weight:650; line-height:1.3; overflow-wrap:anywhere; }
.option-picker-popular { color:#f08a17; font-size:14px; line-height:1; flex:0 0 auto; }
.option-picker-item:not(.selected) .option-picker-check { display:none; }
.option-picker-item.selected .option-picker-check { display:block; flex:0 0 auto; color:var(--hl-color); font-size:11px; }
.option-picker-item:focus-visible,
.option-picker-close:focus-visible { outline:3px solid var(--hl-shadow-color, rgb(56 163 250 / 53%)); outline-offset:2px; }

@media (hover: none) and (pointer: coarse) {
	.option-picker-item:hover { border-color:var(--dim-d-color); background:var(--background-color); }
	.option-picker-item.selected:hover { border-color:var(--hl-color); background:var(--dim-fa-color); }
}

@media (max-width: 768px) {
	.bottom-sheet.draggable .bottom-sheet-handle { touch-action:none; cursor:grab; }
	.bottom-sheet.draggable .bottom-sheet-handle.dragging { cursor:grabbing; }
	.bottom-sheet.draggable .bottom-sheet-handle::before {
		content:"";
		position:absolute;
		top:7px;
		left:50%;
		width:38px;
		height:4px;
		border-radius:2px;
		background:var(--bottom-sheet-handle-color, var(--dim-d-color));
		transform:translateX(-50%);
	}
}

@media (max-width: 600px) {
	.option-picker-popup { top:auto; bottom:0; width:100%; max-height:90dvh; transform:translate(-50%, var(--bottom-sheet-drag-distance, 0)); border-width:1px 0 0; border-radius:18px 18px 0 0; }
	.option-picker-head { padding:18px 18px 15px; }
	.option-picker-icon { width:38px; height:38px; flex-basis:38px; font-size:17px; }
	.option-picker-heading h3 { font-size:18px; }
	.option-picker-close { width:36px; height:36px; flex-basis:36px; }
	.option-picker-body { padding:14px 18px calc(18px + env(safe-area-inset-bottom)); }
	.option-picker-grid { gap:8px; }
	.option-picker-item { min-height:60px; padding:10px; }
	.option-picker-name { font-size:13px; }
}

.category-menu-overlay { z-index: 900; }





.cookie-consent {
	position:fixed;
	left:50%; bottom: 100px;
	transform:translateX(-50%);
	width:400px;
	background-color:rgba(255,255,255,1);
	color:#444;
	border-radius: 8px;
	padding:25px;
	text-align:center;
	font-size:15px;
	line-height: 1.3em;
	box-shadow:0 0 30px rgba(0,0,0,0.3);
	z-index: 1001;
	/* backdrop-filter: blur(5px); */
}
.cookie-consent-buttons {
	margin-top:20px;
}
.cookie-consent-buttons button {
	padding:15px 40px;
	background-color:#eee;
	color:#444;
	font-size:14px;
	margin:0 5px;
	border:none;
	cursor:pointer;
	border-radius: 5px;
}
.cookie-consent-buttons button.accept {
	background-color:#1e68cf;
	color:#fff;
	font-weight: bold;
}
.cookie-consent-buttons button:hover {
	background-color:#e5e5e5;
}
.cookie-consent-buttons button.accept:hover {
	background-color:#2071d8;
}
.cookie-consent a {
	color:#888;
	text-decoration:underline;
	line-height: 2em;
}
.cookie-consent .close {
	position:absolute;
	top:7px; right:7px;
	width:16px;
	height:16px;
	border:none;
	border-radius: 50%;
	background:transparent;
	font-size:14px;
	color:#ccc;
	cursor:pointer;
}
.cookie-consent .close:hover {
	color:#666;
}
.cookie-consent-settings {
	display:none;
	padding: 20px 0;
	text-align: left;
}
.cookie-consent-settings label {
	display:block;
	margin: 0 0 10px;
	padding-left: 25px;
	position: relative;
	cursor: pointer;
}
.cookie-consent-settings input {
	position: absolute;
	top:0; left:-20px;
	opacity: 0;
	z-index: -1;
}
.cookie-consent-settings label::before {
	content: '';
	font-family: 'Font Awesome 5 Free';
	font-size: 10px;
	font-weight: 700;
	line-height: 16px;
	color: #fff;
	background-color: transparent;
	border:1px solid #ccc;
	position:absolute;
	top:1px; left:0;
	width: 16px;
	height: 16px;
	text-align: center;
	margin-right: 5px;
	border-radius: 2px;
}
.cookie-consent-settings input:checked + label::before {
	content: '\f00c';
	background-color: #1e68cf;
	border-color: #1e68cf;
}
.cookie-consent-settings input:checked:disabled + label::before {
	background-color: #ccc;
	border-color: #ccc;
}
.cookie-consent-settings label:hover::before {
	border-color: #999;
}
.cookie-consent-settings input:checked:not(:disabled) + label:hover::before {
	background-color: #5594ea;
}


/* Non-blocking first-visit welcome for the redesigned storefront. */
.site-version-welcome[hidden] { display:none; }
.site-version-welcome {
	position:fixed;
	left:24px;
	bottom:24px;
	z-index:1000;
	display:grid;
	grid-template-columns:42px minmax(0, 1fr) 28px;
	gap:14px;
	align-items:start;
	width:min(400px, calc(100vw - 48px));
	padding:18px;
	border:1px solid var(--basic-box-border-color);
	border-radius:18px;
	background:var(--background-color);
	box-shadow:0 16px 44px rgba(15, 35, 65, .16), 0 2px 6px rgba(15, 35, 65, .06);
	color:var(--text-color);
	cursor:pointer;
	opacity:0;
	transform:translateY(14px) scale(.98);
	transition:opacity .28s ease, transform .28s cubic-bezier(.2, .8, .3, 1);
}
.site-version-welcome.is-open { opacity:1; transform:none; }
.site-version-welcome-icon {
	display:flex;
	align-items:center;
	justify-content:center;
	width:42px;
	height:42px;
	border-radius:13px;
	background:color-mix(in srgb, var(--hl-color) 14%, transparent);
	color:var(--hl-color);
	font-size:18px;
}
.site-version-welcome-content { min-width:0; }
.site-version-welcome-eyebrow {
	display:block;
	margin:0 0 3px;
	color:var(--hl-text-color);
	font-size:10px;
	font-weight:800;
	letter-spacing:.1em;
	text-transform:uppercase;
}
.site-version-welcome-content strong { display:block; margin:0 0 6px; font-size:16px; font-weight:700; line-height:1.3; letter-spacing:-.01em; }
.site-version-welcome-content p { margin:0; color:var(--dim-6-color); font-size:13px; line-height:1.5; }
.site-version-welcome-actions { display:flex; align-items:center; gap:6px; margin:14px 0 0; }
.site-version-welcome-more {
	/* Pull the label back so it lines up with the text above it. */
	margin-left:-12px;
	padding:9px 12px;
	border-radius:10px;
	color:var(--hl-text-color);
	font-size:13px;
	font-weight:700;
}
.site-version-welcome-more:hover { background:var(--dim-f5-color); }
.site-version-welcome-more:focus-visible { outline:3px solid var(--hl-shadow-color, rgba(56, 163, 250, .5)); outline-offset:2px; }
.site-version-welcome-ok {
	padding:9px 18px;
	border:0;
	border-radius:10px;
	background:var(--btn-blue-bg);
	color:var(--btn-blue-text);
	font-size:13px;
	font-weight:700;
	cursor:pointer;
	transition:background .15s ease;
}
.site-version-welcome-ok:hover { background:var(--btn-blue-bg-hover); }
.site-version-welcome-ok:active { background:var(--btn-blue-bg-active); }
.site-version-welcome-close {
	align-self:start;
	display:flex;
	align-items:center;
	justify-content:center;
	width:28px;
	height:28px;
	margin:-4px -4px 0 0;
	padding:0;
	border:0;
	border-radius:8px;
	background:transparent;
	color:var(--dim-9-color);
	font-size:16px;
	cursor:pointer;
}
.site-version-welcome-close:hover { background:var(--dim-f5-color); color:var(--text-color); }
.site-version-welcome-ok:focus-visible,
.site-version-welcome-close:focus-visible { outline:3px solid var(--hl-shadow-color, rgba(56, 163, 250, .5)); outline-offset:2px; }









@media (hover: hover) {
	.product-item:hover { box-shadow: 0 0 10px rgba(0, 0, 0, 0.08), 0 0 3px rgba(0, 0, 0, 0.06); opacity:0.95; }
}

@media (max-width: 1600px) {
	.list .product-item { width:calc(100% / 5 - 15px); padding: 15px 5px; }
}
@media (max-width: 1450px) {
	.list .product-item { width:calc(100% / 4 - 15px); padding: 15px 5px; }
}
@media (max-width: 1300px) {
	/* .product-item { width:210px; } */
	.horizontal-product-list .product-list { gap: 10px; padding-left:0; }
	.horizontal-product-list .product-item { width: 140px; padding: 15px 5px; }
}
@media (max-width: 1024px) {
	.list .product-item { width:calc(100% / 3 - 15px); padding: 15px 5px; }
}
@media (max-width: 900px) {
	.list .product-item { width:calc(100% / 2 - 12px); padding: 15px 5px; }
}

@media (max-width: 768px) {
	:root {
		--side-padding: 15px;
	}

	.list .product-item { width:calc(100% / 3 - 10px); padding: 15px 5px; }
	.product-item:active { transform: scale(0.95); }
	.product-item .thumb { height:100px; }
	.product-item .brand { font-size: 10px; margin: 10px 0 5px; }
	.product-item h3 { font-size: 13px; margin: 0 0 5px; }
	.product-item .pack { font-size: 10px; }
	.product-item .price { font-size: 12px; margin: 5px 0 0; }
	.product-item .price .regular::before { top: 50%; }
	.product-item .product-timer p { font-size: 8px; padding: 2px 8px; }
	.product-item .product-timer .p-timer { font-size: 14px; padding: 5px 10px; }
	.product-item .tags { top: 5px; left: 5px; }
	.product-item .tag { padding: 2px 5px; font-size: 9px; }
	.product-item .tag.promo { font-size: 10px; }
	.product-item .tag.promo-red { font-size: 10px; }
	.product-item .tag.popular { font-size: 9px; }
	.stack-preview-contents { margin:8px 0 10px; }
	.stack-preview-header { height:24px; font-size:8px; }
	.stack-preview-body { padding:4px 6px; }
	.stack-preview-row { min-height:27px; grid-template-columns:minmax(0, 1fr) auto; gap:5px; font-size:8px; }
	.stack-preview-name { font-size:9px; }
	.stack-preview-price { font-size:7.5px; }
	.stack-preview-gift { padding:2px 3px; font-size:6px; }
}

@media (max-width: 480px) {
	.site-version-welcome { right:12px; bottom:12px; left:12px; grid-template-columns:38px minmax(0, 1fr) 26px; gap:12px; width:auto; padding:15px; border-radius:16px; }
	.site-version-welcome-icon { width:38px; height:38px; border-radius:12px; font-size:16px; }
	.site-version-welcome-content strong { font-size:15px; }
	.site-version-welcome-content p { font-size:12.5px; }
	.site-version-welcome-actions { margin-top:12px; }
	.site-version-welcome-ok { flex:1; }

	.list .product-item { width:calc(50% - 10px); padding: 15px 5px; }
	.product-item .thumb { height:140px; }
	.product-item .brand { font-size: 10px; margin: 10px 0 5px; }
	.product-item h3 { font-size: 13px; margin: 0 0 5px; }
	.product-item .pack { font-size: 10px; }
	.product-item .price { font-size: 12px; margin: 5px 0 0; }
	.product-item .price .regular::before { top: 50%; }
	.product-item .product-timer p { font-size: 8px; padding: 2px 8px; }
	.product-item .product-timer .p-timer { font-size: 14px; padding: 5px 10px; }
	.product-item .tags { top: 5px; left: 5px; }
	.product-item .tag { padding: 2px 5px; font-size: 9px; }
	.product-item .tag.promo { font-size: 10px; }
	.product-item .tag.promo-red { font-size: 10px; }
	.product-item .tag.popular { font-size: 9px; }
}

@media (prefers-reduced-motion: reduce) {
	.site-version-welcome { transition:none; }
}
