:root {
	--color-red: #c61f28;
	--color-red-bright: #ee303a;
	--color-red-dark: #86181c;
	--color-ink: #0c0e10;
	--color-ink-soft: #171a1e;
	--color-graphite: #25292e;
	--color-paper: #f0f1ed;
	--color-mist: #d8dbd7;
	--color-white: #ffffff;
	--color-line: rgba(12, 14, 16, 0.14);
	--color-line-light: rgba(255, 255, 255, 0.16);
	--container: 1240px;
	--container-wide: 1480px;
	--radius: 4px;
	--transition: 260ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

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

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--color-paper);
	color: var(--color-ink);
	font-family: Inter, "Segoe UI", Arial, sans-serif;
	font-size: 1rem;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

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

body.menu-open {
	overflow: hidden;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
}

button,
a {
	-webkit-tap-highlight-color: transparent;
}

:focus-visible {
	outline: 3px solid var(--color-red-bright);
	outline-offset: 4px;
}

h1,
h2,
h3,
p,
figure {
	margin-top: 0;
}

h1,
h2,
h3 {
	font-weight: 760;
	line-height: 0.98;
	letter-spacing: -0.055em;
}

h2 {
	font-size: clamp(2.7rem, 5.7vw, 6rem);
}

h2 em,
h1 em {
	color: var(--color-red);
	font-style: normal;
	font-weight: 760;
}

.container,
.container-wide {
	width: min(calc(100% - 48px), var(--container));
	margin-inline: auto;
}

.container-wide {
	width: min(calc(100% - 48px), var(--container-wide));
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus {
	top: 12px;
	left: 12px;
	z-index: 10000;
	width: auto;
	height: auto;
	padding: 12px 18px;
	clip: auto;
	background: var(--color-white);
	color: var(--color-ink);
	font-weight: 700;
}

.site-header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	width: 100%;
	border-bottom: 1px solid transparent;
	color: var(--color-white);
	transition: background-color var(--transition), border-color var(--transition), transform var(--transition);
}

.site-header::before {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(6, 7, 8, 0.74), transparent);
	content: "";
	pointer-events: none;
	transition: opacity var(--transition);
}

.site-header.is-scrolled {
	border-color: var(--color-line-light);
	background: rgba(12, 14, 16, 0.9);
	backdrop-filter: blur(18px);
}

.site-header.is-scrolled::before {
	opacity: 0;
}

.site-header__inner {
	display: flex;
	min-height: 92px;
	align-items: center;
	gap: clamp(22px, 3vw, 54px);
}

.site-branding {
	position: relative;
	z-index: 2;
	flex: 0 0 auto;
}

.custom-logo {
	width: auto;
	max-height: 58px;
}

.site-brand {
	display: inline-flex;
	align-items: center;
	gap: 13px;
	color: var(--color-white);
	text-decoration: none;
}

.site-brand--official {
	width: clamp(190px, 15vw, 228px);
	filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.24));
}

.site-brand__logo {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
	object-position: left center;
}

.site-brand__mark {
	position: relative;
	display: grid;
	width: 50px;
	height: 44px;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	border-left: 3px solid var(--color-red-bright);
	color: var(--color-white);
	font-size: 1rem;
	font-weight: 850;
	line-height: 1;
	transform: skewX(-8deg);
}

.site-brand__mark::after {
	position: absolute;
	right: 0;
	bottom: 1px;
	width: 72%;
	height: 3px;
	background: var(--color-red-bright);
	content: "";
}

.site-brand__mark span {
	transform: skewX(8deg);
}

.site-brand__copy {
	display: grid;
	line-height: 1.1;
}

.site-brand__copy strong {
	font-size: 0.93rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.site-brand__copy small {
	margin-top: 5px;
	color: rgba(255, 255, 255, 0.56);
	font-size: 0.59rem;
	font-weight: 650;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.primary-navigation {
	margin-left: auto;
}

.primary-menu,
.footer-menu {
	display: flex;
	align-items: center;
	gap: clamp(18px, 2.2vw, 34px);
	padding: 0;
	margin: 0;
	list-style: none;
}

.primary-menu > li {
	position: relative;
}

.primary-menu a {
	position: relative;
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.72rem;
	font-weight: 780;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
	transition: color var(--transition);
}

.primary-menu a::after {
	position: absolute;
	right: 0;
	bottom: -8px;
	left: 0;
	height: 2px;
	background: var(--color-red-bright);
	content: "";
	transform: scaleX(0);
	transform-origin: right;
	transition: transform var(--transition);
}

.primary-menu a:hover,
.primary-menu a:focus-visible {
	color: var(--color-white);
}

.primary-menu a:hover::after,
.primary-menu a:focus-visible::after {
	transform: scaleX(1);
	transform-origin: left;
}

.primary-menu .sub-menu {
	position: absolute;
	top: calc(100% + 24px);
	left: 50%;
	width: 330px;
	padding: 10px 0;
	margin: 0;
	border-top: 2px solid var(--color-red-bright);
	background: rgba(10, 12, 14, 0.98);
	box-shadow: 0 28px 70px rgba(0, 0, 0, 0.38);
	list-style: none;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, 12px);
	visibility: hidden;
	transition: opacity 350ms ease, transform 500ms cubic-bezier(.2,.8,.2,1), visibility 350ms ease;
}

.primary-menu .sub-menu::before {
	position: absolute;
	right: 0;
	bottom: 100%;
	left: 0;
	height: 26px;
	content: "";
}

.primary-menu > .menu-item-has-children:hover > .sub-menu,
.primary-menu > .menu-item-has-children:focus-within > .sub-menu {
	opacity: 1;
	pointer-events: auto;
	transform: translate(-50%, 0);
	visibility: visible;
}

.primary-menu .sub-menu li + li {
	border-top: 1px solid rgba(255, 255, 255, 0.09);
}

.primary-menu .sub-menu a {
	display: block;
	padding: 13px 20px;
	color: rgba(255, 255, 255, 0.68);
	font-size: 0.7rem;
	letter-spacing: 0.025em;
	text-transform: none;
}

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

.primary-menu .sub-menu a:hover,
.primary-menu .sub-menu a:focus-visible,
.primary-menu .sub-menu .current-menu-item > a {
	background: rgba(198, 31, 40, 0.13);
	color: var(--color-white);
}

.primary-menu .sub-menu .current-menu-item > a {
	box-shadow: inset 3px 0 0 var(--color-red-bright);
}

.header-contact {
	display: flex;
	min-height: 54px;
	align-items: center;
	gap: 12px;
	padding: 8px 18px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	background: rgba(12, 14, 16, 0.24);
	color: var(--color-white);
	text-decoration: none;
	transition: border-color var(--transition), background-color var(--transition);
}

.header-contact:hover {
	border-color: var(--color-red-bright);
	background: var(--color-red);
}

.header-contact svg {
	width: 21px;
	height: 21px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.header-contact__copy {
	display: grid;
	line-height: 1.05;
}

.header-contact__copy small {
	margin-bottom: 4px;
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.header-contact__copy strong {
	font-size: 0.85rem;
	letter-spacing: 0.04em;
}

.menu-toggle {
	position: relative;
	z-index: 2;
	display: none;
	width: 48px;
	height: 48px;
	place-items: center;
	padding: 0;
	border: 1px solid var(--color-line-light);
	background: rgba(12, 14, 16, 0.25);
	color: var(--color-white);
	cursor: pointer;
	margin-left: auto;
}

.menu-toggle__icon {
	display: grid;
	width: 22px;
	gap: 6px;
}

.menu-toggle__icon span {
	display: block;
	height: 2px;
	background: currentColor;
	transition: transform var(--transition);
}

.menu-toggle[aria-expanded="true"] .menu-toggle__icon span:first-child {
	transform: translateY(4px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] .menu-toggle__icon span:last-child {
	transform: translateY(-4px) rotate(-45deg);
}

.site-main {
	padding-top: 92px;
	overflow: clip;
}

.home .site-main {
	padding-top: 0;
}

.hero {
	position: relative;
	display: grid;
	min-height: 100svh;
	align-items: end;
	overflow: hidden;
	background: var(--color-ink);
	color: var(--color-white);
	isolation: isolate;
}

.hero__media,
.hero__scrim,
.hero__grid {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.hero__media {
	z-index: -3;
	object-fit: cover;
	object-position: center;
	transform: scale(1.03) translate3d(var(--hero-x, 0), var(--hero-y, 0), 0);
	transition: transform 800ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.hero__scrim {
	z-index: -2;
	background: linear-gradient(90deg, rgba(18, 6, 10, 0.97) 0%, rgba(28, 10, 15, 0.82) 38%, rgba(12, 22, 29, 0.2) 73%, rgba(8, 17, 23, 0.16) 100%), linear-gradient(0deg, rgba(11, 7, 10, 0.88), transparent 48%);
}

.hero__grid,
.process__grid {
	z-index: -1;
	background-image: linear-gradient(rgba(255, 255, 255, 0.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.055) 1px, transparent 1px);
	background-size: 88px 88px;
	mask-image: linear-gradient(to right, black, transparent 76%);
}

.hero__inner {
	position: relative;
	display: grid;
	min-height: 100svh;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: 60px;
	padding-top: 150px;
	padding-bottom: clamp(80px, 9vh, 120px);
}

.hero__content {
	max-width: 900px;
	min-width: 0;
}

.eyebrow {
	display: flex;
	align-items: center;
	gap: 13px;
	margin-bottom: 28px;
	color: rgba(255, 255, 255, 0.64);
	font-size: 0.68rem;
	font-weight: 820;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.eyebrow > span {
	display: inline-block;
	width: 42px;
	height: 2px;
	background: var(--color-red-bright);
}

.eyebrow--dark {
	color: rgba(12, 14, 16, 0.58);
}

.hero h1 {
	margin-bottom: 32px;
	font-size: clamp(3.8rem, 7.5vw, 8.3rem);
	text-transform: uppercase;
}

.hero h1 span,
.hero h1 em {
	display: block;
}

.hero h1 em {
	font-size: 0.52em;
	letter-spacing: -0.035em;
}

.hero__lead {
	max-width: 660px;
	margin-bottom: 38px;
	color: rgba(255, 255, 255, 0.68);
	font-size: clamp(1.02rem, 1.6vw, 1.28rem);
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 28px;
}

.button {
	display: inline-flex;
	min-height: 58px;
	align-items: center;
	justify-content: space-between;
	gap: 26px;
	padding: 12px 14px 12px 22px;
	border: 1px solid transparent;
	border-radius: var(--radius);
	font-size: 0.72rem;
	font-weight: 820;
	letter-spacing: 0.1em;
	text-decoration: none;
	text-transform: uppercase;
	transition: color var(--transition), background-color var(--transition), border-color var(--transition), transform var(--transition);
}

.button:hover {
	transform: translateY(-3px);
}

.button__arrow {
	display: grid;
	width: 34px;
	height: 34px;
	place-items: center;
	border: 1px solid currentColor;
	font-size: 1.05rem;
}

.button--signal {
	background: var(--color-red);
	color: var(--color-white);
}

.button--signal:hover {
	background: var(--color-red-bright);
}

.button--dark {
	background: var(--color-ink);
	color: var(--color-white);
}

.button--dark:hover {
	background: var(--color-red);
}

.text-link {
	display: inline-flex;
	align-items: center;
	gap: 13px;
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.71rem;
	font-weight: 780;
	letter-spacing: 0.1em;
	text-decoration: none;
	text-transform: uppercase;
}

.text-link span {
	color: var(--color-red-bright);
	font-size: 1.1rem;
}

.hero__telemetry {
	display: grid;
	min-width: 150px;
	gap: 1px;
	background: rgba(255, 255, 255, 0.17);
	box-shadow: 0 22px 70px rgba(0, 0, 0, 0.25);
	backdrop-filter: blur(16px);
}

.hero__telemetry > div {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	padding: 13px 16px;
	background: rgba(10, 12, 14, 0.62);
}

.hero__telemetry p {
	margin: 0;
	font-size: 0.65rem;
	font-weight: 750;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.hero__rail {
	position: absolute;
	right: 22px;
	bottom: 45px;
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 0.56rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	transform: rotate(90deg);
	transform-origin: right bottom;
}

.hero__rail i {
	position: relative;
	display: block;
	width: 90px;
	height: 1px;
	background: rgba(255, 255, 255, 0.28);
	overflow: hidden;
}

.hero__rail i::after {
	position: absolute;
	inset: 0;
	background: var(--color-red-bright);
	content: "";
	animation: rail-pulse 2.4s ease-in-out infinite;
}

@keyframes rail-pulse {
	0% { transform: translateX(-100%); }
	55%, 100% { transform: translateX(100%); }
}

.proof-strip {
	position: relative;
	z-index: 2;
	border-bottom: 1px solid var(--color-line);
	background: var(--color-white);
}

.proof-strip__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}

.proof-item {
	position: relative;
	min-height: 260px;
	padding: 34px clamp(24px, 3vw, 44px) 38px;
	border-left: 1px solid var(--color-line);
}

.proof-item:last-child {
	border-right: 1px solid var(--color-line);
}

.proof-item::after {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 3px;
	background: var(--color-red);
	content: "";
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--transition);
}

.proof-item:hover::after {
	transform: scaleX(1);
}

.proof-item__icon {
	width: 46px;
	height: 46px;
	margin: 8px 0 24px;
	color: var(--color-red);
}

.proof-item__icon svg {
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.6;
}

.proof-item h2 {
	margin-bottom: 13px;
	font-size: 1rem;
	letter-spacing: -0.02em;
	text-transform: uppercase;
}

.proof-item p {
	max-width: 250px;
	margin-bottom: 0;
	color: rgba(12, 14, 16, 0.58);
	font-size: 0.87rem;
}

.home-presence {
	position: relative;
	display: grid;
	min-height: clamp(650px, 76vw, 920px);
	align-items: end;
	overflow: hidden;
	background: var(--color-ink);
	color: var(--color-white);
	isolation: isolate;
}

.home-presence__media,
.home-presence__scrim,
.home-presence__grid {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.home-presence__media {
	z-index: -3;
	object-fit: cover;
	object-position: center;
	transition: transform 1.2s cubic-bezier(.2,.8,.2,1);
}

.home-presence__scrim {
	z-index: -2;
	background: linear-gradient(90deg, rgba(6,8,9,.92) 0%, rgba(6,8,9,.7) 30%, rgba(6,8,9,.17) 65%, rgba(6,8,9,.08) 100%), linear-gradient(0deg, rgba(6,8,9,.88) 0%, rgba(6,8,9,.12) 58%, transparent 100%);
}

.home-presence__grid {
	z-index: -1;
	background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
	background-size: 76px 76px;
	mask-image: linear-gradient(to right, #000, transparent 72%);
}

.home-presence:hover .home-presence__media { transform: scale(1.012); }

.home-presence__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: 60px;
	padding-top: 130px;
	padding-bottom: clamp(70px, 8vw, 120px);
}

.home-presence__copy { max-width: 920px; }

.home-presence__copy h2 {
	margin-bottom: 30px;
	font-size: clamp(3.4rem, 6.7vw, 7rem);
	line-height: .91;
}

.home-presence__copy > p:not(.eyebrow) {
	max-width: 650px;
	margin-bottom: 28px;
	color: rgba(255,255,255,.7);
	font-size: clamp(.96rem, 1.35vw, 1.16rem);
}

.home-presence__marker {
	margin: 0 0 4px;
	padding: 22px 0 4px 24px;
	border-left: 1px solid rgba(255,255,255,.32);
	color: rgba(255,255,255,.52);
	font-family: Consolas, monospace;
	font-size: .6rem;
	font-weight: 750;
	letter-spacing: .14em;
	line-height: 1.8;
}

.section {
	padding-block: clamp(100px, 10vw, 170px);
}

.section-intro,
.process__header {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.65fr);
	align-items: end;
	gap: 70px;
	margin-bottom: clamp(60px, 7vw, 105px);
}

.section-intro h2,
.process__header h2 {
	margin-bottom: 0;
}

.section-intro > p,
.process__header > p {
	margin-bottom: 8px;
	color: rgba(12, 14, 16, 0.58);
	font-size: 1.03rem;
}

.reasons-grid {
	display: grid;
	grid-template-columns: 1.25fr 0.75fr 0.75fr;
	grid-template-rows: repeat(2, minmax(270px, auto));
	gap: 12px;
}

.reason-card {
	position: relative;
	display: flex;
	min-width: 0;
	flex-direction: column;
	justify-content: flex-end;
	padding: clamp(28px, 3vw, 42px);
	border: 1px solid var(--color-line);
	background: rgba(255, 255, 255, 0.62);
	overflow: hidden;
	transition: background-color var(--transition), transform var(--transition);
}

.reason-card:hover {
	transform: translateY(-4px);
	background: var(--color-white);
}

.reason-card--lead {
	grid-row: 1 / 3;
	justify-content: space-between;
	background: var(--color-ink);
	color: var(--color-white);
}

.reason-card--lead:hover {
	background: var(--color-ink-soft);
}

.reason-card__visual {
	position: relative;
	min-height: 260px;
	overflow: hidden;
}

.reason-card__visual--map {
	border: 1px solid rgba(255, 255, 255, 0.1);
	background: #101316;
}

.reason-card__visual--map::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(16, 19, 22, 0.52), transparent 22%, transparent 78%, rgba(16, 19, 22, 0.48));
	content: "";
	pointer-events: none;
}

.reason-map {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 260px;
}

.reason-map__blocks {
	fill: rgba(255, 255, 255, 0.025);
	stroke: rgba(255, 255, 255, 0.055);
	stroke-width: 1;
}

.reason-map__streets,
.reason-map__routes,
.reason-map__river {
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.reason-map__streets {
	stroke: rgba(255, 255, 255, 0.1);
	stroke-width: 1.2;
}

.reason-map__routes {
	stroke: rgba(255, 255, 255, 0.19);
	stroke-width: 2;
}

.reason-map__river {
	stroke: rgba(255, 255, 255, 0.3);
	stroke-dasharray: 4 7;
	stroke-width: 2;
}

.reason-map__marker > path {
	fill: var(--color-red-bright);
	filter: drop-shadow(0 8px 18px rgba(198, 31, 40, 0.4));
}

.reason-map__marker > circle:not(.reason-map__pulse) {
	fill: var(--color-ink);
}

.reason-map__pulse {
	fill: none;
	stroke: var(--color-red-bright);
	stroke-width: 1.5;
	transform-box: fill-box;
	transform-origin: center;
	animation: map-pulse 2.4s ease-out infinite;
}

.reason-map__caption text:first-child {
	fill: var(--color-white);
	font-family: Inter, "Segoe UI", Arial, sans-serif;
	font-size: 25px;
	font-weight: 800;
	letter-spacing: 0.08em;
}

.reason-map__caption text:last-child {
	fill: rgba(255, 255, 255, 0.44);
	font-family: Consolas, "Courier New", monospace;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.1em;
}

@keyframes map-pulse {
	0% { opacity: 0.9; transform: scale(0.45); }
	75%, 100% { opacity: 0; transform: scale(1.5); }
}

.reason-card h3 {
	max-width: 380px;
	margin: 0 0 14px;
	font-size: clamp(1.65rem, 2.4vw, 2.6rem);
}

.reason-card p {
	max-width: 410px;
	margin-bottom: 0;
	color: rgba(12, 14, 16, 0.58);
}

.reason-card--lead p,
.reason-card--red p {
	color: rgba(255, 255, 255, 0.66);
}

.reason-card--red {
	background: var(--color-red);
	color: var(--color-white);
}

.reason-card--red:hover {
	background: var(--color-red-bright);
}

.reason-card__arrow {
	position: absolute;
	top: 30px;
	right: 32px;
	font-size: 3rem;
	font-weight: 200;
}

.reason-card__signal {
	position: absolute;
	top: 42px;
	right: 42px;
	width: 58px;
	height: 58px;
	border: 1px solid var(--color-line);
	border-radius: 50%;
}

.reason-card__signal::before,
.reason-card__signal::after {
	position: absolute;
	top: 50%;
	left: 50%;
	border: 1px solid var(--color-red);
	border-radius: 50%;
	content: "";
	transform: translate(-50%, -50%);
}

.reason-card__signal::before { width: 34px; height: 34px; }
.reason-card__signal::after { width: 9px; height: 9px; background: var(--color-red); }

.reason-card__contours {
	position: absolute;
	top: -35px;
	right: -35px;
	width: 180px;
	height: 180px;
	border: 1px solid rgba(198, 31, 40, 0.28);
	border-radius: 45% 55% 48% 52%;
	transform: rotate(18deg);
}

.reason-card__contours::before,
.reason-card__contours::after {
	position: absolute;
	inset: 22px;
	border: inherit;
	border-radius: inherit;
	content: "";
}

.reason-card__contours::after { inset: 46px; }

.process {
	position: relative;
	background: var(--color-ink);
	color: var(--color-white);
	overflow: hidden;
	isolation: isolate;
}

.process__grid {
	position: absolute;
	inset: 0;
	mask-image: linear-gradient(to bottom, black, transparent 80%);
}

.process__header {
	position: relative;
}

.process__header > p {
	color: rgba(255, 255, 255, 0.56);
}

.process-track {
	position: relative;
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 1px;
}

.process-track__line {
	position: absolute;
	top: 29px;
	right: 8.3%;
	left: 8.3%;
	height: 1px;
	background: rgba(255, 255, 255, 0.17);
}

.process-track__line span {
	display: block;
	width: var(--process-progress, 0%);
	height: 100%;
	background: var(--color-red-bright);
	box-shadow: 0 0 18px rgba(238, 48, 58, 0.65);
	transition: width 1.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.process-step {
	position: relative;
	min-width: 0;
	padding: 0 clamp(15px, 2vw, 28px) 20px;
	text-align: center;
}

.process-step__node {
	position: relative;
	z-index: 2;
	display: grid;
	width: 58px;
	height: 58px;
	place-items: center;
	margin: 0 auto 34px;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	background: var(--color-ink);
	color: var(--color-red-bright);
	font-size: 1.5rem;
	font-weight: 300;
	transition: background-color var(--transition), color var(--transition), transform var(--transition);
}

.process-step:hover .process-step__node {
	background: var(--color-red);
	color: var(--color-white);
	transform: rotate(45deg);
}

.process-step:hover .process-step__node--final {
	transform: scale(1.08);
}

.process-step h3 {
	min-height: 46px;
	margin-bottom: 12px;
	font-size: 1rem;
	letter-spacing: -0.02em;
	text-transform: uppercase;
}

.process-step p {
	margin-bottom: 0;
	color: rgba(255, 255, 255, 0.5);
	font-size: 0.83rem;
}

.technical-partner {
	position: relative;
	padding-block: clamp(72px, 7vw, 105px);
	border-top: 1px solid var(--color-line);
	border-bottom: 1px solid var(--color-line);
	background: #e7e5df;
}

.technical-partner::before {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(rgba(12, 14, 16, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(12, 14, 16, 0.035) 1px, transparent 1px);
	background-size: 72px 72px;
	content: "";
	pointer-events: none;
}

.technical-partner__inner {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
	align-items: center;
	gap: clamp(50px, 7vw, 105px);
}

.technical-partner__logo {
	display: block;
	padding: clamp(20px, 3vw, 38px);
	border: 1px solid rgba(12, 14, 16, 0.1);
	background: var(--color-white);
	box-shadow: 0 24px 60px rgba(12, 14, 16, 0.08);
	transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition);
}

.technical-partner__logo:hover {
	border-color: rgba(198, 31, 40, 0.4);
	box-shadow: 0 30px 75px rgba(12, 14, 16, 0.12);
	transform: translateY(-4px);
}

.technical-partner__logo img {
	width: 100%;
	height: auto;
}

.technical-partner__content h2 {
	max-width: 570px;
	margin-bottom: 26px;
	font-size: clamp(2.25rem, 3.6vw, 4.2rem);
}

.technical-partner__content > p:not(.eyebrow) {
	max-width: 560px;
	margin-bottom: 30px;
	color: rgba(12, 14, 16, 0.62);
}

.technical-partner__link {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--color-red);
	font-size: 0.74rem;
	font-weight: 820;
	letter-spacing: 0.09em;
	text-decoration: none;
	text-transform: uppercase;
}

.technical-partner__link span:last-child {
	color: var(--color-red);
	font-size: 1.05rem;
	transition: transform var(--transition);
}

.technical-partner__link:hover span:last-child {
	transform: translate(3px, -3px);
}

.territory {
	position: relative;
	min-height: 760px;
	display: grid;
	align-items: center;
	background: var(--color-ink);
	color: var(--color-white);
	isolation: isolate;
}

.territory__media,
.territory__overlay {
	position: absolute;
	inset: 0;
}

.territory__media {
	z-index: -2;
	background-image: url("../images/home-territorio-montagne-v1.webp");
	background-position: center 46%;
	background-size: cover;
}

.territory__overlay {
	z-index: -1;
	background: linear-gradient(90deg, rgba(8, 10, 11, 0.95) 0%, rgba(8, 10, 11, 0.73) 52%, rgba(8, 10, 11, 0.48) 100%), linear-gradient(0deg, rgba(8, 10, 11, 0.82), transparent 65%);
}

.territory__content {
	display: grid;
	grid-template-columns: minmax(300px, 0.8fr) minmax(540px, 1.2fr);
	align-items: end;
	gap: clamp(55px, 8vw, 130px);
	padding-block: 120px;
}

.territory__intro h2 {
	margin-bottom: 30px;
}

.territory__intro > p:last-child {
	max-width: 500px;
	margin-bottom: 0;
	color: rgba(255, 255, 255, 0.63);
}

.metrics {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	border-top: 1px solid var(--color-line-light);
	border-left: 1px solid var(--color-line-light);
}

.metric {
	min-height: 200px;
	padding: 30px;
	border-right: 1px solid var(--color-line-light);
	border-bottom: 1px solid var(--color-line-light);
	background: rgba(12, 14, 16, 0.34);
	backdrop-filter: blur(10px);
}

.metric strong {
	display: flex;
	align-items: flex-start;
	margin-bottom: 33px;
	font-size: clamp(3rem, 5vw, 5.2rem);
	line-height: 0.82;
	letter-spacing: -0.07em;
}

.metric sup {
	margin: 3px 0 0 4px;
	color: var(--color-red-bright);
	font-size: 0.32em;
	letter-spacing: 0;
}

.metric p {
	max-width: 150px;
	margin: 0;
	color: rgba(255, 255, 255, 0.58);
	font-size: 0.67rem;
	font-weight: 760;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.contact-cta {
	position: relative;
	padding-block: clamp(80px, 8vw, 125px);
	background: var(--color-red);
	color: var(--color-white);
	overflow: hidden;
}

.contact-cta__orbit {
	display: none;
	position: absolute;
	top: 50%;
	right: -8vw;
	width: min(58vw, 800px);
	aspect-ratio: 1;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 50%;
	transform: translateY(-50%);
}

.contact-cta__orbit::before,
.contact-cta__orbit::after {
	position: absolute;
	border: inherit;
	border-radius: inherit;
	content: "";
}

.contact-cta__orbit::before { inset: 14%; }
.contact-cta__orbit::after { inset: 32%; }

.contact-cta__inner {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(520px, 1.08fr);
	align-items: center;
	gap: clamp(55px, 7vw, 110px);
}

.contact-cta__copy {
	position: relative;
	z-index: 2;
}

.contact-cta .eyebrow {
	color: rgba(255, 255, 255, 0.66);
}

.contact-cta .eyebrow > span {
	background: var(--color-white);
}

.contact-cta h2 {
	margin-bottom: 28px;
	font-size: clamp(3.2rem, 5vw, 5.3rem);
}

.contact-cta h2 em {
	color: var(--color-white);
	-webkit-text-stroke: 1px rgba(255, 255, 255, 0.9);
	color: transparent;
}

.contact-cta__inner > div > p:last-child {
	max-width: 620px;
	margin-bottom: 0;
	color: rgba(255, 255, 255, 0.74);
	font-size: 1.06rem;
}

.contact-cta__visual {
	position: relative;
	min-height: clamp(430px, 31vw, 500px);
	margin: 0;
	background: var(--color-ink);
	box-shadow: 0 32px 90px rgba(83, 7, 12, 0.32);
}

.contact-cta__visual::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(8, 10, 11, 0.04) 42%, rgba(8, 10, 11, 0.76) 100%);
	content: "";
	pointer-events: none;
}

.contact-cta__visual > img {
	width: 100%;
	height: 100%;
	min-height: inherit;
	object-fit: cover;
}

.contact-cta__caption {
	position: absolute;
	top: 28px;
	right: 28px;
	z-index: 2;
	display: grid;
	max-width: 255px;
	gap: 7px;
	padding: 17px 19px;
	margin: 0;
	background: rgba(8, 10, 11, 0.78);
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.72rem;
	line-height: 1.45;
	backdrop-filter: blur(10px);
}

.contact-cta__caption span {
	color: var(--color-white);
	font-family: Consolas, monospace;
	font-size: 0.56rem;
	font-weight: 800;
	letter-spacing: 0.13em;
}

.contact-cta__call {
	position: absolute;
	bottom: 34px;
	left: -54px;
	z-index: 3;
	display: flex;
	width: min(410px, calc(100% - 36px));
	min-height: 128px;
	align-items: center;
	gap: 22px;
	padding: 24px 28px 24px 24px;
	border: 1px solid rgba(255, 255, 255, 0.72);
	background: var(--color-white);
	box-shadow: 0 28px 70px rgba(83, 7, 12, 0.25);
	color: var(--color-ink);
	text-decoration: none;
	transition: color var(--transition), background-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.contact-cta__call::before {
	position: absolute;
	top: -1px;
	bottom: -1px;
	left: -1px;
	width: 6px;
	background: var(--color-red-dark);
	content: "";
}

.contact-cta__call:hover {
	background: var(--color-ink);
	box-shadow: 0 34px 85px rgba(83, 7, 12, 0.35);
	color: var(--color-white);
	transform: translateY(-6px);
}

.contact-cta__icon {
	display: grid;
	width: 68px;
	height: 68px;
	flex: 0 0 auto;
	place-items: center;
	background: var(--color-red);
	color: var(--color-white);
}

.contact-cta__icon svg {
	width: 29px;
	height: 29px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.contact-cta__call > span:last-child {
	display: grid;
	line-height: 1.1;
}

.contact-cta__call small {
	margin-bottom: 9px;
	color: var(--color-red);
	font-size: 0.68rem;
	font-weight: 820;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	transition: color var(--transition);
}

.contact-cta__call strong {
	font-size: clamp(1.8rem, 2.5vw, 2.35rem);
	line-height: 0.95;
	letter-spacing: -0.045em;
}

.contact-cta__call:hover small {
	color: var(--color-red-bright);
}

.site-footer {
	padding: 80px 0 28px;
	background: #08090a;
	color: rgba(255, 255, 255, 0.64);
}

.site-footer__grid {
	display: grid;
	grid-template-columns: minmax(280px, 1.2fr) 0.5fr 0.72fr 0.9fr;
	gap: clamp(32px, 4.5vw, 76px);
	padding-bottom: 70px;
}

.site-footer__brand {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: 22px;
}

.site-footer__logo {
	display: block;
	width: clamp(210px, 19vw, 280px);
}

.site-footer__logo img {
	width: 100%;
	height: auto;
}

.site-footer__mark {
	display: grid;
	width: 62px;
	height: 62px;
	flex: 0 0 auto;
	place-items: center;
	border: 1px solid var(--color-red);
	color: var(--color-white);
	font-size: 1.1rem;
	font-weight: 850;
}

.site-footer__brand p {
	max-width: 420px;
	margin: 0;
	font-size: 0.88rem;
}

.site-footer__company {
	display: grid;
	width: 100%;
	gap: 5px;
}

.site-footer__company strong {
	color: var(--color-white);
	font-size: 0.8rem;
}

.site-footer__company p,
.site-footer__company address,
.site-footer__company a {
	margin: 0;
	color: rgba(255, 255, 255, 0.56);
	font-size: 0.72rem;
	font-weight: 400;
	font-style: normal;
	line-height: 1.55;
	text-decoration: none;
}

.site-footer__company a {
	transition: color 600ms ease;
}

.site-footer__company a:hover,
.site-footer__company a:focus-visible {
	color: var(--color-red-bright);
}

.footer-label {
	margin-bottom: 20px;
	color: rgba(255, 255, 255, 0.36);
	font-size: 0.61rem;
	font-weight: 800;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.footer-menu {
	align-items: flex-start;
	flex-direction: column;
	gap: 10px;
}

.footer-menu a,
.site-footer__contact a {
	color: var(--color-white);
	font-size: 0.9rem;
	font-weight: 700;
	text-decoration: none;
}

.footer-menu a {
	display: inline-flex;
	align-items: center;
	transition: color var(--transition), transform var(--transition);
}

.footer-menu a::before {
	display: block;
	width: 0;
	height: 1px;
	margin-right: 0;
	background: var(--color-red-bright);
	content: "";
	transition: margin-right var(--transition), width var(--transition);
}

.footer-menu a:hover,
.footer-menu a:focus-visible {
	color: var(--color-red-bright);
	transform: translateX(4px);
}

.footer-menu a:hover::before,
.footer-menu a:focus-visible::before {
	width: 18px;
	margin-right: 10px;
}

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

.site-footer__contact a {
	margin-bottom: 8px;
	font-size: 1.5rem;
}

.site-footer__contact .site-footer__phone {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	transition: color var(--transition);
}

.site-footer__phone svg {
	width: 24px;
	height: 24px;
	color: var(--color-red-bright);
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
	transition: transform var(--transition);
}

.site-footer__phone:hover,
.site-footer__phone:focus-visible {
	color: var(--color-red-bright);
}

.site-footer__phone:hover svg,
.site-footer__phone:focus-visible svg {
	transform: rotate(-8deg) scale(1.08);
}

.site-footer__contact span {
	font-size: 0.78rem;
}

.site-footer__contact .site-footer__email {
	display: flex;
	align-items: center;
	width: 100%;
	gap: 12px;
	margin: 24px 0 0;
	padding-top: 18px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	font-size: 0.82rem;
	overflow-wrap: anywhere;
}

.site-footer__email svg {
	width: 24px;
	height: 24px;
	flex: 0 0 auto;
	color: var(--color-red-bright);
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.6;
	transition: transform 600ms cubic-bezier(.2,.8,.2,1);
}

.site-footer__email > span {
	display: grid;
	gap: 5px;
}

.site-footer__email small {
	color: rgba(255, 255, 255, 0.36);
	font-size: 0.58rem;
	font-weight: 780;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.site-footer__email strong {
	color: var(--color-white);
	font-size: 0.82rem;
	transition: color 600ms ease;
}

.site-footer__email:hover strong,
.site-footer__email:focus-visible strong {
	color: var(--color-red-bright);
}

.site-footer__email:hover svg,
.site-footer__email:focus-visible svg {
	transform: translateX(4px) scale(1.06);
}

.site-footer__contact .site-footer__studio-link {
	display: grid;
	gap: 6px;
	width: 100%;
	margin-top: 25px;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.78rem;
	font-weight: 650;
	text-decoration: none;
}

.site-footer__studio-link small {
	color: rgba(255, 255, 255, 0.36);
	font-size: 0.58rem;
	font-weight: 780;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.site-footer__studio-link strong {
	color: var(--color-white);
	font-size: 0.82rem;
	letter-spacing: 0.01em;
	transition: color var(--transition);
}

.site-footer__studio-link:hover strong {
	color: var(--color-red-bright);
}

.site-footer__bottom {
	display: flex;
	justify-content: space-between;
	gap: 30px;
	padding-top: 26px;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.site-footer__bottom p {
	margin: 0;
	font-family: Consolas, monospace;
	font-size: 0.62rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

@media (max-width: 1100px) {
	.site-footer__grid {
		grid-template-columns: 1fr 1fr;
		grid-template-areas:
			"brand explore"
			"company contact";
		column-gap: clamp(45px, 8vw, 90px);
		row-gap: 64px;
	}

	.site-footer__brand {
		grid-area: brand;
	}

	.site-footer__explore {
		grid-area: explore;
	}

	.site-footer__company-column {
		grid-area: company;
	}

	.site-footer__contact {
		grid-area: contact;
	}
}

.content-area,
.error-404__inner {
	padding-block: clamp(70px, 10vw, 130px);
}

.posts-list {
	display: grid;
	gap: 22px;
}

.entry-card,
.page-entry,
.no-results {
	padding: clamp(28px, 5vw, 60px);
	border: 1px solid var(--color-line);
	background: var(--color-white);
}

.entry-title {
	font-size: clamp(2rem, 5vw, 4rem);
}

.entry-title a {
	text-decoration: none;
}

.entry-content > * {
	max-width: 760px;
}

.entry-content > .alignwide { max-width: 1100px; }
.entry-content > .alignfull { max-width: none; }

.error-404 {
	min-height: calc(100svh - 92px);
	background: var(--color-ink);
	color: var(--color-white);
}

.error-404 h1 {
	max-width: 900px;
	font-size: clamp(3rem, 8vw, 7rem);
}

.error-404 p:not(.eyebrow) {
	max-width: 620px;
	color: rgba(255, 255, 255, 0.65);
}

.reveal {
	opacity: 1;
	transform: none;
}

.js .reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 750ms ease, transform 750ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

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

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

	.menu-toggle {
		display: grid;
	}

	.no-js .menu-toggle {
		display: none;
	}

	.no-js .primary-navigation,
	.js .primary-navigation.is-open {
		display: block;
	}

	.primary-navigation {
		position: fixed;
		top: 0;
		right: 0;
		bottom: auto;
		left: 0;
		z-index: 1;
		width: 100vw;
		height: 100dvh;
		min-height: 100vh;
		overflow-y: auto;
		overscroll-behavior: contain;
		padding: 130px 24px 40px;
		background-color: #08090a;
		background-image: linear-gradient(145deg, rgba(198, 31, 40, 0.12), transparent 42%);
		color: var(--color-white);
	}

	body.menu-open .site-header,
	body.menu-open .site-header.is-scrolled {
		border-color: rgba(255, 255, 255, 0.12);
		background: #08090a;
		backdrop-filter: none;
	}

	body.menu-open .site-header::before {
		opacity: 0;
	}

	.primary-menu {
		width: min(100%, 720px);
		align-items: stretch;
		flex-direction: column;
		gap: 0;
		margin: 0 auto;
	}

	.primary-menu li {
		border-bottom: 1px solid var(--color-line-light);
	}

	.primary-menu .sub-menu {
		position: static;
		display: grid;
		width: 100%;
		max-width: 100%;
		padding: 0 0 16px 22px;
		border-top: 0;
		border-left: 2px solid rgba(238, 48, 58, 0.62);
		background: transparent;
		box-shadow: none;
		opacity: 1;
		pointer-events: auto;
		transform: none;
		visibility: visible;
	}

	.primary-menu > .menu-item-has-children:hover > .sub-menu,
	.primary-menu > .menu-item-has-children:focus-within > .sub-menu {
		transform: none;
	}

	.primary-menu .sub-menu::before {
		display: none;
	}

	.primary-menu .sub-menu li,
	.primary-menu .sub-menu li + li {
		border: 0;
	}

	.primary-menu .sub-menu a {
		padding: 9px 14px;
		color: rgba(255, 255, 255, 0.62);
		font-size: clamp(0.9rem, 2.4vw, 1.08rem);
		font-weight: 680;
		letter-spacing: 0;
	}

	.primary-menu .sub-menu a:hover,
	.primary-menu .sub-menu a:focus-visible,
	.primary-menu .sub-menu .current-menu-item > a {
		background: transparent;
		color: var(--color-white);
	}

	.primary-menu a {
		display: block;
		padding: 18px 0;
		color: rgba(255, 255, 255, 0.86);
		font-size: clamp(1.5rem, 5vw, 3rem);
		letter-spacing: -0.03em;
		text-transform: none;
	}

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

	.header-contact {
		margin-left: auto;
	}

	.process-track {
		grid-template-columns: repeat(3, 1fr);
		row-gap: 60px;
	}

	.process-track__line {
		display: none;
	}

	.territory__content {
		grid-template-columns: 0.75fr 1.25fr;
	}
}

@media (max-width: 1040px) {
	.technical-partner__inner {
		grid-template-columns: 1fr;
		gap: 45px;
	}

	.technical-partner__logo {
		max-width: 780px;
	}

	.technical-partner__content {
		max-width: 700px;
	}
}

@media (max-width: 900px) {
	.container,
	.container-wide {
		width: min(calc(100% - 30px), var(--container));
	}

	.site-header__inner {
		min-height: 78px;
	}

	.site-brand__copy small {
		display: none;
	}

	.header-contact {
		width: auto;
		height: 48px;
		min-height: 0;
		justify-content: center;
		padding: 0 16px;
	}

	.header-contact__copy {
		display: grid;
	}

	.header-contact__copy small {
		display: none;
	}

	.site-main {
		padding-top: 78px;
	}

	.home .site-main {
		padding-top: 0;
	}

	.hero__inner {
		grid-template-columns: 1fr;
		padding-top: 130px;
	}

	.hero__telemetry,
	.hero__rail {
		display: none;
	}

	.hero__scrim {
		background: linear-gradient(90deg, rgba(18, 6, 10, 0.95), rgba(14, 18, 24, 0.44)), linear-gradient(0deg, rgba(11, 7, 10, 0.88), transparent 60%);
	}

	.proof-strip__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.proof-item:nth-child(2) {
		border-right: 1px solid var(--color-line);
	}

	.home-presence { min-height: 760px; }
	.home-presence__inner { grid-template-columns: 1fr; gap: 36px; }
	.home-presence__copy { max-width: 780px; }
	.home-presence__marker { width: max-content; }

	.section-intro,
	.process__header,
	.contact-cta__inner {
		grid-template-columns: 1fr;
		align-items: start;
		gap: 44px;
	}

	.contact-cta__copy {
		max-width: 760px;
	}

	.contact-cta__visual {
		width: 100%;
		min-height: 520px;
	}

	.contact-cta__call {
		bottom: 24px;
		left: 24px;
	}

	.reasons-grid {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: auto;
	}

	.reason-card--lead {
		grid-column: 1 / 3;
		grid-row: auto;
	}

	.reason-card--lead .reason-card__body {
		padding-top: 40px;
	}

	.process-track {
		grid-template-columns: repeat(2, 1fr);
	}

	.territory__content {
		grid-template-columns: 1fr;
		align-items: start;
	}

}

@media (max-width: 600px) {
	.site-brand__mark {
		width: 42px;
		height: 38px;
	}

	.site-brand--official {
		width: 158px;
	}

	.site-brand__copy strong {
		max-width: 112px;
		font-size: 0.74rem;
	}

	.header-contact {
		display: none;
	}

	.hero h1 {
		font-size: clamp(2.7rem, 12vw, 4.6rem);
	}

	.hero__media {
		object-position: 63% center;
	}

	.hero__actions,
	.hero__actions .button {
		width: 100%;
	}

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

	.proof-strip__grid,
	.reasons-grid,
	.process-track,
	.metrics,
	.site-footer__grid {
		grid-template-columns: 1fr;
		grid-template-areas:
			"brand"
			"explore"
			"company"
			"contact";
	}

	.proof-item {
		min-height: 235px;
		border-right: 1px solid var(--color-line);
	}

	.home-presence { min-height: 720px; }
	.home-presence__media { object-position: 58% center; }
	.home-presence__scrim { background: linear-gradient(90deg,rgba(6,8,9,.8),rgba(6,8,9,.18)),linear-gradient(0deg,rgba(6,8,9,.94) 0%,rgba(6,8,9,.58) 48%,transparent 82%); }
	.home-presence__inner { gap: 28px; padding-top: 110px; padding-bottom: 55px; }
	.home-presence__copy h2 { font-size: clamp(3rem, 13vw, 4.5rem); }
	.home-presence__marker { display: none; }

	.reason-card--lead,
	.site-footer__brand,
	.site-footer__company-column {
		grid-column: auto;
	}

	.reason-card__visual {
		min-height: 210px;
	}

	.process-step {
		padding: 10px 20px 36px;
		border-bottom: 1px solid var(--color-line-light);
	}

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

	.metric {
		min-height: 165px;
		padding: 22px;
	}

	.metric strong {
		margin-bottom: 24px;
	}

	.contact-cta__call {
		min-width: 0;
		position: relative;
		bottom: auto;
		left: auto;
		width: 100%;
		margin-top: 14px;
	}

	.contact-cta__visual {
		min-height: 0;
		background: transparent;
		box-shadow: none;
	}

	.contact-cta__visual::after {
		display: none;
	}

	.contact-cta__visual > img {
		height: auto;
		min-height: 0;
		aspect-ratio: 16 / 9;
	}

	.contact-cta__caption {
		position: relative;
		top: auto;
		right: auto;
		left: auto;
		max-width: none;
	}

	.site-footer__grid {
		gap: 45px;
	}

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

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

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

	.js .reveal {
		opacity: 1;
		transform: none;
	}
}

/* Interior pages ---------------------------------------------------------- */
body:not(.home) .site-header {
	border-color: var(--color-line-light);
	background: rgba(12, 14, 16, 0.96);
	backdrop-filter: blur(18px);
}

body:not(.home) .site-header::before {
	display: none;
}

.primary-menu .current-menu-item > a,
.primary-menu .current-menu-ancestor > a,
.primary-menu .current_page_item > a,
.primary-menu .current-page-ancestor > a,
.primary-menu .current_page_ancestor > a {
	color: var(--color-white);
}

.primary-menu .current-menu-item > a::after,
.primary-menu .current-menu-ancestor > a::after,
.primary-menu .current_page_item > a::after,
.primary-menu .current-page-ancestor > a::after,
.primary-menu .current_page_ancestor > a::after {
	transform: scaleX(1);
}

@media (max-width: 1180px) {
	.primary-menu .current-menu-item > a,
	.primary-menu .current-menu-ancestor > a,
	.primary-menu .current_page_item > a,
	.primary-menu .current-page-ancestor > a,
	.primary-menu .current_page_ancestor > a,
	.primary-menu a[aria-current="page"] {
		color: var(--color-red-bright);
	}
}

.page-section {
	padding: clamp(90px, 11vw, 170px) 0;
}

.page-heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 0.42fr);
	align-items: end;
	margin-bottom: clamp(55px, 8vw, 110px);
}

.page-heading h2 {
	grid-column: 1 / 2;
	max-width: 920px;
	margin-bottom: 0;
}

.page-heading .eyebrow {
	grid-column: 1 / -1;
}

.page-heading--light,
.page-heading--light h2 {
	color: var(--color-white);
}

.inner-hero {
	position: relative;
	display: grid;
	min-height: min(850px, 88svh);
	align-items: end;
	background: var(--color-ink);
	color: var(--color-white);
	isolation: isolate;
}

.inner-hero__media,
.inner-hero__scrim,
.inner-hero__grid {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.inner-hero__media {
	z-index: -3;
	object-fit: cover;
	object-position: center;
}

.inner-hero__scrim {
	z-index: -2;
	background: linear-gradient(90deg, rgba(5, 7, 8, 0.94) 0%, rgba(5, 7, 8, 0.62) 48%, rgba(5, 7, 8, 0.2) 100%), linear-gradient(0deg, rgba(5, 7, 8, 0.84), transparent 58%);
}

.inner-hero--company .inner-hero__media {
	object-position: center;
}

.inner-hero--company .inner-hero__scrim {
	background: linear-gradient(90deg, rgba(5, 7, 8, 0.96) 0%, rgba(5, 7, 8, 0.72) 36%, rgba(5, 7, 8, 0.16) 62%, rgba(5, 7, 8, 0.08) 82%, rgba(5, 7, 8, 0.42) 100%), linear-gradient(0deg, rgba(5, 7, 8, 0.84), transparent 58%);
}

.inner-hero--company .inner-hero__copy h1 {
	max-width: 820px;
	font-size: clamp(3.8rem, 6.4vw, 7rem);
}

@media (max-width: 900px) {
	.inner-hero--company .inner-hero__media {
		object-position: 68% center;
	}
}

.inner-hero__grid,
.portfolio-hero__grid {
	z-index: -1;
	background-image: linear-gradient(rgba(255, 255, 255, 0.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.055) 1px, transparent 1px);
	background-size: 76px 76px;
	mask-image: linear-gradient(to right, black, transparent 86%);
}

.inner-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(250px, 0.36fr);
	align-items: end;
	gap: clamp(50px, 9vw, 150px);
	padding-top: 190px;
	padding-bottom: clamp(80px, 10vw, 150px);
}

.inner-hero__copy h1,
.portfolio-hero h1,
.workflow-hero h1,
.contact-hero h1 {
	max-width: 1100px;
	margin-bottom: 34px;
	font-size: clamp(4rem, 8vw, 8.4rem);
	line-height: 0.88;
}

.inner-hero__copy > p:last-child,
.inner-hero__lead,
.workflow-hero__lead,
.contact-hero__copy > p:last-child {
	max-width: 670px;
	margin-bottom: 0;
	color: rgba(255, 255, 255, 0.67);
	font-size: clamp(1rem, 1.45vw, 1.28rem);
}

.inner-hero__aside {
	padding: 28px 0 5px 30px;
	border-left: 1px solid rgba(255, 255, 255, 0.26);
}

.inner-hero__aside p {
	max-width: 280px;
	margin: 0;
	color: rgba(255, 255, 255, 0.68);
	font-size: 0.84rem;
	font-weight: 600;
	line-height: 1.55;
}

.inner-hero--dark {
	min-height: 760px;
	background: #0a0c0e;
}

.inner-hero__inner--wide {
	grid-template-columns: minmax(0, 1.3fr) minmax(290px, 0.55fr);
}

.inner-hero__code {
	position: absolute;
	right: 3vw;
	bottom: 25px;
	color: rgba(255, 255, 255, 0.18);
	font-family: Consolas, monospace;
	font-size: 0.65rem;
	letter-spacing: 0.16em;
}

.company-story {
	overflow: hidden;
	padding-bottom: 0;
	background: var(--color-white);
}

.company-story__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(330px, 0.72fr);
	align-items: start;
	gap: clamp(55px, 8vw, 130px);
}

.company-story__copy h2 {
	max-width: 850px;
	margin-bottom: clamp(48px, 6vw, 78px);
}

.company-story__timeline {
	padding: 0;
	margin: 0;
	border-top: 1px solid var(--color-line);
	list-style: none;
}

.company-story__timeline li {
	display: grid;
	grid-template-columns: minmax(135px, 0.34fr) minmax(0, 1fr);
	gap: clamp(20px, 3vw, 48px);
	padding: 30px 0;
	border-bottom: 1px solid var(--color-line);
}

.company-story__timeline span {
	color: var(--color-red);
	font-family: Consolas, monospace;
	font-size: 0.61rem;
	font-weight: 800;
	letter-spacing: 0.12em;
}

.company-story__timeline p {
	margin: 0;
	color: rgba(12, 14, 16, 0.69);
	font-size: clamp(0.96rem, 1.15vw, 1.08rem);
}

.company-story__media {
	position: sticky;
	top: 126px;
	display: grid;
	gap: 18px;
	isolation: isolate;
}

.company-story__figure {
	margin: 0;
	background: var(--color-paper);
}

.company-story__figure img {
	width: 100%;
	height: clamp(330px, 37vw, 510px);
	object-fit: cover;
}

.company-story__figure figcaption {
	position: relative;
	z-index: 5;
	padding: 16px 18px 18px;
	background: var(--color-paper);
	color: rgba(12, 14, 16, 0.59);
	font-size: 0.7rem;
	line-height: 1.45;
}

.company-story__lower {
	display: contents;
}

.company-story__owner {
	position: relative;
	z-index: 3;
	grid-column: 1;
	grid-row: 3;
	width: min(72%, 350px);
	margin: clamp(18px, 3vw, 38px) auto 0;
	pointer-events: none;
	filter: drop-shadow(-12px 18px 20px rgba(12, 14, 16, 0.16));
}

.company-story__owner img {
	display: block;
	width: 100%;
	height: auto;
}

.company-story__figure--award {
	position: relative;
	z-index: 2;
	grid-column: 1;
	grid-row: 2;
	width: 76%;
	margin-top: 0;
	margin-right: -34px;
	justify-self: end;
	border: 12px solid var(--color-white);
	box-shadow: 0 25px 65px rgba(12, 14, 16, 0.18);
}

.company-story__figure--award img {
	height: auto;
	aspect-ratio: 4 / 3;
}

.generation-section {
	padding: clamp(90px, 11vw, 160px) 0;
	background: var(--color-ink);
	color: var(--color-white);
}

.generation-track {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid var(--color-line-light);
	border-left: 1px solid var(--color-line-light);
}

.generation-card {
	position: relative;
	min-height: 390px;
	padding: clamp(30px, 4vw, 58px);
	border-right: 1px solid var(--color-line-light);
	border-bottom: 1px solid var(--color-line-light);
}

.generation-card h3 {
	margin-bottom: 18px;
	font-size: clamp(2rem, 3vw, 3.2rem);
}

.generation-card__icon {
	width: 58px;
	height: 58px;
	margin-bottom: 42px;
	color: var(--color-red-bright);
}

.generation-card__icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.55;
}

.generation-card p {
	max-width: 330px;
	margin: 0;
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.88rem;
}

.generation-card--signal {
	background: var(--color-red);
}

.generation-card--signal p {
	color: rgba(255, 255, 255, 0.76);
}

.generation-card--signal .generation-card__icon {
	color: var(--color-white);
}

.value-grid {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--color-line);
	border-left: 1px solid var(--color-line);
	overflow: visible;
}

.value-card {
	position: relative;
	min-height: 330px;
	padding: 34px;
	border-right: 1px solid var(--color-line);
	border-bottom: 1px solid var(--color-line);
	transition: background-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.value-card::before {
	display: none;
}

.value-card:first-child::before {
	left: 50%;
}

.value-card:last-child::before {
	right: 50%;
}

.value-card::after {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 3px;
	background: var(--color-red);
	content: "";
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 420ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.value-card:hover {
	z-index: 2;
	background: var(--color-white);
	box-shadow: 0 24px 55px rgba(12, 14, 16, 0.12);
	transform: translateY(-8px);
}

.value-card:hover::before {
	background: var(--color-red);
	box-shadow: 0 0 16px rgba(198, 31, 40, 0.28);
}

.value-card:hover::after {
	transform: scaleX(1);
}

.value-card h3 {
	font-size: 1.75rem;
	transition: color var(--transition), transform var(--transition);
}

.value-card:hover h3 {
	color: var(--color-red);
	transform: translateY(-3px);
}

.value-card p {
	margin: 0;
	color: rgba(12, 14, 16, 0.62);
	font-size: 0.86rem;
}

.territory-panel {
	background: #111417;
	color: var(--color-white);
}

.territory-panel__grid {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	min-height: 650px;
}

.territory-panel__map {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 520px;
	overflow: hidden;
	border-right: 1px solid var(--color-line-light);
	isolation: isolate;
}

.territory-panel__map svg {
	position: relative;
	z-index: 1;
	width: min(94%, 800px);
	overflow: visible;
}

.territory-map__grid {
	fill: url(#territory-grid);
	opacity: 0.55;
}

.territory-map__grid + * {
	pointer-events: none;
}

.territory-map pattern path {
	fill: none;
	stroke: rgba(255, 255, 255, 0.035);
	stroke-width: 1;
}

.territory-map__blocks {
	fill: rgba(255, 255, 255, 0.018);
	stroke: rgba(255, 255, 255, 0.065);
	stroke-width: 1;
}

.territory-map__minor-roads,
.territory-map__primary-roads,
.territory-map__contours,
.territory-map__route,
.territory-map__crosshair,
.territory-map__caption path {
	fill: none;
	vector-effect: non-scaling-stroke;
}

.territory-map__minor-roads {
	stroke: rgba(255, 255, 255, 0.095);
	stroke-width: 1;
}

.territory-map__primary-roads {
	stroke: rgba(255, 255, 255, 0.19);
	stroke-width: 1.6;
}

.territory-map__contours {
	stroke: rgba(255, 255, 255, 0.08);
	stroke-dasharray: 3 8;
	stroke-width: 1;
}

.territory-map__route {
	stroke: var(--color-red);
	stroke-dasharray: 9 8;
	stroke-width: 1.8;
	animation: territory-route 14s linear infinite;
}

.territory-map__crosshair path {
	stroke: rgba(238, 48, 58, 0.2);
	stroke-dasharray: 2 7;
}

.territory-map__crosshair circle {
	fill: none;
	stroke: rgba(238, 48, 58, 0.23);
	stroke-width: 1;
}

.territory-map__pulse {
	fill: rgba(198, 31, 40, 0.06);
	stroke: rgba(238, 48, 58, 0.35);
	stroke-width: 1;
	transform-origin: center;
	animation: territory-pulse 2.8s ease-out infinite;
}

.territory-map__halo {
	fill: rgba(198, 31, 40, 0.14);
	stroke: rgba(238, 48, 58, 0.62);
	stroke-width: 1;
}

.territory-map__pin {
	fill: var(--color-red-bright);
	filter: drop-shadow(0 16px 18px rgba(0, 0, 0, 0.3));
}

.territory-map__pin-shape {
	transform-box: fill-box;
	transform-origin: center;
	transform: translateY(-18px);
	transition: transform var(--transition);
}

.territory-panel__map:hover .territory-map__pin-shape {
	transform: translateY(-18px) scale(1.07);
}

.territory-map__pin-core {
	fill: #111417;
}

.territory-map__caption path {
	stroke: var(--color-red-bright);
	stroke-width: 1.5;
}

.territory-map text {
	font-family: Consolas, monospace;
}

.territory-map__title {
	fill: var(--color-white);
	font-size: 24px;
	font-weight: 800;
	letter-spacing: 0.14em;
}

.territory-map__meta,
.territory-map__coordinates text,
.territory-map__north text {
	fill: rgba(255, 255, 255, 0.38);
	font-size: 8px;
	font-weight: 700;
	letter-spacing: 0.14em;
}

.territory-map__north path {
	fill: none;
	stroke: var(--color-red-bright);
	stroke-linejoin: round;
	stroke-width: 1.2;
}

.territory-map__cursor {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	display: none;
	width: 150px;
	height: 150px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(238, 48, 58, 0.9) 0%, rgba(198, 31, 40, 0.42) 38%, rgba(198, 31, 40, 0) 72%);
	filter: blur(10px);
	mix-blend-mode: screen;
	opacity: 0;
	pointer-events: none;
	transform: translate3d(var(--map-cursor-x, -200px), var(--map-cursor-y, -200px), 0) translate(-50%, -50%);
	transition: opacity 180ms ease;
	will-change: transform, opacity;
}

.territory-map__cursor.is-active {
	opacity: 0.4;
}

@media (pointer: fine) {
	.territory-map__cursor {
		display: block;
	}
}

@keyframes territory-route {
	to { stroke-dashoffset: -68; }
}

@keyframes territory-pulse {
	0% { opacity: 0.85; transform: scale(0.72); }
	75%, 100% { opacity: 0; transform: scale(1.35); }
}

.territory-panel__copy {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-direction: column;
	padding: clamp(55px, 8vw, 120px);
}

.territory-panel__copy h2 {
	font-size: clamp(2.2rem, 3.75vw, 4.2rem);
}

.territory-panel__copy > p:not(.eyebrow) {
	max-width: 560px;
	margin-bottom: 35px;
	color: rgba(255, 255, 255, 0.58);
}

.services-index,
.portfolio-grid-section,
.workflow-steps,
.safety-section,
.contact-form-section,
.contact-partner {
	padding: clamp(90px, 11vw, 170px) 0;
}

.service-list {
	border-top: 1px solid var(--color-line);
}

.service-row {
	position: relative;
	display: grid;
	grid-template-columns: 70px minmax(240px, 0.8fr) minmax(270px, 0.75fr) 56px;
	align-items: center;
	gap: clamp(24px, 4vw, 70px);
	min-height: 190px;
	padding: 32px 0;
	border-bottom: 1px solid var(--color-line);
	background-color: transparent;
	color: inherit;
	text-decoration: none;
	transition: padding 600ms cubic-bezier(0.2, 0.8, 0.2, 1), background-color 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.service-row:hover,
.service-row:focus-visible {
	padding-right: 25px;
	padding-left: 25px;
	background-color: var(--color-white);
}

.service-row__tag {
	font-family: Consolas, monospace;
	font-size: 0.62rem;
	font-weight: 750;
	letter-spacing: 0.12em;
}

.service-row__marker {
	display: block;
	width: 28px;
	height: 2px;
	background: var(--color-red);
	transition: width 600ms cubic-bezier(.2,.8,.2,1), transform 600ms cubic-bezier(.2,.8,.2,1);
}
.service-row__tag { margin-bottom: 12px; color: rgba(12, 14, 16, 0.42); transition:color 600ms ease; }
.service-row h3 { margin: 0; font-size: clamp(2rem, 3.5vw, 4rem); transition:color 600ms ease,transform 600ms cubic-bezier(.2,.8,.2,1); }
.service-row > p { max-width: 480px; margin: 0; color: rgba(12, 14, 16, 0.62); font-size: 0.9rem; transition:color 600ms ease,transform 600ms cubic-bezier(.2,.8,.2,1); }
.service-row__arrow { color: var(--color-red); font-size: 2rem; transition:transform 600ms cubic-bezier(.2,.8,.2,1); }
.service-row:hover .service-row__marker,
.service-row:focus-visible .service-row__marker { width:38px; transform:translateX(5px); }
.service-row:hover .service-row__tag,
.service-row:focus-visible .service-row__tag { color:var(--color-red); }
.service-row:hover h3,
.service-row:focus-visible h3 { transform:translateX(7px); }
.service-row:hover > p,
.service-row:focus-visible > p { color:rgba(12,14,16,.82); transform:translateX(4px); }
.service-row:hover .service-row__arrow,
.service-row:focus-visible .service-row__arrow { transform:translate(5px,5px); }

.inner-hero--services .inner-hero__media,
.service-detail-hero .inner-hero__media {
	object-position: center;
}

.service-detail-hero {
	min-height: 760px;
}

.service-detail-hero .inner-hero__copy h1 {
	max-width: 980px;
	font-size: clamp(3.8rem, 7.2vw, 7.5rem);
}

.service-breadcrumb {
	position: absolute;
	top: 125px;
	left: 50%;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 10px;
	color: rgba(255, 255, 255, 0.64);
	font-family: Consolas, monospace;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	transform: translateX(-50%);
}

.service-breadcrumb a {
	color: var(--color-white);
	text-decoration: none;
}

.service-detail {
	padding: clamp(90px, 12vw, 180px) 0;
}

.service-detail__grid {
	display: grid;
	grid-template-columns: minmax(0, 900px);
	justify-content: center;
}

.service-detail__content {
	max-width: 900px;
}

.service-detail__content h2 {
	max-width: 840px;
	margin-bottom: 36px;
}

.service-detail__lead {
	max-width: 760px;
	color: rgba(12, 14, 16, 0.67);
	font-size: clamp(1.08rem, 1.7vw, 1.36rem);
}

.service-detail__points {
	margin-block: 38px 44px;
}

.service-related {
	padding: clamp(90px, 11vw, 160px) 0;
	background: var(--color-ink);
	color: var(--color-white);
}

.service-related__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-top: 1px solid var(--color-line-light);
	border-left: 1px solid var(--color-line-light);
}

.service-related__card {
	position: relative;
	display: grid;
	min-height: 290px;
	align-content: space-between;
	padding: clamp(30px, 4vw, 55px);
	border-right: 1px solid var(--color-line-light);
	border-bottom: 1px solid var(--color-line-light);
	color: var(--color-white);
	text-decoration: none;
	transition: background-color var(--transition), transform var(--transition);
}

.service-related__card > p {
	font-family: Consolas, monospace;
	font-size: 0.62rem;
	font-weight: 750;
	letter-spacing: 0.12em;
}

.service-related__card > p { margin: auto 0 12px; color: rgba(255, 255, 255, 0.48); }
.service-related__card h3 { max-width: 500px; margin: 0; font-size: clamp(1.8rem, 3vw, 3.3rem); }
.service-related__card i { position: absolute; top: 35px; right: 35px; color: var(--color-red-bright); font-size: 1.5rem; font-style: normal; }
.service-related__card:hover,
.service-related__card:focus-visible { background: var(--color-ink-soft); transform: translateY(-4px); }

.check-list { display: grid; gap: 10px; padding: 0; margin: 20px 0 35px; list-style: none; font-size: 0.86rem; font-weight: 700; }
.check-list li { position: relative; padding-left: 27px; }
.check-list li::before { position: absolute; top: 0.45em; left: 0; width: 9px; height: 9px; border: 2px solid var(--color-red); content: ""; transform: rotate(45deg); }

.decision-section { padding: clamp(90px, 10vw, 145px) 0; background: var(--color-red); color: var(--color-white); }
.decision-section__grid { display: grid; grid-template-columns: 1.2fr 0.55fr; align-items: end; gap: clamp(50px, 9vw, 140px); }
.decision-section h2 { max-width: 820px; margin: 0; font-size: clamp(3rem, 6vw, 6.5rem); }
.decision-section__copy > p { margin-bottom: 34px; color: rgba(255, 255, 255, 0.74); }

/* Portfolio */
.portfolio-hero {
	position: relative;
	min-height: 720px;
	padding-top: 92px;
	background: #090b0d;
	color: var(--color-white);
	isolation: isolate;
}

.portfolio-hero__media,
.portfolio-hero__scrim {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.portfolio-hero__media {
	z-index: -3;
	object-fit: cover;
	object-position: center 52%;
}

.portfolio-hero__scrim {
	z-index: -2;
	background: linear-gradient(90deg, rgba(5, 7, 8, 0.9) 0%, rgba(5, 7, 8, 0.58) 52%, rgba(5, 7, 8, 0.38) 100%), linear-gradient(0deg, rgba(5, 7, 8, 0.8), transparent 62%);
}

.portfolio-hero__grid { position: absolute; inset: 0; }
.portfolio-hero__inner { display: grid; grid-template-columns: 1.25fr 0.45fr; align-items: end; gap: 80px; min-height: 628px; padding-bottom: 90px; }
.portfolio-hero h1 { margin-bottom: 0; }
.portfolio-hero__statement { position: relative; padding: 38px 0 0 40px; border-top: 1px solid var(--color-red); }
.portfolio-hero__statement p { margin: 0; color: rgba(255, 255, 255, 0.6); font-size: 0.92rem; }
.portfolio-hero__cross { position: absolute; top: -19px; right: 0; color: var(--color-red-bright); font-size: 1.6rem; }
.portfolio-categories {
	padding: clamp(90px, 10vw, 150px) 0;
	background: #f3f2ee;
}

.portfolio-categories__heading {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.48fr);
	align-items: end;
	gap: clamp(45px, 8vw, 130px);
	margin-bottom: clamp(60px, 8vw, 105px);
}

.portfolio-categories__heading h2 {
	max-width: 900px;
	margin: 0;
	font-size: clamp(3.5rem, 6.5vw, 7rem);
}

.portfolio-categories__heading > p {
	max-width: 480px;
	margin: 0 0 9px;
	color: rgba(12, 14, 16, 0.58);
	font-size: clamp(0.96rem, 1.3vw, 1.1rem);
}

.portfolio-categories__links {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid var(--color-line);
	border-left: 1px solid var(--color-line);
}

.portfolio-category-link {
	position: relative;
	display: grid;
	grid-template-columns: 1fr auto;
	align-content: space-between;
	min-height: 240px;
	padding: clamp(26px, 3vw, 42px);
	border-right: 1px solid var(--color-line);
	border-bottom: 1px solid var(--color-line);
	color: var(--color-ink);
	text-decoration: none;
	transition: color 650ms ease, background-color 650ms ease, transform 650ms cubic-bezier(.2,.8,.2,1);
}

.portfolio-category-link span {
	font-family: Consolas, monospace;
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.14em;
}

.portfolio-category-link strong {
	grid-column: 1 / -1;
	grid-row: 2;
	align-self: end;
	font-size: clamp(1.45rem, 2.2vw, 2.5rem);
	line-height: 1;
}

.portfolio-category-link i {
	grid-column: 2;
	grid-row: 1;
	justify-self: end;
	font-size: 1.2rem;
	font-style: normal;
	transition: transform 650ms cubic-bezier(.2,.8,.2,1);
}

.portfolio-category-link:hover,
.portfolio-category-link:focus-visible {
	background: var(--color-red);
	color: var(--color-white);
	transform: translateY(-6px);
}

.portfolio-category-link:hover i,
.portfolio-category-link:focus-visible i {
	transform: translateY(8px);
}

.portfolio-story {
	scroll-margin-top: 92px;
	padding: clamp(105px, 11vw, 175px) 0;
}

.portfolio-story--construction { background: #e5e3dc; }
.portfolio-story--renovation { background: var(--color-ink); color: var(--color-white); }
.portfolio-story--outdoor { background: #f7f7f4; }

.portfolio-story__header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 0.42fr);
	align-items: end;
	gap: clamp(30px, 5vw, 80px);
	margin-bottom: clamp(55px, 7vw, 100px);
}

.portfolio-story__header h2 {
	max-width: 900px;
	margin: 0;
	font-size: clamp(3.6rem, 6.4vw, 7rem);
	line-height: 0.88;
}

.portfolio-story__header > p {
	max-width: 420px;
	margin: 0 0 8px;
	color: rgba(12, 14, 16, 0.58);
	font-size: clamp(0.94rem, 1.2vw, 1.06rem);
}

.portfolio-story--renovation .portfolio-story__header > p { color: rgba(255, 255, 255, 0.58); }

.portfolio-story__mosaic {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(12px, 1.6vw, 24px);
}

.portfolio-story__item {
	position: relative;
	overflow: hidden;
	margin: 0;
	background: #cfcdc6;
}

.portfolio-story__item::after {
	position: absolute;
	inset: 14px;
	border: 1px solid rgba(255, 255, 255, 0.58);
	content: "";
	opacity: 0;
	pointer-events: none;
	transition: opacity 600ms ease, inset 600ms cubic-bezier(.2,.8,.2,1);
}

.portfolio-story__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.1s cubic-bezier(.2,.8,.2,1), filter 700ms ease;
}

.portfolio-story__item:hover::after { inset: 22px; opacity: 1; }
.portfolio-story__item:hover img { filter: saturate(1.035) contrast(1.02); transform: scale(1.035); }

.portfolio-story__mosaic--four .portfolio-story__item:nth-child(1),
.portfolio-story__mosaic--four .portfolio-story__item:nth-child(4),
.portfolio-story__mosaic--twelve .portfolio-story__item:nth-child(1),
.portfolio-story__mosaic--twelve .portfolio-story__item:nth-child(4) {
	grid-column: span 8;
	aspect-ratio: 16 / 10;
}

.portfolio-story__mosaic--four .portfolio-story__item:nth-child(2),
.portfolio-story__mosaic--four .portfolio-story__item:nth-child(3),
.portfolio-story__mosaic--twelve .portfolio-story__item:nth-child(2),
.portfolio-story__mosaic--twelve .portfolio-story__item:nth-child(3) {
	grid-column: span 4;
	aspect-ratio: 4 / 5;
}

.portfolio-story__mosaic--twelve .portfolio-story__item:nth-child(5),
.portfolio-story__mosaic--twelve .portfolio-story__item:nth-child(6) {
	grid-column: span 6;
	aspect-ratio: 4 / 3;
}

.portfolio-story__mosaic--twelve .portfolio-story__item:nth-child(7) {
	grid-column: span 4;
	aspect-ratio: 4 / 5;
}

.portfolio-story__mosaic--twelve .portfolio-story__item:nth-child(8) {
	grid-column: span 8;
	aspect-ratio: 16 / 10;
}

.portfolio-story__mosaic--twelve .portfolio-story__item:nth-child(9),
.portfolio-story__mosaic--seven .portfolio-story__item:first-child,
.portfolio-story__mosaic--seven .portfolio-story__item:nth-child(6) {
	grid-column: 1 / -1;
	aspect-ratio: 16 / 7.5;
}

.portfolio-story__mosaic--seven .portfolio-story__item:nth-child(2),
.portfolio-story__mosaic--seven .portfolio-story__item:nth-child(3) {
	grid-column: span 6;
	aspect-ratio: 4 / 3;
}

.portfolio-story__mosaic--seven .portfolio-story__item:nth-child(4),
.portfolio-story__mosaic--seven .portfolio-story__item:nth-child(5) {
	grid-column: span 6;
	aspect-ratio: 4 / 5;
}

.portfolio-story__mosaic--twelve .portfolio-story__item:nth-child(n + 10) {
	grid-column: span 4;
	aspect-ratio: 1;
}

.portfolio-story__mosaic--seven .portfolio-story__item:nth-child(7) {
	grid-column: 4 / span 6;
	aspect-ratio: 1;
}

.project-invite { padding: clamp(90px, 10vw, 140px) 0; }
.project-invite__inner { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 50px; }
.project-invite h2 { max-width: 900px; margin: 0; font-size: clamp(3rem, 5vw, 5.5rem); }

/* Workflow */
.workflow-hero { position: relative; display: grid; min-height: min(900px, 92svh); align-items: end; background: var(--color-ink); color: var(--color-white); isolation: isolate; }
.workflow-hero__media,.workflow-hero__overlay { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.workflow-hero__overlay { z-index: -1; background: linear-gradient(90deg, rgba(7,8,9,.94),rgba(7,8,9,.34)),linear-gradient(0deg,rgba(7,8,9,.8),transparent 60%); }
.workflow-hero__inner { display: grid; grid-template-columns: 1.2fr .5fr; align-items: end; gap: 70px; padding-bottom: clamp(75px, 9vw, 130px); }
.workflow-hero h1 { margin-bottom: 0; }
.workflow-steps { background: var(--color-paper); }
.workflow-list { border-top: 1px solid var(--color-line); }
.workflow-row { display: grid; grid-template-columns: 55px 72px minmax(280px,.7fr) minmax(280px,.6fr); align-items: center; gap: clamp(20px,4vw,60px); min-height: 155px; border-bottom: 1px solid var(--color-line); }
.workflow-row__index,.workflow-row > div > p { font-family: Consolas,monospace; font-size:.62rem; font-weight:750; letter-spacing:.12em; }
.workflow-row__index,.workflow-row > div > p { color: var(--color-red); }
.workflow-row__node { display:grid; width:54px; height:54px; place-items:center; border:1px solid var(--color-line); font-size:1.4rem; transition:background var(--transition),color var(--transition); }
.workflow-row:hover .workflow-row__node,.workflow-row--final .workflow-row__node { background:var(--color-red); color:var(--color-white); }
.workflow-row > div > p { margin-bottom:9px; }
.workflow-row h3 { margin:0; font-size:clamp(1.75rem,3vw,3rem); }
.workflow-row > p { max-width:520px; margin:0; color:rgba(12,14,16,.6); font-size:.87rem; }
.control-section { background:#0a0c0e; color:var(--color-white); }
.control-section__grid { display:grid; grid-template-columns:1fr 1fr; min-height:700px; }
.control-section__visual { position:relative; display:grid; place-items:center; overflow:hidden; border-right:1px solid var(--color-line-light); isolation:isolate; }
.control-section__visual::before { position:absolute; z-index:-2; inset:0; background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:54px 54px; content:""; }
.control-section__visual::after { position:absolute; z-index:-1; width:62%; aspect-ratio:1; border:1px solid rgba(198,31,40,.22); border-radius:50%; content:""; transform:translate(-44%,-30%); }
.control-section__visual > p { align-self:end; margin:0 0 30px; color:rgba(255,255,255,.25); font-family:Consolas,monospace; font-size:.58rem; letter-spacing:.14em; }
.build-agenda { width:min(76%,520px); margin:55px 0 20px; border:1px solid rgba(255,255,255,.2); background:rgba(12,14,16,.94); box-shadow:28px 28px 0 rgba(198,31,40,.1); transform:rotate(-1.5deg); transition:transform 650ms cubic-bezier(.2,.8,.2,1),box-shadow 650ms ease; }
.build-agenda:hover { box-shadow:16px 22px 0 rgba(198,31,40,.16); transform:rotate(0deg) translateY(-5px); }
.build-agenda__top,.build-agenda__foot { display:flex; justify-content:space-between; padding:13px 18px; color:rgba(255,255,255,.38); font-family:Consolas,monospace; font-size:.55rem; letter-spacing:.13em; }
.build-agenda__top { border-bottom:1px solid rgba(255,255,255,.12); }
.build-agenda__header { position:relative; padding:24px 22px 19px; border-bottom:1px solid rgba(255,255,255,.12); }
.build-agenda__header::after { position:absolute; top:0; right:22px; width:42px; height:3px; background:var(--color-red); content:""; }
.build-agenda__header p { margin:0 0 5px; color:var(--color-red-bright); font-family:Consolas,monospace; font-size:.58rem; font-weight:700; letter-spacing:.15em; }
.build-agenda__header h3 { margin:0; font-size:clamp(1.9rem,3.2vw,3.1rem); line-height:1; letter-spacing:-.045em; }
.build-agenda__list { margin:0; padding:0; list-style:none; }
.build-agenda__list li { display:grid; grid-template-columns:24px 1fr 24px; align-items:center; gap:14px; min-height:68px; padding:10px 20px; border-bottom:1px solid rgba(255,255,255,.1); transition:padding 500ms ease,background-color 500ms ease,color 500ms ease; }
.build-agenda__list li:hover { padding-right:15px; padding-left:27px; background:rgba(198,31,40,.13); }
.build-agenda__check { position:relative; width:21px; height:21px; border:1px solid rgba(255,255,255,.35); transition:border-color 500ms ease,background-color 500ms ease,transform 500ms cubic-bezier(.2,.8,.2,1); }
.build-agenda__check::after { position:absolute; top:3px; left:6px; width:6px; height:11px; border-right:2px solid #fff; border-bottom:2px solid #fff; content:""; opacity:0; transform:rotate(45deg) scale(.4); transition:opacity 400ms ease,transform 500ms cubic-bezier(.2,.8,.2,1); }
.build-agenda__list .is-checked .build-agenda__check,.build-agenda__list li:hover .build-agenda__check { border-color:var(--color-red-bright); background:var(--color-red); transform:scale(1.1); }
.build-agenda__list .is-checked .build-agenda__check::after,.build-agenda__list li:hover .build-agenda__check::after { opacity:1; transform:rotate(45deg) scale(1); }
.build-agenda__list small { display:block; margin-bottom:3px; color:rgba(255,255,255,.34); font-family:Consolas,monospace; font-size:.51rem; letter-spacing:.12em; }
.build-agenda__list strong { display:block; font-size:clamp(.86rem,1.25vw,1.08rem); letter-spacing:-.015em; }
.build-agenda__arrow { color:var(--color-red-bright); opacity:0; transform:translate(-7px,7px); transition:opacity 500ms ease,transform 500ms ease; }
.build-agenda__list li:hover .build-agenda__arrow { opacity:1; transform:translate(0); }
.build-agenda__foot { border-top:1px solid rgba(198,31,40,.5); color:rgba(255,255,255,.28); }
.control-section__copy { display:flex; justify-content:center; align-items:flex-start; flex-direction:column; padding:clamp(60px,8vw,130px); }
.control-section__copy h2 { font-size:clamp(3rem,5.4vw,5.8rem); }
.control-section__copy > p:not(.eyebrow){ max-width:590px; color:rgba(255,255,255,.57); }
.safety-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--color-line); border-left:1px solid var(--color-line); }
.safety-card { min-height:400px; padding:clamp(30px,4vw,52px); border-right:1px solid var(--color-line); border-bottom:1px solid var(--color-line); }
.safety-card > span { margin-bottom:115px; color:var(--color-red); }
.safety-card h3 { font-size:clamp(2rem,3vw,3rem); }
.safety-card p { color:rgba(12,14,16,.62); font-size:.88rem; }
.safety-card small { display:block; margin-top:28px; color:rgba(12,14,16,.42); font-family:Consolas,monospace; font-size:.57rem; letter-spacing:.12em; }
.safety-card--red { background:var(--color-red); color:var(--color-white); }
.safety-card--red > span,.safety-card--red p { color:rgba(255,255,255,.74); }
.workflow-cta { padding:clamp(80px,9vw,130px) 0; background:#15181b; color:var(--color-white); }
.workflow-cta__inner { display:grid; grid-template-columns:1fr auto; align-items:end; gap:60px; }
.workflow-cta h2 { margin:0; font-size:clamp(3rem,5.5vw,6rem); }

/* Equipment */
.equipment-hero {
	position: relative;
	display: grid;
	min-height: min(900px, calc(100svh - 92px));
	align-items: end;
	overflow: hidden;
	background: var(--color-ink);
	color: var(--color-white);
	isolation: isolate;
}
.equipment-hero__media,
.equipment-hero__scrim,
.equipment-hero__grid {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
.equipment-hero__media {
	z-index: -3;
	object-fit: cover;
	object-position: center 44%;
	transform: scale(1.015);
}
.equipment-hero__scrim {
	z-index: -2;
	background: linear-gradient(90deg, rgba(6, 8, 9, .96) 0%, rgba(6, 8, 9, .78) 38%, rgba(6, 8, 9, .25) 72%, rgba(6, 8, 9, .16) 100%), linear-gradient(0deg, rgba(6, 8, 9, .9) 0%, transparent 62%);
}
.equipment-hero__grid {
	z-index: -1;
	background-image: linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px), linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
	background-size: 76px 76px;
	mask-image: linear-gradient(to right, #000 0%, #000 35%, transparent 88%);
}
.equipment-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(240px, .35fr);
	align-items: end;
	gap: clamp(48px, 9vw, 140px);
	padding-top: 165px;
	padding-bottom: clamp(70px, 8vw, 120px);
}
.equipment-hero__copy h1 {
	max-width: 1050px;
	margin-bottom: 35px;
	font-size: clamp(4rem, 8.1vw, 8.6rem);
	line-height: .86;
}
.equipment-hero__copy > p:last-child {
	max-width: 660px;
	margin-bottom: 0;
	color: rgba(255,255,255,.72);
	font-size: clamp(1rem, 1.4vw, 1.24rem);
}
.equipment-hero__aside {
	position: relative;
	padding: 30px 0 8px 30px;
	border-top: 1px solid var(--color-red-bright);
}
.equipment-hero__aside::before {
	position: absolute;
	top: -5px;
	left: -5px;
	width: 9px;
	height: 9px;
	background: var(--color-red-bright);
	content: "";
	transform: rotate(45deg);
}
.equipment-hero__aside p {
	max-width: 300px;
	margin: 0;
	color: rgba(255,255,255,.66);
	font-size: .67rem;
	font-weight: 750;
	letter-spacing: .09em;
	line-height: 1.75;
}
.equipment-intro { background: var(--color-paper); }
.equipment-intro__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(300px, .55fr);
	align-items: end;
	gap: clamp(60px, 10vw, 160px);
}
.equipment-intro__title h2 { max-width: 920px; margin-bottom: 0; }
.equipment-intro__copy > p {
	max-width: 600px;
	margin-bottom: 42px;
	color: rgba(12,14,16,.63);
	font-size: clamp(1rem, 1.4vw, 1.18rem);
}
.equipment-intro__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.equipment-intro__tags span {
	padding: 10px 14px;
	border: 1px solid var(--color-line);
	color: rgba(12,14,16,.62);
	font-family: Consolas, monospace;
	font-size: .57rem;
	font-weight: 800;
	letter-spacing: .13em;
}
.equipment-gallery-section {
	padding: clamp(85px, 10vw, 150px) 0;
	background: #0a0c0e;
	color: var(--color-white);
}
.equipment-gallery__heading {
	display: grid;
	grid-template-columns: 1fr;
	margin-bottom: clamp(50px, 7vw, 90px);
}
.equipment-gallery__heading h2 {
	max-width: 980px;
	margin: 0;
	font-size: clamp(3.4rem, 6.5vw, 7rem);
}
.equipment-gallery {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(12px, 1.5vw, 24px);
}
.equipment-card {
	position: relative;
	grid-column: span 6;
	align-self: start;
	overflow: hidden;
	margin: 0;
	background: #171a1e;
	isolation: isolate;
}

.equipment-card img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
	transition: filter 700ms ease;
}
.equipment-card figcaption {
	display: grid;
	grid-template-columns: 1fr;
	align-items: end;
	gap: 18px;
	padding: clamp(22px, 3vw, 38px);
	background: #0c0f11;
	color: var(--color-white);
}
.equipment-card small {
	font-family: Consolas, monospace;
	font-size: .57rem;
	font-weight: 800;
	letter-spacing: .13em;
}
.equipment-card figcaption > span:last-child { display: grid; gap: 7px; }
.equipment-card small { color: rgba(255,255,255,.55); }
.equipment-card strong {
	font-size: clamp(1.35rem, 2.4vw, 2.5rem);
	line-height: 1;
	letter-spacing: -.04em;
}
.equipment-card:hover img { filter: saturate(1.04) contrast(1.03); }
.equipment-capabilities {
	padding: clamp(90px, 11vw, 165px) 0;
	background: #121518;
	color: var(--color-white);
}
.equipment-capabilities__statement {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	margin-bottom: clamp(60px, 8vw, 110px);
}
.equipment-capabilities__statement h2 {
	max-width: 1100px;
	margin: 0;
	font-size: clamp(3.2rem, 6vw, 6.6rem);
}
.equipment-capabilities__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--color-line-light);
	border-left: 1px solid var(--color-line-light);
}
.equipment-capabilities__grid article {
	min-height: 270px;
	padding: clamp(28px, 3.5vw, 48px);
	border-right: 1px solid var(--color-line-light);
	border-bottom: 1px solid var(--color-line-light);
}
.equipment-capabilities__grid h3 { margin-bottom: 17px; font-size: clamp(1.8rem, 3vw, 3rem); }
.equipment-capabilities__grid p { max-width: 360px; margin: 0; color: rgba(255,255,255,.56); font-size: .86rem; }
.equipment-cta { padding: clamp(85px, 10vw, 145px) 0; background: var(--color-red); color: var(--color-white); }
.equipment-cta__inner { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 60px; }
.equipment-cta h2 { margin: 0; font-size: clamp(3rem, 5.5vw, 6rem); }
.equipment-cta h2 em { color: var(--color-white); -webkit-text-stroke: 1px rgba(255,255,255,.75); }
.equipment-cta .button--signal { background: var(--color-ink); }
.equipment-cta .button--signal:hover { background: var(--color-white); color: var(--color-ink); }

/* Contacts */
.contact-hero { position:relative; display:grid; min-height:760px; align-items:end; overflow:hidden; background-color:var(--color-ink); background-image:linear-gradient(90deg,rgba(7,9,10,.94) 0%,rgba(7,9,10,.77) 52%,rgba(7,9,10,.5) 100%),linear-gradient(0deg,rgba(7,9,10,.72),transparent 68%),url("../images/home-sede-rossi-egisto-v2.jpg"); background-position:center; background-size:cover; color:var(--color-white); }
.contact-hero__orbit { display:none; position:absolute; right:-6vw; top:-20%; width:min(65vw,900px); aspect-ratio:1; border:1px solid rgba(255,255,255,.19); border-radius:50%; }
.contact-hero__orbit::before,.contact-hero__orbit::after { position:absolute; border:1px solid rgba(255,255,255,.16); border-radius:50%; content:""; }.contact-hero__orbit::before{inset:16%;}.contact-hero__orbit::after{inset:34%;}
.contact-hero__inner { position:relative; display:grid; grid-template-columns:1.2fr .6fr; align-items:end; gap:clamp(50px,8vw,130px); padding-bottom:clamp(75px,9vw,125px); }
.contact-hero__inner > * { min-width: 0; }
.contact-hero h1 { margin-bottom:35px; }.contact-hero h1 em{color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.82);}
.contact-hero__phone { position:relative; display:flex; width:100%; min-width:0; align-items:center; gap:24px; min-height:150px; padding:30px; border:1px solid rgba(255,255,255,.65); background:var(--color-white); color:var(--color-ink); text-decoration:none; box-shadow:0 25px 70px rgba(90,0,5,.22); transition:transform var(--transition),background var(--transition),color var(--transition); }
.contact-hero__phone:hover { transform:translateY(-6px); background:var(--color-ink); color:var(--color-white); }
.contact-hero__phone-icon { display:grid; width:70px; height:70px; flex:0 0 auto; place-items:center; background:var(--color-red); color:var(--color-white); }
.contact-hero__phone-icon svg { width:31px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }
.contact-hero__phone > span:last-child { display:grid; line-height:1.05; }
.contact-hero__phone small { margin-bottom:9px; color:var(--color-red); font-size:.62rem; font-style:normal; font-weight:820; letter-spacing:.13em; }
.contact-hero__phone strong { font-size:clamp(1.8rem,3vw,3rem); letter-spacing:-.05em; }
.contact-hero__phone em { margin-top:8px; color:rgba(12,14,16,.46); font-size:.7rem; font-style:normal; }
.contact-company { padding:clamp(90px,10vw,155px) 0; background:#f3f2ee; }
.contact-company__grid { display:grid; grid-template-columns:minmax(0,.78fr) minmax(520px,1.22fr); align-items:start; gap:clamp(60px,10vw,160px); }
.contact-company__heading h2 { max-width:650px; margin:0; font-size:clamp(3.2rem,5.5vw,6rem); }
.contact-company__details { border-top:2px solid var(--color-ink); }
.contact-company__identity { display:grid; gap:13px; padding:clamp(28px,4vw,48px) 0; border-bottom:1px solid var(--color-line); }
.contact-company__identity strong { font-size:clamp(1.55rem,2.5vw,2.65rem); line-height:1.05; }
.contact-company__identity p { margin:0; color:rgba(12,14,16,.58); font-size:.92rem; }
.contact-company__list { margin:0; }
.contact-company__list > div { display:grid; grid-template-columns:150px minmax(0,1fr); gap:28px; padding:25px 0; border-bottom:1px solid var(--color-line); }
.contact-company__list dt { padding-top:4px; color:var(--color-red); font-family:Consolas,monospace; font-size:.59rem; font-weight:800; letter-spacing:.13em; }
.contact-company__list dd { display:grid; gap:7px; min-width:0; margin:0; font-size:clamp(1rem,1.4vw,1.18rem); line-height:1.45; }
.contact-company__list address { font-style:normal; }
.contact-company__list a { color:inherit; text-decoration-color:rgba(198,31,40,.45); text-decoration-thickness:1px; text-underline-offset:5px; transition:color 500ms ease,text-decoration-color 500ms ease; }
.contact-company__list a:hover,.contact-company__list a:focus-visible { color:var(--color-red); text-decoration-color:var(--color-red); }
.contact-form-section__grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(60px,9vw,140px); }
.contact-form-section__intro { align-self:start; position:sticky; top:135px; }
.contact-form-section__intro h2 { font-size:clamp(3rem,5vw,5.5rem); }
.contact-form-section__intro > p:not(.eyebrow) { max-width:530px; color:rgba(12,14,16,.6); }
.contact-direct { display:flex; align-items:center; gap:20px; margin-top:50px; padding-top:24px; border-top:1px solid var(--color-line); }
.contact-direct__call { display:grid; width:48px; height:48px; flex:0 0 auto; place-items:center; background:var(--color-red); color:var(--color-white); text-decoration:none; transition:background-color 600ms ease,transform 600ms cubic-bezier(.2,.8,.2,1),box-shadow 600ms ease; }
.contact-direct__call svg { width:22px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; transition:transform 600ms cubic-bezier(.2,.8,.2,1); }
.contact-direct__call:hover,.contact-direct__call:focus-visible { background:var(--color-ink); box-shadow:0 12px 28px rgba(12,14,16,.2); outline:none; transform:translateY(-4px); }
.contact-direct__call:hover svg,.contact-direct__call:focus-visible svg { transform:rotate(-9deg) scale(1.1); }
.contact-direct div { display:grid; }.contact-direct small { color:rgba(12,14,16,.42); font-size:.58rem; font-weight:800; letter-spacing:.12em; }.contact-direct div a { font-size:1.55rem; font-weight:800; text-decoration:none; }
.contact-form-wrap { padding:clamp(28px,4vw,55px); border:1px solid var(--color-line); background:var(--color-white); }
.contact-form { display:grid; grid-template-columns:repeat(2,1fr); gap:30px 22px; }
.form-field { display:grid; gap:9px; }.form-field--full,.contact-form__bottom { grid-column:1/-1; }.form-field label { font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.form-field label span { color:var(--color-red); }
.form-field input,.form-field select,.form-field textarea { width:100%; border:0; border-bottom:1px solid rgba(12,14,16,.28); border-radius:0; background:transparent; color:var(--color-ink); outline:none; transition:border-color var(--transition); }.form-field input,.form-field select { height:58px; }.form-field textarea { min-height:140px; padding:16px 0; resize:vertical; }.form-field input:focus,.form-field select:focus,.form-field textarea:focus { border-color:var(--color-red); }.form-field--honey { position:absolute; left:-9999px; }
.contact-form__bottom { display:flex; align-items:center; justify-content:space-between; gap:30px; margin-top:10px; padding-top:30px; border-top:1px solid var(--color-line); }.contact-form__bottom p { max-width:430px; margin:0; color:rgba(12,14,16,.48); font-size:.67rem; }
.form-notice { margin-bottom:28px; padding:16px 20px; border-left:3px solid var(--color-red); background:rgba(198,31,40,.08); font-size:.85rem; font-weight:700; }.form-notice--success { border-color:#2d7b50; background:rgba(45,123,80,.09); }
.contact-territory { background:#0c0f11; color:var(--color-white); }.contact-territory__grid { display:grid; grid-template-columns:1.15fr .85fr; min-height:580px; }.contact-territory__map { position:relative; min-height:580px; overflow:hidden; border-right:1px solid var(--color-line-light); background:#0b0d0f; }.contact-territory__canvas{width:100%;height:100%;min-height:580px;background:#0b0d0f}.contact-territory__canvas .maplibregl-canvas{cursor:pointer}.contact-territory__canvas .maplibregl-ctrl-group{overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:0;background:#0c0f11;box-shadow:none}.contact-territory__canvas .maplibregl-ctrl-group button{border-color:rgba(255,255,255,.12);background:#0c0f11;transition:background-color 500ms ease}.contact-territory__canvas .maplibregl-ctrl-group button:hover{background:#c61f28}.contact-territory__canvas .maplibregl-ctrl-icon{filter:invert(1)}.contact-territory__canvas .maplibregl-ctrl-attrib{background:rgba(12,15,17,.84);color:rgba(255,255,255,.6);font-size:9px}.contact-territory__canvas .maplibregl-ctrl-attrib a{color:#fff}.contact-territory__canvas .maplibregl-popup-content{overflow:hidden;padding:0;border-radius:0;background:transparent;box-shadow:0 22px 55px rgba(0,0,0,.42)}.contact-territory__canvas .maplibregl-popup-tip{border-top-color:#f4f4f1}.rossi-map-marker-link{display:block;width:58px;height:68px;outline:none}.rossi-map-marker{position:relative;display:block;width:52px;height:52px;border:1px solid rgba(255,255,255,.7);border-radius:50% 50% 50% 18%;background:linear-gradient(135deg,#ff4a53 0%,#c51d27 72%);box-shadow:0 12px 34px rgba(0,0,0,.38),0 0 0 8px rgba(238,48,58,.12);transform:rotate(-45deg);transition:transform 600ms cubic-bezier(.2,.8,.2,1),box-shadow 600ms ease}.rossi-map-marker i{position:absolute;top:50%;left:50%;width:14px;height:14px;border-radius:50%;background:#111416;box-shadow:0 0 0 5px rgba(255,255,255,.12);transform:translate(-50%,-50%)}.rossi-map-marker-link:hover .rossi-map-marker,.rossi-map-marker-link:focus-visible .rossi-map-marker{box-shadow:0 16px 42px rgba(0,0,0,.48),0 0 0 14px rgba(238,48,58,.12);transform:rotate(-45deg) scale(1.08)}.rossi-map-card{display:grid;grid-template-columns:72px 1fr;align-items:center;gap:14px;width:315px;padding:13px 15px;border-left:3px solid #ee303a;background:rgba(247,247,244,.97);color:#0c0f11;text-decoration:none;transition:background-color 600ms ease,transform 600ms cubic-bezier(.2,.8,.2,1)}.rossi-map-card:hover,.rossi-map-card:focus-visible{background:#fff;transform:translateY(-3px)}.rossi-map-card img{width:72px;height:58px;object-fit:contain}.rossi-map-card>span{display:grid;gap:3px;min-width:0}.rossi-map-card small{color:#c61f28;font-family:Consolas,monospace;font-size:.5rem;font-weight:800;letter-spacing:.12em}.rossi-map-card strong{font-size:.76rem;line-height:1.15}.rossi-map-card em{color:rgba(12,14,16,.58);font-size:.59rem;font-style:normal;line-height:1.35}.rossi-map-card b{margin-top:3px;color:#c61f28;font-size:.54rem;letter-spacing:.04em;text-transform:uppercase}.contact-territory__status:empty{display:none}.contact-territory__status{position:absolute;z-index:500;right:18px;bottom:18px;left:18px;margin:0;padding:10px 14px;background:rgba(12,15,17,.9);color:rgba(255,255,255,.72);font-size:.68rem}.contact-territory__noscript{position:absolute;inset:0;display:grid;place-items:center;color:#fff}.contact-territory__copy{display:flex;justify-content:center;align-items:flex-start;flex-direction:column;padding:clamp(55px,8vw,120px)}.contact-territory__copy h2{font-size:clamp(3rem,5vw,5.5rem)}.contact-territory__copy>p:not(.eyebrow){color:rgba(255,255,255,.58)}
.contact-partner__grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(60px,9vw,140px); }.contact-partner__logo { display:block; padding:clamp(25px,4vw,50px); border:1px solid var(--color-line); background:var(--color-white); transition:transform var(--transition),box-shadow var(--transition); }.contact-partner__logo:hover{transform:translateY(-5px);box-shadow:0 20px 55px rgba(12,14,16,.1)}.contact-partner__copy h2{font-size:clamp(3rem,5vw,5.4rem)}.contact-partner__copy>p:not(.eyebrow){max-width:590px;color:rgba(12,14,16,.62)}

@media (max-width: 1100px) {
	.inner-hero__inner,.inner-hero__inner--wide,.portfolio-hero__inner,.workflow-hero__inner,.contact-hero__inner { grid-template-columns:1fr .5fr; gap:45px; }
	.equipment-hero__inner { grid-template-columns: 1fr .42fr; gap: 45px; }
	.equipment-intro__grid { grid-template-columns: 1fr .55fr; gap: 60px; }
	.value-grid { grid-template-columns:repeat(2,1fr); }
	.value-card:nth-child(odd)::before { right: 0; left: 50%; }
	.value-card:nth-child(even)::before { right: 50%; left: 0; }
	.service-row { grid-template-columns:55px minmax(220px,.8fr) minmax(250px,.75fr) 35px; gap:24px; }
	.contact-company__grid { grid-template-columns:1fr; }
	.contact-company__heading { max-width:760px; }
	.contact-form-section__grid { grid-template-columns:1fr; }.contact-form-section__intro{position:static;max-width:800px}
}

@media (max-width: 900px) {
	.inner-hero,.inner-hero--dark,.portfolio-hero,.contact-hero { min-height:680px; }
	.inner-hero__inner,.inner-hero__inner--wide,.portfolio-hero__inner,.workflow-hero__inner,.contact-hero__inner,.decision-section__grid,.control-section__grid,.contact-territory__grid,.contact-partner__grid { grid-template-columns:1fr; }
	.inner-hero__inner,.portfolio-hero__inner,.contact-hero__inner { padding-top:150px; }
	.inner-hero__aside { max-width:420px; }
	.company-story__grid { grid-template-columns:1fr; }.company-story__media{position:relative;grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);align-items:end}.company-story__figure--place{grid-column:1;grid-row:1}.company-story__figure--award{grid-column:2;grid-row:1;width:100%;margin:0;border-width:8px}.company-story__owner{grid-column:1/-1;grid-row:2;width:min(44%,320px);margin-top:34px}.company-story__figure--place img{height:440px}
	.page-heading { grid-template-columns:1fr; }
	.generation-track,.safety-grid { grid-template-columns:1fr; }
	.generation-card,.safety-card { min-height:300px; }.generation-card>span{margin-bottom:24px}.generation-card__icon{margin-bottom:34px}.safety-card>span{margin-bottom:70px}
	.territory-panel__grid { grid-template-columns:1fr; }.territory-panel__map{border-right:0;border-bottom:1px solid var(--color-line-light)}
	.service-row { grid-template-columns:45px 1fr 28px; padding:30px 0; }.service-row>p{grid-column:2/3}.service-row__arrow{grid-column:3;grid-row:1/3}
	.service-related__grid { grid-template-columns:1fr; }
	.service-detail-hero .inner-hero__copy h1 { font-size:clamp(3.4rem,10vw,6rem); }
	.portfolio-hero__inner { align-content:end; }.portfolio-hero__statement{max-width:560px}
	.portfolio-categories__heading { grid-template-columns: 1fr; gap: 34px; }
	.portfolio-categories__heading > p { max-width: 620px; }
	.portfolio-story__header { grid-template-columns: 86px minmax(0, 1fr); }
	.portfolio-story__header > p { grid-column: 2; max-width: 570px; }
	.workflow-row { grid-template-columns:45px 55px 1fr; gap:18px; padding:28px 0; }.workflow-row>p{grid-column:3/4}.workflow-row__node{width:48px;height:48px}
	.control-section__visual{min-height:560px;border-right:0;border-bottom:1px solid var(--color-line-light)}
	.equipment-hero { min-height: 720px; }
	.equipment-hero__inner,.equipment-intro__grid { grid-template-columns: 1fr; }
	.equipment-hero__inner { gap: 48px; padding-top: 145px; }
	.equipment-hero__aside { max-width: 430px; }
	.equipment-intro__copy { max-width: 680px; }
	.equipment-capabilities__grid { grid-template-columns: 1fr; }
	.equipment-capabilities__grid article { min-height: 240px; }
	.equipment-capabilities__grid span { margin-bottom: 45px; }
	.contact-hero__phone{max-width:520px}.contact-territory__map,.contact-territory__canvas{min-height:500px}.contact-territory__map{border-right:0;border-bottom:1px solid var(--color-line-light)}
}

@media (max-width: 600px) {
	.inner-hero__copy h1,.portfolio-hero h1,.workflow-hero h1,.contact-hero h1 { font-size:clamp(3rem,14vw,4.6rem); }
	.contact-hero h1 { font-size:clamp(2.7rem,12vw,3.8rem); }
	.inner-hero__inner { padding-bottom:65px; }.inner-hero__aside{display:none}
	.company-story__timeline li,.company-story__media,.value-grid { grid-template-columns:1fr; }.company-story__figure--place{grid-column:1;grid-row:1}.company-story__figure--award{grid-column:1;grid-row:2;width:min(88%,430px);margin-top:0;margin-right:12px;border-width:7px}.company-story__owner{grid-column:1;grid-row:3;width:min(62%,280px);margin-top:24px}.company-story__figure--place img{height:330px}
	.generation-card,.value-card,.safety-card{min-height:270px}.generation-card__icon{width:52px;height:52px;margin-bottom:28px}
	.value-card { min-height: 230px; padding: 38px 28px; }
	.value-card::before,
	.value-card:nth-child(odd)::before,
	.value-card:nth-child(even)::before { top: 0; right: auto; bottom: 0; left: 55px; width: 1px; height: auto; }
	.value-card:first-child::before { top: 55px; }
	.value-card:last-child::before { bottom: calc(100% - 55px); }
	.value-card:hover { transform: translateX(6px); }
	.territory-panel__map,.contact-territory__map,.contact-territory__canvas{min-height:360px}.territory-panel__copy,.contact-territory__copy{padding:60px 25px}
	.service-row { grid-template-columns:32px 1fr; }.service-row>p{grid-column:2}.service-row__arrow{display:none}.service-row:hover{padding-inline:10px}
	.service-breadcrumb{top:110px;gap:7px;font-size:.54rem}.service-related__card{min-height:240px}
	.portfolio-categories__links { grid-template-columns: 1fr; }
	.portfolio-category-link { min-height: 150px; }
	.portfolio-story__header { grid-template-columns: 1fr; gap: 26px; }
	.portfolio-story__header h2 { font-size: clamp(2.55rem, 11.5vw, 4rem); overflow-wrap: anywhere; }
	.portfolio-story__header > p { grid-column: 1; }
	.portfolio-story__mosaic { grid-template-columns: 1fr; }
	.portfolio-story__mosaic .portfolio-story__item { grid-column: 1 !important; aspect-ratio: 4 / 3 !important; }
	.portfolio-story__mosaic .portfolio-story__item--portrait { aspect-ratio: 4 / 5 !important; }
	.project-invite__inner,.workflow-cta__inner { grid-template-columns:1fr; align-items:start; }
	.workflow-row { grid-template-columns:35px 44px 1fr; gap:12px; }.workflow-row__node{width:40px;height:40px}.workflow-row>p{grid-column:3}.workflow-row h3{font-size:1.65rem}
	.equipment-hero { min-height: 660px; }
	.equipment-hero__media { object-position: 58% center; }
	.equipment-hero__scrim { background: linear-gradient(90deg,rgba(6,8,9,.92),rgba(6,8,9,.38)),linear-gradient(0deg,rgba(6,8,9,.92),transparent 70%); }
	.equipment-hero__inner { gap: 34px; padding-top: 130px; padding-bottom: 58px; }
	.equipment-hero__copy h1 { font-size: clamp(3.25rem, 16vw, 4.8rem); }
	.equipment-hero__aside { padding: 22px 0 0; }
	.equipment-intro__tags { display: grid; grid-template-columns: repeat(3, 1fr); }
	.equipment-intro__tags span { padding: 9px 7px; text-align: center; }
	.equipment-gallery { grid-template-columns: 1fr; }
	.equipment-card,.equipment-card--featured,.equipment-card--compact,.equipment-card--wide,.equipment-card--standard { grid-column: 1; }
	.equipment-card figcaption { grid-template-columns: 1fr; gap: 12px; padding: 22px; }
	.equipment-capabilities__grid article { min-height: 220px; }
	.equipment-cta__inner { grid-template-columns: 1fr; align-items: start; }
	.contact-hero__phone{min-height:125px;padding:20px;gap:15px}.contact-hero__phone-icon{width:56px;height:56px}.contact-hero__phone strong{font-size:1.65rem}
	.contact-company__list > div { grid-template-columns:1fr; gap:10px; }
	.contact-company__list a { overflow-wrap:anywhere; }
	.contact-form{grid-template-columns:1fr}.form-field,.form-field--full,.contact-form__bottom{grid-column:1}.contact-form__bottom{align-items:flex-start;flex-direction:column}.contact-form__bottom .button{width:100%}
}
