:root {
	--ae-border: 1px solid var(--wp--preset--color--gray-light);
	--ae-focus: #f2b544;
	--ae-header-height: 4.5rem;
}

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

html {
	scroll-behavior: smooth;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-wrap: break-word;
}

body > .wp-site-blocks {
	overflow: clip;
}

img,
svg {
	max-width: 100%;
}

a {
	text-underline-offset: 0.16em;
	text-decoration-thickness: 0.08em;
}

a:hover {
	text-decoration-thickness: 0.13em;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--ae-focus);
	outline-offset: 3px;
}

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus,
.skip-link:focus {
	clip: auto !important;
	clip-path: none;
	height: auto;
	left: 1rem;
	top: 1rem;
	width: auto;
	z-index: 100000;
	background: var(--wp--preset--color--white);
	border: 2px solid var(--wp--preset--color--teal);
	border-radius: 0.25rem;
	color: var(--wp--preset--color--navy);
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1;
	padding: 0.85rem 1rem;
	text-decoration: none;
}

.site-main [id] {
	scroll-margin-top: calc(var(--ae-header-height) + 1rem);
}

/* Header and navigation */
.site-header {
	border-bottom: var(--ae-border);
	box-shadow: 0 1px 0 rgba(11, 31, 51, 0.02);
	position: relative;
	z-index: 50;
}

.site-header__inner {
	min-height: 3.05rem;
}

.site-wordmark {
	flex: 0 1 17rem;
	margin: 0;
}

.site-wordmark a {
	display: inline-block;
}

.site-navigation {
	flex: 1 1 auto;
}

.site-navigation .wp-block-navigation-item__content {
	align-items: center;
	display: inline-flex;
	min-height: 44px;
	padding-block: 0.55rem;
	text-decoration: none;
}

.site-navigation .wp-block-navigation-item__content:hover,
.site-navigation .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--teal-dark);
}

.site-navigation .nav-cta > .wp-block-navigation-item__content {
	background: var(--wp--preset--color--teal);
	border: 2px solid var(--wp--preset--color--teal);
	border-radius: 0.3rem;
	color: var(--wp--preset--color--white);
	min-height: 44px;
	padding: 0.68rem 1rem;
}

.site-navigation .nav-cta > .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--teal-dark);
	border-color: var(--wp--preset--color--teal-dark);
	color: var(--wp--preset--color--white);
}

.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	align-items: center;
	border-radius: 0.25rem;
	display: inline-flex;
	height: 44px;
	justify-content: center;
	width: 44px;
}

.wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--navy) !important;
	color: var(--wp--preset--color--white) !important;
	padding: 1.25rem clamp(1.25rem, 5vw, 2rem) 2rem;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: stretch;
	padding-top: 2.25rem;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: stretch;
	gap: 0.15rem;
	width: 100%;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	color: var(--wp--preset--color--white);
	font-size: 1.1rem;
	justify-content: flex-start;
	padding: 0.75rem 0;
	width: 100%;
}

.wp-block-navigation__responsive-container.is-menu-open .nav-cta > .wp-block-navigation-item__content {
	justify-content: center;
	margin-top: 0.75rem;
	padding-inline: 1rem;
}

/* Page scaffolding */
.page-hero,
.page-section,
.cta-section {
	position: relative;
}

.page-hero {
	isolation: isolate;
	overflow: hidden;
}

.page-hero::before {
	background-image: url("../images/technical-grid.svg");
	background-position: center;
	background-size: cover;
	content: "";
	inset: 0;
	opacity: 0.23;
	pointer-events: none;
	position: absolute;
	z-index: -2;
}

.page-hero::after {
	background: linear-gradient(90deg, rgba(11, 31, 51, 0.99) 0%, rgba(11, 31, 51, 0.92) 58%, rgba(11, 31, 51, 0.55) 100%);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: -1;
}

.hero-copy {
	max-width: 58rem;
}

.hero-copy > * {
	margin-block-start: 0;
}

.hero-copy > * + * {
	margin-block-start: var(--wp--preset--spacing--30);
}

.hero-copy h1 {
	max-width: 16ch;
}

.hero-copy .hero-lede {
	max-width: 68ch;
}

.eyebrow {
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	line-height: 1.3;
	text-transform: uppercase;
}

.section-heading {
	max-width: 22ch;
}

.section-intro {
	max-width: 68ch;
}

.section-kicker {
	color: var(--wp--preset--color--teal);
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.narrow-copy {
	max-width: 68ch;
}

.surface-panel {
	background: var(--wp--preset--color--white);
	border: var(--ae-border);
	border-radius: 0.55rem;
	box-shadow: var(--wp--preset--shadow--technical-card);
}

.technical-panel {
	background:
		linear-gradient(var(--wp--preset--color--white), var(--wp--preset--color--white)) padding-box,
		linear-gradient(145deg, var(--wp--preset--color--teal), var(--wp--preset--color--gray-light) 60%) border-box;
	border: 1px solid transparent;
	border-radius: 0.55rem;
	position: relative;
}

.technical-panel::before {
	background: var(--wp--preset--color--teal);
	border-radius: 999px;
	content: "";
	height: 0.45rem;
	left: 1.4rem;
	position: absolute;
	top: 1.35rem;
	width: 2.25rem;
}

.cards-grid,
.indicator-grid,
.industry-grid,
.principles-grid,
.deliverables-grid,
.delivery-grid,
.experience-grid {
	display: grid !important;
	gap: var(--wp--preset--spacing--40);
}

.cards-grid,
.industry-grid,
.deliverables-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.indicator-grid,
.principles-grid,
.delivery-grid,
.experience-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.service-card,
.industry-card,
.principle-card,
.delivery-card,
.output-card {
	align-content: start;
	background: var(--wp--preset--color--white);
	border: var(--ae-border);
	border-radius: 0.5rem;
	display: grid;
	gap: 0.8rem;
	height: 100%;
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
}

.service-card,
.industry-card,
.delivery-card {
	border-top: 4px solid var(--wp--preset--color--teal);
}

.service-card h3,
.industry-card h3,
.principle-card h3,
.delivery-card h3,
.output-card h3 {
	font-size: 1.2rem;
	margin: 0;
}

.service-card p,
.industry-card p,
.principle-card p,
.delivery-card p,
.output-card p {
	font-size: 0.98rem;
	margin: 0;
}

.indicator {
	align-items: center;
	background: rgba(221, 238, 238, 0.1);
	border: 1px solid rgba(221, 238, 238, 0.28);
	border-radius: 0.35rem;
	color: var(--wp--preset--color--white);
	display: flex;
	font-size: 0.85rem;
	font-weight: 750;
	gap: 0.65rem;
	justify-content: center;
	letter-spacing: 0.02em;
	min-height: 3.4rem;
	padding: 0.65rem 0.8rem;
	text-align: center;
}

.indicator::before {
	background: var(--wp--preset--color--teal-light);
	border-radius: 999px;
	content: "";
	height: 0.5rem;
	width: 0.5rem;
}

.list-checks,
.service-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.list-checks li,
.service-list li {
	border-bottom: 1px solid rgba(64, 84, 102, 0.18);
	padding: 0.65rem 0 0.65rem 1.6rem;
	position: relative;
}

.list-checks li:last-child,
.service-list li:last-child {
	border-bottom: 0;
}

.list-checks li::before,
.service-list li::before {
	color: var(--wp--preset--color--teal);
	content: "✓";
	font-weight: 800;
	left: 0;
	position: absolute;
	top: 0.65rem;
}

.process-flow {
	counter-reset: ae-step;
	display: grid !important;
	gap: var(--wp--preset--spacing--40);
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.process-step {
	border-left: 2px solid var(--wp--preset--color--gray-light);
	counter-increment: ae-step;
	min-height: 100%;
	padding: 0 0 0 1.25rem;
	position: relative;
}

.process-step::before {
	align-items: center;
	background: var(--wp--preset--color--teal);
	border-radius: 999px;
	color: var(--wp--preset--color--white);
	content: counter(ae-step, decimal-leading-zero);
	display: inline-flex;
	font-size: 0.76rem;
	font-weight: 800;
	height: 2rem;
	justify-content: center;
	left: -1.05rem;
	position: absolute;
	top: 0;
	width: 2rem;
}

.process-step > * {
	margin-left: 0.65rem;
}

.process-step h3 {
	font-size: 1.1rem;
	margin-top: 0;
	padding-top: 0.25rem;
}

.process-step p {
	font-size: 0.95rem;
}

.cta-panel {
	background: var(--wp--preset--color--navy);
	border-radius: 0.6rem;
	box-shadow: 0 22px 55px rgba(11, 31, 51, 0.16);
	overflow: hidden;
	position: relative;
}

.cta-panel::after {
	background:
		radial-gradient(circle at center, rgba(221, 238, 238, 0.18) 0 2px, transparent 3px),
		linear-gradient(90deg, transparent 49.5%, rgba(221, 238, 238, 0.11) 50%, transparent 50.5%);
	background-size: 32px 32px, 64px 100%;
	content: "";
	height: 100%;
	right: 0;
	opacity: 0.65;
	pointer-events: none;
	position: absolute;
	width: 34%;
}

.cta-panel > * {
	position: relative;
	z-index: 1;
}

.profile-panel {
	border-left: 5px solid var(--wp--preset--color--teal);
}

.profile-panel .role {
	color: var(--wp--preset--color--teal-dark);
	font-weight: 750;
}

.legal-review {
	background: #fff7e5;
	border: 1px solid #b57400;
	border-left-width: 5px;
	border-radius: 0.35rem;
	color: #5d3b00;
}

.legal-review p {
	color: inherit;
}

.archive-card,
.search-result {
	max-width: none;
}

/* Buttons */
.wp-element-button,
.wp-block-button__link {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	min-height: 46px;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.wp-element-button:hover,
.wp-block-button__link:hover {
	background: var(--wp--preset--color--teal-dark);
	color: var(--wp--preset--color--white);
	transform: translateY(-1px);
}

.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	border-color: currentColor;
	border-width: 2px;
	color: var(--wp--preset--color--teal-dark);
}

.page-hero .wp-block-button.is-style-outline > .wp-block-button__link,
.cta-panel .wp-block-button.is-style-outline > .wp-block-button__link {
	color: var(--wp--preset--color--white);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--teal-light);
	border-color: var(--wp--preset--color--teal-light);
	color: var(--wp--preset--color--navy);
}

/* Jetpack form */
.contact-layout {
	align-items: start;
}

.form-shell {
	background: var(--wp--preset--color--white);
	border: var(--ae-border);
	border-radius: 0.55rem;
	box-shadow: var(--wp--preset--shadow--technical-card);
}

.wp-block-jetpack-contact-form {
	display: flex;
	flex-wrap: wrap;
	gap: 1.15rem;
}

.wp-block-jetpack-contact-form > [class*="wp-block-jetpack-field-"] {
	flex: 1 1 100%;
	margin: 0;
	width: 100%;
}

.wp-block-jetpack-contact-form > .grunion-field-width-50-wrap {
	flex-basis: calc(50% - 0.575rem);
	width: calc(50% - 0.575rem);
}

.wp-block-jetpack-contact-form label,
.wp-block-jetpack-contact-form .grunion-field-label {
	color: var(--wp--preset--color--navy);
	display: block;
	font-size: 0.92rem;
	font-weight: 750;
	margin-bottom: 0.4rem;
}

.wp-block-jetpack-contact-form input:not([type="checkbox"]):not([type="radio"]),
.wp-block-jetpack-contact-form select,
.wp-block-jetpack-contact-form textarea,
.wp-block-search__input {
	background: var(--wp--preset--color--white);
	border: 1px solid #7b8b98;
	border-radius: 0.3rem;
	color: var(--wp--preset--color--dark);
	font: inherit;
	min-height: 46px;
	padding: 0.72rem 0.8rem;
	width: 100%;
}

.wp-block-jetpack-contact-form textarea {
	min-height: 10rem;
	resize: vertical;
}

.wp-block-jetpack-contact-form input:focus,
.wp-block-jetpack-contact-form select:focus,
.wp-block-jetpack-contact-form textarea:focus,
.wp-block-search__input:focus {
	border-color: var(--wp--preset--color--teal);
	box-shadow: 0 0 0 1px var(--wp--preset--color--teal);
}

.wp-block-jetpack-contact-form input[type="checkbox"] {
	height: 1.25rem;
	margin: 0 0.55rem 0 0;
	vertical-align: text-bottom;
	width: 1.25rem;
}

.wp-block-jetpack-contact-form .contact-form__error,
.wp-block-jetpack-contact-form .form-error {
	color: #9b1c1c;
	font-weight: 700;
}

.form-privacy {
	font-size: 0.86rem;
	margin-top: 0.25rem;
}

/* Footer */
.site-footer p {
	margin-block: 0.65rem;
}

.site-footer a,
.footer-navigation .wp-block-navigation-item__content {
	color: var(--wp--preset--color--white);
}

.site-footer a:hover,
.footer-navigation .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--teal-light);
}

.footer-navigation .wp-block-navigation-item__content {
	min-height: 40px;
	padding-block: 0.35rem;
}

.footer-rule {
	margin-block: var(--wp--preset--spacing--40);
	opacity: 0.65;
}

.site-copyright,
.site-copyright p,
.site-copyright .wp-block-shortcode {
	color: var(--wp--preset--color--teal-light);
	font-size: 0.82rem;
}

.site-copyright .wp-block-shortcode {
	margin: 0;
}

/* Responsive */
@media (max-width: 1100px) {
	.site-navigation {
		flex: 0 0 auto;
	}

	.site-navigation .wp-block-navigation__responsive-container-open {
		display: inline-flex !important;
	}

	.site-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none !important;
	}

	.site-navigation .wp-block-navigation__responsive-container.is-menu-open {
		display: flex !important;
	}

	.cards-grid,
	.industry-grid,
	.deliverables-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.indicator-grid,
	.principles-grid,
	.delivery-grid,
	.experience-grid,
	.process-flow {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 782px) {
	:root {
		--ae-header-height: 4rem;
	}

	.site-header__inner {
		min-height: 2.75rem;
	}

	.site-wordmark {
		flex-basis: min(72vw, 18rem);
	}

	.page-hero::after {
		background: rgba(11, 31, 51, 0.94);
	}

	.page-hero::before {
		background-position: 65% center;
		opacity: 0.18;
	}

	.cta-panel::after {
		opacity: 0.28;
		width: 50%;
	}

	.wp-block-jetpack-contact-form > .grunion-field-width-50-wrap {
		flex-basis: 100%;
		width: 100%;
	}

	.site-footer__grid {
		gap: var(--wp--preset--spacing--40);
	}
}

@media (max-width: 600px) {
	.cards-grid,
	.indicator-grid,
	.industry-grid,
	.principles-grid,
	.deliverables-grid,
	.delivery-grid,
	.experience-grid,
	.process-flow {
		grid-template-columns: 1fr;
	}

	.hero-copy h1 {
		max-width: none;
	}

	.process-step {
		min-height: auto;
	}

	.wp-block-buttons > .wp-block-button {
		width: 100%;
	}

	.wp-block-buttons > .wp-block-button .wp-block-button__link {
		width: 100%;
	}

	.site-copyright {
		align-items: flex-start;
		flex-direction: column;
	}
}

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

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}

	.wp-element-button:hover,
	.wp-block-button__link:hover {
		transform: none;
	}
}

@media print {
	.site-header,
	.site-footer,
	.wp-block-buttons,
	.wp-block-navigation,
	.skip-link {
		display: none !important;
	}

	.page-hero,
	.cta-panel {
		background: transparent !important;
		color: #000 !important;
	}

	.page-hero *,
	.cta-panel * {
		color: #000 !important;
	}
}
