/* ==========================================================================
   FlowShape Theme Styles (Stage 1 Splash + Stage 2 Editorial Storefront)
   Tokens come from theme.json (var(--wp--preset--*)):
   - Base (Cream):    #F8F7F3
   - Surface:         #EDEAE3
   - Stone (Greige):  #CDC6B8
   - Muted:           #6F6A61
   - Contrast (Ink):  #141414
   - Accent (Coral):  #E4572E
   ========================================================================== */

:root {
	--ps-radius: 1.25rem;
	--ps-radius-sm: 0.75rem;
	--ps-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--ps-curtain-ease: cubic-bezier(0.76, 0, 0.24, 1);
}

/* Prevent horizontal viewport expansion from off-canvas drawers ----------- */
html,
body {
	overflow-x: clip;
}

.wc-block-components-drawer {
	max-width: 100vw !important;
}

/* Accessible focus everywhere ------------------------------------------- */
:where(a, button, input, select, textarea, [tabindex]:not([tabindex="-1"])):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}

.wc-block-components-notice-banner:focus,
.wc-block-components-notice-banner:focus-visible {
	outline: none;
}

/* Sticky bottom footer on short pages (Cart, My Account, 404, etc.) ------ */
.wp-site-blocks {
	min-height: 100vh;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
}

.wp-site-blocks > main,
.wp-site-blocks > .ps-main {
	flex: 1 0 auto;
	width: 100%;
	box-sizing: border-box;
}

.wp-site-blocks > footer,
footer.wp-block-template-part {
	margin-top: auto;
}

/* ==========================================================================
   STAGE 1: FIRST-VISIT 4-PHASE SPLASH SCREEN (.ps-splash)
   ========================================================================== */

html.fs-splash-active {
	overflow: hidden;
}

.ps-splash {
	position: fixed;
	inset: 0;
	width: 100vw;
	height: 100vh;
	z-index: 9999;
	overflow: hidden;
	background: var(--wp--preset--color--stone, #CDC6B8);
	color: var(--wp--preset--color--contrast, #141414);
	user-select: none;
	/* Hidden by default when JS is off or after completion */
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.45s var(--ps-ease), visibility 0.45s var(--ps-ease);
}

html.fs-splash-active .ps-splash {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

html.fs-splash-done .ps-splash {
	display: none !important;
}

/* Phase 2 Stage (Revealed behind the splitting greige curtains) ------------ */
.ps-splash__stage {
	position: absolute;
	inset: clamp(0.85rem, 2.2vw, 2rem);
	border-radius: 0.5rem;
	background: #DDD6C7;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: clamp(1rem, 2.2vw, 2rem);
	overflow: hidden;
	z-index: 1;
}

.ps-splash__meta {
	position: relative;
	z-index: 4;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--contrast, #141414);
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 0.55s var(--ps-ease) 0.18s, transform 0.55s var(--ps-ease) 0.18s;
}

html[data-splash-phase="2"] .ps-splash__meta {
	opacity: 1;
	transform: translateY(0);
}

html[data-splash-phase="3"] .ps-splash__meta {
	opacity: 0;
	transform: translateY(-10px);
	transition-delay: 0s;
}

.ps-splash__skip {
	appearance: none;
	border: 1px solid rgba(20, 20, 20, 0.25);
	background: rgba(248, 247, 243, 0.72);
	backdrop-filter: blur(8px);
	color: var(--wp--preset--color--contrast, #141414);
	font: inherit;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 0.45rem 0.9rem;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	cursor: pointer;
	transition: background-color 0.2s, border-color 0.2s, transform 0.2s;
}

.ps-splash__skip:hover {
	background: var(--wp--preset--color--contrast, #141414);
	color: var(--wp--preset--color--base, #F8F7F3);
	border-color: var(--wp--preset--color--contrast, #141414);
}

/* Showcase panels behind the wordmark (echoing SplashScreen.mp4 00:01) ----- */
.ps-splash__panels {
	position: absolute;
	inset: 0;
	display: grid;
	grid-template-columns: 16% 1fr;
	gap: 1.25rem;
	z-index: 1;
	pointer-events: none;
}

.ps-splash__panel {
	position: relative;
	overflow: hidden;
}

.ps-splash__panel--left {
	background: linear-gradient(145deg, #C7BFA9 0%, #B7AE98 100%);
	border-right: 1px solid rgba(20, 20, 20, 0.12);
	display: flex;
	align-items: center;
	justify-content: flex-end;
	transform: translateX(-24px);
	transition: transform 0.95s var(--ps-curtain-ease);
}

html[data-splash-phase="2"] .ps-splash__panel--left,
html[data-splash-phase="3"] .ps-splash__panel--left {
	transform: translateX(0);
}

.ps-splash__object--cutter {
	width: 11rem;
	height: 15rem;
	border-radius: 2.5rem;
	background:
		repeating-linear-gradient(
			90deg,
			rgba(255, 255, 255, 0.18) 0px,
			rgba(255, 255, 255, 0.18) 2px,
			transparent 2px,
			transparent 5px
		),
		linear-gradient(135deg, #6E8B57 0%, #4C6638 65%, #344925 100%);
	box-shadow:
		inset 0 2px 12px rgba(255, 255, 255, 0.35),
		18px 24px 40px rgba(20, 20, 20, 0.22);
	transform: translateX(38%);
}

.ps-splash__panel--center {
	background:
		radial-gradient(circle at 54% 48%, rgba(248, 247, 243, 0.55) 0%, transparent 62%),
		linear-gradient(180deg, #D8D1C2 0%, #CDC6B8 100%);
	display: grid;
	place-items: center;
}

.ps-splash__object--roller {
	position: relative;
	display: flex;
	 flex-direction: column;
	align-items: center;
	transform: scale(0.92) translateY(18px);
	transition: transform 1s var(--ps-curtain-ease);
}

html[data-splash-phase="2"] .ps-splash__object--roller,
html[data-splash-phase="3"] .ps-splash__object--roller {
	transform: scale(1) translateY(0);
}

.ps-splash__roller-cap {
	width: clamp(6rem, 11vw, 9.5rem);
	height: clamp(2.4rem, 4.2vw, 3.6rem);
	border-radius: 0.65rem 0.65rem 0.25rem 0.25rem;
	background:
		repeating-linear-gradient(
			90deg,
			#F8F7F3 0px,
			#F8F7F3 3px,
			#DCD6CA 3px,
			#DCD6CA 6px
		);
	border: 2px solid rgba(20, 20, 20, 0.16);
	box-shadow: 0 8px 20px rgba(20, 20, 20, 0.12);
	z-index: 2;
}

.ps-splash__roller-body {
	width: clamp(11rem, 22vw, 19rem);
	height: clamp(18rem, 46vh, 28rem);
	margin-top: -0.25rem;
	border-radius: 3.5rem 3.5rem 1.5rem 1.5rem;
	background:
		repeating-linear-gradient(
			0deg,
			rgba(255, 255, 255, 0.09) 0px,
			rgba(255, 255, 255, 0.09) 1.5px,
			transparent 1.5px,
			transparent 4px
		),
		radial-gradient(120% 90% at 32% 24%, #F27B58 0%, #E4572E 48%, #B53816 100%);
	box-shadow:
		inset 14px 0 28px rgba(255, 255, 255, 0.26),
		inset -18px 0 32px rgba(20, 20, 20, 0.28),
		-28px 30px 48px rgba(20, 20, 20, 0.26);
}

.ps-splash__object--badge {
	position: absolute;
	top: 12%;
	right: 8%;
	width: clamp(4.5rem, 8vw, 7rem);
	height: clamp(4.5rem, 8vw, 7rem);
	border-radius: 1.5rem;
	background: linear-gradient(135deg, #E4572E 0%, #C63D17 100%);
	box-shadow: -12px 18px 30px rgba(20, 20, 20, 0.18);
	transform: rotate(16deg);
}

.ps-splash__object--slice {
	position: absolute;
	bottom: 10%;
	left: 8%;
	width: clamp(5rem, 9vw, 8rem);
	height: clamp(5rem, 9vw, 8rem);
	border-radius: 999px;
	border: 10px solid #E4572E;
	background: #F8F7F3;
	box-shadow: -10px 16px 28px rgba(20, 20, 20, 0.16);
	transform: rotate(-14deg);
}

/* Giant Edge-to-Edge Condensed FLOWSHAPE® Wordmark ------------------------ */
.ps-splash__wordmark-wrap {
	position: relative;
	z-index: 3;
	margin-block: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	pointer-events: none;
}

.ps-splash__wordmark {
	display: inline-flex;
	align-items: flex-start;
	justify-content: center;
	font-family: var(--wp--preset--font-family--archivo, Archivo, sans-serif);
	font-variation-settings: "wdth" 62, "wght" 900;
	font-stretch: 62%;
	font-weight: 900;
	font-size: clamp(4.2rem, 15.8vw, 15.5rem);
	line-height: 0.84;
	letter-spacing: -0.02em;
	text-transform: uppercase;
	color: var(--wp--preset--color--contrast, #141414);
	text-shadow: 0 2px 28px rgba(248, 247, 243, 0.45);
	transform: scale(0.94);
	opacity: 0;
	transition:
		transform 0.82s var(--ps-curtain-ease),
		opacity 0.55s var(--ps-ease),
		color 0.4s var(--ps-ease);
}

.ps-splash__reg {
	font-size: 0.18em;
	font-variation-settings: "wdth" 100, "wght" 700;
	font-stretch: 100%;
	font-weight: 700;
	line-height: 1;
	margin-left: 0.12em;
	margin-top: -0.15em;
	color: var(--wp--preset--color--contrast, #141414);
}

html[data-splash-phase="2"] .ps-splash__wordmark {
	opacity: 1;
	transform: scale(1) translateY(0);
}

/* Phase 3: Giant wordmark docks upward into the top navigation bar --------- */
html[data-splash-phase="3"] .ps-splash__wordmark {
	opacity: 1;
	font-variation-settings: "wdth" 105, "wght" 800;
	font-stretch: 105%;
	transform: translateY(-39vh) scale(0.15);
	text-shadow: none;
}

/* Phase 1 & 2: Greige Curtains (#CDC6B8) & Center Slit --------------------- */
.ps-splash__curtains {
	position: absolute;
	inset: 0;
	z-index: 5;
	pointer-events: none;
}

.ps-splash__curtain {
	position: absolute;
	left: 0;
	right: 0;
	height: 50.2%;
	background: var(--wp--preset--color--stone, #CDC6B8);
	transition: transform 0.92s var(--ps-curtain-ease);
	will-change: transform;
}

.ps-splash__curtain--top {
	top: 0;
	transform: translateY(0);
}

.ps-splash__curtain--bottom {
	bottom: 0;
	transform: translateY(0);
}

/* Vertical macro preview slit window (echoing SplashScreen.mp4 00:00) */
.ps-splash__slit-window {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: clamp(78px, 11vw, 148px);
	transform: translateX(-50%);
	background:
		linear-gradient(
			135deg,
			#D8D1C2 0%,
			#D8D1C2 28%,
			#E4572E 29%,
			#B83814 68%,
			#CDC6B8 69%,
			#CDC6B8 100%
		);
	box-shadow: inset 0 0 24px rgba(20, 20, 20, 0.18);
	opacity: 0.92;
	transition: width 0.88s var(--ps-curtain-ease), opacity 0.45s var(--ps-ease);
}

.ps-splash__seam {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 2px;
	transform: translateX(-50%);
	background: linear-gradient(180deg, #141414 0%, #E4572E 50%, #141414 100%);
}

/* Center horizontal slit (2px height, ~120px width in Phase 1 -> 100vw in Phase 2) */
.ps-splash__slit {
	position: absolute;
	top: 50%;
	left: 50%;
	height: 2px;
	width: 120px;
	transform: translate(-50%, -50%);
	background: var(--wp--preset--color--contrast, #141414);
	box-shadow: 0 0 12px rgba(228, 87, 46, 0.45);
	transition:
		width 0.65s var(--ps-curtain-ease),
		height 0.65s var(--ps-curtain-ease),
		opacity 0.4s var(--ps-ease) 0.45s;
}

@keyframes fsSlitHold {
	0% { width: 96px; opacity: 0.7; }
	100% { width: 136px; opacity: 1; }
}

html[data-splash-phase="1"] .ps-splash__slit {
	animation: fsSlitHold 0.75s var(--ps-ease) forwards;
}

/* Phase 2: Center slit expands to full width and curtains split vertically */
html[data-splash-phase="2"] .ps-splash__slit,
html[data-splash-phase="3"] .ps-splash__slit {
	width: 100vw;
	opacity: 0;
}

html[data-splash-phase="2"] .ps-splash__slit-window,
html[data-splash-phase="3"] .ps-splash__slit-window {
	width: 100vw;
	opacity: 0;
}

html[data-splash-phase="2"] .ps-splash__curtain--top,
html[data-splash-phase="3"] .ps-splash__curtain--top {
	transform: translateY(-102%);
}

html[data-splash-phase="2"] .ps-splash__curtain--bottom,
html[data-splash-phase="3"] .ps-splash__curtain--bottom {
	transform: translateY(102%);
}

/* Phase 3: Upward wipe transition into main cream background (#F8F7F3) ----- */
.ps-splash__wipe {
	position: absolute;
	inset: 0;
	border-radius: 0.5rem 0.5rem 0 0;
	background: var(--wp--preset--color--base, #F8F7F3);
	z-index: 2;
	transform: translateY(104%);
	transition: transform 0.76s var(--ps-curtain-ease);
	will-change: transform;
}

html[data-splash-phase="3"] .ps-splash__wipe {
	transform: translateY(0%);
}

/* Phase 4: Variable-Font Headline + Hero Showcase Reveal ------------------- */
@keyframes fsHeaderReveal {
	0% { opacity: 0; transform: translateY(-12px); }
	100% { opacity: 1; transform: translateY(0); }
}

@keyframes fsWideWordAxis {
	0% {
		font-variation-settings: "wdth" 62, "wght" 400;
		font-stretch: 62%;
		font-weight: 400;
		letter-spacing: 0.03em;
		opacity: 0.35;
		transform: translateY(14px);
	}
	100% {
		font-variation-settings: "wdth" 115, "wght" 800;
		font-stretch: 115%;
		font-weight: 800;
		letter-spacing: -0.02em;
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes fsHeroRise {
	0% {
		opacity: 0;
		transform: translateY(40px) scale(0.98);
	}
	100% {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

html.fs-splash-phase4 .ps-header {
	animation: fsHeaderReveal 0.65s var(--ps-ease) both;
}

html.fs-splash-phase4 .ps-hero__kicker {
	animation: fsHeroRise 0.7s var(--ps-ease) 0.05s both;
}

html.fs-splash-phase4 .ps-hero__headline .ps-hero__light {
	display: inline-block;
	animation: fsHeroRise 0.75s var(--ps-ease) 0.08s both;
}

html.fs-splash-phase4 .ps-hero__headline .ps-wide-word {
	display: inline-block;
	animation: fsWideWordAxis 1.25s var(--ps-curtain-ease) 0.12s both;
}

html.fs-splash-phase4 .ps-hero__visual {
	animation: fsHeroRise 1.05s var(--ps-ease) 0.32s both;
}

html.fs-splash-phase4 .ps-hero__bar {
	animation: fsHeroRise 0.9s var(--ps-ease) 0.52s both;
}

/* ==========================================================================
   HEADER NAVIGATION
   ========================================================================== */

.ps-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: color-mix(in srgb, var(--wp--preset--color--base) 90%, transparent);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent);
}

.ps-header__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-block: 0.95rem;
	padding-inline: var(--wp--style--root--padding-left) var(--wp--style--root--padding-right);
}

.ps-header__inner > * {
	margin-block: 0;
}

.ps-header__right {
	justify-self: end;
	gap: 0.75rem;
	align-items: center;
}

.ps-header__brand {
	margin: 0;
	font-variation-settings: "wdth" 105, "wght" 800;
}

.ps-header__brand a {
	text-decoration: none;
}

/* ==========================================================================
   SHARED EDITORIAL PILLS & BADGES
   ========================================================================== */

.ps-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.32rem 0.72rem;
	border-radius: 999px;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1.1;
	white-space: nowrap;
}

.ps-pill--live {
	background: var(--wp--preset--color--surface, #EDEAE3);
	color: var(--wp--preset--color--contrast, #141414);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
}

.ps-pill__dot {
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 999px;
	background: var(--wp--preset--color--accent, #E4572E);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--accent) 24%, transparent);
}

.ps-pill--outline {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
	color: var(--wp--preset--color--muted, #6F6A61);
}

.ps-pill--material {
	background: var(--wp--preset--color--base, #F8F7F3);
	color: var(--wp--preset--color--contrast, #141414);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
}

.ps-pill--lead {
	background: color-mix(in srgb, var(--wp--preset--color--accent) 14%, var(--wp--preset--color--base));
	color: var(--wp--preset--color--contrast, #141414);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--accent) 32%, transparent);
}

.ps-tag {
	display: inline-flex;
	align-items: center;
	padding: 0.38rem 0.8rem;
	border-radius: 999px;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.ps-tag--dark {
	background: var(--wp--preset--color--contrast, #141414);
	color: var(--wp--preset--color--base, #F8F7F3);
}

.ps-tag--glass {
	background: rgba(248, 247, 243, 0.78);
	backdrop-filter: blur(8px);
	color: var(--wp--preset--color--contrast, #141414);
	border: 1px solid rgba(20, 20, 20, 0.1);
}

/* ==========================================================================
   STAGE 2: HOME HERO & 3D SHOWCASE CARD (.ps-hero)
   ========================================================================== */

.ps-hero {
	padding-block: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
}

.ps-hero__kicker {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	margin-bottom: 0.85rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
}

.ps-hero__kicker-index {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.ps-hero__kicker-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

/* Variable-width display word (Archivo wdth axis) ------------------------- */
.ps-wide-word {
	font-variation-settings: "wdth" 115, "wght" 800;
	font-stretch: 115%;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: -0.02em;
}

.ps-hero__headline {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.25rem 1.25rem;
	margin-block: 0 var(--wp--preset--spacing--30);
	font-size: clamp(2.85rem, 7.6vw, 7.75rem);
	line-height: 0.92;
	letter-spacing: -0.025em;
}

.ps-hero__light {
	font-variation-settings: "wdth" 78, "wght" 400;
	font-weight: 400;
	font-stretch: 78%;
	text-transform: uppercase;
	letter-spacing: -0.01em;
}

/* Central 3D Hero Showcase Card ------------------------------------------- */
.ps-hero__visual {
	position: relative;
	min-height: clamp(24rem, 48vw, 35rem);
	border-radius: var(--ps-radius);
	background:
		radial-gradient(95% 85% at 55% 42%, rgba(248, 247, 243, 0.72) 0%, transparent 64%),
		linear-gradient(165deg, #DDD6C7 0%, #CDC6B8 58%, #C1B9A8 100%);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	box-shadow: 0 24px 60px -24px rgba(20, 20, 20, 0.18);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: clamp(1.1rem, 2.2vw, 1.85rem);
}

.ps-hero__hud-top,
.ps-hero__hud-bottom {
	position: relative;
	z-index: 3;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1.25rem;
}

.ps-hero__hud-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.ps-hero__scale-bar {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem;
	background: rgba(248, 247, 243, 0.84);
	backdrop-filter: blur(10px);
	padding: 0.32rem 0.65rem;
	border-radius: 999px;
	border: 1px solid rgba(20, 20, 20, 0.1);
	font-size: 0.72rem;
}

.ps-hero__scale-label {
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #6F6A61);
	margin-right: 0.2rem;
}

.ps-scale-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.18rem 0.5rem;
	border-radius: 999px;
	background: var(--wp--preset--color--surface, #EDEAE3);
	font-weight: 600;
	color: var(--wp--preset--color--contrast, #141414);
}

.ps-scale-chip small {
	font-size: 0.65rem;
	color: var(--wp--preset--color--muted, #6F6A61);
}

/* Floating 3D-Printed Products Stage inside Hero Card --------------------- */
.ps-hero__stage {
	position: relative;
	z-index: 2;
	flex: 1;
	min-height: 17rem;
	display: grid;
	place-items: center;
	margin-block: 0.5rem;
}

.ps-hero__grid-floor {
	position: absolute;
	inset: 8% 4%;
	background-image:
		linear-gradient(to right, rgba(20, 20, 20, 0.06) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(20, 20, 20, 0.06) 1px, transparent 1px);
	background-size: 32px 32px;
	mask-image: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.85) 20%, transparent 75%);
	-webkit-mask-image: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.85) 20%, transparent 75%);
	pointer-events: none;
}

@keyframes fsFloatSlow {
	0%, 100% { transform: translateY(0) rotate(0deg); }
	50% { transform: translateY(-7px) rotate(1.2deg); }
}

.ps-float-item {
	position: absolute;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.35rem;
	transition: transform 0.45s var(--ps-ease);
}

.ps-float-svg {
	width: 100%;
	height: auto;
	filter: drop-shadow(-10px 16px 20px rgba(20, 20, 20, 0.16));
}

.ps-float-caption {
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	background: rgba(248, 247, 243, 0.86);
	backdrop-filter: blur(6px);
	padding: 0.22rem 0.58rem;
	border-radius: 999px;
	border: 1px solid rgba(20, 20, 20, 0.1);
	color: var(--wp--preset--color--contrast, #141414);
	white-space: nowrap;
}

.ps-float-item--cutter {
	top: 2%;
	left: 5%;
	width: clamp(6.5rem, 10.5vw, 8.2rem);
	animation: fsFloatSlow 6.5s ease-in-out infinite;
}

.ps-float-item--keychain {
	top: 4%;
	right: 5%;
	width: clamp(8rem, 13vw, 10.8rem);
	animation: fsFloatSlow 7.2s ease-in-out 0.8s infinite;
}

.ps-float-item--stamp {
	bottom: 2%;
	left: 7%;
	width: clamp(6.5rem, 10vw, 8rem);
	animation: fsFloatSlow 6.8s ease-in-out 1.4s infinite;
}

.ps-float-item--ornament {
	bottom: 2%;
	right: 6%;
	width: clamp(7.2rem, 11.5vw, 9.2rem);
	animation: fsFloatSlow 7.5s ease-in-out 0.4s infinite;
}

/* Centerpiece 3D Roller Drum (matching SplashScreen.mp4 00:04-00:05) ------ */
.ps-float-item--centerpiece {
	position: relative;
	z-index: 2;
}

.ps-roller-showcase {
	display: flex;
	flex-direction: column;
	align-items: center;
	transform: translateY(4px);
}

.ps-roller-showcase__cap {
	width: clamp(6.2rem, 10vw, 8.2rem);
	height: clamp(2.3rem, 3.8vw, 3.1rem);
	border-radius: 0.65rem 0.65rem 0.2rem 0.2rem;
	background:
		repeating-linear-gradient(
			90deg,
			#F8F7F3 0px,
			#F8F7F3 3px,
			#DCD5C7 3px,
			#DCD5C7 6px
		);
	border: 2px solid #141414;
	box-shadow: 0 6px 16px rgba(20, 20, 20, 0.14);
	z-index: 2;
}

.ps-roller-showcase__drum {
	width: clamp(11.5rem, 20vw, 15.5rem);
	height: clamp(12.5rem, 22vw, 16.5rem);
	margin-top: -0.2rem;
	border-radius: 3rem 3rem 1.35rem 1.35rem;
	border: 2px solid #141414;
	background:
		repeating-linear-gradient(
			0deg,
			rgba(255, 255, 255, 0.11) 0px,
			rgba(255, 255, 255, 0.11) 1.5px,
			transparent 1.5px,
			transparent 4px
		),
		radial-gradient(120% 90% at 32% 24%, #F27B58 0%, #E4572E 52%, #B53816 100%);
	box-shadow:
		inset 12px 0 24px rgba(255, 255, 255, 0.28),
		inset -16px 0 28px rgba(20, 20, 20, 0.28),
		-22px 26px 40px rgba(20, 20, 20, 0.24);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
	text-align: center;
	color: #F8F7F3;
}

.ps-roller-showcase__emboss {
	font-family: var(--wp--preset--font-family--archivo, Archivo, sans-serif);
	font-variation-settings: "wdth" 68, "wght" 900;
	font-stretch: 68%;
	font-weight: 900;
	font-size: clamp(1.65rem, 2.8vw, 2.35rem);
	letter-spacing: 0.04em;
	line-height: 1;
	padding: 0.45rem 0.9rem;
	border-radius: 0.5rem;
	background: rgba(20, 20, 20, 0.22);
	border: 1px solid rgba(248, 247, 243, 0.36);
	box-shadow: inset 0 2px 6px rgba(255, 255, 255, 0.22);
}

.ps-roller-showcase__sub {
	margin-top: 0.65rem;
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	opacity: 0.92;
}

.ps-hero__hud-bottom {
	padding-top: 0.75rem;
	border-top: 1px solid rgba(20, 20, 20, 0.12);
}

.ps-hero__visual-label {
	margin: 0;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--contrast, #141414);
}

.ps-hero__spec-readout {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--contrast, #141414);
}

.ps-hero__spec-sep {
	opacity: 0.4;
}

/* Hero Bottom Bar & Pill CTA (#141414 fill + #E4572E arrow circle) -------- */
.ps-hero__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	margin-top: var(--wp--preset--spacing--40);
	gap: var(--wp--preset--spacing--40);
}

.ps-hero__bar > * {
	margin-block: 0;
}

.ps-hero__intro-block {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	max-width: 42ch;
}

.ps-hero__intro {
	margin: 0;
	font-size: 0.98rem;
	line-height: 1.5;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.ps-hero__trust-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.ps-trust-chip {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	padding: 0.26rem 0.65rem;
	border-radius: 999px;
	background: var(--wp--preset--color--surface, #EDEAE3);
	color: var(--wp--preset--color--contrast, #141414);
}

.ps-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
}

.ps-cta .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
	padding: 0.55rem 0.6rem 0.55rem 1.5rem;
	border-radius: 999px;
	background: var(--wp--preset--color--contrast, #141414);
	color: var(--wp--preset--color--base, #F8F7F3);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	transition: transform 0.3s var(--ps-ease), background-color 0.25s;
}

.ps-cta .wp-block-button__link:hover {
	transform: translateY(-2px);
	background: #242424;
}

.ps-cta__arrow-circle {
	flex-shrink: 0;
	width: 2.15rem;
	height: 2.15rem;
	border-radius: 999px;
	background: var(--wp--preset--color--accent, #E4572E);
	color: var(--wp--preset--color--base, #F8F7F3);
	display: inline-grid;
	place-items: center;
	transition: transform 0.3s var(--ps-ease);
}

.ps-cta .wp-block-button__link:hover .ps-cta__arrow-circle {
	transform: translateX(3px) rotate(-12deg);
}

.ps-hero__secondary-cta {
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 0.75rem 1.15rem;
	border-radius: 999px;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 20%, transparent);
	transition: background-color 0.2s, border-color 0.2s;
}

.ps-hero__secondary-cta:hover {
	background: var(--wp--preset--color--surface, #EDEAE3);
	border-color: var(--wp--preset--color--contrast, #141414);
}

/* ==========================================================================
   STAGE 2: SECTION HEADERS & BENTO PRODUCT LINE GRID (.ps-lines)
   ========================================================================== */

.ps-section-header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem 2rem;
	margin-bottom: var(--wp--preset--spacing--40);
	padding-bottom: 1.25rem;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
}

.ps-section-header:empty {
	padding-bottom: 0;
}

.ps-section-header__kicker {
	display: block;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent, #E4572E);
	margin-bottom: 0.45rem;
}

.ps-lines__title,
.ps-live-products__title {
	margin: 0;
	font-variation-settings: "wdth" 108, "wght" 800;
}

.ps-section-header__desc {
	max-width: 44ch;
	margin: 0;
	font-size: 0.92rem;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.ps-link-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.65rem 1.2rem;
	border-radius: 999px;
	background: var(--wp--preset--color--surface, #EDEAE3);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 14%, transparent);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.25s, color 0.25s, transform 0.25s;
}

.ps-link-pill:hover {
	background: var(--wp--preset--color--contrast, #141414);
	color: var(--wp--preset--color--base, #F8F7F3);
	transform: translateY(-2px);
}

/* 5-Card Tactile Bento Grid ----------------------------------------------- */
.ps-lines {
	padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--50);
}

.ps-lines__grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 1.25rem;
}

.ps-lines__grid > *,
.ps-product-grid > *,
.ps-workflow__inner > * {
	margin-block: 0 !important;
}

.ps-line-card {
	grid-column: span 2;
	position: relative;
	min-height: 19.5rem;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 1.5rem;
	border-radius: var(--ps-radius);
	background: var(--wp--preset--color--surface, #EDEAE3);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
	transition:
		transform 0.45s var(--ps-ease),
		background-color 0.35s var(--ps-ease),
		border-color 0.35s var(--ps-ease),
		box-shadow 0.45s var(--ps-ease);
}

/* First two cards span 3 columns each on desktop for a balanced 2 + 3 bento row */
.ps-lines__grid > .ps-line-card:nth-child(1),
.ps-lines__grid > .ps-line-card:nth-child(2) {
	grid-column: span 3;
}

.ps-line-card > * {
	margin-block: 0;
}

.ps-line-card:hover {
	transform: translateY(-6px);
	background: var(--wp--preset--color--stone, #CDC6B8);
	border-color: color-mix(in srgb, var(--wp--preset--color--contrast) 28%, transparent);
	box-shadow: 0 22px 44px -20px rgba(20, 20, 20, 0.16);
}

.ps-line-card__top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
}

.ps-line-card__index {
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.ps-line-card__pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.ps-line-card__diagram {
	margin-block: 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 5.5rem;
}

.ps-line-card__svg {
	width: 7.5rem;
	height: 5.25rem;
	color: var(--wp--preset--color--contrast, #141414);
	transition: transform 0.45s var(--ps-ease);
}

.ps-line-card:hover .ps-line-card__svg {
	transform: scale(1.08) translateY(-2px);
}

.ps-line-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}

.ps-line-card__spec {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.ps-line-card h3 {
	margin: 0;
	font-variation-settings: "wdth" 105, "wght" 800;
}

.ps-line-card h3 a {
	text-decoration: none;
	color: inherit;
}

.ps-line-card h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.ps-line-card p {
	margin: 0;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.ps-line-card__footer {
	margin-top: 1.15rem;
	padding-top: 0.9rem;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.ps-line-card__from {
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.03em;
}

.ps-line-card__arrow {
	width: 2.1rem;
	height: 2.1rem;
	border-radius: 999px;
	background: var(--wp--preset--color--base, #F8F7F3);
	color: var(--wp--preset--color--contrast, #141414);
	display: inline-grid;
	place-items: center;
	transition: background-color 0.3s var(--ps-ease), color 0.3s var(--ps-ease), transform 0.3s var(--ps-ease);
}

.ps-line-card:hover .ps-line-card__arrow {
	background: var(--wp--preset--color--accent, #E4572E);
	color: var(--wp--preset--color--base, #F8F7F3);
	transform: translate(2px, -2px);
}

/* ==========================================================================
   STAGE 2: LIVE WOOCOMMERCE PRODUCT CARDS (.ps-live-products)
   ========================================================================== */

.ps-live-products {
	padding-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
}

.ps-product-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 1.25rem;
}

.ps-product-card {
	grid-column: span 2;
	position: relative;
	display: flex;
	flex-direction: column;
	border-radius: var(--ps-radius);
	background: var(--wp--preset--color--white, #FFFFFF);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
	overflow: hidden;
	transition:
		transform 0.45s var(--ps-ease),
		box-shadow 0.45s var(--ps-ease),
		border-color 0.35s var(--ps-ease);
}

.ps-product-grid > .ps-product-card:nth-child(1),
.ps-product-grid > .ps-product-card:nth-child(2) {
	grid-column: span 3;
}

.ps-product-grid > .ps-product-card:nth-child(1) .ps-product-card__stage,
.ps-product-grid > .ps-product-card:nth-child(2) .ps-product-card__stage {
	aspect-ratio: 16 / 9;
}

.ps-product-card:hover {
	transform: translateY(-5px);
	border-color: color-mix(in srgb, var(--wp--preset--color--contrast) 26%, transparent);
	box-shadow: 0 20px 44px -20px rgba(20, 20, 20, 0.14);
}

.ps-product-card__stage {
	position: relative;
	aspect-ratio: 4 / 3;
	background:
		radial-gradient(circle at 50% 45%, rgba(248, 247, 243, 0.78) 0%, transparent 68%),
		linear-gradient(160deg, var(--wp--preset--color--surface, #EDEAE3) 0%, var(--wp--preset--color--stone, #CDC6B8) 100%);
	padding: 0.9rem;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent);
	overflow: hidden;
}

.ps-product-card--pepparkaksformar .ps-product-card__stage {
	background-color: #27295C;
	background-image: url('../images/DiamondsRedBlueWhite.svg');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	padding: 0;
}

.ps-product-card__pills {
	position: relative;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.ps-product-card__visual-link {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	text-decoration: none;
}

.ps-product-card__3d-preview {
	position: relative;
	width: 6.5rem;
	height: 6.5rem;
	display: grid;
	place-items: center;
	transition: transform 0.45s var(--ps-ease);
}

.ps-product-card:hover .ps-product-card__3d-preview {
	transform: scale(1.08) rotate(-3deg);
}

.ps-product-card--pepparkaksformar .ps-product-card__3d-preview,
.ps-product-card--pepparkaksformar:hover .ps-product-card__3d-preview {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	transform: none;
}

.ps-cutter-stream {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	pointer-events: none;
}

.ps-cutter-stream__canvas {
	display: block;
	width: 100%;
	height: 100%;
	filter: drop-shadow(0 10px 16px rgba(15, 16, 38, 0.46));
}

.ps-product-card__3d-badge {
	position: absolute;
	top: -0.35rem;
	right: -0.65rem;
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	padding: 0.18rem 0.45rem;
	border-radius: 999px;
	background: var(--wp--preset--color--contrast, #141414);
	color: var(--wp--preset--color--base, #F8F7F3);
	z-index: 2;
}

/* Tactile CSS 3D mini-models for each product category -------------------- */
.ps-mini-model {
	position: relative;
}

.ps-mini-model--keychain {
	width: 5.8rem;
	height: 3.1rem;
	border-radius: 999px;
	background: #141414;
	border: 2px solid #E4572E;
	box-shadow: -8px 12px 18px rgba(20, 20, 20, 0.2);
}

.ps-mini-model--keychain::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0.65rem;
	width: 0.85rem;
	height: 0.85rem;
	border-radius: 999px;
	background: #CDC6B8;
	transform: translateY(-50%);
}

.ps-mini-model--keychain::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 2rem;
	width: 2.8rem;
	height: 0.55rem;
	border-radius: 999px;
	background: #E4572E;
	transform: translateY(-50%);
}

.ps-mini-model--cutter {
	display: none !important;
	width: 4.8rem;
	height: 4.8rem;
	border-radius: 1.35rem;
	background: #F8F7F3;
	border: 3px solid #141414;
	outline: 2px dashed #E4572E;
	outline-offset: -8px;
	box-shadow: -8px 12px 18px rgba(20, 20, 20, 0.16);
}

.ps-mini-model--ornament {
	width: 4.8rem;
	height: 4.8rem;
	border-radius: 999px;
	border: 8px solid #141414;
	background: radial-gradient(circle, #E4572E 0%, #E4572E 38%, transparent 40%);
	box-shadow: -8px 12px 18px rgba(20, 20, 20, 0.16);
}

.ps-mini-model--stamp {
	width: 4.6rem;
	height: 1.5rem;
	border-radius: 0.35rem;
	background: #141414;
	border-bottom: 6px solid #E4572E;
	margin-top: 1.4rem;
	box-shadow: -8px 12px 18px rgba(20, 20, 20, 0.18);
}

.ps-mini-model--stamp::before {
	content: "";
	position: absolute;
	bottom: 100%;
	left: 50%;
	width: 1.6rem;
	height: 2rem;
	border-radius: 0.6rem 0.6rem 0.15rem 0.15rem;
	background: #141414;
	transform: translateX(-50%);
}

.ps-mini-model--roller {
	width: 3.8rem;
	height: 5.2rem;
	border-radius: 1rem;
	background: linear-gradient(135deg, #F27B58 0%, #E4572E 60%, #B53816 100%);
	border: 2px solid #141414;
	box-shadow: -8px 12px 18px rgba(20, 20, 20, 0.2);
}

.ps-product-card__stage-footer {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.ps-product-card__dims,
.ps-product-card__scale {
	background: rgba(248, 247, 243, 0.86);
	backdrop-filter: blur(6px);
	padding: 0.22rem 0.55rem;
	border-radius: 999px;
	color: var(--wp--preset--color--contrast, #141414);
}

.ps-product-card__content {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 1.25rem;
	gap: 0.65rem;
}

.ps-product-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.ps-product-card__title {
	margin: 0;
	font-size: 1.15rem;
	line-height: 1.2;
	font-variation-settings: "wdth" 104, "wght" 800;
}

.ps-product-card__title a {
	text-decoration: none;
	color: var(--wp--preset--color--contrast, #141414);
}

.ps-product-card__excerpt {
	margin: 0;
	font-size: 0.84rem;
	line-height: 1.45;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.ps-product-card__bottom {
	margin-top: auto;
	padding-top: 0.9rem;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
}

.ps-product-card__price {
	font-size: 0.95rem;
	font-weight: 800;
	color: var(--wp--preset--color--contrast, #141414);
}

.ps-product-card__price .woocommerce-price-suffix {
	display: block;
	font-size: 0.68rem;
	font-weight: 600;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.ps-product-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.5rem 0.95rem;
	border-radius: 999px;
	background: var(--wp--preset--color--contrast, #141414);
	color: var(--wp--preset--color--base, #F8F7F3);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.25s, transform 0.25s;
}

.ps-product-card__cta:hover {
	background: var(--wp--preset--color--accent, #E4572E);
	color: var(--wp--preset--color--base, #F8F7F3);
	transform: translateX(2px);
}

/* ==========================================================================
   STAGE 2: 3-STEP WORKFLOW STRIP (.ps-workflow)
   ========================================================================== */

.ps-workflow {
	padding-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--60);
}

.ps-workflow__inner {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	border-radius: var(--ps-radius);
	background: var(--wp--preset--color--surface, #EDEAE3);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
}

.ps-workflow__step {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.ps-workflow__num {
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--accent, #E4572E);
}

.ps-workflow__heading {
	margin: 0;
	font-size: 1.1rem;
	font-variation-settings: "wdth" 104, "wght" 800;
}

.ps-workflow__text {
	margin: 0;
	font-size: 0.86rem;
	color: var(--wp--preset--color--muted, #6F6A61);
}

/* ==========================================================================
   FOOTER & REPLAY BUTTON (.ps-footer)
   ========================================================================== */

.ps-footer a {
	color: inherit;
	text-decoration: none;
	transition: opacity 0.2s, color 0.2s;
}

.ps-footer a:hover {
	color: var(--wp--preset--color--accent, #E4572E);
}

.ps-footer__grid {
	display: grid;
	grid-template-columns: 1.5fr 1.15fr 1.15fr;
	gap: 2.25rem;
	padding-bottom: 1.75rem;
	max-width: var(--wp--style--global--wide-size, 1440px);
	margin-inline: auto;
	width: 100%;
}

.ps-footer__divider {
	border: 0;
	border-top: 1px solid rgba(248, 247, 243, 0.14);
	margin: 0 auto 1.25rem;
	max-width: var(--wp--style--global--wide-size, 1440px);
	width: 100%;
}

.ps-footer__col {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.ps-footer__brand {
	margin: 0;
	font-variation-settings: "wdth" 105, "wght" 800;
}

.ps-footer__tagline {
	margin: 0;
	max-width: 36ch;
	font-size: 0.86rem;
	line-height: 1.55;
	opacity: 0.78;
}

.ps-footer__company-meta {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	margin-top: 0.35rem;
	font-size: 0.75rem;
	letter-spacing: 0.03em;
	opacity: 0.62;
}

.ps-footer__heading {
	margin: 0;
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(248, 247, 243, 0.56);
}

.ps-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	font-size: 0.85rem;
	line-height: 1.45;
	color: rgba(248, 247, 243, 0.85);
}

.ps-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	padding-top: 0.75rem;
	max-width: var(--wp--style--global--wide-size, 1440px);
	margin-inline: auto;
	width: 100%;
}

.ps-footer__copy {
	margin: 0;
	opacity: 0.68;
}

.ps-footer__payments {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

.ps-pay-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 28px;
	border-radius: 4px;
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.28);
}

.ps-pay-badge svg {
	display: block;
	height: 100%;
	width: auto;
}

.ps-pay-badge--swish {
	background: #FFFFFF;
	padding: 4px 8px;
	box-sizing: border-box;
}

.ps-pay-badge--swish svg {
	height: 18px;
	width: auto;
}

.ps-footer__links-wrap {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
}

.ps-footer__replay {
	appearance: none;
	border: 1px solid rgba(248, 247, 243, 0.25);
	background: rgba(248, 247, 243, 0.08);
	color: var(--wp--preset--color--base, #F8F7F3);
	font: inherit;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0.4rem 0.85rem;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	cursor: pointer;
	transition: background-color 0.2s, border-color 0.2s;
}

.ps-footer__replay:hover {
	background: var(--wp--preset--color--accent, #E4572E);
	border-color: var(--wp--preset--color--accent, #E4572E);
}

@media (max-width: 960px) {
	.ps-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.ps-footer__grid {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   PAGE TRANSITION OVERLAY (PageTransition.mp4 — White Rising Sheet -> Fullscreen)
   ========================================================================== */

.ps-page-transition {
	position: fixed;
	inset: 0;
	width: 100vw;
	height: 100vh;
	z-index: 9500;
	pointer-events: none;
	overflow: hidden;
	visibility: hidden;
}

html.fs-page-leaving .ps-page-transition {
	visibility: visible;
}

.ps-page-transition__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(20, 20, 20, 0.44);
	opacity: 0;
	transition: opacity 0.34s var(--ps-ease);
}

/* Rising white/cream sheet that starts at 86vw × 78vh from bottom (00:03 in video)
   and smoothly expands to 100vw × 100vh fullscreen (00:04 in video) */
.ps-page-transition__sheet {
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 86vw;
	height: 78vh;
	background: var(--wp--preset--color--base, #F8F7F3);
	box-shadow: 0 -24px 60px rgba(20, 20, 20, 0.22);
	transform: translate3d(-50%, 104%, 0);
	transition:
		transform 0.36s var(--ps-curtain-ease),
		width 0.38s var(--ps-curtain-ease),
		height 0.38s var(--ps-curtain-ease);
	will-change: transform, width, height;
}

html.fs-page-leaving {
	pointer-events: none;
}

html.fs-page-leaving--rise .ps-page-transition__backdrop {
	opacity: 1;
}

html.fs-page-leaving--rise .ps-page-transition__sheet {
	transform: translate3d(-50%, 0%, 0);
}

html.fs-page-leaving--expand .ps-page-transition__sheet {
	width: 100vw;
	height: 100vh;
	box-shadow: none;
}

/* Incoming Destination Page Reveal (00:04 -> 00:05 in PageTransition.mp4) */
html.fs-page-entering .ps-main {
	opacity: 0;
	transform: translateY(22px);
}

html.fs-page-entering.fs-page-entering--active .ps-main {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 0.6s var(--ps-ease), transform 0.65s var(--ps-curtain-ease);
}

html.fs-page-entering .ps-pdp__display-title {
	opacity: 0;
	transform: translateY(28px);
}

html.fs-page-entering.fs-page-entering--active .ps-pdp__display-title {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 0.65s var(--ps-ease) 0.08s, transform 0.72s var(--ps-curtain-ease) 0.08s;
}

/* ==========================================================================
   STAGE 3: PRODUCT DETAIL PAGE (PDP), 360° TURNTABLE & SUPPORT TICKET BOX
   ========================================================================== */

.ps-pdp {
	padding-block: var(--wp--preset--spacing--30) var(--wp--preset--spacing--60);
}

.ps-pdp__container {
	max-width: var(--wp--style--global--wide-size, 1440px);
	margin-inline: auto;
	padding-inline: var(--wp--style--root--padding-left) var(--wp--style--root--padding-right);
}

.ps-pdp__header {
	margin-bottom: var(--wp--preset--spacing--40);
	padding-bottom: 1.5rem;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
}

.ps-pdp__topbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	margin-bottom: 1.5rem;
}

.ps-pdp__back {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 0.45rem 0.9rem;
	border-radius: 999px;
	background: var(--wp--preset--color--surface, #EDEAE3);
	transition: background-color 0.2s, color 0.2s;
}

.ps-pdp__back:hover {
	background: var(--wp--preset--color--contrast, #141414);
	color: var(--wp--preset--color--base, #F8F7F3);
}

.ps-pdp__eyebrow {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.ps-pdp__top-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.ps-pdp__display-title {
	margin: 0;
	text-align: center;
	font-family: var(--wp--preset--font-family--archivo, Archivo, sans-serif);
	font-variation-settings: "wdth" 82, "wght" 900;
	font-stretch: 82%;
	font-weight: 900;
	font-size: clamp(2.4rem, 5.6vw, 5.25rem);
	line-height: 0.95;
	letter-spacing: -0.02em;
	text-transform: uppercase;
}

/* Split-Screen 2-Column PDP Grid (60% Left Turntable / 40% Right Panel) --- */
.ps-pdp__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.38fr) minmax(0, 1fr);
	gap: 2rem;
	align-items: start;
}

.ps-pdp__grid > *,
.ps-pdp__summary-card,
.fs-ticket-box,
.fs-custom-text-group,
.fs-custom-text__list,
.fs-custom-text__item {
	min-width: 0;
}

.ps-pdp__gallery-col {
	position: sticky;
	top: 5.25rem;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

/* Interactive 360-Degree Turntable Photography Window (.fs-turntable) ----- */
.fs-turntable {
	position: relative;
	border-radius: var(--ps-radius);
	background: var(--wp--preset--color--surface, #EDEAE3);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 14%, transparent);
	box-shadow: 0 24px 56px -24px rgba(20, 20, 20, 0.16);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.fs-turntable__hud-top {
	position: relative;
	z-index: 12;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.65rem;
	padding: 0.95rem 1.25rem;
	background: rgba(248, 247, 243, 0.76);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
}

.fs-turntable__badge-group {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.fs-turntable__scale-group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.3rem;
}

.fs-turntable__scale-label {
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #6F6A61);
	margin-right: 0.2rem;
}

.fs-turntable__scale-btn {
	appearance: none;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 14%, transparent);
	background: var(--wp--preset--color--base, #F8F7F3);
	color: var(--wp--preset--color--contrast, #141414);
	font: inherit;
	font-size: 0.7rem;
	font-weight: 700;
	padding: 0.28rem 0.6rem;
	border-radius: 999px;
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

.fs-turntable__scale-btn[aria-pressed="true"] {
	background: var(--wp--preset--color--contrast, #141414);
	color: var(--wp--preset--color--base, #F8F7F3);
	border-color: var(--wp--preset--color--contrast, #141414);
}

.fs-turntable__viewport {
	position: relative;
	aspect-ratio: 16 / 11;
	width: 100%;
	overflow: hidden;
}

.fs-turntable__canvas {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	cursor: grab;
	touch-action: pan-y;
}

.fs-turntable__canvas.is-dragging {
	cursor: grabbing;
}

.fs-turntable__model-viewer {
	position: absolute;
	z-index: 2;
	left: 50%;
	top: 56%;
	width: 220px;
	height: 190px;
	transform: translate3d(-50%, -50%, 0);
	transform-origin: center center;
	will-change: transform;
	background: transparent;
	--poster-color: transparent;
	--progress-bar-color: transparent;
	--progress-bar-height: 0px;
	pointer-events: none;
	outline: none;
}

.fs-turntable__fg-canvas {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9;
	width: 100%;
	pointer-events: none;
	display: block;
}

.fs-turntable__drag-hint {
	position: absolute;
	z-index: 4;
	top: 0.7rem;
	left: 50%;
	transform: translateX(-50%);
	background: rgba(20, 20, 20, 0.78);
	color: #F8F7F3;
	padding: 0.24rem 0.64rem;
	border-radius: 999px;
	font-size: 0.525rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	pointer-events: none;
	white-space: nowrap;
}

.fs-turntable__mobile-360-icon {
	display: none;
	position: absolute;
	z-index: 4;
	top: 0.65rem;
	right: 0.75rem;
	width: 2.65rem;
	height: auto;
	pointer-events: none;
	opacity: 0.88;
}

.fs-turntable__mobile-360-icon svg {
	display: block;
	width: 100%;
	height: auto;
}

.fs-turntable__controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1.25rem;
	padding: 0.85rem 1.25rem;
	background: var(--wp--preset--color--base, #F8F7F3);
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
}

.fs-turntable__scrubber-wrap {
	flex: 1;
	min-width: 11rem;
	display: flex;
	align-items: center;
	gap: 0.65rem;
}

.fs-turntable__deg {
	min-width: 2.8rem;
	font-size: 0.82rem;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
}

.fs-turntable__scrubber {
	flex: 1;
	accent-color: var(--wp--preset--color--accent, #E4572E);
	cursor: pointer;
}

.fs-turntable__presets {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;
}

.fs-turntable__angle-btn,
.fs-turntable__auto-btn {
	appearance: none;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 16%, transparent);
	background: var(--wp--preset--color--surface, #EDEAE3);
	color: var(--wp--preset--color--contrast, #141414);
	font: inherit;
	font-size: 0.7rem;
	font-weight: 700;
	padding: 0.32rem 0.65rem;
	border-radius: 999px;
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s;
}

.fs-turntable__angle-btn.is-active,
.fs-turntable__auto-btn[aria-pressed="true"] {
	background: var(--wp--preset--color--accent, #E4572E);
	color: #F8F7F3;
	border-color: var(--wp--preset--color--accent, #E4572E);
}

/* Supporting Detail Cards under Turntable --------------------------------- */
.ps-pdp__detail-cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.ps-pdp__detail-card {
	padding: 1.25rem;
	border-radius: var(--ps-radius);
	background: var(--wp--preset--color--surface, #EDEAE3);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
}

.ps-pdp__detail-num {
	display: block;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--accent, #E4572E);
	margin-bottom: 0.35rem;
}

.ps-pdp__detail-card h3 {
	margin: 0 0 0.35rem;
	font-size: 1rem;
}

.ps-pdp__detail-card p {
	margin: 0;
	font-size: 0.82rem;
	color: var(--wp--preset--color--muted, #6F6A61);
}

/* Right Column: Purchase, Swatches & Support Ticket Box ------------------- */
.ps-pdp__summary-card {
	padding: clamp(1.35rem, 2.5vw, 2rem);
	border-radius: var(--ps-radius);
	background: var(--wp--preset--color--white, #FFFFFF);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	display: flex;
	flex-direction: column;
	gap: 1.35rem;
}

.ps-pdp__price-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
}

.ps-pdp__price {
	font-size: 1.65rem;
	font-weight: 900;
	line-height: 1.1;
}

.ps-pdp__price .woocommerce-price-suffix {
	display: inline-block;
	margin-left: 0.35rem;
	font-size: 0.78rem;
	font-weight: 600;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.ps-pdp__lead {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.55;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.ps-pdp__config-group {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}

.ps-pdp__label {
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ps-pdp__swatch-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.ps-pdp__pill-btn {
	appearance: none;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
	background: var(--wp--preset--color--base, #F8F7F3);
	color: var(--wp--preset--color--contrast, #141414);
	font: inherit;
	font-size: 0.76rem;
	font-weight: 700;
	padding: 0.48rem 0.9rem;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

.ps-pdp__pill-btn[aria-pressed="true"] {
	background: var(--wp--preset--color--contrast, #141414);
	color: var(--wp--preset--color--base, #F8F7F3);
	border-color: var(--wp--preset--color--contrast, #141414);
}

.ps-swatch-dot {
	width: 0.85rem;
	height: 0.85rem;
	border-radius: 999px;
	border: 1px solid rgba(20, 20, 20, 0.25);
}

.ps-pdp__pill-btn[aria-pressed="true"] .ps-swatch-dot {
	border-color: rgba(248, 247, 243, 0.55);
}

/* Support Ticket Box (.fs-ticket-box) ------------------------------------- */
.fs-ticket-box {
	padding: 1.25rem;
	border-radius: var(--ps-radius-sm);
	background: var(--wp--preset--color--surface, #EDEAE3);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 14%, transparent);
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
}

.fs-ticket-box__title {
	margin: 0 0 0.35rem;
	font-size: 1.05rem;
	line-height: 1.25;
}

.fs-ticket-box__desc {
	margin: 0;
	font-size: 0.8rem;
	line-height: 1.45;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.fs-custom-text-group {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.fs-custom-text__label-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
}

.fs-custom-text__label {
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--contrast, #141414);
}

.fs-custom-text__count-badge {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	white-space: nowrap;
	padding: 0.16rem 0.55rem;
	border-radius: 999px;
	background: var(--wp--preset--color--contrast, #141414);
	color: var(--wp--preset--color--base, #F8F7F3);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	font-variant-numeric: tabular-nums;
	transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.25s;
}

.fs-custom-text__hint {
	margin: 0 0 0.15rem;
	font-size: 0.75rem;
	line-height: 1.45;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.fs-custom-text__hint kbd {
	display: inline-block;
	padding: 0.08rem 0.38rem;
	margin: 0 0.08rem;
	border-radius: 0.28rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 22%, transparent);
	background: var(--wp--preset--color--base, #F8F7F3);
	color: var(--wp--preset--color--contrast, #141414);
	font: inherit;
	font-size: 0.68rem;
	font-weight: 800;
	box-shadow: 0 1px 0 rgba(20, 20, 20, 0.12);
}

.fs-custom-text__list {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.fs-custom-text__item {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.28rem 0.45rem 0.28rem 0.55rem;
	border-radius: 0.6rem;
	border: 1.5px solid color-mix(in srgb, var(--wp--preset--color--contrast) 20%, transparent);
	background: #FFFFFF;
	max-height: 3.5rem;
	opacity: 1;
	transform: translateY(0) scale(1);
	transition:
		border-color 0.22s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.22s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
		opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),
		max-height 0.22s cubic-bezier(0.4, 0, 0.2, 1),
		margin 0.22s cubic-bezier(0.4, 0, 0.2, 1),
		padding 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.fs-custom-text__item:focus-within {
	border-color: var(--wp--preset--color--accent, #E4572E);
	box-shadow: 0 4px 14px rgba(20, 20, 20, 0.06), 0 0 0 3px rgba(228, 87, 46, 0.14);
	transform: translateY(-1px);
}

.fs-custom-text__item.is-entering {
	animation: fsCustomFieldEnter 0.24s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.fs-custom-text__item.is-vanishing {
	opacity: 0;
	transform: translateY(-6px) scale(0.97);
	max-height: 0;
	margin-top: -0.45rem;
	padding-top: 0;
	padding-bottom: 0;
	border-width: 0;
	pointer-events: none;
	overflow: hidden;
}

.fs-custom-text__item.is-shake {
	animation: fsCustomFieldShake 0.26s ease-in-out;
}

.fs-custom-text__index {
	flex-shrink: 0;
	min-width: 1.75rem;
	height: 1.55rem;
	padding: 0 0.38rem;
	border-radius: 0.38rem;
	background: var(--wp--preset--color--surface, #EDEAE3);
	color: var(--wp--preset--color--muted, #6F6A61);
	font-size: 0.68rem;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.2s, color 0.2s;
}

.fs-custom-text__item:focus-within .fs-custom-text__index {
	background: var(--wp--preset--color--accent, #E4572E);
	color: #FFFFFF;
}

.fs-custom-text__input {
	flex: 1;
	min-width: 0;
	font: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	padding: 0.38rem 0.25rem;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--contrast, #141414);
}

.fs-custom-text__input:focus {
	outline: none;
}

.fs-custom-text__color-dot {
	appearance: none;
	flex-shrink: 0;
	width: 0.95rem;
	height: 0.95rem;
	padding: 0;
	margin: 0;
	border-radius: 999px;
	border: 1.5px solid rgba(20, 20, 20, 0.28);
	box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.35), 0 1px 2px rgba(20, 20, 20, 0.08);
	cursor: pointer;
	transition: transform 0.18s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.18s, border-color 0.18s;
}

.fs-custom-text__color-dot[hidden] {
	display: none !important;
}

.fs-custom-text__color-dot:hover {
	transform: scale(1.18);
	border-color: var(--wp--preset--color--contrast, #141414);
}

.fs-custom-text__color-dot.is-color-pop {
	animation: fsColorDotPop 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes fsColorDotPop {
	0% { transform: scale(0.75); }
	55% { transform: scale(1.22); }
	100% { transform: scale(1); }
}

.fs-custom-text__remove {
	appearance: none;
	flex-shrink: 0;
	width: 1.55rem;
	height: 1.55rem;
	border-radius: 999px;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--muted, #6F6A61);
	font-size: 1.05rem;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background-color 0.18s, color 0.18s;
}

.fs-custom-text__remove[hidden] {
	display: none !important;
}

.fs-custom-text__remove:hover {
	background: rgba(228, 87, 46, 0.12);
	color: var(--wp--preset--color--accent, #E4572E);
}

.fs-custom-text__add-btn {
	appearance: none;
	align-self: flex-start;
	margin-top: 0.15rem;
	padding: 0.42rem 0.85rem;
	border-radius: 999px;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 22%, transparent);
	background: var(--wp--preset--color--base, #F8F7F3);
	color: var(--wp--preset--color--contrast, #141414);
	font: inherit;
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	cursor: pointer;
	transition: background-color 0.2s, border-color 0.2s, color 0.2s, transform 0.2s;
}

.fs-custom-text__add-btn:hover {
	border-color: var(--wp--preset--color--accent, #E4572E);
	background: #FFFFFF;
	color: var(--wp--preset--color--accent, #E4572E);
}

.fs-custom-text__add-btn span {
	font-size: 0.95rem;
	line-height: 1;
	color: var(--wp--preset--color--accent, #E4572E);
}

.ps-pdp__qty.is-qty-updated,
.ps-pdp__qty-wrap:has(.ps-pdp__qty.is-qty-updated),
.fs-custom-text__count-badge.is-qty-updated {
	animation: fsQtyPulse 0.34s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes fsCustomFieldEnter {
	0% {
		opacity: 0;
		transform: translateY(-8px) scale(0.98);
	}
	100% {
		opacity: 1;
		transform: translateY(-1px) scale(1);
	}
}

@keyframes fsCustomFieldShake {
	0%, 100% { transform: translateX(0); }
	25% { transform: translateX(-4px); }
	50% { transform: translateX(4px); }
	75% { transform: translateX(-2px); }
}

@keyframes fsQtyPulse {
	0% {
		transform: scale(1);
	}
	45% {
		transform: scale(1.1);
		border-color: var(--wp--preset--color--accent, #E4572E);
	}
	100% {
		transform: scale(1);
	}
}

.fs-logo-optional-wrap {
	display: flex;
	align-items: center;
	padding-top: 0.15rem;
}

.fs-logo-toggle-btn {
	appearance: none;
	width: 100%;
	padding: 0.68rem 1rem;
	border-radius: 0.55rem;
	border: 1.5px dashed color-mix(in srgb, var(--wp--preset--color--contrast) 32%, transparent);
	background: var(--wp--preset--color--base, #F8F7F3);
	color: var(--wp--preset--color--contrast, #141414);
	font: inherit;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	cursor: pointer;
	transition: border-color 0.2s, background-color 0.2s, color 0.2s;
}

.fs-logo-toggle-btn:hover,
.fs-logo-toggle-btn.has-file {
	border-color: var(--wp--preset--color--accent, #E4572E);
	background: #FFFFFF;
}

.fs-logo-toggle-btn__icon {
	flex-shrink: 0;
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 999px;
	background: var(--wp--preset--color--surface, #EDEAE3);
	display: inline-grid;
	place-items: center;
	font-size: 0.82rem;
	font-weight: 800;
}

.fs-ticket-form {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.fs-ticket-form__contact-panel[hidden] {
	display: none !important;
}

.fs-ticket-form__contact-panel {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding-top: 0.75rem;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
}

.fs-ticket-form__selected-file {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
}

.fs-ticket-form__file-status {
	padding: 0.28rem 0.7rem;
	border-radius: 999px;
	background: var(--wp--preset--color--contrast, #141414);
	color: #F8F7F3;
	font-size: 0.72rem;
	font-weight: 700;
}

.fs-ticket-form__clear-file {
	appearance: none;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--accent, #E4572E);
	font: inherit;
	font-size: 0.74rem;
	font-weight: 700;
	text-decoration: underline;
	cursor: pointer;
	padding: 0.15rem 0.25rem;
}

.fs-ticket-form__contact-note {
	margin: 0;
	font-size: 0.76rem;
	line-height: 1.45;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.fs-ticket-form__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.65rem;
}

.fs-ticket-form__field {
	display: flex;
	flex-direction: column;
	gap: 0.28rem;
}

.fs-ticket-form__field label {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.fs-ticket-form__field input,
.fs-ticket-form__field textarea {
	font: inherit;
	font-size: 0.84rem;
	padding: 0.55rem 0.75rem;
	border-radius: 0.5rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 20%, transparent);
	background: #FFFFFF;
	color: var(--wp--preset--color--contrast, #141414);
}

.fs-ticket-form__submit {
	appearance: none;
	border: 0;
	padding: 0.7rem 1.15rem;
	border-radius: 999px;
	background: var(--wp--preset--color--accent, #E4572E);
	color: #FFFFFF;
	font: inherit;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	cursor: pointer;
	transition: background-color 0.2s, transform 0.2s;
}

.fs-ticket-form__submit:hover {
	background: #C9441D;
	transform: translateY(-1px);
}

.fs-ticket-form__feedback {
	padding: 0.75rem 0.9rem;
	border-radius: 0.5rem;
	font-size: 0.8rem;
	line-height: 1.4;
}

.fs-ticket-form__feedback.is-success {
	background: #E8F5E9;
	border: 1px solid #2E7D32;
	color: #1B5E20;
}

.fs-ticket-form__feedback.is-error {
	background: #FFEBEE;
	border: 1px solid #C62828;
	color: #B71C1C;
}

/* Add to Cart Form & Spec Table ------------------------------------------- */
.ps-pdp__cart-row {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.ps-pdp__qty-wrap {
	display: inline-flex;
	align-items: center;
	height: 3.25rem;
	border-radius: 999px;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 22%, transparent);
	background: var(--wp--preset--color--base, #F8F7F3);
	padding: 0.2rem;
	flex-shrink: 0;
	box-sizing: border-box;
	transition: border-color 0.25s, transform 0.25s;
}

.ps-pdp__qty-btn {
	appearance: none;
	border: 0;
	width: 2.35rem;
	height: 2.35rem;
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--contrast, #141414);
	font: inherit;
	font-size: 1.1rem;
	font-weight: 800;
	line-height: 1;
	display: inline-grid;
	place-items: center;
	cursor: pointer;
	flex-shrink: 0;
	transition: background-color 0.18s, color 0.18s;
}

.ps-pdp__qty-btn:hover {
	background: var(--wp--preset--color--surface, #EDEAE3);
}

.ps-pdp__qty-btn:active {
	background: var(--wp--preset--color--stone, #CDC6B8);
}

.ps-pdp__qty {
	width: 2.4rem;
	height: 100%;
	padding: 0;
	text-align: center;
	font: inherit;
	font-size: 0.95rem;
	font-weight: 800;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--contrast, #141414);
	-moz-appearance: textfield;
}

.ps-pdp__qty::-webkit-outer-spin-button,
.ps-pdp__qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.ps-pdp__qty:focus {
	outline: none;
}

.ps-pdp__add-btn {
	flex: 1;
	appearance: none;
	border: 0;
	min-height: 3.25rem;
	height: auto;
	padding: 0.45rem 0.55rem 0.45rem 1.35rem;
	gap: 0.65rem;
	border-radius: 999px;
	background: var(--wp--preset--color--contrast, #141414);
	color: var(--wp--preset--color--base, #F8F7F3);
	font: inherit;
	font-size: 0.8rem;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-align: left;
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	transition: background-color 0.25s, transform 0.25s;
}

.ps-pdp__add-btn:hover {
	background: #262626;
	transform: translateY(-2px);
}

.ps-pdp__specs {
	margin: 0;
	padding-top: 1rem;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
}

.ps-pdp__specs dt {
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.ps-pdp__specs dd {
	margin: 0.15rem 0 0;
	font-size: 0.86rem;
	font-weight: 700;
}

/* ==========================================================================
   RESPONSIVE BREAKPOINTS & MOBILE QOL
   ========================================================================== */

@media (max-width: 1024px) {
	.ps-pdp__grid {
		grid-template-columns: minmax(0, 1fr);
	}
	.ps-pdp__gallery-col {
		position: static;
	}
	.ps-lines__grid,
	.ps-product-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.ps-lines__grid > .ps-line-card,
	.ps-lines__grid > .ps-line-card:nth-child(1),
	.ps-lines__grid > .ps-line-card:nth-child(2),
	.ps-product-grid > .ps-product-card,
	.ps-product-grid > .ps-product-card:nth-child(1),
	.ps-product-grid > .ps-product-card:nth-child(2) {
		grid-column: span 1;
	}
	.ps-workflow__inner {
		grid-template-columns: 1fr;
	}
	.ps-float-item--cutter,
	.ps-float-item--stamp {
		display: none;
	}
}

@media (max-width: 768px) {
	/* Compact single-row mobile header with zero horizontal overflow */
	.ps-header__left {
		display: none !important;
	}
	.ps-header__inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 0.5rem;
		padding-block: 0.7rem;
		padding-inline: 1rem;
	}
	.ps-header__brand {
		font-size: clamp(0.95rem, 4.2vw, 1.15rem) !important;
		letter-spacing: 0.05em !important;
		flex-shrink: 0;
	}
	.ps-header__right {
		gap: 0.35rem !important;
		flex-shrink: 0;
		flex-wrap: nowrap !important;
	}
	.ps-header__right .wp-block-customer-account a,
	.ps-header__right .wc-block-mini-cart__button {
		min-width: 2.25rem;
		min-height: 2.25rem;
		padding: 0.25rem !important;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	/* Prevent iOS Safari auto-zoom on form field focus (requires >= 16px) */
	.fs-custom-text__input,
	.fs-ticket-form__field input,
	.fs-ticket-form__field textarea,
	.ps-pdp__qty,
	.woocommerce form .form-row input.input-text,
	.woocommerce form .form-row textarea,
	.woocommerce form .form-row select,
	.wc-block-components-text-input input,
	.wc-block-components-combobox input,
	.wc-block-components-select__select,
	.wc-block-components-quantity-selector__input,
	.wc-block-components-address-form__address_2-hidden-input {
		font-size: 1rem !important;
	}

	.wp-block-post-title {
		font-size: clamp(1.75rem, 7.5vw, 2.5rem) !important;
		line-height: 1.08 !important;
		overflow-wrap: break-word;
	}
}

@media (max-width: 720px) {
	/* First-visit Splash Screen mobile framing */
	.ps-splash__stage {
		inset: 0.65rem;
		padding: 0.9rem;
	}
	.ps-splash__panels {
		grid-template-columns: 1fr;
	}
	.ps-splash__panel--left {
		display: none;
	}
	.ps-splash__wordmark {
		font-size: clamp(2.85rem, 14.5vw, 4.4rem);
	}
	.ps-splash__meta {
		font-size: 0.64rem;
		letter-spacing: 0.08em;
		gap: 0.5rem;
	}
	.ps-splash__meta--bottom {
		flex-direction: column;
		align-items: stretch;
		gap: 0.55rem;
	}
	.ps-splash__skip {
		width: 100%;
		justify-content: center;
		white-space: nowrap;
		padding: 0.5rem 0.85rem;
		box-sizing: border-box;
	}

	/* Home Hero mobile sizing */
	.ps-hero {
		padding-block: 1rem 2rem;
	}
	.ps-hero__kicker {
		gap: 0.5rem;
	}
	.ps-hero__headline {
		font-size: clamp(1.85rem, 8.2vw, 2.55rem);
		line-height: 0.96;
		gap: 0.15rem 0.65rem;
	}
	.ps-hero__headline .ps-wide-word {
		font-variation-settings: "wdth" 106, "wght" 800;
		font-stretch: 106%;
	}
	.ps-hero__visual {
		min-height: 19rem;
		padding: 0.9rem;
	}
	.ps-hero__stage {
		min-height: 12.5rem;
	}
	.ps-hero__scale-bar {
		width: 100%;
		justify-content: flex-start;
		border-radius: 0.75rem;
		padding: 0.45rem 0.65rem;
		box-sizing: border-box;
	}
	.ps-float-item--keychain,
	.ps-float-item--ornament {
		display: none;
	}
	.ps-hero__bar {
		margin-top: 1.25rem;
		gap: 1.25rem;
	}
	.ps-hero__actions {
		width: 100%;
		flex-direction: column;
		align-items: stretch;
		gap: 0.65rem;
	}
	.ps-hero__actions .ps-cta,
	.ps-hero__actions .ps-cta .wp-block-button__link {
		width: 100%;
		justify-content: space-between;
		box-sizing: border-box;
	}
	.ps-hero__secondary-cta {
		text-align: center;
	}

	/* Grids & Product Cards on mobile */
	.ps-lines__grid,
	.ps-product-grid,
	.ps-pdp__detail-cards,
	.fs-ticket-form__row {
		grid-template-columns: 1fr;
	}
	.ps-product-grid > .ps-product-card:nth-child(1) .ps-product-card__stage,
	.ps-product-grid > .ps-product-card:nth-child(2) .ps-product-card__stage {
		aspect-ratio: 4 / 3;
	}

	/* PDP & 360 Turntable mobile refinements */
	.ps-pdp {
		padding-block: 1rem 2.5rem;
	}
	.ps-pdp__header {
		margin-bottom: 1.25rem;
		padding-bottom: 1rem;
	}
	.ps-pdp__topbar {
		gap: 0.5rem;
		margin-bottom: 1rem;
	}
	.ps-pdp__eyebrow {
		display: none;
	}
	.ps-pdp__display-title {
		font-size: clamp(1.55rem, 6.8vw, 2.25rem);
		line-height: 1.02;
		overflow-wrap: break-word;
	}
	.fs-turntable__hud-top {
		padding: 0.6rem 0.75rem;
		gap: 0.35rem;
		flex-wrap: nowrap;
	}
	.fs-turntable__hud-top .ps-tag {
		font-size: 0.58rem;
		padding: 0.26rem 0.52rem;
		white-space: nowrap;
		letter-spacing: 0.04em;
	}
	.fs-turntable__scale-group {
		flex-wrap: nowrap;
		gap: 0.25rem;
		flex-shrink: 0;
	}
	.fs-turntable__scale-label {
		font-size: 0.58rem;
		margin-right: 0.08rem;
		white-space: nowrap;
	}
	.fs-turntable__scale-btn {
		font-size: 0.62rem;
		padding: 0.24rem 0.5rem;
		white-space: nowrap;
	}
	.fs-turntable__viewport {
		aspect-ratio: 4 / 3;
	}
	.fs-turntable__controls,
	.fs-turntable__drag-hint {
		display: none !important;
	}
	.fs-turntable__mobile-360-icon {
		display: block;
		top: 0.55rem;
		right: 0.65rem;
		width: 2.35rem;
		transition: opacity 0.2s;
	}
	.fs-turntable[data-active-scale="card"] .fs-turntable__mobile-360-icon {
		opacity: 0;
		pointer-events: none;
	}

	/* PDP Summary Card, 2x2 Color Swatches, Add-Name & Cart Stepper */
	.ps-pdp__summary-card {
		padding: 1.15rem;
		gap: 1.15rem;
	}
	.ps-pdp__swatch-row {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.45rem;
	}
	.ps-pdp__swatch-row .ps-pdp__pill-btn {
		width: 100%;
		justify-content: flex-start;
		box-sizing: border-box;
	}
	.fs-ticket-box {
		padding: 1rem;
	}
	.fs-custom-text__add-btn {
		width: 100%;
		justify-content: center;
		padding: 0.55rem 0.85rem;
		box-sizing: border-box;
	}
	.ps-pdp__cart-row {
		gap: 0.55rem;
	}
	.ps-pdp__add-btn {
		font-size: 0.74rem;
		letter-spacing: 0.05em;
		padding: 0.45rem 0.45rem 0.45rem 1rem;
	}
}

/* ==========================================================================
   LEGAL PAGES: INTEGRITETSPOLICY & KÖPVILLKOR (.ps-legal)
   ========================================================================== */

.ps-main:has(.ps-legal) {
	--wp--style--global--content-size: 56rem;
}

.ps-legal {
	max-width: 56rem !important;
	margin-inline: auto;
	padding-bottom: var(--wp--preset--spacing--50);
	line-height: 1.65;
}

.ps-legal > * {
	max-width: 100% !important;
}

.ps-legal__summary {
	background: var(--wp--preset--color--surface, #EDEAE3);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 14%, transparent);
	border-left: 4px solid var(--wp--preset--color--accent, #E4572E);
	border-radius: var(--ps-radius-sm, 0.75rem);
	padding: 1.35rem 1.5rem;
	margin-bottom: 2.25rem;
}

.ps-legal__updated {
	margin: 0 0 0.75rem !important;
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #6F6A61);
}

.ps-legal__highlights {
	margin: 0 !important;
	padding-left: 1.2rem;
	display: grid;
	gap: 0.45rem;
	font-size: 0.94rem;
}

.ps-legal h2 {
	margin-top: 2.4rem !important;
	margin-bottom: 0.75rem !important;
	padding-bottom: 0.45rem;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	font-size: clamp(1.25rem, 2vw, 1.55rem);
	font-variation-settings: "wdth" 104, "wght" 800;
}

.ps-legal p,
.ps-legal ul {
	font-size: 0.96rem;
	color: var(--wp--preset--color--contrast, #141414);
}

.ps-legal ul {
	display: grid;
	gap: 0.5rem;
	padding-left: 1.25rem;
}

.ps-legal code {
	font-size: 0.84em;
	padding: 0.14rem 0.42rem;
	border-radius: 0.3rem;
	background: var(--wp--preset--color--surface, #EDEAE3);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	white-space: nowrap;
}

.ps-legal__table {
	margin-block: 1.25rem 1.75rem !important;
	overflow-x: auto;
	border-radius: var(--ps-radius-sm, 0.75rem);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 14%, transparent);
	background: var(--wp--preset--color--base, #F8F7F3);
}

.ps-legal__table table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.88rem;
	line-height: 1.5;
}

.ps-legal__table thead th {
	background: var(--wp--preset--color--surface, #EDEAE3);
	color: var(--wp--preset--color--contrast, #141414);
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	text-align: left;
	padding: 0.8rem 1rem;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 14%, transparent);
}

.ps-legal__table tbody td {
	padding: 0.85rem 1rem;
	vertical-align: top;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 9%, transparent);
}

.ps-legal__table tbody tr:last-child td {
	border-bottom: 0;
}

/* ==========================================================================
   ELEMENTOR FREE CONTAINER & WIDGET COMPATIBILITY
   ========================================================================== */

.elementor-page .ps-main .wp-block-post-content {
	margin: 0;
	padding: 0;
}

.elementor-widget-flowshape_hero_showcase .ps-hero,
.elementor-widget-flowshape_product_grid .ps-live-products,
.elementor-widget-flowshape_workflow .ps-workflow {
	padding-inline: var(--wp--style--root--padding-left, clamp(1.25rem, 4vw, 3.5rem)) var(--wp--style--root--padding-right, clamp(1.25rem, 4vw, 3.5rem));
}

.elementor-widget-flowshape_hero_showcase .alignwide,
.elementor-widget-flowshape_product_grid .alignwide,
.elementor-widget-flowshape_workflow .alignwide {
	max-width: var(--wp--style--global--wide-size, 1440px);
	margin-inline: auto;
}

.wp-block-woocommerce-mini-cart-title-items-counter-block,
.wp-block-woocommerce-empty-cart-block .wp-block-separator,
.wp-block-woocommerce-empty-cart-block .wc-block-grid,
.wp-block-woocommerce-empty-cart-block .wp-block-woocommerce-product-new,
.wp-block-woocommerce-empty-cart-block h2:not(.wc-block-cart__empty-cart__title) {
	display: none !important;
}

.wc-block-components-product-details > span,
.wc-block-components-product-details li {
	display: block !important;
}

.wc-block-components-product-details > span > span[aria-hidden="true"],
.wc-block-components-product-details li::after {
	display: none !important;
	content: none !important;
}

/* ==========================================================================
   REDUCED MOTION SUPPORT
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	html:not(.fs-splash-force):not(.fs-splash-locked) .ps-splash {
		display: none !important;
	}
	html:not(.fs-splash-force):not(.fs-splash-locked).fs-splash-active {
		overflow: auto !important;
	}
	html:not(.fs-splash-force):not(.fs-splash-locked) *,
	html:not(.fs-splash-force):not(.fs-splash-locked) *::before,
	html:not(.fs-splash-force):not(.fs-splash-locked) *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
