/* Home V2 — dark tech / aurora glass system (ported from the KBIT design system). */

/* ===== Home social section (Facebook + LinkedIn) ===== */
.amlab-social-section { background: #fff; padding: 5.5rem 0; }
.amlab-social__head { max-width: 42rem; margin: 0 0 2.5rem; }
.amlab-social__eyebrow { margin: 0 0 .75rem; font-size: 11px; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; color: #C5A15A; }
.amlab-social__title { margin: 0; font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.25rem); font-weight: 800; letter-spacing: -.02em; color: #202940; }
.amlab-social__grid { display: grid; gap: 1.5rem; align-items: stretch; }
@media (min-width: 1024px) { .amlab-social__grid { grid-template-columns: 1.3fr 1fr; } }
.amlab-social__ic { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: 999px; }
.amlab-social__ic--fb { width: 2.25rem; height: 2.25rem; background: rgba(24, 119, 242, .1); color: #1877F2; }
.amlab-social__ic--li { width: 1.75rem; height: 1.75rem; background: rgba(10, 102, 194, .12); color: #0A66C2; }
.amlab-social__ic--li svg { width: 15px; height: 15px; }
.amlab-social__fb { display: flex; flex-direction: column; overflow: hidden; border-radius: 14px; border: 1px solid #E6EAF0; background: #F4F1EA; box-shadow: 0 10px 30px rgba(20, 26, 44, .06); }
.amlab-social__fbhead { display: flex; align-items: center; gap: .75rem; border-bottom: 1px solid #E6EAF0; background: #fff; padding: 1rem; }
.amlab-social__m { min-width: 0; }
.amlab-social__nm { margin: 0; font-size: 14px; font-weight: 700; color: #202940; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.amlab-social__sub { margin: 0; font-size: 12px; color: rgba(21, 27, 47, .6); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.amlab-social__fbembed { flex: 1 1 auto; min-height: 0; width: 100%; padding: 1rem; background: #fff; overflow: hidden; }
/* iframe fills the card so its height matches the LinkedIn card (equal-height row). */
.amlab-social__fbiframe { display: block; width: 100%; max-width: 500px; height: 100%; min-height: 300px; border: none; margin: 0 auto; }
.amlab-social__fbfoot { border-top: 1px solid #E6EAF0; background: #fff; padding: .75rem; text-align: center; }
.amlab-social__fbfoot a { display: inline-flex; align-items: center; gap: .375rem; font-size: 12px; font-weight: 700; color: #4F78A5; text-decoration: none; transition: color .15s ease; }
.amlab-social__fbfoot a:hover { color: #202940; }

/* LinkedIn company-page preview (white replica — LinkedIn has no public embed). */
.amlab-social__li { display: flex; flex-direction: column; overflow: hidden; border-radius: 14px; border: 1px solid #E6EAF0; background: #fff; box-shadow: 0 10px 30px rgba(20, 26, 44, .06); }
.amlab-social__litop { display: flex; align-items: center; gap: .625rem; padding: .75rem 1rem; border-bottom: 1px solid #EDF0F4; }
.amlab-social__liurl { font-size: 12.5px; color: #6b7488; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.amlab-social__licover { display: block; height: 92px; background: linear-gradient(120deg, #cfc4ad 0%, #b3a98f 100%); }
.amlab-social__libody { position: relative; padding: 0 1.5rem 1.5rem; }
.amlab-social__lilogo { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 68px; height: 68px; margin-top: -34px; margin-bottom: .75rem; border-radius: 10px; background: #fff; border: 1px solid #E6EAF0; box-shadow: 0 4px 10px rgba(20, 26, 44, .08); font-size: 14px; font-weight: 800; letter-spacing: .12em; color: #202940; }
.amlab-social__liname { margin: 0 0 .5rem; font-size: 1.35rem; font-weight: 800; color: #202940; }
.amlab-social__litagline { margin: 0 0 .625rem; font-size: .95rem; line-height: 1.55; color: #374151; }
.amlab-social__limeta { margin: 0 0 1rem; font-size: .85rem; color: #8792a3; }
.amlab-social__litabs { display: flex; flex-wrap: wrap; gap: 1.25rem; padding: .875rem 0 1.125rem; border-top: 1px solid #EDF0F4; font-size: .875rem; color: #4b5563; }
.amlab-social__lifollow { display: inline-flex; align-items: center; gap: .5rem; align-self: flex-start; background: #0A66C2; color: #fff; font-size: .95rem; font-weight: 700; padding: .625rem 1.25rem; border-radius: 999px; text-decoration: none; transition: background .15s ease; }
.amlab-social__lifollow:hover { background: #084e96; }
.amlab-social__lifollow svg { width: 18px; height: 18px; }

/* ===== Home brand intro (full-screen KBIT wordmark) ===== */
.amlab-brand-intro {
	position: relative;
	min-height: calc(100dvh - 72px);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 1.5rem;
	/* Layered navy/gold aurora field for the full-screen brand intro. */
	background-color: #0c1220;
	background-image:
		linear-gradient(rgba(255, 255, 255, .022) 1px, transparent 0),
		linear-gradient(90deg, rgba(255, 255, 255, .022) 1px, transparent 0),
		radial-gradient(ellipse 80% 55% at 50% -10%, rgba(79, 120, 165, .28) 0, transparent 65%),
		radial-gradient(ellipse 34% 28% at 58% 64%, rgba(233, 220, 195, .07) 0, transparent 60%),
		radial-gradient(ellipse 40% 35% at 88% 45%, rgba(197, 161, 90, .09) 0, transparent 50%),
		radial-gradient(ellipse 50% 40% at 12% 90%, rgba(21, 28, 44, .55) 0, transparent 50%),
		linear-gradient(165deg, rgba(12, 18, 32, 1), rgba(21, 28, 44, 1) 55%, rgba(15, 24, 40, 1));
	background-size: 44px 44px, 44px 44px, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%;
}
/* Bridge the aurora glow from the brand-intro's bottom into the hero's top glow so the
 * two stack as one continuous field (no hard band at the join). */
.amlab-brand-intro::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 55vh;
	background: radial-gradient(ellipse 85% 110% at 50% 135%, rgba(79, 120, 165, 0.22) 0%, rgba(79, 120, 165, 0.06) 45%, transparent 72%);
	pointer-events: none;
	z-index: 0;
}
.amlab-brand-intro__inner {
	position: relative;
	z-index: 1;
}
.amlab-brand-intro__inner {
	max-width: 56rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	animation: amlab-bi-reveal 1s ease both;
}
@keyframes amlab-bi-reveal {
	from { opacity: 0; transform: translateY(16px); }
	to { opacity: 1; transform: none; }
}
.amlab-brand-intro__mark {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	margin: 0;
	font-family: var(--font-inter), Inter, system-ui, sans-serif;
	font-size: clamp(4.5rem, 2.5rem + 8.3vw, 10rem);
	line-height: 1;
}
.amlab-brand-intro__word {
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.22em;
	color: #fff;
	margin-right: -0.22em;
}
.amlab-brand-intro__tagline {
	align-self: stretch;
	margin-top: 1.2em;
	font-size: 0.1667em;
	font-weight: 500;
	color: #fff;
	white-space: nowrap;
	text-align: justify;
	text-align-last: justify;
}
/* Welcome line + scroll cue as one stack pinned to the bottom edge. */
.amlab-brand-intro__bottom {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 2rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.5rem;
	padding: 0 1.5rem;
	z-index: 2;
}

.amlab-brand-intro__welcome {
	margin: 0;
	font-size: 1.125rem;
	font-weight: 600;
	color: #C5A15A;
}

.amlab-brand-intro__welcome { font-size: 1.25rem; }

.amlab-brand-intro__scroll {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
	color: rgba(255, 255, 255, .7);
	text-decoration: none;
	/* Match the Vercel scroll cue's Tailwind `transition` utility exactly. */
	transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
	transition-timing-function: cubic-bezier(.4, 0, .2, 1);
	transition-duration: .15s;
	z-index: 2;
	animation: amlab-bi-bounce 1s infinite;
}
.amlab-brand-intro__scroll:hover { color: #fff; }
/* Pronounced bounce matching the Vercel "animate-bounce" feel (keeps the centering
 * translateX so the cue doesn't drift). */
@keyframes amlab-bi-bounce {
	0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8, 0, 1, 1); }
	50% { transform: translateY(0); animation-timing-function: cubic-bezier(0, 0, 0.2, 1); }
}
.amlab-anchor { display: block; height: 0; scroll-margin-top: 80px; }
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}
/* ===== Home event poster carousel (hero right column) =====
 * Matches the Vercel design: only the poster card (.apc__viewport) is a boxed,
 * light/white panel — the eyebrow row and the dots/arrows row sit directly on
 * the dark hero background (no glass wrapper around the whole widget). */
.apc__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
}
.apc__eyebrow {
	margin: 0;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: #C5A15A;
}
.apc__viewall {
	font-size: 12px;
	font-weight: 700;
	color: rgba(255, 255, 255, .6);
	text-decoration: none;
	transition: color .15s ease;
}
.apc__viewall:hover {
	color: #C5A15A;
}
.apc__viewport {
	overflow: hidden;
	border-radius: 16px;
	border: 1px solid rgba(0, 0, 0, .06);
	background: #fff;
	box-shadow: 0 30px 80px rgba(0, 0, 0, .28);
}
.apc__track {
	display: flex;
	transition: transform .5s ease;
}
.apc__slide {
	flex: 0 0 100%;
	min-width: 100%;
}
.apc__poster {
	position: relative;
	aspect-ratio: 16 / 9;
	background: #151c2c;
}
.apc__poster img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
/* Light info strip below the poster (date/venue, title, CTA) — flipped from the
 * old dark-glass treatment to match the white card on Vercel. */
.apc__caption {
	display: flex;
	flex-direction: column;
	gap: .75rem;
	align-items: flex-start;
	justify-content: space-between;
	padding: 1rem;
	background: #fff;
	border-top: 1px solid rgba(0, 0, 0, .06);
}
.apc__meta {
	min-width: 0;
}
.apc__date {
	margin: 0 0 3px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #C5A15A;
}
.apc__title {
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	color: #151c2c;
	line-height: 1.4;
}
.apc__ctabtn {
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
	border-radius: 999px;
	background: rgba(197, 161, 90, .14);
	color: #151c2c;
	font-size: 12px;
	font-weight: 700;
	padding: 8px 16px;
	text-decoration: none;
	transition: background .15s ease, color .15s ease;
}
.apc__ctabtn:hover {
	background: #C5A15A;
	color: #151c2c;
}
@media (min-width: 640px) {
	.apc__caption {
		flex-direction: row;
		align-items: center;
	}
}
.apc__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 2rem;
}
.apc__dots {
	display: flex;
	gap: .5rem;
}
.apc__dot {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, .24);
	cursor: pointer;
	transition: width .2s ease, background .2s ease;
}
.apc__dot:hover {
	background: rgba(255, 255, 255, .45);
}
.apc__dot.is-active {
	width: 2rem;
	background: #C5A15A;
}
.apc__nav {
	display: flex;
	gap: .5rem;
}
.apc__arrow {
	width: 40px;
	height: 40px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, .12);
	background: rgba(255, 255, 255, .08);
	color: #fff;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	transition: border-color .15s ease, color .15s ease;
}
.apc__arrow:hover {
	border-color: rgba(197, 161, 90, .55);
	color: #C5A15A;
}

.v2-page {
	background-color: #0f1828;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.022) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.022) 1px, transparent 1px);
	background-size: 44px 44px;
	color: #fff;
}

.v2-aurora {
	position: absolute;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
}

.v2-aurora::before,
.v2-aurora::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	filter: blur(90px);
}

.v2-aurora::before {
	width: 60rem;
	height: 26rem;
	left: 50%;
	top: -8rem;
	transform: translateX(-50%);
	background: radial-gradient(ellipse at center, rgba(79, 120, 165, 0.34) 0%, rgba(79, 120, 165, 0.08) 55%, transparent 75%);
	animation: v2-drift 14s ease-in-out infinite;
}

.v2-aurora::after {
	width: 34rem;
	height: 18rem;
	left: 58%;
	top: 16rem;
	background: radial-gradient(ellipse at center, rgba(197, 161, 90, 0.16) 0%, transparent 70%);
	animation: v2-drift 18s ease-in-out infinite reverse;
}

@keyframes v2-drift {
	0%, 100% { transform: translateX(-50%) translateY(0) scale(1); }
	50% { transform: translateX(-46%) translateY(1.5rem) scale(1.06); }
}

.v2-wave-gold { stroke: url(#v2-grad-gold); filter: drop-shadow(0 0 6px rgba(197, 161, 90, 0.55)); }
.v2-wave-aurora { stroke: url(#v2-grad-aurora); filter: drop-shadow(0 0 6px rgba(79, 120, 165, 0.6)); }

.v2-glass {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.02) 100%);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border: 1px solid rgba(255, 255, 255, 0.08);
}

.v2-glass-hover {
	transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.v2-glass-hover:hover {
	transform: translateY(-4px);
	border-color: rgba(197, 161, 90, 0.28);
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5), 0 0 44px rgba(197, 161, 90, 0.08);
}

.v2-cta-gold {
	background: linear-gradient(135deg, #d4ac62 0%, #C5A15A 60%, #b08d47 100%);
	box-shadow: 0 0 24px rgba(197, 161, 90, 0.35), 0 8px 24px rgba(0, 0, 0, 0.4);
	transition: box-shadow 0.3s ease, transform 0.2s ease;
}

.v2-cta-gold:hover {
	box-shadow: 0 0 44px rgba(197, 161, 90, 0.55), 0 8px 24px rgba(0, 0, 0, 0.4);
	transform: translateY(-1px);
}

.v2-marquee {
	display: flex;
	width: max-content;
	animation: v2-marquee 36s linear infinite;
}

.v2-marquee:hover { animation-play-state: paused; }

@keyframes v2-marquee {
	to { transform: translateX(-50%); }
}

.v2-fade-x {
	-webkit-mask-image: linear-gradient(90deg, transparent, black 12%, black 88%, transparent);
	mask-image: linear-gradient(90deg, transparent, black 12%, black 88%, transparent);
	overflow: hidden;
}

/* ===== Hero composition ===== */

.amlab-home-hero {
	position: relative;
	overflow: hidden;
}

.amlab-home-hero__waves {
	pointer-events: none;
	position: absolute;
	left: 0;
	right: 0;
	top: 46%;
	height: 420px;
	width: 100%;
	opacity: 0.7;
}

.amlab-home-hero .amlab-hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	border-radius: 999px;
	padding: 0.35rem 1rem 0.35rem 0.5rem;
	font-size: 0.75rem;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.75);
}

.amlab-hero-badge__new {
	border-radius: 999px;
	background: #C5A15A;
	color: #151C2C;
	padding: 0.2rem 0.65rem;
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.amlab-home-hero h1 {
	letter-spacing: -0.03em;
	line-height: 1.05;
}

.amlab-home-hero .amlab-hero-sub {
	color: rgba(255, 255, 255, 0.5);
	max-width: 32rem;
}

/* Third hero CTA — a borderless link sitting beside the two buttons. */
.amlab-home-hero .wp-block-buttons {
	align-items: center;
}

.amlab-hero-explore {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	height: 3rem;
	padding: 0 0.5rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.65);
	text-decoration: none;
	transition: color 0.2s ease;
}

.amlab-hero-explore:hover {
	color: #C5A15A;
}

/* Hero news panel (Query Loop of latest posts) */
.amlab-hero-news {
	border-radius: 1rem;
	padding: 1.25rem;
}

.amlab-hero-news__heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	/* Same story as the news items: the reference's `border-white/8` colour never
	   applies, so it renders the default Tailwind gray-200 rule. */
	border-bottom: 1px solid #E5E7EB;
	padding-bottom: 1rem;
	margin-bottom: 1rem;
}

.amlab-hero-news__title {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

.amlab-hero-news__title h2 {
	font-size: 0.9rem;
	font-weight: 700;
	color: #fff;
	margin: 0;
}

/* Megaphone icon in a soft gold circle. */
.amlab-hero-news__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 999px;
	border: 1px solid rgba(197, 161, 90, 0.3);
	background: rgba(197, 161, 90, 0.15);
	color: #C5A15A;
	flex-shrink: 0;
}

.amlab-hero-news__viewall a { color: rgba(197, 161, 90, 0.7); }
.amlab-hero-news__viewall a:hover { color: #C5A15A; }

/* "View All Updates" link under the news list. */
.amlab-hero-news__all {
	margin: 1rem 0 0;
}

.amlab-hero-news__all a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.72rem;
	font-weight: 700;
	color: #C5A15A;
}

/* News item — code badge square + title/date column. */
.amlab-hero-news-list {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}

/* The reference draws these with a solid Tailwind gray-200 outline and no fill
   (its `border-white/6` + `bg-white/4` colours never apply, so the default border
   colour wins and there is no background) — match what it renders, not what the
   class names imply. Hover still lifts to the intended translucent white. */
.amlab-hero-news .amlab-hero-news-item {
	display: flex;
	gap: 0.75rem;
	align-items: flex-start;
	border: 1px solid #E5E7EB;
	background: transparent;
	border-radius: 0.75rem;
	padding: 0.75rem;
	text-decoration: none;
	transition: border-color 0.2s ease, background 0.2s ease;
}

.amlab-hero-news .amlab-hero-news-item:hover {
	border-color: rgba(255, 255, 255, 0.12);
	background: rgba(255, 255, 255, 0.08);
}

.amlab-hero-news-item__code {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 8px;
	background: rgba(0, 0, 0, 0.3);
	color: #C5A15A;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.03em;
	margin-top: 0.1rem;
}

.amlab-hero-news-item__text { min-width: 0; }

.amlab-hero-news-item__title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1.35;
	color: #fff;
}

.amlab-hero-news-item__date {
	display: block;
	font-size: 0.65rem;
	color: rgba(255, 255, 255, 0.4);
	margin-top: 0.25rem;
}

/* Stats glass strip */
.amlab-stats-strip {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	border-radius: 1rem;
	max-width: 56rem;
	margin-inline: auto;
}

/* ===== Home membership CTA (split: text + chips | form card) ===== */
.amlab-home-cta__cols { gap: 2.5rem; align-items: center; }

.amlab-home-cta .amlab-eyebrow { color: #C5A15A; }

.amlab-home-cta .amlab-hero-sub { color: rgba(255, 255, 255, 0.72); }

.amlab-cta-chips {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.65rem;
	margin-top: 1.5rem;
}

.amlab-cta-chip {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.7rem 0.9rem;
	border-radius: 0.7rem;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.09);
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.8rem;
	font-weight: 600;
}

.amlab-cta-chip::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 999px;
	background: #C5A15A;
	flex-shrink: 0;
}

.amlab-cta-form { box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28); }

/* Membership CF7 form — two-up field grid (fields sit in their own <p>). */
.amlab-cta-form .wpcf7-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem 1.25rem;
	align-items: start;
}

.amlab-cta-form .wpcf7-form > .hidden-fields-container,
.amlab-cta-form .wpcf7-form br { display: none; }

/* Consent row + submit span the full width. */
.amlab-cta-form .wpcf7-form > p:has(.amlab-form-consent),
.amlab-cta-form .wpcf7-form > p:has(.wpcf7-submit),
.amlab-cta-form .wpcf7-form > .wpcf7-response-output {
	grid-column: 1 / -1;
	margin: 0;
}

.amlab-cta-form .wpcf7-form > p { margin: 0; }

.amlab-cta-form label {
	display: block;
	font-size: 0.8rem;
	font-weight: 600;
	color: #202940;
	margin-bottom: 0px;
}

.amlab-cta-form input[type="text"],
.amlab-cta-form input[type="email"] {
	width: 100%;
	margin-top: 0.4rem;
	padding: 0.7rem 0.9rem;
	border: 1px solid #E6EAF0;
	border-radius: 10px;
	background: #fff;
	font-size: 0.9rem;
	color: #151B2F;
	box-sizing: border-box;
}

.amlab-cta-form input::placeholder { color: rgba(21, 27, 47, 0.4); }

.amlab-cta-form input:focus {
	outline: none;
	border-color: #C5A15A;
	box-shadow: 0 0 0 3px rgba(197, 161, 90, 0.12);
}

.amlab-cta-form .amlab-form-consent {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	font-size: 0.8rem;
	color: rgba(21, 27, 47, 0.7);
	line-height: 1.4;
}

.amlab-cta-form .wpcf7-submit {
	width: 100%;
	padding: 0.85rem 1.5rem;
	background: #C5A15A;
	color: #151C2C;
	border: none;
	border-radius: 10px;
	font-size: 0.95rem;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.2s ease;
}

.amlab-cta-form .wpcf7-submit:hover { background: #B58F45; }

@media (max-width: 782px) {
	.amlab-cta-chips { grid-template-columns: 1fr; }
	.amlab-cta-form .wpcf7-form { grid-template-columns: 1fr; }
}

/* News category badge — small gold uppercase chip on the post-terms output. */
.amlab-news-card .wp-block-post-terms {
	display: inline-flex;
	align-items: center;
	padding: 0.15rem 0.55rem;
	border-radius: 999px;
	background: rgba(197, 161, 90, 0.12);
	color: #8C6822;
	font-size: 0.58rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.amlab-news-card .wp-block-post-terms a { color: inherit; text-decoration: none; }

.amlab-stats-strip .amlab-stat {
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.35rem;
	text-align: center;
	padding: 1.75rem 1rem;
}

/* Vertical divider between stats. The reference renders a solid Tailwind
   gray-200 line here (its `divide-white/8` colour never applies, so the default
   border colour wins) — match that, not the 8% white the class implies. */
.amlab-stats-strip .amlab-stat + .amlab-stat {
	border-left: 1px solid #E5E7EB;
}

.amlab-stat__icon {
	color: rgba(197, 161, 90, 0.7);
	margin-bottom: 0.15rem;
}

.amlab-stats-strip .amlab-stat__value {
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: #fff;
	font-variant-numeric: tabular-nums;
	margin: 0;
}

.amlab-stats-strip .amlab-stat__label {
	font-size: 0.7rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.4);
	margin: 0.35rem 0 0;
}

/* Marquee band */
.amlab-marquee-band {
	border-top: 1px solid rgba(255, 255, 255, 0.05);
	border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

/* The band's track is wrapped in .kbit-container, which caps it at the content
   width and leaves the logos floating in the middle. On Vercel the track runs
   edge to edge (the section itself is the only bound), so release the wrapper
   here — the label above stays centred, and .v2-fade-x still fades both ends. */
.amlab-marquee-band > .kbit-container {
	/* .kbit-container caps itself with `width: min(100% - 2rem, 1180px)`, so
	   max-width alone does not release it — the width has to be reset too. */
	width: 100%;
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}

.amlab-marquee-band__label {
	text-align: center;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: rgba(255, 255, 255, 0.35);
}

.amlab-marquee__track {
	display: flex;
	align-items: center;
}

.amlab-marquee__tile {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	margin-right: 3rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.45);
	white-space: nowrap;
}

.amlab-marquee__tile::after {
	content: "✦";
	font-size: 8px;
	color: rgba(197, 161, 90, 0.5);
	margin-left: 3rem;
}

/* Brand logos are colored/dark and vanished on the dark navy band. Sit each on a
   soft translucent white pill (a subtle horizontal band) so they read clearly. */
.amlab-marquee__tile img {
	max-height: 34px;
	width: auto;
	opacity: 1;
	padding: 0.4rem 0.75rem;
	border-radius: 0.6rem;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
}

@media (prefers-reduced-motion: reduce) {
	.v2-aurora::before,
	.v2-aurora::after,
	.v2-marquee { animation: none; }
	.v2-glass-hover:hover,
	.v2-cta-gold:hover { transform: none; }
}

/* ===== Home builder shortcodes — layout wrappers for the section renderers.
   (The old page used core columns/groups; the shortcode markup needs its own
   grid/flow rules so the sections lay out identically.) ===== */
.amlab-home-band { padding: 5rem 0; margin-top: 0px; }
.amlab-home-band__body { margin-top: 2.5rem; }
/* Match Next section headers: text-3xl→md:text-4xl title, wider sub (max-w-2xl). */
.amlab-home-band .amlab-section-title { 
	font-size: clamp(1.875rem, 1.5rem + 1.4vw, 2.25rem); 
	line-height: 1.15; 
	margin: 0px;
}
.amlab-home-band .amlab-section-sub { max-width: 42rem; }
.amlab-home-head {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2rem;
	align-items: flex-end;
	justify-content: space-between;
}
.amlab-home-head .amlab-view-all { margin: 0; }
.amlab-home-hero__grid {
	position: relative;
	z-index: 10;
	display: grid;
	gap: 3rem;
}
@media (min-width: 1024px) {
	.amlab-home-hero__grid {
		grid-template-columns: 0.86fr 1.14fr;
		align-items: center;
	}
}
/* Let grid columns keep their fr share even though the poster image has a large
 * intrinsic width (min-width:auto would otherwise blow the column out). */
.amlab-home-hero__copy,
.amlab-home-hero__panel {
	min-width: 0;
}
/* Home hero heading — match the Vercel reference (Inter 800, ~64px at desktop),
   constrained to 620px so it wraps to the same line breaks (the gold accent phrase
   is already on its own line via the .block span). */
.amlab-home-hero__copy h1 {
	max-width: 620px;
	font-size: clamp(3rem, 4.6vw, 4rem) !important;
	font-weight: 800;
	line-height: 1.04;
	letter-spacing: -0.025em;
}
.amlab-poster-carousel,
.amlab-poster-carousel .apc__viewport,
.amlab-poster-carousel .apc__track {
	min-width: 0;
	max-width: 100%;
}
.amlab-hub-card { transition: border-color 0.15s, box-shadow 0.15s; }
.amlab-hub-card:hover { border-color: #C5A15A; }
.amlab-home-hero{
	z-index: 2;
	position: relative;
}

.amlab-home-hero::after {
	position: absolute;
	content: '';
	z-index: -1;
	background-image: url(../images/home_bg.svg);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: top center;
	left: 50%;
	bottom: 50px;
	width: 90vw;
	height: 500px;
	transform: translateX(-50%);
	display: block;
}