:root {
	--grape-deep: #490F30;
	--grape: #672044;
	--grape-bright: #87375e;
	--plum: #231f20;
	--rose: #f3e8ee;
	--rose-2: #faf6f8;
	--cream: #fffaf4;
	--ink: #20161b;
	--muted: #70626a;
	--card: #ffffff;
	--shadow: 0 22px 65px rgba(73, 15, 48, .16);
	--radius: 28px
}

* {
	box-sizing: border-box
}

html {
	scroll-behavior: smooth
}

body {
	margin: 0;
	font-family: Inter, system-ui, -apple-system, Segoe UI, Arial, sans-serif;
	color: var(--ink);
	background: linear-gradient(180deg, var(--rose-2), #fff 34%, #fbf7f9);
	line-height: 1.6
}

a {
	color: inherit;
	text-decoration: none
}

img {
	max-width: 100%;
	display: block
}

.container {
	width: min(1180px, 92%);
	margin: auto
}

.topbar {
	background: linear-gradient(90deg, var(--grape-deep), #231021);
	color: #fff;
	font-size: 14px
}

.topbar .container {
	display: flex;
	gap: 18px;
	align-items: center;
	justify-content: space-between;
	padding: 9px 0
}

.nav {
	position: sticky;
	top: 0;
	z-index: 30;
	background: rgba(255, 246, 251, .94);
	backdrop-filter: blur(16px);
	border-bottom: 1px solid rgba(73, 15, 48, .13)
}

.nav .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 0
}

.brand {
	display: flex;
	align-items: center;
	gap: 12px;
	font-weight: 900;
	letter-spacing: .2px
}

.brand-logo {
	width: 172px;
	height: auto;
	max-height: 72px;
	object-fit: contain
}

.brand-mark {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	color: #fff;
	background: radial-gradient(circle at 30% 30%, var(--grape-bright), var(--grape) 55%, var(--grape-deep));
	box-shadow: 0 12px 28px rgba(73, 15, 48, .28)
}

.menu {
	display: flex;
	gap: 6px;
	align-items: center
}

.menu a {
	padding: 10px 14px;
	border-radius: 999px;
	font-weight: 700;
	color: #490F30
}

.menu a:hover,
.menu a.active {
	background: var(--rose);
	color: var(--grape-deep)
}

.hamb {
	display: none;
	border: 0;
	background: var(--grape);
	color: #fff;
	border-radius: 12px;
	padding: 11px 13px
}

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 0;
	border-radius: 999px;
	padding: 13px 20px;
	font-weight: 800;
	cursor: pointer;
	box-shadow: 0 12px 25px rgba(73, 15, 48, .18);
	transition: .25s
}

.btn.primary {
	background: linear-gradient(135deg, var(--grape-deep), var(--grape-bright));
	color: #fff
}

.btn.light {
	background: #fff;
	color: var(--grape-deep);
	border: 1px solid rgba(73, 15, 48, .16)
}

.btn:hover {
	transform: translateY(-2px)
}

.hero {
	position: relative;
	overflow: hidden;
	padding: 82px 0 64px
}

.hero:before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 75% 12%, rgba(73, 15, 48, .22), transparent 28%), radial-gradient(circle at 10% 0, rgba(73, 15, 48, .16), transparent 26%), linear-gradient(135deg, rgba(247, 233, 241, .75), transparent 45%);
	pointer-events: none
}

.hero-grid {
	position: relative;
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	gap: 44px;
	align-items: center
}

.eyebrow {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	background: #fff;
	border: 1px solid rgba(73, 15, 48, .14);
	border-radius: 999px;
	padding: 8px 13px;
	color: var(--grape-deep);
	font-weight: 900;
	font-size: 13px;
	box-shadow: 0 8px 25px rgba(73, 15, 48, .09)
}

h1 {
	font-size: clamp(42px, 6vw, 78px);
	line-height: .98;
	margin: 18px 0;
	color: #2d1723;
	letter-spacing: -2.8px
}

h2 {
	font-size: clamp(30px, 4vw, 70px);
	line-height: 1.05;
	margin: 0 0 16px;
	letter-spacing: -1.5px
}

.lead {
	font-size: 18px;
	color: var(--muted);
	max-width: 680px
}

.hero-actions {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	margin-top: 28px
}

.hero-card {
	min-height: 520px;
	border-radius: 38px;
	background: linear-gradient(145deg, #fff, #f2e3ea);
	box-shadow: var(--shadow);
	position: relative;
	padding: 34px;
	display: grid;
	place-items: center;
	overflow: hidden;
	border: 1px solid rgba(73, 15, 48, .12)
}

.hero-card:before {
	content: "";
	position: absolute;
	width: 380px;
	height: 380px;
	border-radius: 50%;
	background: linear-gradient(135deg, rgba(73, 15, 48, .14), rgba(73, 15, 48, .26));
	filter: blur(2px)
}

.hero-products {
	position: relative;
	display: flex;
	gap: 10px;
	align-items: end
}

.hero-products img {
	max-height: 430px;
	object-fit: contain;
	filter: drop-shadow(0 24px 24px rgba(45, 12, 28, .2))
}

.floating {
	position: absolute;
	background: #fff;
	border: 1px solid rgba(73, 15, 48, .12);
	box-shadow: 0 16px 40px rgba(73, 15, 48, .14);
	border-radius: 22px;
	padding: 16px;
	font-weight: 900;
	color: var(--grape-deep)
}

.floating.one {
	right: 22px;
	top: 26px
}

.floating.two {
	left: 22px;
	bottom: 30px
}

.section {
	padding: 74px 0
}

.section.alt {
	background: linear-gradient(180deg, #fff, #fbf7f9)
}

.section-head {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 28px
}

.section-head p {
	max-width: 620px;
	color: var(--muted);
	margin: 0
}

.grid-3 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px
}

.grid-4 {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px
}

.card {
	background: rgba(255, 255, 255, .88);
	border: 1px solid rgba(73, 15, 48, .11);
	border-radius: var(--radius);
	padding: 26px;
	box-shadow: 0 14px 45px rgba(73, 15, 48, .09)
}

.category {
	min-height: 250px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	overflow: hidden;
	position: relative
}

.category:after {
	content: "";
	position: absolute;
	right: -45px;
	bottom: -45px;
	width: 140px;
	height: 140px;
	border-radius: 50%;
	background: rgba(73, 15, 48, 0.93)
}

.category h3 {
	font-size: 25px;
	margin: 0 0 8px
}

.category p {
	color: var(--muted);
	margin: 0 0 18px
}

.category b {
	color: var(--grape-deep)
}

.product {
	display: flex;
	flex-direction: column;
	min-height: 420px;
	text-align: center
}

.product .pic {
	height: 230px;
	display: grid;
	place-items: center;
	margin-bottom: 16px
}

.product img {
	max-height: 230px;
	margin: auto;
	object-fit: contain;
	filter: drop-shadow(0 16px 18px rgba(73, 15, 48, .13))
}

.tag {
	display: inline-flex;
	align-self: center;
	background: var(--rose);
	color: var(--grape-deep);
	border-radius: 999px;
	padding: 5px 11px;
	font-size: 12px;
	font-weight: 900;
	margin-bottom: 10px
}

.product h3 {
	font-size: 20px;
	line-height: 1.2;
	margin: 0 0 8px
}

.product p {
	font-size: 14px;
	color: var(--muted);
	margin: 0 0 8px
}

.brand-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px
}

.brand-box {
	text-align: center;
	padding: 30px 18px;
	border-radius: 26px;
	background: linear-gradient(145deg, #fff, #f7f0f4);
	border: 1px solid rgba(73, 15, 48, .12);
	font-size: 24px;
	font-weight: 950;
	color: var(--grape-deep);
	box-shadow: 0 14px 35px rgba(73, 15, 48, .09)
}

.split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 34px;
	align-items: center
}

.story-card {
	background: linear-gradient(145deg, #231f20, var(--grape-deep), var(--grape));
	color: #fff;
	border-radius: 36px;
	padding: 42px;
	box-shadow: var(--shadow)
}

.story-card p {
	color: #ead7e2
}

.timeline {
	display: grid;
	gap: 14px
}

.time-item {
	display: grid;
	grid-template-columns: 80px 1fr;
	gap: 18px;
	background: #fff;
	border-radius: 22px;
	padding: 18px;
	border: 1px solid rgba(73, 15, 48, .11)
}

.time-item b {
	color: var(--grape-deep)
}

.contact-grid {
	display: grid;
	grid-template-columns: .9fr 1.1fr;
	gap: 24px
}

.contact-list {
	display: grid;
	gap: 16px
}

.contact-item {
	background: #fff;
	border: 1px solid rgba(73, 15, 48, .11);
	border-radius: 22px;
	padding: 20px
}

.form {
	display: grid;
	gap: 14px
}

.form input,
.form textarea {
	width: 100%;
	border: 1px solid rgba(73, 15, 48, .2);
	border-radius: 16px;
	padding: 15px 16px;
	font: inherit;
	background: #fff
}

.form input:focus,
.form textarea:focus {
	outline: 3px solid rgba(73, 15, 48, .16);
	border-color: var(--grape)
}

.form textarea {
	min-height: 140px;
	resize: vertical
}

.footer {
	background: linear-gradient(135deg, #231f20, var(--grape-deep));
	color: #fff;
	padding: 54px 0 22px
}

.footer-grid {
	display: grid;
	grid-template-columns: 1.2fr .8fr .8fr;
	gap: 28px
}

.footer a,
.footer p {
	color: #e8d6df
}

.footer-logo {
	width: 155px;
	height: auto;
	margin-bottom: 12px;
	background: rgba(255, 255, 255, .94);
	border-radius: 18px;
	padding: 8px
}

.copyright {
	border-top: 1px solid rgba(255, 255, 255, .14);
	margin-top: 34px;
	padding-top: 18px;
	color: #e8d6df;
	font-size: 14px
}

.page-hero {
	padding: 72px 0;
	background: linear-gradient(135deg, #231f20, var(--grape-deep), var(--grape-bright));
	color: #fff
}

.page-hero p {
	color: #e3c2d8;
	max-width: 740px
}

.filterbar {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 24px
}

.filterbar button {
	border: 1px solid rgba(73, 15, 48, .2);
	background: #fff;
	border-radius: 999px;
	padding: 10px 14px;
	font-weight: 800;
	cursor: pointer;
	color: var(--grape-deep)
}

.filterbar button.active {
	background: linear-gradient(135deg, var(--grape-deep), var(--grape-bright));
	color: #fff
}

.reveal {
	opacity: 0;
	transform: translateY(18px);
	transition: .6s
}

.reveal.in {
	opacity: 1;
	transform: none
}

.map {
	border-radius: 28px;
	overflow: hidden;
	min-height: 330px;
	background: var(--rose);
	display: grid;
	place-items: center;
	color: var(--grape-deep);
	font-weight: 900
}

.table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border-radius: 22px;
	overflow: hidden;
	box-shadow: 0 14px 35px rgba(73, 15, 48, .09)
}

.table th,
.table td {
	padding: 15px;
	border-bottom: 1px solid #eaddE4;
	text-align: left
}

.table th {
	background: var(--rose);
	color: var(--grape-deep)
}

@media(max-width:980px) {
	.brand-logo {
		width: 150px
	}

	.menu a {
		padding: 10px 10px;
		font-size: 14px
	}
}

@media(max-width:900px) {
	.hamb {
		display: block
	}

	.menu {
		position: absolute;
		top: 78px;
		left: 4%;
		right: 4%;
		display: none;
		flex-direction: column;
		background: #fff;
		border-radius: 22px;
		padding: 14px;
		box-shadow: var(--shadow)
	}

	.menu.open {
		display: flex
	}

	.menu a {
		width: 100%
	}

	.hero-grid,
	.split,
	.contact-grid {
		grid-template-columns: 1fr
	}

	.grid-3,
	.grid-4,
	.brand-grid {
		grid-template-columns: 1fr 1fr
	}

	.hero-card {
		min-height: 390px
	}

	.hero-products img {
		max-height: 310px
	}

	.footer-grid {
		grid-template-columns: 1fr
	}
}

@media(max-width:560px) {
	.topbar .container {
		display: block
	}

	.brand-logo {
		width: 136px
	}

	.grid-3,
	.grid-4,
	.brand-grid {
		grid-template-columns: 1fr
	}

	.section-head {
		display: block
	}

	h1 {
		letter-spacing: -1.5px
	}

	.hero {
		padding-top: 48px
	}

	.hero-products img {
		max-height: 250px
	}

	.floating {
		display: none
	}

	.footer {
		padding-bottom: 88px
	}
}/* Database-backed e-commerce catalogue */
.product .pic{display:flex;align-items:center;justify-content:center;text-decoration:none}.product h3 a{color:inherit;text-decoration:none}.product h3 a:hover{color:#672044}.product .product-details{font-size:13px}.price-row{margin-top:auto;padding:8px 0;font-size:16px}.product-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.product-actions .btn{padding:10px 12px;font-size:12px}.product-actions form{margin:0}.catalog-filters{display:flex;align-items:center;gap:10px;margin-bottom:26px;flex-wrap:wrap}.catalog-filters input,.catalog-filters select,.checkout-form input,.checkout-form textarea,.buy-form input,.cart-line input{border:1px solid #d8cbd3;border-radius:8px;padding:12px;font:inherit;max-width:100%}.catalog-filters input{min-width:220px;flex:1}.catalog-filters select{min-width:180px}.product-detail{display:grid;grid-template-columns:1fr 1fr;gap:55px;padding:35px 0}.product-detail h1{font-size:clamp(29px,4vw,50px);line-height:1.12}.detail-image{background:#faf6f8;border-radius:20px;display:flex;align-items:center;justify-content:center;min-height:350px;padding:25px}.detail-image img{max-width:100%;max-height:490px;object-fit:contain}.specs{display:grid;grid-template-columns:120px 1fr;gap:10px}.specs dt{font-weight:700}.specs dd{margin:0}.buy-form{display:flex;align-items:end;gap:18px;margin:25px 0}.buy-form label{display:grid;gap:6px}.buy-form input{width:95px}.cart-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 0;border-bottom:1px solid #d7e1e2}.cart-line{display:flex;align-items:center;gap:8px}.cart-line input{width:85px}.checkout-form{max-width:650px;margin:25px 0}.checkout-form label{display:grid;gap:8px;margin-bottom:19px;font-weight:600}.catalog-warning{background:#fff0e9;border-left:4px solid #c86743;padding:16px;border-radius:7px}.catalog-success{background:#f4edeF;padding:25px;border-radius:12px}.empty-pic{display:grid;place-items:center;width:100%;height:150px;color:#8a999c}@media(max-width:700px){.product-detail{grid-template-columns:1fr}.cart-item{align-items:start;flex-direction:column}.catalog-filters>*{width:100%}}


/* Premium rotating hero product showcase */
.hero-carousel{isolation:isolate;background:linear-gradient(145deg,#fcf9fa 2%,#f5e9ef 100%);padding:0;display:block;min-height:540px}
.hero-carousel::before{width:min(72%,420px);height:auto;aspect-ratio:1;background:radial-gradient(circle,rgba(179,30,108,.22),rgba(179,30,108,.06) 62%,transparent 69%);top:12%;left:14%;filter:none;transition:transform 1.2s ease}
.hero-carousel:hover::before{transform:scale(1.06)}
.hero-orbit{position:absolute;width:76%;aspect-ratio:1;max-width:430px;top:9%;left:13%;border:1px solid rgba(151,29,89,.13);border-radius:50%;pointer-events:none}
.hero-orbit::after{content:'✦';position:absolute;top:11%;right:12%;font-size:28px;color:#732849;opacity:.4;animation:hero-twinkle 4s ease-in-out infinite}
.hero-glow{position:absolute;inset:0;background:radial-gradient(circle at 78% 18%,rgba(255,255,255,.82),transparent 34%);pointer-events:none}
.hero-floating-tag{position:absolute;top:25px;right:25px;z-index:5;background:rgba(255,255,255,.9);border:1px solid rgba(122,27,79,.12);border-radius:999px;color:#490F30;box-shadow:0 8px 30px rgba(100,22,66,.08);font-size:12px;font-weight:800;padding:12px 17px;backdrop-filter:blur(12px)}
.hero-floating-tag span{color:#81405f;margin-left:7px}
.hero-stage{position:relative;height:530px;overflow:hidden}
.hero-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transform:translateX(26px) scale(.965);transition:opacity .8s ease,transform .95s cubic-bezier(.2,.7,.15,1),visibility 0s linear .95s;pointer-events:none}
.hero-slide.is-active{opacity:1;visibility:visible;transform:translateX(0) scale(1);transition:opacity .8s ease,transform .95s cubic-bezier(.2,.7,.15,1);pointer-events:auto;z-index:2}
.hero-product-halo{position:absolute;left:17%;top:11%;height:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,var(--slide-hue),transparent 72%);opacity:.11;filter:blur(14px);pointer-events:none}
.hero-image-link{position:absolute;inset:62px 12% 134px;display:flex;align-items:center;justify-content:center;z-index:1}
.hero-product-image{max-height:100%;max-width:80%;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 26px 18px rgba(50,15,34,.19));transform:translateY(30px) rotate(-4deg) scale(.92);opacity:0;transition:transform 1.1s cubic-bezier(.17,.82,.23,1),opacity .9s ease;will-change:transform}
.hero-slide.is-active .hero-product-image{transform:translateY(0) rotate(0deg) scale(1);opacity:1;animation:hero-float 5.5s ease-in-out 1.1s infinite}
.hero-slide-caption{position:absolute;bottom:23px;left:25px;right:136px;display:flex;flex-direction:column;gap:4px;z-index:3;padding:16px 19px;border:1px solid rgba(127,26,75,.1);border-radius:22px;background:rgba(255,255,255,.91);backdrop-filter:blur(18px);box-shadow:0 12px 40px rgba(98,18,63,.09);transform:translateY(15px);opacity:0;transition:transform .8s ease .13s,opacity .8s ease .13s}
.hero-slide.is-active .hero-slide-caption{opacity:1;transform:translateY(0)}
.hero-slide-kicker{font-size:9px;font-weight:900;letter-spacing:1.6px;color:#7a3154}
.hero-slide-caption strong{font-size:clamp(17px,2vw,24px);line-height:1.2;color:#361325;letter-spacing:-.5px}
.hero-slide-caption>span:not(.hero-slide-kicker){font-size:12px;color:#775767;line-height:1.5}
.hero-slide-caption a{align-self:start;font-size:12px;font-weight:850;color:#490F30;text-decoration:none;margin-top:5px}
.hero-slide-caption a:hover{text-decoration:underline}
.hero-carousel-controls{position:absolute;bottom:31px;right:19px;z-index:5;display:flex;flex-direction:column-reverse;align-items:center;gap:13px}
.hero-slide-dots{display:flex;gap:6px;align-items:center}
.hero-dot{width:8px;height:8px;border:0;border-radius:8px;background:#c8a5b8;cursor:pointer;transition:width .3s ease,background .3s ease;padding:0}
.hero-dot.is-active{background:#490F30;width:23px}
.hero-slide-arrows{display:flex;gap:6px}
.hero-arrow{width:40px;height:40px;border-radius:50%;border:1px solid rgba(113,24,70,.16);background:#fff;color:#490F30;font-size:28px;line-height:1;cursor:pointer;box-shadow:0 6px 22px rgba(100,20,63,.09);transition:transform .2s ease,background .2s ease}
.hero-arrow:hover{transform:translateY(-2px);background:#f2e8ed}
.hero-arrow:focus-visible,.hero-dot:focus-visible{outline:3px solid #490F30;outline-offset:4px}
.hero-carousel-count{position:absolute;left:29px;top:31px;z-index:4;color:#754660;font-size:11px;letter-spacing:2px;font-weight:850}
.hero-carousel-count span{font-size:18px;color:#490F30}
@keyframes hero-float{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-11px) rotate(1deg)}}
@keyframes hero-twinkle{0%,100%{transform:scale(.75);opacity:.3}50%{transform:scale(1.15);opacity:.7}}
@media(max-width:1000px){.hero-carousel{min-height:490px}.hero-stage{height:490px}.hero-image-link{inset:55px 12% 127px}}
@media(max-width:560px){.hero-carousel{min-height:410px;border-radius:27px}.hero-stage{height:410px}.hero-image-link{inset:45px 10% 132px}.hero-slide-caption{bottom:20px;left:14px;right:106px;padding:12px 13px;border-radius:15px}.hero-slide-caption strong{font-size:17px}.hero-slide-caption>span:not(.hero-slide-kicker){font-size:11px}.hero-slide-kicker{font-size:8px;letter-spacing:1px}.hero-slide-caption a{font-size:11px}.hero-carousel-controls{right:12px;bottom:24px}.hero-arrow{width:34px;height:34px;font-size:23px}.hero-floating-tag{font-size:10px;top:15px;right:13px;padding:9px 12px}.hero-carousel-count{left:18px;top:20px}}
@media(prefers-reduced-motion:reduce){.hero-slide,.hero-product-image,.hero-slide-caption{transition:none!important}.hero-slide.is-active .hero-product-image,.hero-orbit::after{animation:none!important}}

/* Grape Expectations unified brand system -- primary #490F30 */
:root{--brand:#490F30;--brand-hover:#622244;--brand-soft:#f3e8ee;--brand-border:rgba(73,15,48,.16);--shadow:0 22px 64px rgba(73,15,48,.12)}
body{background:linear-gradient(180deg,#faf7f9 0,#fff 25%,#fbf8fa 100%)}
.topbar{background:var(--brand)}
.nav{background:rgba(255,252,253,.96);border-bottom:1px solid var(--brand-border)}
.menu a:hover,.menu a.active{color:var(--brand);background:var(--brand-soft)}
.btn.primary{background:var(--brand);box-shadow:0 14px 28px rgba(73,15,48,.22)}
.btn.primary:hover{background:var(--brand-hover);box-shadow:0 17px 32px rgba(73,15,48,.27)}
.btn.light{color:var(--brand);border-color:var(--brand-border)}
.btn:focus-visible,.menu a:focus-visible,.hero-image-link:focus-visible{outline:3px solid var(--brand);outline-offset:4px}
.eyebrow{color:var(--brand);border-color:var(--brand-border)}
.hero{background:linear-gradient(118deg,#f4ebf0 0%,#fffafd 47%,#f5eaf0 100%)}
.hero:before{background:radial-gradient(circle at 80% 18%,rgba(73,15,48,.12),transparent 34%),radial-gradient(circle at 8% 0%,rgba(73,15,48,.09),transparent 27%)}
.card,.product,.story-card{border-color:var(--brand-border)}
.category:after{background:rgba(73, 15, 48, 0.93)}
.section.alt{background:linear-gradient(180deg,#fff,#faf5f8)}
.product h3 a:hover{color:var(--brand)}
.catalog-filters input:focus,.catalog-filters select:focus,.checkout-form input:focus,.checkout-form textarea:focus{outline:2px solid rgba(73,15,48,.38);outline-offset:1px;border-color:var(--brand)}
/* Hero image enlargement: the image can extend behind the overlaid caption, which stays on top. */
.hero-carousel{min-height:575px;background:linear-gradient(145deg,#fffefd 0%,#f4e8ef 100%);border:1px solid var(--brand-border);box-shadow:0 22px 60px rgba(73,15,48,.15)}
.hero-stage{height:575px}
.hero-carousel::before{width:min(92%,530px);top:4%;left:4%;background:radial-gradient(circle,rgba(73,15,48,.14),rgba(73,15,48,.045) 63%,transparent 70%)}
.hero-orbit{width:87%;max-width:510px;top:4%;left:6%;border-color:rgba(73,15,48,.12)}
.hero-product-halo{left:8%;top:3%;height:91%;opacity:.15}
.hero-image-link{inset:18px 3% 88px;display:flex;align-items:center;justify-content:center}
.hero-product-image{height:100%;max-height:100%;max-width:100%;width:auto;object-fit:contain;filter:drop-shadow(0 29px 19px rgba(43,14,31,.24))}
.hero-slide-caption{bottom:20px;left:23px;right:130px;padding:17px 20px;background:rgba(255,255,255,.94);border-color:var(--brand-border);box-shadow:0 12px 36px rgba(73,15,48,.10)}
.hero-slide-caption strong,.hero-floating-tag,.hero-carousel-count span,.hero-slide-caption a{color:var(--brand)}
.hero-slide-kicker{color:#71334f}
.hero-floating-tag{border-color:var(--brand-border)}
.hero-dot.is-active{background:var(--brand)}
.hero-arrow{color:var(--brand);border-color:var(--brand-border)}
.hero-arrow:hover{background:var(--brand-soft)}
.hero-arrow:focus-visible,.hero-dot:focus-visible{outline-color:var(--brand)}
@media(min-width:1100px){.hero-grid{grid-template-columns:1fr 1fr;gap:40px}.hero-card{border-radius:36px}}
@media(max-width:1000px){.hero-carousel{min-height:520px}.hero-stage{height:520px}.hero-image-link{inset:20px 4% 98px}.hero-orbit{max-width:470px}}
@media(max-width:560px){.hero-carousel{min-height:465px;border-radius:26px}.hero-stage{height:465px}.hero-image-link{inset:48px 3% 112px}.hero-slide-caption{bottom:16px;left:13px;right:105px;padding:12px 13px}.hero-orbit{top:9%;left:6%}.hero-carousel::before{top:10%;left:4%}.hero-floating-tag{right:12px;top:13px}}


/* Brand collection - #490F30 design system */
.brands-hero{padding:96px 0 92px;background:radial-gradient(circle at 82% 15%,#e9ccd9,transparent 40%),linear-gradient(125deg,#fffafa,#f6e9f0 65%,#f0dce7)}
.brands-hero-content{max-width:1100px}.brands-hero h1{font-size:clamp(40px,5.8vw,80px);line-height:1.08;letter-spacing:-.05em;margin:16px 0 24px;color:#2d0d21}.brands-hero h1 span{color:#490f30}.brands-hero .lead{max-width:690px;margin-bottom:27px}.brands-section{background:#fffafc}.brands-section .section-head{margin-bottom:36px}.brands-showcase{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}.brand-feature{background:#fff;border:1px solid rgba(73,15,48,.12);border-radius:30px;overflow:hidden;box-shadow:0 14px 42px rgba(73,15,48,.065);transition:transform .3s ease,box-shadow .3s ease}.brand-feature:hover{transform:translateY(-6px);box-shadow:0 25px 65px rgba(73,15,48,.14)}.brand-visual{height:285px;position:relative;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fdf8fb,#f1e1e9);padding:25px}.brand-visual img{width:100%;height:100%;object-fit:contain;border-radius:14px;transition:transform .4s ease}.brand-feature:hover .brand-visual img{transform:scale(1.045)}.brand-number{position:absolute;top:17px;left:19px;border-radius:999px;background:#fff;padding:9px 14px;color:#490f30;font-size:12px;font-weight:800;z-index:1;box-shadow:0 4px 16px rgba(73,15,48,.08)}.brand-details{padding:28px 30px 32px}.brand-category{font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:800;color:#87375f}.brand-details h3{font-size:30px;margin:10px 0;color:#310d24}.brand-details p{font-size:15px;color:#76616d;min-height:46px;line-height:1.65;margin:0 0 18px}.brand-link{display:inline-flex;align-items:center;gap:12px;color:#490f30;text-decoration:none;font-weight:800;border-bottom:2px solid #cf9ab4;padding-bottom:4px}.brand-link:hover{border-color:#490f30}.brand-bottom-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.brand-bottom-inner h2{margin:10px 0}.brand-bottom-inner p{color:#76616d;max-width:600px}.brand-bottom-actions{display:flex;gap:12px;flex-wrap:wrap}@media(max-width:760px){.brands-hero{padding:68px 0}.brands-showcase{grid-template-columns:1fr}.brand-visual{height:250px}.brand-bottom-inner{display:block}.brand-bottom-actions{margin-top:22px}}@media(prefers-reduced-motion:reduce){.brand-feature,.brand-visual img{transition:none}.brand-feature:hover,.brand-feature:hover .brand-visual img{transform:none}}


/* Product photography: larger cards and interactive product detail */
.product .pic{height:320px;min-height:320px;overflow:hidden;border-radius:20px;background:radial-gradient(circle at 50% 43%,#fff 0%,#faf5f8 83%);padding:12px;position:relative}
.product .pic img{width:100%;height:100%;max-width:100%;max-height:294px;object-fit:contain;filter:drop-shadow(0 17px 15px rgba(73,15,48,.15));transition:transform .38s cubic-bezier(.2,.8,.2,1)}
.product .pic:hover img,.product .pic:focus-visible img{transform:scale(1.10)}
.product .empty-pic{height:100%;min-height:280px}
.product-detail{grid-template-columns:minmax(0,1.14fr) minmax(0,1fr);gap:clamp(24px,4vw,60px);align-items:start}
.product-detail .detail-image{height:min(650px,65vw);min-height:460px;padding:0;overflow:hidden;background:radial-gradient(circle at center,#fff 6%,#f4e8ee 100%);border:1px solid #eedde6;box-shadow:0 18px 55px rgba(73,15,48,.09);border-radius:28px;position:relative}
.product-zoom-trigger{appearance:none;border:0;background:none;padding:22px;width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;cursor:zoom-in;overflow:hidden}
.product-detail .product-zoom-image{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;transform-origin:50% 50%;transition:transform .25s ease;will-change:transform;filter:drop-shadow(0 22px 24px rgba(73,15,48,.13))}
@media(hover:hover) and (pointer:fine){.product-zoom-trigger:hover .product-zoom-image{transform:scale(1.85);transition:transform .14s ease-out}}
.product-zoom-hint{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);white-space:nowrap;display:flex;align-items:center;gap:9px;padding:9px 16px;border-radius:30px;background:rgba(255,255,255,.93);color:#490f30;font-size:12px;font-weight:750;box-shadow:0 7px 26px rgba(73,15,48,.13);pointer-events:none}
.zoom-search-icon{font-size:22px;line-height:1}
.product-zoom-empty{padding:30px;text-align:center;color:#75616e}
.product-lightbox[hidden]{display:none!important}
.product-lightbox{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:clamp(8px,3vw,30px)}
.product-lightbox-backdrop{position:absolute;inset:0;background:rgba(20,9,17,.91);backdrop-filter:blur(10px)}
.product-lightbox-content{position:relative;z-index:1;width:min(1040px,100%);height:min(92vh,880px);display:flex;flex-direction:column;min-height:0}
.product-lightbox-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;color:#fff;padding:5px 4px 16px}
.product-lightbox-name{font-size:clamp(14px,2vw,18px);font-weight:750}
.product-lightbox-actions{display:flex;gap:7px;flex-shrink:0}
.product-lightbox-actions button{width:42px;height:42px;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(255,255,255,.13);color:white;font-size:23px;cursor:pointer}
.product-lightbox-actions [data-zoom-reset]{width:65px;border-radius:22px;font-size:12px}
.product-lightbox-actions button:hover,.product-lightbox-actions button:focus-visible{background:#672044}
.product-lightbox-viewport{flex:1;min-height:0;overflow:hidden;border-radius:22px;background:radial-gradient(circle,#fff 30%,#f7edf2);display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none;position:relative}
.product-lightbox-viewport.is-dragging{cursor:grabbing}
.product-lightbox-viewport img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;pointer-events:none;user-select:none;transform-origin:center;will-change:transform}
.product-lightbox-help{color:#eadde4;font-size:12px;text-align:center;margin:12px 0 0}
body.product-zoom-open{overflow:hidden}
@media(max-width:800px){.product .pic{height:290px;min-height:290px}.product .pic img{max-height:268px}.product-detail{grid-template-columns:1fr}.product-detail .detail-image{height:min(520px,100vw);min-height:340px}}
@media(max-width:480px){.product .pic{height:255px;min-height:255px}.product .pic img{max-height:235px}.product-detail .detail-image{height:390px;min-height:320px}.product-zoom-hint{font-size:11px}.product-lightbox-toolbar{flex-wrap:wrap}.product-lightbox-content{height:94vh}}
@media(prefers-reduced-motion:reduce){.product .pic img,.product-zoom-image{transition:none!important}}

/* Homepage micro-interactions, tasteful and accessible */
.home-arrive{animation:home-arrive .85s cubic-bezier(.2,.75,.2,1) both;animation-delay:var(--arrival-delay,0ms)}
@keyframes home-arrive{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.home-hover-lift{transition:transform .36s cubic-bezier(.2,.8,.2,1),box-shadow .36s ease,border-color .36s ease}
@media(hover:hover) and (pointer:fine){.home-hover-lift:hover{transform:translateY(-7px);box-shadow:0 24px 52px rgba(73,15,48,.13)}.hero-actions .btn:hover{transform:translateY(-4px);box-shadow:0 15px 30px rgba(73,15,48,.18)}.hero-product-image{transition:filter .45s ease,transform .45s ease}.hero-image-link:hover .hero-product-image{filter:drop-shadow(0 34px 26px rgba(73,15,48,.26));transform:scale(1.06)}}
.hero-empty-message{position:absolute;inset:28% 12% auto;text-align:center;z-index:3}.hero-empty-message strong{display:block;font-size:clamp(26px,3vw,38px);color:#490F30}.hero-empty-message p{color:#71566a;margin-bottom:25px}
@media(prefers-reduced-motion:reduce){.home-arrive{animation:none!important}.home-hover-lift,.hero-product-image{transition:none!important}.home-hover-lift:hover,.hero-image-link:hover .hero-product-image{transform:none!important}}

/* Footer design credit */
.footer .copyright a{color:inherit;text-decoration:underline;text-underline-offset:3px;font-weight:700}
.footer .copyright a:hover,.footer .copyright a:focus-visible{opacity:.75}


/* Hero carousel v2: larger imagery and smooth product loading/reveal. */
.hero-carousel{overflow:hidden}
.hero-stage{isolation:isolate}
.hero-slide{transform:none;transition:opacity .55s ease,visibility 0s linear .55s}
.hero-slide.is-active{transform:none;transition:opacity .65s ease,visibility 0s}
/* The photograph intentionally reaches behind the glass product caption. */
.hero-image-link{inset:38px -9% 52px;overflow:visible;display:flex;align-items:center;justify-content:center}
.hero-product-image{display:block;flex-shrink:0;width:100%;height:112%;max-width:none;max-height:none;object-fit:contain;opacity:0;transform:translateY(34px) scale(.84);filter:blur(9px) drop-shadow(0 24px 18px rgba(43,14,31,.15));transition:opacity .75s ease,transform 1s cubic-bezier(.2,.85,.2,1),filter .85s ease;will-change:transform,opacity}
.hero-slide.is-active .hero-product-image{opacity:1;transform:translateY(0) scale(1.1);filter:blur(0) drop-shadow(0 27px 19px rgba(43,14,31,.23));animation:none}
/* While an image is still downloading, offer a subtle brand-coloured pulse. */
.hero-image-link.is-loading::after{content:'';position:absolute;top:38%;left:calc(50% - 22px);width:44px;height:44px;border-radius:50%;border:3px solid rgba(73,15,48,.11);border-top-color:#723653;animation:hero-loader-spin .85s linear infinite;pointer-events:none}
.hero-image-link.is-loading .hero-product-image{opacity:0!important}
.hero-image-link.is-error::after{content:'Product image unavailable';position:absolute;top:45%;left:0;width:100%;text-align:center;color:#775767;font-size:13px}
.hero-slide-caption{transition:transform .7s cubic-bezier(.2,.8,.2,1) .12s,opacity .65s ease .12s}
.hero-slide:not(.is-active) .hero-slide-caption{transform:translateY(22px)}
@keyframes hero-loader-spin{to{transform:rotate(360deg)}}
@media(hover:hover) and (pointer:fine){
  .hero-image-link:hover .hero-product-image,.hero-slide.is-active .hero-image-link:hover .hero-product-image{transform:translateY(-5px) scale(1.16);filter:blur(0) drop-shadow(0 35px 24px rgba(73,15,48,.28))}
}
@media(max-width:1000px){.hero-image-link{inset:39px -8% 60px}.hero-product-image{height:110%}}
@media(max-width:560px){.hero-image-link{inset:52px -10% 72px}.hero-product-image{height:108%}.hero-slide.is-active .hero-product-image{transform:translateY(0) scale(1.08)}.hero-slide.is-active .hero-image-link:hover .hero-product-image{transform:translateY(0) scale(1.08)}}
@media(prefers-reduced-motion:reduce){.hero-slide,.hero-slide.is-active,.hero-product-image,.hero-slide.is-active .hero-product-image,.hero-slide-caption{animation:none!important;transition:none!important}.hero-slide.is-active .hero-product-image{opacity:1;transform:none;filter:drop-shadow(0 22px 20px rgba(43,14,31,.2))}.hero-image-link.is-loading::after{animation:none}}

/* Hero bottle/product entrance: lift from below, gentle overshoot, then settle.
   Runs once each time a ready product slide becomes active. */
.hero-slide .hero-product-image{
  --hero-rest-scale:1.1;
  opacity:0;
  transform:translate3d(0,86px,0) rotate(-7deg) scale(.76);
  filter:blur(12px) drop-shadow(0 10px 10px rgba(43,14,31,.10));
  animation:none;
}
.hero-slide.is-active .hero-image-link.is-ready .hero-product-image{
  opacity:1;
  transform:translate3d(0,0,0) rotate(0) scale(var(--hero-rest-scale));
  filter:blur(0) drop-shadow(0 27px 19px rgba(43,14,31,.23));
  animation:hero-bottle-arrive 1.28s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes hero-bottle-arrive{
  0%{opacity:0;transform:translate3d(0,86px,0) rotate(-7deg) scale(.76);filter:blur(12px) drop-shadow(0 10px 10px rgba(43,14,31,.10))}
  46%{opacity:1;filter:blur(0) drop-shadow(0 24px 18px rgba(43,14,31,.19))}
  72%{opacity:1;transform:translate3d(0,-14px,0) rotate(1.5deg) scale(calc(var(--hero-rest-scale) * 1.035))}
  88%{transform:translate3d(0,4px,0) rotate(-.5deg) scale(calc(var(--hero-rest-scale) * .992))}
  100%{opacity:1;transform:translate3d(0,0,0) rotate(0) scale(var(--hero-rest-scale));filter:blur(0) drop-shadow(0 27px 19px rgba(43,14,31,.23))}
}
/* Hover changes the shadow, not the entrance transform, so it never interrupts the reveal. */
@media(hover:hover) and (pointer:fine){
  .hero-slide.is-active .hero-image-link:hover .hero-product-image{
    transform:translate3d(0,0,0) scale(var(--hero-rest-scale));
    filter:blur(0) drop-shadow(0 35px 24px rgba(73,15,48,.28));
  }
}
@media(max-width:560px){.hero-slide .hero-product-image{--hero-rest-scale:1.08}}
@media(prefers-reduced-motion:reduce){
  .hero-slide.is-active .hero-image-link.is-ready .hero-product-image{
    animation:none!important;transition:none!important;
    opacity:1;transform:scale(var(--hero-rest-scale));
    filter:drop-shadow(0 22px 20px rgba(43,14,31,.2));
  }
}

/* Product-first storytelling: reveal the glass description only once the bottle has entered. */
.hero-slide .hero-slide-caption,
.hero-slide.is-active .hero-slide-caption{
  opacity:0;
  visibility:hidden;
  transform:translate3d(0,30px,0) scale(.97);
  transition:opacity .58s ease, transform .75s cubic-bezier(.18,.8,.2,1), visibility 0s linear .75s;
  pointer-events:none;
}
.hero-slide.is-active.is-caption-visible .hero-slide-caption{
  opacity:1;
  visibility:visible;
  transform:translate3d(0,0,0) scale(1);
  transition:opacity .58s ease, transform .75s cubic-bezier(.18,.8,.2,1), visibility 0s;
  pointer-events:auto;
}
@media(prefers-reduced-motion:reduce){
  .hero-slide.is-active.is-caption-visible .hero-slide-caption{transition:none!important;}
}

/* Three-level Products > Category > Country navigation */
.nav-dropdown{position:relative;display:flex;align-items:center}
.nav-parent{white-space:nowrap}
.nav-submenu,.nav-country-menu{position:absolute;z-index:1000;min-width:225px;background:#fff;box-shadow:0 12px 28px rgba(0,0,0,.14);border:1px solid #eee;border-radius:12px;padding:8px 0;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .15s ease,visibility .15s ease}
.nav-submenu{top:100%;left:0}
.nav-country-menu{left:calc(100% - 2px);top:-8px}
.nav-dropdown:hover>.nav-submenu,.nav-dropdown:focus-within>.nav-submenu,.nav-subgroup:hover>.nav-country-menu,.nav-subgroup:focus-within>.nav-country-menu{visibility:visible;opacity:1;pointer-events:auto}
.nav-subgroup{position:relative}
.nav-submenu a,.nav-country-menu a{display:flex!important;justify-content:space-between;gap:18px;align-items:center;padding:13px 18px!important;color:#222!important;text-decoration:none;white-space:nowrap;border-radius:0!important}
.nav-submenu a:hover,.nav-country-menu a:hover,.nav-submenu a:focus-visible,.nav-country-menu a:focus-visible{background:#f5f2f0!important;color:#490f30!important}
.nav-empty-countries{display:block;padding:12px 18px;color:#777;font-size:13px;white-space:nowrap}
@media(max-width:900px){
 .nav-dropdown{display:block;width:100%}
 .nav-submenu,.nav-country-menu{position:static;box-shadow:none;border:0;border-radius:0;min-width:0;visibility:visible;opacity:1;pointer-events:auto;transition:none;background:transparent}
 .nav-submenu{padding:0 0 0 12px}
 .nav-country-menu{padding:0 0 0 16px}
 .nav-submenu a,.nav-country-menu a{white-space:normal;padding:10px 12px!important}
 .nav-subgroup{width:100%}
}

/* A missing/blocked product photo must never result in a silent empty carousel. */
.hero-image-fallback{display:none;position:absolute;inset:0;align-items:center;justify-content:center;flex-direction:column;gap:7px;text-align:center;padding:30px;color:#6c3a53;font-size:16px;font-weight:750;line-height:1.5;z-index:2}
.hero-image-fallback small{font-size:12px;font-weight:500;color:#7b6472;overflow-wrap:anywhere}
.hero-image-link.is-error .hero-image-fallback{display:flex}
.hero-image-link.is-error::after{content:none!important}
.hero-image-link.is-error .hero-product-image{display:none!important}

/* Chrome-safe progressive enhancement: never hide active hero content solely
   because the JavaScript reveal classes were not applied. */
.hero-slide.is-active .hero-product-image {
  opacity: 1;
  filter: drop-shadow(0 27px 19px rgba(43,14,31,.23));
  transform: scale(var(--hero-rest-scale,1.1));
}
.hero-slide.is-active .hero-slide-caption {
  opacity: 1;
  visibility: visible;
  transform: translate3d(0,0,0) scale(1);
  pointer-events: auto;
}
/* Keep the existing loaded-image entrance animation and error/loading states. */
.hero-slide.is-active .hero-image-link.is-loading .hero-product-image { opacity:0!important; }


/* Cross-browser hero stabilization (2026-11-06).
   Product visibility must NEVER depend on image load events or JS reveal classes.
   This block takes precedence over older hero animation experiments above. */
.hero-carousel .hero-stage .hero-slide.is-active { opacity:1; visibility:visible; pointer-events:auto; }
.hero-carousel .hero-stage .hero-slide:not(.is-active) { opacity:0; visibility:hidden; pointer-events:none; }
.hero-carousel .hero-stage .hero-image-link {
  position:absolute; inset:44px 2% 90px; display:flex; align-items:center;
  justify-content:center; overflow:visible; min-width:0; min-height:0;
}
.hero-carousel .hero-stage .hero-product-image,
.hero-carousel .hero-stage .hero-slide.is-active .hero-product-image,
.hero-carousel .hero-stage .hero-slide.is-active .hero-image-link.is-ready .hero-product-image,
.hero-carousel .hero-stage .hero-slide.is-active .hero-image-link.is-loading .hero-product-image {
  display:block!important; position:relative; flex:none;
  width:auto!important; height:100%!important;
  max-width:100%!important; max-height:100%!important;
  object-fit:contain; opacity:1!important; visibility:visible!important;
  filter:none!important; transform:none!important;
  transition:none!important; animation:none!important;
}
.hero-carousel .hero-stage .hero-slide.is-active .hero-slide-caption {
  opacity:1!important; visibility:visible!important;
  transform:none!important; pointer-events:auto!important;
  transition:none!important;
}
.hero-carousel .hero-stage .hero-image-link.is-loading::after { content:none!important; }
.hero-carousel .hero-stage .hero-image-link.is-error .hero-product-image { display:none!important; }
.hero-carousel .hero-stage .hero-image-link.is-error .hero-image-fallback { display:flex; }
/* Animate the slide/card without affecting the image's paint or opacity. */
@keyframes hero-safe-entry { from { translate:0 16px; } to { translate:0 0; } }
@media (prefers-reduced-motion:no-preference) {
  .hero-carousel .hero-stage .hero-slide.is-active .hero-image-link { animation:hero-safe-entry .65s ease-out both; }
}
@media (max-width:560px) {
  .hero-carousel .hero-stage .hero-image-link { inset:52px 3% 115px; }
}
/* Fix Chromium hero carousel zero-width layout */

.hero-card {
    min-width: 0;
}

.hero-stage {
    display: block;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.hero-slide {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.hero-image-link {
    display: flex;
    width: 100%;
    min-width: 0;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.hero-product-image {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 440px;
    object-fit: contain;
}