.nuven-ai-storefront {
	box-sizing: border-box;
	margin-block: clamp(2rem, 5vw, 5rem);
}

body.nuven-ai-storefront-landing-page {
	overflow-x: hidden;
}

/*
 * Theme boundary: Best Shop/Blossom WooCommerce render navigation overlays
 * inside #masthead before the storefront. Keep that header stacking context
 * above the isolated landing canvas so dropdowns, search and cart stay usable.
 */
body.nuven-ai-storefront-landing-page #masthead.site-header {
	position: relative;
	z-index: 1000;
	isolation: isolate;
}

body.nuven-ai-storefront-landing-page #primary.nuven-ai-storefront-page {
	position: relative;
	z-index: 0;
	isolation: isolate;
}

body.nuven-ai-storefront-landing-page .nuven-ai-storefront-page {
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: clamp(1rem, 3vw, 3rem);
}

body.nuven-ai-storefront-landing-page
	.nuven-ai-storefront-page
	> .nuven-ai-storefront {
	width: min(
		calc(100vw - clamp(2rem, 6vw, 6rem)),
		var(--nuven-storefront-width)
	);
	max-width: none;
	margin-inline: auto;
}

.nuven-ai-storefront *,
.nuven-ai-storefront *::before,
.nuven-ai-storefront *::after {
	box-sizing: inherit;
}

.nuven-ai-storefront__header {
	max-width: 52rem;
	margin-block-end: clamp(2rem, 4vw, 4rem);
}

.nuven-ai-storefront__hero {
	position: relative;
	display: grid;
	place-items: center;
	width: 100%;
	max-width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	margin: 0;
	border-radius: clamp(1rem, 2vw, 1.5rem);
	background: radial-gradient(
			circle at 50% 0%,
			color-mix(in srgb, currentColor 8%, transparent),
			transparent 68%
		),
		color-mix(in srgb, currentColor 4%, transparent);
	box-shadow: 0 1.25rem 3.5rem
		color-mix(in srgb, currentColor 14%, transparent);
}

.nuven-ai-storefront__hero + .nuven-ai-storefront__hero {
	margin-block-start: clamp(0.75rem, 1.8vw, 1.25rem);
}

.nuven-ai-storefront__hero + .nuven-ai-storefront__header,
.nuven-ai-storefront__hero + .nuven-ai-storefront__selection {
	margin-block-start: clamp(1.5rem, 3vw, 2.5rem);
}

.nuven-ai-storefront__media-stage {
	display: grid;
	width: 100%;
}

.nuven-ai-storefront__media-stage + .nuven-ai-storefront__header,
.nuven-ai-storefront__media-stage + .nuven-ai-storefront__selection {
	margin-block-start: clamp(1.5rem, 3vw, 2.5rem);
}

.nuven-ai-storefront__media-stage.is-enhanced {
	display: grid;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, #5b21b6 14%, transparent);
	border-radius: clamp(1rem, 2vw, 1.5rem);
	background: #fff;
	box-shadow: 0 1.25rem 3.5rem
		color-mix(in srgb, currentColor 14%, transparent);
}

.nuven-ai-storefront__media-viewport {
	display: grid;
	width: 100%;
}

.nuven-ai-storefront__media-stage.is-enhanced
	.nuven-ai-storefront__media-viewport {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: color-mix(in srgb, currentColor 4%, transparent);
}

.nuven-ai-storefront__media-stage.is-enhanced
	.nuven-ai-storefront__media-viewport
	.nuven-ai-storefront__hero {
	grid-area: 1 / 1;
	width: 100%;
	height: 100%;
	margin: 0;
	border-radius: 0;
	box-shadow: none;
}

.nuven-ai-storefront__media-stage.is-enhanced [hidden] {
	display: none !important;
}

.nuven-ai-storefront__media-controls {
	display: none;
}

.nuven-ai-storefront__media-stage.is-enhanced
	.nuven-ai-storefront__media-controls {
	display: flex;
	justify-content: center;
	gap: 0.375rem;
	padding: 0.625rem;
	border-block-start: 1px solid color-mix(in srgb, #5b21b6 12%, transparent);
	background: linear-gradient(135deg, #fbf9ff 0%, #f4efff 100%);
}

.nuven-ai-storefront__media-control {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	padding: 0.625rem 1.125rem;
	border: 1px solid transparent;
	border-radius: 0.75rem;
	background: transparent;
	box-shadow: none;
	color: #4c1d95;
	font: inherit;
	font-weight: 650;
	line-height: 1.2;
	cursor: pointer;
	transition:
		color 160ms ease,
		background-color 160ms ease,
		border-color 160ms ease,
		box-shadow 160ms ease,
		transform 160ms ease;
}

.nuven-ai-storefront__media-control:hover {
	border-color: color-mix(in srgb, #5b21b6 18%, transparent);
	background: color-mix(in srgb, #fff 76%, #ede9fe);
	color: #3b0764;
}

.nuven-ai-storefront__media-control.is-active,
.nuven-ai-storefront__media-control[aria-pressed="true"] {
	border-color: #5b21b6;
	background: #5b21b6;
	box-shadow: 0 0.375rem 1rem rgba(91, 33, 182, 0.22);
	color: #fff;
}

.nuven-ai-storefront__media-control:focus-visible {
	outline: 3px solid #7c3aed;
	outline-offset: 3px;
}

.nuven-ai-storefront__media-stage.is-enhanced video:focus-visible {
	outline: 3px solid #fff;
	outline-offset: -5px;
}

.nuven-ai-storefront__hero.is-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

.nuven-ai-storefront__hero.is-video video {
	display: block;
	width: 100%;
	height: 100%;
	background: #111;
	object-fit: contain;
	object-position: center;
}

.nuven-ai-storefront__header h1 {
	margin-block: 0 0.75rem;
	font-size: clamp(2rem, 5vw, 4.5rem);
	line-height: 1.05;
}

.nuven-ai-storefront__story {
	margin-block: clamp(3rem, 7vw, 6rem);
}

.nuven-ai-storefront__story-header {
	display: grid;
	gap: 0.75rem;
	max-width: 46rem;
	margin-block-end: clamp(1.5rem, 3vw, 2.5rem);
}

.nuven-ai-storefront__story-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	margin: 0;
	color: #5b21b6;
	font-size: 0.75rem;
	font-weight: 750;
	letter-spacing: 0.12em;
	line-height: 1.4;
	text-transform: uppercase;
}

.nuven-ai-storefront__story-eyebrow::before {
	width: 2rem;
	height: 0.125rem;
	border-radius: 999px;
	background: currentcolor;
	content: "";
	flex: 0 0 auto;
}

.nuven-ai-storefront__story-header h2,
.nuven-ai-storefront__story > h2 {
	max-width: 18ch;
	margin: 0;
	font-size: clamp(1.75rem, 4vw, 3rem);
	line-height: 1.1;
	letter-spacing: -0.025em;
}

.nuven-ai-storefront__story-description {
	max-width: 62ch;
	margin: 0;
	color: color-mix(in srgb, currentcolor 74%, transparent);
	font-size: clamp(1rem, 1.5vw, 1.125rem);
	line-height: 1.65;
}

[data-nuven-story-carousel] {
	display: grid;
	gap: clamp(1rem, 2vw, 1.5rem);
	margin-block: clamp(2rem, 5vw, 4rem);
}

.nuven-ai-storefront__story-header + [data-nuven-story-carousel] {
	margin-block-start: 0;
}

[data-nuven-story-slide] {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(15rem, 0.6fr);
	overflow: hidden;
	border: 1px solid color-mix(in srgb, currentColor 14%, transparent);
	border-radius: clamp(1rem, 2vw, 1.5rem);
	background: var(--wp--preset--color--base, #fff);
}

[data-nuven-story-slide] img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: min(64vw, 34rem);
	object-fit: cover;
}

[data-nuven-story-slide] figure {
	margin: 0;
}

[data-nuven-story-slide] > :not(picture):not(figure):not(img) {
	align-self: center;
	padding: clamp(1.25rem, 3vw, 2.5rem);
}

[data-nuven-story-carousel].is-enhanced [data-nuven-story-slide][hidden] {
	display: none !important;
}

[data-nuven-story-carousel].is-enhanced [data-nuven-story-slide]:focus-visible {
	outline: 3px solid #7c3aed;
	outline-offset: 3px;
}

.nuven-ai-storefront__story
	:is(
		[data-nuven-story-prev],
		[data-nuven-story-next],
		[data-nuven-story-go]
	) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	border: 1px solid color-mix(in srgb, currentColor 20%, transparent);
	border-radius: 999px;
	background: var(--wp--preset--color--base, #fff);
	color: inherit;
	font: inherit;
	cursor: pointer;
	transition:
		background-color 160ms ease,
		border-color 160ms ease,
		transform 160ms ease;
}

.nuven-ai-storefront__story
	:is(
		[data-nuven-story-prev],
		[data-nuven-story-next],
		[data-nuven-story-go]
	):hover:not(:disabled) {
	border-color: #5b21b6;
	background: color-mix(in srgb, #5b21b6 8%, #fff);
	transform: translateY(-1px);
}

.nuven-ai-storefront__story
	:is(
		[data-nuven-story-prev],
		[data-nuven-story-next],
		[data-nuven-story-go]
	):focus-visible {
	outline: 3px solid #7c3aed;
	outline-offset: 3px;
}

.nuven-ai-storefront__story
	:is([data-nuven-story-prev], [data-nuven-story-next]):disabled {
	opacity: 0.42;
	cursor: not-allowed;
}

[data-nuven-story-go][aria-current="true"] {
	border-color: #5b21b6;
	background: #5b21b6;
	color: #fff;
}

[data-nuven-story-status] {
	font-variant-numeric: tabular-nums;
}

[data-nuven-story-controls] {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	padding-block: 0.5rem;
}

.nuven-ai-storefront__selection + .nuven-ai-storefront__selection {
	margin-block-start: clamp(3rem, 6vw, 6rem);
}

.nuven-ai-storefront__products {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
	gap: clamp(1rem, 2.5vw, 2rem);
	margin-block-start: 1.5rem;
}

.nuven-ai-storefront__product {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: clamp(1rem, 2vw, 1.5rem);
	border: 1px solid color-mix(in srgb, currentColor 14%, transparent);
	border-radius: 1rem;
	background: var(--wp--preset--color--base, transparent);
}

.nuven-ai-storefront__product-image {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 0.75rem;
}

.nuven-ai-storefront__product-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 180ms ease;
}

.nuven-ai-storefront__product h3 {
	margin-block: 1rem 0.4rem;
	font-size: 1.1em;
}

.nuven-ai-storefront__price {
	margin-block-end: 1rem;
	font-weight: 700;
}

.nuven-ai-storefront__stock {
	margin-block: 0 1rem;
}

.nuven-ai-storefront__cta {
	align-self: flex-start;
	margin-block-start: auto;
}

.nuven-ai-storefront.is-editorial {
	padding: clamp(1.25rem, 4vw, 4rem);
	border-radius: clamp(1rem, 2vw, 2rem);
	background: color-mix(in srgb, currentColor 4%, transparent);
}

@media (hover: hover) {
	.nuven-ai-storefront__product-image:hover img {
		transform: scale(1.025);
	}
}

@media (prefers-reduced-motion: reduce) {
	.nuven-ai-storefront__product-image img {
		transition: none;
	}

	.nuven-ai-storefront__media-control {
		transition: none;
	}

	.nuven-ai-storefront__story
		:is(
			[data-nuven-story-prev],
			[data-nuven-story-next],
			[data-nuven-story-go]
		) {
		transition: none;
	}
}

@media (max-width: 600px) {
	[data-nuven-story-slide] {
		grid-template-columns: 1fr;
	}

	[data-nuven-story-slide] img {
		min-height: 0;
		aspect-ratio: 4 / 3;
	}

	.nuven-ai-storefront__hero {
		border-radius: 0.875rem;
		box-shadow: 0 0.75rem 2rem
			color-mix(in srgb, currentColor 12%, transparent);
	}

	.nuven-ai-storefront__hero + .nuven-ai-storefront__hero {
		margin-block-start: 0.625rem;
	}

	.nuven-ai-storefront__hero + .nuven-ai-storefront__header,
	.nuven-ai-storefront__hero + .nuven-ai-storefront__selection {
		margin-block-start: 1.25rem;
	}

	.nuven-ai-storefront__media-stage + .nuven-ai-storefront__header,
	.nuven-ai-storefront__media-stage + .nuven-ai-storefront__selection {
		margin-block-start: 1.25rem;
	}

	.nuven-ai-storefront__media-stage.is-enhanced {
		border-radius: 0.875rem;
		box-shadow: 0 0.75rem 2rem
			color-mix(in srgb, currentColor 12%, transparent);
	}

	.nuven-ai-storefront__media-controls {
		gap: 0.25rem;
		padding: 0.5rem;
	}

	.nuven-ai-storefront__media-control {
		flex: 1 1 0;
		min-height: 2.5rem;
		min-width: 0;
		padding: 0.55rem 0.75rem;
		font-size: 0.875rem;
	}
}

/* High-specificity token rules; final theme overrides are repeated at EOF. */
.nuven-ai-storefront.has-content-alignment-center
	:is(
		.nuven-ai-storefront__story-header,
		.nuven-ai-storefront__header,
		.nuven-ai-storefront__selection,
		.nuven-ai-storefront__closing
	) {
	margin-inline: auto;
	text-align: center;
}

.nuven-ai-storefront.has-content-alignment-left
	:is(
		.nuven-ai-storefront__story-header,
		.nuven-ai-storefront__header,
		.nuven-ai-storefront__selection,
		.nuven-ai-storefront__closing
	) {
	margin-inline: 0;
	text-align: start;
}

.nuven-ai-storefront.has-content-alignment-center
	.nuven-ai-storefront__hero-copy {
	align-items: center;
	text-align: center;
}

.nuven-ai-storefront.has-content-alignment-left
	.nuven-ai-storefront__hero-copy {
	align-items: flex-start;
	text-align: start;
}

.nuven-ai-storefront.has-card-flat .nuven-ai-storefront__product,
.nuven-ai-storefront.has-card-flat .nuven-ai-storefront__product:hover {
	padding-inline: 0;
	border-color: transparent;
	background: transparent;
	box-shadow: none;
}

.nuven-ai-storefront.has-card-bordered .nuven-ai-storefront__product,
.nuven-ai-storefront.has-card-bordered .nuven-ai-storefront__product:hover {
	border-color: var(--nuven-storefront-border);
	background: var(--nuven-storefront-surface);
	box-shadow: none;
}

.nuven-ai-storefront.has-card-elevated .nuven-ai-storefront__product {
	border-color: transparent;
	background: var(--nuven-storefront-surface);
	box-shadow: 0 1rem 2.75rem
		color-mix(in srgb, var(--nuven-storefront-text) 12%, transparent);
}

.nuven-ai-storefront.has-card-elevated .nuven-ai-storefront__product:hover {
	box-shadow: 0 1.5rem 3.5rem
		color-mix(in srgb, var(--nuven-storefront-text) 18%, transparent);
}

.nuven-ai-storefront.has-image-ratio-landscape
	.nuven-ai-storefront__product-image {
	aspect-ratio: 4 / 3;
}

.nuven-ai-storefront.has-image-ratio-square
	.nuven-ai-storefront__product-image {
	aspect-ratio: 1;
}

.nuven-ai-storefront.has-image-ratio-portrait
	.nuven-ai-storefront__product-image {
	aspect-ratio: 4 / 5;
}

.nuven-ai-storefront.has-buttons-solid
	:is(
		.nuven-ai-storefront__cta,
		.nuven-ai-storefront__hero-cta,
		.nuven-ai-storefront__closing a
	) {
	border-color: var(--nuven-storefront-accent);
	background: var(--nuven-storefront-accent);
	color: var(--nuven-storefront-on-accent);
}

.nuven-ai-storefront.has-buttons-outline
	:is(
		.nuven-ai-storefront__cta,
		.nuven-ai-storefront__hero-cta,
		.nuven-ai-storefront__closing a
	) {
	border-color: var(--nuven-storefront-accent);
	background: transparent;
	box-shadow: none;
	color: var(--nuven-storefront-accent);
}

.nuven-ai-storefront.has-buttons-solid
	:is(
		.nuven-ai-storefront__cta,
		.nuven-ai-storefront__hero-cta,
		.nuven-ai-storefront__closing a
	):hover,
.nuven-ai-storefront.has-buttons-outline
	:is(
		.nuven-ai-storefront__cta,
		.nuven-ai-storefront__hero-cta,
		.nuven-ai-storefront__closing a
	):hover {
	border-color: color-mix(in srgb, var(--nuven-storefront-accent) 78%, #000);
	background: color-mix(in srgb, var(--nuven-storefront-accent) 78%, #000);
	color: var(--nuven-storefront-on-accent);
}

.nuven-ai-storefront.has-card-flat [data-nuven-story-slide] {
	border-color: transparent;
	background: transparent;
	box-shadow: none;
}

.nuven-ai-storefront.has-card-bordered [data-nuven-story-slide] {
	border-color: var(--nuven-storefront-border);
	background: var(--nuven-storefront-surface);
	box-shadow: none;
}

.nuven-ai-storefront.has-card-elevated [data-nuven-story-slide] {
	border-color: transparent;
	background: var(--nuven-storefront-surface);
	box-shadow: 0 1rem 2.75rem
		color-mix(in srgb, var(--nuven-storefront-text) 12%, transparent);
}

.nuven-ai-storefront.has-image-ratio-landscape
	.nuven-ai-storefront__section--featured
	[data-nuven-story-slide]
	figure {
	aspect-ratio: 4 / 3;
}

.nuven-ai-storefront.has-image-ratio-square
	.nuven-ai-storefront__section--featured
	[data-nuven-story-slide]
	figure {
	aspect-ratio: 1;
}

.nuven-ai-storefront.has-image-ratio-portrait
	.nuven-ai-storefront__section--featured
	[data-nuven-story-slide]
	figure {
	aspect-ratio: 4 / 5;
}

.nuven-ai-storefront.has-image-ratio-landscape
	.nuven-ai-storefront__section--featured
	[data-nuven-story-slide]
	img,
.nuven-ai-storefront.has-image-ratio-square
	.nuven-ai-storefront__section--featured
	[data-nuven-story-slide]
	img,
.nuven-ai-storefront.has-image-ratio-portrait
	.nuven-ai-storefront__section--featured
	[data-nuven-story-slide]
	img {
	height: 100%;
	min-height: 0;
}

@media (prefers-reduced-motion: reduce) {
	.nuven-ai-storefront :is(.nuven-ai-storefront__product, a, button) {
		transition: none;
	}
}

/* Design builder v2: the public page mirrors every control in the preview. */
.nuven-ai-storefront {
	--nuven-storefront-secondary: #8b5cf6;
	--nuven-storefront-background: #fff;
	--nuven-storefront-on-accent: #fff;
	padding: clamp(1rem, 3vw, 2.5rem);
	border-radius: var(--nuven-storefront-radius);
	background: var(--nuven-storefront-background);
}

.nuven-ai-storefront.has-page-layout-landing {
	width: min(calc(100vw - 2rem), var(--nuven-storefront-width));
	max-width: none;
}

.nuven-ai-storefront__hero-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(17rem, 0.75fr);
	min-height: 28rem;
	overflow: hidden;
	border: 1px solid var(--nuven-storefront-border);
	border-radius: var(--nuven-storefront-radius);
	background: var(--nuven-storefront-surface);
	box-shadow: 0 1.25rem 3.5rem
		color-mix(in srgb, var(--nuven-storefront-text) 12%, transparent);
}

.nuven-ai-storefront__hero-media {
	min-width: 0;
	min-height: inherit;
	overflow: hidden;
}

.nuven-ai-storefront__hero-media
	:is(
		.nuven-ai-storefront__media-stage,
		.nuven-ai-storefront__media-viewport,
		.nuven-ai-storefront__hero
	) {
	width: 100%;
	height: 100%;
	min-height: inherit;
	margin: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.nuven-ai-storefront__hero-media :is(img, video) {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nuven-ai-storefront__hero-copy {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: clamp(1.5rem, 4vw, 4rem);
	background: var(--nuven-storefront-surface);
	color: var(--nuven-storefront-text);
	flex-direction: column;
}

.nuven-ai-storefront__hero-copy h1 {
	max-width: 14ch;
	margin-block: 0 1rem;
	font-size: clamp(2rem, 4vw, 4.75rem);
	line-height: 0.98;
	letter-spacing: -0.04em;
}

.nuven-ai-storefront__hero-copy > p:not(.nuven-ai-storefront__hero-eyebrow) {
	max-width: 48ch;
	margin-block: 0 1.5rem;
	color: color-mix(in srgb, var(--nuven-storefront-text) 72%, transparent);
	font-size: clamp(1rem, 1.4vw, 1.15rem);
	line-height: 1.65;
}

.nuven-ai-storefront__hero-eyebrow {
	margin-block: 0 0.75rem;
	color: var(--nuven-storefront-accent);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.nuven-ai-storefront__hero-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.875rem;
	padding: 0.7rem 1.15rem;
	border: 1px solid var(--nuven-storefront-accent);
	border-radius: calc(var(--nuven-storefront-radius) * 0.62);
	background: var(--nuven-storefront-accent);
	color: var(--nuven-storefront-on-accent);
	font-weight: 750;
	text-decoration: none;
}

.nuven-ai-storefront__section--hero.is-full .nuven-ai-storefront__hero-layout {
	grid-template-columns: 1fr;
}

.nuven-ai-storefront__section--hero.is-full
	:is(.nuven-ai-storefront__hero-media, .nuven-ai-storefront__hero-copy) {
	grid-area: 1 / 1;
}

.nuven-ai-storefront__section--hero.is-full .nuven-ai-storefront__hero-copy {
	position: relative;
	z-index: 1;
	align-self: end;
	min-height: 58%;
	padding-block-start: 8rem;
	background: linear-gradient(transparent, rgba(8, 12, 22, 0.86));
	color: #fff;
	pointer-events: none;
}

.nuven-ai-storefront__section--hero.is-full
	.nuven-ai-storefront__hero-copy
	> p {
	color: rgba(255, 255, 255, 0.88);
}

.nuven-ai-storefront__section--hero.is-full .nuven-ai-storefront__hero-cta {
	pointer-events: auto;
}

.nuven-ai-storefront__section--hero.is-compact
	.nuven-ai-storefront__hero-layout {
	grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 0.6fr);
}

.nuven-ai-storefront.has-hero-height-compact .nuven-ai-storefront__hero-layout {
	min-height: 20rem;
}

.nuven-ai-storefront.has-hero-height-immersive
	.nuven-ai-storefront__hero-layout {
	min-height: min(76vh, 48rem);
}

.nuven-ai-storefront.has-content-alignment-center
	:is(
		.nuven-ai-storefront__story-header,
		.nuven-ai-storefront__selection > header,
		.nuven-ai-storefront__closing
	) {
	margin-inline: auto;
	text-align: center;
}

.nuven-ai-storefront.has-content-alignment-center
	.nuven-ai-storefront__story-eyebrow {
	justify-content: center;
}

.nuven-ai-storefront.has-image-ratio-landscape
	.nuven-ai-storefront__product-image {
	aspect-ratio: 4 / 3;
}

.nuven-ai-storefront.has-image-ratio-square
	.nuven-ai-storefront__product-image {
	aspect-ratio: 1;
}

.nuven-ai-storefront.has-image-ratio-portrait
	.nuven-ai-storefront__product-image {
	aspect-ratio: 4 / 5;
}

.nuven-ai-storefront.has-card-flat .nuven-ai-storefront__product {
	padding-inline: 0;
	border-color: transparent;
	background: transparent;
	box-shadow: none;
}

.nuven-ai-storefront.has-card-bordered .nuven-ai-storefront__product {
	border-color: var(--nuven-storefront-border);
	box-shadow: none;
}

.nuven-ai-storefront.has-card-elevated .nuven-ai-storefront__product {
	border-color: transparent;
	box-shadow: 0 1rem 2.75rem
		color-mix(in srgb, var(--nuven-storefront-text) 12%, transparent);
}

.nuven-ai-storefront.has-buttons-outline .nuven-ai-storefront__hero-cta {
	background: transparent;
	color: var(--nuven-storefront-accent);
}

.nuven-ai-storefront.has-buttons-pill .nuven-ai-storefront__hero-cta {
	border-radius: 999px;
}

.nuven-ai-storefront.has-template-catalog .nuven-ai-storefront__hero-copy h1,
.nuven-ai-storefront.has-template-minimal .nuven-ai-storefront__hero-copy h1 {
	font-size: clamp(1.75rem, 3vw, 3.25rem);
}

.nuven-ai-storefront.has-template-offer .nuven-ai-storefront__hero-copy {
	background: color-mix(
		in srgb,
		var(--nuven-storefront-accent) 7%,
		var(--nuven-storefront-surface)
	);
}

.nuven-ai-storefront.has-template-launch .nuven-ai-storefront__hero-layout {
	box-shadow: 0 2rem 5rem
		color-mix(in srgb, var(--nuven-storefront-secondary) 22%, transparent);
}

.nuven-ai-storefront.has-template-minimal .nuven-ai-storefront__hero-layout {
	border-width: 0;
	box-shadow: none;
}

@media (max-width: 720px) {
	.nuven-ai-storefront {
		width: 100%;
		padding: 0.75rem;
	}

	.nuven-ai-storefront__hero-layout,
	.nuven-ai-storefront__section--hero.is-compact
		.nuven-ai-storefront__hero-layout {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.nuven-ai-storefront__hero-media {
		min-height: 17rem;
	}

	.nuven-ai-storefront.has-hero-height-compact
		.nuven-ai-storefront__hero-media {
		min-height: 13rem;
	}

	.nuven-ai-storefront.has-hero-height-immersive
		.nuven-ai-storefront__hero-media {
		min-height: min(72vh, 34rem);
	}

	.nuven-ai-storefront__section--hero.is-full
		.nuven-ai-storefront__hero-copy {
		min-height: 70%;
		padding: 5rem 1.25rem 1.5rem;
	}

	.nuven-ai-storefront__section--hero.is-split
		.nuven-ai-storefront__hero-copy,
	.nuven-ai-storefront__section--hero.is-compact
		.nuven-ai-storefront__hero-copy {
		padding: 1.5rem;
	}
}

/*
 * Schema v9: independent media/content composition. The editor preview emits
 * these same classes and custom properties, keeping both surfaces pixel-close.
 */
.nuven-ai-storefront__section
	:is(
		.nuven-ai-storefront__hero-copy,
		.nuven-ai-storefront__story-product,
		.nuven-ai-storefront__product-content
	) {
	box-sizing: border-box;
	display: flex;
	min-width: 0;
	padding: var(--nuven-section-content-padding, 24px);
	flex-direction: column;
	gap: var(--nuven-section-content-gap, 12px);
}

.nuven-ai-storefront__section
	:is(
		.nuven-ai-storefront__hero-copy,
		.nuven-ai-storefront__story-product,
		.nuven-ai-storefront__product-content
	)
	> :is(
		h1,
		h2,
		h3,
		p,
		.nuven-ai-storefront__price,
		.nuven-ai-storefront__stock
	) {
	margin-block: 0;
}

.nuven-ai-storefront__product-content {
	flex: 1;
}

.nuven-ai-storefront__section--hero .nuven-ai-storefront__hero-layout,
.nuven-ai-storefront__section--featured [data-nuven-story-slide] {
	column-gap: var(--nuven-section-media-content-gap, 16px);
}

.nuven-ai-storefront__section--groups .nuven-ai-storefront__product {
	gap: var(--nuven-section-media-content-gap, 16px);
}

.nuven-ai-storefront__section.has-media-background-transparent
	:is(
		.nuven-ai-storefront__hero-media,
		[data-nuven-story-slide] > figure,
		.nuven-ai-storefront__product-image
	) {
	background-color: transparent;
}

.nuven-ai-storefront__section.has-media-background-surface
	:is(
		.nuven-ai-storefront__hero-media,
		[data-nuven-story-slide] > figure,
		.nuven-ai-storefront__product-image
	) {
	background-color: var(--nuven-storefront-surface);
}

.nuven-ai-storefront__section.has-media-background-accent
	:is(
		.nuven-ai-storefront__hero-media,
		[data-nuven-story-slide] > figure,
		.nuven-ai-storefront__product-image
	) {
	background-color: var(--nuven-storefront-accent);
}

.nuven-ai-storefront__section.has-media-background-custom
	:is(
		.nuven-ai-storefront__hero-media,
		[data-nuven-story-slide] > figure,
		.nuven-ai-storefront__product-image
	) {
	background-color: var(--nuven-section-media-background);
}

.nuven-ai-storefront__section.has-content-background-transparent
	:is(
		.nuven-ai-storefront__hero-copy,
		.nuven-ai-storefront__story-product,
		.nuven-ai-storefront__product-content
	) {
	background-color: transparent;
}

.nuven-ai-storefront__section.has-content-background-surface
	:is(
		.nuven-ai-storefront__hero-copy,
		.nuven-ai-storefront__story-product,
		.nuven-ai-storefront__product-content
	) {
	background-color: var(--nuven-storefront-surface);
}

.nuven-ai-storefront__section.has-content-background-accent
	:is(
		.nuven-ai-storefront__hero-copy,
		.nuven-ai-storefront__story-product,
		.nuven-ai-storefront__product-content
	) {
	background-color: var(--nuven-storefront-accent);
	color: var(--nuven-storefront-on-accent, #fff);
}

.nuven-ai-storefront__section.has-content-background-custom
	:is(
		.nuven-ai-storefront__hero-copy,
		.nuven-ai-storefront__story-product,
		.nuven-ai-storefront__product-content
	) {
	background-color: var(--nuven-section-content-background);
}

.nuven-ai-storefront__section.has-media-fit-cover
	:is(
		.nuven-ai-storefront__hero-media,
		[data-nuven-story-slide] > figure,
		.nuven-ai-storefront__product-image
	)
	img {
	object-fit: cover;
}

.nuven-ai-storefront__section.has-media-fit-contain
	:is(
		.nuven-ai-storefront__hero-media,
		[data-nuven-story-slide] > figure,
		.nuven-ai-storefront__product-image
	)
	img {
	object-fit: contain;
}

.nuven-ai-storefront__section.has-media-position-center img {
	object-position: center;
}

.nuven-ai-storefront__section.has-media-position-top img {
	object-position: top;
}

.nuven-ai-storefront__section.has-media-position-bottom img {
	object-position: bottom;
}

.nuven-ai-storefront__section.has-media-position-left img {
	object-position: left;
}

.nuven-ai-storefront__section.has-media-position-right img {
	object-position: right;
}

.nuven-ai-storefront__section.has-media-height-custom
	:is(
		.nuven-ai-storefront__hero-media,
		.nuven-ai-storefront__hero-media .nuven-ai-storefront__hero,
		[data-nuven-story-slide] > figure,
		.nuven-ai-storefront__product-image
	) {
	height: var(--nuven-section-media-height);
	min-height: 0;
	aspect-ratio: auto;
}

.nuven-ai-storefront__section.has-media-height-custom
	:is(
		.nuven-ai-storefront__hero-media img,
		[data-nuven-story-slide] > figure img,
		.nuven-ai-storefront__product-image img
	) {
	height: 100%;
	min-height: 0;
	aspect-ratio: auto;
}

.nuven-ai-storefront__section.has-content-horizontal-alignment-center
	:is(
		.nuven-ai-storefront__hero-copy,
		.nuven-ai-storefront__story-product,
		.nuven-ai-storefront__product-content
	) {
	align-items: center;
	text-align: center;
}

.nuven-ai-storefront__section.has-content-horizontal-alignment-right
	:is(
		.nuven-ai-storefront__hero-copy,
		.nuven-ai-storefront__story-product,
		.nuven-ai-storefront__product-content
	) {
	align-items: flex-end;
	text-align: end;
}

.nuven-ai-storefront__section.has-content-horizontal-alignment-left
	:is(
		.nuven-ai-storefront__hero-copy,
		.nuven-ai-storefront__story-product,
		.nuven-ai-storefront__product-content
	) {
	align-items: flex-start;
	text-align: start;
}

.nuven-ai-storefront__section.has-content-vertical-alignment-start
	:is(
		.nuven-ai-storefront__hero-copy,
		.nuven-ai-storefront__story-product,
		.nuven-ai-storefront__product-content
	) {
	justify-content: flex-start;
}

.nuven-ai-storefront__section.has-content-vertical-alignment-center
	:is(
		.nuven-ai-storefront__hero-copy,
		.nuven-ai-storefront__story-product,
		.nuven-ai-storefront__product-content
	) {
	justify-content: center;
}

.nuven-ai-storefront__section.has-content-vertical-alignment-end
	:is(
		.nuven-ai-storefront__hero-copy,
		.nuven-ai-storefront__story-product,
		.nuven-ai-storefront__product-content
	) {
	justify-content: flex-end;
}

.nuven-ai-storefront__section.has-content-vertical-alignment-space-between
	:is(
		.nuven-ai-storefront__hero-copy,
		.nuven-ai-storefront__story-product,
		.nuven-ai-storefront__product-content
	) {
	justify-content: space-between;
}

.nuven-ai-storefront__section.has-card-height-equal
	:is(.nuven-ai-storefront__product, [data-nuven-story-slide]) {
	height: 100%;
}

.nuven-ai-storefront__section.has-card-height-custom
	:is(.nuven-ai-storefront__product, [data-nuven-story-slide]) {
	min-height: var(--nuven-section-card-height);
}

.nuven-ai-storefront__section.has-button-alignment-center
	.nuven-ai-storefront__cta {
	align-self: center;
}

.nuven-ai-storefront__section.has-button-alignment-right
	.nuven-ai-storefront__cta {
	align-self: flex-end;
}

.nuven-ai-storefront__section.has-button-alignment-stretch
	.nuven-ai-storefront__cta {
	align-self: stretch;
}

.nuven-ai-storefront__section--featured.has-slider-layout-split
	[data-nuven-story-slide] {
	grid-template-columns:
		minmax(0, var(--nuven-section-slider-media-width, 65%))
		minmax(0, 1fr);
}

.nuven-ai-storefront__section--featured.has-slider-layout-overlay
	[data-nuven-story-slide] {
	position: relative;
	display: grid;
	min-height: min(70vh, 44rem);
	grid-template-columns: 1fr;
}

.nuven-ai-storefront__section--featured.has-slider-layout-overlay
	[data-nuven-story-slide]
	> :is(figure, .nuven-ai-storefront__story-product) {
	grid-area: 1 / 1;
}

.nuven-ai-storefront__section--featured.has-slider-layout-overlay
	[data-nuven-story-slide]
	> figure
	img {
	min-height: min(70vh, 44rem);
}

.nuven-ai-storefront__section--featured.has-slider-layout-overlay
	.nuven-ai-storefront__story-product {
	position: relative;
	z-index: 1;
	align-self: end;
	max-width: min(100%, 38rem);
	background-image: linear-gradient(
		90deg,
		rgb(10 9 18 / 88%) 0%,
		rgb(10 9 18 / 72%) 72%,
		transparent 100%
	);
	color: #fff;
}

.nuven-ai-storefront__section--featured.has-slider-layout-overlay
	.nuven-ai-storefront__story-product
	:is(a, del, ins, .nuven-ai-storefront__price) {
	color: inherit;
}

.nuven-ai-storefront__section--featured.has-slider-layout-compact
	[data-nuven-story-carousel] {
	width: min(100%, 58rem);
	margin-inline: auto;
}

.nuven-ai-storefront__section--featured.has-slider-layout-compact
	[data-nuven-story-slide] {
	grid-template-columns: minmax(0, 48%) minmax(0, 1fr);
	box-shadow: 0 1.5rem 4rem rgb(23 32 51 / 14%);
}

.nuven-ai-storefront__section--featured.has-slider-layout-compact
	[data-nuven-story-slide]
	> figure
	img {
	min-height: 22rem;
	max-height: 30rem;
}

.nuven-ai-storefront__section--featured.has-slider-layout-compact.has-media-height-custom
	[data-nuven-story-slide]
	> figure
	img {
	min-height: 0;
	max-height: none;
}

.nuven-ai-storefront__story-controls[data-nuven-story-controls] {
	position: relative;
	z-index: 3;
	gap: 0.625rem;
}

.nuven-ai-storefront__story-controls [data-nuven-story-status] {
	min-width: 3.75rem;
	padding: 0.5rem 0.75rem;
	border: 1px solid color-mix(in srgb, currentcolor 12%, transparent);
	border-radius: 999px;
	background: color-mix(
		in srgb,
		var(--nuven-storefront-background) 92%,
		transparent
	);
	font-size: 0.8125rem;
	font-weight: 700;
	text-align: center;
	backdrop-filter: blur(12px);
}

.nuven-ai-storefront__story-controls
	:is([data-nuven-story-prev], [data-nuven-story-next]) {
	width: 2.875rem;
	min-width: 2.875rem;
	padding: 0;
	font-size: 0;
	box-shadow: 0 0.65rem 1.5rem rgb(23 32 51 / 12%);
}

.nuven-ai-storefront__story-controls
	:is([data-nuven-story-prev], [data-nuven-story-next])::before {
	font-size: 1.35rem;
	font-weight: 500;
	line-height: 1;
}

.nuven-ai-storefront__story-controls [data-nuven-story-prev]::before {
	content: "‹";
}

.nuven-ai-storefront__story-controls [data-nuven-story-next]::before {
	content: "›";
}

.nuven-ai-storefront__section--featured.has-slider-navigation-overlay
	.nuven-ai-storefront__story-controls {
	width: max-content;
	margin: -5.25rem auto 1.5rem;
	padding: 0.5rem;
	border: 1px solid rgb(255 255 255 / 32%);
	border-radius: 999px;
	background: rgb(17 14 28 / 42%);
	box-shadow: 0 1rem 2.5rem rgb(17 14 28 / 20%);
	color: #fff;
	backdrop-filter: blur(16px);
}

.nuven-ai-storefront__section--featured.has-slider-navigation-sides
	.nuven-ai-storefront__story {
	position: relative;
}

.nuven-ai-storefront__section--featured.has-slider-navigation-sides
	.nuven-ai-storefront__story-controls {
	position: absolute;
	inset-block-start: 55%;
	inset-inline: -1.4375rem;
	display: grid;
	grid-template-columns: auto 1fr auto;
	padding: 0;
	pointer-events: none;
	transform: translateY(-50%);
}

.nuven-ai-storefront__section--featured.has-slider-navigation-sides
	.nuven-ai-storefront__story-controls
	> * {
	pointer-events: auto;
}

.nuven-ai-storefront__section--featured.has-slider-navigation-sides
	[data-nuven-story-status] {
	align-self: end;
	justify-self: center;
	transform: translateY(4.5rem);
}

.nuven-ai-storefront__price del {
	opacity: 0.58;
	font-weight: 500;
}

.nuven-ai-storefront__price ins {
	font-weight: inherit;
	text-decoration: none;
}

@media (max-width: 720px) {
	.nuven-ai-storefront__section--featured:is(
			.has-slider-layout-split,
			.has-slider-layout-compact
		)
		[data-nuven-story-slide] {
		grid-template-columns: 1fr;
	}

	.nuven-ai-storefront__section.has-media-height-custom
		:is(
			.nuven-ai-storefront__hero-media,
			[data-nuven-story-slide] > figure
		) {
		height: min(var(--nuven-section-media-height), 70vh);
	}

	.nuven-ai-storefront__section--featured.has-slider-navigation-sides
		.nuven-ai-storefront__story-controls {
		position: relative;
		inset: auto;
		display: flex;
		padding-block: 0.75rem;
		transform: none;
	}

	.nuven-ai-storefront__section--featured.has-slider-navigation-sides
		[data-nuven-story-status] {
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nuven-ai-storefront__story-controls
		:is([data-nuven-story-prev], [data-nuven-story-next]) {
		transition: none;
	}
}

/*
 * v6 structural text widths. These selectors intentionally exclude product
 * names, prices, eyebrow labels and CTAs so editorial controls cannot distort
 * commerce content.
 */
.nuven-ai-storefront
	.nuven-ai-storefront__section:is(
		.has-heading-width-custom,
		.has-heading-width-full,
		.has-text-width-custom,
		.has-text-width-full
	)
	:is(.nuven-ai-storefront__header, .nuven-ai-storefront__story-header) {
	max-width: none;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-heading-width-custom
	:is(
		.nuven-ai-storefront__hero-copy > h1,
		.nuven-ai-storefront__header > h1,
		.nuven-ai-storefront__header > h2,
		.nuven-ai-storefront__story-header > h2,
		.nuven-ai-storefront__selection > h2,
		.nuven-ai-storefront__closing > h2
	) {
	width: min(100%, var(--nuven-section-heading-width));
	max-width: min(100%, var(--nuven-section-heading-width));
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-heading-width-full
	:is(
		.nuven-ai-storefront__hero-copy > h1,
		.nuven-ai-storefront__header > h1,
		.nuven-ai-storefront__header > h2,
		.nuven-ai-storefront__story-header > h2,
		.nuven-ai-storefront__selection > h2,
		.nuven-ai-storefront__closing > h2
	) {
	width: 100%;
	max-width: none;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-text-width-custom
	:is(
		.nuven-ai-storefront__hero-copy
			> p:not(.nuven-ai-storefront__hero-eyebrow),
		.nuven-ai-storefront__header > p,
		.nuven-ai-storefront__story-description,
		.nuven-ai-storefront__selection > p,
		.nuven-ai-storefront__closing > p
	) {
	width: min(100%, var(--nuven-section-text-width));
	max-width: min(100%, var(--nuven-section-text-width));
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-text-width-full
	:is(
		.nuven-ai-storefront__hero-copy
			> p:not(.nuven-ai-storefront__hero-eyebrow),
		.nuven-ai-storefront__header > p,
		.nuven-ai-storefront__story-description,
		.nuven-ai-storefront__selection > p,
		.nuven-ai-storefront__closing > p
	) {
	width: 100%;
	max-width: none;
}

.nuven-ai-storefront.has-content-alignment-center
	.nuven-ai-storefront__section:is(
		.has-heading-width-custom,
		.has-heading-width-full,
		.has-text-width-custom,
		.has-text-width-full
	)
	:is(
		.nuven-ai-storefront__hero-copy > h1,
		.nuven-ai-storefront__hero-copy
			> p:not(.nuven-ai-storefront__hero-eyebrow),
		.nuven-ai-storefront__header > h1,
		.nuven-ai-storefront__header > h2,
		.nuven-ai-storefront__header > p,
		.nuven-ai-storefront__story-header > h2,
		.nuven-ai-storefront__story-description,
		.nuven-ai-storefront__selection > h2,
		.nuven-ai-storefront__selection > p,
		.nuven-ai-storefront__closing > h2,
		.nuven-ai-storefront__closing > p
	) {
	margin-inline: auto;
}

/* v7 product typography is intentionally isolated from section headings. */
.nuven-ai-storefront
	.nuven-ai-storefront__section:is(
		.nuven-ai-storefront__section--featured,
		.nuven-ai-storefront__section--groups
	)
	:is(.nuven-ai-storefront__product, .nuven-ai-storefront__story-product)
	h3 {
	font-size: var(--nuven-section-product-title-size);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section:is(
		.nuven-ai-storefront__section--featured,
		.nuven-ai-storefront__section--groups
	)
	.nuven-ai-storefront__price {
	font-size: var(--nuven-section-product-price-size);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section:is(
		.nuven-ai-storefront__section--featured,
		.nuven-ai-storefront__section--groups
	)
	.nuven-ai-storefront__cta {
	font-size: var(--nuven-section-product-button-size);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section:is(
		.nuven-ai-storefront__section--featured,
		.nuven-ai-storefront__section--groups
	).has-product-title-weight-400
	:is(.nuven-ai-storefront__product, .nuven-ai-storefront__story-product)
	h3,
.nuven-ai-storefront
	.nuven-ai-storefront__section:is(
		.nuven-ai-storefront__section--featured,
		.nuven-ai-storefront__section--groups
	).has-product-title-weight-500
	:is(.nuven-ai-storefront__product, .nuven-ai-storefront__story-product)
	h3,
.nuven-ai-storefront
	.nuven-ai-storefront__section:is(
		.nuven-ai-storefront__section--featured,
		.nuven-ai-storefront__section--groups
	).has-product-title-weight-600
	:is(.nuven-ai-storefront__product, .nuven-ai-storefront__story-product)
	h3,
.nuven-ai-storefront
	.nuven-ai-storefront__section:is(
		.nuven-ai-storefront__section--featured,
		.nuven-ai-storefront__section--groups
	).has-product-title-weight-700
	:is(.nuven-ai-storefront__product, .nuven-ai-storefront__story-product)
	h3,
.nuven-ai-storefront
	.nuven-ai-storefront__section:is(
		.nuven-ai-storefront__section--featured,
		.nuven-ai-storefront__section--groups
	).has-product-title-weight-800
	:is(.nuven-ai-storefront__product, .nuven-ai-storefront__story-product)
	h3 {
	font-weight: var(--nuven-section-product-title-weight);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section:is(
		.nuven-ai-storefront__section--featured,
		.nuven-ai-storefront__section--groups
	):is(
		.has-product-price-weight-400,
		.has-product-price-weight-500,
		.has-product-price-weight-600,
		.has-product-price-weight-700,
		.has-product-price-weight-800
	)
	.nuven-ai-storefront__price {
	font-weight: var(--nuven-section-product-price-weight);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section:is(
		.nuven-ai-storefront__section--featured,
		.nuven-ai-storefront__section--groups
	):is(
		.has-product-button-weight-400,
		.has-product-button-weight-500,
		.has-product-button-weight-600,
		.has-product-button-weight-700,
		.has-product-button-weight-800
	)
	.nuven-ai-storefront__cta {
	font-weight: var(--nuven-section-product-button-weight);
}

/* Visual builder: every option maps to an allowlisted class emitted by PHP. */
.nuven-ai-storefront {
	--nuven-storefront-accent: #5b21b6;
	--nuven-storefront-accent-strong: #4c1d95;
	--nuven-storefront-tint: #f5f1ff;
	--nuven-storefront-surface: #fff;
	--nuven-storefront-text: #172033;
	--nuven-storefront-muted: #626b7b;
	--nuven-storefront-border: rgba(23, 32, 51, 0.12);
	--nuven-storefront-radius: 1rem;
	--nuven-storefront-section-space: clamp(3rem, 7vw, 6rem);
	--nuven-storefront-width: 74rem;
	width: min(100%, var(--nuven-storefront-width));
	margin-inline: auto;
	color: var(--nuven-storefront-text);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.nuven-ai-storefront.has-palette-ocean {
	--nuven-storefront-accent: #0369a1;
	--nuven-storefront-accent-strong: #075985;
	--nuven-storefront-tint: #e8f6fc;
}

.nuven-ai-storefront.has-palette-forest {
	--nuven-storefront-accent: #287052;
	--nuven-storefront-accent-strong: #1f5941;
	--nuven-storefront-tint: #edf7f0;
}

.nuven-ai-storefront.has-palette-sunset {
	--nuven-storefront-accent: #ae432d;
	--nuven-storefront-accent-strong: #8c3222;
	--nuven-storefront-tint: #fff1e8;
}

.nuven-ai-storefront.has-palette-graphite {
	--nuven-storefront-accent: #273244;
	--nuven-storefront-accent-strong: #172033;
	--nuven-storefront-tint: #eef0f4;
}

.nuven-ai-storefront.has-palette-neutral {
	--nuven-storefront-accent: #57534e;
	--nuven-storefront-accent-strong: #44403c;
	--nuven-storefront-tint: #f5f5f4;
}

.nuven-ai-storefront.has-typography-elegant,
.nuven-ai-storefront.has-typography-editorial {
	font-family: Georgia, "Times New Roman", serif;
}

.nuven-ai-storefront.has-typography-friendly {
	font-family:
		ui-rounded,
		"Arial Rounded MT Bold",
		-apple-system,
		BlinkMacSystemFont,
		"Segoe UI",
		sans-serif;
}

.nuven-ai-storefront.has-width-compact {
	--nuven-storefront-width: 58rem;
}

.nuven-ai-storefront.has-width-wide {
	--nuven-storefront-width: 92rem;
}

.nuven-ai-storefront.has-corners-square {
	--nuven-storefront-radius: 0.125rem;
}

.nuven-ai-storefront.has-corners-rounded {
	--nuven-storefront-radius: 1.75rem;
}

.nuven-ai-storefront.has-density-compact {
	--nuven-storefront-section-space: clamp(2rem, 4vw, 3.5rem);
}

.nuven-ai-storefront.has-density-airy {
	--nuven-storefront-section-space: clamp(4rem, 9vw, 8rem);
}

.nuven-ai-storefront .nuven-ai-storefront__section {
	margin-block: var(--nuven-storefront-section-space);
}

.nuven-ai-storefront .nuven-ai-storefront__section:first-child {
	margin-block-start: 0;
}

.nuven-ai-storefront .nuven-ai-storefront__section:last-child {
	margin-block-end: 0;
}

.nuven-ai-storefront__section--featured .nuven-ai-storefront__story,
.nuven-ai-storefront__section--groups .nuven-ai-storefront__selection {
	margin-block: 0;
}

.nuven-ai-storefront__section--groups
	.nuven-ai-storefront__selection
	+ .nuven-ai-storefront__selection {
	margin-block-start: var(--nuven-storefront-section-space);
}

.nuven-ai-storefront
	:is(
		.nuven-ai-storefront__hero,
		[data-nuven-story-slide],
		.nuven-ai-storefront__product
	) {
	border-radius: var(--nuven-storefront-radius);
}

.nuven-ai-storefront .nuven-ai-storefront__story-eyebrow {
	color: var(--nuven-storefront-accent);
}

.nuven-ai-storefront .nuven-ai-storefront__product {
	border-color: var(--nuven-storefront-border);
	background: var(--nuven-storefront-surface);
	box-shadow: 0 0.25rem 1.25rem rgba(23, 32, 51, 0.055);
	transition:
		box-shadow 180ms ease,
		transform 180ms ease;
}

.nuven-ai-storefront .nuven-ai-storefront__cta,
.nuven-ai-storefront .nuven-ai-storefront__closing a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.875rem;
	padding: 0.7rem 1.15rem;
	border: 1px solid var(--nuven-storefront-accent);
	border-radius: calc(var(--nuven-storefront-radius) * 0.62);
	background: var(--nuven-storefront-accent);
	box-shadow: 0 0.5rem 1.15rem
		color-mix(in srgb, var(--nuven-storefront-accent) 22%, transparent);
	color: #fff;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	transition:
		background-color 160ms ease,
		box-shadow 160ms ease,
		transform 160ms ease;
}

.nuven-ai-storefront.has-buttons-outline .nuven-ai-storefront__cta,
.nuven-ai-storefront.has-buttons-outline .nuven-ai-storefront__closing a {
	background: transparent;
	box-shadow: none;
	color: var(--nuven-storefront-accent-strong);
}

.nuven-ai-storefront.has-buttons-pill .nuven-ai-storefront__cta,
.nuven-ai-storefront.has-buttons-pill .nuven-ai-storefront__closing a {
	border-radius: 999px;
}

.nuven-ai-storefront .nuven-ai-storefront__cta:hover,
.nuven-ai-storefront .nuven-ai-storefront__closing a:hover {
	background: var(--nuven-storefront-accent-strong);
	box-shadow: 0 0.75rem 1.5rem
		color-mix(in srgb, var(--nuven-storefront-accent) 28%, transparent);
	color: #fff;
	transform: translateY(-1px);
}

.nuven-ai-storefront .nuven-ai-storefront__cta:focus-visible,
.nuven-ai-storefront .nuven-ai-storefront__closing a:focus-visible {
	outline: 3px solid
		color-mix(in srgb, var(--nuven-storefront-accent) 48%, transparent);
	outline-offset: 3px;
}

.nuven-ai-storefront__section--hero.is-split .nuven-ai-storefront__hero,
.nuven-ai-storefront.has-template-launch
	.nuven-ai-storefront__section--hero
	.nuven-ai-storefront__hero {
	aspect-ratio: 21 / 10;
}

.nuven-ai-storefront__section--hero.is-compact {
	max-width: 64rem;
	margin-inline: auto;
}

.nuven-ai-storefront__section--hero.is-compact .nuven-ai-storefront__hero {
	aspect-ratio: 21 / 8;
}

.nuven-ai-storefront__section--intro.is-centered {
	max-width: 52rem;
	margin-inline: auto;
	text-align: center;
}

.nuven-ai-storefront__section--intro.is-card {
	padding: clamp(1.5rem, 4vw, 3.5rem);
	border-radius: var(--nuven-storefront-radius);
	background: var(--nuven-storefront-tint);
}

.nuven-ai-storefront__section--featured.is-grid [data-nuven-story-carousel],
.nuven-ai-storefront__section--groups.is-grid .nuven-ai-storefront__products {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	gap: clamp(1rem, 2.5vw, 2rem);
}

.nuven-ai-storefront__section--groups.is-alternating
	.nuven-ai-storefront__products {
	display: grid;
	grid-template-columns: 1fr;
}

.nuven-ai-storefront__section--groups.is-carousel
	.nuven-ai-storefront__products {
	display: grid;
	grid-auto-columns: minmax(min(78vw, 17rem), 1fr);
	grid-auto-flow: column;
	grid-template-columns: none;
	overflow-x: auto;
	padding-block-end: 0.75rem;
	scroll-snap-type: inline mandatory;
	scrollbar-color: var(--nuven-storefront-accent) transparent;
	scrollbar-width: thin;
}

.nuven-ai-storefront__section--groups.is-carousel
	.nuven-ai-storefront__product {
	scroll-snap-align: start;
}

.nuven-ai-storefront__section--groups.is-alternating
	.nuven-ai-storefront__product {
	display: grid;
	grid-template-columns: minmax(12rem, 0.8fr) minmax(16rem, 1.2fr);
	gap: clamp(1.5rem, 4vw, 4rem);
	align-items: center;
}

.nuven-ai-storefront__section--groups.is-alternating
	.nuven-ai-storefront__product:nth-child(even)
	.nuven-ai-storefront__product-image {
	grid-column: 2;
	grid-row: 1 / span 5;
}

.nuven-ai-storefront__section--closing {
	padding: clamp(2rem, 5vw, 4.5rem);
	border-radius: var(--nuven-storefront-radius);
	background: var(--nuven-storefront-tint);
	text-align: center;
}

.nuven-ai-storefront__section--closing.is-split .nuven-ai-storefront__closing {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem 2rem;
	text-align: start;
}

.nuven-ai-storefront__section--closing.is-minimal {
	padding-inline: 0;
	background: transparent;
}

.nuven-ai-storefront.has-template-minimal .nuven-ai-storefront__product {
	padding-inline: 0;
	border-width: 0 0 1px;
	box-shadow: none;
}

.nuven-ai-storefront.has-template-editorial
	.nuven-ai-storefront__story-header
	h2 {
	font-size: clamp(2.25rem, 5vw, 4.25rem);
	font-weight: 500;
}

.nuven-ai-storefront.has-template-launch .nuven-ai-storefront__section--hero {
	padding: clamp(0.5rem, 1.5vw, 1rem);
	border-radius: calc(var(--nuven-storefront-radius) * 1.2);
	background: var(--nuven-storefront-tint);
	box-shadow: 0 2rem 5rem rgba(23, 32, 51, 0.12);
}

.nuven-ai-storefront.has-template-catalog .nuven-ai-storefront__products {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
	gap: clamp(0.75rem, 1.6vw, 1.25rem);
}

.nuven-ai-storefront.has-template-catalog .nuven-ai-storefront__product {
	padding: clamp(0.75rem, 1.5vw, 1rem);
}

.nuven-ai-storefront.has-template-offer .nuven-ai-storefront__price {
	color: var(--nuven-storefront-accent-strong);
	font-size: 1.2em;
}

.nuven-ai-storefront.has-template-story .nuven-ai-storefront__section--intro {
	padding-inline-start: clamp(1.25rem, 3vw, 2.5rem);
	border-inline-start: 0.25rem solid var(--nuven-storefront-accent);
	text-align: start;
}

@media (hover: hover) {
	.nuven-ai-storefront .nuven-ai-storefront__product:hover {
		box-shadow: 0 1.25rem 2.75rem rgba(23, 32, 51, 0.12);
		transform: translateY(-0.2rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	.nuven-ai-storefront .nuven-ai-storefront__product,
	.nuven-ai-storefront .nuven-ai-storefront__cta,
	.nuven-ai-storefront .nuven-ai-storefront__closing a {
		transition: none;
	}
}

@media (max-width: 600px) {
	.nuven-ai-storefront {
		--nuven-storefront-section-space: 2.75rem;
	}

	.nuven-ai-storefront__section--groups.is-alternating
		.nuven-ai-storefront__product,
	.nuven-ai-storefront__section--closing.is-split
		.nuven-ai-storefront__closing {
		display: flex;
		flex-direction: column;
		align-items: stretch;
	}

	.nuven-ai-storefront__section--groups.is-alternating
		.nuven-ai-storefront__product:nth-child(even)
		.nuven-ai-storefront__product-image {
		grid-column: auto;
		grid-row: auto;
	}
}

/* Final cascade contract: keep builder choices above theme and legacy rules. */
body.nuven-ai-storefront-landing-page #primary.nuven-ai-storefront-page {
	display: block;
	float: none;
	clear: both;
	width: 100%;
	min-width: 0;
	max-width: none;
	margin-inline: auto;
	padding: clamp(1rem, 3vw, 3rem);
	box-sizing: border-box;
}

.nuven-ai-storefront.has-content-alignment-center
	:is(
		.nuven-ai-storefront__story-header,
		.nuven-ai-storefront__header,
		.nuven-ai-storefront__selection,
		.nuven-ai-storefront__closing
	) {
	margin-inline: auto;
	text-align: center;
}

.nuven-ai-storefront.has-content-alignment-center
	.nuven-ai-storefront__hero-copy {
	align-items: center;
	text-align: center;
}

.nuven-ai-storefront.has-content-alignment-left
	:is(
		.nuven-ai-storefront__story-header,
		.nuven-ai-storefront__header,
		.nuven-ai-storefront__selection,
		.nuven-ai-storefront__closing
	) {
	margin-inline: 0;
	text-align: start;
}

.nuven-ai-storefront.has-content-alignment-left
	.nuven-ai-storefront__hero-copy {
	align-items: flex-start;
	text-align: start;
}

.nuven-ai-storefront.has-card-flat .nuven-ai-storefront__product,
.nuven-ai-storefront.has-card-flat .nuven-ai-storefront__product:hover {
	padding-inline: 0;
	border-color: transparent;
	background: transparent;
	box-shadow: none;
}

.nuven-ai-storefront.has-card-bordered .nuven-ai-storefront__product,
.nuven-ai-storefront.has-card-bordered .nuven-ai-storefront__product:hover {
	border-color: var(--nuven-storefront-border);
	background: var(--nuven-storefront-surface);
	box-shadow: none;
}

.nuven-ai-storefront.has-card-elevated .nuven-ai-storefront__product {
	border-color: transparent;
	background: var(--nuven-storefront-surface);
	box-shadow: 0 1rem 2.75rem
		color-mix(in srgb, var(--nuven-storefront-text) 12%, transparent);
}

.nuven-ai-storefront.has-card-elevated .nuven-ai-storefront__product:hover {
	box-shadow: 0 1.5rem 3.5rem
		color-mix(in srgb, var(--nuven-storefront-text) 18%, transparent);
}

.nuven-ai-storefront.has-buttons-solid
	:is(
		.nuven-ai-storefront__cta,
		.nuven-ai-storefront__hero-cta,
		.nuven-ai-storefront__closing a
	) {
	border-color: var(--nuven-storefront-accent);
	background: var(--nuven-storefront-accent);
	color: var(--nuven-storefront-on-accent);
}

.nuven-ai-storefront.has-buttons-outline
	:is(
		.nuven-ai-storefront__cta,
		.nuven-ai-storefront__hero-cta,
		.nuven-ai-storefront__closing a
	) {
	border-color: var(--nuven-storefront-accent);
	background: transparent;
	box-shadow: none;
	color: var(--nuven-storefront-accent);
}

.nuven-ai-storefront.has-buttons-solid
	:is(
		.nuven-ai-storefront__cta,
		.nuven-ai-storefront__hero-cta,
		.nuven-ai-storefront__closing a
	):hover,
.nuven-ai-storefront.has-buttons-outline
	:is(
		.nuven-ai-storefront__cta,
		.nuven-ai-storefront__hero-cta,
		.nuven-ai-storefront__closing a
	):hover {
	border-color: color-mix(in srgb, var(--nuven-storefront-accent) 78%, #000);
	background: color-mix(in srgb, var(--nuven-storefront-accent) 78%, #000);
	color: var(--nuven-storefront-on-accent);
}

@media (max-width: 600px) {
	body.nuven-ai-storefront-landing-page #primary.nuven-ai-storefront-page {
		width: 100%;
		padding: 0.75rem;
	}
}

/* Section-level builder controls (schema v3). */
body.nuven-ai-storefront-landing-page.nuven-ai-storefront-page-padding-none
	#primary.nuven-ai-storefront-page,
.nuven-ai-storefront.has-page-padding-none {
	padding: 0;
}

body.nuven-ai-storefront-landing-page.nuven-ai-storefront-page-padding-compact
	#primary.nuven-ai-storefront-page,
.nuven-ai-storefront.has-page-padding-compact {
	padding: clamp(0.75rem, 2vw, 1.5rem);
}

body.nuven-ai-storefront-landing-page.nuven-ai-storefront-page-padding-comfortable
	#primary.nuven-ai-storefront-page,
.nuven-ai-storefront.has-page-padding-comfortable {
	padding: clamp(1rem, 3vw, 3rem);
}

body.nuven-ai-storefront-landing-page.nuven-ai-storefront-page-background-transparent
	#primary.nuven-ai-storefront-page,
.nuven-ai-storefront.has-page-background-transparent {
	background: transparent;
}

body.nuven-ai-storefront-landing-page.nuven-ai-storefront-page-background-color
	#primary.nuven-ai-storefront-page,
.nuven-ai-storefront.has-page-background-color {
	background: var(--nuven-storefront-background);
}

body.nuven-ai-storefront-landing-page.nuven-ai-storefront-width-full
	#primary.nuven-ai-storefront-page
	> .nuven-ai-storefront,
.nuven-ai-storefront.has-width-full {
	width: 100%;
	max-width: none;
}

.nuven-ai-storefront .nuven-ai-storefront__section.has-section-width-content {
	width: min(100%, 64rem);
	margin-inline: auto;
}

.nuven-ai-storefront .nuven-ai-storefront__section.has-section-width-wide {
	width: min(100%, 88rem);
	margin-inline: auto;
}

.nuven-ai-storefront .nuven-ai-storefront__section.has-section-width-full {
	width: 100%;
	max-width: none;
}

.nuven-ai-storefront.has-page-layout-landing
	.nuven-ai-storefront__section.has-section-width-full {
	width: 100vw;
	margin-inline: calc(50% - 50vw);
}

.nuven-ai-storefront .nuven-ai-storefront__section.has-section-padding-none {
	padding: 0;
}

.nuven-ai-storefront .nuven-ai-storefront__section.has-section-padding-compact {
	padding: clamp(0.75rem, 2vw, 1.5rem);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-section-padding-comfortable {
	padding: clamp(1.25rem, 3vw, 3rem);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-section-padding-spacious {
	padding: clamp(2rem, 6vw, 6rem);
}

.nuven-ai-storefront .nuven-ai-storefront__section.has-background-transparent {
	background: transparent;
}

.nuven-ai-storefront .nuven-ai-storefront__section.has-background-surface {
	background: var(--nuven-storefront-surface);
}

.nuven-ai-storefront .nuven-ai-storefront__section.has-background-accent {
	background: var(--nuven-storefront-accent);
	color: var(--nuven-storefront-on-accent);
}

.nuven-ai-storefront .nuven-ai-storefront__section.has-background-custom {
	background: var(--nuven-section-background);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-heading-size-small
	:is(h1, h2, h3) {
	font-size: clamp(1.15rem, 2vw, 1.5rem);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-heading-size-medium
	:is(h1, h2, h3) {
	font-size: clamp(1.6rem, 3vw, 2.5rem);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-heading-size-large
	:is(h1, h2, h3) {
	font-size: clamp(2rem, 4.5vw, 4rem);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-heading-size-display
	:is(h1, h2, h3) {
	font-size: clamp(2.75rem, 7vw, 6.5rem);
	line-height: 0.96;
	letter-spacing: -0.045em;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-heading-color-default
	:is(h1, h2, h3) {
	color: var(--nuven-storefront-text);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-heading-color-accent
	:is(h1, h2, h3) {
	color: var(--nuven-storefront-accent);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-heading-color-custom
	:is(h1, h2, h3) {
	color: var(--nuven-section-heading);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-text-size-small
	:is(p, .nuven-ai-storefront__price, .nuven-ai-storefront__stock) {
	font-size: clamp(0.82rem, 1.2vw, 0.92rem);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-text-size-medium
	:is(p, .nuven-ai-storefront__price, .nuven-ai-storefront__stock) {
	font-size: clamp(0.95rem, 1.4vw, 1.08rem);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-text-size-large
	:is(p, .nuven-ai-storefront__price, .nuven-ai-storefront__stock) {
	font-size: clamp(1.08rem, 1.8vw, 1.3rem);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-text-color-default
	:is(p, .nuven-ai-storefront__price, .nuven-ai-storefront__stock) {
	color: var(--nuven-storefront-text);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-text-color-muted
	:is(p, .nuven-ai-storefront__price, .nuven-ai-storefront__stock) {
	color: color-mix(in srgb, var(--nuven-storefront-text) 62%, transparent);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-text-color-custom
	:is(p, .nuven-ai-storefront__price, .nuven-ai-storefront__stock) {
	color: var(--nuven-section-text);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-background-accent.has-heading-color-default
	:is(h1, h2, h3),
.nuven-ai-storefront
	.nuven-ai-storefront__section.has-background-accent.has-text-color-default
	:is(p, .nuven-ai-storefront__price, .nuven-ai-storefront__stock) {
	color: var(--nuven-storefront-on-accent);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-item-background-transparent
	:is(.nuven-ai-storefront__product, [data-nuven-story-slide]) {
	background: transparent;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-item-background-surface
	:is(.nuven-ai-storefront__product, [data-nuven-story-slide]) {
	background: var(--nuven-storefront-surface);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-item-background-custom
	:is(.nuven-ai-storefront__product, [data-nuven-story-slide]) {
	background: var(--nuven-section-item-background);
}

.nuven-ai-storefront__section--hero.is-full.has-overlay-none
	.nuven-ai-storefront__hero-copy {
	background: transparent;
	text-shadow: 0 1px 1rem rgba(0, 0, 0, 0.72);
}

.nuven-ai-storefront__section--hero.is-full.has-overlay-light
	.nuven-ai-storefront__hero-copy {
	background: linear-gradient(transparent, rgba(0, 0, 0, 0.38));
}

.nuven-ai-storefront__section--hero.is-full.has-overlay-medium
	.nuven-ai-storefront__hero-copy {
	background: linear-gradient(transparent, rgba(0, 0, 0, 0.62));
}

.nuven-ai-storefront__section--hero.is-full.has-overlay-strong
	.nuven-ai-storefront__hero-copy {
	background: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.88));
}

.nuven-ai-storefront__section--hero.has-content-position-center
	.nuven-ai-storefront__hero-copy {
	align-items: center;
	text-align: center;
}

.nuven-ai-storefront__section--hero.has-content-position-right
	.nuven-ai-storefront__hero-copy {
	align-items: flex-end;
	text-align: end;
}

.nuven-ai-storefront__section--groups.is-grid.has-columns-2
	.nuven-ai-storefront__products {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nuven-ai-storefront__section--groups.is-grid.has-columns-3
	.nuven-ai-storefront__products {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nuven-ai-storefront__section--groups.is-grid.has-columns-4
	.nuven-ai-storefront__products {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 782px) {
	.nuven-ai-storefront__section--groups.is-grid:is(
			.has-columns-3,
			.has-columns-4
		)
		.nuven-ai-storefront__products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 480px) {
	.nuven-ai-storefront__section--groups.is-grid:is(
			.has-columns-2,
			.has-columns-3,
			.has-columns-4
		)
		.nuven-ai-storefront__products {
		grid-template-columns: 1fr;
	}
}

/* Schema v5 uses validated numeric tokens emitted as CSS custom properties. */
.nuven-ai-storefront {
	width: min(100%, var(--nuven-storefront-width));
	padding-block: var(--nuven-storefront-page-space-top, 24px)
		var(--nuven-storefront-page-space-bottom, 48px);
	padding-inline: var(--nuven-storefront-page-padding);
	border-radius: var(--nuven-storefront-radius);
	font-family: var(--nuven-storefront-body-font);
	font-size: var(--nuven-storefront-base-font-size);
	font-weight: var(--nuven-storefront-body-weight);
	line-height: var(--nuven-storefront-line-height);
}

.nuven-ai-storefront :is(h1, h2, h3, h4, h5, h6) {
	font-family: var(--nuven-storefront-heading-font);
	font-weight: var(--nuven-storefront-heading-weight);
}

.nuven-ai-storefront
	:is(
		.nuven-ai-storefront__product h3,
		.nuven-ai-storefront__story-product h3
	) {
	font-size: calc(
		var(--nuven-storefront-base-font-size) *
			var(--nuven-storefront-type-scale)
	);
}

/* Product titles keep the storefront style instead of inheriting link decoration from themes. */
.nuven-ai-storefront
	:is(.nuven-ai-storefront__story-product, .nuven-ai-storefront__product)
	h3
	> a,
.nuven-ai-storefront
	:is(.nuven-ai-storefront__story-product, .nuven-ai-storefront__product)
	h3
	> a:is(:link, :visited, :hover, :active, :focus) {
	color: var(--nuven-storefront-text);
	text-decoration: none;
}

.nuven-ai-storefront
	:is(.nuven-ai-storefront__story-product, .nuven-ai-storefront__product)
	h3
	> a:focus-visible {
	border-radius: 2px;
	outline: 3px solid
		color-mix(in srgb, var(--nuven-storefront-accent) 48%, transparent);
	outline-offset: 3px;
}

.nuven-ai-storefront .nuven-ai-storefront__hero-layout {
	min-height: var(--nuven-storefront-hero-height);
}

.nuven-ai-storefront .nuven-ai-storefront__section {
	margin-block: var(--nuven-storefront-section-space);
	padding-top: var(
		--nuven-section-padding-top,
		var(--nuven-section-padding-block, var(--nuven-section-padding, 0))
	);
	padding-right: var(
		--nuven-section-padding-right,
		var(--nuven-section-padding-inline, var(--nuven-section-padding, 0))
	);
	padding-bottom: var(
		--nuven-section-padding-bottom,
		var(--nuven-section-padding-block, var(--nuven-section-padding, 0))
	);
	padding-left: var(
		--nuven-section-padding-left,
		var(--nuven-section-padding-inline, var(--nuven-section-padding, 0))
	);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section:is(
		.has-heading-weight-400,
		.has-heading-weight-500,
		.has-heading-weight-600,
		.has-heading-weight-700,
		.has-heading-weight-800
	)
	:is(h1, h2, h3, h4, h5, h6) {
	font-weight: var(--nuven-section-heading-weight);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section:is(
		.has-text-weight-400,
		.has-text-weight-500,
		.has-text-weight-600,
		.has-text-weight-700,
		.has-text-weight-800
	)
	:is(p, .nuven-ai-storefront__price, .nuven-ai-storefront__stock) {
	font-weight: var(--nuven-section-text-weight);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section
	:is(h1, h2, .nuven-ai-storefront__hero-copy h1) {
	font-size: clamp(
		calc(var(--nuven-section-heading-size) * 0.72),
		5vw,
		var(--nuven-section-heading-size)
	);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section
	:is(p, .nuven-ai-storefront__story-description) {
	font-size: var(--nuven-section-text-size);
}

.nuven-ai-storefront__section--hero.is-full .nuven-ai-storefront__hero-copy {
	background-image: linear-gradient(
		transparent,
		rgb(0 0 0 / var(--nuven-section-overlay-opacity))
	);
}

/*
 * The v5 page padding belongs exclusively to the storefront root. The custom
 * property is emitted on that child, so applying padding to its parent used a
 * fallback and produced a second, uncontrollable gutter on public pages.
 */
body.nuven-ai-storefront-landing-page
	#primary.nuven-ai-storefront-page.nuven-ai-storefront-page {
	margin-block: 0;
	padding-block: 0;
	padding-inline: 0;
	overflow: visible;
}

body.nuven-ai-storefront-landing-page
	.nuven-ai-storefront-page
	> .nuven-ai-storefront {
	width: min(100%, var(--nuven-storefront-width));
	margin-block: 0;
}

/* Numeric v5 tokens must outrank the categorical compatibility classes. */
.nuven-ai-storefront.nuven-ai-storefront {
	padding-block: var(--nuven-storefront-page-space-top, 24px)
		var(--nuven-storefront-page-space-bottom, 48px);
	padding-inline: var(--nuven-storefront-page-padding, 0);
	font-family: var(--nuven-storefront-body-font);
	font-weight: var(--nuven-storefront-body-weight);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.nuven-ai-storefront__section {
	padding-top: var(
		--nuven-section-padding-top,
		var(--nuven-section-padding-block, var(--nuven-section-padding, 0))
	);
	padding-right: var(
		--nuven-section-padding-right,
		var(--nuven-section-padding-inline, var(--nuven-section-padding, 0))
	);
	padding-bottom: var(
		--nuven-section-padding-bottom,
		var(--nuven-section-padding-block, var(--nuven-section-padding, 0))
	);
	padding-left: var(
		--nuven-section-padding-left,
		var(--nuven-section-padding-inline, var(--nuven-section-padding, 0))
	);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.nuven-ai-storefront__section
	:is(h1, h2, h3, h4, h5, h6) {
	font-family: var(--nuven-storefront-heading-font, inherit);
	font-weight: var(
		--nuven-section-heading-weight,
		var(--nuven-storefront-heading-weight, 700)
	);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.nuven-ai-storefront__section
	:is(p, .nuven-ai-storefront__price, .nuven-ai-storefront__stock) {
	font-family: var(--nuven-storefront-body-font, inherit);
	font-weight: var(
		--nuven-section-text-weight,
		var(--nuven-storefront-body-weight, 400)
	);
}

@media (max-width: 720px) {
	.nuven-ai-storefront .nuven-ai-storefront__hero-layout,
	.nuven-ai-storefront .nuven-ai-storefront__hero-media {
		min-height: min(var(--nuven-storefront-hero-height), 72vh);
	}
}

/* Final schema-v9 precedence over categorical compatibility rules. */
.nuven-ai-storefront
	.nuven-ai-storefront__section--groups
	.nuven-ai-storefront__product {
	padding: 0;
	overflow: hidden;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--groups
	.nuven-ai-storefront__product-image {
	width: 100%;
	border-radius: 0;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--groups
	.nuven-ai-storefront__product-content {
	width: 100%;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--hero:is(
		.has-content-background-transparent,
		.has-content-background-surface,
		.has-content-background-accent,
		.has-content-background-custom
	)
	.nuven-ai-storefront__hero-copy {
	background-image: none;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-slider-layout-overlay
	.nuven-ai-storefront__story-product {
	background-image: linear-gradient(
		90deg,
		rgb(10 9 18 / 88%) 0%,
		rgb(10 9 18 / 72%) 72%,
		transparent 100%
	);
}

:is([dir="rtl"], body.rtl)
	.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-slider-layout-overlay
	.nuven-ai-storefront__story-product {
	background-image: linear-gradient(
		270deg,
		rgb(10 9 18 / 88%) 0%,
		rgb(10 9 18 / 72%) 72%,
		transparent 100%
	);
}

@media (max-width: 720px) {
	.nuven-ai-storefront__section.has-card-height-custom
		:is(.nuven-ai-storefront__product, [data-nuven-story-slide]) {
		height: min(var(--nuven-section-card-height), 80vh);
	}
}

/* Schema v9.1: explicit regional backgrounds own the complete card surface. */
.nuven-ai-storefront
	.nuven-ai-storefront__section:is(
		.has-media-background-transparent,
		.has-media-background-surface,
		.has-media-background-accent,
		.has-media-background-custom,
		.has-content-background-transparent,
		.has-content-background-surface,
		.has-content-background-accent,
		.has-content-background-custom
	)
	:is(
		.nuven-ai-storefront__hero-layout,
		[data-nuven-story-slide],
		.nuven-ai-storefront__product
	) {
	background-color: transparent;
}

/* Custom is an exact card size; media height remains an independent token. */
.nuven-ai-storefront
	.nuven-ai-storefront__section.has-card-height-custom
	:is(.nuven-ai-storefront__product, [data-nuven-story-slide]) {
	box-sizing: border-box;
	height: var(--nuven-section-card-height);
	min-height: 0;
	max-height: var(--nuven-section-card-height);
	overflow: hidden;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-card-height-custom
	:is(
		[data-nuven-story-slide] > figure,
		.nuven-ai-storefront__product-image,
		[data-nuven-story-slide] > figure img,
		.nuven-ai-storefront__product-image img
	) {
	min-height: 0;
	max-height: 100%;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-card-height-custom
	:is(
		[data-nuven-story-slide] > figure img,
		.nuven-ai-storefront__product-image img
	) {
	height: 100%;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-card-height-custom
	:is(
		.nuven-ai-storefront__story-product,
		.nuven-ai-storefront__product-content
	) {
	min-height: 0;
	overflow: auto;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-card-height-equal
	:is([data-nuven-story-carousel], .nuven-ai-storefront__products) {
	align-items: stretch;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section.has-card-height-equal
	:is(.nuven-ai-storefront__product, [data-nuven-story-slide]) {
	align-self: stretch;
	height: 100%;
}

@media (max-width: 720px) {
	.nuven-ai-storefront
		.nuven-ai-storefront__section.has-card-height-custom
		:is(.nuven-ai-storefront__product, [data-nuven-story-slide]) {
		height: min(var(--nuven-section-card-height), 80vh);
		max-height: min(var(--nuven-section-card-height), 80vh);
	}
}

/* Final featured-format precedence over legacy carousel dimensions. */
.nuven-ai-storefront
	.nuven-ai-storefront__section--featured:is(
		.has-slider-layout-split,
		.has-slider-layout-compact
	)
	.nuven-ai-storefront__story-product {
	align-self: stretch;
	height: 100%;
	min-height: 0;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-slider-layout-overlay
	[data-nuven-story-slide] {
	min-height: 0;
	aspect-ratio: 16 / 9;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-slider-layout-overlay
	[data-nuven-story-slide]
	> figure {
	height: 100%;
	min-height: 0;
	overflow: hidden;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-slider-layout-overlay
	[data-nuven-story-slide]
	> figure
	img {
	height: 100%;
	min-height: 0;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-slider-layout-overlay
	.nuven-ai-storefront__story-product {
	align-self: stretch;
	justify-self: stretch;
	width: 100%;
	height: 100%;
	min-height: 0;
	max-width: none;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-slider-layout-overlay.has-media-height-custom:not(
		.has-card-height-custom
	)
	[data-nuven-story-slide] {
	height: var(--nuven-section-media-height);
	aspect-ratio: auto;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-slider-layout-overlay.has-card-height-custom
	[data-nuven-story-slide] {
	aspect-ratio: auto;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-card-height-custom
	[data-nuven-story-slide] {
	grid-template-rows: minmax(0, 1fr);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-card-height-custom
	[data-nuven-story-slide]
	> figure {
	min-height: 0;
	max-height: 100%;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-card-height-custom
	[data-nuven-story-slide]
	> .nuven-ai-storefront__story-product {
	height: 100%;
	min-height: 0;
	max-height: 100%;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-card-height-custom.has-media-height-custom
	[data-nuven-story-slide]
	> figure {
	align-self: start;
	width: 100%;
	min-width: 0;
	height: min(
		var(--nuven-section-media-height),
		var(--nuven-section-card-height)
	);
	aspect-ratio: auto;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-card-height-custom.has-media-height-custom
	[data-nuven-story-slide]
	> figure
	img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	aspect-ratio: auto;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--groups.has-card-height-custom.has-media-height-custom
	.nuven-ai-storefront__product-image {
	height: min(
		var(--nuven-section-media-height),
		var(--nuven-section-card-height)
	);
	aspect-ratio: auto;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--groups.has-card-height-custom.has-media-height-custom
	.nuven-ai-storefront__product-image
	img {
	aspect-ratio: auto;
}

@media (max-width: 720px) {
	.nuven-ai-storefront
		.nuven-ai-storefront__section:is(
			.nuven-ai-storefront__section--featured,
			.nuven-ai-storefront__section--groups
		).has-card-height-custom.has-media-height-custom
		:is(
			[data-nuven-story-slide] > figure,
			.nuven-ai-storefront__product-image
		) {
		height: min(
			var(--nuven-section-media-height),
			var(--nuven-section-card-height),
			80vh
		);
	}
}

/* Keep featured actions and side navigation inside the visible composition. */
.nuven-ai-storefront
	.nuven-ai-storefront__section--featured
	.nuven-ai-storefront__story-product
	> .nuven-ai-storefront__cta {
	margin-block-start: 0;
	flex-shrink: 0;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-content-vertical-alignment-center
	.nuven-ai-storefront__story-product {
	justify-content: safe center;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-card-height-custom:is(
		.has-slider-layout-split,
		.has-slider-layout-compact
	)
	.nuven-ai-storefront__story-product {
	overflow: hidden;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-card-height-custom:is(
		.has-slider-layout-split,
		.has-slider-layout-compact
	)
	.nuven-ai-storefront__story-product
	> h3 {
	display: -webkit-box;
	min-height: 0;
	overflow: hidden;
	flex: 0 1 auto;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-card-height-custom:is(
		.has-slider-layout-split,
		.has-slider-layout-compact
	)
	.nuven-ai-storefront__story-product
	> :is(
		.nuven-ai-storefront__price,
		.nuven-ai-storefront__stock,
		.nuven-ai-storefront__cta
	) {
	flex: 0 0 auto;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-slider-navigation-sides
	[data-nuven-story-carousel] {
	position: relative;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-slider-navigation-sides
	.nuven-ai-storefront__story-controls {
	position: static;
	inset: auto;
	display: flex;
	min-height: 3.75rem;
	padding: 0;
	pointer-events: auto;
	transform: none;
}

/* Schema v10: safe mobile layout, richer product cards and calm motion. */
.nuven-ai-storefront {
	--nuven-storefront-mobile-page-padding: 20px;
	--nuven-storefront-mobile-section-space: 40px;
	--nuven-storefront-mobile-hero-height: 420px;
}

.nuven-ai-storefront__product-image,
.nuven-ai-storefront [data-nuven-story-slide] > figure {
	position: relative;
}

.nuven-ai-storefront__sale-badge {
	position: absolute;
	z-index: 2;
	inset-block-start: 0.75rem;
	inset-inline-start: 0.75rem;
	display: inline-flex;
	align-items: center;
	min-height: 1.75rem;
	padding-inline: 0.7rem;
	border-radius: 999px;
	background: var(--nuven-storefront-accent);
	box-shadow: 0 0.35rem 1rem rgb(0 0 0 / 0.16);
	color: var(--nuven-storefront-on-accent, #fff);
	-webkit-text-fill-color: var(--nuven-storefront-on-accent, #fff);
	font-size: 0.75rem;
	font-weight: 750;
	line-height: 1;
}

.nuven-ai-storefront__rating {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	margin: 0;
	color: var(--nuven-storefront-accent-strong);
	font-size: 0.875rem;
	font-weight: 700;
}

.nuven-ai-storefront__rating small {
	color: color-mix(in srgb, var(--nuven-storefront-text) 68%, transparent);
	font-weight: 500;
}

.nuven-ai-storefront__excerpt {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	color: color-mix(in srgb, var(--nuven-storefront-text) 74%, transparent);
	font-size: 0.925rem;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.nuven-ai-storefront__product-image-secondary {
	position: absolute;
	inset: 0;
	opacity: 0;
}

.nuven-ai-storefront.has-image-hover .nuven-ai-storefront__product-image img {
	transition:
		opacity 220ms ease,
		transform 320ms ease;
}

@media (hover: hover) {
	.nuven-ai-storefront.has-image-hover
		.nuven-ai-storefront__product-image:hover
		> img:first-of-type {
		opacity: 0;
	}

	.nuven-ai-storefront.has-image-hover
		.nuven-ai-storefront__product-image:hover
		> .nuven-ai-storefront__product-image-secondary {
		opacity: 1;
	}
}

.nuven-ai-storefront.has-motion-none *,
.nuven-ai-storefront.has-motion-none *::before,
.nuven-ai-storefront.has-motion-none *::after {
	scroll-behavior: auto !important;
	transition-duration: 0s !important;
	animation-duration: 0s !important;
}

.nuven-ai-storefront [data-nuven-story-carousel] {
	touch-action: pan-y;
	user-select: none;
}

.nuven-ai-storefront [data-nuven-story-carousel] img {
	-webkit-user-drag: none;
	user-select: none;
}

.nuven-ai-storefront [data-nuven-story-slide] a,
.nuven-ai-storefront [data-nuven-story-slide] button,
.nuven-ai-storefront__story-controls button {
	min-height: 44px;
}

@media (max-width: 720px) {
	body.nuven-ai-storefront-landing-page
		.nuven-ai-storefront-page
		> .nuven-ai-storefront,
	.nuven-ai-storefront.nuven-ai-storefront {
		width: 100%;
		max-width: 100%;
		padding-inline: 0;
		overflow-x: clip;
	}

	.nuven-ai-storefront {
		--nuven-mobile-safe-gutter: max(
			20px,
			env(safe-area-inset-left, 0px),
			env(safe-area-inset-right, 0px)
		);
		--nuven-storefront-section-space: 40px;
	}

	.nuven-ai-storefront.has-responsive-custom {
		--nuven-mobile-safe-gutter: max(
			var(--nuven-storefront-mobile-page-padding, 20px),
			env(safe-area-inset-left, 0px),
			env(safe-area-inset-right, 0px)
		);
		--nuven-storefront-section-space: var(
			--nuven-storefront-mobile-section-space,
			40px
		);
	}

	.nuven-ai-storefront
		.nuven-ai-storefront__section.nuven-ai-storefront__section {
		max-width: 100%;
		/* Keep both horizontal choices independent while preserving a safe mobile edge. */
		padding-right: max(
			var(
				--nuven-section-padding-right,
				var(--nuven-section-padding-inline, 0px)
			),
			var(--nuven-mobile-safe-gutter)
		);
		padding-left: max(
			var(
				--nuven-section-padding-left,
				var(--nuven-section-padding-inline, 0px)
			),
			var(--nuven-mobile-safe-gutter)
		);
	}

	.nuven-ai-storefront.has-responsive-custom
		.nuven-ai-storefront__hero-layout,
	.nuven-ai-storefront.has-responsive-custom
		.nuven-ai-storefront__hero-media {
		min-height: min(
			var(--nuven-storefront-mobile-hero-height, 420px),
			75svh
		);
	}

	.nuven-ai-storefront.has-mobile-columns-1
		.nuven-ai-storefront__section--groups.is-grid
		.nuven-ai-storefront__products {
		grid-template-columns: minmax(0, 1fr);
	}

	.nuven-ai-storefront.has-mobile-columns-2
		.nuven-ai-storefront__section--groups.is-grid
		.nuven-ai-storefront__products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem;
	}

	.nuven-ai-storefront.has-mobile-cta-full-width
		:is(
			.nuven-ai-storefront__cta,
			.nuven-ai-storefront__hero-cta,
			.nuven-ai-storefront__closing-cta
		) {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nuven-ai-storefront *,
	.nuven-ai-storefront *::before,
	.nuven-ai-storefront *::after {
		scroll-behavior: auto !important;
		transition-duration: 0s !important;
		animation-duration: 0s !important;
	}
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-slider-navigation-sides
	.nuven-ai-storefront__story-controls
	:is([data-nuven-story-prev], [data-nuven-story-next]) {
	position: absolute;
	inset-block-start: calc((100% - 3.75rem) / 2);
	transform: translateY(-50%);
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-slider-navigation-sides
	.nuven-ai-storefront__story-controls
	[data-nuven-story-prev] {
	inset-inline-start: 0.75rem;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-slider-navigation-sides
	.nuven-ai-storefront__story-controls
	[data-nuven-story-next] {
	inset-inline-end: 0.75rem;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.has-slider-navigation-sides
	.nuven-ai-storefront__story-controls
	[data-nuven-story-status] {
	align-self: center;
	justify-self: center;
	transform: none;
}

/* Template parity: every preset stays inside its canvas on every viewport. */
.nuven-ai-storefront
	:is(
		.nuven-ai-storefront__section,
		.nuven-ai-storefront__hero-layout,
		.nuven-ai-storefront__hero-media,
		.nuven-ai-storefront__story,
		.nuven-ai-storefront__story-carousel,
		.nuven-ai-storefront__story-slide,
		.nuven-ai-storefront__selection,
		.nuven-ai-storefront__products,
		.nuven-ai-storefront__product
	) {
	min-width: 0;
	max-width: 100%;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--hero.has-media-fit-auto
	.nuven-ai-storefront__hero-media
	img {
	object-fit: cover;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.is-grid
	:is(.nuven-ai-storefront__story-carousel, [data-nuven-story-grid]) {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	gap: clamp(1rem, 2.5vw, 2rem);
	overflow: visible;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.is-grid
	[data-nuven-story-slide] {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr);
	min-width: 0;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.is-grid
	[data-nuven-story-slide]
	> figure,
.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.is-grid
	[data-nuven-story-slide]
	> figure
	img {
	width: 100%;
	min-height: 0;
	aspect-ratio: 4 / 3;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--featured.is-grid
	[data-nuven-story-controls] {
	display: none !important;
}

.nuven-ai-storefront
	:is(.nuven-ai-storefront__product, .nuven-ai-storefront__story-product)
	h3 {
	min-width: 0;
	overflow-wrap: anywhere;
}

.nuven-ai-storefront:is(.has-buttons-solid, .has-buttons-pill)
	:is(
		.nuven-ai-storefront__cta,
		.nuven-ai-storefront__hero-cta,
		.nuven-ai-storefront__closing-cta
	):is(:link, :visited) {
	border-color: var(--nuven-storefront-accent);
	background: var(--nuven-storefront-accent);
	color: var(--nuven-storefront-on-accent);
	-webkit-text-fill-color: var(--nuven-storefront-on-accent);
}

.nuven-ai-storefront.has-buttons-outline
	:is(
		.nuven-ai-storefront__cta,
		.nuven-ai-storefront__hero-cta,
		.nuven-ai-storefront__closing-cta
	):is(:link, :visited) {
	color: var(--nuven-storefront-accent);
	-webkit-text-fill-color: var(--nuven-storefront-accent);
}

@media (max-width: 782px) {
	.nuven-ai-storefront
		.nuven-ai-storefront__section--groups.is-alternating
		.nuven-ai-storefront__product {
		grid-template-columns: minmax(0, 1fr);
	}

	.nuven-ai-storefront
		.nuven-ai-storefront__section--groups.is-alternating
		.nuven-ai-storefront__product:nth-child(even)
		.nuven-ai-storefront__product-image {
		grid-column: auto;
		grid-row: auto;
	}
}

/* Hero block height: section controls override template-level height presets. */
.nuven-ai-storefront
	.nuven-ai-storefront__section--hero.has-card-height-auto
	.nuven-ai-storefront__hero-layout {
	height: auto;
	min-height: 0;
	max-height: none;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--hero.has-card-height-auto
	.nuven-ai-storefront__hero-media {
	min-height: 0;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--hero.has-card-height-auto.has-media-height-auto
	:is(.nuven-ai-storefront__hero-media, .nuven-ai-storefront__hero) {
	height: auto;
	min-height: 0;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--hero.has-card-height-auto.has-media-height-auto
	.nuven-ai-storefront__hero-media
	:is(img, video) {
	display: block;
	height: auto;
	aspect-ratio: auto;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--hero.has-card-height-custom
	.nuven-ai-storefront__hero-layout {
	box-sizing: border-box;
	height: var(--nuven-section-card-height);
	min-height: 0;
	max-height: var(--nuven-section-card-height);
	overflow: hidden;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--hero.has-card-height-custom
	:is(
		.nuven-ai-storefront__hero-media,
		.nuven-ai-storefront__hero,
		.nuven-ai-storefront__hero-media :is(img, video),
		.nuven-ai-storefront__hero-copy
	) {
	height: 100%;
	min-height: 0;
	max-height: 100%;
}

.nuven-ai-storefront
	.nuven-ai-storefront__section--hero.has-card-height-custom
	.nuven-ai-storefront__hero-copy {
	box-sizing: border-box;
	overflow: auto;
}

@media (max-width: 720px) {
	.nuven-ai-storefront
		.nuven-ai-storefront__section--hero.has-card-height-custom
		.nuven-ai-storefront__hero-layout {
		height: min(var(--nuven-section-card-height), 80svh);
		max-height: min(var(--nuven-section-card-height), 80svh);
	}

	.nuven-ai-storefront
		.nuven-ai-storefront__section--hero.has-card-height-custom:is(
			.is-split,
			.is-compact
		)
		.nuven-ai-storefront__hero-layout {
		grid-template-rows: minmax(0, 3fr) minmax(0, 2fr);
	}

	.nuven-ai-storefront
		.nuven-ai-storefront__section--hero.has-card-height-custom:is(
			.is-split,
			.is-compact
		)
		:is(.nuven-ai-storefront__hero-media, .nuven-ai-storefront__hero-copy) {
		height: auto;
		min-height: 0;
		max-height: none;
	}

	.nuven-ai-storefront
		.nuven-ai-storefront__section--hero.has-card-height-auto
		:is(
			.nuven-ai-storefront__hero-layout,
			.nuven-ai-storefront__hero-media
		) {
		min-height: 0;
	}
}

/* Preview/public parity boundary: keep this final and mirrored in editor CSS. */
.nuven-ai-storefront.nuven-ai-storefront
	:is(
		a.nuven-ai-storefront__cta,
		a.nuven-ai-storefront__hero-cta,
		a.nuven-ai-storefront__closing-cta
	) {
	box-sizing: border-box !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 2.875rem;
	padding: 0.7rem 1.15rem !important;
	border-style: solid !important;
	border-width: 1px !important;
	border-radius: calc(var(--nuven-storefront-radius) * 0.62);
	background-image: none !important;
	font: inherit;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none !important;
	text-shadow: none !important;
	cursor: pointer;
	transition:
		background-color 160ms ease,
		border-color 160ms ease,
		box-shadow 160ms ease,
		color 160ms ease,
		transform 160ms ease;
	appearance: none;
}

.nuven-ai-storefront.nuven-ai-storefront:is(
		.has-buttons-solid,
		.has-buttons-pill
	)
	:is(
		a.nuven-ai-storefront__cta,
		a.nuven-ai-storefront__hero-cta,
		a.nuven-ai-storefront__closing-cta
	):is(:link, :visited) {
	border-color: var(--nuven-storefront-accent) !important;
	background-color: var(--nuven-storefront-accent) !important;
	color: var(--nuven-storefront-on-accent) !important;
	-webkit-text-fill-color: var(--nuven-storefront-on-accent) !important;
}

.nuven-ai-storefront.nuven-ai-storefront.has-buttons-outline
	:is(
		a.nuven-ai-storefront__cta,
		a.nuven-ai-storefront__hero-cta,
		a.nuven-ai-storefront__closing-cta
	):is(:link, :visited) {
	border-color: var(--nuven-storefront-accent) !important;
	background-color: transparent !important;
	box-shadow: none !important;
	color: var(--nuven-storefront-accent) !important;
	-webkit-text-fill-color: var(--nuven-storefront-accent) !important;
}

.nuven-ai-storefront.nuven-ai-storefront.has-buttons-pill
	:is(
		a.nuven-ai-storefront__cta,
		a.nuven-ai-storefront__hero-cta,
		a.nuven-ai-storefront__closing-cta
	) {
	border-radius: 999px !important;
}

.nuven-ai-storefront.nuven-ai-storefront:is(
		.has-buttons-solid,
		.has-buttons-outline,
		.has-buttons-pill
	)
	:is(
		a.nuven-ai-storefront__cta,
		a.nuven-ai-storefront__hero-cta,
		a.nuven-ai-storefront__closing-cta
	):is(:link, :visited):is(:hover, :active) {
	border-color: var(--nuven-storefront-accent-strong) !important;
	background-color: var(--nuven-storefront-accent-strong) !important;
	box-shadow: 0 0.75rem 1.5rem
		color-mix(in srgb, var(--nuven-storefront-accent) 28%, transparent) !important;
	color: var(--nuven-storefront-on-accent) !important;
	-webkit-text-fill-color: var(--nuven-storefront-on-accent) !important;
}

.nuven-ai-storefront.nuven-ai-storefront
	:is(
		a.nuven-ai-storefront__cta,
		a.nuven-ai-storefront__hero-cta,
		a.nuven-ai-storefront__closing-cta
	):focus-visible {
	outline: 3px solid
		color-mix(in srgb, var(--nuven-storefront-accent) 48%, transparent) !important;
	outline-offset: 3px !important;
}

.nuven-ai-storefront.nuven-ai-storefront
	.nuven-ai-storefront__section--hero.has-card-height-auto.has-media-height-auto
	.nuven-ai-storefront__hero-layout {
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
}

.nuven-ai-storefront.nuven-ai-storefront
	.nuven-ai-storefront__section--hero.has-card-height-auto.has-media-height-auto
	:is(.nuven-ai-storefront__hero-media, .nuven-ai-storefront__hero) {
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	aspect-ratio: auto !important;
}

.nuven-ai-storefront.nuven-ai-storefront
	.nuven-ai-storefront__section--hero.has-card-height-auto.has-media-height-auto
	.nuven-ai-storefront__hero-media
	:is(img, video) {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	aspect-ratio: auto !important;
}

/* A transparent hero card has no shell; regional media/content colors remain independent. */
.nuven-ai-storefront.nuven-ai-storefront
	.nuven-ai-storefront__section--hero.has-background-transparent {
	background: transparent !important;
	box-shadow: none !important;
}

.nuven-ai-storefront.nuven-ai-storefront
	.nuven-ai-storefront__section--hero.has-background-transparent
	> .nuven-ai-storefront__hero-layout {
	border-color: transparent !important;
	background: transparent !important;
	box-shadow: none !important;
}
