/**
 * EventFlow Labs Theme
 * Component Foundation
 */

.site-header {
	position: relative;
	z-index: 100;
	border-bottom: 1px solid var(--ef-color-border);
	background: var(--ef-color-background);
}

.site-header__inner,
.site-footer__inner {
	width: min(
		calc(100% - (var(--ef-page-gutter) * 2)),
		var(--ef-container-xl)
	);
	margin-inline: auto;
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 5rem;
	gap: var(--ef-space-6);
}

.site-brand {
	font-size: var(--ef-font-size-md);
	font-weight: 700;
	text-decoration: none;
}

.site-navigation ul,
.site-footer ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ef-space-5);
	padding: 0;
	margin: 0;
	list-style: none;
}

.site-footer {
	margin-top: var(--ef-space-10);
	padding-block: var(--ef-space-7);
	border-top: 1px solid var(--ef-color-border);
}

.entry-header,
.entry-content {
	width: min(
		calc(100% - (var(--ef-page-gutter) * 2)),
		var(--ef-container-md)
	);
	margin-inline: auto;
}

.entry-header {
	padding-top: var(--ef-space-9);
}

.entry-content {
	padding-block: var(--ef-space-6) var(--ef-space-9);
}

@media (max-width: 48rem) {

	.site-header__inner {
		align-items: flex-start;
		flex-direction: column;
		justify-content: center;
		padding-block: var(--ef-space-4);
	}

	.site-navigation ul {
		gap: var(--ef-space-4);
	}
}

/* ==========================================================
   Institutional Header
   ========================================================== */

.ef-header {
	position: relative;
	z-index: 100;
	background: var(--ef-color-background);
	border-bottom: 1px solid var(--ef-color-border);
}

.ef-header__utility {
	border-bottom: 1px solid var(--ef-color-border);
	font-size: var(--ef-font-size-xs);
}

.ef-header__utility-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 2.5rem;
	gap: var(--ef-space-4);
}

.ef-header__institution {
	font-family: var(--ef-font-mono);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ef-color-text-muted);
}

.ef-utility-nav {
	display: flex;
	align-items: center;
	gap: var(--ef-space-5);
}

.ef-utility-nav a {
	text-decoration: none;
	color: var(--ef-color-text-muted);
	transition:
		color var(--ef-duration-fast) var(--ef-ease-standard),
		opacity var(--ef-duration-fast) var(--ef-ease-standard);
}

.ef-utility-nav a:hover,
.ef-utility-nav a:focus-visible {
	color: var(--ef-color-text);
}

.ef-header__main-inner {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	min-height: 5.75rem;
	gap: var(--ef-space-7);
}

.ef-brand {
	display: inline-flex;
	align-items: baseline;
	gap: 0.35rem;
	text-decoration: none;
	white-space: nowrap;
}

.ef-brand__name {
	font-size: 1.35rem;
	font-weight: 700;
	letter-spacing: -0.04em;
}

.ef-brand__division {
	font-family: var(--ef-font-mono);
	font-size: var(--ef-font-size-xs);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ef-color-text-muted);
}

.ef-primary-nav {
	justify-self: end;
}

.ef-primary-nav__list {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: clamp(1.25rem, 2.4vw, 2.5rem);
	padding: 0;
	margin: 0;
	list-style: none;
}

.ef-primary-nav__list a {
	position: relative;
	display: inline-block;
	padding-block: var(--ef-space-3);
	text-decoration: none;
	font-size: var(--ef-font-size-sm);
	font-weight: 500;
}

.ef-primary-nav__list a::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform var(--ef-duration-base) var(--ef-ease-standard);
}

.ef-primary-nav__list a:hover::after,
.ef-primary-nav__list a:focus-visible::after {
	transform: scaleX(1);
	transform-origin: left;
}

.ef-menu-toggle {
	display: none;
	border: 0;
	background: transparent;
	cursor: pointer;
}

/* ==========================================================
   Institutional Footer
   ========================================================== */

.ef-footer {
	margin-top: var(--ef-space-10);
	border-top: 1px solid var(--ef-color-border);
	background: var(--ef-color-surface);
}

.ef-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 2fr) repeat(2, minmax(10rem, 1fr));
	gap: var(--ef-space-8);
	padding-block: var(--ef-space-9);
}

.ef-footer__statement {
	max-width: 30rem;
	margin-top: var(--ef-space-5);
	color: var(--ef-color-text-muted);
}

.ef-footer__title {
	margin-bottom: var(--ef-space-4);
	font-family: var(--ef-font-mono);
	font-size: var(--ef-font-size-xs);
	font-weight: 400;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ef-color-text-muted);
}

.ef-footer__menu {
	display: flex;
	flex-direction: column;
	gap: var(--ef-space-3);
	padding: 0;
	margin: 0;
	list-style: none;
}

.ef-footer__menu a {
	text-decoration: none;
}

.ef-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--ef-space-4);
	padding-block: var(--ef-space-5);
	border-top: 1px solid var(--ef-color-border);
	font-family: var(--ef-font-mono);
	font-size: var(--ef-font-size-xs);
	color: var(--ef-color-text-muted);
}

.ef-footer__status {
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

@media (max-width: 64rem) {

	.ef-header__main-inner {
		grid-template-columns: 1fr auto;
	}

	.ef-primary-nav {
		display: none;
	}

	.ef-menu-toggle {
		display: inline-flex;
	}

	.ef-footer__grid {
		grid-template-columns: 1fr 1fr;
	}

	.ef-footer__identity {
		grid-column: 1 / -1;
	}
}

@media (max-width: 40rem) {

	.ef-header__utility-inner {
		align-items: flex-start;
		flex-direction: column;
		padding-block: var(--ef-space-3);
	}

	.ef-utility-nav {
		flex-wrap: wrap;
	}

	.ef-header__main-inner {
		min-height: 4.75rem;
	}

	.ef-footer__grid {
		grid-template-columns: 1fr;
	}

	.ef-footer__identity {
		grid-column: auto;
	}

	.ef-footer__bottom {
		align-items: flex-start;
		flex-direction: column;
	}
}

/* ==========================================================
   Homepage Foundation
   ========================================================== */

.ef-section--surface {
	background: var(--ef-color-surface);
}

.ef-kicker {
	margin-bottom: var(--ef-space-4);
	font-family: var(--ef-font-mono);
	font-size: var(--ef-font-size-xs);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ef-color-text-muted);
}

.ef-section-heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	align-items: end;
	gap: var(--ef-space-7);
	margin-bottom: var(--ef-space-8);
}

.ef-section-heading h2 {
	margin: 0;
	font-size: clamp(2rem, 4vw, 4rem);
	letter-spacing: -0.045em;
}

.ef-home-hero {
	min-height: min(48rem, 82vh);
	display: flex;
	align-items: center;
}

.ef-home-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 2.2fr) minmax(15rem, 0.8fr);
	gap: var(--ef-space-9);
	align-items: end;
}

.ef-home-hero__title {
	max-width: 13ch;
	margin-bottom: var(--ef-space-6);
	font-size: clamp(3.25rem, 7vw, 7.5rem);
	line-height: 0.94;
	letter-spacing: -0.065em;
}

.ef-home-hero__lead {
	max-width: 42rem;
	font-size: clamp(1.1rem, 1.8vw, 1.4rem);
	color: var(--ef-color-text-muted);
}

.ef-home-hero__meta {
	display: grid;
	gap: var(--ef-space-5);
	padding-top: var(--ef-space-6);
	border-top: 1px solid var(--ef-color-border);
}

.ef-system-index {
	display: grid;
	gap: var(--ef-space-2);
}

.ef-system-index__label,
.ef-system-index__value {
	font-family: var(--ef-font-mono);
	font-size: var(--ef-font-size-xs);
}

.ef-system-index__label {
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ef-color-text-muted);
}

.ef-grid--two {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ef-grid--three {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ef-card,
.ef-access-card,
.ef-feature-panel {
	position: relative;
	border: 1px solid var(--ef-color-border);
	background: var(--ef-color-background);
}

.ef-card {
	min-height: 18rem;
	padding: var(--ef-space-6);
	transition:
		transform var(--ef-duration-base) var(--ef-ease-standard),
		border-color var(--ef-duration-base) var(--ef-ease-standard);
}

.ef-card:hover {
	transform: translateY(-0.25rem);
}

.ef-card--large {
	min-height: 26rem;
}

.ef-card__index,
.ef-feature-panel__index {
	display: block;
	margin-bottom: var(--ef-space-8);
	font-family: var(--ef-font-mono);
	font-size: var(--ef-font-size-xs);
	color: var(--ef-color-text-muted);
}

.ef-feature-panel {
	min-height: 26rem;
	padding: clamp(2rem, 5vw, 5rem);
}

.ef-feature-panel__content {
	max-width: 48rem;
}

.ef-feature-panel h3 {
	font-size: clamp(2rem, 4vw, 4.5rem);
	letter-spacing: -0.04em;
}

.ef-access-card {
	padding: var(--ef-space-6);
	min-height: 12rem;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.ef-access-card span {
	font-family: var(--ef-font-mono);
	font-size: var(--ef-font-size-xs);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ef-color-text-muted);
}

@media (max-width: 64rem) {

	.ef-home-hero__grid {
		grid-template-columns: 1fr;
	}

	.ef-home-hero__title {
		max-width: 15ch;
	}

	.ef-grid--three {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ef-section-heading {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 40rem) {

	.ef-home-hero {
		min-height: auto;
	}

	.ef-home-hero__title {
		font-size: clamp(3rem, 15vw, 5rem);
	}

	.ef-grid--two,
	.ef-grid--three {
		grid-template-columns: 1fr;
	}

	.ef-card,
	.ef-card--large,
	.ef-feature-panel {
		min-height: auto;
	}
}

/* ==========================================================
   EFDS Controls
   ========================================================== */

.ef-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--ef-space-2);
	min-height: var(--ef-control-height-md);
	padding-inline: var(--ef-control-padding-inline-md);
	border: 1px solid transparent;
	border-radius: var(--ef-radius-pill);
	font-size: var(--ef-font-size-sm);
	font-weight: var(--ef-weight-medium);
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition:
		transform var(--ef-duration-base) var(--ef-ease-standard),
		background-color var(--ef-duration-base) var(--ef-ease-standard),
		border-color var(--ef-duration-base) var(--ef-ease-standard),
		box-shadow var(--ef-duration-base) var(--ef-ease-standard),
		color var(--ef-duration-base) var(--ef-ease-standard);
}

.ef-button:hover,
.ef-button:focus-visible {
	transform: translateY(-1px);
}

.ef-button:focus-visible {
	outline: none;
	box-shadow: var(--ef-focus-ring);
}

.ef-button[disabled],
.ef-button[aria-disabled="true"] {
	opacity: var(--ef-disabled-opacity);
	pointer-events: none;
}

/* Primary */

.ef-button--primary {
	background: var(--ef-accent);
	color: var(--ef-color-navy-950);
	box-shadow: var(--ef-glow-sm);
}

.ef-button--primary:hover,
.ef-button--primary:focus-visible {
	box-shadow: var(--ef-glow-md);
}

/* Secondary */

.ef-button--secondary {
	border-color: var(--ef-border-subtle);
	background: var(--ef-surface-3);
	color: var(--ef-color-text);
}

.ef-button--secondary:hover,
.ef-button--secondary:focus-visible {
	border-color: var(--ef-border-accent);
	background: rgba(255, 255, 255, 0.07);
}

/* Ghost */

.ef-button--ghost {
	padding-inline: 0;
	border-radius: 0;
	background: transparent;
	color: var(--ef-color-text);
}

.ef-button--ghost:hover,
.ef-button--ghost:focus-visible {
	color: var(--ef-accent);
	transform: none;
}

/* Sizes */

.ef-button--sm {
	min-height: var(--ef-control-height-sm);
	padding-inline: var(--ef-control-padding-inline-sm);
}

.ef-button--lg {
	min-height: var(--ef-control-height-lg);
	padding-inline: var(--ef-control-padding-inline-lg);
}

/* ==========================================================
   Text Links
   ========================================================== */

.ef-link {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: var(--ef-space-2);
	color: var(--ef-color-text);
	text-decoration: none;
}

.ef-link::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: -0.2rem;
	left: 0;
	height: 1px;
	background: var(--ef-accent);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform var(--ef-duration-base) var(--ef-ease-standard);
}

.ef-link:hover::after,
.ef-link:focus-visible::after {
	transform: scaleX(1);
	transform-origin: left;
}

.ef-link:focus-visible {
	outline: none;
	box-shadow: var(--ef-focus-ring);
}

/* ==========================================================
   Badges
   ========================================================== */

.ef-badge {
	display: inline-flex;
	align-items: center;
	min-height: 1.75rem;
	padding-inline: var(--ef-space-3);
	border: 1px solid var(--ef-border-subtle);
	border-radius: var(--ef-radius-pill);
	background: var(--ef-surface-3);
	color: var(--ef-color-text-muted);
	font-family: var(--ef-font-mono);
	font-size: var(--ef-font-size-xs);
	line-height: 1;
	letter-spacing: var(--ef-tracking-wide);
	text-transform: uppercase;
}

.ef-badge--accent {
	border-color: var(--ef-border-accent);
	color: var(--ef-accent);
	box-shadow: var(--ef-glow-sm);
}

.ef-badge--status::before {
	content: "";
	width: 0.4rem;
	height: 0.4rem;
	margin-right: var(--ef-space-2);
	border-radius: 50%;
	background: var(--ef-accent);
	box-shadow: 0 0 12px var(--ef-accent-glow);
}

/* ==========================================================
   Control Groups
   ========================================================== */

.ef-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ef-space-3);
}

/* ==========================================================
   EFDS Cards
   ========================================================== */

.ef-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--ef-space-4);
	min-height: 16rem;
	padding: var(--ef-space-5);
	overflow: hidden;
	border: 1px solid var(--ef-border-subtle);
	border-radius: var(--ef-radius-lg);
	background: var(--ef-surface-3);
}

.ef-card::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 1px;
	background: linear-gradient(
		90deg,
		transparent,
		var(--ef-border-accent),
		transparent
	);
	opacity: 0;
	transition: opacity var(--ef-duration-base) var(--ef-ease-standard);
}

.ef-card:hover::before,
.ef-card:focus-within::before {
	opacity: 1;
}

.ef-card__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--ef-space-4);
}

.ef-card__index {
	font-family: var(--ef-font-mono);
	font-size: var(--ef-font-size-xs);
	color: var(--ef-color-text-muted);
}

.ef-card__title {
	margin: 0;
	font-size: var(--ef-text-h3);
}

.ef-card__body {
	color: var(--ef-color-text-muted);
}

.ef-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--ef-space-3);
	margin-top: auto;
	padding-top: var(--ef-space-4);
	border-top: 1px solid var(--ef-border-subtle);
}

.ef-card--interactive {
	transition:
		transform var(--ef-duration-base) var(--ef-ease-standard),
		border-color var(--ef-duration-base) var(--ef-ease-standard),
		box-shadow var(--ef-duration-base) var(--ef-ease-standard);
}

.ef-card--interactive:hover,
.ef-card--interactive:focus-within {
	transform: translateY(calc(var(--ef-motion-distance-sm) * -1));
	border-color: var(--ef-border-accent);
	box-shadow: var(--ef-glow-sm);
}

.ef-card--featured {
	min-height: 24rem;
	padding: var(--ef-space-6);
	background:
		var(--ef-gradient-glow),
		var(--ef-surface-2);
	border-color: var(--ef-border-accent);
	box-shadow: var(--ef-glow-soft);
}

.ef-card--compact {
	min-height: auto;
	padding: var(--ef-space-4);
}

/* ==========================================================
   EFDS Panels
   ========================================================== */

.ef-panel {
	position: relative;
	padding: var(--ef-space-6);
	border: 1px solid var(--ef-border-subtle);
	border-radius: var(--ef-radius-xl);
	background: var(--ef-surface-1);
}

.ef-panel--raised {
	background: var(--ef-surface-2);
	box-shadow: var(--ef-shadow-md);
}

.ef-panel--glass {
	background: var(--ef-surface-3);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
}

.ef-panel--glow {
	border-color: var(--ef-border-accent);
	box-shadow: var(--ef-glow-md);
}

.ef-panel__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--ef-space-5);
	margin-bottom: var(--ef-space-6);
}

.ef-panel__body {
	color: var(--ef-color-text-muted);
}

.ef-panel__footer {
	margin-top: var(--ef-space-6);
	padding-top: var(--ef-space-4);
	border-top: 1px solid var(--ef-border-subtle);
}

/* ==========================================================
   Metric / Status Panels
   ========================================================== */

.ef-metric {
	display: grid;
	gap: var(--ef-space-2);
}

.ef-metric__label {
	font-family: var(--ef-font-mono);
	font-size: var(--ef-font-size-xs);
	letter-spacing: var(--ef-tracking-system);
	text-transform: uppercase;
	color: var(--ef-color-text-muted);
}

.ef-metric__value {
	font-size: var(--ef-text-h3);
	font-weight: var(--ef-weight-medium);
	letter-spacing: var(--ef-tracking-heading);
}

.ef-metric__meta {
	font-size: var(--ef-font-size-sm);
	color: var(--ef-color-text-muted);
}

/* ==========================================================
   Card Collections
   ========================================================== */

.ef-card-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--ef-space-5);
}

.ef-card-grid--two {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ef-card-grid--four {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 64rem) {

	.ef-card-grid,
	.ef-card-grid--four {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 40rem) {

	.ef-card-grid,
	.ef-card-grid--two,
	.ef-card-grid--four {
		grid-template-columns: 1fr;
	}

	.ef-panel {
		padding: var(--ef-space-5);
	}
}

/* ==========================================================
   EFDS Hero
   ========================================================== */

.ef-hero {
	position: relative;
	display: grid;
	align-items: end;
	min-height: min(52rem, 88vh);
	padding-block: var(--ef-space-8);
	overflow: hidden;
	isolation: isolate;
}

.ef-hero::before {
	content: "";
	position: absolute;
	z-index: -2;
	inset: 0;
	background: var(--ef-gradient-institutional);
}

.ef-hero::after {
	content: "";
	position: absolute;
	z-index: -1;
	top: 10%;
	right: -10%;
	width: min(44rem, 70vw);
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--ef-gradient-glow);
	filter: blur(24px);
	pointer-events: none;
}

.ef-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(16rem, 0.8fr);
	align-items: end;
	gap: var(--ef-space-8);
}

.ef-hero__content {
	max-width: 64rem;
}

.ef-hero__eyebrow {
	margin-bottom: var(--ef-space-4);
}

.ef-hero__title {
	max-width: 13ch;
	margin-bottom: var(--ef-space-5);
	font-size: var(--ef-text-display);
	line-height: 0.92;
	letter-spacing: var(--ef-tracking-tight);
}

.ef-hero__lead {
	max-width: var(--ef-measure-lead);
	font-size: var(--ef-text-body-lg);
	color: var(--ef-color-text-muted);
}

.ef-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ef-space-3);
	margin-top: var(--ef-space-6);
}

.ef-hero__meta {
	display: grid;
	gap: var(--ef-space-4);
	padding-top: var(--ef-space-5);
	border-top: 1px solid var(--ef-border-subtle);
}

/* ==========================================================
   EFDS Section Header
   ========================================================== */

.ef-section-header {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 2fr);
	align-items: end;
	gap: var(--ef-space-7);
	margin-bottom: var(--ef-space-7);
}

.ef-section-header__meta {
	display: grid;
	gap: var(--ef-space-3);
}

.ef-section-header__title {
	max-width: var(--ef-measure-heading);
	margin: 0;
	font-size: var(--ef-text-h2);
	letter-spacing: var(--ef-tracking-tight);
}

.ef-section-header__lead {
	max-width: var(--ef-measure-lead);
	margin-top: var(--ef-space-4);
	color: var(--ef-color-text-muted);
}

/* ==========================================================
   EFDS Feature Block
   ========================================================== */

.ef-feature {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: var(--ef-space-7);
	align-items: stretch;
	padding: var(--ef-space-6);
	border: 1px solid var(--ef-border-subtle);
	border-radius: var(--ef-radius-xl);
	background:
		var(--ef-gradient-glow),
		var(--ef-surface-2);
	overflow: hidden;
}

.ef-feature__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	min-height: 26rem;
}

.ef-feature__index {
	margin-bottom: auto;
	font-family: var(--ef-font-mono);
	font-size: var(--ef-font-size-xs);
	letter-spacing: var(--ef-tracking-system);
	color: var(--ef-color-text-muted);
}

.ef-feature__title {
	max-width: 14ch;
	margin-bottom: var(--ef-space-4);
	font-size: var(--ef-text-h2);
	letter-spacing: var(--ef-tracking-tight);
}

.ef-feature__lead {
	max-width: var(--ef-measure-lead);
	color: var(--ef-color-text-muted);
}

.ef-feature__actions {
	margin-top: var(--ef-space-5);
}

.ef-feature__visual {
	position: relative;
	min-height: 26rem;
	border: 1px solid var(--ef-border-subtle);
	border-radius: var(--ef-radius-lg);
	background: var(--ef-surface-3);
	overflow: hidden;
}

.ef-feature__visual::before {
	content: "";
	position: absolute;
	inset: 18%;
	border-radius: 50%;
	background: var(--ef-gradient-glow);
	filter: blur(18px);
}

/* ==========================================================
   EFDS Split Feature
   ========================================================== */

.ef-split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--ef-space-6);
}

.ef-split__item {
	padding: var(--ef-space-6);
	border-top: 1px solid var(--ef-border-subtle);
}

.ef-split__title {
	margin-bottom: var(--ef-space-3);
	font-size: var(--ef-text-h3);
}

.ef-split__body {
	color: var(--ef-color-text-muted);
}

/* ==========================================================
   Responsive
   ========================================================== */

@media (max-width: 64rem) {

	.ef-hero__inner,
	.ef-feature,
	.ef-section-header {
		grid-template-columns: 1fr;
	}

	.ef-hero {
		min-height: auto;
	}

	.ef-hero__title {
		max-width: 15ch;
	}

	.ef-feature__content,
	.ef-feature__visual {
		min-height: 20rem;
	}
}

@media (max-width: 40rem) {

	.ef-hero {
		padding-block: var(--ef-space-7);
	}

	.ef-feature {
		padding: var(--ef-space-5);
	}

	.ef-feature__content,
	.ef-feature__visual {
		min-height: auto;
	}

	.ef-split {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================
   EFDS Forms
   ========================================================== */

.ef-form {
	display: grid;
	gap: var(--ef-space-5);
}

.ef-form-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--ef-space-4);
}

.ef-field {
	display: grid;
	gap: var(--ef-space-2);
}

.ef-field__label {
	font-family: var(--ef-font-mono);
	font-size: var(--ef-font-size-xs);
	letter-spacing: var(--ef-tracking-wide);
	text-transform: uppercase;
	color: var(--ef-color-text-muted);
}

.ef-input,
.ef-select,
.ef-textarea {
	width: 100%;
	border: 1px solid var(--ef-field-border);
	border-radius: var(--ef-radius-md);
	background: var(--ef-field-background);
	color: var(--ef-color-text);
	font: inherit;
	transition:
		background-color var(--ef-duration-fast) var(--ef-ease-standard),
		border-color var(--ef-duration-fast) var(--ef-ease-standard),
		box-shadow var(--ef-duration-fast) var(--ef-ease-standard);
}

.ef-input,
.ef-select {
	min-height: var(--ef-field-height);
	padding-inline: var(--ef-field-padding-inline);
}

.ef-textarea {
	min-height: 9rem;
	padding:
		var(--ef-field-padding-block)
		var(--ef-field-padding-inline);
	resize: vertical;
}

.ef-input::placeholder,
.ef-textarea::placeholder {
	color: var(--ef-field-placeholder);
}

.ef-input:hover,
.ef-select:hover,
.ef-textarea:hover {
	border-color: rgba(255, 255, 255, 0.20);
}

.ef-input:focus,
.ef-select:focus,
.ef-textarea:focus {
	outline: none;
	border-color: var(--ef-field-border-focus);
	background: var(--ef-field-background-focus);
	box-shadow: var(--ef-focus-ring);
}

.ef-input:disabled,
.ef-select:disabled,
.ef-textarea:disabled {
	opacity: var(--ef-disabled-opacity);
	cursor: not-allowed;
}

.ef-field__hint,
.ef-field__message {
	font-size: var(--ef-font-size-xs);
	color: var(--ef-color-text-muted);
}

.ef-field--success .ef-input,
.ef-field--success .ef-select,
.ef-field--success .ef-textarea {
	border-color: var(--ef-color-success);
}

.ef-field--warning .ef-input,
.ef-field--warning .ef-select,
.ef-field--warning .ef-textarea {
	border-color: var(--ef-color-warning);
}

.ef-field--error .ef-input,
.ef-field--error .ef-select,
.ef-field--error .ef-textarea {
	border-color: var(--ef-color-danger);
}

.ef-field--success .ef-field__message {
	color: var(--ef-color-success);
}

.ef-field--warning .ef-field__message {
	color: var(--ef-color-warning);
}

.ef-field--error .ef-field__message {
	color: var(--ef-color-danger);
}

/* ==========================================================
   Checkbox / Radio
   ========================================================== */

.ef-choice {
	display: flex;
	align-items: flex-start;
	gap: var(--ef-space-3);
	cursor: pointer;
}

.ef-choice input {
	width: 1rem;
	height: 1rem;
	margin-top: 0.2rem;
	accent-color: var(--ef-accent);
}

.ef-choice__label {
	font-size: var(--ef-font-size-sm);
}

/* ==========================================================
   Toggle
   ========================================================== */

.ef-toggle {
	display: inline-flex;
	align-items: center;
	gap: var(--ef-space-3);
	cursor: pointer;
}

.ef-toggle__control {
	position: relative;
	width: 2.75rem;
	height: 1.5rem;
	border: 1px solid var(--ef-border-subtle);
	border-radius: var(--ef-radius-pill);
	background: var(--ef-surface-3);
	transition:
		background-color var(--ef-duration-fast) var(--ef-ease-standard),
		border-color var(--ef-duration-fast) var(--ef-ease-standard);
}

.ef-toggle__control::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 0.2rem;
	width: 1rem;
	height: 1rem;
	border-radius: 50%;
	background: var(--ef-color-white);
	transform: translateY(-50%);
	transition: transform var(--ef-duration-fast) var(--ef-ease-standard);
}

.ef-toggle input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.ef-toggle input:checked + .ef-toggle__control {
	border-color: var(--ef-border-accent);
	background: var(--ef-accent);
}

.ef-toggle input:checked + .ef-toggle__control::after {
	transform: translate(1.2rem, -50%);
	background: var(--ef-color-navy-950);
}

.ef-toggle input:focus-visible + .ef-toggle__control {
	box-shadow: var(--ef-focus-ring);
}

/* ==========================================================
   Data Controls
   ========================================================== */

.ef-control-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ef-space-3);
	padding: var(--ef-space-3);
	border: 1px solid var(--ef-border-subtle);
	border-radius: var(--ef-radius-lg);
	background: var(--ef-surface-3);
}

.ef-control-group {
	display: inline-flex;
	align-items: center;
	gap: var(--ef-space-2);
}

.ef-control-label {
	font-family: var(--ef-font-mono);
	font-size: var(--ef-font-size-xs);
	letter-spacing: var(--ef-tracking-wide);
	text-transform: uppercase;
	color: var(--ef-color-text-muted);
}

@media (max-width: 40rem) {

	.ef-form-row {
		grid-template-columns: 1fr;
	}

	.ef-control-bar {
		align-items: stretch;
		flex-direction: column;
	}
}

/* ==========================================================
   EFDS Interactive Navigation
   ========================================================== */

.ef-menu-toggle {
	position: relative;
	z-index: calc(var(--ef-z-header) + 2);
	align-items: center;
	justify-content: center;
	min-height: var(--ef-control-height-sm);
	padding-inline: var(--ef-control-padding-inline-sm);
	border: 1px solid var(--ef-border-subtle);
	border-radius: var(--ef-radius-pill);
	background: var(--ef-surface-3);
	color: var(--ef-color-text);
	transition:
		border-color var(--ef-duration-fast) var(--ef-ease-standard),
		background-color var(--ef-duration-fast) var(--ef-ease-standard),
		box-shadow var(--ef-duration-fast) var(--ef-ease-standard);
}

.ef-menu-toggle:hover,
.ef-menu-toggle:focus-visible {
	border-color: var(--ef-border-accent);
	box-shadow: var(--ef-glow-sm);
}

.ef-menu-toggle:focus-visible {
	outline: none;
	box-shadow: var(--ef-focus-ring);
}

@media (max-width: 64rem) {

	.ef-primary-nav {
		position: fixed;
		z-index: var(--ef-z-header);
		inset: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: var(--ef-page-gutter);
		background:
			var(--ef-gradient-glow),
			var(--ef-color-navy-950);
		opacity: 0;
		visibility: hidden;
		transform: translateY(calc(var(--ef-animation-distance-sm) * -1));
		transition:
			opacity var(--ef-duration-base) var(--ef-ease-standard),
			transform var(--ef-duration-base) var(--ef-ease-standard),
			visibility 0s linear var(--ef-duration-base);
	}

	.ef-primary-nav.is-open {
		opacity: 1;
		visibility: visible;
		transform: none;
		transition-delay: 0s;
	}

	.ef-primary-nav__list {
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
		gap: var(--ef-space-5);
		width: min(100%, 32rem);
	}

	.ef-primary-nav__list a {
		font-size: var(--ef-text-h3);
		letter-spacing: var(--ef-tracking-heading);
	}

	body.ef-nav-open {
		overflow: hidden;
	}

	.ef-menu-toggle {
		display: inline-flex;
	}
}

@media (prefers-reduced-motion: reduce) {

	.ef-primary-nav {
		transform: none;
		transition: none;
	}
}

/* ==========================================================
   EFDS Institutional Templates
   ========================================================== */

.ef-institutional-header {
	position: relative;
	overflow: hidden;
	border-bottom: 1px solid var(--ef-border-subtle);
}

.ef-institutional-header::after {
	content: "";
	position: absolute;
	z-index: -1;
	top: -50%;
	right: -15%;
	width: min(42rem, 70vw);
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--ef-gradient-glow);
	filter: blur(24px);
	pointer-events: none;
}

.ef-institutional-header__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(18rem, 0.7fr);
	align-items: end;
	gap: var(--ef-space-8);
	min-height: 22rem;
}

.ef-institutional-header__title {
	max-width: 14ch;
	margin: 0;
	font-size: var(--ef-text-h1);
	line-height: 1.02;
	letter-spacing: var(--ef-tracking-tight);
}

.ef-institutional-header__description {
	padding-top: var(--ef-space-5);
	border-top: 1px solid var(--ef-border-subtle);
}

.ef-institutional-single {
	position: relative;
}

.ef-institutional-single .ef-prose {
	margin-inline: auto;
}

.nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--ef-space-2);
	margin-top: var(--ef-space-7);
}

.nav-links .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: var(--ef-control-height-sm);
	min-height: var(--ef-control-height-sm);
	padding-inline: var(--ef-space-3);
	border: 1px solid var(--ef-border-subtle);
	border-radius: var(--ef-radius-pill);
	text-decoration: none;
}

.nav-links .current {
	border-color: var(--ef-border-accent);
	color: var(--ef-accent);
	box-shadow: var(--ef-glow-sm);
}

@media (max-width: 64rem) {

	.ef-institutional-header__grid {
		grid-template-columns: 1fr;
		min-height: auto;
	}
}

@media (max-width: 40rem) {

	.ef-institutional-header__title {
		max-width: none;
	}
}

/* ==========================================================
   Header Brand Symbol Preview
   ========================================================== */

.ef-brand{
	display:flex;
	align-items:center;
	gap:14px;
}

.ef-brand__symbol{
	display:block;
	width:34px;
	height:34px;
	object-fit:contain;
	flex:0 0 auto;
}

.ef-brand__name{
	line-height:1;
}

.ef-brand__division{
	margin-left:6px;
	line-height:1;
	letter-spacing:.12em;
	text-transform:uppercase;
}


/* ==========================================================
   EventFlow Header Brand — Final Alignment
   ========================================================== */

.ef-brand {
	display: inline-flex;
	align-items: center;
	gap: 0;
}

.ef-brand__symbol {
	display: block;
	width: 30px;
	height: 30px;
	margin-right: 9px;
	object-fit: contain;
	flex: 0 0 auto;
}

.ef-brand__name {
	margin: 0;
	line-height: 1;
}

.ef-brand__division {
	margin-left: 4px;
	line-height: 1;
	letter-spacing: 0.10em;
	text-transform: uppercase;
}

/* ==========================================================
   Header Brand Optical Tuning v2
   ========================================================== */

.ef-brand{
	display:inline-flex;
	align-items:center;
}

.ef-brand__symbol{
	width:34px;
	height:34px;
	margin-right:9px;
}

.ef-brand__name{
	display:block;
	line-height:1;
}

.ef-brand__division{
	display:block;
	margin-left:7px;
	position:relative;
	top:2px;
	font-size:.73em;
	letter-spacing:.12em;
	text-transform:uppercase;
}


/* ==========================================================
   C6.6 — Visual Consistency & Surface Polish
   ========================================================== */

.ef-card,
.ef-panel,
.ef-feature {
	border-color: var(--ef-border-subtle);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.025);
}

.ef-card--interactive {
	transition:
		transform var(--ef-duration-fast) var(--ef-ease-standard),
		border-color var(--ef-duration-fast) var(--ef-ease-standard),
		box-shadow var(--ef-duration-base) var(--ef-ease-standard),
		background-color var(--ef-duration-base) var(--ef-ease-standard);
}

.ef-card--interactive:hover {
	border-color: var(--ef-border-accent);
	box-shadow:
		var(--ef-shadow-sm),
		0 0 28px rgba(68, 217, 230, 0.10);
}

.ef-panel--glass {
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-color: rgba(255, 255, 255, 0.10);
	background:
		linear-gradient(
			180deg,
			rgba(255, 255, 255, 0.055),
			rgba(255, 255, 255, 0.025)
		);
}

.ef-button,
button,
input[type="submit"] {
	transition:
		transform var(--ef-duration-fast) var(--ef-ease-standard),
		border-color var(--ef-duration-fast) var(--ef-ease-standard),
		box-shadow var(--ef-duration-base) var(--ef-ease-standard),
		background-color var(--ef-duration-fast) var(--ef-ease-standard);
}

.ef-button:hover,
button:hover,
input[type="submit"]:hover {
	transform: translateY(-1px);
}

.ef-button:active,
button:active,
input[type="submit"]:active {
	transform: translateY(0);
}

.ef-button:focus-visible,
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: none;
	box-shadow: var(--ef-focus-ring);
}

.ef-section-header {
	border-color: var(--ef-border-subtle);
}

.ef-institutional-header {
	border-color: var(--ef-border-subtle);
}

.ef-card__title,
.ef-feature__title {
	text-wrap: balance;
}

.ef-card__excerpt,
.ef-feature__description,
.ef-institutional-header__description {
	text-wrap: pretty;
}

@media (prefers-reduced-motion: reduce) {

	.ef-card--interactive,
	.ef-button,
	button,
	input[type="submit"] {
		transition: none !important;
		transform: none !important;
	}
}

/* ==========================================================
   C6.7 — Responsive Component Polish
   ========================================================== */

@media (max-width: 64rem) {

	.ef-card {
		min-height: 100%;
	}

	.ef-button {
		min-height: var(--ef-control-height-md);
	}

	.ef-header__main-inner {
		min-height: var(--ef-header-height);
	}
}

@media (max-width: 40rem) {

	.ef-brand__symbol {
		flex-shrink: 0;
	}

	.ef-card,
	.ef-panel,
	.ef-feature {
		width: 100%;
	}

	.ef-button {
		max-width: 100%;
	}

	.ef-card__title,
	.ef-feature__title {
		text-wrap: balance;
	}

	.ef-card__excerpt,
	.ef-feature__description {
		text-wrap: pretty;
	}
}

/* ==========================================================
   R1.9 — WordPress Topbar Navigation
   ========================================================== */

.ef-topbar {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	width: 100%;
	gap: var(--ef-space-6);
}

.ef-topbar__left {
	justify-self: start;
}

.ef-topbar__right {
	justify-self: end;
}

.ef-topbar__menu {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 1.8vw, 2rem);
	padding: 0;
	margin: 0;
	list-style: none;
}

.ef-topbar__menu > li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ef-topbar__menu a {
	position: relative;
	display: inline-block;
	padding-block: var(--ef-space-3);
	color: var(--ef-color-text);
	text-decoration: none;
	font-size: var(--ef-font-size-sm);
	font-weight: 500;
	white-space: nowrap;
}

.ef-topbar__menu a::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform var(--ef-duration-base) var(--ef-ease-standard);
}

.ef-topbar__menu a:hover::after,
.ef-topbar__menu a:focus-visible::after,
.ef-topbar__menu .current-menu-item > a::after,
.ef-topbar__menu .current-menu-ancestor > a::after {
	transform: scaleX(1);
	transform-origin: left;
}

@media (max-width: 64rem) {
	.ef-topbar {
		display: none;
	}
}


/* ==========================================================
   D1.1 — Gutenberg Hero Button Adapter
   Maps native Gutenberg Button markup to the EFDS button
   language without changing the framework component contract.
   ========================================================== */

.ef-hero__actions .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--ef-control-height-md);
	padding-inline: var(--ef-control-padding-inline-md);
	border: 1px solid transparent;
	border-radius: var(--ef-radius-sm);
	font-size: var(--ef-font-size-sm);
	font-weight: var(--ef-weight-medium);
	line-height: 1;
	text-decoration: none;
	transition:
		transform var(--ef-duration-base) var(--ef-ease-standard),
		background-color var(--ef-duration-base) var(--ef-ease-standard),
		border-color var(--ef-duration-base) var(--ef-ease-standard),
		box-shadow var(--ef-duration-base) var(--ef-ease-standard),
		color var(--ef-duration-base) var(--ef-ease-standard);
}

.ef-hero__actions .ef-button-primary .wp-block-button__link {
	background: var(--ef-accent);
	color: var(--ef-color-navy-950);
	box-shadow: var(--ef-glow-sm);
}

.ef-hero__actions .ef-button-primary .wp-block-button__link:hover,
.ef-hero__actions .ef-button-primary .wp-block-button__link:focus-visible {
	box-shadow: var(--ef-glow-md);
	transform: translateY(-1px);
}

.ef-hero__actions .ef-button-secondary .wp-block-button__link {
	border-color: var(--ef-border-accent);
	background: transparent;
	color: var(--ef-color-text);
}

.ef-hero__actions .ef-button-secondary .wp-block-button__link:hover,
.ef-hero__actions .ef-button-secondary .wp-block-button__link:focus-visible {
	background: rgba(255, 255, 255, 0.05);
	box-shadow: var(--ef-glow-sm);
	transform: translateY(-1px);
}

.ef-hero__visual {
	min-height: 24rem;
}

@media (max-width: 64rem) {

	.ef-hero__visual {
		min-height: 12rem;
	}
}

@media (max-width: 40rem) {

	.ef-hero__visual {
		display: none;
	}

	.ef-hero__actions {
		align-items: flex-start;
	}

	.ef-hero__actions .wp-block-button {
		width: auto;
	}

	.ef-hero__actions .wp-block-button__link {
		width: auto;
	}
}


/* ==========================================================
   D1.1.1 — Institutional Hero Button Presentation
   ========================================================== */

.ef-hero .ef-button-primary > .wp-block-button__link {
	min-height: 3.25rem;
	padding: 0 1.65rem;
	border: 1px solid var(--ef-border-accent);
	border-radius: var(--ef-radius-sm);
	background: var(--ef-accent);
	color: var(--ef-color-navy-950);
	box-shadow:
		0 0 0 1px rgba(255, 255, 255, 0.04),
		var(--ef-glow-sm);
	font-weight: var(--ef-weight-medium);
	letter-spacing: 0.01em;
}

.ef-hero .ef-button-primary > .wp-block-button__link:hover,
.ef-hero .ef-button-primary > .wp-block-button__link:focus-visible {
	background: var(--ef-accent);
	border-color: var(--ef-accent);
	box-shadow:
		0 0 0 1px rgba(255, 255, 255, 0.08),
		var(--ef-glow-md);
	transform: translateY(-1px);
}

.ef-hero .ef-button-secondary > .wp-block-button__link {
	min-height: 3.25rem;
	padding: 0 1.5rem;
	border: 1px solid var(--ef-border-accent);
	border-radius: var(--ef-radius-sm);
	background: transparent;
	color: var(--ef-color-text);
	box-shadow: none;
}

.ef-hero .ef-button-secondary > .wp-block-button__link:hover,
.ef-hero .ef-button-secondary > .wp-block-button__link:focus-visible {
	background: rgba(255, 255, 255, 0.04);
	border-color: var(--ef-accent);
	color: var(--ef-accent);
	box-shadow: var(--ef-glow-sm);
	transform: translateY(-1px);
}


/* ==========================================================
   D1.2.2 — Institutional Hero Two-Column Editorial Layout
   Gutenberg Group layout normalization.
   ========================================================== */

.ef-hero .ef-container.ef-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	align-items: center;
	gap: var(--ef-space-8);
	width: min(
		calc(100% - (var(--ef-page-gutter) * 2)),
		var(--ef-container-lg)
	);
	margin-inline: auto;
}

.ef-hero .ef-hero__content {
	min-width: 0;
}

.ef-hero .ef-hero__visual {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 24rem;
}

.ef-hero .ef-hero__visual .wp-block-image {
	width: 100%;
	margin: 0;
}

.ef-hero .ef-hero__visual img {
    width:100%;
	display: block;
	width: 100%;
	height: auto;
	max-width: 56rem;
	margin-inline: auto;
	object-fit: contain;
}

@media (max-width: 64rem) {

	.ef-hero .ef-container.ef-hero__inner {
		grid-template-columns: 1fr;
	}

	.ef-hero .ef-hero__visual {
		min-height: auto;
	}

	.ef-hero .ef-hero__visual img {
		max-width: 52rem;
	}
}

/* ==========================================================
   HERO FINAL OVERRIDE
   ========================================================== */

.ef-hero .wp-block-columns{
    display:flex !important;
    align-items:center !important;
    gap:4rem !important;
    flex-wrap:nowrap !important;
}

.ef-hero .wp-block-column:first-child{
    flex:0 0 55% !important;
    max-width:55% !important;
}

.ef-hero .wp-block-column:last-child{
    flex:0 0 45% !important;
    max-width:45% !important;
}

.ef-hero .wp-block-column:last-child img{
    display:block;
    width:100% !important;
    max-width:680px !important;
    margin-left:auto;
}



/* ==========================================================
   C1 — TECHNICAL SPOTLIGHT

   Premium editorial / technology presentation pattern.
   Theme presentation only.
   All editorial content remains Gutenberg-owned.
   ========================================================== */

.ef-spotlight {
	container-name: ef-spotlight;
	container-type: inline-size;

	position: relative;
	isolation: isolate;

	border: 1px solid var(--ef-border-subtle);
	border-radius: var(--ef-radius-xl);

	background:
		var(--ef-gradient-glow),
		var(--ef-surface-1);

	overflow: hidden;

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

/*
 * Quiet technical coordinate line.
 */

.ef-spotlight::before {
	content: "";

	position: absolute;
	top: 0;
	left: clamp(2rem, 4vw, 4rem);

	width: clamp(5rem, 10vw, 10rem);
	height: 1px;

	background: var(--ef-border-accent);

	opacity: 0.9;

	pointer-events: none;
}

/*
 * Large asymmetric composition.
 */

.ef-spotlight__grid {
	display: grid;

	grid-template-columns:
		minmax(0, 1.12fr)
		minmax(20rem, 0.88fr);

	gap:
		clamp(
			var(--ef-space-6),
			5vw,
			var(--ef-space-9)
		);

	min-height:
		clamp(
			34rem,
			48vw,
			48rem
		);

	padding:
		clamp(
			var(--ef-space-6),
			5vw,
			var(--ef-space-9)
		);
}

/*
 * Editorial axis.
 */

.ef-spotlight__content {
	display: flex;
	flex-direction: column;

	min-width: 0;
}

.ef-spotlight__meta {
	display: flex;
	align-items: center;

	gap: var(--ef-space-4);

	padding-bottom: var(--ef-space-5);

	border-bottom: 1px solid var(--ef-border-subtle);
}

.ef-spotlight__index,
.ef-spotlight__eyebrow,
.ef-spotlight__visual-label {
	margin: 0;

	font-family: var(--ef-font-mono);
	font-size: var(--ef-font-size-xs);

	letter-spacing: var(--ef-tracking-system);
	text-transform: uppercase;
}

.ef-spotlight__index {
	color: var(--ef-accent);
}

.ef-spotlight__eyebrow {
	color: var(--ef-color-text-muted);
}

.ef-spotlight__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: flex-end;

	padding-top:
		clamp(
			var(--ef-space-7),
			7vw,
			var(--ef-space-10)
		);
}

.ef-spotlight__title {
	max-width: 11ch;

	margin: 0;

	font-size:
		clamp(
			3.25rem,
			6.4vw,
			7rem
		);

	line-height: 0.89;
	letter-spacing: -0.06em;

	text-wrap: balance;
}

.ef-spotlight__lead {
	max-width: 42rem;

	margin:
		clamp(
			var(--ef-space-5),
			2.5vw,
			var(--ef-space-7)
		)
		0
		0;

	color: var(--ef-color-text-muted);

	font-size:
		clamp(
			1rem,
			1.35vw,
			1.25rem
		);

	line-height: 1.6;

	text-wrap: pretty;
}

.ef-spotlight__actions {
	margin-top:
		clamp(
			var(--ef-space-5),
			2.5vw,
			var(--ef-space-7)
		);
}

/*
 * Visual / media axis.
 */

.ef-spotlight__visual {
	position: relative;

	display: flex;
	align-items: center;

	min-width: 0;
}

.ef-spotlight__visual::before {
	content: "";

	position: absolute;

	inset:
		clamp(
			12%,
			4vw,
			18%
		);

	border-radius: 50%;

	background: var(--ef-gradient-glow);

	filter: blur(28px);

	opacity: 0.72;

	pointer-events: none;
}

.ef-spotlight__visual-frame {
	position: relative;

	width: 100%;

	border: 1px solid var(--ef-border-subtle);
	border-radius: var(--ef-radius-lg);

	background:
		linear-gradient(
			145deg,
			rgba(255, 255, 255, 0.045),
			rgba(255, 255, 255, 0.012)
		),
		var(--ef-surface-2);

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.04);

	overflow: hidden;
}

/*
 * Grid coordinates create a subtle engineering surface
 * without requiring an image.
 */

.ef-spotlight__visual-frame::before {
	content: "";

	position: absolute;
	inset: 0;

	background-image:
		linear-gradient(
			rgba(255, 255, 255, 0.035) 1px,
			transparent 1px
		),
		linear-gradient(
			90deg,
			rgba(255, 255, 255, 0.035) 1px,
			transparent 1px
		);

	background-size: 3rem 3rem;

	mask-image:
		linear-gradient(
			135deg,
			rgba(0, 0, 0, 0.85),
			transparent 82%
		);

	-webkit-mask-image:
		linear-gradient(
			135deg,
			rgba(0, 0, 0, 0.85),
			transparent 82%
		);

	pointer-events: none;
}

.ef-spotlight__visual-frame::after {
	content: "";

	position: absolute;

	right: 10%;
	bottom: 12%;

	width: 34%;
	aspect-ratio: 1;

	border:
		1px solid
		var(--ef-border-accent);

	border-radius: 50%;

	box-shadow:
		0 0 40px rgba(68, 217, 230, 0.08);

	opacity: 0.7;

	pointer-events: none;
}

.ef-spotlight__visual-label {
	position: absolute;

	z-index: 2;

	left: var(--ef-space-5);
	bottom: var(--ef-space-5);

	color: var(--ef-color-text-muted);
}

/*
 * Gutenberg images inserted inside the visual frame
 * inherit the spotlight composition.
 */

.ef-spotlight__visual-frame .wp-block-image,
.ef-spotlight__visual-frame figure {
	position: relative;
	z-index: 2;

	width: 100%;
	height: 100%;

	margin: 0;
}

.ef-spotlight__visual-frame img,
.ef-spotlight__visual-frame video {
	width: 100%;
	height: 100%;

	object-fit: cover;
}

/*
 * Interaction is intentionally restrained.
 */

.ef-spotlight {
	transition:
		border-color var(--ef-duration-base) var(--ef-ease-standard),
		box-shadow var(--ef-duration-base) var(--ef-ease-standard);
}

.ef-spotlight:hover,
.ef-spotlight:focus-within {
	border-color: var(--ef-border-accent);

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.04),
		var(--ef-glow-soft);
}

/*
 * Component-responsive composition.
 */

@container ef-spotlight (max-width: 64rem) {

	.ef-spotlight__grid {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(17rem, 0.72fr);

		min-height: 32rem;
	}

	.ef-spotlight__title {
		font-size:
			clamp(
				3rem,
				7vw,
				5.5rem
			);
	}
}

@container ef-spotlight (max-width: 48rem) {

	.ef-spotlight__grid {
		grid-template-columns: 1fr;

		min-height: auto;
	}

	.ef-spotlight__body {
		min-height:
			clamp(
				24rem,
				70vw,
				32rem
			);
	}

	.ef-spotlight__visual {
		width: 100%;
	}

	.ef-spotlight__visual-frame {
		max-width: 42rem;
	}
}

@container ef-spotlight (max-width: 34rem) {

	.ef-spotlight__grid {
		padding:
			clamp(
				var(--ef-space-5),
				8vw,
				var(--ef-space-6)
			);
	}

	.ef-spotlight__meta {
		align-items: flex-start;
		flex-direction: column;

		gap: var(--ef-space-2);
	}

	.ef-spotlight__body {
		min-height: auto;

		padding-top: var(--ef-space-8);
	}

	.ef-spotlight__title {
		max-width: 10ch;

		font-size:
			clamp(
				2.75rem,
				14vw,
				4.5rem
			);

		line-height: 0.92;
	}

	.ef-spotlight__visual-label {
		left: var(--ef-space-4);
		bottom: var(--ef-space-4);
	}
}

/*
 * Accessibility remains authoritative.
 */

@media (prefers-reduced-motion: reduce) {

	.ef-spotlight {
		transition: none !important;
	}
}


/* ==========================================================
   C1R — TECHNICAL SPOTLIGHT / INSTRUMENT ACTION

   Deliberately avoids generic SaaS / AI pill-button styling.
   Scoped exclusively to Technical Spotlight.
   ========================================================== */

.ef-spotlight__actions {
        margin-top:
                clamp(
                        var(--ef-space-5),
                        2.5vw,
                        var(--ef-space-7)
                );
}

.ef-spotlight__actions .wp-block-button {
        margin: 0;
}

.ef-spotlight__actions .wp-block-button__link {
        position: relative;

        display: inline-grid;
        grid-template-columns: auto 3.25rem;
        align-items: stretch;

        min-height: 3.5rem;

        padding: 0;

        border: 1px solid var(--ef-border-subtle);
        border-radius: 2px;

        background: transparent;

        color: var(--ef-color-text);

        font-family: var(--ef-font-mono);
        font-size: var(--ef-font-size-xs);
        font-weight: var(--ef-weight-medium);

        letter-spacing: 0.11em;
        line-height: 1;
        text-transform: uppercase;

        box-shadow: none;

        overflow: hidden;

        transition:
                border-color var(--ef-duration-fast) var(--ef-ease-standard),
                background-color var(--ef-duration-fast) var(--ef-ease-standard),
                color var(--ef-duration-fast) var(--ef-ease-standard);
}

/*
 * Label cell.
 */

.ef-spotlight__actions .wp-block-button__link {
        padding-left: 1.25rem;
}

/*
 * Independent terminal/action cell.
 */

.ef-spotlight__actions .wp-block-button__link::after {
        content: "↗";

        display: grid;
        place-items: center;

        width: 3.25rem;
        height: 100%;

        margin-left: 1.25rem;

        border-left: 1px solid var(--ef-border-subtle);

        color: var(--ef-accent);

        font-family: var(--ef-font-primary);
        font-size: 1.05rem;
        font-weight: 400;

        transition:
                transform var(--ef-duration-fast) var(--ef-ease-standard),
                border-color var(--ef-duration-fast) var(--ef-ease-standard);
}

/*
 * Small coordinate marker.
 */

.ef-spotlight__actions .wp-block-button__link::before {
        content: "";

        position: absolute;

        top: -1px;
        left: -1px;

        width: 1.75rem;
        height: 1px;

        background: var(--ef-accent);

        transition:
                width var(--ef-duration-base) var(--ef-ease-standard);
}

/*
 * Interaction: technical state change, not glow.
 */

.ef-spotlight__actions .wp-block-button__link:hover,
.ef-spotlight__actions .wp-block-button__link:focus-visible {
        border-color: var(--ef-border-accent);

        background:
                rgba(255, 255, 255, 0.025);

        color: var(--ef-color-text);

        box-shadow: none;

        transform: none;
}

.ef-spotlight__actions .wp-block-button__link:hover::before,
.ef-spotlight__actions .wp-block-button__link:focus-visible::before {
        width: 4rem;
}

.ef-spotlight__actions .wp-block-button__link:hover::after,
.ef-spotlight__actions .wp-block-button__link:focus-visible::after {
        border-color: var(--ef-border-accent);

        transform: translate(2px, -2px);
}

.ef-spotlight__actions .wp-block-button__link:active {
        background:
                rgba(255, 255, 255, 0.045);
}

/*
 * Accessibility.
 */

@media (prefers-reduced-motion: reduce) {

        .ef-spotlight__actions .wp-block-button__link,
        .ef-spotlight__actions .wp-block-button__link::before,
        .ef-spotlight__actions .wp-block-button__link::after {
                transition: none !important;
        }

        .ef-spotlight__actions .wp-block-button__link:hover::after,
        .ef-spotlight__actions .wp-block-button__link:focus-visible::after {
                transform: none !important;
        }
}



/* ==========================================================
   C1R.2 — TECHNICAL SPOTLIGHT / EDITORIAL ACTION

   Removes generic button language.
   Presents the CTA as a technical editorial navigation control.
   Scoped exclusively to Technical Spotlight.
   ========================================================== */

.ef-spotlight__actions {
        margin-top:
                clamp(
                        var(--ef-space-6),
                        3vw,
                        var(--ef-space-8)
                );
}

.ef-spotlight__actions .wp-block-button {
        margin: 0;
}

.ef-spotlight__actions .wp-block-button__link {
        position: relative;

        display: inline-flex;
        align-items: center;
        gap: 1rem;

        min-height: auto;

        padding:
                0
                0
                0.7rem
                0;

        border: 0;
        border-radius: 0;

        background: transparent !important;

        color: var(--ef-color-text);

        font-family: var(--ef-font-mono);
        font-size: var(--ef-font-size-xs);
        font-weight: var(--ef-weight-medium);

        letter-spacing: 0.12em;
        line-height: 1.2;
        text-transform: uppercase;

        box-shadow: none !important;

        transform: none !important;
}

/*
 * Technical baseline.
 */

.ef-spotlight__actions .wp-block-button__link::before {
        content: "";

        position: absolute;

        left: 0;
        right: 0;
        bottom: 0;

        height: 1px;

        background:
                linear-gradient(
                        90deg,
                        var(--ef-accent) 0,
                        var(--ef-accent) 2.5rem,
                        var(--ef-border-subtle) 2.5rem,
                        var(--ef-border-subtle) 100%
                );

        transform-origin: left center;

        transition:
                background var(--ef-duration-base) var(--ef-ease-standard);
}

/*
 * Navigation glyph.
 */

.ef-spotlight__actions .wp-block-button__link::after {
        content: "↗";

        position: static;

        display: inline-block;

        width: auto;
        height: auto;

        margin: 0;

        border: 0;

        color: var(--ef-accent);

        font-family: var(--ef-font-primary);
        font-size: 1.05rem;
        font-weight: 400;

        line-height: 1;

        transition:
                transform var(--ef-duration-fast) var(--ef-ease-standard);
}

.ef-spotlight__actions .wp-block-button__link:hover,
.ef-spotlight__actions .wp-block-button__link:focus-visible {
        background: transparent !important;

        color: var(--ef-color-text);

        box-shadow: none !important;

        transform: none !important;
}

.ef-spotlight__actions .wp-block-button__link:hover::before,
.ef-spotlight__actions .wp-block-button__link:focus-visible::before {
        background:
                linear-gradient(
                        90deg,
                        var(--ef-accent) 0,
                        var(--ef-accent) 100%
                );
}

.ef-spotlight__actions .wp-block-button__link:hover::after,
.ef-spotlight__actions .wp-block-button__link:focus-visible::after {
        transform: translate(0.18rem, -0.18rem);
}

.ef-spotlight__actions .wp-block-button__link:active {
        opacity: 0.72;
}

@media (prefers-reduced-motion: reduce) {

        .ef-spotlight__actions .wp-block-button__link::before,
        .ef-spotlight__actions .wp-block-button__link::after {
                transition: none !important;
        }

        .ef-spotlight__actions .wp-block-button__link:hover::after,
        .ef-spotlight__actions .wp-block-button__link:focus-visible::after {
                transform: none !important;
        }
}



/* ==========================================================
   C1.2 — NATIVE GUTENBERG MEDIA SLOT
   Content: Gutenberg
   Presentation: EventFlow Labs Theme
   ========================================================== */

.ef-spotlight__visual-frame .ef-spotlight__image {
        position: relative;
        z-index: 2;

        width: 100%;
        height: 100%;

        margin: 0;
}

.ef-spotlight__visual-frame .ef-spotlight__image img {
        display: block;

        width: 100%;
        height: 100%;

        aspect-ratio: 4 / 3;
        object-fit: cover;
}



/* ==========================================================
   C1.3 — TECHNICAL SPOTLIGHT
   HERO-ALIGNED TWO COLUMN ARCHITECTURE

   Uses the same proven Gutenberg structural grammar as Hero:
   wp:columns + wp:column + wp:image.
   ========================================================== */

.ef-spotlight .ef-spotlight__grid {
    display: flex !important;
    align-items: center !important;
    gap: clamp(2rem, 3.5vw, 4rem) !important;
    flex-wrap: nowrap !important;

    width: 100%;
    min-height: clamp(34rem, 48vw, 48rem);

    padding:
        clamp(
            var(--ef-space-6),
            5vw,
            var(--ef-space-9)
        );
}

.ef-spotlight .ef-spotlight__content {
    flex: 0 0 55% !important;
    max-width: 55% !important;
    min-width: 0;
}

.ef-spotlight .ef-spotlight__visual {
    position: relative;

    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;

    flex: 0 0 45% !important;
    max-width: 45% !important;

    min-width: 0;
    min-height: 24rem;
}

/*
 * The image itself is the visual.
 * No nested frame controls layout.
 */

.ef-spotlight .ef-spotlight__visual .wp-block-image {
    position: relative;
    z-index: 2;

    width: 100%;
    margin: 0;
}

.ef-spotlight .ef-spotlight__visual img {
    display: block;

    width: 100% !important;
    height: auto !important;

    max-width: 42rem !important;

    margin-left: auto;
    margin-right: 0;

    object-fit: contain;
}

/*
 * Preserve only the subtle visual atmosphere.
 */

.ef-spotlight .ef-spotlight__visual::before {
    z-index: 1;
}

/*
 * Disable obsolete frame architecture if stale markup
 * exists in already inserted content.
 */

.ef-spotlight .ef-spotlight__visual-frame {
    width: 100%;
}

@media (max-width: 64rem) {

    .ef-spotlight .ef-spotlight__grid {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .ef-spotlight .ef-spotlight__content,
    .ef-spotlight .ef-spotlight__visual {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    .ef-spotlight .ef-spotlight__visual {
        min-height: auto;
        justify-content: center !important;
    }

    .ef-spotlight .ef-spotlight__visual img {
        max-width: 42rem !important;
        margin-inline: auto;
    }
}


/* ==========================================================
   C1.4R — TECHNICAL SPOTLIGHT FINAL LAYOUT

   Compatibility layer for:
   - legacy saved wp:group Spotlight instances
   - current wp:columns Spotlight pattern
   - constrained institutional prose wrapper

   Theme presentation only.
   ========================================================== */

/*
 * Spotlight is a wide institutional component even when
 * inserted inside the normal editorial prose measure.
 */
.ef-prose > .ef-spotlight,
.ef-prose .ef-spotlight.alignwide {
    position: relative;
    left: 50%;

    width: min(
        calc(100vw - (var(--ef-page-gutter) * 2)),
        var(--ef-container-lg)
    );

    max-width: none;

    transform: translateX(-50%);
}

/*
 * Both historical Group markup and current Columns markup
 * use the same two-axis composition.
 */
.ef-spotlight .ef-spotlight__grid,
.ef-spotlight .ef-spotlight__grid > .wp-block-group__inner-container {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;

    align-items: center !important;
    justify-content: space-between !important;

    width: 100% !important;

    gap: clamp(3rem, 5vw, 6rem) !important;
}

/*
 * Editorial axis.
 */
.ef-spotlight .ef-spotlight__content {
    flex: 0 0 calc(55% - 1.5rem) !important;

    width: calc(55% - 1.5rem) !important;
    max-width: calc(55% - 1.5rem) !important;

    min-width: 0;
}

/*
 * Media axis.
 */
.ef-spotlight .ef-spotlight__visual {
    display: flex !important;

    flex: 0 0 calc(45% - 1.5rem) !important;

    width: calc(45% - 1.5rem) !important;
    max-width: calc(45% - 1.5rem) !important;

    min-width: 0;

    align-items: center !important;
    justify-content: flex-end !important;

    margin-left: auto !important;
}

/*
 * Support both:
 * legacy visual-frame markup
 * and current direct core/image markup.
 */
.ef-spotlight .ef-spotlight__visual-frame,
.ef-spotlight .ef-spotlight__visual .wp-block-image {
    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
}

.ef-spotlight .ef-spotlight__visual img {
    display: block;

    width: 100% !important;
    height: auto !important;

    max-width: 42rem !important;

    margin-left: auto !important;
    margin-right: 0 !important;

    object-fit: contain;
}

/*
 * Responsive composition.
 */
@media (max-width: 64rem) {

    .ef-spotlight .ef-spotlight__grid,
    .ef-spotlight .ef-spotlight__grid > .wp-block-group__inner-container {
        flex-direction: column !important;

        align-items: stretch !important;
    }

    .ef-spotlight .ef-spotlight__content,
    .ef-spotlight .ef-spotlight__visual {
        flex: 0 0 100% !important;

        width: 100% !important;
        max-width: 100% !important;
    }

    .ef-spotlight .ef-spotlight__visual {
        justify-content: center !important;

        margin-left: 0 !important;
    }

    .ef-spotlight .ef-spotlight__visual img {
        margin-inline: auto !important;
    }
}

/* ==========================================================
   EVENTFLOW LABS — FOOTER FINAL
   ----------------------------------------------------------
   Brand | Institution | Access | Privacy
   ========================================================== */


/*
 * Four-column institutional footer.
 *
 * Privacy remains a normal first-row column instead of
 * wrapping beneath the brand block.
 */
.ef-footer__grid {
    display: grid !important;

    grid-template-columns:
        minmax(18rem, 1.45fr)
        minmax(10rem, 0.85fr)
        minmax(10rem, 0.85fr)
        minmax(10rem, 0.65fr) !important;

    align-items: start !important;

    column-gap: clamp(3rem, 6vw, 7rem) !important;
    row-gap: 0 !important;
}


/*
 * Compact the complete footer.
 */
.ef-footer {
    padding-top: clamp(3.5rem, 5vw, 5rem) !important;
    padding-bottom: clamp(2rem, 3vw, 3rem) !important;
}


/*
 * Brand block.
 */
.ef-footer__brand {
    align-self: start !important;
}


/*
 * Footer logo slightly larger than header identity.
 */
.ef-footer__logo,
.ef-footer__brand img {
    width: auto !important;
    height: auto !important;

    max-width: 11rem !important;
}


/*
 * Keep supporting copy compact.
 */
.ef-footer__brand p {
    max-width: 24rem;

    margin-top: 1.5rem !important;
    margin-bottom: 0 !important;

    line-height: 1.55;
}


/*
 * Footer navigation columns.
 */
.ef-footer__nav,
.ef-footer__column {
    align-self: start !important;
}

.ef-footer__nav ul,
.ef-footer__column ul {
    margin-top: 1.25rem !important;
    margin-bottom: 0 !important;
}


/*
 * Reduce excessive spacing between menu items.
 */
.ef-footer__nav li + li,
.ef-footer__column li + li {
    margin-top: 0.85rem !important;
}


/*
 * Bottom line remains unchanged conceptually,
 * but sits closer to the navigation grid.
 */
.ef-footer__bottom {
    margin-top: clamp(3rem, 5vw, 4.5rem) !important;
    padding-top: 1.5rem !important;
}


/*
 * Tablet.
 */
@media (max-width: 64rem) {

    .ef-footer__grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        row-gap: 3rem !important;
    }

}


/*
 * Mobile.
 */
@media (max-width: 40rem) {

    .ef-footer__grid {
        grid-template-columns: 1fr !important;
        row-gap: 2.5rem !important;
    }

    .ef-footer__logo,
    .ef-footer__brand img {
        max-width: 10rem !important;
    }

}



/* ==========================================================
   EVENTFLOW LABS — FOOTER BRANDING FINAL
   ----------------------------------------------------------
   Correct selectors for the real footer markup.
   ========================================================== */


/*
 * Footer identity.
 *
 * Same brand system as header, with slightly greater
 * visual weight in the institutional closing area.
 */
.ef-footer__identity .ef-brand--footer {
    display: inline-flex !important;
    align-items: center !important;

    gap: 0.65rem !important;

    width: auto !important;
}


/*
 * Real EventFlow symbol.
 */
.ef-footer__identity .ef-brand__symbol--footer {
    display: block !important;

    width: clamp(2rem, 2.5vw, 2.35rem) !important;
    height: auto !important;

    max-width: none !important;

    flex: 0 0 auto;
}


/*
 * Footer wordmark receives approximately 15–20% more
 * presence than its header counterpart.
 */
.ef-footer__identity .ef-brand--footer .ef-brand__name {
    font-size: 1.15em !important;
}

.ef-footer__identity .ef-brand--footer .ef-brand__division {
    font-size: 1.05em !important;
}


/*
 * Keep identity text compact beneath the brand.
 */
.ef-footer__identity .ef-footer__statement {
    max-width: 25rem;

    margin-top: 1.5rem !important;
}


/*
 * Bottom metadata becomes an explicit three-point axis:
 *
 * Copyright | Platform technology | Operational status
 */
.ef-footer__bottom {
    display: grid !important;

    grid-template-columns:
        minmax(0, 1fr)
        auto
        minmax(0, 1fr) !important;

    align-items: center !important;

    column-gap: clamp(1.5rem, 4vw, 4rem) !important;
}


/*
 * Framework / platform declaration.
 */
.ef-footer__powered {
    justify-self: center;

    color: var(--ef-color-text-muted);

    font-family: inherit;
    font-size: 0.72rem;
    line-height: 1.4;

    letter-spacing: 0.08em;
    text-align: center;
}

.ef-footer__powered span {
    display: inline-block;
    margin-inline: 0.4em;

    opacity: 0.55;
}


/*
 * Preserve existing status at the right edge.
 */
.ef-footer__status {
    justify-self: end;
}


/*
 * Responsive footer metadata.
 */
@media (max-width: 64rem) {

    .ef-footer__bottom {
        grid-template-columns:
            1fr
            auto !important;

        row-gap: 1rem !important;
    }

    .ef-footer__powered {
        grid-column: 1 / -1;
        grid-row: 1;

        justify-self: start;

        text-align: left;
    }

}

@media (max-width: 40rem) {

    .ef-footer__bottom {
        grid-template-columns: 1fr !important;

        row-gap: 0.8rem !important;
    }

    .ef-footer__powered,
    .ef-footer__status {
        grid-column: auto;
        grid-row: auto;

        justify-self: start;

        text-align: left;
    }

}


/* ==========================================================
   ACADEMY — PHOTO TREATMENT
   ----------------------------------------------------------
   Same visual language as About:
   rounded edges + subtle integration with site background.
   ========================================================== */

.ef-academy-story__visual {
    min-width: 0;
}

.ef-academy-story__image {
    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;

    overflow: hidden;

    border-radius: 0.85rem;
}

.ef-academy-story__image img {
    display: block;

    width: 100% !important;
    max-width: none !important;

    height: auto;

    border-radius: inherit;

    opacity: 0.88;

    transition:
        opacity 220ms ease,
        transform 320ms ease;
}

/*
 * Very restrained interaction.
 * Image becomes slightly clearer without turning into
 * a decorative hover effect.
 */
.ef-academy-story__image:hover img {
    opacity: 0.96;
    transform: scale(1.008);
}


/* ==========================================================
   Cookie Consent
   ========================================================== */

.ef-cookie-consent[hidden] {
    display: none;
}

.ef-cookie-consent {
    position: fixed;
    z-index: calc(var(--ef-z-modal) + 1);
    right: var(--ef-page-gutter);
    bottom: var(--ef-page-gutter);
    left: var(--ef-page-gutter);
}

.ef-cookie-consent__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--ef-space-7);
    align-items: end;
    width: min(100%, var(--ef-container-xl));
    margin-inline: auto;
    padding: var(--ef-space-6);
    background: var(--ef-color-background);
    border: 1px solid var(--ef-color-border);
    box-shadow:
        0 1.5rem 4rem rgba(0, 0, 0, 0.14);
}

.ef-cookie-consent__content {
    max-width: 52rem;
}

.ef-cookie-consent__kicker {
    margin: 0 0 var(--ef-space-3);
    font-family: var(--ef-font-mono);
    font-size: var(--ef-font-size-xs);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ef-color-text-muted);
}

.ef-cookie-consent__title {
    margin: 0 0 var(--ef-space-3);
    font-size: var(--ef-font-size-xl);
}

.ef-cookie-consent__description {
    margin: 0;
    color: var(--ef-color-text-muted);
}

.ef-cookie-consent__privacy {
    display: inline-block;
    margin-top: var(--ef-space-4);
    font-size: var(--ef-font-size-sm);
}

.ef-cookie-consent__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ef-space-3);
    justify-content: flex-end;
}

.ef-cookie-consent__button {
    appearance: none;
    min-height: 2.75rem;
    padding: 0.65rem 1rem;
    font: inherit;
    cursor: pointer;
    color: var(--ef-color-text);
    background: transparent;
    border: 1px solid var(--ef-color-border);
}

.ef-cookie-consent__button:hover,
.ef-cookie-consent__button:focus-visible {
    border-color: currentColor;
}

.ef-cookie-consent__button--primary {
    color: var(--ef-color-background);
    background: var(--ef-color-text);
    border-color: var(--ef-color-text);
}

.ef-footer__cookie-preferences {
    appearance: none;
    padding: 0;
    font: inherit;
    color: inherit;
    background: transparent;
    border: 0;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

@media (max-width: 48rem) {

    .ef-cookie-consent {
        right: var(--ef-space-4);
        bottom: var(--ef-space-4);
        left: var(--ef-space-4);
    }

    .ef-cookie-consent__inner {
        grid-template-columns: 1fr;
        gap: var(--ef-space-5);
        padding: var(--ef-space-5);
    }

    .ef-cookie-consent__actions {
        justify-content: flex-start;
    }
}


/* ==========================================================
   EVENTFLOW LABS — MOBILE INSTITUTIONAL HERO
   Responsive correction only.
   Desktop geometry remains unchanged.
   ========================================================== */

@media (max-width: 48rem) {

    /*
     * Gutenberg columns:
     * remove desktop 55 / 45 geometry on mobile.
     */
    .ef-hero .ef-hero__columns,
    .ef-hero .wp-block-columns.ef-hero__columns {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: clamp(1.75rem, 7vw, 3rem) !important;
    }


    /*
     * Gutenberg writes flex-basis inline.
     * Explicitly neutralize it on both columns.
     */
    .ef-hero .ef-hero__content,
    .ef-hero .ef-hero__visual {
        flex: 0 0 auto !important;
        flex-basis: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }


    /*
     * Mobile title:
     * keep words intact and reduce vertical occupation.
     */
    .ef-hero .ef-hero__title {
        width: 100% !important;
        max-width: 100% !important;
        max-inline-size: 100% !important;

        font-size: clamp(2.5rem, 12vw, 4rem) !important;
        line-height: 0.98 !important;
        letter-spacing: -0.045em !important;

        overflow-wrap: normal !important;
        word-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;

        text-wrap: balance;
    }


    /*
     * Lead must use the available mobile width.
     */
    .ef-hero .ef-hero__lead {
        width: 100% !important;
        max-width: 100% !important;
        max-inline-size: 100% !important;
    }


    /*
     * Visual becomes a normal mobile block instead of
     * competing horizontally with the headline.
     */
    .ef-hero .ef-hero__visual {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .ef-hero .ef-hero__visual .wp-block-image {
        width: 100% !important;
        max-width: 34rem !important;
        margin: 0 auto !important;
    }

    .ef-hero .ef-hero__visual img {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        object-fit: contain !important;
        margin: 0 auto !important;
    }


    /*
     * Buttons remain usable on narrow screens.
     */
    .ef-hero .ef-hero__actions {
        width: 100% !important;
        flex-wrap: wrap !important;
    }

}


/*
 * Extra-small phones.
 */
@media (max-width: 30rem) {

    .ef-hero .ef-hero__title {
        font-size: clamp(2.25rem, 11.5vw, 3.25rem) !important;
        line-height: 1 !important;
    }

    .ef-hero .ef-hero__columns {
        gap: 1.75rem !important;
    }

}




/* ==========================================================
   EVENTFLOW LABS — MOBILE HERO TITLE SCALE
   Final mobile typography refinement
   ========================================================== */

@media (max-width: 48rem) {

    .ef-hero .ef-hero__title {
        font-size: clamp(2rem, 9.5vw, 2.85rem) !important;
        line-height: 1.02 !important;
        letter-spacing: -0.035em !important;

        width: 100% !important;
        max-width: 100% !important;

        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
    }

}

@media (max-width: 30rem) {

    .ef-hero .ef-hero__title {
        font-size: clamp(1.9rem, 9vw, 2.5rem) !important;
        line-height: 1.03 !important;
    }

}

