/* ==========================================================================
   AES 2026 — component styles
   Design tokens live in theme.json. This file only holds what tokens
   cannot express: animation, pseudo-elements, hover states, small layouts.
   ========================================================================== */

:root {
	--aes-ease: cubic-bezier( 0.2, 0.7, 0.3, 1 );
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* Make the skip link visible on focus. */
.skip-link:focus {
	position: fixed; top: 12px; left: 12px; z-index: 999;
	padding: 10px 16px; background: #0B1F17; color: #fff; border-radius: 8px;
}

/* --------------------------------------------------------------- Eyebrow */

.is-style-aes-eyebrow,
.aes-eyebrow {
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var( --wp--preset--color--mute );
	margin-bottom: 0.75rem;
}

.aes-eyebrow--green { color: var( --wp--preset--color--green ); }
.aes-eyebrow--light { color: rgba( 255, 255, 255, 0.72 ); }

/* ----------------------------------------------------------------- Cards */

.is-style-aes-card {
	background: var( --wp--preset--color--white );
	border: 1px solid var( --wp--preset--color--line );
	border-radius: 20px;
	padding: var( --wp--preset--spacing--40 );
}

.aes-card-hover { transition: transform 0.28s var( --aes-ease ), box-shadow 0.28s var( --aes-ease ); }
.aes-card-hover:hover { transform: translateY( -4px ); box-shadow: var( --wp--preset--shadow--lift ); }

/* ------------------------------------------------------------- Tick list */

.is-style-aes-ticks { list-style: none; padding-left: 0; margin: 0; }

.is-style-aes-ticks li {
	position: relative;
	padding-left: 1.65rem;
	margin-bottom: 0.7rem;
	font-size: 0.875rem;
	line-height: 1.5;
	color: var( --wp--preset--color--body );
}

.is-style-aes-ticks li::before {
	content: "";
	position: absolute;
	left: 0; top: 0.18em;
	width: 1.05rem; height: 1.05rem;
	border-radius: 50%;
	background: var( --wp--preset--color--haze );
}

.is-style-aes-ticks li::after {
	content: "";
	position: absolute;
	left: 0.33rem; top: 0.45em;
	width: 0.36rem; height: 0.18rem;
	border-left: 2px solid var( --wp--preset--color--green );
	border-bottom: 2px solid var( --wp--preset--color--green );
	transform: rotate( -45deg );
}

/* --------------------------------------------------------------- Buttons */

.is-style-aes-outline-light > .wp-block-button__link {
	background: transparent;
	color: #fff;
	border: 1px solid rgba( 255, 255, 255, 0.45 );
}

.is-style-aes-outline-light > .wp-block-button__link:hover {
	background: rgba( 255, 255, 255, 0.12 );
	border-color: #fff;
	color: #fff;
}

.is-style-aes-outline-dark > .wp-block-button__link {
	background: transparent;
	color: var( --wp--preset--color--ink );
	border: 1px solid var( --wp--preset--color--line );
}

.is-style-aes-outline-dark > .wp-block-button__link:hover {
	background: var( --wp--preset--color--ink );
	border-color: var( --wp--preset--color--ink );
	color: #fff;
}

/* ------------------------------------------------------------------ Hero */

.aes-hero { position: relative; isolation: isolate; }

.aes-hero .wp-block-cover__inner-container { width: 100%; }

.aes-hero__chip {
	display: inline-block;
	padding: 0.7rem 1.4rem;
	border-radius: 999px;
	border: 1px solid rgba( 255, 255, 255, 0.35 );
	background: rgba( 255, 255, 255, 0.07 );
	backdrop-filter: blur( 6px );
	color: #fff;
	font-size: 0.9375rem;
	letter-spacing: 0.02em;
	margin: 0;
}

.aes-hero__title {
	color: #fff;
	letter-spacing: -0.035em;
	line-height: 0.96;
	max-width: 16ch;
}

.aes-hero__lede { color: rgba( 255, 255, 255, 0.86 ); max-width: 46ch; }

.aes-hero__foot { align-items: flex-end; }

@media ( max-width: 781px ) {
	.aes-hero__foot { align-items: flex-start; }
}

/* ------------------------------------------------------------- Countdown */

.aes-countdown {
	display: flex;
	gap: clamp( 1.25rem, 3vw, 2.25rem );
	flex-wrap: wrap;
}

.aes-countdown__unit { display: flex; flex-direction: column; gap: 0.25rem; min-width: 3.5rem; }

.aes-countdown__value {
	font-size: clamp( 1.75rem, 3vw, 1.875rem );
	font-weight: 700;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.02em;
}

.aes-countdown__label {
	font-size: 0.625rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.aes-countdown.is-light .aes-countdown__value { color: #fff; }
.aes-countdown.is-light .aes-countdown__label { color: rgba( 255, 255, 255, 0.62 ); }
.aes-countdown.is-dark .aes-countdown__value { color: var( --wp--preset--color--ink ); }
.aes-countdown.is-dark .aes-countdown__label { color: var( --wp--preset--color--mute ); }
.aes-countdown__done { margin: 0; font-weight: 600; }

/* --------------------------------------------------------------- Marquee */

.aes-marquee {
	background: var( --aes-marquee-bg, #13A05C );
	color: var( --aes-marquee-fg, #fff );
	overflow: hidden;
	padding: 0.85rem 0;
}

.aes-marquee__track { display: flex; width: max-content; }

.aes-marquee:not( .is-static ) .aes-marquee__track {
	animation: aes-marquee-scroll var( --aes-marquee-speed, 38s ) linear infinite;
}

.aes-marquee__run { display: flex; align-items: center; }

.aes-marquee__item {
	font-size: clamp( 0.9375rem, 1.5vw, 1.3125rem );
	font-weight: 700;
	letter-spacing: 0.01em;
	white-space: nowrap;
	padding: 0 1.1rem;
}

.aes-marquee__sep { font-size: 0.6875rem; opacity: 0.75; }

@keyframes aes-marquee-scroll {
	from { transform: translateX( 0 ); }
	to   { transform: translateX( -50% ); }
}

@media ( prefers-reduced-motion: reduce ) {
	.aes-marquee .aes-marquee__track { animation: none; }
	.aes-card-hover { transition: none; }
}

/* ----------------------------------------------------------------- Stats */

.aes-stat__value { line-height: 1; letter-spacing: -0.03em; margin: 0 0 0.35rem; }
.aes-stat__label { font-size: 0.9375rem; color: var( --wp--preset--color--body ); margin: 0; }

/* ------------------------------------------------------------- Why cards */

.aes-why { background: var( --wp--preset--color--clay ); border-radius: 22px; padding: 1.625rem; height: 100%; }
.aes-why__num { font-size: clamp( 2.5rem, 4vw, 3.5rem ); font-weight: 700; line-height: 1; color: var( --wp--preset--color--green ); margin: 0 0 1.5rem; letter-spacing: -0.04em; }
.aes-why__title { margin: 0 0 0.6rem; }

/* ---------------------------------------------------------- Speaker card */

.aes-speaker {
	background: var( --wp--preset--color--mist );
	border: 1px solid var( --wp--preset--color--line-warm );
	border-radius: 16px;
	overflow: hidden;
	height: 100%;
}

.aes-speaker figure, .aes-speaker img { margin: 0; display: block; width: 100%; }
.aes-speaker img { aspect-ratio: 4 / 5; object-fit: cover; border-radius: 0; }
.aes-speaker__body { padding: 1.1rem 1.15rem 1.3rem; }
.aes-speaker__name { margin: 0 0 0.25rem; }
.aes-speaker__role { font-size: 0.875rem; color: var( --wp--preset--color--body ); margin: 0 0 0.5rem; }
.aes-speaker__org { font-size: 0.625rem; letter-spacing: 0.14em; text-transform: uppercase; color: var( --wp--preset--color--mute ); margin: 0; }

.aes-badge {
	display: inline-block;
	font-size: 0.5625rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 0.32rem 0.6rem;
	border-radius: 6px;
	background: var( --wp--preset--color--haze );
	color: var( --wp--preset--color--deep );
}

.aes-badge--keynote { background: var( --wp--preset--color--green ); color: #fff; }

/* ------------------------------------------------------------ Tier cards */

.aes-tier {
	background: var( --wp--preset--color--white );
	border: 1px solid var( --wp--preset--color--line );
	border-radius: 20px;
	padding: 2rem 1.875rem;
	height: 100%;
}

.aes-tier--featured { border-color: var( --wp--preset--color--green ); box-shadow: var( --wp--preset--shadow--card ); }
.aes-tier__name { margin: 0 0 0.85rem; font-size: 1.0625rem; }
.aes-tier__price { margin: 0 0 0.3rem; letter-spacing: -0.03em; line-height: 1; }
.aes-tier__note { font-size: 0.8125rem; color: var( --wp--preset--color--mute ); margin: 0 0 1.4rem; }

/* ----------------------------------------------------------- Voice cards */

.aes-voice { background: var( --wp--preset--color--clay ); border-radius: 20px; padding: 1.375rem; height: 100%; }
.aes-voice__quote { font-size: 1rem; line-height: 1.55; color: var( --wp--preset--color--ink-soft ); margin: 0.9rem 0 1.2rem; }
.aes-voice__name { margin: 0; font-size: 1.0625rem; font-weight: 700; color: var( --wp--preset--color--ink ); }
.aes-voice__org { margin: 0; font-size: 0.8125rem; color: var( --wp--preset--color--body ); }

/* ------------------------------------------------------------- Programme */

.aes-session {
	display: grid;
	grid-template-columns: 7rem 1fr 11rem;
	gap: 1.25rem;
	padding: 1.15rem 0;
	border-bottom: 1px solid var( --wp--preset--color--line );
	align-items: start;
}

.aes-session:last-child { border-bottom: 0; }
.aes-session__time { font-weight: 700; font-size: 1.0625rem; color: var( --wp--preset--color--ink ); margin: 0; }
.aes-session__title { margin: 0 0 0.3rem; }
.aes-session__desc { margin: 0; font-size: 0.9375rem; }
.aes-session__room { margin: 0; font-size: 0.875rem; color: var( --wp--preset--color--mute ); }

@media ( max-width: 781px ) {
	.aes-session { grid-template-columns: 1fr; gap: 0.35rem; }
	.aes-session__room { order: 3; }
}

.aes-daytab {
	display: inline-block;
	font-size: 0.875rem;
	font-weight: 600;
	padding: 0.5rem 1rem;
	border-radius: 999px;
	background: var( --wp--preset--color--haze );
	color: var( --wp--preset--color--deep );
}

/* ------------------------------------------------------- Photo strips */

.aes-strip { display: flex; gap: 14px; overflow: hidden; }
.aes-strip figure, .aes-strip .wp-block-image { margin: 0; flex: 0 0 auto; }
.aes-strip img { height: clamp( 150px, 18vw, 238px ); width: auto; border-radius: 14px; object-fit: cover; display: block; }

@media ( max-width: 781px ) {
	.aes-strip { overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-inline: 20px; }
	.aes-strip figure { scroll-snap-align: start; }
	.aes-strip::-webkit-scrollbar { display: none; }
}

/* --------------------------------------------------------- Footer wordmark */

.aes-wordmark {
	font-weight: 700;
	line-height: 0.9;
	letter-spacing: -0.04em;
	margin: 0;
	background: linear-gradient( 92deg, #080808 0%, rgba( 32, 34, 37, 0.11 ) 100% );
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	overflow-wrap: anywhere;
}

.aes-footer__col h2, .aes-footer__col h3 { font-size: 1.0625rem; margin: 0 0 0.9rem; }
.aes-footer__col ul { list-style: none; padding: 0; margin: 0; }
.aes-footer__col li { margin-bottom: 0.55rem; }
.aes-footer__col a, .aes-footer__col li {
	font-family: var( --wp--preset--font-family--bricolage );
	font-size: 0.875rem;
	color: var( --wp--preset--color--body );
	text-decoration: none;
}
.aes-footer__col a:hover { color: var( --wp--preset--color--green ); text-decoration: underline; }

.aes-footer__bar { font-size: 0.8125rem; color: var( --wp--preset--color--mute ); }
.aes-footer__bar a { color: var( --wp--preset--color--mute ); text-decoration: none; }
.aes-footer__bar a:hover { color: var( --wp--preset--color--ink ); text-decoration: underline; }

/* ---------------------------------------------------------------- Header */

.aes-header { position: sticky; top: 0; z-index: 50; background: rgba( 255, 255, 255, 0.92 ); backdrop-filter: blur( 10px ); border-bottom: 1px solid transparent; }
.aes-header.is-scrolled { border-bottom-color: var( --wp--preset--color--line ); }
.aes-header .wp-block-navigation { font-size: 0.9375rem; font-weight: 500; }
.aes-header .wp-block-navigation a { color: var( --wp--preset--color--ink ); }
.aes-header .wp-block-navigation a:hover { color: var( --wp--preset--color--green ); }

.aes-logo__mark { width: 34px; height: 34px; border-radius: 9px; background: var( --wp--preset--color--green ); display: inline-block; flex: 0 0 auto; }
.aes-logo__name { font-size: 1.25rem; font-weight: 700; line-height: 1.05; margin: 0; color: var( --wp--preset--color--ink ); }
.aes-logo__sub { font-size: 0.625rem; letter-spacing: 0.12em; text-transform: uppercase; color: var( --wp--preset--color--green ); margin: 0; font-weight: 600; }

/* ------------------------------------------------------------------ Misc */

.aes-map { border-radius: 18px; overflow: hidden; }
.aes-map iframe { display: block; width: 100%; min-height: 420px; border: 0; }

.aes-partner-logo {
	display: flex; align-items: center; justify-content: center;
	background: var( --wp--preset--color--white );
	border: 1px solid var( --wp--preset--color--line );
	border-radius: 14px;
	padding: 1.5rem;
	min-height: 86px;
	font-weight: 700;
	color: var( --wp--preset--color--mute );
}

.aes-partner-logo img { max-height: 54px; width: auto; object-fit: contain; }

/* Equal-height columns for card rows. */
.aes-equal > .wp-block-column { display: flex; }
.aes-equal > .wp-block-column > * { width: 100%; }

/* Long-form legal pages. */
.aes-legal h2 { margin-top: 2.5rem; }
.aes-legal h3 { margin-top: 1.75rem; }
.aes-legal p, .aes-legal li { color: var( --wp--preset--color--body ); }

/* Editor: give patterns room to breathe. */
.editor-styles-wrapper .aes-marquee__track { animation: none; }
