/*
Theme Name: Neuronano ACF
Theme URI: https://example.com
Author: Neuronano
Author URI: https://example.com
Description: Bare minimum WordPress theme built around Advanced Custom Fields. Requires the ACF plugin.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: neuronano-acf
*/

/*
 * Fonts: Raleway (Google) — body + headings | All Round Gothic Medium (Adobe Typekit) — pre-headers + buttons.
 * Typekit family name: "all-round-gothic" (weight 500 = medium).
 */
/* Base layout — extend in the Block Editor or your own CSS */
body {
	margin: 0;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-weight: 400;
	line-height: 1.5;
	color: #1a1a1a;
	background: #fff;
	font-variant-numeric: lining-nums;
	overflow-x: hidden;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-weight: 700;
	line-height: 1.2;
}

p {
	margin: 0;
}

.site {
	margin: 0 auto;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.site-main {
	flex: 1 0 auto;
}

.site-header {
	background: #fff;
	padding: 20px 0;
	position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 999;
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
}

.site-header__brand {
	flex-shrink: 0;
}

.site-header__logo-link {
	display: inline-block;
	line-height: 0;
	text-decoration: none;
}

.site-header__logo-link:focus-visible {
	outline: 2px solid #003087;
	outline-offset: 4px;
}

.site-header__logo {
	display: block;
	width: auto;
	max-width: 100px;
	height: auto;
}

.site-header__site-name {
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-size: 1.25rem;
	font-weight: 700;
	color: #003087;
}

.site-header__actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 2.5rem;
	flex: 1 1 auto;
	min-width: 0;
}

.site-header__controls {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-shrink: 0;
}

.site-header__nav {
	min-width: 0;
}

.site-header__menu {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.25rem 2rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-header__menu > li {
	position: relative;
	margin: 0;
}

.site-header__menu > li.menu-item-has-children {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}

.site-header__menu > li > a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: "all-round-gothic", sans-serif;
	font-weight: 500;
	font-size: 16px;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
	color: #003087;
	white-space: nowrap;
	transition: color 0.15s ease;
}

.site-header__menu > li > a:hover,
.site-header__menu > li > a:focus {
	color: #21beb2;
	opacity: 1;
}

.site-header__menu > li > a:focus-visible {
	outline: 2px solid #003087;
	outline-offset: 4px;
}

.site-header__menu-chevron {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	line-height: 0;
	transition: transform 0.2s ease;
}

.site-header__menu-chevron svg path {
	stroke: currentColor;
	transition: stroke 0.15s ease;
}

.site-header__submenu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	margin: 0 0 0 0.375rem;
	border: 0;
	background: transparent;
	color: #003087;
	cursor: pointer;
	transition: color 0.15s ease;
}

.site-header__submenu-toggle:hover,
.site-header__submenu-toggle:focus {
	color: #21beb2;
}

.site-header__submenu-toggle:focus-visible {
	outline: 2px solid #003087;
	outline-offset: 4px;
}

.site-header__menu > li.is-submenu-open > .site-header__submenu-toggle .site-header__menu-chevron {
	transform: rotate(180deg);
}

.site-header__menu .sub-menu {
	position: absolute;
	top: calc(100% + 0.75rem);
	left: 0;
	z-index: 100;
	min-width: 12rem;
	margin: 0;
	padding: 0;
	list-style: none;
	background: #fff;
	border: 1px solid #003087;
	border-radius: 6px;
	overflow: hidden;
	opacity: 0;
	visibility: hidden;
	transform: translateY(4px);
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
}

.site-header__menu > li:hover > .sub-menu,
.site-header__menu > li.is-submenu-open > .sub-menu,
.site-header__menu > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.site-header__menu .sub-menu a {
	display: block;
	padding: 14px 18px;
	font-family: "raleway", sans-serif;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.25;
	text-decoration: none;
	color: #003087;
	white-space: nowrap;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.site-header__menu .sub-menu a:hover,
.site-header__menu .sub-menu a:focus {
	color: #21beb2;
}

.site-header__cta {
	flex-shrink: 0;
}

.site-header__cta--menu {
	display: none;
}

.site-header__menu-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1px solid #003087;
	border-radius: 6px;
	background: #fff;
	color: #003087;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.site-header__menu-toggle:hover,
.site-header__menu-toggle:focus-visible {
	background: #f4f8fb;
}

.site-header__menu-toggle:focus-visible {
	outline: 2px solid #003087;
	outline-offset: 4px;
}

.site-header__menu-toggle-box {
	position: relative;
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 20px;
	height: 16px;
}

.site-header__menu-toggle-line {
	display: block;
	width: 20px;
	height: 2px;
	border-radius: 999px;
	background: currentColor;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.site-header__overlay {
	display: none;
}

.site-header__menu-close {
	display: none;
	padding: 0;
	border: 1px solid #003087;
	border-radius: 6px;
	background: #fff;
	color: #003087;
	cursor: pointer;
}

.site-header__menu-close:focus-visible {
	outline: 2px solid #003087;
	outline-offset: 4px;
}

.site-header__menu-close-icon {
	position: relative;
	display: block;
	width: 18px;
	height: 18px;
	margin: 12px;
}

.site-header__menu-close-icon::before,
.site-header__menu-close-icon::after {
	content: "";
	position: absolute;
	top: 8px;
	left: 0;
	width: 18px;
	height: 2px;
	border-radius: 999px;
	background: currentColor;
}

.site-header__menu-close-icon::before {
	transform: rotate(45deg);
}

.site-header__menu-close-icon::after {
	transform: rotate(-45deg);
}

@media (max-width: 1023px) {
	.site-header__inner {
		flex-wrap: nowrap;
		gap: 1rem;
	}

	.site-header__actions {
		position: fixed;
		top: 0;
		right: 0;
		z-index: 1000;
		display: block;
		width: min(88vw, 460px);
		height: 100dvh;
		padding: 96px 24px 32px;
		box-sizing: border-box;
		background: #fff;
		box-shadow: -16px 0 36px rgba(0, 19, 54, 0.18);
		transform: translateX(100%);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: transform 0.24s ease, opacity 0.24s ease, visibility 0.24s ease;
		overflow-y: auto;
	}

	.site-header__controls {
		margin-left: auto;
		gap: 0.75rem;
	}

	.site-header__nav {
		width: 100%;
	}

	.site-header__menu-close {
		position: absolute;
		top: 20px;
		right: 20px;
		z-index: 1;
		display: flex;
		align-items: center;
		justify-content: center;
		margin: 0;
	}

	.site-header__menu-toggle {
		display: inline-flex;
		flex-shrink: 0;
	}

	.site-header__overlay {
		position: fixed;
		inset: 0;
		z-index: 999;
		display: block;
		border: 0;
		background: rgba(0, 19, 54, 0.44);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: opacity 0.2s ease, visibility 0.2s ease;
	}

	.site-header__menu {
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		gap: 0;
	}

	.site-header__menu > li {
		border-bottom: 1px solid #e2e8f0;
	}

	.site-header__menu > li:last-child {
		border-bottom: 0;
	}

	.site-header__menu > li > a {
		width: 100%;
		padding: 0.9rem 0;
		white-space: normal;
	}

	.site-header__menu > li.menu-item-has-children > a {
		flex: 1 1 auto;
		width: auto;
		min-width: 0;
	}

	.site-header__submenu-toggle {
		flex: 0 0 auto;
		align-self: stretch;
		margin: 0;
		padding: 0 0 0 1rem;
	}

	.site-header__menu .sub-menu {
		position: static;
		top: auto;
		left: auto;
		min-width: 0;
		display: none;
		opacity: 1;
		visibility: visible;
		transform: none;
		border: 0;
		box-shadow: none;
		padding: 0.25rem 0 0.75rem 1rem;
		overflow: visible;
		flex: 0 0 100%;
		width: 100%;
	}

	.site-header__menu .sub-menu a {
		padding: 0.6rem 0;
		white-space: normal;
	}

	.site-header__menu > li.is-submenu-open > .sub-menu {
		display: block;
	}

	.site-header__menu .sub-menu > li:first-child > a {
		padding-top: 0;
	}

	.site-header.is-mobile-menu-open .site-header__overlay {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	.site-header.is-mobile-menu-open .site-header__actions {
		transform: translateX(0);
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	.site-header.is-mobile-menu-open .site-header__menu-toggle-line:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.site-header.is-mobile-menu-open .site-header__menu-toggle-line:nth-child(2) {
		opacity: 0;
	}

	.site-header.is-mobile-menu-open .site-header__menu-toggle-line:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	.site-header.is-mobile-menu-static .site-header__actions,
	.site-header.is-mobile-menu-static .site-header__overlay,
	.site-header.is-mobile-menu-static .site-header__menu-toggle-line {
		transition: none;
	}

	.site-header__cta .nn-btn {
		white-space: nowrap;
	}
}

@media (max-width: 520px) {
	.site-header__actions {
		width: 100%;
		max-width: none;
	}
}

@media (max-width: 440px) {
	.site-header__cta--bar {
		display: none;
	}

	.site-header__cta--menu {
		display: block;
		width: 100%;
		max-width: 100%;
		margin: 0 0 1rem;
		box-sizing: border-box;
	}

	.site-header__cta--menu .nn-btn {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		white-space: normal;
	}
}

body.has-mobile-menu-open {
	overflow: hidden;
}

.site-header.is-mobile-menu-static .site-header__actions,
.site-header.is-mobile-menu-static .site-header__overlay,
.site-header.is-mobile-menu-static .site-header__menu-toggle-line {
	transition: none !important;
}

.site-footer {
	--nn-footer-bg: #001336;
	--nn-footer-text: #ffffff;
	background-color: var(--nn-footer-bg);
	color: var(--nn-footer-text);
	margin-top: auto;
	padding-bottom: 80px;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.site-footer__main {
	display: grid;
	gap: 2.5rem 2rem;
}

@media (min-width: 900px) and (max-width: 1023px) {
	.site-footer__main {
		grid-template-columns: minmax(0, 1.1fr) minmax(0, max-content) minmax(0, 1fr) minmax(0, max-content);
		align-items: start;
		gap: 2rem 2.5rem;
	}
}

@media (min-width: 1024px) {
	.site-footer__main {
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr);
		align-items: start;
		gap: 2rem 2.5rem;
	}
}

.site-footer__heading {
	margin: 0 0 1rem;
	font-size: 1rem;
	font-weight: 700;
	color: inherit;
}

.site-footer__subheading {
	margin: 0 0 0.35rem;
	font-size: inherit;
	font-weight: 700;
	color: inherit;
}

.site-footer__logo-link {
	display: inline-block;
	text-decoration: none;
	color: inherit;
}

.site-footer__logo-link:focus-visible {
	outline: 2px solid #21beb2;
	outline-offset: 4px;
}

.site-footer__logo {
	display: block;
	max-width: 120px;
	width: 100%;
	height: auto;
}

.site-footer__locations {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.25rem 1.5rem;
}

.site-footer__location:nth-child(3) {
	grid-column: 1 / -1;
}

@media (max-width: 599px) {
	.site-footer__locations {
		grid-template-columns: 1fr;
	}

	.site-footer__location:nth-child(3) {
		grid-column: auto;
	}
}

.nn-footer-wysiwyg p {
	margin: 0.35rem 0 0;
}

.nn-footer-wysiwyg p:first-child {
	margin-top: 0;
}

.site-footer__line {
	margin: 0.25rem 0 0;
}

.site-footer__line:first-of-type {
	margin-top: 0;
}

.site-footer__link {
	color: inherit;
	text-decoration: none;
}

.site-footer__link:hover,
.site-footer__link:focus {
	text-decoration: underline;
}

.site-footer__link:focus-visible {
	outline: 2px solid #21beb2;
	outline-offset: 2px;
}

.site-footer__contact-block + .site-footer__social-block {
	margin-top: 2rem;
}

@media (min-width: 768px) and (max-width: 1023px) {
	.site-footer__col--contact {
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
		gap: 34px;
		width: fit-content;
		max-width: 100%;
	}

	.site-footer__contact-block,
	.site-footer__social-block {
		width: auto;
		flex: 0 0 auto;
	}

	.site-footer__contact-block + .site-footer__social-block {
		margin-top: 0;
	}

	.site-footer__locations {
		display: flex;
		flex-wrap: wrap;
		gap: 34px;
		width: fit-content;
		max-width: 100%;
	}

	.site-footer__location {
		flex: 0 0 auto;
		width: auto;
		max-width: 100%;
	}

	.site-footer__location:nth-child(3) {
		grid-column: auto;
	}
}

.site-footer__social-list {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer__social-link {
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	color: inherit;
}

.site-footer__social-icon {
	display: block;
	max-width: 100%;
	max-height: 100%;
	height: 22px;
	width: 22px;
	object-fit: contain;
}

.site-footer__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	columns: 2;
	column-gap: 1.5rem;
}

@media (min-width: 768px) and (max-width: 1023px) {
	.site-footer__menu {
		display: inline-block;
		width: fit-content;
		max-width: 100%;
		column-gap: 34px;
	}
}

.site-footer__menu > li {
	margin: 0 0 0.5rem;
	break-inside: avoid;
}

.site-footer__menu a {
	color: inherit;
	text-decoration: none;
}

.site-footer__menu a:hover,
.site-footer__menu a:focus {
	text-decoration: underline;
}

.site-footer__menu a:focus-visible {
	outline: 2px solid #21beb2;
	outline-offset: 2px;
}

.site-footer__bar {
	padding-top: 1.25rem;
	padding-bottom: 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	font-size: 0.8125rem;
	opacity: 0.85;
}

.site-footer__credit {
	margin: 0;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link:focus {
	position: fixed;
	top: 0.5rem;
	left: 0.5rem;
	z-index: 100000;
	width: auto;
	height: auto;
	padding: 0.5rem 1rem;
	margin: 0;
	overflow: visible;
	clip: auto;
	white-space: normal;
	background: #1a1a1a;
	color: #fff;
	text-decoration: none;
	border-radius: 4px;
}

.entry-title {
	margin-top: 0;
}

.entry-content {
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-weight: 400;
}

/*
 * Responsive font sizes
 * - Start scaling at 640px viewport width
 * - Stop scaling at 1536px
 * - Values listed in class names are the MAX sizes (at/after 1536px)
 */

/* Headings / titles (max: 90, 82, 62, 56, 38, 32, 26) */
.nn-fs-h90 { font-size: clamp(56px, calc(56px + (90 - 56) * ((100vw - 640px) / (1536 - 640))), 90px); line-height: 1.05; }
.nn-fs-h82 { font-size: clamp(54px, calc(54px + (82 - 54) * ((100vw - 640px) / (1536 - 640))), 82px); line-height: 1.06; }
.nn-fs-h62 { font-size: clamp(44px, calc(44px + (62 - 44) * ((100vw - 640px) / (1536 - 640))), 62px); line-height: 1.1; }
.nn-fs-h56 { font-size: clamp(40px, calc(40px + (56 - 40) * ((100vw - 640px) / (1536 - 640))), 56px); line-height: 1.12; }
.nn-fs-h38 { font-size: clamp(32px, calc(32px + (38 - 32) * ((100vw - 640px) / (1536 - 640))), 38px); line-height: 1.2; }
.nn-fs-h32 { font-size: clamp(28px, calc(28px + (32 - 28) * ((100vw - 640px) / (1536 - 640))), 32px); line-height: 1.25; }
.nn-fs-h26 { font-size: clamp(24px, calc(24px + (26 - 24) * ((100vw - 640px) / (1536 - 640))), 26px); line-height: 1.3; }

@media (max-width: 767px) {
	.nn-fs-h90 { font-size: clamp(42px, 9vw, 46px); }
	.nn-fs-h82 { font-size: clamp(40px, 8.5vw, 42px); }
	.nn-fs-h62 { font-size: clamp(36px, 7.5vw, 36px); }
	.nn-fs-h56 { font-size: clamp(32px, 7vw, 32px); }
}

/* Body text (max: 26, 24, 22, 20, 18, 16) */
.nn-fs-t26 { font-size: clamp(24px, calc(24px + (26 - 24) * ((100vw - 640px) / (1536 - 640))), 26px); line-height: 1.55; }
.nn-fs-t24 { font-size: clamp(22px, calc(22px + (24 - 22) * ((100vw - 640px) / (1536 - 640))), 24px); line-height: 1.58; }
.nn-fs-t22 { font-size: clamp(20px, calc(20px + (22 - 20) * ((100vw - 640px) / (1536 - 640))), 22px); line-height: 1.6; }
.nn-fs-t20 { font-size: clamp(18px, calc(18px + (20 - 18) * ((100vw - 640px) / (1536 - 640))), 20px); line-height: 1.65; }
.nn-fs-t18 { font-size: clamp(16px, calc(16px + (18 - 16) * ((100vw - 640px) / (1536 - 640))), 18px); line-height: 1.7; }
.nn-fs-t16 { font-size: 16px; line-height: 1.75; }

@media (max-width: 767px) {
	.nn-fs-t22 { font-size: clamp(18px, calc(18px + (20 - 18) * ((100vw - 640px) / (1536 - 640))), 20px); line-height: 1.65; }
}

/* Pre-header (max: 18, 16, 14) */
.nn-fs-p18 { font-size: clamp(16px, calc(16px + (18 - 16) * ((100vw - 640px) / (1536 - 640))), 18px); line-height: 1.25; }
.nn-fs-p16 { font-size: 16px; line-height: 1.25; }
.nn-fs-p14 { font-size: 14px; line-height: 1.25; }

/* Full-bleed block sections + inner container widths */
.nn-container {
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
	box-sizing: border-box;
}

.nn-container--normal {
	max-width: 1440px;
}

.nn-container--wide {
	max-width: 1700px;
}

/* Shared vertical spacing for block utilities across common breakpoints. */
:root {
	--nn-section-space-y: 50px;
}

@media (min-width: 768px) {
	:root {
		--nn-section-space-y: 80px;
	}
}

@media (min-width: 1024px) {
	:root {
		--nn-section-space-y: 110px;
	}
}

@media (min-width: 1280px) {
	:root {
		--nn-section-space-y: 130px;
	}
}

@media (min-width: 1536px) {
	:root {
		--nn-section-space-y: 160px;
	}
}

/* Block spacing utilities (ACF button groups) */
.pt { padding-top: var(--nn-section-space-y); }
.pb { padding-bottom: var(--nn-section-space-y); }
.mt { margin-top: var(--nn-section-space-y); }
.mb { margin-bottom: var(--nn-section-space-y); }

/* ACF block: text-block */
.block-text-block {
	background: #fff;
	position: relative;
	overflow: hidden;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.block-text-block--has-bg-image {
	min-height: 12rem;
}

.block-text-block .nn-container {
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.block-text-block__content {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.block-text-block__intro {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

/* ACF block: text-with-boxes */
.block-text-with-boxes {
	background: #fff;
	position: relative;
	overflow: hidden;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.block-text-with-boxes--has-bg-image {
	min-height: 12rem;
}

.block-text-with-boxes__intro {
	text-align: center;
	margin-bottom: 40px;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.block-text-with-boxes__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 20px;
	width: 100%;
	max-width: 950px;
	margin-inline: auto;
	text-align: left;
}

@media (min-width: 1280px) {
	.block-text-with-boxes__intro {
		margin-bottom: 60px;
	}

	.block-text-with-boxes__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		max-width: 100%;
	}
}

@media (min-width: 1536px) {
	.block-text-with-boxes__grid {
		gap: 40px;
	}
}

.block-text-with-boxes__card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 250px;
	padding: 36px;
	border-radius: 8px;
	color: var(--nn-twxb-title, #fff);
	text-decoration: none;
	box-sizing: border-box;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

@media (max-width: 767px) {
	.block-text-with-boxes__card {
		padding: 24px;
	}
}

@media (min-width: 1280px) {
	.block-text-with-boxes__card {
		min-height: 350px;
	}
}

a.block-text-with-boxes__card:hover,
a.block-text-with-boxes__card:focus-visible {
	transform: translateY(-3px);
}

.block-text-with-boxes__card-top {
	width: 100%;
	box-sizing: border-box;
}

.block-text-with-boxes__card--has-link .block-text-with-boxes__card-top {
	padding-right: 75px;
}

.block-text-with-boxes__label.nn-pre {
	margin: 0;
	color: var(--nn-twxb-label, #6ee7d8);
}

.block-text-with-boxes__label--empty {
	visibility: hidden;
}

.block-text-with-boxes__card-spacer {
	flex: 1 1 auto;
	min-height: 1rem;
}

.block-text-with-boxes__box-title.nn-heading {
	margin: 0;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-weight: 500;
	color: var(--nn-twxb-title, #fff);
}

.block-text-with-boxes__arrow {
	position: absolute;
	top: 20px;
	right: 20px;
	line-height: 0;
	width: 55px;
	height: 55px;
	box-sizing: border-box;
	border-radius: 50%;
	border: 2px solid var(--nn-twxb-title, #fff);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.block-text-with-boxes__arrow-svg {
	display: block;
}

.block-text-with-boxes__arrow-path {
	stroke: var(--nn-twxb-title, #fff);
	stroke-width: 1.83333;
	fill: none;
	transition: stroke 0.2s ease;
}

@media (max-width: 767px) {
	.block-text-with-boxes__label.nn-pre {
		font-size: 14px;
	}

	.block-text-with-boxes__arrow {
		top: 16px;
		right: 16px;
		width: 48px;
		height: 48px;
	}
}

.block-text-with-boxes__card:hover .block-text-with-boxes__arrow,
.block-text-with-boxes__card:focus-visible .block-text-with-boxes__arrow {
	background-color: #fff;
	border-color: #fff;
}

.block-text-with-boxes__card:hover .block-text-with-boxes__arrow-path,
.block-text-with-boxes__card:focus-visible .block-text-with-boxes__arrow-path {
	stroke: #00225f;
}

/* ACF block: list-box */
.block-list-box {
	background: #fff;
	position: relative;
	overflow: hidden;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.block-list-box__box {
	border-radius: 16px;
	padding-block: clamp(48px, calc(48px + (120 - 48) * ((100vw - 640px) / (1536 - 640))), 120px);
	padding-inline: clamp(24px, calc(24px + (80 - 24) * ((100vw - 640px) / (1536 - 640))), 80px);
	box-sizing: border-box;
	width: 100%;
}

.block-list-box__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 60px;
	width: 100%;
}

.block-list-box__intro {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 26px;
	width: 100%;
	margin-inline: auto;
	text-align: center;
}

.block-list-box__heading.nn-heading {
	margin: 0;
	color: #fff;
}

.block-list-box__text.nn-rich-text {
	margin: 0;
	color: #fff;
}

.block-list-box__text.nn-rich-text > :first-child {
	margin-top: 0;
}

.block-list-box__text.nn-rich-text > :last-child {
	margin-bottom: 0;
}

.block-list-box__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 26px;
	width: 100%;
	margin: 0 auto;
	padding: 0;
	list-style: none;
	box-sizing: border-box;
}

.block-list-box__pill {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 18px 14px 14px;
	border: 1px solid var(--nn-lxb-pill, #6ee7d8);
	border-radius: 100px;
	color: #fff;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-size: 16px;
	font-weight: 300;
	line-height: 1.35;
	box-sizing: border-box;
}

.block-list-box__check {
	display: inline-flex;
	flex-shrink: 0;
	line-height: 0;
	color: var(--nn-lxb-pill, #6ee7d8);
}

.block-list-box__check-circle {
	fill: none;
	stroke: currentColor;
	stroke-width: 1;
}

.block-list-box__check-mark {
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
}

.block-list-box__pill-text {
	display: block;
}

@media (max-width: 767px) {
	.block-list-box__list {
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		gap: 16px;
	}

	.block-list-box__pill {
		display: flex;
		width: 100%;
		padding: 0;
		border: 0;
		border-radius: 0;
	}
}

/* ACF block: text-with-numbers */
.block-text-with-numbers {
	background: #fff;
	position: relative;
	overflow: hidden;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.block-text-with-numbers--has-bg-image {
	min-height: 12rem;
}

.block-text-with-numbers__intro {
	max-width: 900px;
	text-align: left;
	display: flex;
	flex-direction: column;
	gap: 40px;
	margin-bottom: 40px;
}

.block-text-with-numbers__intro .nn-btn-list {
	justify-content: flex-start;
}

.block-text-with-numbers__stats {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 40px;
	width: 100%;
	text-align: left;
	margin-top: 0;
}

.block-text-with-numbers__stat {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	flex: 0 0 auto;
	gap: 0.75rem;
	width: auto;
	max-width: 100%;
	min-width: 0;
}

.block-text-with-numbers__stat-value {
	margin: 0;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-weight: 700;
	font-size: 90px;
	line-height: 0.88;
	letter-spacing: -0.03em;
	background-image: linear-gradient(
		to top,
		color-mix(in srgb, var(--nn-twn-stroke, #6ee7d8) 15%, transparent) 0%,
		transparent 100%
	);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	-webkit-text-stroke: 2px var(--nn-twn-stroke, #6ee7d8);
	paint-order: stroke fill;
}

@media (min-width: 768px) {
	.block-text-with-numbers__stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.block-text-with-numbers__stat-value {
		font-size: 110px;
	}
}

@media (min-width: 1024px) {
	.block-text-with-numbers__stat-value {
		font-size: 140px;
	}
}

@media (min-width: 1280px) {
	.block-text-with-numbers__intro {
		margin-bottom: 80px;
	}

	.block-text-with-numbers__stats {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 2rem;
	}

	.block-text-with-numbers__stat-value {
		font-size: 140px;
	}
}

@media (min-width: 1536px) {
	.block-text-with-numbers__stats {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: flex-start;
		gap: 80px;
	}

	.block-text-with-numbers__stat-value {
		font-size: 200px;
	}
}

.block-text-with-numbers__stat-label {
	margin: 0;
	max-width: 28ch;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-size: 30px;
	line-height: 1.3;
	font-weight: 400;
	color: var(--nn-twn-row-label, #ffffff);
}

@media (max-width: 1023px) {
	.block-text-with-numbers__stat-label {
		font-size: clamp(20px, 2.9vw, 26px);
	}
}

/* ACF block: recent-posts */
.block-recent-posts {
	position: relative;
	overflow-x: hidden;
	overflow-y: visible;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	box-sizing: border-box;
	color: #fff;
	--nn-recent-posts-gap: 1.25rem;
}

@supports (overflow: clip) {
	.block-recent-posts {
		overflow-x: clip;
	}
}

.block-recent-posts--has-bg-image {
	min-height: 12rem;
}

.block-recent-posts__inner {
	width: 100%;
	overflow: visible;
	container-type: inline-size;
	container-name: nn-recent-posts;
}

.block-recent-posts__header-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.block-recent-posts__heading-wrap {
	flex: 1 1 auto;
	min-width: 0;
}

.block-recent-posts__title {
	margin: 0;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-weight: 700;
	line-height: 1.15;
}

.block-recent-posts__nav {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-shrink: 0;
}

.block-recent-posts__arrow-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.85);
	background: transparent;
	color: #fff;
	cursor: pointer;
	box-sizing: border-box;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}

.block-recent-posts__arrow-btn:hover:not(:disabled),
.block-recent-posts__arrow-btn:focus-visible:not(:disabled) {
	background: #fff;
	border-color: #fff;
	color: #001336;
}

.block-recent-posts__arrow-btn:disabled {
	opacity: 0.35;
	cursor: not-allowed;
	pointer-events: none;
}

.block-recent-posts__arrow-icon {
	display: block;
}

.block-recent-posts__carousel {
	width: 100%;
	overflow: visible;
	margin-top: 40px;
}

.block-recent-posts__viewport {
	width: 100%;
	max-width: 100%;
	overflow-x: visible;
	overflow-y: visible;
	box-sizing: border-box;
	padding: 12px 0 28px;
	margin: -12px 0 -28px;
	cursor: grab;
	touch-action: pan-y;
}

[data-nn-drag-enabled="false"] .block-recent-posts__viewport {
	cursor: default;
	touch-action: auto;
}

.block-recent-posts__viewport:focus-visible {
	outline: 2px solid #21beb2;
	outline-offset: 4px;
}

.block-recent-posts__viewport.is-dragging {
	cursor: grabbing;
	touch-action: none;
}

.block-recent-posts__viewport.is-dragging .block-recent-posts__card-link {
	pointer-events: none;
}

.block-recent-posts__track {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: var(--nn-recent-posts-gap);
	width: max-content;
	min-height: 1px;
	will-change: transform;
}

.block-recent-posts__track.block-recent-posts__track--anim {
	transition: transform 0.38s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.block-recent-posts__card {
	flex: 0 0 clamp(260px, 32vw, 500px);
	max-width: min(100%, 500px);
}

@supports (width: 1cqw) {
	.block-recent-posts {
		--nn-recent-posts-visible-items: 1.2;
	}

	.block-recent-posts__card {
		flex: 0 0 min(
			500px,
			calc(
				(100cqw - (var(--nn-recent-posts-gap) * (var(--nn-recent-posts-visible-items) - 1))) /
					var(--nn-recent-posts-visible-items)
			)
		);
		max-width: min(100%, 500px);
	}

	@media (min-width: 768px) {
		.block-recent-posts {
			--nn-recent-posts-visible-items: 1.2;
		}
	}

	@media (min-width: 1024px) {
		.block-recent-posts {
			--nn-recent-posts-visible-items: 2;
		}
	}

	@media (min-width: 1248px) {
		.block-recent-posts {
			--nn-recent-posts-visible-items: 2.4;
		}
	}

	@media (min-width: 1536px) {
		.block-recent-posts__card {
			flex: 0 0 clamp(240px, 30cqw, 500px);
		}
	}
}

.block-recent-posts__card-link {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 20px;
	gap: 30px;
	box-sizing: border-box;
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	text-align: left;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

@media (min-width: 1024px) {
	.block-recent-posts__card-link {
		padding: 26px;
	}
}

.block-recent-posts__card-link:hover,
.block-recent-posts__card-link:focus-visible {
	transform: translateY(-4px);
}

.block-recent-posts__media {
	position: relative;
	flex: 0 0 auto;
	width: 100%;
	aspect-ratio: 3/2;
	overflow: hidden;
	border-radius: 8px;
	background: #e2f0f9;
}

.block-recent-posts__thumb-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border-radius: 12px;
}

.block-recent-posts__media-placeholder {
	width: 100%;
	height: 100%;
	min-height: 140px;
	border-radius: 12px;
	background: linear-gradient(135deg, #e2f0f9 0%, #c5d8e8 100%);
}

.block-recent-posts__badge {
	position: absolute;
	top: 14px;
	right: 14px;
	padding: 10px;
	border-radius: 4px;
	background: #fff;
	color: #001336;
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
}

.block-recent-posts__body {
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	flex: 1 1 auto;
	min-width: 0;
}

.block-recent-posts__card-title {
	margin: 0;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.35;
	color: #00225F;
}

.block-recent-posts__excerpt {
	margin: 0;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.6;
	color: #00225F;
	opacity: 0.6;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
}

/* Page template: All Posts */
.page-all-posts {
	position: relative;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	box-sizing: border-box;
	background-color: #00225f;
	color: #fff;
}

.page-all-posts__inner {
	max-width: 1700px;
}

.page-all-posts__title {
	margin: 0;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-weight: 700;
	line-height: 1.15;
}

.page-all-posts__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	margin-top: 40px;
}

@media (min-width: 768px) {
	.page-all-posts__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1100px) {
	.page-all-posts__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 1400px) {
	.page-all-posts__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.page-all-posts__grid .block-recent-posts__card {
	flex: none;
	max-width: none;
	width: 100%;
}

.page-all-posts__pagination {
	margin-top: 3rem;
}

.page-all-posts__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 0.5rem;
	margin: 0.25rem;
	border-radius: 4px;
	color: #fff;
	text-decoration: none;
	font-weight: 500;
}

.page-all-posts__pagination .page-numbers:hover,
.page-all-posts__pagination .page-numbers:focus-visible {
	background: rgba(255, 255, 255, 0.12);
}

.page-all-posts__pagination .page-numbers.current {
	background: #21beb2;
	color: #001336;
}

.page-all-posts__pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.page-all-posts__empty {
	margin: 2.5rem 0 0;
	font-size: 1.125rem;
	opacity: 0.85;
}

/* Single post */
.single-post {
	background: #fff;
}

.single-post__inner {
	width: 100%;
	max-width: 950px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
	box-sizing: border-box;
}

.single-post__back {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 40px;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.25;
	color: #003087;
	text-decoration: none;
	transition: color 0.2s ease, opacity 0.2s ease;
}

.single-post__back:hover,
.single-post__back:focus-visible {
	color: #21beb2;
}

.single-post__back-icon {
	display: block;
	flex-shrink: 0;
	color: inherit;
}

.single-post__stack {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.single-post__group--intro {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.single-post__media {
	width: 100%;
	aspect-ratio: 3 / 2;
	border-radius: 16px;
	overflow: hidden;
}

.single-post__featured-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 16px;
}

.single-post__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
}

.single-post__pill {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 10px 14px;
	border-radius: 6px;
	background: #e2f0f9;
	color: #003087;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.25;
}

.single-post__pill-icon {
	display: block;
	flex-shrink: 0;
	color: #003087;
}

.single-post__title {
	margin: 0;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-size: clamp(32px, calc(32px + (38 - 32) * ((100vw - 640px) / (1536 - 640))), 38px);
	font-weight: 700;
	line-height: 1.2;
	color: #00225f;
}

.single-post__lead {
	margin: 0;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-size: clamp(18px, calc(18px + (20 - 18) * ((100vw - 640px) / (1536 - 640))), 20px);
	font-weight: 700;
	line-height: 1.6;
	color: #00225f;
}

.single-post__divider {
	margin: 0;
	border: 0;
	border-top: 1px solid #e8edf2;
}

.single-post__body {
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-size: clamp(16px, calc(16px + (18 - 16) * ((100vw - 640px) / (1536 - 640))), 18px);
	font-weight: 400;
	line-height: 1.7;
	color: #00225f;
}

.single-post__body > :first-child {
	margin-top: 0;
}

.single-post__body > :last-child {
	margin-bottom: 0;
}

.single-post__body p {
	margin: 0 0 1.25rem;
}

.single-post__body a {
	color: #00225f;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.single-post__body a:hover,
.single-post__body a:focus-visible {
	color: #21beb2;
}

.single-post__recent.block-recent-posts {
	background-color: #00225f;
}

.single-post__recent .block-recent-posts__inner {
	max-width: 1700px;
}

/* Single company member */
.single-company-member__intro {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.single-company-member__name {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35em;
}

.single-company-member__contact.single-post__meta {
	gap: 20px;
}

a.single-company-member__pill-link {
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

a.single-company-member__pill-link:hover,
a.single-company-member__pill-link:focus-visible {
	background-color: #00225f;
	color: #fff;
}

a.single-company-member__pill-link:hover .single-post__pill-icon,
a.single-company-member__pill-link:focus-visible .single-post__pill-icon {
	color: #fff;
}

.single-company-member__excerpt {
	margin: 0;
}

/* ACF block: cta-banner */
.block-cta-banner {
	position: relative;
	overflow: hidden;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	box-sizing: border-box;
	color: #001336;
}

.block-cta-banner--split-outer {
	background-color: var(--nn-cta-outer-bottom, #001336);
}

.block-cta-banner--split-outer::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 50%;
	background-color: var(--nn-cta-outer-top, #00225f);
	pointer-events: none;
	z-index: 0;
}

.block-cta-banner .nn-container {
	position: relative;
	z-index: 1;
	
}

.block-cta-banner__bar {
	position: relative;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	width: 100%;
	min-height: 120px;
	padding: 30px;
	border-radius: 24px;
	box-sizing: border-box;
	text-decoration: none;
	color: #001336;
	background-color: var(--nn-cta-bar-bg, #e2f0f9);
	overflow: hidden;
}

@media (min-width: 900px) {
	.block-cta-banner__bar {
		min-height: 140px;
		padding: 50px;
		border-radius: 16px;
	}
}

a.block-cta-banner__bar {
	cursor: pointer;
}

.block-cta-banner__brain {
	position: absolute;
	right: 60px;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	z-index: 0;
	opacity: 0.5;
	width: 650px;
}

@media (min-width: 768px) and (max-width: 1024px) {
	.block-cta-banner__brain {
		width: 450px;
	}
}

@media (max-width: 767px) {
	.block-cta-banner__brain {
		width: 66%;
		min-width: 320px;
		right: -12%;
		top: 70%;
		opacity: 0.3;
	}
}

.block-cta-banner__brain-img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}

.block-cta-banner__main {
	position: relative;
	z-index: 1;
	flex: 1 1 auto;
	min-width: 0;
	padding-right: 30px;
}

.block-cta-banner__title.nn-heading {
	margin: 0 0 20px 0;
	font-weight: 700;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
}

.block-cta-banner__text {
	margin: 0;
	font-weight: 400;
	color: inherit;
}

.block-cta-banner__btn {
	position: relative;
	z-index: 1;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 65px;
	height: 65px;
	border-radius: 50%;
	background: #fff;
	color: #001336;
	border: 2px solid transparent;
	box-sizing: border-box;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.block-cta-banner__btn-svg {
	display: block;
}

.block-cta-banner__bar:hover .block-cta-banner__btn,
a.block-cta-banner__bar:focus-visible .block-cta-banner__btn {
	background-color: #001336;
	color: #fff;
	border-color: #001336;
}

a.block-cta-banner__bar:focus-visible {
	outline: 2px solid #21beb2;
	outline-offset: 3px;
}

@media (max-width: 767px) {
	.block-cta-banner__bar {
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		gap: 32px;
	}

	.block-cta-banner__btn {
		align-self: flex-end;
		width: 54px;
		height: 54px;
	}

	.block-cta-banner__btn-svg {
		width: 18px;
		height: auto;
	}

	.block-cta-banner__main {
		padding-right: 0;
	}

	.block-cta-banner__title.nn-heading {
		margin-bottom: 10px;
	}
}

/* ACF block: newsletter-social */
.block-newsletter-social {
	--nn-nls-box-padding: 24px;
	--nn-nls-grid-gap: 24px;
	background: #fff;
	position: relative;
	overflow: hidden;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

@media (min-width: 768px) {
	.block-newsletter-social {
		--nn-nls-box-padding: 32px;
		--nn-nls-grid-gap: 32px;
	}
}

@media (min-width: 1024px) {
	.block-newsletter-social {
		--nn-nls-box-padding: 40px;
		--nn-nls-grid-gap: 40px;
	}
}

@media (min-width: 1280px) {
	.block-newsletter-social {
		--nn-nls-box-padding: 50px;
		--nn-nls-grid-gap: 50px;
	}
}

@media (min-width: 1536px) {
	.block-newsletter-social {
		--nn-nls-box-padding: 60px;
		--nn-nls-grid-gap: 60px;
	}
}

.block-newsletter-social__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--nn-nls-grid-gap);
	width: 100%;
	margin-inline: auto;
}

@media (min-width: 768px) {
	.block-newsletter-social__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.block-newsletter-social__box {
	border-radius: 12px;
	padding: var(--nn-nls-box-padding);
	box-sizing: border-box;
	width: 100%;
}

.block-newsletter-social__heading.nn-heading {
	margin: 0;
}

.block-newsletter-social__text.nn-rich-text {
	margin: 0;
}

.block-newsletter-social__text.nn-rich-text > :first-child {
	margin-top: 0;
}

.block-newsletter-social__text.nn-rich-text > :last-child {
	margin-bottom: 0;
}

.block-newsletter-social__body {
	display: flex;
	flex-direction: column;
	gap: 26px;
	width: 100%;
}

.block-newsletter-social__form {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 22px;
	width: 100%;
	margin: 0;
}

.block-newsletter-social__email {
	flex: 1 1 12rem;
	min-width: 0;
	margin: 0;
	padding: 16px 18px;
	border-radius: 6px;
	background: #fff;
	color: #00225F;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.35;
	border: none;
	outline: none;;
	box-sizing: border-box;
}

.block-newsletter-social__email::placeholder {
	color: inherit;
	opacity: 0.65;
}

.block-newsletter-social__email:focus {
	outline: none;
	border-color: transparent;
}

.block-newsletter-social__submit {
	flex: 0 0 auto;
	cursor: pointer;
	border: 0;
}

.block-newsletter-social__social-list {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.block-newsletter-social__social-link {
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
	text-decoration: none;
}

.block-newsletter-social__social-icon {
	display: block;
	width: 28px;
	height: 28px;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

/* ACF block: company-members */
.block-company-members {
	
	--nn-cm-section-gap: 40px;
	--nn-cm-card-gap: 20px;
	--nn-cm-intro-gap: 24px;
	background: #00225f;
	color: #fff;
	position: relative;
	overflow: hidden;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

@media (min-width: 768px) {
	.block-company-members {
		--nn-cm-section-gap: 60px;
		--nn-cm-card-gap: 24px;
		--nn-cm-intro-gap: 32px;
	}
}

@media (min-width: 1024px) {
	.block-company-members {
		--nn-cm-section-gap: 90px;
		--nn-cm-card-gap: 30px;
		--nn-cm-intro-gap: 30px;
	}
}

.block-company-members--has-bg-image {
	min-height: 12rem;
}

.block-company-members__sections {
	display: flex;
	flex-direction: column;
	gap: var(--nn-cm-section-gap);
	width: 100%;
}

.block-company-members__section {
	display: flex;
	flex-direction: column;
	gap: var(--nn-cm-intro-gap);
	width: 100%;
}

.block-company-members__intro {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 52rem;
}

.block-company-members__heading.nn-heading {
	margin: 0;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-weight: 700;
	line-height: 1.15;
}

.block-company-members__text.nn-rich-text {
	margin: 0;
}

.block-company-members__text.nn-rich-text > :first-child {
	margin-top: 0;
}

.block-company-members__text.nn-rich-text > :last-child {
	margin-bottom: 0;
}

.block-company-members__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--nn-cm-card-gap);
	width: 100%;
}

@media (min-width: 768px) {
	.block-company-members__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1100px) {
	.block-company-members__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 1400px) {
	.block-company-members__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.block-company-members__card {
	margin: 0;
	min-width: 0;
}

.block-company-members__card-shell {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	color: inherit;
	text-align: left;
}

a.block-company-members__card-shell {
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

a.block-company-members__card-shell:hover,
a.block-company-members__card-shell:focus-visible {
	transform: translateY(-4px);
}

.block-company-members__media {
	position: relative;
	flex: 0 0 auto;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #e2f0f9;
}

.block-company-members__thumb-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.block-company-members__media-placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #e2f0f9 0%, #c5d8e8 100%);
}

.block-company-members__arrow {
	position: absolute;
	top: 20px;
	right: 20px;
	line-height: 0;
	width: 55px;
	height: 55px;
	box-sizing: border-box;
	border-radius: 50%;
	border: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	transition: background-color 0.2s ease;
}

.block-company-members__arrow-svg {
	display: block;
	width: 16px;
	height: 16px;
}

.block-company-members__arrow-path {
	stroke: #00225f;
	stroke-width: 1.83333;
	fill: none;
	transition: stroke 0.2s ease;
}

a.block-company-members__card-shell:hover .block-company-members__arrow,
a.block-company-members__card-shell:focus-visible .block-company-members__arrow {
	background: #00225f;
}

a.block-company-members__card-shell:hover .block-company-members__arrow-path,
a.block-company-members__card-shell:focus-visible .block-company-members__arrow-path {
	stroke: #fff;
}

.block-company-members__body {
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 1 1 auto;
	min-width: 0;
	padding: 24px;
}

@media (min-width: 1024px) {
	.block-company-members__body {
		padding: 28px;
	}
}

.block-company-members__card-title {
	margin: 0;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-size: clamp(20px, 2vw, 24px);
	font-weight: 600;
	line-height: 1.35;
	color: #00225f;
}

.block-company-members__excerpt {
	margin: 0;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.6;
	color: #00225f;
	opacity: 0.6;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	line-clamp: 4;
	overflow: hidden;
}

/* ACF block: contact */
.block-contact {
	--nn-contact-grid-gap: 32px;
	--nn-contact-intro-gap: 24px;
	--nn-contact-details-gap: 40px;
	background: #fff;
}

@media (min-width: 768px) {
	.block-contact {
		--nn-contact-grid-gap: 48px;
		--nn-contact-intro-gap: 32px;
		--nn-contact-details-gap: 48px;
	}
}

.block-contact__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--nn-contact-grid-gap);
	align-items: start;
}

@media (min-width: 1024px) {
	.block-contact {
		--nn-contact-grid-gap: 64px;
		--nn-contact-details-gap: 56px;
	}

	.block-contact__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.block-contact__col {
	display: flex;
	flex-direction: column;
	gap: var(--nn-contact-intro-gap);
	min-width: 0;
}

.block-contact__intro {
	display: flex;
	flex-direction: column;
	gap: var(--nn-contact-intro-gap);
}

.block-contact__heading.nn-heading {
	margin: 0;
}

.block-contact__text.nn-rich-text {
	margin: 0;
}

.block-contact__text.nn-rich-text > :first-child {
	margin-top: 0;
}

.block-contact__text.nn-rich-text > :last-child {
	margin-bottom: 0;
}

.block-contact__footer-details {
	display: flex;
	flex-direction: column;
	gap: var(--nn-contact-details-gap);
}

.block-contact__detail-section {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.block-contact__detail-heading {
	margin: 0;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-size: clamp(18px, 2vw, 22px);
	font-weight: 700;
	line-height: 1.3;
	color: #00225f;
}

.block-contact__pills.single-post__meta {
	gap: 20px;
}

.block-contact__locations {
	display: flex;
	flex-wrap: wrap;
	column-gap: 50px;
	row-gap: 30px;
	align-items: flex-start;
}

.block-contact__location {
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
}

.block-contact__location-heading {
	margin: 0 0 8px;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	color: #00225f;
}

.block-contact__location-text {
	font-size: 16px;
	line-height: 1.6;
	color: #00225f;
}

/* ============================================================
   ACF block: intro-section
   Scroll-driven 3D brain demo, ported from the "Brain test"
   reference project (assets/js/brain-scroll.js).

   Two stacked sections:
   1. .site-hero       — page hero that sits above the brain.
   2. .brain-scroll    — 300vh-tall pinned section with the GLB
                         brain on a canvas and two text panels
                         that fade in over the scroll range.
   Typography is rendered via shared .nn-heading / .nn-rich-text
   components, so selectors chain those classes for specificity
   over the generic .nn-fs-* size classes.
   ============================================================ */

.block-intro-section {
	background: #fff;
	position: relative;
	overflow: visible;
	isolation: isolate;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	color: #00225f;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
}

.block-intro-section--has-bg-image {
	min-height: 12rem;
}

/* ----------------------------------------------------------------
   Page hero (lives above the brain section)
   ---------------------------------------------------------------- */
.site-hero {
	position: relative;
	z-index: 3;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	max-width: 1700px;
	min-height: 83vh;
	margin: 0 auto;
	padding: 40px 40px 4vh;
	box-sizing: border-box;
	background: transparent;
	text-align: center;
	font-family: "Raleway", system-ui, -apple-system, sans-serif;
	color: #00225f;
}

.site-hero__inner {
	max-width: 1135px;
	width: 100%;
}

.site-hero__heading.nn-heading {
	margin: 0 0 1.5rem;
	font-size: clamp(48px, calc(48px + (125 - 48) * ((100vw - 640px) / (1536 - 640))), 125px);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.015em;
	color: #00225f;
}

.site-hero__text.nn-rich-text {
	margin: 0 auto;
	max-width: 650px;
	font-size: clamp(18px, calc(18px + (34 - 18) * ((100vw - 640px) / (1536 - 640))), 34px);
	font-weight: 400;
	line-height: 1.5;
	color: #555;
}

.site-hero__text.nn-rich-text > :first-child { margin-top: 0; }
.site-hero__text.nn-rich-text > :last-child { margin-bottom: 0; }

.site-hero__actions {
	margin-top: 2rem;
	display: flex;
	justify-content: center;
}

.site-hero__bottom {
	position: absolute;
	left: 40px;
	right: 40px;
	bottom: 32px;
	z-index: 4;
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.site-hero__label-spacer {
	flex: 0 0 0;
	width: 0;
}

.site-hero__label.nn-pre {
	color: #00225f;
}

.site-hero__scroll.nn-pre {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	color: #21beb2;
}

.site-hero__arrow {
	display: inline-block;
	flex-shrink: 0;
}

/* ----------------------------------------------------------------
   Brain Scroll Section
   ---------------------------------------------------------------- */
.brain-scroll {
	--brain-scroll-bg: #ffffff;
	--brain-scroll-fg: #00225f;
	--brain-scroll-muted: #555;
	--brain-scroll-accent: #21beb2;
	--brain-scroll-container: 1700px;
	--brain-scroll-pad: 40px;
	--brain-scroll-font: "Raleway", system-ui, -apple-system, sans-serif;

	position: relative;
	height: 300vh;
	background: var(--brain-scroll-bg);
	color: var(--brain-scroll-fg);
	font-family: var(--brain-scroll-font);
}

.brain-scroll__sticky {
	position: sticky;
	top: var(--nn-header-height, 84px);
	height: calc(100vh - var(--nn-header-height, 84px));
	width: 100%;
	overflow: hidden;
}

#brain-canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	opacity: 0;
	transition: opacity 0.5s ease;
}

.brain-scroll.is-ready #brain-canvas {
	opacity: 1;
}

.brain-scroll__container {
	position: absolute;
	inset: 0;
	max-width: var(--brain-scroll-container);
	margin: 0 auto;
	padding: 0 var(--brain-scroll-pad);
	z-index: 2;
	pointer-events: none;
}

.brain-scroll__text {
	position: absolute;
	opacity: 0;
}

/* ----------------------------------------------------------------
   INTRO PANEL  (step 0 — page hero, sits in the upper area so the
   brain rests just below it; visible at rest, JS fades it on scroll)
   ---------------------------------------------------------------- */
.brain-scroll__text--intro {
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: min(1135px, 92%);
	padding-top: clamp(48px, 11vh, 150px);
	text-align: center;
	opacity: 1;
}

.brain-scroll__intro-inner {
	max-width: 1135px;
	margin: 0 auto;
	width: 100%;
}

/* ----------------------------------------------------------------
   HERO PANEL  (step 1 — centred over the brain)
   ---------------------------------------------------------------- */
.brain-scroll__text--hero {
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: min(1135px, 92%);
	text-align: center;
}

.brain-scroll__hero-heading.nn-heading {
	max-width: 1135px;
	margin: 0 auto 1.6rem;
	font-size: clamp(40px, calc(40px + (90 - 40) * ((100vw - 640px) / (1536 - 640))), 90px);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.015em;
	color: var(--brain-scroll-fg);
}

.brain-scroll__hero-text.nn-rich-text {
	max-width: 650px;
	margin: 0 auto;
	font-size: clamp(18px, calc(18px + (24 - 18) * ((100vw - 640px) / (1536 - 640))), 24px);
	font-weight: 400;
	line-height: 1.5;
	color: var(--brain-scroll-muted);
}

.brain-scroll__hero-text.nn-rich-text > :first-child { margin-top: 0; }
.brain-scroll__hero-text.nn-rich-text > :last-child { margin-bottom: 0; }

/* ----------------------------------------------------------------
   FEATURE PANEL  (step 2 — right column, brain to the left)
   ---------------------------------------------------------------- */
.brain-scroll__text--feature {
	padding-top: 40px;
	top: 50%;
	right: var(--brain-scroll-pad);
	transform: translateY(-50%);
	width: min(930px, 50vw);
	text-align: left;
}

.brain-scroll__eyebrow {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1.4rem;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--brain-scroll-muted);
}

.brain-scroll__rule {
	width: 36px;
	height: 1px;
	background: currentColor;
}

.brain-scroll__feature-heading.nn-heading {
	margin: 0 0 1.4rem;
	font-size: clamp(32px, calc(32px + (60 - 32) * ((100vw - 640px) / (1536 - 640))), 60px);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.01em;
	color: var(--brain-scroll-fg);
}

.brain-scroll__lede.nn-rich-text {
	margin: 0 0 2.4rem;
	font-size: clamp(18px, calc(18px + (24 - 18) * ((100vw - 640px) / (1536 - 640))), 24px);
	font-weight: 300;
	line-height: 1.45;
	color: var(--brain-scroll-muted);
	max-width: 650px;
}

.brain-scroll__lede.nn-rich-text > :first-child { margin-top: 0; }
.brain-scroll__lede.nn-rich-text > :last-child { margin-bottom: 0; }

.brain-scroll__lede.nn-rich-text strong {
	font-weight: 500;
	color: var(--brain-scroll-fg);
}

.brain-scroll__cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2.4rem;
	margin-bottom: 2.6rem;
}

.brain-scroll__col {
	min-width: 0;
}

.brain-scroll__col-heading.nn-heading {
	margin: 0 0 0.6rem;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--brain-scroll-fg);
}

.brain-scroll__col-text.nn-rich-text {
	margin: 0;
	font-size: 16px;
	font-weight: 300;
	line-height: 1.5;
	color: var(--brain-scroll-muted);
}

.brain-scroll__col-text.nn-rich-text > :first-child { margin-top: 0; }
.brain-scroll__col-text.nn-rich-text > :last-child { margin-bottom: 0; }

.brain-scroll__col-text.nn-rich-text strong {
	font-weight: 500;
	color: var(--brain-scroll-fg);
}

/* ----------------------------------------------------------------
   Buttons inside the brain-scroll text panels.
   Use the existing .nn-btn family; just align them.
   ---------------------------------------------------------------- */
.brain-scroll__actions {
	display: flex;
	align-items: center;
	gap: 32px;
	pointer-events: auto;
}

.brain-scroll__actions .nn-btn-list {
	display: flex;
	align-items: center;
	gap: 32px;
	flex-wrap: wrap;
}

.brain-scroll__text--hero .brain-scroll__actions {
	justify-content: center;
	margin-top: 2rem;
}

.brain-scroll__text--hero .brain-scroll__actions .nn-btn-list {
	justify-content: center;
}

/* ----------------------------------------------------------------
   States set by JS
   ---------------------------------------------------------------- */
.brain-scroll.is-error::after {
	content: "3D model failed to load.";
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	color: #b94a4a;
	font: 500 1rem/1.4 system-ui, sans-serif;
}

/* ----------------------------------------------------------------
   Reduced motion: skip the choreography. Brain sits centred,
   hero text is visible, feature panel is hidden.
   ---------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.brain-scroll { height: auto; }
	.brain-scroll__sticky { position: relative; height: 100vh; }
	.brain-scroll__text--intro { opacity: 1; }
	.brain-scroll__text--hero,
	.brain-scroll__text--feature { display: none; }
}

/* ----------------------------------------------------------------
   Tablet portrait — scale type & overlap down a touch.
   ---------------------------------------------------------------- */
@media (max-width: 1024px) {
	.site-hero {
		padding-top: 90px;
	}

	.brain-scroll__text--feature {
		width: min(560px, 56vw);
	}
}

/* ----------------------------------------------------------------
   Phones — collapse the right-column feature panel into a
   centred panel, kill the brain overlap, stack the mission/vision
   grid, and shrink the type.
   ---------------------------------------------------------------- */
@media (max-width: 768px) {
	.site-hero {
		padding: 60px 24px 4vh;
		min-height: auto;
		height: auto;
	}
	.site-hero__bottom {
		display: none;
	}

	.brain-scroll {
		height: 200vh;
		--brain-scroll-pad: 24px;
	}

	.brain-scroll__text--intro {
		width: min(560px, 88%);
		padding-top: 72px;
	}

	/* Feature panel (step 2) — stays inside the pinned stage on mobile,
	   centred on the clean stage after the brain has faded out. JS fades
	   it in once the brain is gone. */
	.brain-scroll__text--feature {
		top: 50%;
		bottom: auto;
		left: 50%;
		right: auto;
		transform: translate(-50%, -50%);
		width: min(560px, 88%);
		padding-top: 0;
		text-align: left;
	}
	.brain-scroll__eyebrow {
		justify-content: flex-start;
		font-size: 14px;
	}
	.brain-scroll__cols {
		grid-template-columns: 1fr;
		gap: 1.6rem;
	}
	.brain-scroll__col-heading.nn-heading {
		font-size: 20px;
	}
	.brain-scroll__col-text.nn-rich-text {
		font-size: 16px;
	}
	.brain-scroll__actions {
		justify-content: flex-start;
		flex-wrap: wrap;
		gap: 20px;
	}
}
