:root {
	--brand-navy: #071827;
	--brand-navy-soft: #0d2436;
	--brand-orange: #ef7d00;
	--brand-orange-dark: #c85e00;
	--brand-ink: #101b2d;
	--brand-muted: #5e6875;
	--brand-line: #dfe4e8;
	--brand-white: #ffffff;
	--global-width: 88rem;
	--type-home-h1: 2.625rem;
	--type-inner-h1: 2.625rem;
	--type-section-h2: 2.625rem;
	--type-cta-h2: 2.625rem;
	--type-card-title: clamp(1.25rem, 1.4vw, 1.5rem);
	--type-subsection-h3: clamp(1.5rem, 1.8vw, 2rem);
	--type-feature-title: clamp(.9375rem, 1.2vw, 1.1875rem);
	--type-form-heading: clamp(1.125rem, 1.2vw, 1.25rem);
	--type-form-intro-h2: 2.625rem;
	--space-hero-top: clamp(2.7rem, 3.7vw, 3.7rem);
	--type-lead: clamp(1.0625rem, 1.2vw, 1.125rem);
	--type-body: 1rem;
	--type-small: .9375rem;
	--type-eyebrow: .8125rem;
	--type-nav: .9375rem;
	--type-button: 1rem;
}

/* Keep the first hero content row at one consistent distance below the site header. */
.home-hero,
.services-hero,
.industries-hero,
.workflow-hero,
.about-hero,
.contact-hero {
	padding-top: var(--space-hero-top) !important;
}

html {
	scroll-behavior: smooth;
}

body {
	color: var(--brand-ink);
	font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	line-height: 1.6;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible {
	outline: 3px solid rgba(239, 125, 0, .45);
	outline-offset: 3px;
}

.icon {
	display: inline-block;
	flex: 0 0 auto;
	height: 1.15rem;
	width: 1.15rem;
}

.header-container,
.footer-container {
	margin-inline: auto;
	max-width: var(--global-width);
	padding-inline: clamp(1rem, 3vw, 2.5rem);
}

.site-header {
	background: var(--brand-white);
	position: relative;
	z-index: 50;
}

.top-contact-bar {
	background: var(--brand-navy);
	color: #f4f7f9;
	font-size: .78rem;
}

.top-contact-inner {
	align-items: center;
	display: flex;
	justify-content: space-between;
	min-height: 2.65rem;
}

.top-contact-details,
.top-contact-actions {
	align-items: center;
	display: flex;
}

.top-contact-details {
	gap: clamp(.75rem, 2vw, 1.6rem);
}

.top-contact-item {
	align-items: center;
	color: inherit;
	display: inline-flex;
	gap: .45rem;
	text-decoration: none;
	white-space: nowrap;
}

a.top-contact-item:hover,
a.top-contact-item:focus-visible,
.top-contact-actions a:hover,
.top-contact-actions a:focus-visible {
	color: var(--brand-orange);
}

.top-contact-item .icon {
	color: var(--brand-orange);
	height: .98rem;
	width: .98rem;
}

.top-contact-actions {
	gap: .35rem;
	margin-left: 1.25rem;
}

.top-contact-actions a {
	align-items: center;
	color: var(--brand-white);
	display: inline-flex;
	justify-content: center;
	min-height: 2rem;
	min-width: 2rem;
}

.main-header-bar {
	background: var(--brand-white);
	border-bottom: 1px solid var(--brand-line);
	box-shadow: 0 5px 18px rgba(7, 24, 39, .05);
}

.main-header-inner {
	align-items: center;
	display: flex;
	gap: clamp(1rem, 2vw, 2.25rem);
	min-height: 6.35rem;
}

.brand-lockup,
.footer-brand-lockup {
	align-items: center;
	display: inline-flex;
	flex: 0 0 auto;
	gap: .8rem;
	text-decoration: none;
}

.brand-lockup img {
	height: 4.45rem;
	object-fit: contain;
	width: auto;
}

.brand-copy,
.footer-brand-lockup span {
	display: flex;
	flex-direction: column;
}

.brand-copy strong {
	color: var(--brand-ink);
	font-size: 1.55rem;
	font-weight: 850;
	letter-spacing: .015em;
	line-height: 1.05;
}

.brand-copy small,
.footer-brand-lockup small {
	font-size: .58rem;
	font-weight: 750;
	letter-spacing: .08em;
	margin-top: .32rem;
}

.nav-panel {
	align-items: center;
	display: flex;
	flex: 1 1 auto;
	justify-content: flex-end;
	min-width: 0;
}

.primary-navigation .primary-menu {
	align-items: center;
	display: flex;
	flex-wrap: nowrap;
	gap: clamp(.65rem, 1.25vw, 1.4rem);
	list-style: none;
	margin: 0;
	padding: 0;
}

.primary-navigation .primary-menu > li {
	margin: 0;
}

.primary-navigation .primary-menu a {
	color: var(--brand-ink);
	display: block;
	font-size: var(--type-nav);
	font-weight: 650;
	padding: .65rem 0;
	position: relative;
	text-decoration: none;
	white-space: nowrap;
}

@media (max-width: 42rem) {
	:root {
		--type-home-h1: clamp(2.375rem, 10vw, 2.625rem);
		--type-inner-h1: clamp(2.375rem, 10vw, 2.625rem);
		--type-section-h2: clamp(2rem, 8.5vw, 2.25rem);
		--type-cta-h2: clamp(2.125rem, 9.5vw, 2.5rem);
		--type-card-title: clamp(1.25rem, 5vw, 1.375rem);
		--type-subsection-h3: clamp(1.375rem, 6vw, 1.625rem);
		--type-form-intro-h2: clamp(2rem, 8.5vw, 2.25rem);
	}
}

.primary-navigation .primary-menu a::after {
	background: var(--brand-orange);
	bottom: .3rem;
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .18s ease;
	width: 1.25rem;
}

.primary-navigation .primary-menu a:hover,
.primary-navigation .primary-menu a:focus-visible,
.primary-navigation .primary-menu .current-menu-item > a,
.primary-navigation .primary-menu .current_page_item > a {
	color: var(--brand-orange-dark);
}

.primary-navigation .primary-menu a:hover::after,
.primary-navigation .primary-menu a:focus-visible::after,
.primary-navigation .primary-menu .current-menu-item > a::after,
.primary-navigation .primary-menu .current_page_item > a::after {
	transform: scaleX(1);
}

.primary-navigation .lang-item {
	display: none;
}

.header-actions {
	align-items: center;
	display: flex;
	flex: 0 0 auto;
	gap: .8rem;
}

.language-selector {
	position: relative;
}

.language-selector summary {
	align-items: center;
	cursor: pointer;
	display: inline-flex;
	font-size: .86rem;
	font-weight: 750;
	gap: .38rem;
	list-style: none;
	min-height: 2.75rem;
	padding: .4rem .2rem;
}

.language-selector summary::-webkit-details-marker {
	display: none;
}

.language-selector .icon-chevron {
	height: .8rem;
	transition: transform .18s ease;
	width: .8rem;
}

.language-selector[open] .icon-chevron {
	transform: rotate(180deg);
}

.language-selector ul {
	background: var(--brand-white);
	border: 1px solid var(--brand-line);
	box-shadow: 0 12px 28px rgba(7, 24, 39, .12);
	list-style: none;
	margin: 0;
	min-width: 4.5rem;
	padding: .4rem;
	position: absolute;
	right: 0;
	top: calc(100% + .2rem);
}

.language-selector li,
.language-selector a {
	display: block;
}

.language-selector a {
	color: var(--brand-ink);
	font-size: .84rem;
	font-weight: 750;
	padding: .45rem .6rem;
	text-decoration: none;
}

.language-selector a:hover,
.language-selector a:focus-visible {
	background: #fff4e8;
	color: var(--brand-orange-dark);
}

.header-cta,
.header-cta-compact,
.mobile-menu-cta {
	align-items: center;
	background: var(--brand-orange);
	border: 1px solid var(--brand-orange);
	color: var(--brand-white);
	display: inline-flex;
	font-weight: 750;
	gap: .55rem;
	justify-content: center;
	min-height: 3rem;
	padding: .65rem 1rem;
	text-decoration: none;
}

.header-cta:hover,
.header-cta:focus-visible,
.header-cta-compact:hover,
.header-cta-compact:focus-visible,
.mobile-menu-cta:hover,
.mobile-menu-cta:focus-visible {
	background: var(--brand-orange-dark);
	border-color: var(--brand-orange-dark);
}

.header-cta .icon,
.mobile-menu-cta .icon {
	height: 1.05rem;
	width: 1.05rem;
}

.header-cta-compact,
.menu-toggle,
.mobile-menu-cta {
	display: none;
}

.menu-toggle {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--brand-ink);
	cursor: pointer;
	justify-content: center;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: .5rem;
}

.menu-toggle .icon {
	height: 1.65rem;
	width: 1.65rem;
}

.site-footer {
	background: var(--brand-navy);
	color: #dbe3e8;
	padding-top: clamp(4rem, 7vw, 6rem);
}

.footer-grid {
	display: grid;
	gap: clamp(2rem, 3vw, 3.5rem);
	grid-template-columns: 1.35fr 1.15fr 1.15fr .8fr 1.05fr;
}

.footer-brand-lockup {
	color: var(--brand-white);
}

.footer-brand-lockup img {
	height: 3.8rem;
	object-fit: contain;
	width: auto;
}

.footer-brand-lockup strong {
	font-size: 1.28rem;
	line-height: 1.05;
}

.footer-brand-lockup small {
	color: #bac6cd;
}

.footer-brand > p {
	color: #bdc8ce;
	font-size: .9rem;
	margin: 1.25rem 0 0;
	max-width: 28rem;
}

.footer-socials {
	display: flex;
	gap: .65rem;
	margin-top: 1.4rem;
}

.footer-socials a {
	align-items: center;
	border: 1px solid #647682;
	border-radius: 50%;
	color: var(--brand-white);
	display: inline-flex;
	height: 2.55rem;
	justify-content: center;
	width: 2.55rem;
}

.footer-socials a:hover,
.footer-socials a:focus-visible {
	border-color: var(--brand-orange);
	color: var(--brand-orange);
}

.footer-column h2,
.footer-contact h2 {
	color: var(--brand-orange);
	font-size: .78rem;
	font-weight: 850;
	letter-spacing: .08em;
	margin: .2rem 0 1.25rem;
	text-transform: uppercase;
}

.footer-column ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-column li + li {
	margin-top: .6rem;
}

.footer-column li a {
	align-items: flex-start;
	color: #dbe3e8;
	display: inline-flex;
	font-size: .86rem;
	gap: .35rem;
	line-height: 1.4;
	text-decoration: none;
}

.footer-column li .icon {
	height: .82rem;
	margin-top: .2rem;
	width: .82rem;
}

.footer-column a:hover,
.footer-column a:focus-visible,
.footer-contact a:hover,
.footer-contact a:focus-visible,
.footer-legal a:hover,
.footer-legal a:focus-visible,
.back-to-top:hover,
.back-to-top:focus-visible {
	color: var(--brand-orange);
}

.footer-column-cta {
	align-items: center;
	color: var(--brand-orange);
	display: inline-flex;
	font-size: .84rem;
	font-weight: 800;
	gap: .5rem;
	margin-top: 1.35rem;
	text-decoration: none;
}

.footer-column-cta .icon {
	height: .92rem;
	width: .92rem;
}

.footer-contact address {
	font-size: .86rem;
	font-style: normal;
}

.footer-contact address > div {
	align-items: flex-start;
	display: flex;
	gap: .7rem;
}

.footer-contact address > div + div {
	margin-top: 1rem;
}

.footer-contact address .icon {
	color: var(--brand-orange);
	margin-top: .16rem;
}

.footer-contact a {
	color: #dbe3e8;
	text-decoration: none;
}

.footer-bottom {
	align-items: center;
	border-top: 1px solid #415462;
	display: grid;
	font-size: .82rem;
	gap: 1.5rem;
	grid-template-columns: 1fr auto 1fr;
	margin-top: 3.5rem;
	min-height: 5.25rem;
}

.footer-bottom p {
	margin: 0;
}

.footer-legal {
	display: flex;
	gap: 1.2rem;
}

.footer-legal a {
	color: #dbe3e8;
	text-decoration: none;
}

.footer-legal a + a {
	border-left: 1px solid #647682;
	padding-left: 1.2rem;
}

.back-to-top {
	align-items: center;
	color: #dbe3e8;
	display: inline-flex;
	gap: .55rem;
	justify-self: end;
	text-decoration: none;
}

.back-to-top .icon {
	border: 1px solid #7c8b94;
	border-radius: 50%;
	height: 2.15rem;
	padding: .48rem;
	width: 2.15rem;
}

@media (max-width: 78rem) {
	.top-website {
		display: none;
	}

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

	.footer-contact {
		grid-column: span 2;
	}
}

@media (max-width: 68rem) {
	.top-address {
		display: none;
	}

	.header-cta span {
		display: none;
	}

	.header-cta {
		padding-inline: .8rem;
	}
}

@media (max-width: 64rem) {
	.top-contact-bar {
		display: none;
	}

	.main-header-inner {
		gap: .75rem;
		min-height: 5.25rem;
	}

	.menu-toggle,
	.header-cta-compact {
		display: inline-flex;
	}

	.brand-lockup {
		margin-right: auto;
	}

	.brand-lockup img {
		height: 3.7rem;
	}

	.brand-copy strong {
		font-size: 1.3rem;
	}

	.nav-panel {
		align-items: stretch;
		background: var(--brand-white);
		border-top: 1px solid var(--brand-line);
		box-shadow: 0 18px 30px rgba(7, 24, 39, .12);
		display: none;
		flex-direction: column;
		left: 0;
		padding: 1rem clamp(1rem, 3vw, 2.5rem) 1.4rem;
		position: absolute;
		right: 0;
		top: 100%;
	}

	.nav-panel.is-open {
		display: flex;
	}

	.primary-navigation .primary-menu {
		align-items: stretch;
		flex-direction: column;
		gap: 0;
	}

	.primary-navigation .primary-menu a {
		border-bottom: 1px solid var(--brand-line);
		font-size: .96rem;
		padding: .85rem 0;
	}

	.primary-navigation .primary-menu a::after {
		display: none;
	}

	.mobile-menu-cta {
		display: inline-flex;
		margin-top: 1rem;
	}

	.header-cta {
		display: none;
	}

	body.menu-open {
		overflow: hidden;
	}
}

@media (max-width: 50rem) {
	.footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.footer-contact {
		grid-column: auto;
	}

	.footer-bottom {
		grid-template-columns: 1fr;
		padding-block: 1.5rem;
		text-align: center;
	}

	.footer-legal {
		justify-content: center;
	}

	.back-to-top {
		justify-self: center;
	}
}

@media (max-width: 35rem) {
	.main-header-inner {
		padding-inline: .75rem;
	}

	.brand-lockup {
		gap: .55rem;
	}

	.brand-lockup img {
		height: 3.15rem;
	}

	.brand-copy strong {
		font-size: 1.05rem;
	}

	.brand-copy small {
		display: none;
	}

	.header-actions {
		gap: .35rem;
	}

	.language-selector summary {
		gap: .25rem;
	}

	.language-selector summary > .icon:first-child {
		display: none;
	}

	.header-cta-compact {
		min-height: 2.7rem;
		padding: .55rem .65rem;
	}

	.footer-grid {
		grid-template-columns: 1fr;
	}

	.footer-column,
	.footer-contact {
		border-top: 1px solid #314554;
		padding-top: 1.5rem;
	}

	.footer-legal {
		flex-wrap: wrap;
	}
}

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

	.primary-navigation .primary-menu a::after,
	.language-selector .icon-chevron {
		transition: none;
	}
}
