/* ==========================================================================
   ALLGRAND — theme stylesheet

   01  Foundation: fonts, tokens, reset, layout, type and buttons
   02  Site chrome: header, navigation, search, contact rail and footer
   03  Homepage: hero, products, solutions, applications and content bands
   04  Inner pages: shared hero, catalogues, product, about, FAQ and contact
   05  Integrations: WordPress, WPForms and Elementor
   06  Responsive, motion and print rules

   Component variants remain in cascade order. Declarations fully superseded
   by a later identical selector have been removed.
   ========================================================================== */

/* 1 — Fonts ---------------------------------------------------------------- */

@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap");

/* 2 — Tokens --------------------------------------------------------------- */

:root {
	/* Final AllGrand colour system. */
	--ink: #063190;
	--ink-2: #0a419f;
	--ink-3: #1056b8;
	--ink-4: #1b6acb;
	--paper: #f2f7fc;
	--paper-2: #ffffff;
	--paper-3: #e4eef9;
	--text: #0b2038;
	--text-muted: #48627b;
	--on-dark: #ffffff;
	--on-dark-muted: rgba(255, 255, 255, 0.78);
	--on-dark-faint: rgba(255, 255, 255, 0.58);
	--line: rgba(6, 36, 70, 0.16);
	--line-strong: rgba(6, 36, 70, 0.34);
	--line-dark: rgba(255, 255, 255, 0.18);
	--line-dark-strong: rgba(255, 255, 255, 0.38);
	--accent: #006cff;
	--accent-bright: #ffb000;
	--accent-soft: rgba(0, 108, 255, 0.13);
	--brand: #116bff;
	--brand-light: #00b9d9;
	--brand-strong: #063190;
	--shadow: 0 20px 54px rgba(6, 49, 144, 0.16);

	--container: 1400px;
	--gutter: clamp(1.25rem, 4vw, 3.5rem);
	--section-y: clamp(4.5rem, 8vw, 9rem);
	--inner-hero-min-height: clamp(420px, 32vw, 560px);
	--inner-hero-space-top: clamp(3.5rem, 7vw, 6rem);
	--inner-hero-space-bottom: clamp(3rem, 6vw, 5rem);
	--radius: 2px;
	--ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--utility-h: 84px;
	--bar-h: 62px;
	--header-h: 146px;
	--sans: "Poppins", Arial, Helvetica, sans-serif;
}

/* 3 — Base ----------------------------------------------------------------- */

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: 96px;
}

body {
	margin: 0;
	background: #ffffff;
	color: var(--text);
	font-family: var(--sans);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

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

img {
	height: auto;
}

a {
	color: inherit;
	text-decoration: none;
}

p,
ul,
ol,
dl,
dd,
figure {
	margin: 0;
}

ul,
ol {
	padding: 0;
	list-style: none;
}

button {
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	cursor: pointer;
}

input,
textarea,
select {
	font: inherit;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	font-weight: 600;
	line-height: 1.08;
	letter-spacing: -0.02em;
}

.skip-link {
	position: absolute;
	top: -100px;
	left: var(--gutter);
	z-index: 200;
	padding: 0.75rem 1rem;
	background: var(--accent);
	color: #fff;
	font-family: var(--sans);
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.skip-link:focus {
	top: 0.5rem;
}

:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 3px;
}

/* 4 — Layout --------------------------------------------------------------- */

.container {
	width: 100%;
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.section {
	padding-block: var(--section-y);
}

.section--paper {

	color: var(--text);
}

/*
 * Most of the page is light, so consecutive light sections are separated by a
 * hairline instead of by collapsing one padding into the other.
 */
.section--paper + .section--paper {
	border-top: 1px solid var(--line);
}

.section--ink + .section--ink {
	padding-top: 0;
}

/* Tinted light sections, so a long light run still has rhythm. */

/*
 * The two brand accents split by surface: blue is the link/eyebrow colour on
 * white, the orange takes over as the highlight colour on dark slate.
 */
.section--ink,
.manufacturing,
.cta,
.family-cta,
.mobile-nav {
	--accent: var(--accent-bright);
}

/* 5 — Type ----------------------------------------------------------------- */

.eyebrow {
	display: flex;
	align-items: center;
	width: fit-content;
	gap: 0.7rem;
	padding: 0.5rem 0.75rem;
	border: 1px solid rgba(6, 36, 70, 0.14);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.68);
	font-family: var(--sans);
	font-size: 0.6875rem;
	font-weight: 400;
	letter-spacing: 0.18em;
	line-height: 1;
	text-transform: uppercase;
	color: var(--text-muted);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	transition: border-color 0.3s var(--ease), background-color 0.3s var(--ease), transform 0.3s var(--ease);
}

.eyebrow__mark {
	width: 22px;
	height: 1px;
	flex: none;
	background: var(--accent-bright);
}

.eyebrow__index {
	color: var(--accent);
}

.eyebrow__text {
	color: inherit;
}

.eyebrow:hover {
	border-color: rgba(0, 108, 255, 0.3);
	transform: translateY(-2px);
}

.section--ink .eyebrow,
.manufacturing .eyebrow,
.cta .eyebrow,
.mobile-nav .eyebrow {
	border-color: rgba(255, 255, 255, 0.22);
	background: rgba(255, 255, 255, 0.08);
	color: var(--on-dark-muted);
}

.section-head {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.85fr);
	align-items: end;
	gap: clamp(1.5rem, 4vw, 4rem);
}

.section-head__title {
	margin-top: 1.35rem;
	max-width: 24ch;

	font-weight: 600;
	line-height: 1.03;
	letter-spacing: -0.03em;
	text-wrap: balance;
}

.section-head__aside {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1.35rem;
	padding-bottom: 0.4rem;
}

.section-head__text {
	max-width: 46ch;
	color: var(--text-muted);
	font-size: 1rem;
	line-height: 1.75;
}

.section--ink .section-head__text {
	color: var(--on-dark-muted);
}

.link-arrow {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-family: var(--sans);
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	line-height: 1;
	text-transform: uppercase;
	color: var(--accent);
}

.link-arrow::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -0.45rem;
	width: 0;
	height: 1px;
	background: currentColor;
	transition: width 0.4s var(--ease);
}

.link-arrow:hover::after {
	width: 100%;
}

.icon-arrow {
	flex: none;
	transition: transform 0.35s var(--ease);
}

.link-arrow:hover .icon-arrow,
.btn:hover .icon-arrow {
	transform: translateX(3px);
}

/* 6 — Buttons -------------------------------------------------------------- */

.btn {
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
	padding: 1.05rem 1.6rem;
	border: 1px solid transparent;
	border-radius: var(--radius);
	font-family: var(--sans);
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
	transition: background-color 0.3s var(--ease), border-color 0.3s var(--ease), color 0.3s var(--ease),
		box-shadow 0.3s var(--ease), transform 0.3s var(--ease);
}

.btn:hover {
	transform: translateY(-2px);
}

.btn--sm {
	padding: 0.8rem 1.15rem;

}

.btn--accent:hover {

	transform: translateY(-1px);
}

/* 7 — Header --------------------------------------------------------------- */

.site-header {
	position: fixed;
	z-index: 100;
	inset-inline: 0;
	top: 0;
	color: var(--text);

	border-bottom: 1px solid transparent;
	transition: background-color 0.35s var(--ease), border-color 0.35s var(--ease), box-shadow 0.35s var(--ease);
}

/* Keep the fixed header clear of the WordPress admin bar. */
body.admin-bar .site-header {
	top: 32px;
}

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

.site-header__utility {
	height: 38px;
	overflow: hidden;
	border-bottom: 1px solid var(--line);
	transition: height 0.35s var(--ease), opacity 0.3s var(--ease), border-color 0.35s var(--ease);
}

.site-header.is-scrolled .site-header__utility,
body.is-inner-page .site-header__utility {
	height: 0;
	opacity: 0;
	border-color: transparent;
}

.utility-links {
	display: flex;
	gap: 1.75rem;
}

.utility-links a:hover {
	color: var(--ink);
}

.site-header__main {
	position: relative;
}

.site-header__inner {
	display: flex;
	align-items: center;

	transition: height 0.35s var(--ease);
}

.site-header.is-scrolled .site-header__inner,
body.is-inner-page .site-header__inner {
	height: 64px;
}

.brand__link {
	display: flex;
	align-items: center;
	gap: 0.7rem;
}

.brand__mark {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	color: var(--ink);
}

/* The supplied AllGrand lockup, shipped with the theme. Replacing the logo
   is a single file swap (or upload one under Site Identity). */
.brand__logo,
.custom-logo {
	width: auto;
	height: 38px;
	max-width: 220px;
	object-fit: contain;
	transition: height 0.35s var(--ease);
}

.custom-logo-link {
	display: block;
	line-height: 0;
}

.site-header.is-scrolled .brand__logo,
.site-header.is-scrolled .custom-logo,
body.is-inner-page .brand__logo,
body.is-inner-page .custom-logo {
	height: 32px;
}

.brand__name {
	display: block;

	color: var(--ink);
}

.brand__sub {
	display: block;
	margin-top: 0.3rem;
	font-family: var(--sans);
	font-size: 0.5rem;
	letter-spacing: 0.16em;
	line-height: 1;
	text-transform: uppercase;
	color: var(--text-muted);
	white-space: nowrap;
}

.primary-nav {
	margin-left: auto;
	height: 100%;
}

.primary-nav__list {
	display: flex;
	align-items: center;
	gap: clamp(0.9rem, 1.5vw, 1.75rem);
	height: 100%;
}

.primary-nav__item {
	display: flex;
	align-items: center;
	height: 100%;
}

/* Wide panels are positioned against the header bar, so the item itself must
   not create a positioning context. Hover still applies: the panel is a DOM
   descendant of the item. */
.primary-nav__item--mega {
	position: static;
}

/* Compact dropdowns hang from their own nav item. */
.primary-nav__item--list {
	position: relative;
}

.primary-nav__link {
	position: relative;
	display: inline-block;
	padding-block: 0.4rem;
	font-family: var(--sans);
	font-size: 0.6563rem;
	letter-spacing: 0.13em;
	line-height: 1;
	text-transform: uppercase;
	color: #063190;
	transition: color 0.25s var(--ease);
}

.primary-nav__link::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 1px;
	background: var(--brand);
	transition: width 0.32s var(--ease);
}

.primary-nav__link:hover {
	color: var(--brand);
}

.primary-nav__link:hover::after {
	width: 100%;
}

.primary-nav__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	margin-left: 1px;
	color: rgba(6, 49, 144, 0.62);
	transition: color 0.25s var(--ease);
}

.primary-nav__item:hover .primary-nav__toggle,
.primary-nav__item:focus-within .primary-nav__toggle,
.primary-nav__item.is-open .primary-nav__toggle {
	color: var(--accent);
}

.icon-chevron {
	transition: transform 0.3s var(--ease);
}

.primary-nav__item:hover .icon-chevron,
.primary-nav__item:focus-within .icon-chevron,
.primary-nav__item.is-open .icon-chevron {
	transform: rotate(180deg);
}

/* Dropdown panels --------------------------------------------------------- */

.submenu {
	position: absolute;
	z-index: 60;
	top: 100%;
	left: 0;
	background: var(--paper-2);
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	box-shadow: 0 34px 70px rgba(7, 42, 114, 0.14);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	transition: opacity 0.28s var(--ease), transform 0.32s var(--ease), visibility 0.28s;
}

.primary-nav__item:hover > .submenu,
.primary-nav__item:focus-within > .submenu,
.primary-nav__item.is-open > .submenu {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.submenu--mega {
	right: 0;
}

.submenu--mega .submenu__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(200px, 250px);
	gap: clamp(1.5rem, 3vw, 3rem);
	max-width: var(--container);
	margin-inline: auto;
	padding: clamp(1.75rem, 3vw, 2.5rem) var(--gutter) clamp(2rem, 3.5vw, 2.75rem);
}

.submenu__links {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.3rem 1.5rem;
}

.submenu__link {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	padding: 0.7rem 0.85rem;
	border-left: 1px solid transparent;
	transition: background-color 0.25s var(--ease), border-color 0.25s var(--ease);
}

.submenu__link:hover,
.submenu__link:focus-visible {
	background: rgba(31, 45, 61, 0.05);
	border-left-color: var(--accent);
}

.submenu__label {
	font-size: 0.9375rem;
	line-height: 1.3;
	color: var(--text);
}

.submenu__desc {
	font-size: 0.75rem;
	line-height: 1.55;
	color: var(--text-muted);
}

.submenu__rail {
	padding-left: clamp(1rem, 2vw, 1.85rem);
	border-left: 1px solid var(--line);
}

.submenu__rail-title {
	font-size: 1rem;
	line-height: 1.35;
	color: var(--ink);
}

.submenu__rail-text {
	margin-top: 0.7rem;
	font-size: 0.8125rem;
	line-height: 1.65;
	color: var(--text-muted);
}

.submenu__rail .link-arrow {
	margin-top: 1.35rem;
}

.submenu--list {
	right: auto;
	min-width: 290px;
}

.submenu--list .submenu__inner {
	display: block;
	padding: 0.85rem 0.9rem 1rem;
}

.submenu--list .submenu__links {
	display: block;
}

.submenu--list .submenu__link {
	padding: 0.62rem 0.8rem;
}

.site-header__actions {
	display: flex;
	align-items: center;

}

.nav-toggle {
	display: none;
	align-items: center;
	gap: 0.6rem;

	font-size: 0.625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ink);
}

.nav-toggle__bars {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 22px;
	height: 14px;
}

.nav-toggle__bars span {
	display: block;
	width: 100%;
	height: 1px;
	background: currentColor;
	transition: transform 0.3s var(--ease), opacity 0.3s var(--ease);
}

body.nav-open .nav-toggle__bars span:first-child {
	transform: translateY(3px) rotate(45deg);
}

body.nav-open .nav-toggle__bars span:last-child {
	transform: translateY(-3px) rotate(-45deg);
}

/* Mobile navigation ------------------------------------------------------- */

.mobile-nav {
	position: fixed;
	z-index: 90;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: calc(38px + var(--header-h) + 1.5rem) var(--gutter) 2rem;

	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-1.5rem);
	transition: opacity 0.4s var(--ease), transform 0.4s var(--ease), visibility 0.4s;
}

body.is-inner-page .mobile-nav {
	padding-top: calc(64px + 1.5rem);
}

.mobile-nav.is-open {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.mobile-nav__list {
	border-top: 1px solid var(--line-dark);
}

.mobile-nav__item {
	border-bottom: 1px solid var(--line-dark);
}

.mobile-nav__link {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding-block: 1.15rem;
}

.mobile-nav__index {
	font-family: var(--sans);
	font-size: 0.625rem;
	letter-spacing: 0.12em;
	color: var(--accent);
}

.mobile-nav__label {
	flex: 1;
	font-size: 1.375rem;
	font-weight: 500;
	letter-spacing: -0.02em;
}

.mobile-nav__row {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.mobile-nav__row .mobile-nav__link {
	flex: 1 1 auto;
}

.mobile-nav__toggle {
	display: grid;
	place-items: center;
	flex: none;
	width: 44px;
	height: 44px;
	border: 1px solid var(--line-dark);

	transition: border-color 0.25s var(--ease), color 0.25s var(--ease);
}

.mobile-nav__toggle-icon {
	position: relative;
	width: 12px;
	height: 12px;
}

.mobile-nav__toggle-icon::before,
.mobile-nav__toggle-icon::after {
	content: "";
	position: absolute;
	background: currentColor;
	transition: transform 0.3s var(--ease), opacity 0.3s var(--ease);
}

.mobile-nav__toggle-icon::before {
	top: 5.5px;
	left: 0;
	width: 100%;
	height: 1px;
}

.mobile-nav__toggle-icon::after {
	top: 0;
	left: 5.5px;
	width: 1px;
	height: 100%;
}

.mobile-nav__item.is-open .mobile-nav__toggle-icon::after {
	transform: scaleY(0);
	opacity: 0;
}

.mobile-nav__sub {
	overflow: hidden;
	max-height: 0;
	transition: max-height 0.4s var(--ease);
}

.mobile-nav__sub-list {
	padding: 0.2rem 0 1.1rem;
}

.mobile-nav__sub-list li {
	border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.mobile-nav__sub-list li:last-child {
	border-bottom: 0;
}

.mobile-nav__sub-list a {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	padding: 0.7rem 0.25rem 0.7rem 1.5rem;
}

.mobile-nav__sub-label {
	position: relative;
	font-size: 0.9375rem;

}

.mobile-nav__sub-label::before {
	content: "";
	position: absolute;
	top: 0.6em;
	left: -1rem;
	width: 6px;
	height: 1px;

}

.mobile-nav__sub-desc {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;

}

.mobile-nav__foot {
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
	padding-top: 2.5rem;
}

.mobile-nav__contact {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.mobile-nav__contact li {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	font-size: 0.9375rem;
}

.mobile-nav__contact-label {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;

}

.mobile-nav .btn {
	justify-content: space-between;
}

/* 8 — Hero ----------------------------------------------------------------- */

.hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: min(92vh, 940px);
	overflow: hidden;
	background: linear-gradient(145deg, #e9f0fc 0%, #d7e5f9 48%, #c3d7f4 100%);
	color: var(--text);
	isolation: isolate;
}

.hero__media {
	position: absolute;
	z-index: -3;
	inset: 0;
}

.hero__media img,
.hero__media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero__scrim {
	position: absolute;
	z-index: -2;
	inset: 0;

}

.hero__frame {
	position: absolute;
	z-index: 1;
	inset: clamp(1rem, 2.5vw, 2.25rem);
	pointer-events: none;
}

.hero__tick {
	position: absolute;
	width: 26px;
	height: 26px;
	border: 1px solid rgba(31, 45, 61, 0.2);
}

.hero__tick--tl {
	top: 0;
	left: 0;
	border-right: 0;
	border-bottom: 0;
}

.hero__tick--br {
	right: 0;
	bottom: 0;
	border-top: 0;
	border-left: 0;
}

.hero__inner {
	position: relative;
	width: 100%;

}

/* The hero frame is empty until a picture is chosen: park its label in the
   empty top corner so it never competes with the headline or the scroll cue. */
.hero .ph {
	align-items: start;
	justify-items: end;
	background: linear-gradient(145deg, #dce8fb 0%, #c9dbf6 52%, #b5cff1 100%);
	color: rgba(31, 45, 61, 0.55);
}

.hero .ph__hatch {
	background-image: repeating-linear-gradient(135deg, rgba(47, 91, 255, 0.07) 0 1px, transparent 1px 10px);
}

.hero .ph::after {
	border-color: rgba(47, 91, 255, 0.22);
}

.hero .ph__label {
	border-color: rgba(47, 91, 255, 0.26);
	background: rgba(255, 255, 255, 0.72);
	color: rgba(31, 45, 61, 0.7);
}

.hero .ph__note {
	color: rgba(31, 45, 61, 0.45);
}

.hero .ph__body {
	align-items: flex-end;
	margin: calc(38px + var(--header-h) + 3rem) clamp(1rem, 2.5vw, 2.5rem) 0;
	text-align: right;
}

.hero__title {

	font-weight: 600;
	line-height: 0.98;
	letter-spacing: -0.035em;
	text-wrap: balance;
	color: var(--text);
}

.hero__text {
	max-width: 40rem;

	font-size: clamp(1rem, 1.1vw, 1.125rem);
	line-height: 1.7;
	color: var(--text-muted);
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;

}

.hero__meta {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;

	padding-top: 1.5rem;
	border-top: 1px solid var(--line);
}

.hero__meta-item {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.hero__meta-key {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.hero__meta-value {
	font-size: 0.9375rem;
	color: var(--text);
}

.hero__scroll {
	position: absolute;
	right: var(--gutter);
	bottom: clamp(2rem, 5vh, 3.25rem);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.85rem;
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--text-muted);
	writing-mode: vertical-rl;
}

.hero__scroll-line {
	width: 1px;
	height: 56px;
	background: linear-gradient(180deg, var(--accent), rgba(47, 91, 255, 0));
	transform-origin: top;
	animation: scrollPulse 2.6s var(--ease) infinite;
}

@keyframes scrollPulse {
	0%,
	100% {
		transform: scaleY(0.35);
		opacity: 0.4;
	}
	50% {
		transform: scaleY(1);
		opacity: 1;
	}
}

/* 9 — Trust strip ---------------------------------------------------------- */

.stats__list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.stats__item {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	padding: clamp(2rem, 3.6vw, 3.25rem) clamp(1rem, 2vw, 2.25rem);
	border-left: 1px solid var(--line);
}

.stats__item:first-child {
	padding-left: 0;
	border-left: 0;
}

.stats__item:last-child {
	padding-right: 0;
}

.stats__value {
	position: relative;

	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.045em;
	font-variant-numeric: tabular-nums;
}

.stats__value::before {
	content: "";
	display: block;
	width: 26px;
	height: 2px;
	margin-bottom: 1.1rem;

}

.stats__label {
	max-width: 22ch;
	font-family: var(--sans);
	font-size: 0.625rem;
	letter-spacing: 0.13em;
	line-height: 1.7;
	text-transform: uppercase;
	color: var(--text-muted);
}

/* 10 — Products ------------------------------------------------------------ */

.products__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1.25rem, 2vw, 2rem);
	margin-top: clamp(2.75rem, 5vw, 4.5rem);
}

.product {
	display: flex;
	flex-direction: column;
	gap: 1.35rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--line);
}

.product:nth-child(1) {
	grid-column: span 2;
	grid-row: span 2;
}

.product:nth-child(6) {
	grid-column: span 4;
	flex-direction: row;
	align-items: center;
	gap: clamp(1.5rem, 3vw, 3rem);
}

.product__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--paper-3);
	transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease), border-color 0.45s var(--ease);
}

/* The featured card spans two rows: let its media absorb the extra height so
   the grid never leaves a hole underneath it. */
.product:nth-child(1) .product__media {
	flex: 1 1 auto;
	aspect-ratio: auto;
	min-height: clamp(240px, 26vw, 420px);
}

.product:nth-child(6) .product__media {
	flex: 1 1 56%;
	aspect-ratio: 21 / 9;
}

.product:nth-child(6) .product__body {
	flex: 1 1 44%;
}

.product__media img,
.product__media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s var(--ease);
}

.product:hover .product__media img,
.product:hover .product__media .ph {
	transform: scale(1.035);
}

.product:hover .product__media {
	transform: translateY(-6px);
	box-shadow: 0 24px 48px rgba(4, 30, 61, 0.15);
}

.product__index {
	position: absolute;
	z-index: 2;
	top: 0;
	left: 0;
	padding: 0.55rem 0.7rem;
	background: var(--ink);
	color: #fff;
	font-family: var(--sans);
	font-size: 0.625rem;
	letter-spacing: 0.1em;
}

.product__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: flex-start;
}

.product__title {
	font-size: clamp(1.125rem, 1.5vw, 1.45rem);
	letter-spacing: -0.02em;
}

.product__text {
	margin-top: 0.7rem;
	color: var(--text-muted);
	font-size: 0.9375rem;
	line-height: 1.7;
}

.tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: 1.15rem;
}

.tags li {
	padding: 0.35rem 0.6rem;
	border: 1px solid var(--line);
	border-radius: 999px;
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;

}

.product .link-arrow {
	margin-top: auto;
	padding-top: 1.35rem;
}

/* 11 — Solutions ----------------------------------------------------------- */

.solutions__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 2.5vw, 2.5rem);
	margin-top: clamp(2.75rem, 5vw, 4.5rem);
}

.solution {
	display: flex;
	flex-direction: column;
}

.solution__media {
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--ink-3);
	transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease), border-color 0.45s var(--ease);
}

.solution__media img,
.solution__media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s var(--ease);
}

.solution:hover .solution__media img,
.solution:hover .solution__media .ph {
	transform: scale(1.04);
}

.solution:hover .solution__media {
	transform: translateY(-6px);
	box-shadow: 0 24px 48px rgba(4, 30, 61, 0.2);
}

.solution__need {
	margin-top: 1.35rem;
	font-family: var(--sans);
	font-size: 0.625rem;
	letter-spacing: 0.11em;
	line-height: 1.65;
	text-transform: uppercase;
	color: var(--accent);
}

.solution__title {
	margin-top: 0.7rem;
	font-size: 1.1875rem;
	letter-spacing: -0.015em;
}

.solution__text {
	margin-top: 0.7rem;
	color: var(--on-dark-muted);
	font-size: 0.9375rem;
	line-height: 1.7;
}

/* 12 — Applications -------------------------------------------------------- */

.applications__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: minmax(200px, 22vw);
	gap: clamp(0.75rem, 1.1vw, 1.15rem);
	margin-top: clamp(2.75rem, 5vw, 4.5rem);
}

.application {
	position: relative;
	overflow: hidden;
	background: var(--ink-3);
	transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease);
}

.application:hover {
	transform: translateY(-5px);
	box-shadow: 0 24px 48px rgba(4, 30, 61, 0.18);
}

.application--tall {
	grid-row: span 2;
}

.application__media {
	position: absolute;
	inset: 0;
}

.application__media img,
.application__media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.9s var(--ease);
}

.application:hover .application__media img,
.application:hover .application__media .ph {
	transform: scale(1.05);
}

.application__scrim {
	position: absolute;
	inset: 0;

}

.application__body {
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	padding: clamp(1rem, 1.6vw, 1.6rem);
	color: #fff;
}

.application__title {
	font-size: clamp(1rem, 1.3vw, 1.25rem);
	letter-spacing: -0.015em;
}

.application__meta {
	margin-top: 0.4rem;
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.13em;
	line-height: 1.6;
	text-transform: uppercase;

}

/* 13 — Why AOGUAN ---------------------------------------------------------- */

.why__layout {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: clamp(2rem, 5vw, 5.5rem);
	align-items: start;
}

.why__intro {
	position: sticky;
	top: 7.5rem;
}

.why__intro .section-head {
	grid-template-columns: minmax(0, 1fr);
}

.why__intro .section-head__title {
	max-width: 18ch;
}

.advantages {
	border-top: 1px solid var(--line);
}

.advantage {
	position: relative;
	display: grid;
	grid-template-columns: 5.5rem minmax(9rem, 15rem) minmax(0, 1fr);
	gap: 0 1.25rem;
	padding-block: clamp(1.35rem, 2.2vw, 2rem);
	border-bottom: 1px solid var(--line);
	transition: background-color 0.35s var(--ease), transform 0.35s var(--ease);
}

.advantage:hover {
	background: rgba(255, 255, 255, 0.1);
	transform: translateX(5px);
}

.advantage::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	width: 0;
	height: 1px;
	background: var(--accent-bright);
	transition: width 0.55s var(--ease);
}

.advantage:hover::before {
	width: 100%;
}

.advantage__index {
	font-family: var(--sans);
	font-size: 0.625rem;
	letter-spacing: 0.12em;
	color: var(--accent);
}

.advantage__title {
	font-size: 1.0625rem;
	letter-spacing: -0.01em;
}

.advantage__text {
	color: var(--text-muted);
	font-size: 0.9375rem;
	line-height: 1.7;
}

/* 14 — Technology ---------------------------------------------------------- */

.technology__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: clamp(2rem, 4vw, 4.5rem);
	margin-top: clamp(2.75rem, 5vw, 4.5rem);
}

.technology__media {
	position: relative;
	aspect-ratio: 16 / 11;
	overflow: hidden;
	background: var(--ink-3);
}

.technology__media img,
.technology__media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.technology__items {
	border-top: 1px solid var(--line-dark);
}

.technology__item {
	display: flex;
	align-items: baseline;
	gap: 1.25rem;
	padding-block: 1.05rem;
	border-bottom: 1px solid var(--line-dark);
}

.technology__index {
	min-width: 2rem;
	font-family: var(--sans);
	font-size: 0.625rem;
	letter-spacing: 0.1em;
	color: var(--accent);
}

.technology__label {
	font-size: 1rem;
	color: rgba(255, 255, 255, 0.88);
}

.technology__metrics,
.manufacturing__metrics,
.global__metrics {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
	margin-top: clamp(2.25rem, 4vw, 3rem);
}

.metric {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.metric__value {

	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.035em;
	font-variant-numeric: tabular-nums;
}

.metric__label {
	max-width: 20ch;
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.13em;
	line-height: 1.7;
	text-transform: uppercase;
}

.metric--on-dark .metric__label {
	color: var(--on-dark-muted);
}

/* 15 — Manufacturing ------------------------------------------------------- */

.manufacturing {
	position: relative;
	overflow: hidden;

	isolation: isolate;
}

.manufacturing__media {
	position: absolute;
	z-index: -3;
	inset: 0;
}

.manufacturing__media img,
.manufacturing__media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.manufacturing__scrim {
	position: absolute;
	z-index: -2;
	inset: 0;

}

.manufacturing__inner {
	position: relative;
	padding-block: var(--section-y);
}

/* The factory picture sits behind the copy, so its placeholder is announced
   with a caption beside the section head instead of a label over the text. */
.manufacturing__caption {
	max-width: 46ch;
	margin-top: 1.75rem;
	padding: 0.6rem 0.85rem;
	border: 1px dashed var(--line-dark-strong);
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.13em;
	line-height: 1.7;
	text-transform: uppercase;
	color: var(--on-dark-muted);
}

.manufacturing .ph__body {
	display: none;
}

.manufacturing__items {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 2.5rem;
	max-width: 58rem;
	margin-top: clamp(2.5rem, 4vw, 3.5rem);
}

.manufacturing__item {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	padding-block: 1rem;
	border-bottom: 1px solid var(--line-dark);
	font-size: 1rem;

}

.manufacturing__bullet {
	width: 6px;
	height: 6px;
	flex: none;
	background: var(--accent);
}

.manufacturing__metrics {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	padding-top: clamp(2rem, 4vw, 3rem);
	border-top: 1px solid var(--line-dark);
}

/* 16 — Global network ------------------------------------------------------ */

.global__map {
	position: relative;
	aspect-ratio: 16 / 7;
	margin-top: clamp(2.75rem, 5vw, 4.5rem);
	border: 1px solid var(--line-dark);
	overflow: hidden;

}

.global__map img,
.global__map .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.global__note {
	margin-top: 1.75rem;
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-muted);
}

/* 17 — Projects ------------------------------------------------------------ */

.projects__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 2.5vw, 2.5rem);
	margin-top: clamp(2.75rem, 5vw, 4.5rem);
}

.project {
	display: flex;
	flex-direction: column;
}

.project__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--paper-3);
	transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease), border-color 0.45s var(--ease);
}

.project__media img,
.project__media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s var(--ease);
}

.project:hover .project__media img,
.project:hover .project__media .ph {
	transform: scale(1.035);
}

.project:hover .project__media {
	transform: translateY(-6px);
	box-shadow: 0 24px 48px rgba(4, 30, 61, 0.16);
}

.project__body {
	flex: 1 1 auto;
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--line);
}

.project__index {
	font-family: var(--sans);
	font-size: 0.625rem;
	letter-spacing: 0.12em;
	color: var(--accent);
}

.project__title {
	margin-top: 0.6rem;
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: -0.01em;
	color: var(--text-muted);
}

.project__meta {
	margin-top: 1.35rem;
}

.project__meta-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 0.65rem;
	border-top: 1px solid var(--line);
}

.project__meta-row dt {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.project__meta-row dd {
	margin: 0;
	font-family: var(--sans);
	font-size: 0.8125rem;
	color: var(--text-muted);
}

/* 18 — Certifications ------------------------------------------------------ */

.certifications {
	padding-block: clamp(3rem, 6vw, 5.5rem);

	border-top: 1px solid var(--line);
}

.certifications__inner {
	display: grid;
	grid-template-columns: minmax(240px, 0.55fr) minmax(0, 1.45fr);
	gap: clamp(2rem, 4vw, 4.5rem);
	align-items: center;
}

.certifications__title {
	margin-top: 1.1rem;
	font-size: clamp(1.5rem, 2.2vw, 2rem);
	letter-spacing: -0.025em;
}

.certifications__text {
	max-width: 40ch;
	margin-top: 0.9rem;

	font-size: 0.9375rem;
	line-height: 1.75;
}

.certifications__list {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: clamp(0.75rem, 1vw, 1rem);
	align-items: start;
}

.certification {
	position: relative;
	display: grid;
	place-items: center;
	width: auto;
	height: 220px;
	aspect-ratio: 210 / 297;
	justify-self: center;
	padding: 0.65rem;
	overflow: hidden;
	transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease), border-color 0.4s var(--ease);
}

.certification:hover {
	transform: translateY(-6px);
	border-color: rgba(0, 108, 255, 0.32);
	box-shadow: 0 22px 42px rgba(6, 49, 144, 0.14);
}

.certification__slot {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	font-family: var(--sans);
	font-size: 0.5rem;
	letter-spacing: 0.1em;
	color: var(--text-muted);
}

.certification img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* 19 — Resources ----------------------------------------------------------- */

.news__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr);
	gap: clamp(2rem, 4vw, 4.5rem);
	margin-top: clamp(2.75rem, 5vw, 4.5rem);
}

.news__lead-media {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--paper-3);
}

.news__lead-media img,
.news__lead-media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.news__meta {
	margin-top: 1.35rem;
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.news__lead-title {
	margin-top: 0.8rem;
	max-width: 24ch;
	font-size: clamp(1.35rem, 2.2vw, 2rem);
	line-height: 1.12;
	letter-spacing: -0.025em;
}

.news__excerpt {
	max-width: 52ch;
	margin-top: 0.9rem;
	color: var(--text-muted);
	font-size: 0.9375rem;
	line-height: 1.75;
}

.news__lead .link-arrow {
	margin-top: 1.35rem;
}

.news__list {
	border-top: 1px solid var(--line);
}

.news__item {
	padding-block: clamp(1.35rem, 2vw, 1.85rem);
	border-bottom: 1px solid var(--line);
}

.news__item .news__meta {
	margin-top: 0;
}

.news__item-title {
	margin-top: 0.65rem;
	font-size: 1.0625rem;
	line-height: 1.35;
	letter-spacing: -0.015em;
}

.news__item-title a:hover,
.news__lead-title a:hover {
	color: var(--accent);
}

.news__list--placeholder,
.news__layout--placeholder .news__item-title {
	color: var(--text-muted);
}

.news__layout--placeholder .news__lead-title {
	color: var(--text-muted);
}

/* 20 — Final CTA ----------------------------------------------------------- */

.cta {
	position: relative;
	overflow: hidden;
	padding-block: clamp(4.5rem, 8vw, 7.5rem);

	isolation: isolate;
}

.cta::before {
	content: "";
	position: absolute;
	z-index: -2;
	inset: 0;
}

.cta__glow {
	position: absolute;
	z-index: -1;
	top: -40%;
	right: -12vw;
	width: min(70vw, 900px);
	height: min(70vw, 900px);
	animation: ambientFloat 10s ease-in-out infinite alternate;
}

@keyframes ambientFloat {
	from {
		transform: translate3d(0, 0, 0) scale(0.96);
	}
	to {
		transform: translate3d(-3%, 4%, 0) scale(1.04);
	}
}

.cta__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: clamp(2.5rem, 5vw, 5rem);
	align-items: end;
}

.cta__title {
	max-width: 20ch;
	margin-top: 1.4rem;

	line-height: 1.02;
	letter-spacing: -0.035em;
	text-wrap: balance;
}

.cta__text {
	max-width: 46ch;
	margin-top: 1.4rem;
	color: rgba(255, 255, 255, 0.68);
	line-height: 1.75;
}

.cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	margin-top: clamp(2rem, 4vw, 2.75rem);
}

.cta__contact {
	border-top: 1px solid var(--line-dark);
}

.cta__contact-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1.5rem;
	padding-block: 1.1rem;
	border-bottom: 1px solid var(--line-dark);
	font-size: 0.9375rem;
}

.cta__contact-label {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;

}

.cta__contact-row a:hover {
	color: var(--accent);
}

.cta__note {
	margin-top: 1.6rem;
	font-size: 0.875rem;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.5);
}

.cta__placeholder {
	margin-bottom: 1.35rem;
	padding: 0.7rem 0.9rem;
	border: 1px dashed var(--line-dark-strong);
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.13em;
	line-height: 1.8;
	text-transform: uppercase;

}

/* 21 — Footer -------------------------------------------------------------- */

.site-footer {
	padding-top: clamp(3.5rem, 6vw, 6rem);

}

.site-footer__top {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.7fr);
	gap: clamp(2.5rem, 5vw, 5rem);
	padding-bottom: clamp(2.5rem, 5vw, 4rem);
}

.site-footer__wordmark {
	font-size: 1.375rem;
	font-weight: 700;
	letter-spacing: 0.3em;

}

.site-footer__text {
	max-width: 38ch;
	margin-top: 1.35rem;
	font-size: 0.9375rem;
	line-height: 1.75;

}

.site-footer__brand .btn {
	margin-top: 1.85rem;
}

.site-footer__columns {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 2.5rem);
}

.site-footer__title {
	font-family: var(--sans);

	text-transform: uppercase;
	color: var(--on-dark-faint);
}

.site-footer__list {
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
	margin-top: 1.35rem;
}

.site-footer__list a {

	transition: color 0.25s var(--ease);
}

.site-footer__list a:hover {
	color: #fff;
}

.site-footer__list--contact li {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.site-footer__contact-label {
	font-family: var(--sans);
	font-size: 0.5rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;

}

.site-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
	padding-block: 1.75rem;
	border-top: 1px solid var(--line-dark);
	font-family: var(--sans);

	text-transform: uppercase;

}

.site-footer__meta {
display: flex;
	gap: 1.75rem;
	flex-wrap: wrap;
}

.site-footer__meta a:hover {
	color: #fff;
}

/* 22 — Image placeholders -------------------------------------------------- */

.ph {
	position: relative;
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	min-height: 100%;
	overflow: hidden;

}

.ph__hatch {
	position: absolute;
	inset: 0;

}

.ph::after {
	content: "";
	position: absolute;
	inset: 12px;
	border: 1px dashed rgba(255, 255, 255, 0.16);
}

.ph__corner {
	position: absolute;
	width: 14px;
	height: 14px;
	border: 1px solid var(--accent-bright);
	opacity: 0.75;
}

.ph__corner--tl {
	top: 12px;
	left: 12px;
	border-right: 0;
	border-bottom: 0;
}

.ph__corner--tr {
	top: 12px;
	right: 12px;
	border-left: 0;
	border-bottom: 0;
}

.ph__corner--bl {
	bottom: 12px;
	left: 12px;
	border-right: 0;
	border-top: 0;
}

.ph__corner--br {
	right: 12px;
	bottom: 12px;
	border-left: 0;
	border-top: 0;
}

.ph__body {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.6rem;
	max-width: 88%;
	padding: 1.25rem;
	text-align: center;
}

.ph__label {
	padding: 0.55rem 0.8rem;
	border: 1px solid rgba(255, 255, 255, 0.2);

	font-family: var(--sans);
	font-size: clamp(0.5625rem, 0.85vw, 0.6875rem);
	letter-spacing: 0.18em;
	line-height: 1.4;
	text-transform: uppercase;

}

.ph__note {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.1em;
	line-height: 1.7;
	text-transform: uppercase;

}

/* Light-surface placeholders ---------------------------------------------- */

.products .ph,
.projects .ph,
.news .ph,
.certifications .ph {
	background: var(--paper-3);
	color: rgba(31, 45, 61, 0.55);
}

.products .ph__hatch,
.projects .ph__hatch,
.news .ph__hatch,
.certifications .ph__hatch {
	background-image: repeating-linear-gradient(135deg, rgba(31, 45, 61, 0.06) 0 1px, transparent 1px 9px);
}

.products .ph::after,
.projects .ph::after,
.news .ph::after,
.certifications .ph::after {
	border-color: rgba(31, 45, 61, 0.16);
}

.products .ph__label,
.projects .ph__label,
.news .ph__label,
.certifications .ph__label {
	border-color: rgba(31, 45, 61, 0.2);
	background: rgba(255, 255, 255, 0.55);
	color: rgba(31, 45, 61, 0.62);
}

.products .ph__note,
.projects .ph__note,
.news .ph__note,
.certifications .ph__note {
	color: rgba(31, 45, 61, 0.42);
}

.certifications .ph {
	background: transparent;
}

.certifications .ph::after {
	border: 1px dashed var(--line-strong);
	inset: 0;
}

.certifications .ph__hatch,
.certifications .ph__corner {
	display: none;
}

.certifications .ph__body {
	max-width: 100%;
	padding: 0.5rem;
}

.certifications .ph__note {
	display: none;
}

.certifications .ph__label {
	padding: 0;
	border: 0;
	background: none;
	font-size: 0.5rem;
	letter-spacing: 0.08em;
	line-height: 1.5;
	white-space: normal;
	overflow-wrap: anywhere;
}

/* Anchor targets ----------------------------------------------------------- */

/* 26 — Second level pages (technical) -------------------------------------- */

/* Technical hero band ------------------------------------------------------ */

.tech-hero {
	position: relative;
	overflow: hidden;
	padding-block: calc(var(--header-h) + var(--inner-hero-space-top)) var(--inner-hero-space-bottom);
	isolation: isolate;
}

.tech-hero::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: -38%;
	right: -12vw;
	width: min(62vw, 780px);
	height: min(62vw, 780px);

	pointer-events: none;
}

.tech-hero::after {
	content: "";
	position: absolute;
	z-index: -1;
	inset-inline: 0;
	bottom: 0;
	height: 1px;

}

.hero-ticks {
	position: absolute;
	inset: clamp(0.9rem, 2vw, 1.75rem);
	pointer-events: none;
}

.hero-ticks span {
	position: absolute;
	width: 22px;
	height: 22px;
	border: 1px solid rgba(255, 255, 255, 0.24);
}

.hero-ticks span:nth-child(1) {
	top: 0;
	left: 0;
	border-right: 0;
	border-bottom: 0;
}

.hero-ticks span:nth-child(2) {
	top: 0;
	right: 0;
	border-left: 0;
	border-bottom: 0;
}

.hero-ticks span:nth-child(3) {
	bottom: 0;
	left: 0;
	border-right: 0;
	border-top: 0;
}

.hero-ticks span:nth-child(4) {
	right: 0;
	bottom: 0;
	border-left: 0;
	border-top: 0;
}

/* Light surface variant of the same corner marks. */
.hero-ticks--light span {
	border-color: rgba(31, 45, 61, 0.22);
}

.tech-hero__layout {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
	gap: clamp(2rem, 4vw, 4.5rem);
	align-items: end;
}

.tech-hero__chip {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: 1.5rem;
	padding: 0.5rem 0.8rem;
	border: 1px solid var(--line-dark);
	border-radius: 999px;
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.18em;
	line-height: 1;
	text-transform: uppercase;

}

.tech-hero__chip::before {
	content: "";
	width: 5px;
	height: 5px;
	background: var(--accent-bright);
}

.tech-hero__title {
	max-width: 20ch;

	line-height: 1.02;
	letter-spacing: -0.035em;
	color: #fff;
	text-wrap: balance;
}

.tech-hero__text {
	max-width: 46ch;
	margin-top: 1.35rem;
	font-size: 1.0625rem;
	line-height: 1.75;

}

.tech-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	margin-top: clamp(1.75rem, 3vw, 2.25rem);
}

/* Specification panel ------------------------------------------------------ */

.spec-panel {
	border: 1px solid var(--line-dark);

}

.spec-panel__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.9rem 1.15rem;
	border-bottom: 1px solid var(--line-dark);
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.16em;
	line-height: 1;
	text-transform: uppercase;

}

.spec-panel__head strong {
	font-weight: 500;

}

.spec-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.85rem 1.15rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.075);
}

.spec-row dt {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;

}

.spec-row dd {
	margin: 0;
	font-family: var(--sans);
	font-size: 0.875rem;

}

.spec-panel__foot {
	padding: 0.9rem 1.15rem;
	border-top: 1px solid var(--line-dark);
	font-size: 0.75rem;
	line-height: 1.65;

}

/* Product index uses one content column. Its compact spacing is defined with
   the shared inner-page heroes below. */
.tech-hero--index .tech-hero__layout {
	grid-template-columns: minmax(0, 1fr);
}

/* Overview ----------------------------------------------------------------- */

.family-overview__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: clamp(2rem, 4vw, 4.5rem);
	align-items: start;
}

.family-overview__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--paper-3);
}

.family-overview__media img,
.family-overview__media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.family-overview__panel {
	position: relative;
	padding-left: clamp(0rem, 2vw, 1.5rem);
}

.family-overview__title {
	font-size: clamp(1.25rem, 1.8vw, 1.6rem);
	letter-spacing: -0.02em;
}

.family-overview__note {
	margin-top: 1.35rem;
	font-size: 0.8125rem;
	line-height: 1.7;
	color: var(--text-muted);
}

.family-content__body {
	max-width: 72ch;
}

.family-content__body > * + * {
	margin-top: 1.15em;
}

/* Documentation panel ------------------------------------------------------ */

.doc-panel {
	margin-top: clamp(2rem, 4vw, 3rem);
	border-top: 1px solid var(--line);
}

.doc-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding-block: 1.15rem;
	border-bottom: 1px solid var(--line);
}

.doc-row__label {
	font-size: 1rem;
	color: var(--text);
}

.doc-row__meta {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-muted);
}

/* Gallery ------------------------------------------------------------------ */

.family-gallery__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.75rem);
	margin-top: clamp(2.5rem, 4vw, 3.5rem);
}

.family-gallery__item {
	position: relative;
	aspect-ratio: 4 / 3;
	margin: 0;
	overflow: hidden;
	background: var(--paper-3);
}

.family-gallery__item .ph {
	width: 100%;
	height: 100%;
}

/* Cards -------------------------------------------------------------------- */

.family-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 2.5vw, 2.5rem);
	margin-top: clamp(2.5rem, 4vw, 3.5rem);
}

.family-grid--index {
	margin-top: 0;
}

.family-card {
	display: flex;
}

.family-card__link {
	display: flex;
	flex-direction: column;
	width: 100%;
	padding-top: 1.25rem;
	border-top: 1px solid var(--line);
}

.family-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--paper-3);
	transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease), border-color 0.45s var(--ease);
}

.family-card__media img,
.family-card__media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s var(--ease);
}

.family-card:hover .family-card__media img,
.family-card:hover .family-card__media .ph {
	transform: scale(1.035);
}

.family-card:hover .family-card__media {
	transform: translateY(-6px);
	box-shadow: 0 24px 48px rgba(4, 30, 61, 0.15);
}

.family-card__index {
	position: absolute;
	z-index: 2;
	top: 0;
	left: 0;
	padding: 0.5rem 0.65rem;
	background: var(--ink);
	color: #fff;
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.1em;
}

.family-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: flex-start;
	padding-top: 1.35rem;
}

.family-card__title {
	font-size: 1.1875rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: var(--text);
}

.family-card__text {
	margin-top: 0.6rem;
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--text-muted);
}

.family-card__body .link-arrow {
	margin-top: auto;
	padding-top: 1.35rem;
}

/* Closing call to action --------------------------------------------------- */

.family-cta {
	padding-block: clamp(3.5rem, 6vw, 5.5rem);

}

.family-cta__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: clamp(2rem, 4vw, 4rem);
}

.family-cta__title {
	max-width: 24ch;

	line-height: 1.05;
	letter-spacing: -0.03em;

}

.family-cta__text {
	max-width: 48ch;
	margin-top: 1rem;
	line-height: 1.7;
	color: var(--on-dark-muted);
}

.family-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
}

@media (max-width: 1024px) {
	.tech-hero__layout,
	.family-overview__layout {
		grid-template-columns: minmax(0, 1fr);
	}

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

@media (max-width: 768px) {
	.family-grid,
	.family-gallery__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.tech-hero {
		background-size: 88px 88px, 88px 88px, 22px 22px, 22px 22px;
	}

	.family-cta__inner {
		flex-direction: column;
		align-items: flex-start;
	}

	.family-cta__actions {
		flex-direction: column;
		width: 100%;
	}

	.family-cta__actions .btn {
		justify-content: space-between;
		width: 100%;
	}
}

/* 27 — Second level layouts ------------------------------------------------- */

/* Product: technical document --------------------------------------------- */

.family-doc__layout {
	display: grid;
	grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
	gap: clamp(2rem, 4vw, 4.5rem);
	align-items: start;
}

.doc-index {
	position: sticky;
	top: 7.5rem;
	padding-top: 1.15rem;
	border-top: 1px solid var(--line);
}

.doc-index__label {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.doc-index__list {
	margin-top: 1.15rem;
	counter-reset: doc-index;
}

.doc-index__list li {
	counter-increment: doc-index;
	border-bottom: 1px solid var(--line);
}

.doc-index__list a {
	display: flex;
	align-items: baseline;
	gap: 0.7rem;
	padding-block: 0.75rem;
	font-size: 0.9375rem;
	color: var(--text-muted);
	transition: color 0.25s var(--ease);
}

.doc-index__list a::before {
	content: "0" counter(doc-index);
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.1em;
	color: var(--brand);
}

.doc-index__list a:hover {
	color: var(--text);
}

.doc-index__cta {
	margin-top: 1.5rem;
}

.doc-block {
	padding-top: 1.15rem;
	border-top: 1px solid var(--line);
	scroll-margin-top: 7.5rem;
}

.doc-block + .doc-block {
	margin-top: clamp(3rem, 5vw, 4.5rem);
}

.doc-block__media {
	position: relative;
	margin-top: 1.75rem;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--paper-3);
}

.doc-block__media img,
.doc-block__media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* The product overview is intentionally quieter than gallery media. Keep a
   standard 4:3 frame and show the whole source image without cropping. */
#overview .doc-block__media {
	width: min(100%, 720px);
	margin-inline: auto;
	aspect-ratio: 4 / 3;
}

#overview .doc-block__media img,
#overview .doc-block__media .ph {
	object-fit: contain;
	object-position: center;
}

.doc-block__text {
	max-width: 72ch;
	margin-top: 1.75rem;
	color: var(--text-muted);
}

.doc-block__note {
	margin-top: 1.35rem;
	font-size: 0.8125rem;
	line-height: 1.7;
	color: var(--text-muted);
}

.feature-list {
	margin-top: 1.5rem;
	border-top: 1px solid var(--line);
}

.feature-list__item {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 0.35rem 2rem;
	padding-block: 1.05rem;
	border-bottom: 1px solid var(--line);
}

.feature-list__title {
	position: relative;
	padding-left: 1.15rem;
	font-size: 1rem;
	color: var(--text);
}

.feature-list__title::before {
	content: "";
	position: absolute;
	top: 0.62em;
	left: 0;
	width: 6px;
	height: 6px;
	background: var(--brand);
}

.feature-list__text {
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--text-muted);
}

.spec-table {
	margin-top: 1.5rem;
	border-top: 1px solid var(--line);
}

.spec-table__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1.5rem;
	padding-block: 0.9rem;
	border-bottom: 1px solid var(--line);
}

.spec-table__row dt {
	font-family: var(--sans);
	font-size: 0.625rem;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.spec-table__row dd {
	margin: 0;
	font-family: var(--sans);
	font-size: 0.875rem;
	color: var(--text);
}

/* Solution: application brief --------------------------------------------- */

.solution-hero {
	position: relative;
	padding-block: calc(var(--header-h) + clamp(3.5rem, 7vw, 6rem)) clamp(2.5rem, 4.5vw, 4rem);
	background: var(--paper);
}

.solution-hero__title {
	max-width: 22ch;
	margin-top: 1.35rem;
	font-size: clamp(2.1rem, 4.6vw, 3.6rem);
	line-height: 1.03;
	letter-spacing: -0.035em;
	color: var(--text);
	text-wrap: balance;
}

.solution-hero__quote {
	position: relative;
	max-width: 30ch;
	margin-top: 1.85rem;
	padding-left: 1.5rem;
	font-size: clamp(1.15rem, 1.9vw, 1.5rem);
	line-height: 1.45;
	letter-spacing: -0.02em;
	color: var(--ink);
}

.solution-hero__quote::before {
	content: "";
	position: absolute;
	top: 0.2em;
	bottom: 0.2em;
	left: 0;
	width: 2px;
	background: var(--accent-bright);
}

.solution-hero__text {
	max-width: 52ch;
	margin-top: 1.5rem;
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--text-muted);
}

.solution-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	margin-top: clamp(1.75rem, 3vw, 2.25rem);
}

.solution-band {
	position: relative;
	aspect-ratio: 21 / 6;
	overflow: hidden;
	background: var(--paper-3);
}

.solution-band img,
.solution-band .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.step-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 2.5vw, 2.5rem);
	margin-top: clamp(2.5rem, 4vw, 3.5rem);
}

.step {
	padding-top: 1.35rem;
	border-top: 1px solid var(--line);
}

.step__index {
	font-family: var(--sans);
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	color: var(--brand);
}

.step__title {
	margin-top: 0.85rem;
	font-size: 1.1875rem;
	letter-spacing: -0.02em;
}

.step__text {
	margin-top: 0.7rem;
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--text-muted);
}

.composition-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	margin-top: clamp(2.5rem, 4vw, 3.5rem);
	border-top: 1px solid var(--line);
	border-left: 1px solid var(--line);
}

.composition {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: clamp(1.25rem, 2.2vw, 1.85rem);
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}

.composition__index {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.14em;
	color: var(--brand);
}

.composition__title {
	font-size: 1.0625rem;
	color: var(--text);
}

.composition__meta {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--text-muted);
}

/* Application: visual case page ------------------------------------------- */

.app-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: clamp(420px, 58vh, 620px);
	overflow: hidden;

	isolation: isolate;
}

.app-hero--index {
	min-height: clamp(340px, 46vh, 520px);
}

.app-hero__media {
	position: absolute;
	z-index: -3;
	inset: 0;
}

.app-hero__media img,
.app-hero__media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.app-hero__scrim {
	position: absolute;
	z-index: -2;
	inset: 0;

}

.app-hero__inner {
	position: relative;
	padding-block: clamp(6rem, 12vh, 8rem) clamp(2.5rem, 5vh, 3.5rem);
}

.app-hero__title {
	max-width: 20ch;
	margin-top: 0.5rem;
	font-size: clamp(2.1rem, 4.6vw, 3.6rem);
	line-height: 1.03;
	letter-spacing: -0.035em;

	text-wrap: balance;
}

.app-hero__text {
	max-width: 46ch;
	margin-top: 1.15rem;
	font-size: 1rem;
	line-height: 1.75;

}

.bullet-groups {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.75rem, 3vw, 3rem);
}

.bullet-group {
	padding-top: 1.25rem;
	border-top: 1px solid var(--line);
}

.bullet-group__title {
	font-size: 1.0625rem;
	letter-spacing: -0.015em;
	color: var(--text);
}

.bullet-group__list {
	margin-top: 1.15rem;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}

.bullet-group__list li {
	position: relative;
	padding-left: 1.3rem;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--text-muted);
}

.bullet-group__list li::before {
	content: "";
	position: absolute;
	top: 0.6em;
	left: 0;
	width: 7px;
	height: 1px;
	background: var(--brand);
}

.gallery-mosaic {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(0.75rem, 1.4vw, 1.15rem);
	margin-top: clamp(2.5rem, 4vw, 3.5rem);
}

.gallery-mosaic figure {
	position: relative;
	margin: 0;
	overflow: hidden;
	background: var(--paper-3);
}

.gallery-mosaic__lead {
	grid-column: span 2;
	aspect-ratio: 16 / 7;
}

.gallery-mosaic__side {
	aspect-ratio: 4 / 3;
}

.gallery-mosaic .ph {
	width: 100%;
	height: 100%;
}

/* Products index: catalogue rows ------------------------------------------ */

.catalogue {
	border-top: 1px solid var(--line);
}

.catalogue-row {
	display: grid;
	grid-template-columns: 3.5rem minmax(0, 200px) minmax(0, 1fr) auto;
	gap: clamp(1rem, 2.5vw, 2.5rem);
	align-items: center;
	padding-block: clamp(1.5rem, 2.5vw, 2.25rem);
	border-bottom: 1px solid var(--line);
}

.catalogue-row__index {
	font-family: var(--sans);
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	color: var(--text-muted);
	align-self: start;
	padding-top: 0.35rem;
}

.catalogue-row__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--paper-3);
}

.catalogue-row__media img,
.catalogue-row__media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s var(--ease);
}

.catalogue-row:hover .catalogue-row__media img,
.catalogue-row:hover .catalogue-row__media .ph {
	transform: scale(1.04);
}

.catalogue-row__title {
	font-size: clamp(1.125rem, 1.7vw, 1.4rem);
	letter-spacing: -0.02em;
}

.catalogue-row__title a:hover {
	color: var(--brand);
}

.catalogue-row__text {
	max-width: 60ch;
	margin-top: 0.7rem;
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--text-muted);
}

.catalogue-row__action {
	align-self: end;
	white-space: nowrap;
}

/* Solutions index: brief cards -------------------------------------------- */

.brief-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.75rem, 3.5vw, 3.5rem);
}

.brief-card {
	display: flex;
	flex-direction: column;
	padding-top: 1.35rem;
	border-top: 1px solid var(--line);
}

.brief-card__need {
	font-family: var(--sans);
	font-size: 0.625rem;
	letter-spacing: 0.12em;
	line-height: 1.65;
	text-transform: uppercase;
	color: var(--accent);
}

.brief-card__title {
	margin-top: 0.85rem;
	font-size: clamp(1.35rem, 2.2vw, 1.85rem);
	letter-spacing: -0.025em;
}

.brief-card__title a:hover {
	color: var(--brand);
}

.brief-card__text {
	margin-top: 0.75rem;
	max-width: 46ch;
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--text-muted);
}

.brief-card__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	margin-top: 1.5rem;
	overflow: hidden;
	background: var(--paper-3);
}

.brief-card__media img,
.brief-card__media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s var(--ease);
}

.brief-card:hover .brief-card__media img,
.brief-card:hover .brief-card__media .ph {
	transform: scale(1.035);
}

.brief-card .link-arrow {
	margin-top: 1.35rem;
}

/* Applications index: environment mosaic ---------------------------------- */

.env-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(0.75rem, 1.4vw, 1.15rem);
}

.env-card {
	position: relative;
	overflow: hidden;

}

.env-card__link {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
}

.env-card:nth-child(3n + 1) .env-card__link {
	aspect-ratio: 4 / 3;
}

.env-card__media {
	position: absolute;
	inset: 0;
}

.env-card__media img,
.env-card__media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.9s var(--ease);
}

.env-card:hover .env-card__media img,
.env-card:hover .env-card__media .ph {
	transform: scale(1.05);
}

.env-card__scrim {
	position: absolute;
	inset: 0;

}

.env-card__body {
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: clamp(1.15rem, 2vw, 1.85rem);
}

.env-card__index {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.14em;

}

.env-card__title {
	font-size: clamp(1.125rem, 1.7vw, 1.5rem);
	font-weight: 600;
	letter-spacing: -0.02em;

}

.env-card__meta {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.13em;
	text-transform: uppercase;

}

@media (max-width: 1024px) {
	.family-doc__layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.doc-index {
		position: static;
	}

	.doc-index__list {
		display: flex;
		flex-wrap: wrap;
		gap: 0 1.5rem;
	}

	.doc-index__list li {
		border-bottom: 0;
	}

	.step-list,
	.bullet-groups {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.catalogue-row {
		grid-template-columns: 2.5rem minmax(0, 160px) minmax(0, 1fr);
	}

	.catalogue-row__action {
		grid-column: 3;
		justify-self: start;
		align-self: start;
		margin-top: 0.85rem;
	}

	.brief-grid,
	.env-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 768px) {
	.feature-list__item,
	.step-list,
	.bullet-groups,
	.composition-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.catalogue-row {
		grid-template-columns: minmax(0, 1fr);
		gap: 1rem;
	}

	.catalogue-row__index,
	.catalogue-row__action {
		grid-column: 1;
	}

	.gallery-mosaic {
		grid-template-columns: minmax(0, 1fr);
	}

	.gallery-mosaic__lead {
		grid-column: span 1;
		aspect-ratio: 4 / 3;
	}
}

/* 28 — Catalogue chrome ----------------------------------------------------- */

/* Breadcrumbs -------------------------------------------------------------- */

.breadcrumbs {
	margin-bottom: 1.6rem;
}

.breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem;
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.breadcrumbs__list li {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}

.breadcrumbs__list li + li::before {
	content: "\203A";
	opacity: 0.55;
}

.breadcrumbs--dark .breadcrumbs__list {
	color: var(--on-dark-faint);
}

.breadcrumbs--dark .breadcrumbs__list a {
	color: var(--on-dark-muted);
}

.breadcrumbs--dark .breadcrumbs__list a:hover {
	color: #fff;
}

.breadcrumbs--light .breadcrumbs__list a:hover {
	color: var(--brand);
}

/* Product header: gallery + summary --------------------------------------- */

.tech-hero--product {
	padding-block: calc(var(--header-h) + clamp(2.5rem, 5vw, 4rem)) clamp(3rem, 5.5vw, 5rem);
}

.product-head {
	align-items: start;
}

.product-media__main {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 1px solid var(--line-dark);
	background: rgba(255, 255, 255, 0.04);
}

.product-media__main img,
.product-media__main .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.product-media__thumbs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.6rem;
	margin-top: 0.6rem;
}

.product-media__thumb {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 1px solid var(--line-dark);
	opacity: 0.7;
	transition: opacity 0.25s var(--ease);
}

.product-media__thumb:hover {
	opacity: 1;
}

.product-media__thumb .ph {
	width: 100%;
	height: 100%;
}

.product-media__thumb .ph__body {
	display: none;
}

.product-head__info {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.spec-panel--inline {
	width: 100%;
	margin-top: clamp(1.75rem, 3vw, 2.25rem);
}

/* Nested feature tree ------------------------------------------------------ */

.feature-tree {
	margin-top: 1.5rem;
	border-top: 1px solid var(--line);
}

.feature-tree__group {
	padding-block: 1.15rem;
	border-bottom: 1px solid var(--line);
}

.feature-tree__title {
	position: relative;
	display: block;
	padding-left: 1.2rem;
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--text);
}

.feature-tree__title::before {
	content: "";
	position: absolute;
	top: 0.58em;
	left: 0;
	width: 6px;
	height: 6px;
	background: var(--brand);
}

.feature-tree__sub {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-top: 0.7rem;
	padding-left: 1.2rem;
}

.feature-tree__sub li {
	position: relative;
	padding-left: 1.15rem;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--text-muted);
}

.feature-tree__sub li::before {
	content: "";
	position: absolute;
	top: 0.68em;
	left: 0;
	width: 6px;
	height: 1px;
	background: var(--line-strong);
}

/* Catalogue with side rail ------------------------------------------------ */

.catalogue-layout {
	display: grid;
	grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
	gap: clamp(2rem, 4vw, 4rem);
	align-items: start;
}

.catalogue-rail {
	position: sticky;
	top: 7.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--line);
}

.catalogue-rail__label {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.catalogue-rail__list {
	margin-top: 1.1rem;
}

.catalogue-rail__list li {
	border-bottom: 1px solid var(--line);
}

.catalogue-rail__list a {
	display: block;
	padding-block: 0.7rem;
	font-size: 0.9375rem;
	color: var(--text-muted);
	transition: color 0.25s var(--ease), padding-left 0.25s var(--ease);
}

.catalogue-rail__list a:hover {
	padding-left: 0.35rem;
	color: var(--brand);
}

.catalogue-rail__note {
	margin-top: 1.35rem;
	font-size: 0.75rem;
	line-height: 1.7;
	color: var(--text-muted);
}

.catalogue-row[id] {
	scroll-margin-top: 7.5rem;
}

/* Floating contact rail ---------------------------------------------------- */

.contact-rail {
	position: fixed;
	z-index: 90;
	top: 50%;
	right: 0;
	display: flex;
	flex-direction: column;
	transform: translateY(-50%) translateX(100%);
	opacity: 0;
	transition: opacity 0.35s var(--ease), transform 0.35s var(--ease);
}

.contact-rail.is-visible {
	transform: translateY(-50%) translateX(0);
	opacity: 1;
}

.contact-rail__item {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);

	transition: background-color 0.25s var(--ease), color 0.25s var(--ease);
}

.contact-rail__item:first-child {
	border-top: 0;
}

.contact-rail__item svg {
	flex: none;
}

.contact-rail__label {
	position: absolute;
	left: calc(100% + 0.5rem);
	padding: 0.45rem 0.65rem;

	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.25s var(--ease);
}

.contact-rail__item:hover .contact-rail__label {
	opacity: 1;
}

@media (max-width: 1024px) {
	.catalogue-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.catalogue-rail {
		position: static;
	}

	.catalogue-rail__list {
		display: flex;
		flex-wrap: wrap;
		gap: 0 1.5rem;
	}

	.catalogue-rail__list li {
		border-bottom: 0;
	}

	.catalogue-rail__note {
		display: none;
	}
}

@media (max-width: 768px) {
	.product-media__thumbs {
		max-width: 60%;
	}

	.contact-rail__item {
		width: 40px;
		height: 40px;
	}

	.contact-rail__label {
		display: none;
	}
}

/* 29 — Contact page --------------------------------------------------------- */

.contact-hero__channels {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: clamp(1.75rem, 3vw, 2.25rem);
}

.contact-chip {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	min-width: 220px;
	padding: 0.9rem 1.1rem;
	border: 1px solid var(--line);
	border-radius: 14px;
	background: var(--paper-2);
	transition: border-color 0.25s var(--ease), box-shadow 0.25s var(--ease), transform 0.25s var(--ease);
}

.contact-chip:hover {
	border-color: var(--brand);
	box-shadow: 0 16px 32px rgba(4, 30, 61, 0.11);
	transform: translateY(-4px);
}

.contact-chip__label {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.contact-chip__value {
	font-size: 1rem;
	color: var(--text);
}

.contact-layout {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: clamp(2rem, 4vw, 4.5rem);
	align-items: start;
}

.contact-panel__title {
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--line);
	font-size: clamp(1.15rem, 1.6vw, 1.4rem);
	letter-spacing: -0.02em;
}

.contact-list {
	margin-top: 0.5rem;
}

.contact-list__row {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding-block: 0.95rem;
	border-bottom: 1px solid var(--line);
}

.contact-list__label {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.contact-list__value {
	font-size: 1rem;
	color: var(--text);
}

a.contact-list__value:hover {
	color: var(--brand);
}

.contact-missing {
	margin-top: 1.25rem;
	padding: 0.85rem 1rem;
	border: 1px dashed var(--line-strong);
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.13em;
	line-height: 1.8;
	text-transform: uppercase;
	color: var(--text-muted);
}

.contact-hours {
	margin-top: 1.75rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--line);
}

.contact-hours__label {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.contact-hours__value {
	margin-top: 0.6rem;
	font-size: 0.9375rem;
	line-height: 1.75;
	color: var(--text-muted);
}

.contact-map__frame {
	position: relative;
	aspect-ratio: 21 / 9;
	margin-top: clamp(2rem, 4vw, 3rem);
	overflow: hidden;
	border: 1px solid var(--line);
	background: var(--paper-3);
}

.contact-map__frame .ph {
	width: 100%;
	height: 100%;
}

/* Embedded enquiry form, restyled to the theme ---------------------------- */

.contact-form__embed .wpforms-form {
	margin-top: 0.5rem;
}

.contact-form__embed .wpforms-field-label,
.contact-form__embed .wpforms-field-sublabel {
	margin-bottom: 0.5rem;
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.14em;
	line-height: 1.6;
	text-transform: uppercase;
	color: var(--text-muted);
}

.contact-form__embed .wpforms-field-description {
	margin-top: 0.5rem;
	font-size: 0.8125rem;
	line-height: 1.65;
	color: var(--text-muted);
}

@media (max-width: 1024px) {
	.contact-layout {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 768px) {
	.contact-chip {
		min-width: 100%;
	}

	.contact-map__frame {
		aspect-ratio: 4 / 3;
	}
}

/* 23 — Motion -------------------------------------------------------------- */

.js [data-reveal] {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
}

.js [data-reveal].is-visible {
	opacity: 1;
	transform: none;
}

.js [data-reveal].is-visible:nth-child(2) {
	transition-delay: 0.06s;
}

.js [data-reveal].is-visible:nth-child(3) {
	transition-delay: 0.12s;
}

.js [data-reveal].is-visible:nth-child(4) {
	transition-delay: 0.18s;
}

.js [data-reveal].is-visible:nth-child(5) {
	transition-delay: 0.24s;
}

.js [data-reveal].is-visible:nth-child(6) {
	transition-delay: 0.3s;
}

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

	.js [data-reveal] {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.hero__scroll-line {
		animation: none;
	}

	.cta__glow,
	.tech-hero::before {
		animation: none;
	}

	.product__media img,
	.product__media,
	.application__media img,
	.application,
	.solution__media img,
	.solution__media,
	.project__media,
	.family-card__media,
	.certification,
	.advantage {
		transition: none;
	}
}

/* 24 — Inner pages --------------------------------------------------------- */

.page-hero,
.tech-hero--index {
	display: flex;
	align-items: center;
}

.page-hero > .container,
.tech-hero--index > .container {
	width: 100%;
}

.page-hero {
	min-height: var(--inner-hero-min-height);
	padding-block: calc(var(--header-h) + var(--inner-hero-space-top)) var(--inner-hero-space-bottom);
	background: var(--paper);
	color: var(--text);
	border-bottom: 1px solid var(--line);
}

/* Product begins below the fixed header, while the other inner heroes run
   behind it. Subtracting the header keeps every inner-page first screen at
   exactly the same total height without hiding the Product artwork. */
.tech-hero--index {
	min-height: calc(var(--inner-hero-min-height) - var(--header-h));
	margin-top: var(--header-h);
	padding-block: clamp(1rem, 1.6vw, 1.5rem);
}

.tech-hero--index .breadcrumbs {
	margin-bottom: 0.875rem;
}

.tech-hero--index .tech-hero__chip {
	margin-bottom: 0.625rem;
}

.tech-hero--index .tech-hero__text {
	margin-top: 0.625rem;
}

.tech-hero--index .tech-hero__actions {
	margin-top: 1.25rem;
}

.page-hero__title {
	max-width: 30ch;
	margin-top: 1.35rem;

	letter-spacing: -0.03em;
}

.page-hero__text {
	max-width: 52ch;
	margin-top: 1.25rem;
	color: var(--text-muted);
	line-height: 1.75;
}

.page-hero .btn {
	margin-top: 2rem;
}

.site-content {
	padding-block: clamp(3rem, 6vw, 5.5rem);
}

.site-content--narrow {
	max-width: 820px;
}

.entry-content {
	max-width: 72ch;
	font-size: 1.0625rem;
	line-height: 1.8;
}

.entry-content > * + * {
	margin-top: 1.35em;
}

.entry-content h2 {
	margin-top: 2.2em;
	font-size: clamp(1.5rem, 2.4vw, 2rem);
}

.entry-content h3 {
	margin-top: 1.8em;
	font-size: 1.25rem;
}

.entry-content a {
	color: var(--accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.entry-content ul,
.entry-content ol {
	padding-left: 1.35em;
	list-style: disc;
}

.entry-content ol {
	list-style: decimal;
}

.entry-content img {
	width: 100%;
}

.entry-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 2.5rem);
}

.entry-card__media {
	display: block;
	margin-bottom: 1.25rem;
	overflow: hidden;
}

.entry-card__meta,
.entry-single__meta {
	font-family: var(--sans);
	font-size: 0.5625rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.entry-card__title {
	margin-top: 0.6rem;
	font-size: 1.1875rem;
	line-height: 1.3;
}

.entry-card__excerpt {
	margin-top: 0.6rem;
	color: var(--text-muted);
	font-size: 0.9375rem;
}

.entry-empty {
	color: var(--text-muted);
}

/* 25 — Responsive ---------------------------------------------------------- */

/* Between the widest desktop and the mobile breakpoint the eight nav items
   need a little less air so the quote button stays on one line. */
@media (max-width: 1320px) {
	.site-header__inner {
		gap: 1.25rem;
	}

	.primary-nav__list {
		gap: 0.85rem;
	}

	.primary-nav__link {
		font-size: 0.625rem;
		letter-spacing: 0.1em;
	}

	.site-header__actions .btn {
		padding: 0.75rem 0.95rem;
	}
}

@media (max-width: 1180px) {
	.primary-nav {
		display: none;
	}

	.nav-toggle {
		display: inline-flex;
	}
}

@media (max-width: 1024px) {
	.section-head,
	.why__layout,
	.technology__layout,
	.certifications__inner,
	.news__layout,
	.cta__inner,
	.site-footer__top {
		grid-template-columns: minmax(0, 1fr);
	}

	.why__intro {
		position: static;
	}

	.advantages {
		margin-top: 2.5rem;
	}

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

	.product:nth-child(1) {
		grid-column: span 2;
		grid-row: auto;
	}

	.product:nth-child(6) {
		grid-column: span 2;
	}

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

	.applications__grid {
		grid-auto-rows: minmax(190px, 26vw);
	}

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

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

	.site-footer__columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2.5rem;
	}

	.site-footer__brand {
		max-width: 44rem;
	}

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

@media (max-width: 768px) {
	:root {
		--section-y: clamp(3.5rem, 12vw, 5rem);
	}

	.site-header__utility {
		display: none;
	}

	.brand__mark {
		width: 28px;
		height: 28px;
	}

	.brand__name {
		font-size: 0.9375rem;
		letter-spacing: 0.2em;
	}

	.brand__sub {
		display: none;
	}

	.site-header__actions .btn {
		display: none;
	}

	.site-main {
		display: block;
	}

	/* Hero: rebuild for a narrow viewport rather than shrinking the desktop layout. */
	.hero {
		align-items: stretch;
		min-height: 88vh;
		padding-top: 62px;
	}

	.hero__frame {
		inset: 0.85rem;
	}

	.hero .ph {
		align-items: start;
	}

	.hero .ph__body {
		margin: calc(var(--header-h) + 2.25rem) 1rem 1rem;
	}

	.hero__scroll {
		display: none;
	}

	.hero__inner {
		display: flex;
		flex-direction: column;
		justify-content: flex-end;

	}

	.hero__title {

		line-height: 1.02;
		letter-spacing: -0.03em;
	}

	.hero__text {
		margin-top: 1.25rem;
		font-size: 0.9375rem;
	}

	.hero__actions {
		flex-direction: column;
		align-items: stretch;
		gap: 0.6rem;
		margin-top: 1.85rem;
	}

	.hero__actions .btn,
	.cta__actions .btn,
	.mobile-nav .btn {
		justify-content: space-between;
		width: 100%;
	}

	.hero__meta {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
		margin-top: 2rem;
	}

	.hero__meta-item {
		flex-direction: row;
		align-items: baseline;
		justify-content: space-between;
		gap: 1rem;
		padding-block: 0.75rem;
		border-bottom: 1px solid var(--line);
	}

	.hero__meta-value {
		font-size: 0.875rem;
		text-align: right;
	}

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

	.stats__item {
		padding: 1.75rem 1.25rem;
	}

	.stats__item:nth-child(odd) {
		padding-left: 0;
		border-left: 0;
	}

	.stats__item:nth-child(even) {
		padding-right: 0;
	}

	.stats__item:nth-child(3),
	.stats__item:nth-child(4) {
		border-top: 1px solid var(--line);
	}

	.products__grid,
	.solutions__list,
	.projects__grid,
	.entry-list {
		grid-template-columns: minmax(0, 1fr);
	}

	.product:nth-child(1),
	.product:nth-child(6) {
		grid-column: span 1;
	}

	.product:nth-child(6) {
		flex-direction: column;
		align-items: stretch;
		gap: 1.35rem;
	}

	.product:nth-child(6) .product__media,
	.product:nth-child(6) .product__body {
		flex: none;
	}

	.product:nth-child(6) .product__media {
		aspect-ratio: 4 / 3;
	}

	.applications__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-rows: minmax(160px, 44vw);
	}

	.application--tall {
		grid-row: span 2;
	}

	.advantage {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.5rem;
	}

	.advantage__index {
		order: -1;
	}

	.technology__media {
		aspect-ratio: 4 / 3;
	}

	.technology__metrics,
	.manufacturing__metrics,
	.global__metrics {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.75rem 1.25rem;
	}

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

	.global__map {
		aspect-ratio: 4 / 3;
	}

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

	.news__lead-media {
		aspect-ratio: 4 / 3;
	}

	.site-footer__columns {
		grid-template-columns: minmax(0, 1fr);
		gap: 2rem;
	}

	.site-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.85rem;
	}

	.ph__note {
		display: none;
	}

	.ph::after {
		inset: 8px;
	}
}

@media (max-width: 480px) {

	.stat,
	.stats__item {
		padding-block: 1.5rem;
	}

	.applications__grid {
		grid-template-columns: minmax(0, 1fr);
		grid-auto-rows: minmax(200px, 52vw);
	}

	.application--tall {
		grid-row: span 1;
	}

	.technology__metrics,
	.manufacturing__metrics,
	.global__metrics {
		grid-template-columns: minmax(0, 1fr);
	}

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

	.ph__label {
		font-size: 0.5rem;
		letter-spacing: 0.12em;
	}
}

@media print {
	.site-header,
	.mobile-nav,
	.hero__scroll,
	.cta__glow {
		display: none;
	}
}

/* 30 — Light pass ----------------------------------------------------------- */

/*
 * Everything that used to be a dark slab is now a light technical band. The
 * whole dark system was built on the --on-dark-* and --line-dark-* tokens, so
 * flipping those tokens per component lightens the entire subtree in one go;
 * only the few hardcoded colours need an explicit override.
 */

.section--ink,
.manufacturing,
.cta,
.family-cta,
.tech-hero,
.app-hero,
.site-footer,
.mobile-nav,
.contact-rail {
	--on-dark: var(--text);
	--on-dark-muted: var(--text-muted);
	--on-dark-faint: var(--text-muted);
	--line-dark: var(--line);
	--line-dark-strong: var(--line-strong);
	--accent: var(--brand);
}

/* Homepage contrast bands -------------------------------------------------- */

.solution__media,
.technology__media,
.application,
.global__map {
	background: var(--paper-3);
}

/* Manufacturing: full bleed picture, light veil instead of a dark one ------ */

.manufacturing__item {
	border-bottom-color: var(--line);
	color: var(--text);
}

.metric--on-dark .metric__value {
	color: var(--text);
}

/* Final call to action ----------------------------------------------------- */

.cta__text,
.cta__note {
	color: var(--text-muted);
}

.cta__contact {
	border-top-color: var(--line);
}

.cta__contact-row {
	border-bottom-color: var(--line);
}

.cta__contact-label {
	color: var(--text-muted);
}

.cta__placeholder {
	border-color: var(--line-strong);
	color: var(--text-muted);
}

.family-cta {
	background: var(--paper);
	color: var(--text);
	border-top: 1px solid var(--line);
}

.family-cta__title {
	color: var(--text);
}

/* Outline buttons are now always used on light surfaces -------------------- */

.btn--outline-light {
	border-color: var(--line-strong);
	color: var(--text);
}

.btn--outline-light:hover {
	border-color: var(--brand);
	color: var(--brand);
}

/* Technical hero bands ----------------------------------------------------- */

.tech-hero {
	background-color: var(--paper);
	background-image: none;
	color: var(--text);
}

.tech-hero::before {
	background: radial-gradient(circle, rgba(47, 91, 255, 0.12) 0%, rgba(47, 91, 255, 0) 62%);
	animation: ambientFloat 12s ease-in-out infinite alternate;
}

.tech-hero::after {
	background: linear-gradient(90deg, rgba(31, 45, 61, 0) 0%, rgba(31, 45, 61, 0.14) 50%, rgba(31, 45, 61, 0) 100%);
}

.hero-ticks span {
	border-color: rgba(31, 45, 61, 0.2);
}

.tech-hero__title,
.tech-hero__chip strong {
	color: var(--text);
}

.tech-hero__chip {
	border-color: var(--line);
	color: var(--text-muted);
}

.tech-hero__text {
	color: var(--text-muted);
}

.product-media__main,
.product-media__thumb {
	border-color: var(--line);
	background: var(--paper-3);
}

/* Specification panel ------------------------------------------------------ */

.spec-panel {
	border-color: var(--line);
	background: var(--paper-2);
}

.spec-panel__head {
	border-bottom-color: var(--line);
	color: var(--text-muted);
}

.spec-panel__head strong {
	color: var(--text);
}

.spec-row {
	border-bottom-color: var(--line);
}

.spec-row dt {
	color: var(--text-muted);
}

.spec-row dd {
	color: var(--text);
}

.spec-panel__foot {
	border-top-color: var(--line);
	color: var(--text-muted);
}

/* Application pages -------------------------------------------------------- */

.application__scrim {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.62) 52%, rgba(255, 255, 255, 0.94) 100%);
}

.application__body,
.application__title {
	color: var(--text);
}

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

.env-card {
	background: var(--paper-3);
}

.env-card__scrim {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.66) 52%, rgba(255, 255, 255, 0.95) 100%);
}

.env-card__title {
	color: var(--text);
}

.env-card__index {
	color: var(--accent);
}

.env-card__meta {
	color: var(--text-muted);
}

/* Footer ------------------------------------------------------------------- */

.site-footer__text,
.site-footer__title,
.site-footer__list a,
.site-footer__bottom {
	color: var(--text-muted);
}

.site-footer__contact-label {
	color: var(--text-muted);
}

/* Mobile menu -------------------------------------------------------------- */

.mobile-nav {
	background: var(--paper-2);
	color: var(--text);
}

.mobile-nav__list,
.mobile-nav__item,
.mobile-nav__sub-list li {
	border-color: var(--line);
}

.mobile-nav__link .icon-arrow {
	color: var(--text-muted);
}

.mobile-nav__contact a {
	color: var(--text-muted);
}

.mobile-nav__contact-label {
	color: var(--accent);
}

.mobile-nav__toggle {
	border-color: var(--line-strong);
	color: var(--ink);
}

.mobile-nav__item.is-open .mobile-nav__toggle {
	border-color: var(--accent-bright);
	color: var(--accent);
}

.mobile-nav__sub-label {
	color: var(--text-muted);
}

.mobile-nav__sub-label::before {
	background: var(--brand);
}

.mobile-nav__sub-desc {
	color: var(--text-muted);
}

/* Floating contact rail ---------------------------------------------------- */

.contact-rail {
	box-shadow: -1px 0 0 var(--line);
}

.contact-rail__item {
	border-top-color: var(--line);
	background: var(--paper-2);
	color: var(--text);
}

.contact-rail__item:hover {
	background: var(--accent-bright);
	color: #ffffff;
}

.contact-rail__label {
	background: var(--ink);
	color: #fff;
}

/* Placeholder frames: light by default -------------------------------------- */

.ph {
	background: linear-gradient(155deg, #eff4fd 0%, #e4edfa 60%, #d9e6f8 100%);
	color: rgba(31, 45, 61, 0.55);
}

.ph__hatch {
	background-image: repeating-linear-gradient(135deg, rgba(47, 91, 255, 0.07) 0 1px, transparent 1px 10px);
}

.ph::after {
	border-color: rgba(47, 91, 255, 0.2);
}

.ph__label {
	border-color: rgba(47, 91, 255, 0.24);
	background: rgba(255, 255, 255, 0.72);
	color: rgba(31, 45, 61, 0.7);
}

.ph__note {
	color: rgba(31, 45, 61, 0.45);
}

.solution-band,
.catalogue-row__media,
.brief-card__media,
.doc-block__media,
.gallery-mosaic figure,
.family-overview__media,
.family-gallery__item,
.contact-map__frame {
	background: var(--paper-3);
}

/* cache marker: light pass v2 */

/* 31 — About page and FAQ --------------------------------------------------- */

/* Company introduction ------------------------------------------------------ */

.about-intro {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
	gap: clamp(2rem, 4vw, 4.5rem);
	align-items: start;
}

.about-intro__body {
	max-width: 68ch;
	font-size: 1.0625rem;
	line-height: 1.8;
	color: var(--text-muted);
}

.about-intro__body .eyebrow {
	margin-bottom: 1.35rem;
}

.about-intro__body p + p {
	margin-top: 1.15em;
}

.about-facts {
	border-top: 1px solid var(--line);
}

.about-facts__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1.5rem;
	padding-block: 0.95rem;
	border-bottom: 1px solid var(--line);
}

.about-facts__row dt {
	font-family: var(--sans);
	font-size: 0.625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.about-facts__row dd {
	margin: 0;
	font-family: var(--sans);
	font-size: 0.875rem;
	color: var(--text);
}

/* Metric row ---------------------------------------------------------------- */

.metric-row {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 2.5rem);
	margin-top: clamp(2.5rem, 4vw, 3.5rem);
}

.metric-row .metric__value {
	font-size: clamp(1.75rem, 2.6vw, 2.5rem);
}

.metric-row .metric__label {
	color: var(--text-muted);
}

/* Development timeline ------------------------------------------------------ */

.timeline {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	margin-top: clamp(2.5rem, 4vw, 3.5rem);
	border-top: 1px solid var(--line);
}

.timeline__item {
	position: relative;
	padding: 1.6rem clamp(1rem, 2vw, 1.5rem) 0 0;
	border-right: 1px solid var(--line);
}

.timeline__item:last-child {
	border-right: 0;
}

.timeline__item::before {
	content: "";
	position: absolute;
	top: -4px;
	left: 0;
	width: 7px;
	height: 7px;
	background: var(--accent-bright);
}

.timeline__item--pending::before {
	background: var(--line-strong);
}

.timeline__year {
	display: block;
	font-family: var(--sans);
	font-size: 0.8125rem;
	letter-spacing: 0.08em;
	color: var(--ink);
}

.timeline__item--pending .timeline__year {
	color: var(--text-muted);
}

.timeline__title {
	display: block;
	margin-top: 0.6rem;
	font-size: 1rem;
	color: var(--text);
}

.timeline__text {
	display: block;
	margin-top: 0.4rem;
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--text-muted);
}

/* Two column bullet groups -------------------------------------------------- */

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

/* Four-up facilities gallery ------------------------------------------------ */

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

/* FAQ ----------------------------------------------------------------------- */

.faq__list {
	margin-top: clamp(2.5rem, 4vw, 3.5rem);
	border-top: 1px solid var(--line);
}

.faq__item {
	border-bottom: 1px solid var(--line);
}

.faq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding-block: 1.2rem;
	cursor: pointer;
	list-style: none;
}

.faq__question::-webkit-details-marker {
	display: none;
}

.faq__question-text {
	font-size: 1.0625rem;
	color: var(--text);
	transition: color 0.25s var(--ease);
}

.faq__question:hover .faq__question-text {
	color: var(--brand);
}

.faq__toggle {
	position: relative;
	flex: none;
	width: 14px;
	height: 14px;
}

.faq__toggle::before,
.faq__toggle::after {
	content: "";
	position: absolute;
	background: var(--brand);
	transition: transform 0.3s var(--ease), opacity 0.3s var(--ease);
}

.faq__toggle::before {
	top: 6.5px;
	left: 0;
	width: 14px;
	height: 1px;
}

.faq__toggle::after {
	top: 0;
	left: 6.5px;
	width: 1px;
	height: 14px;
}

.faq__item[open] .faq__toggle::after {
	transform: scaleY(0);
	opacity: 0;
}

.faq__item[open] .faq__question-text {
	color: var(--brand);
}

.faq__answer {
	max-width: 78ch;
	padding-bottom: 1.4rem;
	font-size: 0.9375rem;
	line-height: 1.8;
	color: var(--text-muted);
}

@media (max-width: 1024px) {
	.about-intro,
	.bullet-groups--two {
		grid-template-columns: minmax(0, 1fr);
	}

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

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

	.timeline__item {
		padding-bottom: 1.5rem;
	}

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

@media (max-width: 768px) {
	.metric-row,
	.timeline {
		grid-template-columns: minmax(0, 1fr);
	}

	.timeline__item {
		padding: 1.35rem 0 1.25rem;
		border-right: 0;
		border-bottom: 1px solid var(--line);
	}

	.faq__question-text {
		font-size: 1rem;
	}
}

/* 32 — Model comparison table ----------------------------------------------- */

.model-table {
	margin-top: clamp(2rem, 3.5vw, 2.75rem);
	overflow-x: auto;
	border: 1px solid var(--line);
	background: var(--paper-2);
}

.model-table table {
	width: 100%;
	min-width: 760px;
	border-collapse: collapse;
}

.model-table th,
.model-table td {
	padding: 0.85rem 1rem;
	text-align: left;
	white-space: nowrap;
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}

.model-table th:last-child,
.model-table td:last-child {
	border-right: 0;
}

.model-table tbody tr:last-child td {
	border-bottom: 0;
}

.model-table thead th {
	background: var(--paper);
	font-family: var(--sans);
	font-size: 0.5625rem;
	font-weight: 400;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.model-table tbody td {
	font-family: var(--sans);
	font-size: 0.8125rem;
	color: var(--text-muted);
}

.model-table tbody td:first-child {
	color: var(--ink);
}

.model-table tbody tr:hover td {
	background: rgba(47, 91, 255, 0.04);
}

/* 33 — Contact page (quote form + contact information) --------------------- */

.contact-cards {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: clamp(1.5rem, 3vw, 2.5rem);
	align-items: start;
}

.panel {
	padding: clamp(1.6rem, 3vw, 2.6rem);
	border: 1px solid var(--line);
	border-radius: 16px;
	background: var(--paper-2);
	box-shadow: 0 20px 50px rgba(31, 45, 61, 0.06);
}

.panel__title {

	letter-spacing: -0.025em;
	color: var(--ink);
}

.panel__lead {
	max-width: 46ch;
	margin-top: 0.7rem;
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--text-muted);
}

/* Contact information ------------------------------------------------------- */

.info-list {
	margin-top: 1.75rem;
}

.info-row {
	display: flex;
	gap: 1rem;
	padding-block: 1.05rem;
	border-top: 1px solid var(--line);
}

.info-row:last-child {
	border-bottom: 1px solid var(--line);
}

.info-row__icon {
	display: grid;
	place-items: center;
	flex: none;
	width: 42px;
	height: 42px;
	border-radius: 12px;
	background: rgba(47, 91, 255, 0.1);
	color: var(--brand);
}

.info-row__body {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	min-width: 0;
}

.info-row__label {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--ink);
}

.info-row__value {
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--text-muted);
}

a.info-row__value:hover {
	color: var(--brand);
}

.info-photo {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	margin-top: 1.75rem;
	overflow: hidden;
	border-radius: 12px;
	background: var(--paper-3);
	isolation: isolate;
}

.info-photo img,
.info-photo .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.info-photo__scrim {
	position: absolute;
	z-index: 1;
	inset: 0;
	background: linear-gradient(180deg, rgba(8, 20, 40, 0) 35%, rgba(8, 20, 40, 0.55) 72%, rgba(8, 20, 40, 0.85) 100%);
}

.info-photo__caption {
	position: absolute;
	z-index: 2;
	inset-inline: clamp(1rem, 2vw, 1.5rem);
	bottom: clamp(1rem, 2vw, 1.35rem);
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	color: #fff;
}

.info-photo__title {
	font-size: 1rem;
	font-weight: 600;
}

.info-photo__text {
	font-size: 0.8125rem;
	color: rgba(255, 255, 255, 0.78);
}

.info-photo__arrow {
	position: absolute;
	z-index: 2;
	right: clamp(1rem, 2vw, 1.35rem);
	bottom: clamp(1rem, 2vw, 1.35rem);
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 50%;
	color: #fff;
}

/* Quote form ---------------------------------------------------------------- */

.contact-form__embed {
	margin-top: 1.75rem;
}

.contact-form__embed .wpforms-container {
	margin: 0;
}

.contact-form__embed .wpforms-form,
.contact-form__embed .wpforms-field-container {
	display: flex;
	flex-wrap: wrap;
	gap: 0 1.25rem;
}

.contact-form__embed .wpforms-field {
	flex: 0 0 100%;
	width: 100%;
	max-width: 100%;
	padding: 0 0 1.15rem;
}

/* First four fields share the row, as in the approved layout. */
.contact-form__embed [id$="-field_1-container"],
.contact-form__embed [id$="-field_2-container"],
.contact-form__embed [id$="-field_3-container"],
.contact-form__embed [id$="-field_4-container"] {
	flex: 0 0 calc(50% - 0.625rem);
	width: calc(50% - 0.625rem);
}

.contact-form__embed .wpforms-field-label {
	margin-bottom: 0.5rem;
	font-family: var(--sans);
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--ink);
}

.contact-form__embed .wpforms-required-label {
	color: #d92d20;
}

.contact-form__embed .wpforms-field input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.contact-form__embed .wpforms-field textarea,
.contact-form__embed .wpforms-field select {
	width: 100%;
	min-height: 48px;
	padding: 0.8rem 1rem;
	border: 1px solid var(--line-strong);
	border-radius: 10px;
	background: var(--paper-2);
	color: var(--text);
	font-size: 0.9375rem;
	line-height: 1.5;
	box-shadow: none;
	transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease);
}

.contact-form__embed .wpforms-field textarea {
	min-height: 140px;
	resize: vertical;
}

.contact-form__embed .wpforms-field input::placeholder,
.contact-form__embed .wpforms-field textarea::placeholder {
	color: #9aa3b2;
}

.contact-form__embed .wpforms-field input:focus,
.contact-form__embed .wpforms-field textarea:focus,
.contact-form__embed .wpforms-field select:focus {
	border-color: var(--brand);
	outline: none;
	box-shadow: 0 0 0 4px rgba(47, 91, 255, 0.12);
}

.contact-form__embed .wpforms-field.wpforms-has-error input,
.contact-form__embed .wpforms-field.wpforms-has-error textarea,
.contact-form__embed .wpforms-field.wpforms-has-error select {
	border-color: #d92d20;
}

.contact-form__embed .wpforms-error {
	margin-top: 0.4rem;
	font-size: 0.8125rem;
	color: #d92d20;
}

.contact-form__embed .wpforms-field-description,
.contact-form__embed .wpforms-field-sublabel {
	font-family: var(--sans);
	font-size: 0.8125rem;
	letter-spacing: 0;
	text-transform: none;
	color: var(--text-muted);
}

.contact-form__embed .wpforms-submit-container {
	flex: 0 0 100%;
	width: 100%;
	padding: 0.5rem 0 0;
}

.contact-form__embed button[type="submit"].wpforms-submit,
.contact-form__embed .wpforms-submit {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	padding: 1.05rem 2rem;
	border: 0;
	border-radius: 999px;

	font-family: var(--sans);
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1;
	text-transform: none;

	transition: transform 0.25s var(--ease), background-color 0.25s var(--ease), box-shadow 0.25s var(--ease);
}

.contact-form__embed button[type="submit"].wpforms-submit::after,
.contact-form__embed .wpforms-submit::after {
	content: "\2192";
	font-size: 1.05em;
}

.contact-form__embed button[type="submit"].wpforms-submit:hover,
.contact-form__embed .wpforms-submit:hover {

	transform: translateY(-2px);
	box-shadow: 0 16px 32px rgba(255, 186, 0, 0.42);
}

.contact-form__embed .wpforms-confirmation-container-full,
.contact-form__embed .wpforms-confirmation-container {
	border: 1px solid var(--line);
	border-left: 3px solid var(--accent-bright);
	border-radius: 10px;
	background: var(--paper);
	padding: 1.25rem 1.35rem;
}

.panel--form .wpforms-field textarea + .wpforms-field-limit-text,
.panel--form .wpforms-limit-text {
	font-size: 0.75rem;
	color: var(--text-muted);
}

/* Global sales support band -------------------------------------------------- */

.support-band {
	position: relative;
	overflow: hidden;
	padding-block: clamp(3.5rem, 6vw, 5.5rem);
	background: var(--paper);
	border-top: 1px solid var(--line);
	isolation: isolate;
}

.support-band__map {
	position: absolute;
	z-index: -1;
	top: 0;
	right: 0;
	width: min(58%, 900px);
	height: 100%;
	background-image: radial-gradient(rgba(47, 91, 255, 0.22) 1.4px, transparent 1.5px);
	background-size: 14px 14px;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 45%, #000 100%);
	mask-image: linear-gradient(90deg, transparent 0%, #000 45%, #000 100%);
	opacity: 0.5;
}

.support-band__layout {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
	gap: clamp(2rem, 4vw, 4rem);
	align-items: center;
}

.support-band__title {

	letter-spacing: -0.03em;
	color: var(--ink);
}

.support-band__lead {
	margin-top: 0.75rem;
	font-size: 1.0625rem;
	color: var(--text);
}

.support-band__text {
	max-width: 46ch;
	margin-top: 1rem;
	font-size: 0.9375rem;
	line-height: 1.75;
	color: var(--text-muted);
}

.support-band__intro .btn {
	margin-top: 1.75rem;
	border-radius: 999px;
}

.support-items {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.25rem, 2.5vw, 2.25rem);
}

.support-item {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	padding-left: clamp(1rem, 2vw, 1.5rem);
	border-left: 1px solid var(--line-strong);
}

.support-item__icon {
	color: var(--brand);
}

.support-item__title {
	font-size: 1rem;
	font-weight: 600;
	color: var(--ink);
}

.support-item__text {
	font-size: 0.875rem;
	line-height: 1.7;
	color: var(--text-muted);
}

/* Brand button -------------------------------------------------------------- */

.btn--brand:hover {

	transform: translateY(-2px);
}

@media (max-width: 1024px) {
	.contact-cards,
	.support-band__layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.support-band__map {
		width: 100%;
		opacity: 0.35;
	}

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

@media (max-width: 768px) {
	.panel {
		border-radius: 14px;
	}

	.contact-form__embed [id$="-field_1-container"],
	.contact-form__embed [id$="-field_2-container"],
	.contact-form__embed [id$="-field_3-container"],
	.contact-form__embed [id$="-field_4-container"] {
		flex: 0 0 100%;
		width: 100%;
	}

	.support-items {
		grid-template-columns: minmax(0, 1fr);
	}

	.support-item {
		padding-left: 1rem;
	}

	.contact-form__embed button[type="submit"].wpforms-submit,
	.contact-form__embed .wpforms-submit {
		justify-content: center;
		width: 100%;
	}
}

/* 34 — Typography scale ------------------------------------------------------ */

/*
 * Driven by Appearance -> Customize -> Typography. --base-size scales every
 * rem-based size; --type-scale multiplies the display headings only.
 */

html {
	font-size: var(--base-size, 16px);
}

.hero__title {
	font-size: calc(clamp(2.4rem, 6.2vw, 5.5rem) * var(--type-scale, 1));
}

.page-hero__title {
	font-size: calc(clamp(2rem, 4vw, 3.5rem) * var(--type-scale, 1));
}

.section-head__title {
	font-size: calc(clamp(1.85rem, 3.4vw, 3.15rem) * var(--type-scale, 1));
}

.tech-hero__title {
	font-size: calc(clamp(2.1rem, 4.6vw, 3.9rem) * var(--type-scale, 1));
}

.solution-hero__title,
.app-hero__title {
	font-size: calc(clamp(2.1rem, 4.6vw, 3.6rem) * var(--type-scale, 1));
}

.cta__title {
	font-size: calc(clamp(2rem, 4.2vw, 3.6rem) * var(--type-scale, 1));
}

.family-cta__title {
	font-size: calc(clamp(1.6rem, 3vw, 2.6rem) * var(--type-scale, 1));
}

.support-band__title {
	font-size: calc(clamp(1.6rem, 2.8vw, 2.4rem) * var(--type-scale, 1));
}

.panel__title {
	font-size: calc(clamp(1.35rem, 2.1vw, 1.75rem) * var(--type-scale, 1));
}

.stats__value {
	font-size: calc(clamp(2.5rem, 4.4vw, 4rem) * var(--type-scale, 1));
}

.metric__value {
	font-size: calc(clamp(1.75rem, 2.6vw, 2.5rem) * var(--type-scale, 1));
}

@media (max-width: 768px) {
	.hero__title {
		font-size: calc(clamp(2.1rem, 9.5vw, 3rem) * var(--type-scale, 1));
	}

	.tech-hero__title {
		font-size: calc(clamp(1.9rem, 8.5vw, 2.6rem) * var(--type-scale, 1));
	}

	.stats__value {
		font-size: calc(clamp(2rem, 10vw, 2.75rem) * var(--type-scale, 1));
	}
}

@media (max-width: 480px) {
	.hero__title {
		font-size: calc(clamp(1.85rem, 10.5vw, 2.4rem) * var(--type-scale, 1));
	}
}
/* 35 — Homepage hero glass panel --------------------------------------------- */

.hero__content {
	max-width: 45rem;
	border: 1px solid rgba(255, 255, 255, 0.6);
	border-radius: 18px;
	-webkit-backdrop-filter: blur(16px) saturate(140%);
	backdrop-filter: blur(16px) saturate(140%);
	box-shadow: 0 30px 70px rgba(31, 45, 61, 0.16);
}

@media (max-width: 768px) {
	.hero__content {
		padding: 1.35rem 1.2rem 1.6rem;
		border-radius: 16px;
	}
}
/* 39 — Hero spacing with the glass panel ------------------------------------- */

.hero__inner {
	padding-block: clamp(5.5rem, 10vh, 7.5rem) clamp(2rem, 4vh, 3rem);
}

.hero__content {
	padding: clamp(1.5rem, 2.6vw, 2.25rem);
}

.hero__title {
	margin-top: 1.25rem;
}

.hero__text {
	margin-top: 1.25rem;
}

.hero__actions {
	margin-top: clamp(1.5rem, 3vh, 2rem);
}

.hero__meta {
	margin-top: clamp(1.75rem, 4vh, 3rem);
}

@media (max-width: 768px) {
	.hero__inner {
		padding-block: clamp(4rem, 10vh, 5.5rem) 1.75rem;
	}
}

/* 40 — Elementor homepage styling ------------------------------------------- */

/*
 * The homepage is built with Elementor widgets, so this layer maps the brand
 * design system onto Elementor's markup. Editing widgets in Elementor still
 * overrides anything set inline.
 */

.elementor-section {
	padding: clamp(3rem, 6vw, 5.5rem) 0;
}

.elementor-section > .elementor-container {
	box-sizing: border-box;
	max-width: var(--container);
	padding-inline: var(--gutter);
}

.elementor-inner-section,
.elementor-inner-section > .elementor-container {
	padding: 0;
}

.elementor-heading-title {
	color: var(--ink);
	letter-spacing: -0.02em;
	line-height: 1.12;
}

/* Hero --------------------------------------------------------------------- */

.elementor-section.ag-hero {
	min-height: min(88vh, 900px);
	display: flex;
	align-items: center;
	padding: clamp(7rem, 14vh, 10rem) 0 clamp(3rem, 6vh, 5rem);
}

.ag-hero .elementor-container {
	width: 100%;
}

.ag-hero .elementor-heading-title {
	font-size: clamp(2.4rem, 5vw, 4.4rem);
	line-height: 1.02;
	letter-spacing: -0.035em;
	color: var(--ink);
}

.ag-hero h6.elementor-heading-title {
	font-family: var(--sans);
	font-size: 0.6875rem;
	font-weight: 400;
	letter-spacing: 0.18em;
	line-height: 1;
	text-transform: uppercase;
	color: var(--text-muted);
	margin-bottom: 1rem;
}

.ag-hero .elementor-widget-text-editor {
	max-width: 40rem;
	font-size: 1.0625rem;
}

.ag-hero .elementor-widget-button {
	display: inline-block;
	margin-right: 0.75rem;
}

/* Blocks ------------------------------------------------------------------- */

.ag-heading-block .elementor-heading-title {
	max-width: 24ch;
	font-size: clamp(1.9rem, 3.4vw, 3rem);
	letter-spacing: -0.03em;
}

.elementor-widget-text-editor {
	color: var(--text-muted);
	line-height: 1.75;
}

/* Cards -------------------------------------------------------------------- */

.ag-products .elementor-column,
.ag-applications .elementor-column,
.ag-why .elementor-column {
	box-sizing: border-box;
	padding: 0 12px;
}

.elementor-widget-image img {
	width: 100%;
	height: auto;
	border-radius: 12px;
}

.ag-products .elementor-heading-title,
.ag-applications .elementor-heading-title {
	margin-top: 1.1rem;
	font-size: 1.1875rem;
}

.ag-products .elementor-widget-button {
	margin-top: 0.75rem;
}

.ag-why .elementor-heading-title {
	font-size: 1.0625rem;
}

/* Stats -------------------------------------------------------------------- */

.ag-stats .elementor-heading-title {
	font-size: clamp(2rem, 3.4vw, 3rem);
	color: var(--ink);
}

.ag-stats .elementor-widget-text-editor {
	margin-top: 0.5rem;
	font-family: var(--sans);
	font-size: 0.625rem;
	letter-spacing: 0.13em;
	line-height: 1.7;
	text-transform: uppercase;
}

/* Lists -------------------------------------------------------------------- */

.elementor-icon-list-items .elementor-icon-list-item {
	font-size: 0.9375rem;
	line-height: 1.7;
	color: var(--text);
}

.elementor-icon-list-icon svg {
	fill: var(--brand);
}

/* Buttons ------------------------------------------------------------------ */

.elementor-button {

	background-color: var(--accent-bright) !important;
	color: #ffffff !important;
	font-weight: 600;
	padding: 1rem 1.9rem;
	transition: background-color 0.25s var(--ease), transform 0.25s var(--ease);
}

.elementor-button:hover {
	background-color: #ffa22a !important;
	color: #ffffff !important;
	transform: translateY(-2px);
}

/* Closing call to action ---------------------------------------------------- */

.ag-cta .elementor-heading-title {
	max-width: 22ch;
	color: #fff;
	font-size: clamp(2rem, 4vw, 3.2rem);
	letter-spacing: -0.03em;
}

.ag-cta .elementor-widget-text-editor {
	max-width: 46ch;
	color: rgba(255, 255, 255, 0.8);
}

.ag-cta .elementor-button {
	background-color: #ffffff !important;
	color: var(--ink-2) !important;
}

.ag-cta .elementor-button:hover {
	background-color: var(--accent-bright) !important;
	color: #ffffff !important;
}

/* Accordion ---------------------------------------------------------------- */

.elementor-accordion .elementor-accordion-item {
	border-bottom: 1px solid var(--line);
}

.elementor-accordion .elementor-tab-title {
	padding: 1.2rem 0;
	font-size: 1.0625rem;
	color: var(--ink);
}

.elementor-accordion .elementor-tab-content {
	border: 0;
	padding: 0 0 1.4rem;
	font-size: 0.9375rem;
	line-height: 1.8;
	color: var(--text-muted);
}

/* Manufacturing band ------------------------------------------------------- */

.ag-manufacturing .elementor-heading-title,
.ag-manufacturing .elementor-widget-text-editor,
.ag-manufacturing .elementor-icon-list-item {
	color: var(--ink);
}

@media (max-width: 768px) {
	.elementor-section {
		padding: clamp(2.5rem, 9vw, 3.5rem) 0;
	}

	.ag-products .elementor-column,
	.ag-applications .elementor-column,
	.ag-why .elementor-column {
		padding: 0 0 2rem;
	}
}

/* 41 — Elementor heading colours and card polish ------------------------------ */

/* Elementor's kit selector is more specific, so match its depth. */
.elementor .elementor-widget-heading .elementor-heading-title {
	color: var(--ink);
}

.ag-cta .elementor-widget-heading .elementor-heading-title {
	color: #fff;
}

.ag-hero .elementor-widget-heading h6.elementor-heading-title {
	color: var(--text-muted);
}

/* Product and application cards get a light frame like the theme grid. */
.ag-products .elementor-widget-image img,
.ag-applications .elementor-widget-image img {
	border: 1px solid var(--line);
	background: var(--paper-3);
}

.ag-products .elementor-widget-text-editor,
.ag-applications .elementor-widget-text-editor {
	font-size: 0.9375rem;
}

.ag-why .elementor-widget-text-editor {
	font-size: 0.9375rem;
}

/* Stats and metrics sit on a hairline like the theme. */
.ag-stats .elementor-column .elementor-widget-wrap {
	border-top: 1px solid var(--line);
	padding-top: 1.5rem;
}

/* Section headings inside a column keep their own rhythm. */
.ag-heading-block .elementor-widget-text-editor {
	max-width: 62ch;
}
/* 42 — Quote form submit button (blue pill) ---------------------------------- */

.contact-form__embed button[type="submit"].wpforms-submit,
.contact-form__embed .wpforms-submit {
	background: #0069ac;
	color: #ffffff;
	box-shadow: 0 12px 26px rgba(0, 105, 172, 0.28);
}

.contact-form__embed button[type="submit"].wpforms-submit:hover,
.contact-form__embed .wpforms-submit:hover {
	background: #0080c9;
	color: #ffffff;
}
/* ---------------------------------------------------------------------------
   42. Global type scale

   One source of truth for every font size on the site, following the approved
   type standard. Sizes are desktop / tablet / mobile:

   Hero          48 / 39 / 31    weight 700   line 1.10   tracking -1px
   Page H1       44 / 37 / 30    weight 700   line 1.15   tracking -0.8px
   Section H2    33 / 30 / 26    weight 700   line 1.20   tracking -0.4px
   Block H3      24 / 23 / 21    weight 600   line 1.30   tracking  0
   Card H4       20 / 19 / 19    weight 600   line 1.35   tracking  0
   Lead          18 / 18 / 17    weight 400   line 1.65
   Body          17 / 17 / 16    weight 400   line 1.65
   Spec row      16 / 16 / 15    weight 400   line 1.60
   Nav           15 / 15 / 15    weight 500   line 1.20   tracking  0.35px
   Button        15 / 15 / 15    weight 600   line 1.20   tracking  0.8px
   Label         13 / 13 / 12    weight 600   line 1.30   tracking  1.8px
   Footer title  16 / 16 / 15    weight 600   line 1.30   tracking  0.3px
   Footer text   15 / 15 / 14    weight 400   line 1.60
   Copyright     13 / 13 / 12    weight 400   line 1.50
   Note          15 / 15 / 14    weight 400   line 1.60

   Desktop > 1024px, tablet 641-1024px, mobile <= 640px.

   The Customizer sliders still work: base text size feeds --fs-text and the
   heading scale feeds --fs-grow, so at their default values the site renders
   exactly the table above.
   ------------------------------------------------------------------------ */

:root {
	--fs-grow: calc(var(--base-scale, 1) * var(--type-scale, 1));
	--fs-text: var(--base-scale, 1);

	--fs-hero: calc(48px * var(--fs-grow));
	--fs-h1: calc(44px * var(--fs-grow));
	--fs-h2: calc(33px * var(--fs-grow));
	--fs-h3: calc(24px * var(--fs-grow));
	--fs-h4: calc(20px * var(--fs-grow));
	--fs-lead: calc(18px * var(--fs-text));
	--fs-body: calc(17px * var(--fs-text));
	--fs-small: calc(15px * var(--fs-text));
	--fs-label: calc(13px * var(--fs-text));
	--fs-nav: calc(15px * var(--fs-text));
	--fs-btn: calc(15px * var(--fs-text));
	--fs-footer: calc(15px * var(--fs-text));
	--fs-footer-title: calc(16px * var(--fs-text));
	--fs-copy: calc(13px * var(--fs-text));
	--fs-spec: calc(16px * var(--fs-text));

	--lh-hero: 1.1;
	--lh-h1: 1.15;
	--lh-h2: 1.2;
	--lh-h3: 1.3;
	--lh-h4: 1.35;
	--lh-lead: 1.65;
	--lh-body: 1.65;
	--lh-spec: 1.6;
	--lh-nav: 1.2;
	--lh-btn: 1.2;
	--lh-label: 1.3;
	--lh-footer-title: 1.3;
	--lh-footer: 1.6;
	--lh-note: 1.6;
	--lh-copy: 1.5;

	--ls-hero: -1px;
	--ls-h1: -0.8px;
	--ls-h2: -0.4px;
	--ls-flat: 0;
	--ls-nav: 0.35px;
	--ls-btn: 0.8px;
	--ls-label: 1.8px;
	--ls-footer-title: 0.3px;
}

@media (max-width: 1024px) {
	:root {
		--fs-hero: calc(39px * var(--fs-grow));
		--fs-h1: calc(37px * var(--fs-grow));
		--fs-h2: calc(30px * var(--fs-grow));
		--fs-h3: calc(23px * var(--fs-grow));
		--fs-h4: calc(19px * var(--fs-grow));
		--fs-lead: calc(18px * var(--fs-text));
		--fs-body: calc(17px * var(--fs-text));
		--fs-small: calc(15px * var(--fs-text));
		--fs-label: calc(13px * var(--fs-text));
		--fs-nav: calc(15px * var(--fs-text));
		--fs-btn: calc(15px * var(--fs-text));
		--fs-footer: calc(15px * var(--fs-text));
		--fs-footer-title: calc(16px * var(--fs-text));
		--fs-copy: calc(13px * var(--fs-text));
		--fs-spec: calc(16px * var(--fs-text));
	}
}

@media (max-width: 640px) {
	:root {
		--fs-hero: calc(31px * var(--fs-grow));
		--fs-h1: calc(30px * var(--fs-grow));
		--fs-h2: calc(26px * var(--fs-grow));
		--fs-h3: calc(21px * var(--fs-grow));
		--fs-h4: calc(19px * var(--fs-grow));
		--fs-lead: calc(17px * var(--fs-text));
		--fs-body: calc(16px * var(--fs-text));
		--fs-small: calc(14px * var(--fs-text));
		--fs-label: calc(12px * var(--fs-text));
		--fs-nav: calc(15px * var(--fs-text));
		--fs-btn: calc(15px * var(--fs-text));
		--fs-footer: calc(14px * var(--fs-text));
		--fs-footer-title: calc(15px * var(--fs-text));
		--fs-copy: calc(12px * var(--fs-text));
		--fs-spec: calc(15px * var(--fs-text));
	}
}

/* Hero and page headlines ------------------------------------------------ */

.hero__title,
.ag-hero .elementor-heading-title {
	font-size: var(--fs-hero);
	font-weight: 700;
	line-height: var(--lh-hero);
	letter-spacing: var(--ls-hero);
	color: var(--brand-strong);
}

.page-hero__title,
.tech-hero__title,
.solution-hero__title,
.app-hero__title,
.cta__title,
.ag-cta .elementor-heading-title {
	font-size: var(--fs-h1);
	font-weight: 700;
	line-height: var(--lh-h1);
	letter-spacing: var(--ls-h1);
	color: var(--brand-strong);
}

/* Section headlines ------------------------------------------------------ */

.section-head__title,
.family-cta__title,
.support-band__title,
.ag-heading-block .elementor-heading-title,
.ag-stats .elementor-heading-title {
	font-size: var(--fs-h2);
	font-weight: 700;
	line-height: var(--lh-h2);
	letter-spacing: var(--ls-h2);
}

/* Block headlines -------------------------------------------------------- */

.certifications__title,
.news__lead-title,
.panel__title,
.brief-card__title,
.family-overview__title,
.solution-hero__quote,
.mobile-nav__label,
.entry-content h2 {
	font-size: var(--fs-h3);
	font-weight: 600;
	line-height: var(--lh-h3);
	letter-spacing: var(--ls-flat);
}

/* Card and item headlines ------------------------------------------------ */

.product__title,
.solution__title,
.application__title,
.advantage__title,
.project__title,
.news__item-title,
.family-card__title,
.entry-card__title,
.step__title,
.composition__title,
.env-card__title,
.catalogue-row__title,
.feature-list__title,
.feature-tree__title,
.bullet-group__title,
.timeline__title,
.info-photo__title,
.support-item__title,
.contact-panel__title,
.site-footer__wordmark,
.faq__question-text,
.technology__label,
.submenu__rail-title,
.entry-content h3,
.ag-products .elementor-heading-title,
.ag-applications .elementor-heading-title,
.ag-why .elementor-heading-title,
.elementor-accordion .elementor-tab-title {
	font-size: var(--fs-h4);
	font-weight: 600;
	line-height: var(--lh-h4);
	letter-spacing: var(--ls-flat);
}

/* Intro and lead paragraphs --------------------------------------------- */

.hero__text,
.tech-hero__text,
.solution-hero__text,
.app-hero__text,
.support-band__lead,
.section-head__text,
.panel__lead,
.about-intro__body,
.ag-hero .elementor-widget-text-editor {
	font-size: var(--fs-lead);
	font-weight: 400;
	line-height: var(--lh-lead);
	letter-spacing: var(--ls-flat);
}

/* Body copy -------------------------------------------------------------- */

body,
.product__text,
.solution__text,
.advantage__text,
.certifications__text,
.news__excerpt,
.family-card__text,
.faq__answer,
.entry-card__excerpt,
.entry-content,
.support-band__text,
.support-item__text,
.bullet-group__list li,
.feature-list__text,
.feature-tree__sub li,
.catalogue-row__text,
.brief-card__text,
.step__text,
.catalogue-rail__list a,
.doc-index__list a,
.doc-row__label,
.manufacturing__item,
.info-row__label,
.info-row__value,
.info-photo__text,
.contact-chip__value,
.mobile-nav__contact li,
.submenu__rail-text,
.contact-form__embed .wpforms-field input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.contact-form__embed .wpforms-field textarea,
.contact-form__embed .wpforms-field select,
.ag-products .elementor-widget-text-editor,
.ag-applications .elementor-widget-text-editor,
.ag-why .elementor-widget-text-editor,
.elementor-icon-list-items .elementor-icon-list-item,
.elementor-accordion .elementor-tab-content,
.elementor-widget-text-editor {
	font-size: var(--fs-body);
	font-weight: 400;
	line-height: var(--lh-body);
	letter-spacing: var(--ls-flat);
}

/* Specification rows and field values ------------------------------------ */

.spec-row dd,
.spec-table__row dd,
.model-table tbody td,
.about-facts__row dd,
.project__meta-row dd,
.timeline__year,
.hero__meta-value,
.cta__contact-row,
.contact-list__value,
.contact-hours__value,
.family-overview__note {
	font-size: var(--fs-spec);
	line-height: var(--lh-spec);
	letter-spacing: var(--ls-flat);
}

/* Navigation ------------------------------------------------------------- */

.primary-nav__link,
.submenu__label,
.mobile-nav__sub-label {
	font-family: var(--sans);
	font-size: var(--fs-nav);
	font-weight: 500;
	line-height: var(--lh-nav);
	letter-spacing: var(--ls-nav);
}

/* The mobile menu button belongs to the same menu, so it follows the same
   typeface. Sizes and tracking stay on the type scale. */
.nav-toggle {
	font-family: var(--sans);
}

/* Buttons ---------------------------------------------------------------- */

.btn,
.link-arrow,
.contact-form__embed button[type="submit"].wpforms-submit,
.contact-form__embed .wpforms-submit,
.elementor-button,
.elementor-button-text {
	font-size: var(--fs-btn);
	font-weight: 600;
	line-height: var(--lh-btn);
	letter-spacing: var(--ls-btn);
}

.btn--sm {
	font-size: var(--fs-small);
	letter-spacing: var(--ls-btn);
}

/* Buttons and the header utility bar follow the body typeface instead of the
   technical monospace label style. Sizes and tracking stay on the scale. */
.btn,
.contact-form__embed button[type="submit"].wpforms-submit,
.contact-form__embed .wpforms-submit,
.elementor-button {
	font-family: var(--sans);
}

.site-header__utility-inner {
	font-family: var(--sans);
}

/* One corner radius for every button, including the form submit button and
   the Elementor buttons, which were built as full pills. */
.btn,
.contact-form__embed button[type="submit"].wpforms-submit,
.contact-form__embed .wpforms-submit,
.support-band__intro .btn {
	border-radius: 15px;
}

.elementor-button {
	border-radius: 15px !important;
}

/* Footer ----------------------------------------------------------------- */

.site-footer__list a {
	font-size: var(--fs-footer);
	font-weight: 400;
	line-height: var(--lh-footer);
	letter-spacing: var(--ls-flat);
}

.site-footer__title {
	font-size: var(--fs-footer-title);
	font-weight: 600;
	line-height: var(--lh-footer-title);
	letter-spacing: var(--ls-footer-title);
}

.site-footer__bottom {
	font-size: var(--fs-copy);
	font-weight: 400;
	line-height: var(--lh-copy);
	letter-spacing: var(--ls-flat);
}

/* Captions, notes and helper text --------------------------------------- */

.skip-link,
.submenu__desc,
.cta__note,
.spec-panel__foot,
.catalogue-rail__note,
.timeline__text,
.contact-form__embed .wpforms-field-description,
.contact-form__embed .wpforms-error,
.panel--form .wpforms-field textarea + .wpforms-field-limit-text,
.panel--form .wpforms-limit-text {
	font-size: var(--fs-small);
	font-weight: 400;
	line-height: var(--lh-note);
	letter-spacing: var(--ls-flat);
}

/* Uppercase labels, eyebrows, chips and table heads ---------------------- */

.eyebrow,
.site-header__utility-inner,
.nav-toggle,
.mobile-nav__index,
.mobile-nav__sub-desc,
.mobile-nav__contact-label,
.hero__meta-key,
.hero__scroll,
.product__index,
.solution__need,
.application__meta,
.advantage__index,
.technology__index,
.project__index,
.project__meta-row dt,
.certification__slot,
.news__meta,
.cta__contact-label,
.cta__placeholder,
.site-footer__title,
.site-footer__contact-label,
.ph__label,
.certifications .ph__label,
.tech-hero__chip,
.spec-panel__head,
.spec-row dt,
.spec-table__row dt,
.model-table thead th,
.family-card__index,
.doc-index__label,
.doc-index__list a::before,
.doc-row__meta,
.step__index,
.composition__index,
.composition__meta,
.env-card__index,
.env-card__meta,
.catalogue-rail__label,
.contact-rail__label,
.contact-chip__label,
.contact-list__label,
.contact-hours__label,
.entry-card__meta,
.entry-single__meta,
.about-facts__row dt,
.brief-card__need,
.catalogue-row__index,
.tags li,
.brand__sub,
.stats__label,
.metric__label,
.manufacturing__caption,
.global__note,
.ph__note,
.breadcrumbs__list,
.contact-missing,
.contact-form__embed .wpforms-field-label,
.contact-form__embed .wpforms-field-sublabel,
.ag-stats .elementor-widget-text-editor,
.ag-hero h6.elementor-heading-title {
	font-size: var(--fs-label);
	font-weight: 600;
	line-height: var(--lh-label);
	letter-spacing: var(--ls-label);
}

/* Brand lockup ----------------------------------------------------------- */

.brand__name {
	font-size: var(--fs-lead);
	font-weight: 700;
	line-height: var(--lh-lead);
	letter-spacing: var(--ls-flat);
}

/* Elementor pages outside the homepage ---------------------------------- */

.elementor h1.elementor-heading-title {
	font-size: var(--fs-h1);
	font-weight: 700;
	line-height: var(--lh-h1);
	letter-spacing: var(--ls-h1);
	color: var(--brand-strong);
}

.elementor h2.elementor-heading-title {
	font-size: var(--fs-h2);
	font-weight: 700;
	line-height: var(--lh-h2);
	letter-spacing: var(--ls-h2);
}

.elementor h3.elementor-heading-title {
	font-size: var(--fs-h3);
	font-weight: 600;
	line-height: var(--lh-h3);
	letter-spacing: var(--ls-flat);
}

.elementor h4.elementor-heading-title,
.elementor h5.elementor-heading-title {
	font-size: var(--fs-h4);
	font-weight: 600;
	line-height: var(--lh-h4);
	letter-spacing: var(--ls-flat);
}

/* The desktop navigation only exists above 1180px. At the scale size the six
   uppercase items always clear the quote button, but a line break inside an
   item would still look wrong, so it is never allowed. */
.primary-nav__link {
	white-space: nowrap;
}

/* 43 — Dark footer ---------------------------------------------------------- */

/*
 * The footer is the one place where the palette goes dark. Every colour inside
 * it is token driven, so redefining the tokens on the footer itself flips the
 * whole subtree back to light-on-dark without touching any child rule.
 */
.site-footer {

	--ink-2: #ffffff;

	--line-dark: rgba(255, 255, 255, 0.14);
	--line-dark-strong: rgba(255, 255, 255, 0.3);
}

.site-footer__text {
	color: rgba(255, 255, 255, 0.62);
}

.site-footer__list a {
	color: rgba(255, 255, 255, 0.8);
}

.site-footer__title,
.site-footer__contact-label {
	color: rgba(255, 255, 255, 0.46);
}

.site-footer__bottom {
	border-top-color: rgba(255, 255, 255, 0.14);
	color: rgba(255, 255, 255, 0.5);
}

/* 44 — Development roadmap -------------------------------------------------- */

.roadmap {
	position: relative;
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	margin-top: clamp(2.5rem, 4vw, 3.5rem);
}

.roadmap::before {
	content: "";
	position: absolute;
	top: 5px;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient(
		90deg,
		var(--line) 0%,
		var(--line) 58%,
		rgba(30, 104, 252, 0.45) 100%
	);
}

.roadmap__item {
	position: relative;
	padding: 2.1rem clamp(0.75rem, 1.6vw, 1.5rem) 0 0;
}

.roadmap__dot {
	position: absolute;
	top: 0;
	left: 0;
	width: 11px;
	height: 11px;
	border: 1.5px solid var(--brand-strong);
	border-radius: 50%;
	background: var(--paper-2);
}

.roadmap__item--now .roadmap__dot {
	background: var(--brand-strong);
	box-shadow: 0 0 0 5px rgba(30, 104, 252, 0.16);
}

.roadmap__year {
	display: block;
	font-size: var(--fs-spec);
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--brand-strong);
}

.roadmap__title {
	display: block;
	margin-top: 0.3rem;
	font-size: var(--fs-body);
	font-weight: 600;
	line-height: 1.35;
	color: var(--brand-strong);
}

.roadmap__text {
	display: block;
	margin-top: 0.55rem;
	font-size: var(--fs-small);
	line-height: var(--lh-note);
	color: var(--text-muted);
}

@media (max-width: 768px) {
	.roadmap {
		grid-template-columns: minmax(0, 1fr);
		margin-top: 2.25rem;
	}

	.roadmap::before {
		top: 0;
		bottom: 1.5rem;
		left: 5px;
		right: auto;
		width: 1px;
		height: auto;
		background: linear-gradient(
			180deg,
			var(--line) 0%,
			rgba(30, 104, 252, 0.45) 100%
		);
	}

	.roadmap__item {
		padding: 0 0 1.85rem 1.85rem;
	}

	.roadmap__dot {
		top: 4px;
	}
}

/* 45 — Development footprint ------------------------------------------------ */

.footprint {
	margin-top: clamp(2.25rem, 4vw, 3.25rem);
}

.footprint__frame {
	padding: clamp(0.75rem, 2vw, 2rem);
	border: 1px solid var(--line);
	background: linear-gradient(180deg, #f7faff 0%, #ffffff 100%);
}

.footprint__canvas {
	position: relative;
}

.footprint__geo {
	display: block;
	width: 100%;
	height: auto;
}

.footprint__geo path {
	fill: #d9e4f4;
}

.footprint__point {
	position: absolute;
	width: 0;
	height: 0;
}

.footprint__dot {
	position: absolute;
	left: 0;
	top: 0;
	width: 12px;
	height: 12px;
	margin: -6px 0 0 -6px;
	border: 2px solid currentColor;
	border-radius: 50%;
	background: #ffffff;
	box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.75);
}

.footprint__dot--rd {
	color: var(--brand-strong);
}

.footprint__dot--mfg {
	color: #223546;
}

.footprint__dot--wh {
	color: var(--brand-light);
}

.footprint__label {
	position: absolute;
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	padding: 0.4rem 0.7rem;
	border: 1px solid var(--line);
	border-radius: 10px;
	background: #ffffff;
	box-shadow: 0 6px 18px rgba(31, 45, 61, 0.09);
	white-space: nowrap;
}

.footprint__point--right .footprint__label {
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
}

.footprint__point--left .footprint__label {
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
}

.footprint__point--top .footprint__label {
	left: 0;
	bottom: 14px;
	transform: translateX(-50%);
}

.footprint__point--top-left .footprint__label {
	right: 12px;
	bottom: 12px;
}

.footprint__point--bottom-right .footprint__label {
	left: 12px;
	top: 12px;
}

.footprint__place {
	font-size: var(--fs-small);
	font-weight: 600;
	color: var(--ink);
}

.footprint__role {
	font-size: var(--fs-label);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.footprint__legend {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 1.5rem;
	padding-top: 1.35rem;
	border-top: 1px solid var(--line);
	font-size: var(--fs-small);
	line-height: var(--lh-note);
	color: var(--text-muted);
}

.footprint__legend li {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

.footprint__key {
	flex: none;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: currentColor;
}

.footprint__key--rd {
	color: var(--brand-strong);
}

.footprint__key--mfg {
	color: #223546;
}

.footprint__key--wh {
	color: var(--brand-light);
}

/* 46 — Inner page first screens --------------------------------------------- */

.page-hero--media,
.tech-hero--media {
	position: relative;
	overflow: hidden;
}

.hero-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.hero-bg img,
.hero-bg .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Product artwork uses the same visible first-screen frame as the other inner
   pages. A 14:3 source (for example 2800 x 600) fills this desktop frame with
   virtually no crop. These selectors also cover Elementor background images. */
.tech-hero--index .hero-bg {
	background-color: #063190;
	background-position: center center !important;
	background-repeat: no-repeat !important;
	background-size: cover !important;
}

.tech-hero--index .hero-bg img {
	object-fit: cover !important;
	object-position: center center !important;
}

.tech-hero--index .hero-bg .ph {
	background-color: #063190;
	background-position: center center !important;
	background-repeat: no-repeat !important;
	background-size: cover !important;
}

.tech-hero--index > .container {
	position: relative;
	z-index: 2;
}

.hero-bg__scrim {
	position: absolute;
	inset: 0;
	z-index: 1;

}

.page-hero--media > .container,
.tech-hero--media > .container {
	position: relative;
	z-index: 2;
}

/* The picture now reads through the lighter scrim, so the copy carries a soft
   white glow instead of a heavy white wash over the whole frame. */
.page-hero--media .page-hero__title,
.page-hero--media .page-hero__text,
.page-hero--media .eyebrow,
.page-hero--media .breadcrumbs__list,
.tech-hero--media .tech-hero__title,
.tech-hero--media .tech-hero__text,
.tech-hero--media .tech-hero__chip {
	text-shadow: 0 1px 16px rgba(255, 255, 255, 0.92), 0 1px 3px rgba(255, 255, 255, 0.75);
}

/* 47 — Section background photographs --------------------------------------- */

.section--band {
	position: relative;
	overflow: hidden;
}

.section-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.section-bg__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.section-bg__scrim {
	position: absolute;
	inset: 0;

}

.section--band > .container {
	position: relative;
	z-index: 1;
}

/* 48 — Map hover photographs ------------------------------------------------ */

.footprint__point {
	z-index: 1;
	outline: none;
}

.footprint__point:hover,
.footprint__point:focus-visible {
	z-index: 10;
}

.footprint__photo {
	position: absolute;
	display: block;
	width: clamp(124px, 14vw, 188px);
	aspect-ratio: 4 / 3;
	padding: 4px;
	border: 1px solid var(--line);
	border-radius: 10px;
	background: #ffffff;
	box-shadow: 0 18px 36px rgba(31, 45, 61, 0.2);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.22s var(--ease), transform 0.22s var(--ease),
		visibility 0.22s var(--ease);
	pointer-events: none;
}

.footprint__photo img,
.footprint__photo .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 7px;
}

.footprint__point--photo-above .footprint__photo {
	left: 0;
	bottom: 22px;
	transform: translateX(-50%) translateY(8px);
}

.footprint__point--photo-below .footprint__photo {
	left: 0;
	top: 22px;
	transform: translateX(-50%) translateY(-8px);
}

.footprint__point:hover .footprint__photo,
.footprint__point:focus-within .footprint__photo {
	opacity: 1;
	visibility: visible;
}

.footprint__point--photo-above:hover .footprint__photo,
.footprint__point--photo-above:focus-within .footprint__photo {
	transform: translateX(-50%) translateY(0);
}

.footprint__point--photo-below:hover .footprint__photo,
.footprint__point--photo-below:focus-within .footprint__photo {
	transform: translateX(-50%) translateY(0);
}

@media (hover: none) {
	.footprint__photo {
		display: none;
	}
}

/* Research credentials sit directly under the map. */
.footprint + .bullet-groups {
	margin-top: clamp(2rem, 3.5vw, 3rem);
}

/* 48b — Tinted bands and the About introduction ----------------------------- */

.about-intro__aside {
	display: flex;
	flex-direction: column;
	gap: clamp(1.75rem, 3vw, 2.75rem);
}

.about-intro__media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 1px solid var(--line);
	background: var(--paper-2);
}

.about-intro__media img,
.about-intro__media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 49 — Clipboard toast ------------------------------------------------------ */

.copy-toast {
	position: fixed;
	left: 50%;
	bottom: 30px;
	z-index: 210;
	display: flex;
	align-items: center;
	gap: 0.9rem;
	max-width: calc(100vw - 2rem);
	padding: 0.85rem 1.15rem;
	border-radius: 12px;
	background: #223546;
	color: rgba(255, 255, 255, 0.92);
	font-size: var(--fs-small);
	line-height: 1.4;
	box-shadow: 0 18px 40px rgba(31, 45, 61, 0.3);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, 14px);
	transition: opacity 0.22s var(--ease), transform 0.22s var(--ease),
		visibility 0.22s var(--ease);
	pointer-events: none;
}

.copy-toast.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
	pointer-events: auto;
}

.copy-toast__text {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.copy-toast__link {
	flex: none;
	color: var(--accent-bright);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* 50 — Two row header ------------------------------------------------------- */

/*
 * Row one carries the brand, search, social profiles and the quote button;
 * row two carries the navigation. Because the logo now sits in the top row
 * that row no longer collapses on scroll, so --header-h describes the whole
 * fixed header and --utility-h the brand row inside it.
 */
.site-header__utility,
.site-header.is-scrolled .site-header__utility,
body.is-inner-page .site-header__utility {
	display: block;
	height: var(--utility-h);
	opacity: 1;
	border-bottom: 0;
	overflow: visible;
}

.site-header__utility-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	height: var(--utility-h);
	font-size: inherit;
	letter-spacing: normal;
	line-height: normal;
	text-transform: none;
	color: var(--text);
}

.site-header__main {
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}

.site-header__inner {
	position: relative;
	justify-content: center;
	height: var(--bar-h);
	gap: 2rem;
}

.site-header .primary-nav {
	width: 100%;
	max-width: 1120px;
	margin-inline: auto;
	height: auto;
}

.site-header .primary-nav__list {
	justify-content: space-between;
	gap: clamp(0.75rem, 1.5vw, 1.5rem);
}

.site-header__actions {
	position: absolute;
	right: var(--gutter);
	top: 50%;
	transform: translateY(-50%);
	gap: 1.35rem;
}

.header-mail {
	font-size: var(--fs-small);
	color: var(--text-muted);
	white-space: nowrap;
	transition: color 0.25s var(--ease);
}

.header-mail:hover {
	color: var(--brand-strong);
}

/* Tool strip ---------------------------------------------------------------- */

.header-tools {
	display: flex;
	align-items: center;
	gap: 1.15rem;
}

.header-tools__divider {
	width: 1px;
	height: 26px;
	background: var(--line);
}

.header-tool {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--ink);
	cursor: pointer;
	transition: color 0.25s var(--ease);
}

.header-tool:hover {
	color: var(--brand-strong);
}

.header-social {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.header-social__link {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #063190;
	color: #ffffff;
	box-shadow: 0 4px 12px rgba(6, 49, 144, 0.16);
	transition: background-color 0.25s var(--ease), box-shadow 0.25s var(--ease), transform 0.25s var(--ease);
}

.header-social__link:hover {
	background: #2bb1ed;
	box-shadow: 0 7px 18px rgba(43, 177, 237, 0.24);
	transform: translateY(-2px);
}

/* Icons that are waiting for a link keep their place in the row. */
.header-social__link.is-unconfigured,
.footer-social__link.is-unconfigured {
	opacity: 1;
}

.header-social__link.is-unconfigured:hover,
.footer-social__link.is-unconfigured:hover {
	opacity: 1;
}

/* Search panel -------------------------------------------------------------- */

.site-search {
	position: absolute;
	top: 100%;
	inset-inline: 0;
	z-index: 5;
	background: var(--paper-2);
	border-bottom: 1px solid var(--line);
	box-shadow: 0 22px 44px rgba(31, 45, 61, 0.14);
}

.site-search[hidden] {
	display: none;
}

.site-search__inner {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	padding-block: clamp(1.25rem, 2.5vw, 2rem);
}

.site-search__form {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex: 1;
}

.site-search__field {
	flex: 1;
	padding: 0.9rem 1.1rem;
	border: 1px solid var(--line-strong);
	border-radius: 10px;
	background: var(--paper);
	color: var(--text);
	font-size: var(--fs-body);
}

.site-search__field:focus {
	border-color: var(--brand-strong);
	outline: none;
}

.site-search__submit {
	flex: none;
	padding: 0.95rem 1.6rem;
	border: 0;
	border-radius: 10px;
	background: var(--accent-bright);
	color: #ffffff;
	font-size: var(--fs-btn);
	font-weight: 600;
	cursor: pointer;
}

.site-search__close {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--line);
	border-radius: 50%;
	background: none;
	color: var(--ink);
	cursor: pointer;
}

.site-search__close:hover {
	border-color: var(--brand-strong);
	color: var(--brand-strong);
}

@media (max-width: 1180px) {
	:root {
		--utility-h: 64px;
		--header-h: 64px;
	}

	.site-header__main {
		display: none;
	}

	.header-tools {
		gap: 0.5rem;
	}

	.header-tools__divider,
	.header-social,
	.header-tools__quote {
		display: none;
	}

	.site-header .brand__logo,
	.site-header .custom-logo {
		height: 40px;
		width: auto;
	}

	.mobile-nav {
		padding-top: calc(var(--header-h) + 1.5rem);
	}

	.hero .ph__body {
		margin: calc(var(--header-h) + 3rem) clamp(1rem, 2.5vw, 2.5rem) 0;
	}
}

/* 51 — Homepage hero carousel ----------------------------------------------- */

.hero--carousel {
	align-items: stretch;
	aspect-ratio: 14 / 5;
	min-height: 0;
	margin-top: var(--header-h);
}

/* The carousel carries no copy, so the heavy white wash that used to sit
   behind the headline is gone. Only a light base remains under the controls. */

.hero__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 0.9s var(--ease);
}

.hero__slide.is-active {
	opacity: 1;
}

.hero__slide img,
.hero__slide .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* The carousel carries no copy, so the headline only exists for search
   engines and screen readers. */
.hero__headline {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
	color: transparent;
}

.hero__controls {
	position: absolute;
	z-index: 3;
	inset-inline: var(--gutter);
	bottom: clamp(1.75rem, 4.5vh, 3rem);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
}

.hero__dots {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.hero__dot {
	width: 9px;
	height: 9px;
	padding: 0;
	border: 0;
	border-radius: 999px;

	cursor: pointer;
	transition: width 0.3s var(--ease), background-color 0.3s var(--ease);
}

.hero__dot.is-active {
	width: 32px;

}

.hero__arrows {
	display: flex;
	gap: 0.75rem;
}

.hero__arrow {
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
	padding: 0;
	border: 1px dashed rgba(31, 45, 61, 0.4);
	border-radius: 50%;

	cursor: pointer;
	transition: border-color 0.25s var(--ease), background-color 0.25s var(--ease),
		color 0.25s var(--ease), transform 0.25s var(--ease);
}

.hero__arrow:hover {
	border-color: var(--brand-strong);
	background: #ffffff;
	color: var(--brand-strong);
	transform: translateY(-2px);
}

/* The scroll cue moves to the centre so it clears the dots and the arrows. */
.hero--carousel .hero__scroll {
	left: 50%;
	right: auto;
	bottom: clamp(1.75rem, 4.5vh, 3rem);
	transform: translateX(-50%);
	writing-mode: horizontal-tb;
	align-items: center;
}

.hero--carousel .hero__scroll-line {
	width: 1px;
	height: 36px;
}

@media (max-width: 768px) {
	.hero__controls {
		inset-inline: 1.25rem;
		bottom: 1.25rem;
	}

	.hero__arrow {
		width: 42px;
		height: 42px;
	}

	.hero--carousel .hero__scroll {
		display: none;
	}
}

/* A 14:5 frame would be a sliver on a phone, so the carousel keeps a taller
   crop there and the pictures cover the difference. */
@media (max-width: 900px) {
	.hero--carousel {
		aspect-ratio: 4 / 3;
		min-height: 320px;
	}
}

/* 52 — Application strip ----------------------------------------------------- */

/*
 * Seven operating environments as equal columns over one continuous sky-blue
 * wash. Each column is centred, carries its own hairline divider, and reveals
 * its caption and link on hover, tap or keyboard focus — the reference layout
 * rather than an expanding accordion.
 */

.app-strip {
	position: relative;
	display: flex;

	margin-top: clamp(2.75rem, 5vw, 4.5rem);
	overflow: hidden;

}

/* One continuous wash across the whole strip, not one per column. */
.app-strip::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;

	pointer-events: none;
}

.app-panel {
	position: relative;
	flex: 1 1 0;
	min-width: 0;
	transition: flex-grow 0.65s var(--ease);
}

.app-panel:hover,
.app-panel.is-active,
.app-panel:focus-within {
	flex-grow: 2.6;
}

/* Hairline divider between the columns, above the wash. */
.app-panel::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 1px;

	z-index: 4;
}

.app-panel:first-child::before {
	display: none;
}

.app-panel__media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.app-panel__media img,
.app-panel__media .ph {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.app-panel__scrim {
	position: absolute;
	inset: 0;
	z-index: 1;

	transition: background-color 0.35s var(--ease);
}

.app-panel:hover .app-panel__scrim,
.app-panel.is-active .app-panel__scrim {
	background: rgba(255, 255, 255, 0.14);
}

.app-panel__body {
	position: relative;
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.8rem;
	height: 100%;
	padding: clamp(1rem, 2vw, 1.75rem);
	text-align: center;
	color: #ffffff;
}

.app-panel__title {
	font-size: var(--fs-h4);

	line-height: 1.25;

}

.app-panel__title::after {
	content: "";
	display: block;
	width: 34px;
	height: 2px;
	margin: 0.8rem auto 0;

}

.app-panel__meta {
	max-width: 24ch;
	font-size: var(--fs-label);
	font-weight: 600;
	letter-spacing: var(--ls-label);
	line-height: 1.4;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.78);
	opacity: 0;
	transition: opacity 0.35s var(--ease);
}

.app-panel__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: var(--fs-small);
	font-weight: 600;
	color: #ffffff;
	opacity: 0;
	transition: opacity 0.35s var(--ease);
}

.app-panel:hover .app-panel__meta,
.app-panel:hover .app-panel__link,
.app-panel:focus-within .app-panel__meta,
.app-panel:focus-within .app-panel__link,
.app-panel.is-active .app-panel__meta,
.app-panel.is-active .app-panel__link {
	opacity: 1;
}

@media (max-width: 900px) {
	.app-strip {
		flex-direction: column;

	}

	.app-panel::before {
		top: 0;
		left: 0;
		right: 0;
		bottom: auto;
		width: auto;
		height: 1px;
	}

	.app-panel__meta,
	.app-panel__link {
		opacity: 1;
	}
}

/* 52c — Centred figures ------------------------------------------------------- */

/* The value, dash and label sit centred in their cell on every metric row. */
.stats__item,
.metric-row .metric,
.technology__metrics .metric,
.manufacturing__metrics .metric {
	align-items: center;
	text-align: center;
}

.stats__value::before,
.metric__value::before {
	margin-inline: auto;
}

.stats__label,
.metric-row .metric__label,
.technology__metrics .metric__label,
.manufacturing__metrics .metric__label {
	margin-inline: auto;
}

/* Centred cells need even padding at both ends of the row. */
.stats__item:first-child,
.stats__item:last-child {
	padding-inline: clamp(1rem, 2vw, 2.25rem);
}
/* 52b — About introduction video --------------------------------------------- */

.about-intro__media video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: #000000;
}
/* 51b — Footer social profiles ---------------------------------------------- */

.footer-social-block {
	margin-top: 2rem;
}

.footer-social-block__title {
	font-size: var(--fs-label);
	font-weight: 600;
	letter-spacing: var(--ls-label);
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.46);
}

.footer-social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-top: 0.9rem;
}

.footer-social__link {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #ffffff;
	color: #063190;
	transition: background-color 0.25s var(--ease), color 0.25s var(--ease),
		transform 0.25s var(--ease);
}

.footer-social__link:hover {

	transform: translateY(-2px);
}

@media (max-width: 768px) {
	.footprint__frame {
		padding: 0.6rem;
		overflow: hidden;
	}

	/* Phones get a cropped zoom on the marker cluster instead of a world map
	   drawn 85px high, where the pins would be unreadable. */
	.footprint__canvas {
		transform: scale(1.55);
		transform-origin: 68% 45%;
	}

	.footprint__label {
		display: none;
	}

	.footprint__legend {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.55rem;
	}
}

/* 53 — Homepage carousel: show the complete 2800 × 1000 artwork ------------ */

/*
 * The carousel image is rendered by .hero__slide rather than the older
 * .hero__media selector. Keep the desktop frame at the artwork's native 14:5
 * ratio and use contain as a final safeguard, so WordPress/browser sizing can
 * never crop the top, bottom, left or right edges of the uploaded image.
 * Phones retain the existing 4:3 cover treatment because a 14:5 banner would
 * otherwise become too shallow to use comfortably on a narrow screen.
 */
@media (min-width: 769px) {
	.hero.hero--carousel {
		display: block;
		width: 100%;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		aspect-ratio: 14 / 5 !important;
		padding: 0 !important;
		overflow: hidden;
	}

	.hero.hero--carousel .hero__media,
	.hero.hero--carousel .hero__slide {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		min-height: 0;
		background-position: 50% 50% !important;
		background-repeat: no-repeat !important;
		background-size: contain !important;
	}

	.hero.hero--carousel .hero__slide picture,
	.hero.hero--carousel .hero__media picture {
		display: block;
		width: 100%;
		height: 100%;
	}

	.hero.hero--carousel .hero__slide img,
	.hero.hero--carousel .hero__media img,
	.hero.hero--carousel picture img {
		display: block;
		width: 100% !important;
		height: 100% !important;
		max-width: none !important;
		object-fit: contain !important;
		object-position: 50% 50% !important;
	}
}

/* 54 — Colour application and clearer photography -------------------------- */

/*
 * Apply the palette tokens defined at the top of this file to components that
 * need stronger contrast and clearer photographic treatment.
 */
::selection {
	background: rgba(0, 108, 255, 0.2);
	color: var(--ink);
}

.section--paper {
	background: #ffffff;
}

.products,
.why,
.projects,
.news,
.certifications {
	background: var(--paper);
}

.section--tint {
	background: #e6f2ff;
}

.section--paper + .section--paper {
	border-top-color: var(--line);
}

.section-head__title,
.product__title,
.advantage__title,
.certifications__title,
.news__lead-title,
.news__item-title {
	color: var(--ink);
}

.section-head__text,
.product__text,
.advantage__text,
.certifications__text,
.news__excerpt {
	color: var(--text-muted);
}

.eyebrow,
.solution__need,
.advantage__index,
.technology__index {
	color: var(--brand-strong);
}

/* Header and primary actions ----------------------------------------------- */

.site-header {
	background: rgba(255, 255, 255, 0.98);
	border-bottom-color: rgba(6, 36, 70, 0.1);
	-webkit-backdrop-filter: saturate(180%) blur(10px);
	backdrop-filter: saturate(180%) blur(10px);
}

.site-header.is-scrolled,
body.is-inner-page .site-header {
	border-bottom-color: var(--line);
	box-shadow: 0 12px 32px rgba(4, 30, 61, 0.12);
}

.btn--brand {
	background: var(--brand);
	color: #ffffff;
	box-shadow: 0 10px 24px rgba(0, 108, 255, 0.24);
}

.btn--brand:hover {
	background: var(--brand-strong);
	box-shadow: 0 14px 30px rgba(0, 79, 199, 0.3);
}

.btn--accent {
	background: var(--accent-bright);
	color: #ffffff;
	box-shadow: 0 10px 24px rgba(255, 176, 0, 0.25);
}

.btn--accent:hover {
	background: #ffc12b;
	box-shadow: 0 14px 30px rgba(255, 176, 0, 0.32);
}

.btn--outline {
	border-color: rgba(0, 108, 255, 0.48);
	color: var(--brand-strong);
}

.btn--outline:hover {
	border-color: var(--brand);
	background: rgba(0, 108, 255, 0.07);
	color: var(--brand-strong);
}

/* Reintroduce decisive dark bands instead of an all-pale page -------------- */

.section--ink {
	background-color: var(--ink);
	background-image: radial-gradient(circle at 88% 15%, rgba(0, 108, 255, 0.22), transparent 34%);
	background-size: auto;
	color: #ffffff;
	--text: #ffffff;
	--text-muted: #b6c8d9;
	--on-dark: #ffffff;
	--on-dark-muted: rgba(255, 255, 255, 0.78);
	--on-dark-faint: rgba(255, 255, 255, 0.58);
	--line: rgba(255, 255, 255, 0.16);
	--line-strong: rgba(255, 255, 255, 0.34);
	--line-dark: rgba(255, 255, 255, 0.18);
	--line-dark-strong: rgba(255, 255, 255, 0.38);
	--accent: #21d4f4;
}

.section--ink .section-head__title,
.section--ink .solution__title,
.section--ink .technology__label,
.section--ink .metric__value {
	color: #ffffff;
}

.section--ink .section-head__text,
.section--ink .solution__text,
.section--ink .metric__label {
	color: rgba(255, 255, 255, 0.76);
}

.section--ink .eyebrow,
.section--ink .solution__need,
.section--ink .technology__index {
	color: #35dcf6;
}

/* Non-home heroes use a deep-blue copy mask that clears before the artwork. */

.hero:not(.hero--carousel) {
	background: linear-gradient(145deg, #063190 0%, #2bb1ed 100%);
}

.hero:not(.hero--carousel) .hero__scrim {
	background: linear-gradient(90deg, rgba(6, 49, 144, 0.76) 0%, rgba(6, 49, 144, 0.7) 32%, rgba(6, 49, 144, 0.42) 46%, rgba(6, 49, 144, 0) 58%, rgba(6, 49, 144, 0) 100%);
}

.hero:not(.hero--carousel) .hero__content {
	border-color: rgba(255, 255, 255, 0.38);
	background: rgba(6, 49, 144, 0.72);
	color: #ffffff;
	-webkit-backdrop-filter: blur(10px) saturate(125%);
	backdrop-filter: blur(10px) saturate(125%);
	box-shadow: 0 30px 70px rgba(5, 83, 145, 0.24);
}

.hero:not(.hero--carousel) .hero__title,
.hero:not(.hero--carousel) .hero__text,
.hero:not(.hero--carousel) .hero__meta-value {
	color: #ffffff;
	text-shadow: none;
}

.hero:not(.hero--carousel) .hero__text,
.hero:not(.hero--carousel) .hero__meta-key {
	color: rgba(255, 255, 255, 0.76);
	text-shadow: none;
}

.hero:not(.hero--carousel) .eyebrow {
	border-color: rgba(255, 255, 255, 0.7);
	background: rgba(255, 255, 255, 0.86);
	color: #063190;
	text-shadow: none;
}

.hero:not(.hero--carousel) .eyebrow__index,
.hero:not(.hero--carousel) .eyebrow__text {
	color: #063190;
}

.hero:not(.hero--carousel) .hero__meta {
	border-top-color: rgba(255, 255, 255, 0.22);
}

.hero--carousel .hero__scrim {
	background: linear-gradient(180deg, rgba(6, 49, 144, 0) 0%, rgba(6, 49, 144, 0) 66%, rgba(6, 49, 144, 0.22) 100%);
}

.hero__arrow {
	border-color: rgba(6, 36, 70, 0.34);
	background: rgba(255, 255, 255, 0.92);
	color: var(--ink);
	box-shadow: 0 8px 22px rgba(4, 30, 61, 0.14);
}

.hero__dot {
	background: rgba(255, 255, 255, 0.72);
	box-shadow: 0 0 0 1px rgba(6, 36, 70, 0.14);
}

.hero__dot.is-active {
	background: var(--brand);
}

/* Clearer content photography ---------------------------------------------- */

.product__media img,
.solution__media img,
.technology__media img,
.application__media img,
.manufacturing__media img,
.news__lead-media img,
.project__media img,
.about-intro__media img,
.hero-bg img,
.section-bg__image {
	filter: saturate(1.1) contrast(1.07);
}

.product__media,
.solution__media,
.technology__media,
.news__lead-media,
.product-media__main {
	border: 1px solid rgba(6, 36, 70, 0.12);
	box-shadow: 0 14px 34px rgba(4, 30, 61, 0.09);
}

.tags li {
	border-color: rgba(6, 36, 70, 0.2);
	background: rgba(255, 255, 255, 0.74);
	color: #38536d;
}

/* Application cards: dark lower gradient, white copy, visible photographs -- */

.application__scrim,
.env-card__scrim {
	background: linear-gradient(180deg, rgba(4, 38, 111, 0.02) 0%, rgba(4, 38, 111, 0.24) 48%, rgba(4, 38, 111, 0.86) 100%);
}

.application__body,
.application__title,
.env-card__title {
	color: #ffffff;
}

.application__meta,
.env-card__meta {
	color: rgba(255, 255, 255, 0.76);
}

/* Taller and clearer seven-panel application strip ------------------------- */

.app-strip {
	height: clamp(420px, 38vw, 560px);
	background: var(--ink);
	box-shadow: 0 26px 64px rgba(4, 30, 61, 0.2);
}

.app-strip::after {
	background: linear-gradient(
		90deg,
		rgba(0, 185, 217, 0.28) 0%,
		rgba(0, 108, 255, 0.28) 50%,
		rgba(0, 63, 183, 0.38) 100%
	);
}

.app-panel__media img {
	filter: saturate(1.2) contrast(1.13) brightness(0.96);
}

.app-panel__scrim {
	background: linear-gradient(180deg, rgba(4, 38, 111, 0.02) 0%, rgba(4, 38, 111, 0.1) 45%, rgba(4, 38, 111, 0.46) 100%);
}

.app-panel:hover .app-panel__scrim,
.app-panel.is-active .app-panel__scrim,
.app-panel:focus-within .app-panel__scrim {
	background: linear-gradient(180deg, rgba(4, 38, 111, 0) 0%, rgba(4, 38, 111, 0.05) 48%, rgba(4, 38, 111, 0.34) 100%);
}

.app-panel::before {
	background: rgba(255, 255, 255, 0.34);
}

.app-panel__title {
	font-weight: 700;
	color: #ffffff;
	text-shadow: 0 2px 16px rgba(4, 28, 82, 0.58);
}

.app-panel__title::after {
	background: #35dcf6;
	box-shadow: 0 0 16px rgba(53, 220, 246, 0.55);
}

.app-panel__meta,
.app-panel__link {
	color: rgba(255, 255, 255, 0.9);
	text-shadow: 0 2px 12px rgba(4, 28, 82, 0.54);
}

/* Image-led inner page heroes ---------------------------------------------- */

.hero-bg__scrim {
	background: linear-gradient(90deg, rgba(6, 49, 144, 0.76) 0%, rgba(6, 49, 144, 0.7) 32%, rgba(6, 49, 144, 0.42) 46%, rgba(6, 49, 144, 0) 58%, rgba(6, 49, 144, 0) 100%);
}

.page-hero--media .page-hero__title,
.page-hero--media .page-hero__text,
.page-hero--media .breadcrumbs__list,
.tech-hero--media .breadcrumbs__list,
.tech-hero--index .breadcrumbs__list,
.tech-hero--media .tech-hero__title,
.tech-hero--media .tech-hero__text {
	color: #ffffff;
	text-shadow: 0 2px 16px rgba(4, 72, 126, 0.34);
}

.page-hero--media .eyebrow,
.tech-hero--media .eyebrow,
.tech-hero--media .tech-hero__chip {
	border-color: rgba(255, 255, 255, 0.74);
	background: rgba(255, 255, 255, 0.86);
	color: #063190;
	text-shadow: none;
	box-shadow: 0 10px 28px rgba(5, 83, 145, 0.12);
}

.page-hero--media .eyebrow__index,
.page-hero--media .eyebrow__text,
.tech-hero--media .eyebrow__index,
.tech-hero--media .eyebrow__text {
	color: #063190;
}

.page-hero--media .breadcrumbs__list a,
.tech-hero--media .breadcrumbs__list a,
.tech-hero--index .breadcrumbs__list a,
.page-hero--media .breadcrumbs__list li + li::before,
.tech-hero--media .breadcrumbs__list li + li::before,
.tech-hero--index .breadcrumbs__list li + li::before {
	color: #ffffff;
}

.section-bg__scrim {
	background: linear-gradient(180deg, rgba(244, 249, 255, 0.82) 0%, rgba(244, 249, 255, 0.7) 48%, rgba(244, 249, 255, 0.86) 100%);
}

.app-hero {
	background: #2bb1ed;
}

.app-hero__scrim {
	background: linear-gradient(90deg, rgba(6, 49, 144, 0.76) 0%, rgba(6, 49, 144, 0.7) 32%, rgba(6, 49, 144, 0.42) 46%, rgba(6, 49, 144, 0) 58%, rgba(6, 49, 144, 0) 100%);
}

.app-hero__title {
	color: #ffffff;
}

.app-hero__text {
	color: rgba(255, 255, 255, 0.78);
}

/* Manufacturing photo and final CTA become the visual anchors -------------- */

.manufacturing {

	color: #ffffff;
	--text: #ffffff;
	--text-muted: rgba(255, 255, 255, 0.76);
	--on-dark: #ffffff;
	--on-dark-muted: rgba(255, 255, 255, 0.76);
	--line: rgba(255, 255, 255, 0.18);
	--line-dark: rgba(255, 255, 255, 0.18);
	--accent: #35dcf6;
}

.manufacturing .section-head__title,
.manufacturing .section-head__text,
.manufacturing__item,
.manufacturing .metric__value {
	color: #ffffff;
}

.manufacturing__caption,
.manufacturing .metric__label {
	color: rgba(255, 255, 255, 0.74);
}

.manufacturing__item,
.manufacturing__metrics {
	border-color: rgba(255, 255, 255, 0.18);
}

/* Darker footer closes the page cleanly ------------------------------------ */

.site-footer {
	background: #04266f;
	color: rgba(255, 255, 255, 0.76);
	border-top: 3px solid var(--brand);
	--text: #ffffff;
	--text-muted: rgba(255, 255, 255, 0.68);
	--ink: #ffffff;
	--line: rgba(255, 255, 255, 0.16);
	--line-strong: rgba(255, 255, 255, 0.32);
}

.site-footer__wordmark {
	color: #ffffff;
}

.site-footer__text,
.site-footer__list a {
	color: rgba(255, 255, 255, 0.76);
}

.site-footer__title,
.site-footer__contact-label,
.site-footer__bottom {
	color: rgba(255, 255, 255, 0.54);
}

.site-footer__list a:hover,
.site-footer__meta a:hover {
	color: #35dcf6;
}

.footer-social__link:hover {
	background: #35dcf6;
	color: var(--ink);
}

/* Stronger figures and separators ------------------------------------------ */

.stats__value,
.metric__value {
	color: var(--brand-strong);
}

.stats__item {
	border-color: var(--line);
}

.section--ink .metric__value,
.manufacturing .metric__value {
	color: #ffffff;
}

@media (max-width: 900px) {
	.app-strip {
		height: auto;
		box-shadow: none;
	}

	.app-panel {
		min-height: 260px;
	}
}

@media (max-width: 768px) {
	.hero:not(.hero--carousel) .hero__content {
		background: rgba(6, 49, 144, 0.78);
	}

	.hero-bg__scrim {
		background: linear-gradient(90deg, rgba(6, 49, 144, 0.8) 0%, rgba(6, 49, 144, 0.7) 68%, rgba(6, 49, 144, 0) 100%);
	}

	.section-bg__scrim {
		background: rgba(244, 249, 255, 0.82);
	}
}

/* 55 — Homepage colour rhythm: sky / white / navy / white ------------------ */

/*
 * Each full-width homepage band now changes value from the band before it.
 * #2BB1ED supplies the bright energy moments, #063190 anchors the technical
 * moments, and clean white bands give the photography and product cards room.
 */

/* 01 — Trust strip: a bright opening band after the photographic hero. */
.stats {
	background: linear-gradient(110deg, #063190 0%, #1268c8 48%, #2bb1ed 100%);
	border-bottom: 0;
	color: #ffffff;
}

.stats__item {
	border-left-color: rgba(255, 255, 255, 0.24);
}

.stats__value,
.stats__label {
	color: #ffffff;
}

.stats__value::before {
	background: rgba(255, 255, 255, 0.92);
}

/* 02 — Product range: white. */
.products {
	background: #ffffff;
}

/* 03 — Solutions: navy. */
.solutions {
	background-color: #063190;
	background-image: radial-gradient(circle at 88% 14%, rgba(43, 177, 237, 0.28), transparent 34%);
	background-size: auto;
	color: #ffffff;
	--text: #ffffff;
	--text-muted: rgba(255, 255, 255, 0.76);
	--on-dark: #ffffff;
	--on-dark-muted: rgba(255, 255, 255, 0.76);
	--line: rgba(255, 255, 255, 0.18);
	--line-dark: rgba(255, 255, 255, 0.18);
	--accent: #2bb1ed;
}

.solutions .section-head__title,
.solutions .solution__title {
	color: #ffffff;
}

.solutions .section-head__text,
.solutions .solution__text {
	color: rgba(255, 255, 255, 0.76);
}

.solutions .eyebrow,
.solutions .solution__need {
	color: #63cef7;
}

/* 04 — Applications: pale, with the photographs carrying the colour. */
.applications {
	background: #f6fbfe;
	color: var(--text);
}

.applications .section-head__title {
	color: #063190;
}

/* 05 — Why AllGrand: bright sky blue with navy copy. */
.why {
	background: linear-gradient(135deg, #2bb1ed 0%, #82d9f8 100%);
	color: #063190;
	--text: #063190;
	--text-muted: rgba(6, 49, 144, 0.82);
	--line: rgba(6, 49, 144, 0.24);
	--line-strong: rgba(6, 49, 144, 0.4);
	--accent: #063190;
}

.why .section-head__title,
.why .advantage__title,
.why .eyebrow,
.why .advantage__index {
	color: #063190;
}

.why .section-head__text,
.why .advantage__text {
	color: rgba(6, 49, 144, 0.82);
}

.why .advantages,
.why .advantage {
	border-color: rgba(6, 49, 144, 0.24);
}

.why .advantage::before {
	background: #063190;
}

/* 06 — Technology: white, breaking the previous dark/dark pairing. */
.technology {
	background: #ffffff;
	background-image: none;
	color: var(--text);
	--text: #0b2038;
	--text-muted: #48627b;
	--on-dark: #0b2038;
	--on-dark-muted: #48627b;
	--line: rgba(6, 49, 144, 0.16);
	--line-dark: rgba(6, 49, 144, 0.16);
	--accent: #2bb1ed;
}

.technology .section-head__title,
.technology .metric__value {
	color: #063190;
}

.technology .section-head__text,
.technology .metric__label {
	color: #48627b;
}

.technology .eyebrow,
.technology .technology__index {
	color: #2bb1ed;
}

.technology .technology__label {
	color: #0b2038;
}

.technology .technology__items,
.technology .technology__item {
	border-color: rgba(6, 49, 144, 0.16);
}

/* 07 — Manufacturing: navy, but with a clearer photograph and cyan lift. */
.manufacturing {
	background: #063190;
}

.manufacturing__scrim {
	background:
		linear-gradient(90deg, rgba(6, 49, 144, 0.8) 0%, rgba(6, 49, 144, 0.56) 56%, rgba(43, 177, 237, 0.18) 100%),
		linear-gradient(180deg, rgba(6, 49, 144, 0.04) 0%, rgba(6, 49, 144, 0.3) 100%);
}

.manufacturing__bullet {
	background-color: #2bb1ed;
}

.manufacturing .eyebrow {
	border-color: rgba(255, 255, 255, 0.26);
	background: rgba(6, 49, 144, 0.3);
	color: #63cef7;
}

/* 08 — Global network: white. */
.global {
	background: #ffffff;
	background-image: none;
	color: var(--text);
	--text: #0b2038;
	--text-muted: #48627b;
	--on-dark: #0b2038;
	--on-dark-muted: #48627b;
	--line: rgba(6, 49, 144, 0.16);
	--line-dark: rgba(6, 49, 144, 0.16);
	--accent: #2bb1ed;
}

.global .section-head__title,
.global .metric__value {
	color: #063190;
}

.global .section-head__text,
.global .metric__label,
.global__note {
	color: #48627b;
}

.global__map {
	border-color: rgba(6, 49, 144, 0.16);
	background: #e8f6fc;
}

/* 09 — Projects: sky blue. */
.projects {
	background: linear-gradient(135deg, #2bb1ed 0%, #82d9f8 100%);
	color: #063190;
	--text: #063190;
	--text-muted: rgba(6, 49, 144, 0.82);
	--line: rgba(6, 49, 144, 0.24);
	--accent: #063190;
}

.projects .section-head__title,
.projects .project__title,
.projects .project__index {
	color: #063190;
}

.projects .section-head__text,
.projects .project__meta-row dt,
.projects .project__meta-row dd {
	color: rgba(6, 49, 144, 0.82);
}

.projects .project__body,
.projects .project__meta-row {
	border-color: rgba(6, 49, 144, 0.24);
}

/* 10 — Certifications: white cards on white space. */
.certifications {
	background: #ffffff;
	border-top-color: rgba(6, 49, 144, 0.16);
}

.certifications__title {
	color: #063190;
}

.certifications__text {
	color: #48627b;
}

.certification {
	border: 1px solid rgba(6, 49, 144, 0.14);
	background: #ffffff;
	box-shadow: 0 12px 30px rgba(6, 49, 144, 0.08);
}

/* 11 — Resources: sky blue, so it does not merge into certifications. */
.news {
	background: linear-gradient(135deg, #2bb1ed 0%, #82d9f8 100%);
	color: #063190;
	--text: #063190;
	--text-muted: rgba(6, 49, 144, 0.82);
	--line: rgba(6, 49, 144, 0.24);
	--accent: #063190;
}

.news .section-head__title,
.news .news__lead-title,
.news .news__item-title {
	color: #063190;
}

.news .section-head__text,
.news .news__excerpt,
.news .news__meta {
	color: rgba(6, 49, 144, 0.82);
}

.news .news__list,
.news .news__item {
	border-color: rgba(6, 49, 144, 0.24);
}

/* 12 — CTA: pale again, followed by the navy footer. */
.cta {
	background:
		radial-gradient(circle at 84% 18%, rgba(43, 177, 237, 0.28), transparent 30%),
		linear-gradient(135deg, #ffffff 0%, #eaf8fe 100%);
	color: #063190;
	--text: #063190;
	--text-muted: rgba(6, 49, 144, 0.8);
	--line: rgba(6, 49, 144, 0.2);
	--line-strong: rgba(6, 49, 144, 0.4);
	--accent: #063190;
}

.cta::before {
	background-image: none;
}

.cta__glow {
	background: radial-gradient(circle, rgba(43, 177, 237, 0.3) 0%, rgba(43, 177, 237, 0) 66%);
}

.cta__title,
.cta__contact-row {
	color: #063190;
}

.cta .eyebrow {
	border-color: rgba(6, 49, 144, 0.2);
	background: rgba(255, 255, 255, 0.72);
	color: #063190;
}

.cta__text,
.cta__note,
.cta__contact-label {
	color: rgba(6, 49, 144, 0.8);
}

.cta__contact,
.cta__contact-row {
	border-color: rgba(6, 49, 144, 0.2);
}

.cta .btn--outline-light {
	border-color: rgba(6, 49, 144, 0.42);
	color: #063190;
}

.cta .btn--outline-light:hover {
	border-color: #063190;
	background: rgba(6, 49, 144, 0.07);
	color: #063190;
}

@media (prefers-reduced-motion: reduce) {
	.tech-hero::before {
		animation: none;
	}

	.eyebrow:hover,
	.product:hover .product__media,
	.solution:hover .solution__media,
	.application:hover,
	.advantage:hover,
	.project:hover .project__media,
	.family-card:hover .family-card__media,
	.certification:hover,
	.contact-chip:hover,
	.btn:hover {
		transform: none;
	}
}
