/* Marvolous brand site — design system aligned with marvolous-store */

body.marvolous-brand {
	--mv-bg: #FAF7F2;
	--mv-bg-secondary: #EFE5D8;
	--mv-text: #181716;
	--mv-text-mid: #4a433c;
	--mv-text-soft: #7a7268;
	--mv-olive: #56623F;
	--mv-olive-deep: #3f4a2f;
	--mv-copper: #B97850;
	--mv-champagne: #D8BE9E;
	--mv-border: #DED3C5;
	--mv-surface: #ffffff;
	--mv-shadow-sm: 0 2px 12px rgba(24, 23, 22, 0.06);
	--mv-shadow-md: 0 10px 32px rgba(24, 23, 22, 0.09);
	--mv-radius-sm: 8px;
	--mv-radius: 12px;
	--mv-radius-lg: 18px;
	--mv-font-display: "Cormorant Garamond", Georgia, serif;
	--mv-font-body: "DM Sans", system-ui, sans-serif;
	--mv-ease: cubic-bezier(0.4, 0, 0.2, 1);
	--mv-header-z: 1000;
	--mv-dropdown-z: 10001;
	--mv-tactile-surface: linear-gradient(180deg, #fdfaf6 0%, var(--mv-bg) 100%);
	--mv-tactile-border: var(--mv-border);
	--mv-tactile-border-hover: #d4c4b0;
	--mv-tactile-shadow-rest:
		inset 0 1px 0 rgba(255, 255, 255, 0.72),
		inset 0 -1px 2px rgba(24, 23, 22, 0.04),
		0 1px 2px rgba(24, 23, 22, 0.04);
	--mv-tactile-shadow-hover:
		inset 0 2px 5px rgba(24, 23, 22, 0.08),
		inset 0 1px 0 rgba(255, 255, 255, 0.38);
	--mv-tactile-shadow-active:
		inset 0 3px 7px rgba(24, 23, 22, 0.1),
		inset 0 1px 2px rgba(24, 23, 22, 0.06);
	--maxw: 1200px;
	--section-pad: clamp(3rem, 8vw, 5.5rem);

	font-family: var(--mv-font-body);
	font-weight: 400;
	color: var(--mv-text);
	background: var(--mv-bg);
	line-height: 1.65;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
	opacity: 0;
	transition: opacity 0.35s var(--mv-ease);
	overflow-x: hidden;
}

body.marvolous-brand.is-ready { opacity: 1; }

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
img { max-width: 100%; display: block; height: auto; }
a { color: inherit; text-decoration: none; }

.skip-link {
	position: absolute; left: 0; top: -60px; z-index: 200;
	background: var(--mv-text); color: var(--mv-bg); padding: 0.6rem 1rem;
	border-radius: 0 0 var(--mv-radius-sm) 0;
}
.skip-link:focus { top: 0; }

.wrap { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 clamp(1rem, 4vw, 2rem); }
.site-main { flex: 1 0 auto; position: relative; z-index: 1; }

h1, h2, h3 { font-family: var(--mv-font-display); font-weight: 600; color: var(--mv-text); line-height: 1.12; }
.eyebrow { color: var(--mv-copper); letter-spacing: 0.18em; font-size: 0.72rem; text-transform: uppercase; font-weight: 500; }
.section { padding: var(--section-pad) 0; }
.section--tint { background: rgba(239, 229, 216, 0.45); }

.sh { text-align: center; max-width: 42rem; margin: 0 auto clamp(1.75rem, 4vw, 2.75rem); }
.sh__title { font-size: clamp(1.8rem, 4.5vw, 2.6rem); margin: 0.5rem 0; }
.sh__lead { color: var(--mv-text-mid); font-size: 1.02rem; margin-top: 0.75rem; }

.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	padding: 0.85rem 1.6rem; font-family: var(--mv-font-body); font-size: 0.82rem;
	font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase;
	border: 1px solid transparent; border-radius: 100px; cursor: pointer;
	transition: transform 0.24s var(--mv-ease), box-shadow 0.24s var(--mv-ease), background 0.24s var(--mv-ease), color 0.24s var(--mv-ease), border-color 0.24s var(--mv-ease);
}
.btn--primary { background: var(--mv-text); color: var(--mv-bg); box-shadow: var(--mv-shadow-sm); }
.btn--primary:hover { background: var(--mv-olive); transform: translateY(-2px); box-shadow: var(--mv-shadow-md); }
.btn--primary:active { transform: translateY(0); box-shadow: var(--mv-shadow-sm); }
.btn--outline {
	background: var(--mv-tactile-surface);
	color: var(--mv-text);
	border-color: var(--mv-tactile-border);
	box-shadow: var(--mv-tactile-shadow-rest);
}
.btn--outline:hover {
	border-color: var(--mv-tactile-border-hover);
	color: var(--mv-copper);
	transform: translateY(1px);
	box-shadow: var(--mv-tactile-shadow-hover);
}
.btn--outline:active {
	transform: translateY(2px);
	box-shadow: var(--mv-tactile-shadow-active);
}
.btn:focus-visible { outline: 2px solid var(--mv-copper); outline-offset: 3px; }

.announcement {
	background: var(--mv-olive-deep); color: var(--mv-bg); text-align: center;
	padding: 0.5rem 1rem; font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase;
	position: relative; z-index: var(--mv-header-z);
}
.announcement p { margin: 0; }

/* ---- Header (aligned with shop.marvolous-store + parent marvolous.css) ---- */
.site-header {
	position: sticky;
	top: 0;
	z-index: var(--mv-header-z);
	background: rgba(250, 247, 242, 0.94);
	border-bottom: 1px solid var(--mv-border);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	overflow: visible;
}
.site-footer { position: relative; z-index: 1; }
.header__bar,
.nav,
.nav__list,
.nav__item--has-sub { overflow: visible; }
.header__bar {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 1rem;
	min-height: 76px;
}
.brand { text-decoration: none; }
.brand__word {
	font-family: var(--mv-font-display);
	font-size: clamp(1.5rem, 3vw, 1.85rem);
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--mv-text);
}
.header__brand .custom-logo-link { display: block; line-height: 0; }
.header__brand .custom-logo { max-height: 52px; width: auto; }

.nav { display: none; }
.nav__list {
	list-style: none;
	display: flex;
	gap: clamp(1rem, 2.5vw, 1.75rem);
	align-items: center;
	justify-content: center;
}
.nav__item { position: relative; }
.nav__link {
	font-size: 0.78rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 400;
	color: var(--mv-text-mid);
	padding: 0.25rem 0;
	position: relative;
	transition: color 0.2s var(--mv-ease);
}
.nav__link::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 100%;
	height: 1px;
	background: var(--mv-copper);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.25s var(--mv-ease);
}
.nav__link:hover,
.nav__link:focus-visible { color: var(--mv-copper); }
.nav__link:hover::after,
.nav__link:focus-visible::after { transform: scaleX(1); }
.nav__trigger {
	appearance: none;
	-webkit-appearance: none;
	background: none;
	border: 0;
	margin: 0;
	cursor: pointer;
	font-family: var(--mv-font-body);
	font-size: 0.78rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 400;
	line-height: 1.4;
	color: var(--mv-text-mid);
	position: relative;
	padding: 0.25rem 0;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	vertical-align: middle;
	text-align: left;
}
.nav__trigger:hover,
.nav__trigger:focus-visible,
.nav__item--has-sub.is-open .nav__trigger { color: var(--mv-copper); }
.nav__chevron {
	display: inline-block;
	width: 0.35rem;
	height: 0.35rem;
	flex-shrink: 0;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg) translateY(-0.08em);
	opacity: 0.45;
	transition: transform 0.2s var(--mv-ease), opacity 0.2s;
}
.nav__item--has-sub.is-open .nav__chevron,
.nav__item--has-sub:focus-within .nav__chevron { opacity: 0.7; }
.nav__sub {
	position: absolute;
	top: calc(100% + 0.2rem);
	left: 50%;
	transform: translateX(-50%);
	min-width: 13rem;
	max-width: min(16rem, 92vw);
	background: var(--mv-surface);
	border: 1px solid var(--mv-border);
	border-radius: var(--mv-radius-sm);
	box-shadow: var(--mv-shadow-md);
	list-style: none;
	padding: 0.4rem 0;
	margin: 0;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.15s var(--mv-ease), visibility 0.15s;
	z-index: var(--mv-dropdown-z);
}
.nav__sub::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -0.95rem;
	height: 0.95rem;
}
.nav__item--has-sub.is-open .nav__sub,
.nav__item--has-sub:focus-within .nav__sub {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
.nav__sub a {
	display: block;
	padding: 0.55rem 1.15rem;
	font-size: 0.82rem;
	font-weight: 400;
	letter-spacing: 0.01em;
	line-height: 1.4;
	color: var(--mv-text-mid);
	text-transform: none;
	white-space: nowrap;
}
.nav__sub a:hover { color: var(--mv-copper); background: var(--mv-bg-secondary); }

.header__actions { display: flex; align-items: center; gap: 0.35rem; }
.iconbtn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 42px; height: 42px; border: 1px solid var(--mv-tactile-border); border-radius: 999px;
	background: var(--mv-tactile-surface); color: var(--mv-text); cursor: pointer;
	box-shadow: var(--mv-tactile-shadow-rest);
	transition: transform 0.24s var(--mv-ease), box-shadow 0.24s var(--mv-ease), border-color 0.24s var(--mv-ease), color 0.24s var(--mv-ease);
}
.iconbtn svg { display: block; flex-shrink: 0; }
.iconbtn:hover {
	border-color: var(--mv-tactile-border-hover);
	color: var(--mv-copper);
	transform: translateY(1px);
	box-shadow: var(--mv-tactile-shadow-hover);
}
.iconbtn:active {
	transform: translateY(2px);
	box-shadow: var(--mv-tactile-shadow-active);
}
.iconbtn:focus-visible {
	outline: 2px solid var(--mv-copper);
	outline-offset: 3px;
}
.cart-link { position: relative; }
.nav-toggle { display: inline-flex; }

.mobile-nav {
	border-top: 1px solid rgba(24, 23, 22, 0.08);
	background: var(--mv-bg);
	padding: 1rem 0 1.25rem;
}
.mobile-nav__list {
	list-style: none;
	display: grid;
	gap: 0.5rem;
}
.mobile-nav__link,
.mobile-nav__trigger {
	display: block;
	width: 100%;
	text-align: left;
	background: none;
	border: 0;
	padding: 0.65rem 0;
	font-family: var(--mv-font-body);
	font-size: 0.85rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 400;
	line-height: 1.4;
	color: var(--mv-text-mid);
	border-bottom: 1px solid rgba(24, 23, 22, 0.08);
}
.mobile-nav__link:hover { color: var(--mv-copper); }
.mobile-nav__trigger {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	cursor: pointer;
}
.mobile-nav__sub { list-style: none; padding: 0 0 0.5rem 0.75rem; margin: 0; }
.mobile-nav__sub a { display: block; padding: 0.4rem 0; font-size: 0.88rem; color: var(--mv-text-mid); }
.mobile-nav__sub a:hover { color: var(--mv-copper); }

@media (min-width: 900px) {
	.header__bar { grid-template-columns: 1fr auto 1fr; }
	.header__brand { justify-self: start; }
	.nav { display: block; }
	.header__actions { justify-self: end; }
	.nav-toggle,
	.mobile-nav { display: none !important; }
}

.home-hero {
	position: relative;
	padding: clamp(2.75rem, 7vw, 5.25rem) 0 clamp(2.5rem, 6vw, 4.5rem);
	overflow: hidden;
}
.home-hero__inner {
	display: grid;
	gap: clamp(1.5rem, 4vw, 2.75rem);
	align-items: center;
}
@media (min-width: 900px) {
	.home-hero__inner {
		grid-template-columns: minmax(0, 1.02fr) minmax(0, 1.08fr);
		gap: clamp(2rem, 4vw, 3.25rem);
	}
}
.home-hero__content { position: relative; z-index: 1; max-width: 36rem; }
.home-hero__title {
	font-size: clamp(2.35rem, 5.4vw, 3.85rem);
	line-height: 1.06;
	margin: 0.55rem 0 1rem;
	letter-spacing: -0.01em;
}
.home-hero__lead {
	color: var(--mv-text-mid);
	font-size: clamp(1.02rem, 2vw, 1.12rem);
	max-width: 36ch;
	margin-bottom: 1.65rem;
	line-height: 1.65;
}
.home-hero__cta { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.home-hero__visual {
	position: relative;
	z-index: 1;
	isolation: isolate;
}
.home-hero__bloom {
	position: absolute;
	z-index: 0;
	inset: -8% -6% -12% -10%;
	pointer-events: none;
	background:
		radial-gradient(ellipse 55% 48% at 62% 42%, rgba(216, 190, 158, 0.55) 0%, transparent 68%),
		radial-gradient(ellipse 42% 38% at 28% 72%, rgba(185, 120, 80, 0.18) 0%, transparent 70%),
		radial-gradient(ellipse 48% 42% at 78% 78%, rgba(86, 98, 63, 0.12) 0%, transparent 72%);
	filter: blur(2px);
}
.home-hero__media {
	position: relative;
	z-index: 1;
	margin: 0;
	border-radius: calc(var(--mv-radius-lg) + 4px);
	overflow: hidden;
	box-shadow:
		0 4px 18px rgba(24, 23, 22, 0.06),
		0 22px 48px rgba(185, 120, 80, 0.16),
		0 0 0 1px rgba(222, 211, 197, 0.85);
	border: 1px solid rgba(255, 255, 255, 0.55);
	background: var(--mv-bg-secondary);
	aspect-ratio: 16 / 10;
	max-height: min(58vh, 540px);
}
.home-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	box-shadow: inset 0 0 0 1px rgba(185, 120, 80, 0.14);
	pointer-events: none;
}
.home-hero__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 42%;
	display: block;
	transform-origin: center center;
}
.home-hero__media--empty {
	display: grid;
	place-items: center;
	min-height: 280px;
}
.home-hero__placeholder {
	color: var(--mv-text-soft);
	font-size: 0.88rem;
	text-align: center;
	padding: 1rem;
}

@media (min-width: 900px) {
	.home-hero__media {
		max-height: min(62vh, 560px);
		aspect-ratio: 5 / 3.2;
	}
	.home-hero__img {
		animation: home-hero-float 9s ease-in-out infinite;
	}
}

@keyframes home-hero-float {
	0%, 100% { transform: translate3d(0, 0, 0) scale(1.02); }
	50% { transform: translate3d(0, -7px, 0) scale(1.035); }
}

.home-collections-fallback {
	text-align: center;
	color: var(--mv-text-mid);
}
.home-collections-fallback a {
	color: var(--mv-copper);
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

.home-why .sh { margin-bottom: clamp(1.5rem, 4vw, 2.25rem); }

.whygrid {
	display: grid;
	gap: clamp(1rem, 2.5vw, 1.5rem);
	grid-template-columns: 1fr;
}
@media (min-width: 600px) {
	.whygrid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
	.whygrid { grid-template-columns: repeat(4, 1fr); }
}

.whycard {
	text-align: center;
	padding: 1.75rem 1.25rem;
	background: var(--mv-tactile-surface);
	border: 1px solid var(--mv-tactile-border);
	border-radius: var(--mv-radius);
	box-shadow: var(--mv-tactile-shadow-rest);
	transition: transform 0.24s var(--mv-ease), box-shadow 0.24s var(--mv-ease), border-color 0.24s var(--mv-ease);
}
.whycard:hover {
	transform: translateY(1px);
	border-color: var(--mv-tactile-border-hover);
	box-shadow: var(--mv-tactile-shadow-hover);
}
.whycard:active {
	transform: translateY(2px);
	box-shadow: var(--mv-tactile-shadow-active);
}
.whycard__icon {
	width: 52px;
	height: 52px;
	margin: 0 auto 0.85rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--mv-bg), var(--mv-bg-secondary));
}
.whycard__icon svg {
	width: 26px;
	height: 26px;
	fill: none;
	stroke: var(--mv-olive);
	stroke-width: 1.4;
}
.whycard h3 {
	font-size: 1.2rem;
	margin-bottom: 0.35rem;
	font-family: var(--mv-font-display);
	font-weight: 600;
}
.whycard p {
	font-size: 0.88rem;
	color: var(--mv-text-mid);
	line-height: 1.55;
	margin: 0;
}

/* ---- Emari Baby Care spotlight (parallax feature) ---- */
.home-emari-feature {
	position: relative;
	padding: clamp(2.5rem, 6vw, 4rem) 0;
	overflow: hidden;
}
.home-emari-feature__frame {
	position: relative;
	min-height: clamp(520px, 62vh, 680px);
	border-radius: var(--mv-radius-lg);
	overflow: hidden;
	margin: 0 clamp(1rem, 4vw, 2rem);
	max-width: var(--maxw);
	margin-left: auto;
	margin-right: auto;
	box-shadow: var(--mv-shadow-md);
	border: 1px solid var(--mv-border);
	isolation: isolate;
}
.home-emari-feature__scene {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}
.home-emari-feature__base {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 84% 18%, rgba(232, 180, 156, 0.28), transparent 50%),
		radial-gradient(circle at 18% 78%, rgba(31, 93, 99, 0.16), transparent 48%),
		radial-gradient(circle at 48% 48%, rgba(250, 247, 242, 0.55), transparent 60%),
		linear-gradient(155deg, #efe5d8, #faf7f2 55%, #e8d4c8);
}
.home-emari-feature__image-wrap {
	position: absolute;
	top: 0;
	right: 0;
	width: 68%;
	height: 100%;
	z-index: 1;
	overflow: hidden;
}
.home-emari-feature__image {
	position: absolute;
	left: 0;
	width: 100%;
	height: 155%;
	top: 8%;
	object-fit: cover;
	object-position: center 62%;
	transform: translate3d(0, -48px, 0);
	will-change: transform;
	backface-visibility: hidden;
	opacity: 0;
	transition: opacity 0.7s var(--mv-ease);
}
.home-emari-feature__image.is-loaded {
	opacity: 1;
}
.home-emari-feature__image-wrap::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: radial-gradient(118% 105% at 72% 50%, transparent 48%, rgba(239, 229, 216, 0.35) 100%);
}
.home-emari-feature__overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background:
		linear-gradient(to bottom, rgba(250, 247, 242, 0.55) 0%, transparent 16%, transparent 84%, rgba(250, 247, 242, 0.6) 100%),
		linear-gradient(100deg,
			rgba(250, 247, 242, 0.97) 0%, rgba(250, 247, 242, 0.94) 30%,
			rgba(250, 247, 242, 0.72) 46%, rgba(250, 247, 242, 0.28) 64%,
			transparent 82%);
}
.home-emari-feature__content {
	position: relative;
	z-index: 3;
	display: flex;
	align-items: center;
	min-height: inherit;
	padding: clamp(2rem, 5vw, 3.5rem) 0;
}
.home-emari-feature__copy {
	max-width: 34rem;
	padding: clamp(1.25rem, 3vw, 2rem);
}
.home-emari-feature__eyebrow {
	color: #1f5d63;
}
.home-emari-feature__title {
	font-size: clamp(1.9rem, 4.5vw, 2.85rem);
	margin: 0.5rem 0 1rem;
	line-height: 1.1;
}
.home-emari-feature__lead {
	color: var(--mv-text-mid);
	line-height: 1.7;
	margin-bottom: 1.75rem;
	max-width: 38ch;
	font-size: 1.02rem;
}
.home-emari-feature__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}
.home-emari-feature__btn-outline {
	border-color: rgba(31, 93, 99, 0.35);
}
.home-emari-feature__btn-outline:hover,
.home-emari-feature__btn-outline:active {
	border-color: #1f5d63;
	color: #1f5d63;
}

@media (max-width: 899px) {
	.home-emari-feature__frame {
		min-height: 0;
		display: flex;
		flex-direction: column;
		background: var(--mv-bg);
	}
	.home-emari-feature__scene {
		position: relative;
		order: 2;
		min-height: 260px;
		margin: 0 clamp(1rem, 4vw, 1.5rem) clamp(1.25rem, 3vw, 1.75rem);
		border-radius: var(--mv-radius);
		overflow: hidden;
		flex-shrink: 0;
	}
	.home-emari-feature__image-wrap {
		position: absolute;
		inset: 0;
		width: 100%;
	}
	.home-emari-feature__image {
		height: 100%;
		top: 0;
		object-position: center 55%;
		transform: none !important;
	}
	.home-emari-feature__image-wrap::after {
		background: radial-gradient(130% 110% at 50% 65%, transparent 50%, rgba(239, 229, 216, 0.25) 100%);
	}
	.home-emari-feature__overlay {
		background: linear-gradient(to top, rgba(250, 247, 242, 0.18) 0%, transparent 40%);
	}
	.home-emari-feature__content {
		order: 1;
		min-height: auto;
		padding: clamp(1.5rem, 4vw, 2rem) 0 0.5rem;
	}
	.home-emari-feature__copy {
		padding-top: 0;
	}
}

@media (min-width: 900px) {
	.home-emari-feature__frame {
		min-height: clamp(480px, 58vh, 620px);
	}
}

.collection-grid {
	display: grid;
	gap: 1.15rem;
	grid-template-columns: 1fr;
}
@media (min-width: 600px) {
	.collection-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1.2rem;
	}
}
@media (min-width: 1024px) {
	.collection-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 1.25rem;
	}
}

.home-collections {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}
.home-collections::before {
	content: "";
	position: absolute;
	z-index: 0;
	inset: 8% 5% auto;
	height: min(42%, 280px);
	pointer-events: none;
	background:
		radial-gradient(ellipse 55% 70% at 50% 40%, rgba(216, 190, 158, 0.28) 0%, transparent 72%),
		radial-gradient(ellipse 40% 55% at 18% 70%, rgba(232, 196, 168, 0.16) 0%, transparent 70%);
	opacity: 0;
	transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.home-collections:has(.reveal.is-visible)::before,
html:not(.js) .home-collections::before {
	opacity: 1;
}
.home-collections > .wrap { position: relative; z-index: 1; }
.home-collections__intro { max-width: 42rem; }

.collection-card {
	--card-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--card-media-pos: 50% 48%;
	--card-accent: var(--mv-copper);
	--card-accent-soft: var(--mv-bg-secondary);
	display: flex;
	flex-direction: column;
	background: var(--mv-tactile-surface);
	border: 1px solid var(--mv-tactile-border);
	border-radius: var(--mv-radius);
	overflow: hidden;
	box-shadow: var(--mv-tactile-shadow-rest);
	color: inherit;
	text-decoration: none;
	transition:
		transform 0.42s var(--card-ease),
		box-shadow 0.42s var(--card-ease),
		border-color 0.42s var(--card-ease);
}
.collection-card__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--card-accent-soft, var(--mv-bg-secondary));
}
.collection-card__img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	object-position: var(--card-media-pos);
	transform: scale(var(--card-media-zoom, 1)) translateX(var(--card-media-shift, 0%));
	transform-origin: center center;
	transition: transform 0.45s var(--card-ease);
}
.collection-card__body {
	padding: 0.85rem 1rem 0.95rem;
	background: linear-gradient(180deg, rgba(253, 250, 246, 0.35) 0%, transparent 100%);
}
.collection-card__title {
	font-size: 1.28rem;
	margin: 0 0 0.22rem;
	line-height: 1.2;
}
.collection-card__desc {
	font-size: 0.9rem;
	color: var(--mv-text-mid);
	margin: 0 0 0.75rem;
	line-height: 1.55;
}
.collection-card__link {
	display: inline-flex;
	align-items: center;
	gap: 0.28rem;
	font-size: 0.76rem;
	letter-spacing: 0.04em;
	text-transform: none;
	font-weight: 500;
	color: var(--card-accent, var(--mv-copper));
	transition: transform 0.42s var(--card-ease), color 0.3s var(--mv-ease);
}
.collection-card__arrow {
	display: inline-block;
	transition: transform 0.42s var(--card-ease);
}

/* Accent families + intentional artwork framing */
.collection-card--afriglow {
	--card-accent: #9a7340;
	--card-accent-soft: #edd9c4;
	--card-media-pos: 50% 48%;
	/* Fuller fill; slight right shift (right edge may crop lightly) */
	--card-media-zoom: 1.14;
	--card-media-shift: 4%;
}
.collection-card--emari {
	--card-accent: #2a6a70;
	--card-accent-soft: #e4d5cb;
	--card-media-pos: 52% 55%;
}
.collection-card--momma {
	--card-accent: #a35f68;
	--card-accent-soft: #efd2cb;
	--card-media-pos: 30% 48%;
}
.collection-card--facial {
	--card-accent: #b57a55;
	--card-accent-soft: #e5d0b8;
	--card-media-pos: 50% 48%;
	/* Fuller fill; slight right shift (right edge may crop lightly) */
	--card-media-zoom: 1.14;
	--card-media-shift: 4%;
}
.collection-card--body {
	--card-accent: #9a6248;
	--card-accent-soft: #e8ddd4;
	--card-media-pos: 16% 50%;
}
.collection-card--hands {
	--card-accent: #7d6d8f;
	--card-accent-soft: #ddd0e8;
	--card-media-pos: 14% 50%;
}
.collection-card--comfort {
	--card-accent: #5f6e48;
	--card-accent-soft: #cfd9c2;
	--card-media-pos: 12% 50%;
}
.collection-card--pain {
	--card-accent: #8a5248;
	--card-accent-soft: #e6d2cb;
	--card-media-pos: 14% 48%;
}

@media (max-width: 899px) {
	.collection-card--body { --card-media-pos: 12% 48%; }
	.collection-card--hands { --card-media-pos: 10% 48%; }
	.collection-card--comfort { --card-media-pos: 8% 48%; }
	.collection-card--pain { --card-media-pos: 10% 46%; }
	.collection-card--afriglow {
		--card-media-pos: 50% 48%;
		--card-media-zoom: 1.14;
		--card-media-shift: 4%;
	}
	.collection-card--facial {
		--card-media-pos: 50% 48%;
		--card-media-zoom: 1.14;
		--card-media-shift: 4%;
	}
	.collection-card--momma { --card-media-pos: 26% 48%; }
}

@media (hover: hover) and (pointer: fine) {
	.collection-card:hover {
		transform: translate3d(0, -6px, 0);
		border-color: var(--mv-tactile-border-hover);
		box-shadow:
			0 14px 34px rgba(24, 23, 22, 0.1),
			0 4px 12px rgba(24, 23, 22, 0.04);
	}
	.collection-card:hover .collection-card__img {
		transform: scale(calc(var(--card-media-zoom, 1) * 1.03)) translateX(var(--card-media-shift, 0%));
	}
	.collection-card:hover .collection-card__link {
		transform: translateX(4px);
	}
	.collection-card:hover .collection-card__arrow {
		transform: translateX(2px);
	}
	html.js .collection-card.reveal.is-visible:hover {
		transform: translate3d(0, -6px, 0);
	}
}

.collection-card:focus-visible {
	outline: 2px solid var(--card-accent, var(--mv-copper));
	outline-offset: 3px;
}
.collection-card:focus-visible .collection-card__link {
	transform: translateX(4px);
}
@media (hover: hover) and (pointer: fine) {
	.collection-card:focus-visible .collection-card__img {
		transform: scale(calc(var(--card-media-zoom, 1) * 1.03)) translateX(var(--card-media-shift, 0%));
	}
	html.js .collection-card.reveal.is-visible:focus-visible {
		transform: translate3d(0, -6px, 0);
		border-color: var(--mv-tactile-border-hover);
		box-shadow:
			0 14px 34px rgba(24, 23, 22, 0.1),
			0 4px 12px rgba(24, 23, 22, 0.04);
	}
}

html.js .home-collections .reveal {
	transform: translate3d(0, 22px, 0) scale(0.99);
	transition:
		opacity 0.68s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.68s cubic-bezier(0.22, 1, 0.36, 1);
}
html.js .home-collections .reveal.is-visible {
	opacity: 1;
	transform: none;
}
html.js .home-collections .collection-card.reveal.is-visible {
	transform: translate3d(0, 0, 0);
}

@media (max-width: 599px) {
	html.js .home-collections .reveal {
		transform: translate3d(0, 16px, 0) scale(0.995);
		transition-duration: 0.6s;
	}
}

.home-story { padding-top: var(--section-pad); padding-bottom: var(--section-pad); }

.home-collection-banner__inner {
	display: grid; gap: 1.5rem; align-items: center;
	background: var(--mv-bg-secondary); border: 1px solid var(--mv-border);
	border-radius: var(--mv-radius-lg); padding: clamp(1.5rem, 4vw, 2.5rem);
	border-left: 3px solid #1f5d63;
}
@media (min-width: 768px) { .home-collection-banner__inner { grid-template-columns: 1fr 1fr; } }
.home-collection-banner__visual { min-height: 220px; border-radius: var(--mv-radius); background: var(--mv-surface) center/cover no-repeat; }
.home-collection-banner__title { font-size: clamp(1.6rem, 3vw, 2.2rem); margin: 0.4rem 0 0.75rem; }
.home-collection-banner__desc { color: var(--mv-text-mid); margin-bottom: 1rem; line-height: 1.6; }

.reassurance-strip { background: var(--mv-text); color: var(--mv-bg); padding: 1.05rem 0; position: relative; z-index: 1; }
.reassurance-strip__inner { display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; justify-content: center; }
.reassurance-strip__item { font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(250, 247, 242, 0.88); text-decoration: none; }
a.reassurance-strip__item:hover { color: var(--mv-champagne); }
a.reassurance-strip__item:focus-visible {
	outline: 2px solid var(--mv-champagne);
	outline-offset: 3px;
	border-radius: 2px;
}

.home-cta { padding-top: clamp(2.5rem, 6vw, 4rem); padding-bottom: clamp(3rem, 7vw, 5rem); }
.home-cta__inner {
	text-align: center;
	max-width: 38rem;
	margin: 0 auto;
	padding: clamp(2.25rem, 5.5vw, 3.35rem) clamp(1.35rem, 4vw, 2.5rem);
	background:
		radial-gradient(ellipse 70% 80% at 50% 0%, rgba(216, 190, 158, 0.35), transparent 62%),
		linear-gradient(165deg, var(--mv-bg-secondary), rgba(239, 229, 216, 0.5));
	border: 1px solid var(--mv-border);
	border-radius: var(--mv-radius-lg);
	box-shadow: var(--mv-shadow-sm);
}
.home-cta__title {
	font-size: clamp(1.75rem, 3.8vw, 2.35rem);
	margin: 0 0 0.7rem;
	line-height: 1.12;
}
.home-cta__lead {
	color: var(--mv-text-mid);
	margin: 0 auto 1.6rem;
	max-width: 36ch;
	line-height: 1.65;
}
.home-cta__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: center;
}

.site-footer {
	background: var(--mv-text); color: var(--mv-bg); padding: clamp(2.5rem, 5vw, 3.5rem) 0 1.5rem; position: relative; z-index: 1;
}
.footer__grid { display: grid; gap: 2rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .footer__grid { grid-template-columns: 1.3fr repeat(4, 1fr); } }
.footer__heading { font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--mv-champagne); margin-bottom: 0.75rem; font-weight: 500; }
.footer-nav { list-style: none; display: grid; gap: 0.45rem; }
.footer-nav a, .footer__social { color: rgba(250, 247, 242, 0.82); font-size: 0.9rem; }
.footer-nav a:hover, .footer__social:hover { color: var(--mv-champagne); }
.footer__tag { color: rgba(250, 247, 242, 0.68); margin-top: 0.5rem; }
.footer__social { display: inline-block; margin-top: 0.75rem; text-decoration: underline; text-underline-offset: 0.15em; }
.footer__bottom { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid rgba(250, 247, 242, 0.12); }
.footer__legal { font-size: 0.82rem; color: rgba(250, 247, 242, 0.58); margin: 0; }

.page-hero { padding: clamp(2.5rem, 6vw, 4rem) 0 1.5rem; }
.page-hero__title { font-size: clamp(2rem, 4vw, 2.75rem); margin: 0.5rem 0 0.75rem; }
.page-hero__lead { color: var(--mv-text-mid); max-width: 48ch; }
.page-body { padding-top: 0; }
.page-placeholder {
	background: var(--mv-surface); border: 1px solid var(--mv-border); border-radius: var(--mv-radius);
	padding: clamp(1.25rem, 3vw, 2rem); max-width: 42rem;
}
.page-placeholder p { color: var(--mv-text-mid); margin-bottom: 0.85rem; }
.page-placeholder__note {
	margin-top: 1rem; padding: 0.85rem 1rem; background: var(--mv-bg-secondary);
	border-left: 3px solid var(--mv-copper); border-radius: 4px; font-size: 0.92rem;
}

/* ---- About page ---- */
.page-hero--about { padding-bottom: clamp(1.5rem, 4vw, 2.5rem); }

.about-story__inner {
	display: grid;
	gap: clamp(1.75rem, 4vw, 3rem);
	align-items: center;
}
@media (min-width: 900px) {
	.about-story__inner { grid-template-columns: 0.95fr 1.05fr; }
}
.about-story__media {
	margin: 0;
	border-radius: var(--mv-radius-lg);
	overflow: hidden;
	box-shadow: var(--mv-shadow-md);
	border: 1px solid var(--mv-border);
	background: var(--mv-bg-secondary);
	aspect-ratio: 4 / 5;
	max-height: min(72vh, 640px);
}
.about-story__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 38%;
	display: block;
	filter: grayscale(100%) contrast(1.04) sepia(0.07);
}
.about-story__media::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	box-shadow: inset 0 0 0 1px rgba(185, 120, 80, 0.2);
	pointer-events: none;
}
.about-story__media { position: relative; }
.about-story__title {
	font-size: clamp(1.85rem, 3.8vw, 2.55rem);
	margin: 0.5rem 0 1rem;
	line-height: 1.12;
}
.about-story__text {
	color: var(--mv-text-mid);
	line-height: 1.7;
	margin-bottom: 1rem;
	max-width: 40ch;
}
.about-story__text:last-child { margin-bottom: 0; }

.about-heart__inner { max-width: 46rem; margin: 0 auto; }
.about-heart__prose {
	margin-top: 1.5rem;
	display: grid;
	gap: 1rem;
}
.about-heart__prose p {
	color: var(--mv-text-mid);
	line-height: 1.75;
	font-size: 1.02rem;
}

.value-grid {
	display: grid;
	gap: 1.15rem;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	margin-top: 0.5rem;
}
.value-card {
	background: var(--mv-surface);
	border: 1px solid var(--mv-border);
	border-radius: var(--mv-radius);
	padding: 1.5rem 1.35rem 1.6rem;
	box-shadow: var(--mv-shadow-sm);
	transition: transform 0.22s var(--mv-ease), box-shadow 0.22s var(--mv-ease);
}
.value-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--mv-shadow-md);
}
.value-card__title {
	font-size: 1.2rem;
	margin: 0 0 0.5rem;
	font-family: var(--mv-font-display);
	font-weight: 600;
}
.value-card__text {
	font-size: 0.92rem;
	color: var(--mv-text-mid);
	line-height: 1.6;
	margin: 0;
}

.about-collections-fallback {
	text-align: center;
	color: var(--mv-text-mid);
}
.about-collections-fallback a { color: var(--mv-copper); text-decoration: underline; text-underline-offset: 0.12em; }

.about-cta__inner {
	text-align: center;
	max-width: 36rem;
	margin: 0 auto;
	padding: clamp(2rem, 5vw, 3rem);
	background: linear-gradient(165deg, var(--mv-bg-secondary), rgba(239, 229, 216, 0.55));
	border: 1px solid var(--mv-border);
	border-radius: var(--mv-radius-lg);
}
.about-cta__title {
	font-size: clamp(1.7rem, 3.5vw, 2.2rem);
	margin: 0 0 0.65rem;
}
.about-cta__lead {
	color: var(--mv-text-mid);
	margin-bottom: 1.5rem;
	line-height: 1.6;
}
.about-cta__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: center;
}

/* ---- Scroll reveal (static structure, animated experience) ---- */
html.js .reveal {
	opacity: 0;
	transform: translate3d(0, 18px, 0);
	transition:
		opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1),
		transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: opacity, transform;
}
html.js .reveal.is-visible {
	opacity: 1;
	transform: none;
	will-change: auto;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	body.marvolous-brand {
		opacity: 1;
		transition: none;
	}
	html.js .reveal,
	html.js .reveal.is-visible,
	html.js .home-collections .reveal,
	html.js .home-collections .reveal.is-visible,
	html.js .home-collections .collection-card.reveal.is-visible {
		opacity: 1;
		transform: none;
		transition: none;
		will-change: auto;
	}
	.home-collections::before {
		opacity: 1;
		transition: none;
	}
	.collection-card,
	.collection-card__img,
	.collection-card__link,
	.collection-card__arrow {
		transition: none !important;
	}
	.collection-card:hover,
	.collection-card:focus-visible,
	html.js .collection-card.reveal.is-visible:hover,
	html.js .collection-card.reveal.is-visible:focus-visible {
		transform: none !important;
	}
	.collection-card:hover .collection-card__img,
	.collection-card:focus-visible .collection-card__img {
		transform: none !important;
	}
	.collection-card:hover .collection-card__link,
	.collection-card:focus-visible .collection-card__link,
	.collection-card:hover .collection-card__arrow {
		transform: none !important;
	}
	.home-hero__img {
		animation: none !important;
	}
	.home-emari-feature__image {
		transition: none;
	}
}

/* ---- Legal / policy pages ---- */
.page-hero--legal { padding-bottom: clamp(1.25rem, 3vw, 2rem); }
.legal-meta {
	color: var(--mv-text-soft);
	font-size: 0.88rem;
	margin-top: 0.85rem;
}
.legal-doc {
	max-width: 46rem;
	margin: 0 auto;
	padding-bottom: clamp(2.5rem, 6vw, 4rem);
}
.legal-doc__section {
	padding: clamp(1.35rem, 3vw, 1.85rem) 0;
	border-top: 1px solid rgba(222, 211, 197, 0.75);
}
.legal-doc__section:first-of-type { border-top: 0; padding-top: 0; }
.legal-doc h2 {
	font-size: clamp(1.35rem, 2.8vw, 1.7rem);
	margin: 0 0 0.75rem;
	line-height: 1.2;
}
.legal-doc h3 {
	font-size: 1.08rem;
	margin: 1.15rem 0 0.45rem;
	font-family: var(--mv-font-display);
	font-weight: 600;
}
.legal-doc p,
.legal-doc li {
	color: var(--mv-text-mid);
	line-height: 1.7;
	font-size: 0.98rem;
}
.legal-doc p { margin: 0 0 0.85rem; }
.legal-doc p:last-child { margin-bottom: 0; }
.legal-doc ul,
.legal-doc ol {
	margin: 0 0 0.95rem;
	padding-left: 1.25rem;
	display: grid;
	gap: 0.4rem;
}
.legal-doc a {
	color: var(--mv-copper);
	text-decoration: underline;
	text-underline-offset: 0.12em;
}
.legal-doc a:hover { color: var(--mv-olive); }
.legal-doc a:focus-visible {
	outline: 2px solid var(--mv-copper);
	outline-offset: 3px;
	border-radius: 2px;
}
.legal-contact {
	margin-top: clamp(1.75rem, 4vw, 2.5rem);
	padding: clamp(1.35rem, 3vw, 1.85rem);
	background: linear-gradient(165deg, var(--mv-bg-secondary), rgba(239, 229, 216, 0.45));
	border: 1px solid var(--mv-border);
	border-radius: var(--mv-radius-lg);
}
.legal-contact h2 {
	font-size: clamp(1.35rem, 2.8vw, 1.65rem);
	margin: 0 0 0.65rem;
}
.legal-contact p {
	color: var(--mv-text-mid);
	margin: 0 0 0.85rem;
	line-height: 1.65;
}
.legal-contact__list {
	list-style: none;
	padding: 0;
	margin: 0 0 1.25rem;
	display: grid;
	gap: 0.75rem;
}
.legal-contact__list li {
	color: var(--mv-text-mid);
	font-size: 0.95rem;
	line-height: 1.55;
}
.legal-contact__list a {
	color: var(--mv-copper);
	text-decoration: underline;
	text-underline-offset: 0.12em;
}
.legal-contact__list a:hover { color: var(--mv-olive); }
.legal-contact .btn { margin-top: 0.25rem; }

