/**
 * Banu Noyan Event Office — global design system.
 * Layers keep specificity predictable. Do not put page layouts here.
 */

@layer reset, tokens, base, layout, components, utilities, overrides;

@layer tokens {
	@font-face {
		font-family: Syne;
		src: url("../fonts/syne-600.woff2") format("woff2");
		font-weight: 600;
		font-style: normal;
		font-display: swap;
		unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
	}

	@font-face {
		font-family: Syne;
		src: url("../fonts/syne-700.woff2") format("woff2");
		font-weight: 700;
		font-style: normal;
		font-display: swap;
		unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
	}

	@font-face {
		font-family: Syne;
		src: url("../fonts/syne-800.woff2") format("woff2");
		font-weight: 800;
		font-style: normal;
		font-display: swap;
		unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
	}

	@font-face {
		font-family: Manrope;
		src: url("../fonts/manrope-400.woff2") format("woff2");
		font-weight: 400;
		font-style: normal;
		font-display: swap;
		unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
	}

	@font-face {
		font-family: Manrope;
		src: url("../fonts/manrope-500.woff2") format("woff2");
		font-weight: 500;
		font-style: normal;
		font-display: swap;
		unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
	}

	@font-face {
		font-family: Manrope;
		src: url("../fonts/manrope-600.woff2") format("woff2");
		font-weight: 600;
		font-style: normal;
		font-display: swap;
		unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
	}

	@font-face {
		font-family: Manrope;
		src: url("../fonts/manrope-700.woff2") format("woff2");
		font-weight: 700;
		font-style: normal;
		font-display: swap;
		unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
	}

	@font-face {
		font-family: "IBM Plex Mono";
		src: url("../fonts/ibm-plex-mono-400.woff2") format("woff2");
		font-weight: 400;
		font-style: normal;
		font-display: swap;
		unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
	}

	@font-face {
		font-family: "IBM Plex Mono";
		src: url("../fonts/ibm-plex-mono-500.woff2") format("woff2");
		font-weight: 500;
		font-style: normal;
		font-display: swap;
		unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
	}

	:root {
		color-scheme: dark;
		--bne-color-background: var(--wp--custom--color--background, var(--wp--preset--color--canvas, #1b1b1b));
		--bne-color-surface: var(--wp--custom--color--surface, var(--wp--preset--color--canvas, #1b1b1b));
		--bne-color-surface-dark: var(--wp--custom--color--surface-dark, #000000);
		--bne-color-text: var(--wp--custom--color--text, var(--wp--preset--color--stage-paper, #f5f2ea));
		--bne-color-text-on-dark: var(--wp--custom--color--text-on-dark, var(--wp--preset--color--stage-paper, #f5f2ea));
		--bne-color-text-muted: var(--wp--custom--color--text-muted, var(--wp--preset--color--text-muted, #c5cad6));
		--bne-color-text-muted-on-dark: #c5cad6;
		--bne-color-primary: var(--wp--custom--color--primary, var(--wp--preset--color--cue-burgundy, #4c0000));
		--bne-color-primary-hover: var(--wp--custom--color--primary-hover, var(--wp--preset--color--primary-hover, #640000));
		--bne-color-primary-contrast: var(--wp--custom--color--primary-contrast, #ffffff);
		--bne-color-accent: var(--wp--custom--color--accent, var(--wp--preset--color--signal-coral, #ff5a44));
		--bne-color-border: var(--wp--custom--color--border, rgb(245 242 234 / 0.18));
		--bne-color-border-on-dark: rgb(245 242 234 / 0.18);
		--bne-color-focus: var(--wp--custom--color--focus, var(--wp--preset--color--signal-coral, #ff5a44));
		--bne-color-error: var(--wp--custom--color--error, var(--wp--preset--color--error, #f97066));
		--bne-color-success: var(--wp--custom--color--success, var(--wp--preset--color--success, #7dcea0));
		--bne-color-overlay: rgb(8 10 18 / 0.72);

		--bne-font-display: Syne, "Arial Narrow", Arial, sans-serif;
		--bne-font-body: Manrope, system-ui, "Segoe UI", Arial, sans-serif;
		--bne-font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

		--bne-size-display-xl: clamp(1.75rem, 1rem + 4vw, 4rem);
		--bne-size-display-lg: clamp(1.625rem, 1rem + 2.8vw, 3.25rem);
		--bne-size-heading-1: clamp(1.75rem, 1.35rem + 1.7vw, 2.5rem);
		--bne-size-heading-2: clamp(1.5rem, 1.28rem + 0.9vw, 2rem);
		--bne-size-heading-3: clamp(1.25rem, 1.15rem + 0.4vw, 1.5rem);
		--bne-size-heading-4: 1.125rem;
		--bne-size-body-lg: 1.125rem;
		--bne-size-body: 1rem;
		--bne-size-body-sm: 0.875rem;
		--bne-size-label: 0.8125rem;
		--bne-size-utility: 0.75rem;

		--bne-space-2xs: 4px;
		--bne-space-xs: 8px;
		--bne-space-sm: 12px;
		--bne-space-md: 16px;
		--bne-space-lg: 24px;
		--bne-space-xl: 32px;
		--bne-space-2xl: 40px;
		--bne-space-3xl: 48px;
		--bne-section-sm: 64px;
		--bne-section-md: clamp(4rem, 3rem + 3vw, 6rem);
		--bne-section-lg: clamp(5rem, 3.5rem + 4vw, 8rem);

		--bne-gutter: 24px;
		--bne-wide: 90rem;
		--bne-content: 42rem;
		--bne-grid-gap: 16px;
		--bne-cols: 4;

		--bne-radius: 0;
		--bne-radius-sm: 2px;
		--bne-radius-max: 4px;
		--bne-border: 1px;
		--bne-shadow-nav: 0 16px 40px rgb(8 10 18 / 0.55);

		--bne-touch: 48px;
		--bne-header-height: 72px;
		--bne-icon-sm: 16px;
		--bne-icon-md: 24px;
		--bne-icon-lg: 32px;
		--bne-icon-stroke: 1.5;

		--bne-duration-fast: 150ms;
		--bne-duration: 200ms;
		--bne-duration-slow: 300ms;
		--bne-easing: cubic-bezier(0.2, 0, 0, 1);

		--bne-z-base: 0;
		--bne-z-header: 200;
		--bne-z-overlay: 180;
		--bne-z-nav: 210;
		--bne-z-mobile-bar: 150;
		--bne-z-skip: 1000;

		--bne-focus: 2px solid var(--bne-color-focus);
		--bne-focus-offset: 3px;
	}

	@media (min-width: 768px) {
		:root {
			--bne-gutter: 40px;
			--bne-grid-gap: 24px;
			--bne-cols: 8;
			--bne-header-height: 80px;
		}
	}

	@media (min-width: 1024px) {
		:root {
			--bne-gutter: 56px;
			--bne-cols: 12;
			--bne-header-height: 88px;
		}
	}
}

@layer reset {
	*,
	*::before,
	*::after {
		box-sizing: border-box;
	}

	html {
		scroll-behavior: smooth;
		background: var(--bne-color-background);
		color-scheme: dark;
	}

	html,
	body {
		max-width: 100%;
		overflow-x: clip;
	}

	body {
		margin: 0;
		background: var(--bne-color-background);
	}

	img,
	svg,
	video,
	canvas {
		max-width: 100%;
		height: auto;
		display: block;
	}

	button,
	input,
	select,
	textarea {
		font: inherit;
	}

	button {
		cursor: pointer;
	}

	a,
	button,
	input,
	select,
	textarea,
	[role="button"] {
		-webkit-tap-highlight-color: transparent;
	}
}

@layer base {
	body.bne-theme {
		background: var(--bne-color-background);
		color: var(--bne-color-text);
		font-family: var(--bne-font-body);
		font-size: var(--bne-size-body);
		font-weight: 400;
		line-height: 1.6;
		min-height: 100dvh;
		text-rendering: optimizeLegibility;
	}

	h1,
	h2,
	h3,
	h4,
	h5,
	h6 {
		font-family: var(--bne-font-display);
		font-weight: 700;
		line-height: 1.2;
		color: var(--bne-color-text);
		margin: 0 0 var(--bne-space-md);
		overflow-wrap: anywhere;
		word-break: break-word;
		max-width: 100%;
		overflow: visible;
	}

	h1 {
		font-size: var(--bne-size-heading-1);
		line-height: 1.15;
		letter-spacing: -0.015em;
	}

	h2 {
		font-size: var(--bne-size-heading-2);
	}

	h3 {
		font-size: var(--bne-size-heading-3);
		font-weight: 600;
	}

	h4 {
		font-size: var(--bne-size-heading-4);
		font-weight: 600;
	}

	p {
		margin: 0 0 var(--bne-space-md);
		max-width: min(65ch, 100%);
	}

	a {
		color: var(--bne-color-text);
		text-underline-offset: 0.18em;
	}

	a:hover {
		color: var(--bne-color-text-muted);
	}

	:focus-visible {
		outline: var(--bne-focus);
		outline-offset: var(--bne-focus-offset);
	}

	:focus:not(:focus-visible) {
		outline: none;
		box-shadow: none;
	}

	ul,
	ol {
		margin: 0 0 var(--bne-space-md);
		padding-left: 1.25rem;
	}

	blockquote {
		margin: 0 0 var(--bne-space-lg);
		padding-left: var(--bne-space-lg);
		border-left: 2px solid var(--bne-color-primary);
		font-size: var(--bne-size-body-lg);
	}

	hr {
		border: 0;
		height: 1px;
		background: var(--bne-color-border);
		margin: var(--bne-space-xl) 0;
	}

	table {
		width: 100%;
		border-collapse: collapse;
		font-size: var(--bne-size-body-sm);
	}

	th,
	td {
		border: 1px solid var(--bne-color-border);
		padding: var(--bne-space-sm) var(--bne-space-md);
		text-align: left;
	}

	code,
	kbd {
		font-family: var(--bne-font-mono);
		font-size: 0.9em;
	}
}

@layer layout {
	.bne-container {
		width: min(var(--bne-wide), calc(100% - (2 * var(--bne-gutter))));
		margin-inline: auto;
		min-width: 0;
	}

	.bne-home-hero__copy,
	.bne-home-about__copy,
	.bne-svc-hero__copy,
	.bne-about-hero__copy,
	.bne-project-hero__copy,
	.bne-project-detail-hero__copy,
	.bne-contact-hero__copy,
	.bne-press-hero__copy {
		min-width: 0;
		max-width: 100%;
	}

	.bne-grid {
		display: grid;
		grid-template-columns: repeat(var(--bne-cols), minmax(0, 1fr));
		gap: var(--bne-grid-gap);
	}

	.bne-main {
		padding-block: var(--bne-section-sm);
		min-height: calc(100svh - var(--bne-header-height));
	}

	.bne-has-mobile-bar .bne-main,
	.bne-has-mobile-bar .bne-footer {
		padding-bottom: var(--bne-section-sm);
	}

	@media (max-width: 1023px) {
		.bne-has-mobile-bar .bne-main,
		.bne-has-mobile-bar .bne-footer {
			padding-bottom: calc(var(--bne-touch) + var(--bne-space-xl) + env(safe-area-inset-bottom, 0px));
		}
	}

	.bne-shell {
		display: grid;
		gap: var(--bne-space-lg);
	}

	.bne-content__body {
		max-width: var(--bne-content);
	}

	.bne-content__title {
		font-size: var(--bne-size-heading-1);
	}

	.bne-archive-header {
		margin-bottom: var(--bne-space-xl);
		padding-bottom: var(--bne-space-lg);
		border-bottom: 1px solid var(--bne-color-border);
	}

	.bne-archive-header__title {
		margin: 0;
	}

	.bne-archive-list {
		display: grid;
		grid-template-columns: repeat(var(--bne-cols), minmax(0, 1fr));
		gap: var(--bne-space-xl) var(--bne-grid-gap);
	}

	.bne-archive-list > * {
		grid-column: span var(--bne-cols);
	}

	@media (min-width: 768px) {
		.bne-archive-list > * {
			grid-column: span 4;
		}
	}

	@media (min-width: 1024px) {
		.bne-archive-list > * {
			grid-column: span 4;
		}
	}
}

@layer components {
	.skip-link {
		position: absolute;
		left: var(--bne-gutter);
		top: var(--bne-space-xs);
		z-index: var(--bne-z-skip);
		display: inline-flex;
		align-items: center;
		min-height: var(--bne-touch);
		padding: 0 var(--bne-space-md);
		background: var(--bne-color-primary);
		color: var(--bne-color-primary-contrast);
		text-decoration: none;
		font-weight: 600;
		transform: translateY(-160%);
	}

	.skip-link:focus,
	.skip-link:focus-visible,
	.skip-link.is-focused {
		transform: translateY(0);
		color: var(--bne-color-primary-contrast);
	}

	.bne-header {
		position: sticky;
		top: 0;
		z-index: var(--bne-z-header);
		background: var(--bne-color-surface);
		min-height: var(--bne-header-height);
	}

	.admin-bar .bne-header {
		top: var(--wp-admin--admin-bar--height, 32px);
	}

	@media screen and (max-width: 782px) {
		.admin-bar .bne-header {
			top: 0;
		}
	}

	.bne-header__inner {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto auto;
		align-items: center;
		gap: var(--bne-space-xs);
		min-height: calc(var(--bne-header-height) - 2px);
	}

	.bne-header__brand {
		min-width: 0;
		order: 1;
	}

	.bne-header__cta--bar {
		order: 2;
		justify-self: end;
		min-width: 0;
	}

	.bne-nav-toggle {
		order: 3;
	}

	.bne-nav {
		order: 4;
	}

	.bne-brand {
		display: inline-flex;
		align-items: center;
		min-height: var(--bne-touch);
		color: var(--bne-color-text);
		text-decoration: none;
	}

	.bne-brand__link,
	.bne-brand .custom-logo-link {
		display: inline-flex;
		align-items: center;
		gap: var(--bne-space-sm);
		color: inherit;
		text-decoration: none;
		min-height: var(--bne-touch);
	}

	.bne-brand .custom-logo,
	.bne-brand__logo {
		display: block;
		height: 44px;
		width: auto;
		max-width: min(12rem, 58vw);
	}

	@media (min-width: 1024px) {
		.bne-header .bne-brand .custom-logo,
		.bne-header .bne-brand__logo {
			height: 52px;
			max-width: 14rem;
		}
	}

	.bne-brand__lockup {
		display: flex;
		flex-direction: column;
		gap: 2px;
	}

	.bne-brand__name {
		font-family: var(--bne-font-display);
		font-size: 1rem;
		font-weight: 700;
		letter-spacing: 0.04em;
		line-height: 1.1;
	}

	.bne-brand__unit {
		font-family: var(--bne-font-mono);
		font-size: var(--bne-size-utility);
		font-weight: 500;
		letter-spacing: 0.14em;
		text-transform: uppercase;
		color: var(--bne-color-text-muted);
	}

	.bne-brand--on-dark {
		color: var(--bne-color-text-on-dark);
	}

	.bne-brand--on-dark .bne-brand__unit {
		color: var(--bne-color-text-muted-on-dark);
	}

	.bne-nav-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: var(--bne-space-2xs);
		min-width: var(--bne-touch);
		min-height: var(--bne-touch);
		width: var(--bne-touch);
		padding: 0;
		border: 1px solid var(--bne-color-border);
		border-radius: var(--bne-radius);
		background: var(--bne-color-surface);
		color: var(--bne-color-text);
		font-family: var(--bne-font-mono);
		font-size: var(--bne-size-utility);
		letter-spacing: 0.08em;
		text-transform: uppercase;
		touch-action: manipulation;
	}

	.bne-nav-toggle__label {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
		border: 0;
	}

	.bne-nav-toggle[aria-expanded="false"] .bne-nav-toggle__icon--close,
	.bne-nav-toggle[aria-expanded="false"] .bne-nav-toggle__label--close,
	.bne-nav-toggle[aria-expanded="true"] .bne-nav-toggle__icon--open,
	.bne-nav-toggle[aria-expanded="true"] .bne-nav-toggle__label--open {
		display: none;
	}

	.bne-nav-overlay {
		position: fixed;
		inset: 0;
		z-index: var(--bne-z-overlay);
		background: var(--bne-color-overlay);
	}

	.bne-nav-overlay[hidden] {
		display: none;
	}

	.bne-nav__list {
		display: flex;
		flex-direction: column;
		gap: 0;
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.bne-nav__list a {
		display: inline-flex;
		align-items: center;
		min-height: var(--bne-touch);
		padding: 0 var(--bne-space-2xs);
		color: var(--bne-color-text);
		text-decoration: none;
		font-weight: 500;
		border-bottom: 2px solid transparent;
	}

	.bne-nav__list a:hover {
		color: var(--bne-color-text);
	}

	.bne-nav__list .current-menu-item > a,
	.bne-nav__list .current-menu-item > .bne-nav__item-row > a,
	.bne-nav__list .current-menu-ancestor > .bne-nav__item-row > a,
	.bne-nav__list .current-menu-parent > .bne-nav__item-row > a,
	.bne-nav__list [aria-current="page"] {
		font-weight: 700;
		border-bottom-color: var(--bne-color-primary);
		color: var(--bne-color-text);
	}

	.bne-nav__item-row {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--bne-space-2xs);
		width: 100%;
	}

	.bne-nav__sub-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex: 0 0 var(--bne-touch);
		width: var(--bne-touch);
		min-width: var(--bne-touch);
		min-height: var(--bne-touch);
		padding: 0;
		border: 1px solid var(--bne-color-border);
		border-radius: var(--bne-radius);
		background: var(--bne-color-surface);
		color: var(--bne-color-text);
		touch-action: manipulation;
	}

	.bne-nav__sub-toggle[aria-expanded="true"] .bne-icon {
		transform: rotate(180deg);
	}

	.bne-nav__list .sub-menu {
		list-style: none;
		margin: 0;
		padding-left: var(--bne-space-md);
	}

	.js .bne-nav__item--has-children > .sub-menu {
		display: none;
	}

	.js .bne-nav__item--has-children.is-open > .sub-menu {
		display: block;
	}

	.no-js .bne-nav__sub-toggle {
		display: none;
	}

	.no-js .bne-nav__item--has-children > .sub-menu {
		display: block;
	}

	.bne-header__cta--panel {
		display: none;
		margin-top: var(--bne-space-lg);
	}

	.js .bne-nav {
		display: none;
	}

	.js .bne-nav.is-open {
		display: block;
		position: fixed;
		top: var(--bne-header-height);
		right: 0;
		bottom: 0;
		left: 0;
		z-index: var(--bne-z-nav);
		overflow: auto;
		padding: var(--bne-space-lg) var(--bne-gutter) var(--bne-space-3xl);
		background: var(--bne-color-surface);
		box-shadow: var(--bne-shadow-nav);
	}

	.admin-bar.js .bne-nav.is-open {
		top: calc(var(--bne-header-height) + var(--wp-admin--admin-bar--height, 32px));
	}

	@media screen and (max-width: 782px) {
		.admin-bar.js .bne-nav.is-open {
			top: var(--bne-header-height);
		}
	}

	.js .bne-nav.is-open .bne-header__cta--panel {
		display: block;
	}

	.no-js .bne-nav-toggle,
	.no-js .bne-nav-overlay {
		display: none;
	}

	.no-js .bne-nav {
		display: block;
		grid-column: 1 / -1;
	}

	.bne-header__cta--bar {
		justify-self: end;
	}

	.bne-header__cta--bar .bne-button {
		padding-inline: var(--bne-space-sm);
		font-size: 0.8125rem;
	}

	@media (min-width: 1024px) {
		.bne-header__cta--bar .bne-button {
			padding-inline: var(--bne-space-lg);
		}
	}

	@media (min-width: 1024px) {
		.bne-header__inner {
			grid-template-columns: minmax(10rem, 2fr) minmax(0, 7fr) minmax(11rem, 2.5fr);
			gap: var(--bne-space-sm);
		}

		.bne-header__brand {
			order: 1;
		}

		.bne-nav {
			order: 2;
		}

		.bne-header__cta--bar {
			order: 3;
		}

		.bne-nav-toggle {
			display: none;
			width: auto;
			padding: 0 var(--bne-space-sm);
		}

		.bne-nav-toggle__label {
			position: static;
			width: auto;
			height: auto;
			margin: 0;
			clip: auto;
			overflow: visible;
			white-space: nowrap;
		}

		.js .bne-nav,
		.no-js .bne-nav,
		.js .bne-nav.is-open {
			display: flex;
			position: static;
			align-items: center;
			justify-content: flex-end;
			overflow: visible;
			padding: 0;
			background: transparent;
			box-shadow: none;
		}

		.bne-nav__list {
			flex-direction: row;
			flex-wrap: nowrap;
			justify-content: flex-end;
			gap: var(--bne-space-xs);
		}

		.bne-nav__item--has-children {
			position: relative;
		}

		.bne-nav__item-row {
			width: auto;
		}

		.bne-nav__sub-toggle {
			display: none;
		}

		.js .bne-nav__item--has-children > .sub-menu,
		.no-js .bne-nav__item--has-children > .sub-menu {
			display: block;
			position: absolute;
			top: 100%;
			left: 0;
			z-index: var(--bne-z-nav);
			min-width: 18rem;
			margin: 0;
			padding: var(--bne-space-sm);
			background: var(--bne-color-surface);
			border: 1px solid var(--bne-color-border);
			opacity: 0;
			pointer-events: none;
			transform: translateY(4px);
			transition: opacity var(--bne-duration) var(--bne-easing),
				transform var(--bne-duration) var(--bne-easing);
		}

		.bne-nav__item--has-children:hover > .sub-menu,
		.bne-nav__item--has-children:focus-within > .sub-menu,
		.bne-nav__item--has-children.is-open > .sub-menu {
			opacity: 1;
			pointer-events: auto;
			transform: none;
		}

		.bne-nav__list .sub-menu a {
			display: flex;
			width: 100%;
			min-height: var(--bne-touch);
		}

		.bne-header__cta--panel {
			display: none;
		}

		.js .bne-nav.is-open .bne-header__cta--panel {
			display: none;
		}

		.bne-header__cta--bar {
			justify-self: end;
		}
	}

	.bne-button {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: var(--bne-space-xs);
		min-height: var(--bne-touch);
		padding: 0 var(--bne-space-lg);
		border: 1px solid transparent;
		border-radius: var(--bne-radius);
		font-family: var(--bne-font-body);
		font-size: 0.9375rem;
		font-weight: 600;
		line-height: 1;
		text-decoration: none;
		touch-action: manipulation;
		transition: background-color var(--bne-duration) var(--bne-easing),
			color var(--bne-duration) var(--bne-easing),
			border-color var(--bne-duration) var(--bne-easing);
	}

	.bne-button--primary {
		background: var(--bne-color-primary);
		color: var(--bne-color-primary-contrast);
		border-color: var(--bne-color-primary);
	}

	.bne-button--primary:hover {
		background: var(--bne-color-primary-hover);
		border-color: var(--bne-color-primary-hover);
		color: var(--bne-color-primary-contrast);
	}

	.bne-button--secondary {
		background: transparent;
		color: var(--bne-color-text);
		border-color: var(--bne-color-border);
	}

	.bne-button--secondary:hover {
		background: var(--bne-color-surface-dark);
		color: var(--bne-color-text-on-dark);
	}

	.bne-button--text {
		background: transparent;
		color: var(--bne-color-text);
		padding-inline: var(--bne-space-xs);
		border-color: transparent;
	}

	.bne-button--text:hover {
		color: var(--bne-color-text-muted);
		text-decoration: underline;
	}

	.bne-button--on-dark {
		background: var(--bne-color-primary);
		color: var(--bne-color-primary-contrast);
		border-color: var(--bne-color-primary);
	}

	.bne-button--on-dark:hover {
		background: var(--bne-color-primary-hover);
		border-color: var(--bne-color-primary-hover);
		color: var(--bne-color-primary-contrast);
	}

	.bne-button--icon {
		width: var(--bne-touch);
		padding: 0;
		background: transparent;
		color: var(--bne-color-text);
		border-color: var(--bne-color-border);
	}

	.bne-button.is-loading,
	.bne-button[aria-disabled="true"] {
		cursor: not-allowed;
		background: var(--bne-color-border);
		color: var(--bne-color-text-muted);
		border-color: var(--bne-color-border);
		pointer-events: none;
	}

	.bne-button:active:not([aria-disabled="true"]) {
		transform: translateY(1px);
	}

	.bne-button:focus:not(:focus-visible),
	.bne-nav-toggle:focus:not(:focus-visible),
	.bne-mobile-bar__action:focus:not(:focus-visible),
	.bne-consent-btn:focus:not(:focus-visible) {
		outline: none;
		box-shadow: none;
	}

	.bne-button:focus-visible,
	.bne-nav-toggle:focus-visible,
	.bne-mobile-bar__action:focus-visible,
	.bne-consent-btn:focus-visible {
		outline: 2px solid var(--bne-color-accent);
		outline-offset: 2px;
	}

	.bne-button__icon {
		flex: 0 0 auto;
	}

	.bne-cue-line {
		display: flex;
		align-items: center;
		min-height: 2px;
		overflow: hidden;
	}

	.bne-cue-line--header {
		width: 100%;
	}

	.bne-cue-line--heading {
		max-width: 8rem;
		margin-block: var(--bne-space-sm) var(--bne-space-md);
	}

	.bne-cue-line__rule {
		display: block;
		flex: 1 1 auto;
		height: 2px;
		background: var(--bne-color-primary);
		transform-origin: left center;
	}

	.bne-cue-line--vertical {
		flex-direction: column;
		width: 2px;
		min-height: 4rem;
		align-self: stretch;
	}

	.bne-cue-line--vertical .bne-cue-line__rule {
		width: 2px;
		height: auto;
		flex: 1 1 auto;
	}

	.bne-cue-line--corner {
		align-items: flex-start;
		width: min(12rem, 40vw);
	}

	.bne-cue-line__rule--drop {
		flex: 0 0 2.5rem;
		width: 2px;
		height: 2.5rem;
		align-self: flex-start;
	}

	.bne-cue-line__node {
		flex: 0 0 auto;
		width: 8px;
		height: 8px;
		background: var(--bne-color-primary);
	}

	.bne-cue-line__steps {
		display: flex;
		flex-wrap: wrap;
		gap: var(--bne-space-md);
		list-style: none;
		margin: 0;
		padding: 0;
		width: 100%;
	}

	.bne-cue-line__step {
		display: flex;
		align-items: center;
		gap: var(--bne-space-xs);
		font-family: var(--bne-font-mono);
		font-size: var(--bne-size-utility);
		letter-spacing: 0.06em;
		text-transform: uppercase;
	}

	.bne-section-heading__eyebrow {
		margin: 0 0 var(--bne-space-xs);
		font-family: var(--bne-font-mono);
		font-size: var(--bne-size-utility);
		font-weight: 500;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: var(--bne-color-text-muted);
	}

	.bne-section-heading__title {
		margin: 0;
	}

	.bne-section-heading__description {
		margin: var(--bne-space-md) 0 0;
		color: var(--bne-color-text-muted);
	}

	.bne-card {
		border-bottom: 1px solid var(--bne-color-border);
		padding-bottom: var(--bne-space-lg);
		border-radius: var(--bne-radius);
	}

	.bne-card__link {
		display: grid;
		gap: var(--bne-space-sm);
		color: inherit;
		text-decoration: none;
	}

	.bne-card__link:hover {
		color: inherit;
	}

	.bne-card__media {
		overflow: hidden;
		aspect-ratio: 16 / 10;
		background: var(--bne-color-border);
	}

	.bne-card__media img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.bne-card__meta {
		margin: 0 0 var(--bne-space-2xs);
		font-family: var(--bne-font-mono);
		font-size: var(--bne-size-utility);
		letter-spacing: 0.08em;
		text-transform: uppercase;
		color: var(--bne-color-text-muted);
	}

	.bne-card__title {
		margin: 0;
		font-size: var(--bne-size-heading-3);
	}

	.bne-card__excerpt {
		margin: var(--bne-space-sm) 0 0;
		color: var(--bne-color-text-muted);
	}

	.bne-client-logo {
		margin: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 72px;
		padding: var(--bne-space-md);
		border: 1px solid var(--bne-color-border);
	}

	.bne-client-logo img {
		max-height: 64px;
		width: auto;
		object-fit: contain;
	}

	.bne-client-logo__link {
		display: flex;
		color: inherit;
	}

	.bne-empty {
		display: grid;
		gap: var(--bne-space-md);
		padding-block: var(--bne-section-sm);
		max-width: 40rem;
	}

	.bne-empty__title {
		margin: 0;
	}

	.bne-empty__text {
		margin: 0;
		color: var(--bne-color-text-muted);
	}

	.bne-dev-note {
		margin: 0;
		padding: var(--bne-space-md);
		border: 1px solid var(--bne-color-border);
		color: var(--bne-color-text-muted);
		font-size: var(--bne-size-body-sm);
		max-width: min(65ch, 100%);
	}

	.bne-dev-note--on-dark {
		border-color: var(--bne-color-border-on-dark);
		color: var(--bne-color-text-muted-on-dark);
	}

	.bne-footer {
		background: var(--bne-color-surface-dark);
		color: var(--bne-color-text-on-dark);
		padding-block: var(--bne-section-sm);
	}

	.bne-footer a {
		color: var(--bne-color-text-on-dark);
		text-decoration: none;
	}

	.bne-footer a:hover {
		color: var(--bne-color-text-on-dark);
		text-decoration: underline;
	}

	.bne-footer__inner {
		display: grid;
		gap: var(--bne-space-xl);
	}

	.bne-footer .custom-logo,
	.bne-footer .bne-brand__logo {
		height: 48px;
		max-width: 14rem;
	}

	.bne-footer__positioning {
		margin: var(--bne-space-md) 0 0;
		color: var(--bne-color-text-muted-on-dark);
		max-width: min(36ch, 100%);
	}

	.bne-footer__social {
		display: flex;
		flex-wrap: wrap;
		gap: var(--bne-space-sm) var(--bne-space-md);
		list-style: none;
		margin: var(--bne-space-md) 0 0;
		padding: 0;
	}

	.bne-footer__social-link {
		display: inline-flex;
		align-items: center;
		gap: var(--bne-space-xs);
		min-height: var(--bne-touch);
		padding-inline: 0;
		color: var(--bne-color-text-on-dark);
		text-decoration: none;
	}

	.bne-footer__social-link:hover {
		color: var(--bne-color-text-on-dark);
		text-decoration: underline;
	}

	.bne-footer__social-icon {
		flex-shrink: 0;
	}

	.bne-footer__social-label {
		font-family: var(--bne-font-mono);
		font-size: var(--bne-size-utility);
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}

	.bne-footer__label {
		margin: 0 0 var(--bne-space-sm);
		font-family: var(--bne-font-mono);
		font-size: var(--bne-size-utility);
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: var(--bne-color-text-muted-on-dark);
	}

	.bne-footer__list {
		display: flex;
		flex-direction: column;
		gap: 0;
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.bne-footer__list a {
		display: inline-flex;
		align-items: center;
		min-height: var(--bne-touch);
	}

	.bne-footer__copyright {
		margin: 0;
		font-family: var(--bne-font-mono);
		font-size: var(--bne-size-utility);
		letter-spacing: 0.06em;
		color: var(--bne-color-text-muted-on-dark);
	}

	.bne-footer__bottom {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		gap: var(--bne-space-md) var(--bne-space-lg);
		padding-top: var(--bne-space-lg);
		border-top: 1px solid var(--bne-color-border-on-dark);
		grid-column: 1 / -1;
	}

	.bne-footer__bottom-nav {
		margin-left: auto;
	}

	.bne-footer__bottom-links {
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-end;
		gap: 0 var(--bne-space-lg);
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.bne-footer__bottom-links a,
	.bne-footer__bottom-links .bne-consent-open {
		display: inline-flex;
		align-items: center;
		min-height: auto;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		font-family: var(--bne-font-mono);
		font-size: var(--bne-size-utility);
		font-weight: 400;
		line-height: 1.4;
		letter-spacing: 0.06em;
		color: var(--bne-color-text-muted-on-dark);
		text-decoration: none;
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
	}

	.bne-footer__bottom-links a:hover,
	.bne-footer__bottom-links .bne-consent-open:hover {
		color: var(--bne-color-text-on-dark);
		text-decoration: underline;
	}

	.bne-footer__bottom-links .bne-consent-open:focus-visible,
	.bne-footer__bottom-links a:focus-visible {
		outline: 2px solid var(--bne-color-focus);
		outline-offset: 3px;
	}

	.bne-footer__address-text {
		display: block;
		margin: var(--bne-space-sm) 0 0;
		color: var(--bne-color-text-muted-on-dark);
		max-width: min(28ch, 100%);
		font-style: normal;
	}

	@media (min-width: 768px) {
		.bne-footer__inner {
			grid-template-columns: repeat(8, minmax(0, 1fr));
		}

		.bne-footer__brand {
			grid-column: 1 / span 8;
		}

		.bne-footer__nav,
		.bne-footer__contact {
			grid-column: span 4;
		}

		.bne-footer__bottom {
			grid-column: 1 / -1;
		}
	}

	@media (min-width: 1024px) {
		.bne-footer__inner {
			grid-template-columns: repeat(12, minmax(0, 1fr));
		}

		.bne-footer__brand {
			grid-column: 1 / span 4;
		}

		.bne-footer__nav,
		.bne-footer__contact {
			grid-column: span 2;
		}

		.bne-footer__bottom {
			grid-column: 1 / -1;
		}
	}

	.bne-mobile-bar {
		display: none;
	}

	@media (max-width: 1023px) {
		.bne-mobile-bar {
			position: fixed;
			right: 0;
			bottom: 0;
			left: 0;
			z-index: var(--bne-z-mobile-bar);
			display: grid;
			grid-auto-flow: column;
			grid-auto-columns: 1fr;
			gap: var(--bne-space-xs);
			padding: var(--bne-space-xs) var(--bne-gutter) calc(var(--bne-space-xs) + env(safe-area-inset-bottom, 0px));
			background: var(--bne-color-surface);
			border-top: 1px solid var(--bne-color-border);
		}
	}

	.bne-mobile-bar__action {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: var(--bne-touch);
		text-decoration: none;
		border: 1px solid var(--bne-color-border);
		color: var(--bne-color-text);
		font-weight: 600;
		touch-action: manipulation;
	}

	.bne-mobile-bar__action--primary {
		background: var(--bne-color-primary);
		color: var(--bne-color-primary-contrast);
		border-color: var(--bne-color-primary);
	}

	.bne-field {
		display: grid;
		gap: var(--bne-space-xs);
		margin-bottom: var(--bne-space-lg);
	}

	.bne-label,
	.bne-legend {
		font-weight: 600;
		font-size: var(--bne-size-label);
	}

	.bne-required {
		color: var(--bne-color-error);
	}

	.bne-helper {
		margin: 0;
		font-size: var(--bne-size-body-sm);
		color: var(--bne-color-text-muted);
	}

	.bne-error {
		margin: 0;
		font-size: var(--bne-size-body-sm);
		color: var(--bne-color-error);
		font-weight: 600;
	}

	.bne-fieldset {
		border: 1px solid var(--bne-color-border);
		padding: var(--bne-space-md);
		margin: 0 0 var(--bne-space-lg);
		min-width: 0;
	}

	.bne-content input[type="text"],
	.bne-content input[type="email"],
	.bne-content input[type="tel"],
	.bne-content input[type="url"],
	.bne-content input[type="search"],
	.bne-content input[type="number"],
	.bne-content input[type="date"],
	.bne-content textarea,
	.bne-content select,
	.bne-input,
	.bne-textarea,
	.bne-select,
	.wp-block-search__input {
		width: 100%;
		min-height: var(--bne-touch);
		padding: var(--bne-space-sm) var(--bne-space-md);
		border: 1px solid var(--bne-color-border);
		border-radius: var(--bne-radius);
		background: var(--bne-color-surface);
		color: var(--bne-color-text);
		font-size: 1rem;
	}

	.bne-textarea,
	.bne-content textarea {
		min-height: 8rem;
		resize: vertical;
	}

	.bne-content input:disabled,
	.bne-content textarea:disabled,
	.bne-content select:disabled,
	.bne-input:disabled,
	.bne-textarea:disabled,
	.bne-select:disabled {
		background: var(--bne-color-border);
		color: var(--bne-color-text-muted);
		cursor: not-allowed;
	}

	.bne-content input[readonly],
	.bne-input[readonly] {
		background: rgb(245 242 234 / 0.08);
	}

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

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

	.bne-check,
	.bne-radio,
	.bne-content input[type="checkbox"],
	.bne-content input[type="radio"] {
		width: 1.25rem;
		height: 1.25rem;
		accent-color: var(--bne-color-primary);
	}

	.wp-block-button__link {
		border-radius: 0;
		background: var(--bne-color-primary);
		color: var(--bne-color-primary-contrast);
		min-height: var(--bne-touch);
		display: inline-flex;
		align-items: center;
		padding: 0 var(--bne-space-lg);
		font-weight: 600;
		text-decoration: none;
	}

	.wp-block-button__link:hover {
		background: var(--bne-color-primary-hover);
		color: var(--bne-color-primary-contrast);
	}

	.wp-block-quote {
		border-left: 2px solid var(--bne-color-primary);
		padding-left: var(--bne-space-lg);
	}

	.wp-block-separator {
		background: var(--bne-color-border);
		border: 0;
		height: 1px;
	}

	.wp-block-image img,
	.wp-block-gallery img {
		border-radius: 0;
	}

	.wp-block-cover {
		min-height: 16rem;
	}

	.wp-block-group.has-night-slate-background-color,
	.wp-block-cover.has-night-slate-background-color {
		background: var(--bne-color-surface-dark);
		color: var(--bne-color-text-on-dark);
	}

	.wp-block-table table {
		border-color: var(--bne-color-border);
	}

	.bne-icon {
		flex: 0 0 auto;
	}

	.bne-breadcrumb {
		padding-block: var(--bne-space-md);
	}

	.bne-breadcrumb__list {
		display: flex;
		flex-wrap: wrap;
		gap: var(--bne-space-2xs) var(--bne-space-sm);
		list-style: none;
		margin: 0;
		padding: 0;
		font-family: var(--bne-font-mono);
		font-size: var(--bne-size-utility);
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}

	.bne-breadcrumb__item {
		display: inline-flex;
		align-items: center;
		gap: var(--bne-space-sm);
	}

	.bne-breadcrumb__item:not(:last-child)::after {
		content: "/";
		color: var(--bne-color-text-muted);
	}

	.bne-breadcrumb__current {
		font-weight: 700;
	}
}

@layer utilities {
	.screen-reader-text:not(:focus):not(:focus-visible) {
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		height: 1px;
		width: 1px;
		overflow: hidden;
		position: absolute;
		white-space: nowrap;
		border: 0;
		padding: 0;
	}

	.bne-prose {
		max-width: min(65ch, 100%);
	}

	.bne-display-xl {
		font-family: var(--bne-font-display);
		font-size: var(--bne-size-display-xl);
		font-weight: 800;
		letter-spacing: -0.02em;
		line-height: 1.08;
		overflow-wrap: normal;
		word-break: normal;
		hyphens: none;
		text-wrap: balance;
		max-width: min(18ch, 100%);
	}

	.bne-display-lg {
		font-family: var(--bne-font-display);
		font-size: var(--bne-size-display-lg);
		font-weight: 700;
		letter-spacing: -0.02em;
		line-height: 1.1;
		overflow-wrap: normal;
		word-break: normal;
		hyphens: none;
		text-wrap: balance;
		max-width: min(18ch, 100%);
	}

	.bne-fit-heading--fitted {
		overflow-wrap: normal;
		word-break: normal;
		hyphens: none;
	}

	.bne-utility {
		font-family: var(--bne-font-mono);
		font-size: var(--bne-size-utility);
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}
}

@layer overrides {
	.bne-main:focus {
		outline: none;
	}

	.bne-nav-open {
		overflow: hidden;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.bne-button,
	.bne-cue-line__rule,
	.bne-nav,
	.bne-nav__item--has-children > .sub-menu {
		transition: none;
		animation: none;
		transform: none;
	}

	.skip-link {
		transition: none;
		animation: none;
	}

	.skip-link:not(:focus):not(:focus-visible):not(.is-focused) {
		transform: translateY(-160%);
	}

	.bne-button:active:not([aria-disabled="true"]) {
		transform: none;
	}
}

/*
 * Unlayered on purpose: WordPress theme.json element styles (especially `a`)
 * print unlayered and would otherwise beat @layer components.
 */
.bne-brand,
.bne-brand a,
.bne-brand__link {
	color: var(--bne-color-text);
	text-decoration: none;
}

.bne-brand--on-dark,
.bne-brand--on-dark a,
.bne-footer .bne-brand__name {
	color: var(--bne-color-text-on-dark);
}

.bne-header .bne-nav__list a {
	color: var(--bne-color-text);
}

.bne-header .bne-nav__list a:hover,
.bne-header .bne-nav__list .current-menu-item > a,
.bne-header .bne-nav__list .current-menu-item > .bne-nav__item-row > a,
.bne-header .bne-nav__list .current-menu-ancestor > .bne-nav__item-row > a,
.bne-header .bne-nav__list .current-menu-parent > .bne-nav__item-row > a,
.bne-header .bne-nav__list [aria-current="page"] {
	color: var(--bne-color-text);
}

body.bne-theme {
	font-size: 1rem;
}

.bne-button--primary,
.bne-button--on-dark,
.skip-link,
.bne-mobile-bar__action--primary,
.wp-block-button__link {
	color: var(--bne-color-primary-contrast);
}

.bne-button--primary:hover,
.bne-button--on-dark:hover,
.skip-link:hover,
.wp-block-button__link:hover {
	color: var(--bne-color-primary-contrast);
}

.bne-button--secondary {
	color: var(--bne-color-text);
}

.bne-button--secondary:hover {
	color: var(--bne-color-text-on-dark);
}

.bne-mobile-bar__action:not(.bne-mobile-bar__action--primary) {
	color: var(--bne-color-text);
}

html.bne-pointer-nav :focus:not(:focus-visible),
html.bne-pointer-nav button:focus,
html.bne-pointer-nav a:focus,
html.bne-pointer-nav [role="button"]:focus,
html.bne-pointer-nav input:focus,
html.bne-pointer-nav select:focus,
html.bne-pointer-nav textarea:focus {
	outline: none;
	box-shadow: none;
}

body.bne-theme a:focus-visible,
body.bne-theme button:focus-visible,
body.bne-theme [role="button"]:focus-visible {
	outline-color: var(--bne-color-accent);
}

.bne-footer a {
	color: var(--bne-color-text-on-dark);
}

.bne-footer a:hover,
.bne-footer__bottom-links .bne-consent-open:hover {
	color: var(--bne-color-text-on-dark);
}

.bne-breadcrumb__link {
	color: var(--bne-color-text);
}

.bne-button--ghost-on-dark {
	color: var(--bne-color-text-on-dark);
}

.bne-button--ghost-on-dark:hover {
	color: var(--bne-color-surface-dark);
}
