/*
 * PCL Hero — 2-column grid, aurora, shards, gem, scroll cue, ridge
 */
.pcl-hero {
	min-height: 100svh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	color: var(--pcl-text-inv);
	position: relative;
	overflow: hidden;
	background: var(--pcl-purple-deep);
	padding-top: 84px;
}

/* Neutralize WordPress is-layout root padding so hero content aligns to the shared gutter */
.pcl-hero.is-layout-flow,
.pcl-hero.is-layout-constrained {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* Aurora */
.pcl-aurora {
	position: absolute;
	inset: -20%;
	pointer-events: none;
	filter: blur(70px);
	opacity: .45;
}

.pcl-aurora::before,
.pcl-aurora::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
}

.pcl-aurora::before {
	background: radial-gradient(38% 42% at 28% 32%, var(--pcl-purple) 0%, transparent 68%),
		radial-gradient(30% 34% at 72% 24%, var(--pcl-lilac) 0%, transparent 70%);
}

.pcl-aurora::after {
	background: radial-gradient(34% 40% at 74% 72%, var(--pcl-teal-mid) 0%, var(--pcl-teal-light) 68%),
		radial-gradient(26% 30% at 22% 80%, rgba(140,235,239,.75) 0%, transparent 72%);
}

/* Grain */
.pcl-hero-grain {
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: .35;
	background-image: radial-gradient(rgba(255,255,255,.06) .6px, transparent .7px);
	background-size: 4px 4px;
}

/* Shards */
.pcl-shards {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.pcl-shard {
	position: absolute;
	background: linear-gradient(135deg, rgba(140,235,239,.35), rgba(150,113,189,.22));
	clip-path: polygon(50% 0, 100% 74%, 12% 100%);
	width: 26px;
	height: 26px;
	opacity: .55;
}

/* Hero grid — 2-column layout */
.pcl-hero-grid {
	display: grid;
	grid-template-columns: 1.12fr .88fr;
	gap: 50px;
	align-items: center;
	max-width: var(--pcl-maxw);
	margin: 0 auto;
	padding: 40px var(--pcl-gutter) 80px;
	position: relative;
	z-index: 2;
	width: 100%;
}

/* Gutenberg layout wrapper overrides */
.pcl-hero-grid.is-layout-flow,
.pcl-hero-grid.is-layout-constrained {
	display: grid;
	max-width: var(--pcl-maxw);
	margin-left: auto;
	margin-right: auto;
}

.pcl-hero-grid > .wp-block-group {
	display: flex;
	flex-direction: column;
	max-width: none;
	width: auto;
	margin: 0;
}

/* Gem — right column of the desktop 2-column hero; collapses above the text on tablet/mobile */
.pcl-hero-gem {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: relative;
	overflow: visible;
	margin: 0 auto;
	max-width: none;
	width: 100%;
	padding: 8px 0 14px;
}

.pcl-gem-wrap {
	position: relative;
	width: min(480px, 100%);
	aspect-ratio: 1/1;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.pcl-gem-wrap canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: none;
}

.pcl-hero-gem.webgl-on .pcl-gem-wrap canvas {
	display: block;
}

.pcl-hero-gem.webgl-on .pcl-gem-fallback {
	display: none;
}

.pcl-hero-gem.webgl-on .pcl-gem-halo {
	opacity: 1;
}

.pcl-gem-halo {
	position: absolute;
	inset: 8%;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(140,235,239,.22), transparent 70%);
	pointer-events: none;
}

.pcl-gem-fallback {
	width: min(400px, 78%);
	color: rgba(255,255,255,.95);
	filter: drop-shadow(0 24px 60px rgba(26,14,41,.5));
}

/* Hero text */
.pcl-hero .eyebrow { color: var(--pcl-mint); }
.pcl-hero .eyebrow::before { background: linear-gradient(90deg, #fff, var(--pcl-mint)); }

.pcl-hero h1,
.pcl-hero h1.wp-block-heading,
.pcl-hero h1.has-text-color,
.pcl-hero .wp-block-heading {
	font-size: clamp(2.8rem, 6.5vw, 5rem);
	line-height: 1.2;
	letter-spacing: .05em;
	color: var(--pcl-text-inv);
	position: relative;
	z.index: 3;
	display: block;
	text-align: center !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	margin-bottom: 20px !important;
}
.pcl-hero h1 .pcl-brand-grad {
	display: inline-block;
	white-space: nowrap;
}

/* Hero content container - consistent with base.css */
.pcl-hero-grid {
	max-width: var(--pcl-maxw);
	margin: 0 auto;
	width: 100%;
	padding-left: var(--pcl-gutter);
	padding-right: var(--pcl-gutter);
	box-sizing: border-box;
}

/* Section content alignment - left-aligned for readability */
.pcl-section,
.pcl-band-navy {
	max-width: var(--pcl-maxw);
	margin: 0 auto;
	padding-left: var(--pcl-gutter);
	padding-right: var(--pcl-gutter);
	width: 100%;
	box-sizing: border-box;
}

/* Section headings and text - left-aligned for readability */
.pcl-section h2,
.pcl-section h3,
.pcl-band-navy h2,
.pcl-band-navy h3,
.pcl-section p,
.pcl-band-navy p {
	text-align: left;
	margin-left: 0;
	margin-right: 0;
}

/* Footer content alignment */
.footer-widgets,
.site-footer .widget-area {
	max-width: var(--pcl-maxw);
	margin: 0 auto;
	padding-left: var(--pcl-gutter);
	padding-right: var(--pcl-gutter);
	width: 100%;
	box-sizing: border-box;
}

/* Footer text - left-aligned for readability */
.footer-widgets .widget-title,
.site-footer p,
.site-footer .widget-area * {
	text-align: left;
}

/* Align eyebrow content with section content area */
.pcl-eyebrow {
	max-width: var(--pcl-maxw);
	margin: 0 auto;
	padding-left: clamp(20px, 5vw, 48px);
	padding-right: clamp(20px, 5vw, 48px);
}

/* Hero grid — true two columns on desktop: text left, gem right */
.pcl-hero-grid > .wp-block-group:nth-child(1) {
	grid-column: 1;
	grid-row: 1;
}
.pcl-hero-grid > .pcl-hero-gem {
	grid-column: 2;
	grid-row: 1;
	order: 0;
}
.pcl-hero-grid > .wp-block-group:nth-child(1) > .wp-block-heading {
	width: 100%;
}

.pcl-hero .pcl-sub,
.pcl-hero p.has-text-color {
	font-weight: 300;
	line-height: 1.7;
	color: #ffffffd9;
	max-width: 52ch;
	font-size: 1.14rem;
}

.pcl-hero-ctas {
	display: flex;
	gap: 16px;
	margin-top: 44px;
	flex-wrap: wrap;
}

.pcl-hero-meta {
	display: flex;
	gap: 46px;
	margin-top: 64px;
	flex-wrap: wrap;
	justify-content: space-evenly;
	width: 100%;
}

.pcl-hero-meta.is-content-justification-left {
	gap: 46px;
	justify-content: space-evenly !important;
}

.pcl-hero-meta div,
.pcl-hero-meta p {
	border-left: 1px solid rgba(255,255,255,.28);
	padding-left: 18px;
	margin: 0;
}

.pcl-hero-meta strong {
	display: block;
	font-family: var(--pcl-display);
	font-size: 1.6rem;
	letter-spacing: .02em;
	color: #fff;
}

.pcl-hero-meta span {
	font-size: .75rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: rgba(255,255,255,.7);
}

/* Tablet — three stats fit on one row, centered */
@media (max-width: 980px) and (min-width: 641px) {
	.pcl-hero-meta.is-content-justification-left {
		gap: 20px;
		justify-content: center;
	}
	.pcl-hero-meta div,
	.pcl-hero-meta p {
		flex: 0 1 auto;
		min-width: 0;
	}
}

/* Scroll cue */
.pcl-scroll-cue {
	position: absolute;
	bottom: 26px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	color: rgba(255,255,255,.55);
	font-size: .66rem;
	letter-spacing: .3em;
	text-transform: uppercase;
}

.pcl-scroll-cue span {
	display: block;
	width: 1px;
	height: 44px;
	background: linear-gradient(var(--pcl-cyan), transparent);
}

/* Ridge */
.pcl-hero-ridge {
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 100%;
	z-index: 2;
	display: block;
}

.pcl-hero-ridge path:last-child {
	stroke: var(--pcl-cyan);
	stroke-width: 1.2;
	opacity: .7;
}

/* Word animation */
@media (prefers-reduced-motion: no-preference) {
	.pcl-hero h1 .w {
		display: inline-block;
		opacity: 0;
		transform: translateY(38px) rotate(2deg);
		animation: pcl-wordUp .9s cubic-bezier(.16,1,.3,1) forwards;
	}
	@keyframes pcl-wordUp { to { opacity: 1; transform: none; } }

	.pcl-shard {
		animation: pcl-drift var(--pcl-dur, 16s) ease-in-out infinite alternate;
	}
	@keyframes pcl-drift {
		from { transform: translate(0,0) rotate(0); }
		to { transform: translate(var(--pcl-dx, 30px), var(--pcl-dy, -46px)) rotate(var(--pcl-rot, 18deg)); }
	}

	.pcl-aurora { animation: pcl-aur1 22s ease-in-out infinite alternate; }
	.pcl-aurora::after { animation: pcl-aur2 26s ease-in-out infinite alternate; }
	@keyframes pcl-aur1 { from { transform: translate(-6%,-4%) scale(1); } to { transform: translate(7%,6%) scale(1.15); } }
	@keyframes pcl-aur2 { from { transform: translate(5%,3%) scale(1.1); } to { transform: translate(-8%,-6%) scale(.95); } }

	.pcl-scroll-cue span { animation: pcl-cue 1.8s ease-in-out infinite; }
	@keyframes pcl-cue {
		0% { transform: scaleY(0); transform-origin: top; }
		45% { transform: scaleY(1); transform-origin: top; }
		55% { transform: scaleY(1); transform-origin: bottom; }
		100% { transform: scaleY(0); transform-origin: bottom; }
	}

	.pcl-brand-grad { animation: pcl-sheen 7s ease-in-out infinite; }
	@keyframes pcl-sheen { 0%,100% { background-position: 0% 0; } 50% { background-position: 100% 0; } }
}

@media (prefers-reduced-motion: reduce) {
	.pcl-hero h1 .w { opacity: 1; }
}
