/* Above-the-fold shell: header, hero slider, product grid (util.css loads async). */
*, *::before, *::after { box-sizing: border-box; }

html, body {
	margin: 0;
	width: 100%;
	max-width: 100%;
	overflow-x: clip;
	background: #fff;
	color: #666;
	font-size: 15px;
	line-height: 1.5;
}

img { max-width: 100%; height: auto; }

.flex-w, .flex-l, .flex-r, .flex-c, .flex-sa, .flex-sb, .flex-m,
.flex-c-m, .flex-r-m, .flex-sb-m, .flex-l-m, .dis-flex {
	display: flex;
}
.flex-w { flex-wrap: wrap; }
.flex-r, .flex-r-m { justify-content: flex-end; }
.flex-c, .flex-c-m { justify-content: center; }
.flex-sb, .flex-sb-m { justify-content: space-between; }
.flex-m, .flex-c-m, .flex-r-m, .flex-sb-m { align-items: center; }
.h-full { height: 100%; }

.p-l-10 { padding-left: 10px; }
.p-l-22 { padding-left: 22px; }
.p-r-11 { padding-right: 11px; }
.p-lr-25 { padding-left: 25px; padding-right: 25px; }
.p-t-19 { padding-top: 19px; }
.p-b-35 { padding-bottom: 35px; }
.p-b-43 { padding-bottom: 43px; }
.m-l-20 { margin-left: 20px; }
.m-r-15 { margin-right: 15px; }

.trans-04 { transition: all 0.4s; }

.visible-false { visibility: hidden; }
.visible-true { visibility: visible; }

/* First hero slide copy visible before util.css + slick init (avoids hide flash). */
.section-slide--home .item-slick1:first-child .layer-slick1.visible-false {
	visibility: visible;
}

.cl0 { color: #fff; }
.cl2 { color: #333; }
.cl3 { color: #666; }
.cl4 { color: #999; }
.cl5 { color: #222; }
.cl6 { color: #888; }
.cl7 { color: #b2b2b2; }

.bg0 { background-color: #fff; }
.bg1 { background-color: var(--primary-color, #717fe0); color: var(--on-primary, #ffffff); }
.bg1.cl0 { color: var(--on-primary, #ffffff); }

.stext-101, .stext-104, .stext-105, .stext-107 {
	font-family: var(--main-font, Poppins, sans-serif);
	line-height: 1.45;
}
.stext-101 { font-size: 15px; font-weight: 500; }
.stext-104 { font-size: 14px; }
.stext-105 { font-size: 18px; font-weight: 600; }
.stext-107 { font-size: 13px; }

.ltext-101, .ltext-103, .ltext-201 {
	font-family: var(--accent-font, 'Playfair Display', serif);
	color: #333;
}
.ltext-101 { font-size: 28px; line-height: 1.28; }
.ltext-103 { font-size: clamp(1.25rem, 5vw + 0.35rem, 2.25rem); line-height: 1.15; font-weight: 700; }
.ltext-201 { font-size: clamp(1.5rem, 6vw + 0.25rem, 2.5rem); line-height: 1.15; font-weight: 700; }

.top-bar {
	position: sticky;
	top: 0;
	z-index: 1102;
	height: 40px;
	background-color: var(--primary-color, #222);
}
.top-bar .content-topbar {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	width: 100%;
	min-height: 40px;
}
.left-top-bar, .right-top-bar a {
	font-size: 12px;
	font-weight: 600;
	color: var(--on-primary, #fff);
}

.wrap-menu-desktop {
	position: sticky;
	z-index: 1101;
	top: 40px;
	height: 84px;
	background: #fff;
	box-shadow: 0 1px 0 rgba(15, 23, 42, 0.06);
}
.limiter-menu-desktop {
	height: 100%;
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
}
.logo {
	display: flex;
	align-items: center;
	height: 78%;
	max-height: 58px;
	margin-right: 24px;
	flex: 0 0 auto;
}
.logo img {
	max-width: min(220px, 22vw);
	max-height: 48px;
	object-fit: contain;
}

.mobile-header-fixed-shell,
.mobile-top-bar-announcement { display: none; }

.wrap-header-mobile {
	display: none;
	align-items: center;
	height: 78px;
	padding: 9px 12px 9px 16px;
	background: #fff;
	box-shadow: 0 1px 0 rgba(15, 23, 42, 0.08);
}
.logo-mobile {
	display: flex;
	align-items: center;
	flex: 1 1 auto;
	min-width: 0;
}
.logo-mobile img {
	height: 48px;
	max-height: 48px;
	max-width: min(220px, 56vw);
	object-fit: contain;
}
.wrap-icon-header { display: flex; align-items: center; }

@media (max-width: 991px) {
	.container-menu-desktop { display: none; }
	.mobile-header-fixed-shell { display: block; width: 100%; }
	.mobile-top-bar-announcement {
		display: flex;
		width: 100%;
		min-height: 36px;
		background: var(--primary-color, #222);
	}
	.header-mobile-stack { display: block; width: 100%; background: #fff; }
	.wrap-header-mobile { display: flex; }
}

.section-slide--home .home-slide-card__media {
	position: relative;
	width: 100%;
	overflow: hidden;
}
.section-slide--home .home-slide-card__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
@media (max-width: 991px) {
	.section-slide--home .home-slide-card__media {
		aspect-ratio: 1 / 1;
		max-height: min(78vw, 420px);
	}
	.section-slide--home .home-slide-card__body {
		padding: 20px 18px 26px;
		text-align: center;
	}
}
@media (min-width: 768px) and (max-width: 991px) {
	.section-slide--home .home-slide-card__media {
		aspect-ratio: 16 / 10;
		max-height: min(48vw, 380px);
	}
}

.block2-pic {
	position: relative;
	width: 100%;
	height: 390px;
	overflow: hidden;
	background: #f7f7f7;
	border-radius: 10px;
}
.block2-pic > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.category-tile {
	display: block;
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: #111;
	border-radius: 14px;
}
.category-tile__media {
	position: absolute;
	inset: 0;
}
.category-tile__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
