/**
 * Homepage hero section styles.
 */

.u3ds-hero {
	position: relative;
	overflow: hidden;
	background: linear-gradient(to bottom, var(--wp--preset--color--bg-primary) 88%, var(--wp--preset--color--bg-secondary) 100%);
	border-bottom: 1px solid var(--wp--preset--color--border);
	padding-top: var(--wp--preset--spacing--4-xl);
	padding-bottom: var(--wp--preset--spacing--4-xl);
}

.u3ds-hero__inner {
	position: relative;
	z-index: 1;
}

.u3ds-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
	align-items: center;
	gap: var(--wp--preset--spacing--3-xl);
	min-height: min(78vh, 760px);
	perspective: 1200px;
}

.u3ds-hero__content {
	max-width: 640px;
}

.u3ds-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: var(--wp--preset--spacing--xs);
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	margin: 0 0 var(--wp--preset--spacing--l);
}

.u3ds-hero__eyebrow::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background-color: var(--wp--preset--color--accent);
	flex-shrink: 0;
}

.u3ds-hero__headline {
	margin: 0 0 var(--wp--preset--spacing--l);
	font-size: clamp(2.25rem, 1.1rem + 3.6vw, 4.5rem);
	line-height: 1.05;
}

.u3ds-hero__headline-line {
	display: block;
	white-space: nowrap;
}

.u3ds-hero__headline-accent {
	color: var(--wp--preset--color--accent-highlight);
}

.u3ds-hero__subcopy {
	max-width: 46ch;
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.6;
	margin: 0 0 var(--wp--preset--spacing--xl);
}

.u3ds-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--m);
}

.u3ds-hero__cta-primary .wp-block-button__link {
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--text-primary);
	border-radius: var(--wp--custom--radius--button);
	text-transform: uppercase;
	font-weight: 700;
	font-size: var(--wp--preset--font-size--small);
	padding: var(--wp--preset--spacing--s) var(--wp--preset--spacing--xl);
	transition: background-color 200ms ease, transform 200ms ease;
}

.u3ds-hero__cta-primary .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--accent-highlight);
}

.u3ds-hero__cta-primary .wp-block-button__link:active {
	transform: scale(0.98);
}

.u3ds-hero__cta-secondary .wp-block-button__link {
	background-color: transparent;
	color: var(--wp--preset--color--text-primary);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--button);
	text-transform: uppercase;
	font-weight: 700;
	font-size: var(--wp--preset--font-size--small);
	padding: var(--wp--preset--spacing--s) var(--wp--preset--spacing--xl);
	transition: border-color 200ms ease, background-color 200ms ease;
}

.u3ds-hero__cta-secondary .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--accent);
	background-color: var(--wp--preset--color--surface-elevated);
}

/* Hero visual: a rim-lit "product stage" panel framing the approved
   layered/mesh 3D-print-form artwork (assets/images/hero-product.webp) —
   an abstract representation of an object being built layer-by-layer,
   not a specific client product. The panel, rim light and pedestal line
   below are unrelated to the image itself and stay fixed regardless of
   which asset is placed inside. */
.u3ds-hero__visual {
	position: relative;
	max-width: 480px;
	margin-inline: auto;
	/* Set via pointermove by homepage-interactions.js (desktop, pointer:fine
	   only) — a restrained 3D tilt on the whole visual "plane", layered
	   independently from the stage's own translateY drift below. */
	transform: rotateX(var(--u3ds-tilt-x, 0deg)) rotateY(var(--u3ds-tilt-y, 0deg));
	transition: transform 500ms ease;
}

.u3ds-hero__stage {
	position: relative;
	aspect-ratio: 4 / 5;
	border-radius: var(--wp--custom--radius--surface);
	border: 1px solid transparent;
	background:
		linear-gradient(155deg, var(--wp--preset--color--bg-secondary), var(--wp--preset--color--surface-elevated)) padding-box,
		linear-gradient(155deg, color-mix(in srgb, var(--wp--preset--color--accent) 55%, transparent), var(--wp--preset--color--border) 65%) border-box;
	box-shadow: var(--wp--custom--shadow--lg);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	animation: u3ds-hero-drift 7s ease-in-out infinite;
}

.u3ds-hero__stage::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 70% 50% at 50% 0%, color-mix(in srgb, var(--wp--preset--color--accent) 16%, transparent), transparent 65%);
	pointer-events: none;
}

.u3ds-hero__stage::after {
	content: "";
	position: absolute;
	left: 14%;
	right: 14%;
	bottom: 16%;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--wp--preset--color--border), transparent);
}

.u3ds-hero__stage-image {
	position: relative;
	z-index: 1;
	width: 50%;
	height: auto;
	filter: drop-shadow(0 18px 30px rgba(0, 0, 0, 0.55));
}

@keyframes u3ds-hero-drift {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-10px); }
}

.u3ds-hero__scroll-cue {
	position: absolute;
	left: 50%;
	bottom: var(--wp--preset--spacing--l);
	transform: translateX(-50%);
	width: 1px;
	height: 40px;
	background-color: var(--wp--preset--color--border);
	overflow: hidden;
}

.u3ds-hero__scroll-cue-line {
	display: block;
	width: 100%;
	height: 14px;
	background-color: var(--wp--preset--color--accent);
	animation: u3ds-hero-scroll 2.2s ease-in-out infinite;
}

@keyframes u3ds-hero-scroll {
	0% { transform: translateY(-100%); }
	100% { transform: translateY(140px); }
}

@media (max-width: 781px) {
	.u3ds-hero {
		padding-top: var(--wp--preset--spacing--3-xl);
		padding-bottom: var(--wp--preset--spacing--3-xl);
	}

	.u3ds-hero__grid {
		grid-template-columns: 1fr;
		min-height: 0;
		gap: var(--wp--preset--spacing--2-xl);
	}

	.u3ds-hero__content {
		max-width: none;
		text-align: center;
	}

	.u3ds-hero__eyebrow {
		justify-content: center;
	}

	.u3ds-hero__subcopy {
		margin-inline: auto;
	}

	.u3ds-hero__actions {
		justify-content: center;
	}

	.u3ds-hero__visual {
		max-width: 300px;
	}

	.u3ds-hero__scroll-cue {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.u3ds-hero__stage,
	.u3ds-hero__scroll-cue-line {
		animation: none;
	}

	.u3ds-hero__visual {
		transition: none;
	}
}
